跳到正文
← 使用教程

CollectorCrypt的Swap显示Executed就完成了吗?核托管、退出与后台结算

链小知 · 进阶 · 核验 · 依官方文档整理

把双方批准、执行承诺、资产转移及关闭分开,按状态判断取消和提现范围。

开始前准备

  • 准备已有Swap详情、双方钱包地址、nonce、资产明细、批准/执行标志、trade_status以及如有的转移、提现和账户关闭结果;没有链上结果只核页面记录。
  • 按2026-10-14公开正文核已有脱敏记录,verification=documentation;不登录、创建key、连接钱包、请求业务API/RPC、构造或签名交易、付款、提现、生成证明或申请寄送。

1. 固定交易与双方对象

以Solana、user1、user2和u64 nonce定位原交易,保留trade地址与creator;同一对地址可有多个nonce。program的trade PDA seeds为["trade", user1, user2, nonce_bytes],nonce示例为8字节little-endian,escrow还区分"user1"/"user2"。email或.sol只是前端对手入口,不能替代最终钱包地址;本篇仅对照已有字段,不派生或查询账户。

检查结果:双方地址、nonce、trade与creator对应同一交换;缺nonce或地址不合并其他记录。

2. 逐项核托管资产与批准重置

概览支持标准NFT、pNFT、cNFT、Core NFT及前端列出的USDC/USDT/CARDS。加入资产就进入program escrow,并非仍留在本人钱包。核双方每项实际存入对象、mint/资产身份与数量,再比user1_approved/user2_approved;双方都批准才为Approved。移除/提现资产在非Cancelled时重置批准及执行标志回Open,添加资产不重置批准,因此原approved截图不能代替最后完整资产表。

检查结果:记录最后资产集合与双方批准;未把新增资产误当自动撤销旧批准。

3. Executed只验双方承诺,另核资产结算

program枚举为Open=0、Approved=1、Executed=2、Cancelled=3、Settled=4。execute_trade只允许Approved,设置调用方执行标志;双方执行后为Executed,之后资产通过各类batch指令转移,后台mark_trade_settled才将其改为Settled。概览称交换atomic,但program明确批准、执行、结算和关闭分多笔交易;只有Executed或双方按钮完成,没有每项转移结果时记结算待核。

检查结果:双方execute标志、每项收款/收卡及Settled分列;不把Executed等同资产全部到账。

4. 取消与提现按状态分别收口

cancel_trade由user1或user2授权,只允许Open/Approved,变为Cancelled但不会自动返还资产。withdraw_nft/pnft/cnft/token/core允许Open、Approved或Cancelled,由本人取回本人escrow;token提现amount须大于0且不超过已有余额,源/目标是所传mint的canonical ATA。NFT mint与该指令对象须一致;不同资产类型不能互换提现方法。非Cancelled提现后回Open;Executed/Settled不能套普通withdraw路径。

检查结果:取消结果与资产返回分开;每项提现有本人escrow和结果,不能靠Cancelled宣布全部返还。

5. 暂停及管理员处理保留权限界限

trading_paused阻断create、approve、unapprove、execute、cancel、batch结算、mark_trade_settled及close。withdraw_*不受该暂停闸限制,但仍受Open/Approved/Cancelled的状态与本人对象条件限制。config_admin的emergency_cancel_trade允许非Settled交易转Cancelled;force_cancel_settled_trade仅适用尚未关闭的Settled。管理员状态改写不能凭文档推定已转给对手的资产自动退回;没有结果时保留未知。

检查结果:暂停、交易状态与admin权限分别记;不承诺任意暂停中交易都可自行提现。

6. 关闭与rent退款核原creator

mark_trade_settled和close_trade由配置的backend_account调用;close仅允许Settled/Cancelled,关闭trade和escrow PDAs,rent返还trade.creator。creator是原先付创建费用的账户,未必是目前提现人;用户退出后还有后台清理环节,没有close结果不能记已关闭或rent已退款。

检查结果:资产退出、PDA关闭和creator的rent退款分别有结果;缺后台结果留待核。

7. 错误码与费用不从标签补结论

6006 CannotWithdrawInCurrentStatus先核状态,6007 InvalidTradeStatus先核所用操作,6003 InvalidTokenAccount及6004 MintMismatch分别核账户/资产对象,6012 TradingPaused核暂停。6013 UserNotApproved虽在表中声明,官方当前失败说明称不会由当前program返回。旧6011表称配置mint,而具体SPL Token Mint Validation称按传入mint的canonical ATA验证,两段冲突保留,不能据此自行替换mint或认定任意资产有效。网络费与账户rent另列;Swap固定平台费率未披露时写未知。

检查结果:错误名、失败操作、状态、mint/账户证据及费用单位保存;未用错误表猜恢复成功或零费。

怎样确认完成

  • 得到一份按交易/资产/双方批准执行/结算/退出/关闭区分的核对记录。
  • 只有已有结果可以记已完成;资产与rent去向缺证据时明确待核。

常见错误与边界

  • 取消、提现、实际交换、mark_trade_settled与close不是同一个完成条件。
  • program参考文档没有本轮验证过的部署版本或个人交易;资产类型、后台权限与mint口径均按已读方法限定。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据