# deBridge 显示已成交，源链为何仍锁定：核对DLN订单与解锁阶段

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/debridge-dln-fulfilled-source-unlock-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

按订单ID对照目标链付款、源链solver结算和hook状态，避免把仍未ClaimedUnlock的订单误判为用户没有收到目标资产。

## 使用工具
- [deBridge / DLN 订单查询](https://lianxiaozhi.com/tools/debridge) · [官方入口](https://app.debridge.com/orders)

## 前置条件
- 准备已有脱敏的源创建交易、orderId、give/take链与目标接收人；可用官方schema建立字段表，但没有实际记录不能宣称订单成功。
- 如有订单API记录，保留完整baseURL/方法、HTTP与响应时间；订单ID、交易hash、DMP submissionId分开，凭据不分享。
- 适用DLN Tracking stats API v1文档，不是dePort包装资产、DMP普通消息或Swap quote/create-tx的执行教程。

## 1. 从创建交易对应全部订单ID

记录源链创建交易和orderId，而非仅钱包地址或网页显示名称。Tracking说明GET /api/Orders/creationTxHash/{hash}在一交易多订单时只返回第一个；如果既有记录来自此方法，要检查是否遗漏同一交易的其他订单。

完整ID列表对应GET /api/Transaction/{hash}/orderIds的orderIds数组。只核对已有列表，不把一个hash当唯一orderId；原Order或CreatedOrder中give/take参数与接收人必须对上。链表的internal ID不一定是native ID，例如HyperEVM999与100000022不同。

核对结果：每条目标转移都有自身orderId及源/目标链，批量创建的遗漏保持未知。
依据：[deBridge Tracking Orders](https://docs.debridge.com/dln-details/integration-guidelines/order-creation/order-tracking-api/tracking-orders.md)
依据：[deBridge 订单身份、目标状态与取消权限](https://docs.debridge.com/dln-details/integration-guidelines/smart-contracts/placing-orders.md)
依据：[deBridge DLN 费用与支持链表](https://docs.debridge.com/dln-details/overview/fees-supported-chains.md)

## 2. 按具体方法读取状态形状

Tracking基址是https://dln-api.debridge.finance，Swap基址是https://dln.debridge.finance，两者路径不能混接。当前GET /api/Orders/{orderId}/state的200 schema直接返回OrderState字符串；GET /api/Orders/{orderId}定义为OrderDTO，状态字段为state。

Tracking快速示例却用status。先保存原响应形状与字段，不固定读response.status或把缺state改为Created。None、null、缺字段或未识别枚举分别标待核；它们不等于源链交易失败或链上不存在。

核对结果：核对表明确方法、版本、实际字段与原状态，不以示例外壳覆盖真实记录。
依据：[deBridge Tracking Orders](https://docs.debridge.com/dln-details/integration-guidelines/order-creation/order-tracking-api/tracking-orders.md)
依据：[deBridge GET完整 OrderDTO](https://docs.debridge.com/api-reference/orders/get-order-by-events-by-orderid.md)
依据：[deBridge GET Order State OpenAPI](https://docs.debridge.com/api-reference/orders/returns-order-state-by-order-id.md)
依据：[deBridge 两API入口与限速](https://docs.debridge.com/home/resources/status-limits.md)

## 3. 对照目标付款的身份、数量和事件

Fulfilled按状态正文表示solver已将所需目标资产交给dstChainTokenOutRecipient。完整OrderDTO中核对receiverDst.stringValue、takeOfferWithMetadata.chainId/tokenAddress、actualFulfillAmount和fulfilledDstEventMetadata.transactionHash.stringValue。

数量字段可能是带stringValue/bigIntegerValue的DTO，保留精确十进制字符串并与该token的decimals核对，不用JavaScript Number截断大整数。目标tx hash属于take链；事件缺失/null时不能根据主状态补出一笔交易或认定目标付款已经独立复验。

核对结果：目标接收人、token、chain、原始数量和履约交易可追溯；API表述与另行已有链上结果分别记录。
依据：[deBridge DLN 生命周期](https://docs.debridge.com/dln-details/integration-guidelines/order-creation/order-tracking-api/order-states.md)
依据：[deBridge GET完整 OrderDTO](https://docs.debridge.com/api-reference/orders/get-order-by-events-by-orderid.md)

## 4. 把源锁定与solver结算拆开

Fulfilled是目标已履约，SentUnlock是solver发送DMP消息，ClaimedUnlock才是源锁资产被solver领取。用户是否取得目标资产与solver是否完成源结算是两件事，源锁仍存在不能单独推翻目标履约。

分别对照sentUnlockDstEventInfo、claimedUnlockSrcEventInfo的transactionMetadata与submissionId。只出现发送消息不代表源领取；源claim交易不等于目标给用户的tx。若参数不同导致orderId不匹配，不能把另一笔solver转账套作本订单解锁。

核对结果：每个阶段都有对应链和原事件，缺源claim写“源结算待核”，不直接写“用户未成交”。
依据：[deBridge DLN 生命周期](https://docs.debridge.com/dln-details/integration-guidelines/order-creation/order-tracking-api/order-states.md)
依据：[deBridge Claiming an Order](https://docs.debridge.com/dln-details/dln-specifics/order-fulfillment/claiming-order.md)
依据：[deBridge GET完整 OrderDTO](https://docs.debridge.com/api-reference/orders/get-order-by-events-by-orderid.md)

## 5. 另查hook是否执行完成

主state与externalCallState分列。Fulfilled不自动等于额外hook Completed；externalCallState有NoExtCall、AwaitingExecution、Executing、Completed、Failed、Cancelled等，具体失败应保留实际错误与外部执行证据。

Tracking的完成订单列表示例用了externalCallStates:['NoExtCall']，这种过滤会排除带hook的订单，不适合汇总全部成交。externalCallData在只有create事件时可能为hash、已tracked fulfill时为完整结构；不能将hash当已执行结果。

核对结果：主履约、源结算、hook三栏独立，没有将NoExtCall过滤漏项说成订单消失。
依据：[deBridge Tracking Orders](https://docs.debridge.com/dln-details/integration-guidelines/order-creation/order-tracking-api/tracking-orders.md)
依据：[deBridge GET完整 OrderDTO](https://docs.debridge.com/api-reference/orders/get-order-by-events-by-orderid.md)

## 6. 按错误和分页范围结束排查

状态/详情方法列400、422、500；保存message与errorCode，422业务码可异于HTTP码。官方Status&Limits列429、公共50RPM/认证300RPM及各endpoint独立额度；不要将限速/权限失败转换为空订单或0金额。

若记录来自POST filteredList，检查skip/take（方法最大页100）、orders（可null）、totalCount以及maker/filter与状态条件；时间过滤blockTimestampFrom/To为创建事件秒、含>=/<=边界。缺页、不同条件或滚动排序只说明记录范围不足，不拿totalCount替代逐订单履约核对。

核对结果：结论区分目标履约、源solver结算、hook、错误与列表缺口；未知原因有具体补证字段。
依据：[deBridge GET Order State OpenAPI](https://docs.debridge.com/api-reference/orders/returns-order-state-by-order-id.md)
依据：[deBridge GET完整 OrderDTO](https://docs.debridge.com/api-reference/orders/get-order-by-events-by-orderid.md)
依据：[deBridge filteredList分页 OpenAPI](https://docs.debridge.com/api-reference/orders/get-filtered-list-of-orders-ordered-by-block-timestamp-desc-max-page-size:-100.md)
依据：[deBridge DLN Authentication](https://docs.debridge.com/dln-details/integration-guidelines/order-creation/authentication.md)
依据：[deBridge 两API入口与限速](https://docs.debridge.com/home/resources/status-limits.md)

## 常见错误
- 把源链Created/锁定余额当目标未成交，或把ClaimedUnlock当给用户的目标收款。
- 同一创建交易只取首个order；固定读status而忽略当前OrderDTO.state与字符串state方法。
- 将NoExtCall示例当全订单查询，或把fulfilledDstEventMetadata的目标hash放进源链查。
- blockTimeStamp在详情schema只说明事件时间而未注明单位；不要把列表明确seconds规则自动推广所有返回时间。

## 完成检查
- 输出按orderId的目标履约、源结算、hook与原错误表；无独立目标交易证据时明确只取得API/文档状态。
- 列表/批量交易范围、时间与未知阶段明确；没有发送新API/quote或执行解锁。

## 相关知识
- [跨链显示已发送却未到账？来源交易、消息与目标执行分开查](https://lianxiaozhi.com/learn/bridge-transfer-status)
- [原始、解码和整理后的链上数据有什么区别？](https://lianxiaozhi.com/learn/raw-decoded-curated-data)
- [区块确认与最终性是什么？交易成功和充值到账为何不同步](https://lianxiaozhi.com/learn/confirmations-and-finality)

## 官方依据
- [deBridge Tracking Orders](https://docs.debridge.com/dln-details/integration-guidelines/order-creation/order-tracking-api/tracking-orders.md)
- [deBridge DLN 生命周期](https://docs.debridge.com/dln-details/integration-guidelines/order-creation/order-tracking-api/order-states.md)
- [deBridge 订单身份、目标状态与取消权限](https://docs.debridge.com/dln-details/integration-guidelines/smart-contracts/placing-orders.md)
- [deBridge Claiming an Order](https://docs.debridge.com/dln-details/dln-specifics/order-fulfillment/claiming-order.md)
- [deBridge DLN 费用与支持链表](https://docs.debridge.com/dln-details/overview/fees-supported-chains.md)
- [deBridge DLN Authentication](https://docs.debridge.com/dln-details/integration-guidelines/order-creation/authentication.md)
- [deBridge GET Order State OpenAPI](https://docs.debridge.com/api-reference/orders/returns-order-state-by-order-id.md)
- [deBridge GET完整 OrderDTO](https://docs.debridge.com/api-reference/orders/get-order-by-events-by-orderid.md)
- [deBridge filteredList分页 OpenAPI](https://docs.debridge.com/api-reference/orders/get-filtered-list-of-orders-ordered-by-block-timestamp-desc-max-page-size:-100.md)
- [deBridge 两API入口与限速](https://docs.debridge.com/home/resources/status-limits.md)
