DAI 换 USDS 后数量不对:核对既有 Converter 输入、接收人和回执
链小知 · 进阶 · 核验 · 依官方文档整理
按daiToUsds/usdsToDai及事件字段定位转换,区分1:1代币路线、储蓄份额和第三方兑换费用。
开始前准备
- 一条本人或获授权的已有交易记录、网络、合同身份、解码输入及可取得的非敏感回执;不要提供钱包秘密。
- 输入须属于DAI↔USDS Converter路线;没有解码方法或状态的记录可以完成身份检查后标未知。
1. 确认这笔记录属于哪条代币路线
从已保存交易中写下网络、目标合约及所用route。官方DAI↔USDS Converter在Ethereum按1:1转换两个ERC20;USDS↔sUSDS是另一个金库,USDS↔USDC等PSM也是不同路径。
核对已记录converter的dai、usds、daiJoin与usdsJoin身份和实现版本。固定构造要求两个Join使用相同vat,但这不能单凭第三方地址名字确认当前部署。不是该路线的记录改按实际交易池/金库分析。
检查结果:明确DAI/USDS Converter及两端资产,未把sUSDS或USDC路线归为1:1相同方法。
2. 从方法名确定输入币与输出币
在既有解码输入中,daiToUsds(usr,wad)表示caller提供DAI、usr收到USDS;usdsToDai(usr,wad)相反。两者都使用同一个wad贯穿transferFrom、join和exit,字段不是美元估值。
保留wad原始字符串,按两端已确认精度核对显示数量。若旧记录只有“Swap”标签而没有方法/目标,就不能从标签推它是官方converter;若经过聚合器,追踪其中实际converter子调用,外层sender不一定就是最终接收者。
检查结果:列出明确方向、原始wad、输入与输出token;缺解码的情况保持未知。
3. 分别核对 caller、usr 与资金所有者
固定方法从msg.sender转入输入币,将输出发送给usr;两者可以不同。核对已有记录的实际调用者和usr是否匹配预期,再查目标资产转账到的地址,不能只看发交易的钱包余额。
聚合器/智能账户参与时,以converter子调用的caller为准。usr是输出接收者,不是可随意改的展示字段;本页只解释已存在输入,不创建改地址、授权或签名请求。
检查结果:输入提供者与输出接收者分别定位;差额不靠修改接收人或重试猜测。
4. 在成功回执中匹配转换事件与金额
成功的daiToUsds应在匹配converter地址下出现DaiToUsds(caller,usr,wad),反向则为UsdsToDai;再核对两端相关token转账,不将第三方伪造同名事件纳入。
事件里的wad应与解码输入一致。假设wad为100×10^18且两端精度均确认18,converter输出是100个目标token;此例不证明这两种资产各值100美元,也不覆盖外层交易池或包装层扣费。
检查结果:转换方向、事件发出合约、caller/usr及原始金额都能对应成功记录。
5. 按已有失败日志区分余额、授权与未知状态
固定USDS transferFrom检查余额、授权及目标地址;在USDS输入方向出现Usds/insufficient-balance或Usds/insufficient-allowance时分别核对已有余额/allowance快照。DAI方向须匹配DAI自身错误和部署,不能直接套USDS错误名。
Join或输入token失败会阻止该转换正常完成;有明确失败回执时不把未完成事件当成功兑换。只有前端超时、没有链上结果或解码失败则标未知;缺少事件本身也不能证明交易已经回滚。
检查结果:失败原因有原始错误和对应版本;超时/无回执没有被改写成退款或成功。
6. 将协议路线费用与钱包净变化分开
官方对该Ethereum converter写明不收协议费,并称该route无法启用费用。链上Gas仍是另一资产的支出;若外层聚合器、交易池或跨链路线还收费用,其净输出需按各层回执另拆,不能统称converter扣费。
把转换输入、usr输出、额外转账、Gas和未知项分列。若记录最终目标是sUSDS,应另核金库Deposit的assets/shares,不因DAI与USDS1:1就要求得到同数量sUSDS。
检查结果:结果表能解释输出位置与单位,费用范围明确;无法定位的差额保留待核。
怎样确认完成
- 既有交易的方向、caller/usr、原始金额和成功/失败/未知状态可逐项复查。
- 完成的是既有记录排查;没有钱包连接、修改权限或执行新的资金动作。
常见错误与边界
- 1:1描述代币转换比例,不是银行美元赎回、二级市场报价或锚定保证。
- USDS的permit/allowance记录不等于已经执行converter或接收USDS。
- 旧源码的错误/路由不能自动推广至升级代理、其他网络或第三方包装层。