# Biconomy跨链中途失败：核回执与cleanup剩余代币

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

区分MEE提交标识、Supertransaction状态与cleanup依赖，判断可返还的是哪条链上的哪些剩余资产。

## 使用工具
- [Biconomy MEE / AbstractJS](https://lianxiaozhi.com/tools/biconomy) · [官方入口](https://www.biconomy.io/)

## 前置条件
- 准备已有脱敏quote/执行hash、模式、链与版本、instructions、cleanUps和回执；保留代币地址与原单位。

## 1. 固定模式、链配置和执行标识

对原AbstractJS材料分清getQuote/executeQuote与Fusion的getFusionQuote/executeFusionQuote，并记录chainConfigurations与MEE版本。概述示例使用V2_2_3的Optimism、Base和Arbitrum，不能仅凭相同账户地址推每条链配置/执行相同。

getQuote返回费用和待签payload；executeQuote返回hash，仍需结果回执。quote.hash、执行hash与单个userOp/交易哈希保留原字段，缺对应关系不靠相似字符串拼接。

核对结果：模式、版本、链配置和quote/执行/单项标识各有对应。
依据：[Biconomy：AbstractJS、Nexus与MEE版本配置](https://docs.biconomy.io/overview/abstractjs.md)
依据：[Biconomy：quote、Supertransaction回执与cleanup参数](https://docs.biconomy.io/sdk-reference/client.md)

## 2. 使用AbstractJS回执枚举核完成阶段

getSupertransactionReceipt读取当前状态；waitForSupertransactionReceipt等待完成。SDK列transactionStatus为PENDING、MINED_SUCCESS、MINED_FAILED、EXPIRED，并返回userOps和explorerLinks；不能把另一HTTP接口的SUCCESS/FAILED直接当同一字段。

记录default/fast-block模式及confirmations；返回hash不是完成，PENDING不是失败。MINED_FAILED或EXPIRED也不能单凭状态推全额返还，需看各链userOps、cleanup配置与实际剩余资产结果。

核对结果：回执字段、状态、确认模式和单项结果分开，缺回执留未知。
依据：[Biconomy：quote、Supertransaction回执与cleanup参数](https://docs.biconomy.io/sdk-reference/client.md)
依据：[Biconomy：跨链失败与剩余代币cleanup](https://docs.biconomy.io/overview/abstractjs/cleanup.md)

## 3. 解释跨链部分完成而非全链回滚

官方说明单链flow为原子性，而跨链不是：bridge可能已完成、目标swap失败，资产留在中间账户。先按已有每项instruction和userOp结果对链、代币、完成/失败阶段。

不要把一个MINED_FAILED标签翻译为桥也回滚，或把一个成功交易哈希翻译为整个目标已完成。没有中间链结果材料时，资产位置仍未知。

核对结果：每条链的已完成与失败阶段有证据，未知位置不写退款。
依据：[Biconomy：跨链失败与剩余代币cleanup](https://docs.biconomy.io/overview/abstractjs/cleanup.md)
依据：[Biconomy：quote、Supertransaction回执与cleanup参数](https://docs.biconomy.io/sdk-reference/client.md)

## 4. 逐cleanup核代币、接收地址与依赖

cleanUps每项必填chainId、tokenAddress和recipientAddress。Fusion例自动处理批次、不需dependsOn；EIP-7702/智能账户模式可用dependsOn等具体instruction完成，非顺序流程尤其需核依赖，不能机械复制索引。

官方说cleanup最后运行，仅转智能账户仍剩余的代币；余额为0会无害回滚。SDK允许amount（bigint）指定数量、缺省全余额；按实际配置核每种代币和用户接收EOA，未配置的代币、已花费用或已交付资产不当全额退款。

核对结果：cleanup链/代币/接收地址、amount及依赖均对原配置，返还范围仅剩余资产。
依据：[Biconomy：跨链失败与剩余代币cleanup](https://docs.biconomy.io/overview/abstractjs/cleanup.md)
依据：[Biconomy：quote、Supertransaction回执与cleanup参数](https://docs.biconomy.io/sdk-reference/client.md)

## 5. 把赞助权限与返还结果分别归档

生产hosted赞助需启用的项目API key，SDK sponsorship:true仅请求赞助。官方hosted限制在Dashboard配置，含单笔USD、总预算、合约及链；self-hosted另有自定义后端，不把代码布尔值当预算已生效。

Fusion完全gasless还要求trigger token支持ERC-2612 permit，否则用户需为一次approval付gas。官方生产赞助post-paid月末计费；归档账单与cleanup返回结果各自的记录，赞助或提交成功不证明返还完成。

核对结果：赞助权限/预算/费用与cleanup实际结果分别有证据或保留未知。
依据：[Biconomy：生产赞助、预算与Fusion条件](https://docs.biconomy.io/gasless-apps/sponsorship.md)
依据：[Biconomy：跨链失败与剩余代币cleanup](https://docs.biconomy.io/overview/abstractjs/cleanup.md)
依据：[Biconomy：quote、Supertransaction回执与cleanup参数](https://docs.biconomy.io/sdk-reference/client.md)

## 常见错误
- 跨链失败可能留下已完成桥接，不能推整体回滚。
- cleanup仅处理配置代币的剩余余额；余额0的cleanup回滚不表示资产被没收。
- hosted赞助布尔值不是权限或预算；Fusion permit条件与SCA/7702路径不同。

## 完成检查
- 得到Supertransaction阶段、每条链剩余资产与cleanup对照；官方方法已核，实际返还和账单依原结果确认。

## 相关知识

## 官方依据
- [Biconomy：AbstractJS、Nexus与MEE版本配置](https://docs.biconomy.io/overview/abstractjs.md)
- [Biconomy：quote、Supertransaction回执与cleanup参数](https://docs.biconomy.io/sdk-reference/client.md)
- [Biconomy：跨链失败与剩余代币cleanup](https://docs.biconomy.io/overview/abstractjs/cleanup.md)
- [Biconomy：生产赞助、预算与Fusion条件](https://docs.biconomy.io/gasless-apps/sponsorship.md)
