一句话先看懂
平台和网页只是操作入口。只要供需双方原来的钱包都还在、双方都同意解除,就可以直接在链上完成:
A 发起B 确认智能合约自动退款
也可以反过来:B 发起 → A 确认,效果一样。
操作前确认 4 件事
1
订单仍有押金
查到的 balance 要大于 0,说明还有钱在合约里可退。
2
订单状态正常
订单通常应处于 status = 0(Active,进行中)。
3
双方钱包都还在
A、B 双方都还能正常登录并控制创建订单时的那个钱包。
4
双方都同意解除
解除订单需要 A、B 两边都确认,任何一方不同意都无法完成。
链上自助解除 4 步
所有操作都在浏览器打开 TRONSCAN 完成,下面每一步写清楚点什么、填什么。
1
先查自己的订单
- 打开 TRONSCAN,找到
EscrowFactory主合约 - 点
Contract→Read Contract(读取合约,不需要连接钱包) - 找到
getEscrow,输入订单 ID
确认 partyA / partyB 是双方的钱包地址,并查看 balance(押金余额)和 status(订单状态)。
2
一方发起解除
发起方连接自己的原钱包,进入 Contract → Write Contract → proposeRefund,填写:
id
订单编号
mode
0
amount
0
其中 mode = 0 表示按双方原始押金规则结算。
3
另一方核对退款
回到 Read Contract → getRefund,输入同一个订单 ID。重点查看:
proposalIdamountAamountBfeeAmount
把 proposalId 和退款金额记下来(或截图),下一步要用。
4
另一方确认
另一方连接自己的原钱包,进入 Write Contract → approveRefund,填写:
id
订单编号
expectedProposalId
上一步查到的 proposalId
确认成功后,合约自动执行退款。
✓ 退款完成
- A 收到合约计算后属于 A 的退款
- B 收到合约计算后属于 B 的退款
- 约定费用按订单创建时写入合约的规则计算
balance = 0,status = 3(Completed,已完成)
重点提醒
- •查订单(
Read Contract)不需要连接钱包 - •
proposeRefund/approveRefund属于Write Contract,需要连接对应的钱包并签名 - •谁发起,谁不能自己再确认:A 发起就由 B 确认;B 发起就由 A 确认
- •普通用户操作入口是
EscrowFactory主合约 - •「智能合约自动退款」是指双方完成链上签名确认后,由合约自动执行,不是无人操作自动退钱
- •如果 A 或 B 其中一方失联,当前双方确认模式下另一方不能单独完成解除
最短口诀
查订单 → 一方 proposeRefund → 查 proposalId 和金额 → 另一方 approveRefund → 合约自动退款