拆读Layerswap入金动作:手动地址、整数金额与链格式
链小知 · 进阶 · 核验 · 依官方文档整理
用当前官方规范或已有脱敏deposit_actions,区分资金来源方法、完整动作列表的待执行项、显示金额和真实整数金额。只做文档拆读,不创建swap、申请地址或发送资产。
开始前准备
- 目标源链/资产和预期入金方式,或已有脱敏swap动作记录;没有记录可仅整理字段表
- 准备与该源链和入金方式相符的当前规范,并先核适用资格;缺少动作记录时仅整理字段表
1. 先确定入金方式与源链范围
从Funding methods选需要解释的路径:wallet transfer是源链交易,deposit address供不能连接的wallet或CEX发送,Depository是可编程合约入金。use_depository与use_deposit_address不能同时为true;Starknet与TON当前仅支持wallet-transfer,Depository覆盖EVM和Tron,不能把所有链一律当地址转账。
当前条款列China等禁止地区,并覆盖公民、居民含税务居民、当前所在地及相关实体;手动地址方式也不是免资格。没有合法权限或没有既有脱敏材料时停在字段表,不去创建地址或请求swap。
检查结果:已记录源链、资产、资金来源方式;未同时选择两个互斥flag,未将不支持的方法假定可用。
2. 区分完整动作列表与当前待执行项
当前Get Deposit Actions V2规范说完整有序工作流中每项仍可见,字段有step/status;只有action_required项带交易或typed-data载荷。经典partner transfer用step=deposit;approve_permit2、sign、publish是不同工作流目的,不把所有列表项当成待发送交易。
逐项记step、status、order及type;order存在时按其升序理解,不按页面显示位置重排。有signing_standard或typed_data时它属于授权材料,不能当普通转账。该schema多数字段可空,step/status并未给封闭enum;缺值或陌生值只标未知,不靠文档标题补造载荷,也不重建一个新swap替代原记录。
检查结果:完整列表和action_required项已分开;无载荷/未知状态项没有被改造成交易,授权与转账目的未混同。
3. 核金额整数与合约目标
Execute deposit actions规范将amount用于显示、amount_in_base_units字符串用于精确交易构造;不要经JavaScript Number把显示小数转回整数。把network.chain_id/type、token.contract/decimals、fee_token与原需求逐项对照,源资产与付网络费的资产可以不同。
to_address可能是收款地址、代币合约或Depository合约,不能直接拿它与最终destination address做相等判断。manual_transfer应显示生成地址和精确金额,其call_data为null;若同一记录声称手动模式却带冲突载荷,保留异常,不自行清空后继续。
检查结果:每个待核入金项有精确整数金额、源链和资产身份;目标地址角色已说明,显示小数没有代替交易金额。
4. 按源链解释call_data,保留原编码
官方入金方法表明确:EVM为hex交易数据,Bitcoin为带分号终止符的数字memo并用于OP_RETURN,Solana为base64序列化交易,Starknet为JSON calls数组,TON为金额/资产/comment的JSON对象,Tron为TRC-20 memo,Fuel为JSON script与coin quantities。这里只识别格式及需要转交哪份链规范,不运行SDK解码/签署,也不把此表当完整交易构造指南。
保留动作原memo、指令与swap标识;把Solana内容当EVM calldata、丢掉Bitcoin终止符或把Depository调用改成普通转账,都会改变入金含义。格式或完整性无法核实时停止;链上input成功也不直接等于最终收款。
检查结果:每个call_data关联正确源链编码说明;未改写memo/序列化指令,无法核实的格式没有标成可执行。
5. 把入金金额、Refuel和恢复边界分开
用已有报价时,data.quote.total_fee以源币计且不含refuel_in_source;service_fee、blockchain_fee和市场影响分别记录。detailed_quote按金额区间返回path、费用及预计耗时,跨区间provider可能变,0.05%和约20分钟是说明例而不是当前路径保证。发送方网络费及交易所提现费仍需另核。
入金匹配失败可一直等到过期;当前流程无入金6小时为expired,低于最小额为failed。有refund_address也须重试耗尽才转退款,无地址可能继续ls_transfer_pending;退款在源链源币扣gas,金额小于gas不退。旧条款强调错误地址不可逆,与执行失败退款是不同情况;不承诺任何错转或低额都自动全额追回。
检查结果:总费与Refuel未混算;费用/路径按原金额区间,最低额失败、等待与有条件退款没有混成到账或无损恢复。
怎样确认完成
- 形成按step/status、源链格式和整数金额标记的动作表
- 列明权限、互斥方法及未核执行/恢复条件,没有创建或发送交易
常见错误与边界
- 把完整动作列表中的每一项都当当前需要发送的交易。
- 使用显示amount的浮点数重算amount_in_base_units,或把to_address一律当最终收款人。
- 手动transfer、Depository、授权typed data混用;忽略TON/Starknet方法限制。
- 从供应商一次比较的历史价格推断当前统一费率;省略Refuel或交易所提现费。