OpenOcean V4金额或Gas异常:核新旧字段与交易体
链小知 · 进阶 · 核验 · 依官方文档整理
区分显示量与完整单位、Gas响应两种分支、/quote与/swap及输出保护,保留旧示例和现行参数冲突。
开始前准备
- 准备已有脱敏请求与响应,保留接口版本、链、币合约、小数位、金额原字符串及时间;缺权限或执行结果的材料明确留待核。
1. 固定V4路径、链和记录中的资产
先辨原/quote只报价与/swap交易体方法,不能把旧V3 /swap_quote名称混成当前V4路径。保存chain代码或ID、inTokenAddress/outTokenAddress及各自decimals;相同USDT符号在不同链并不共用小数位。
当前Swap覆盖表与Gasless列分开,Solana必须白名单及授权key。公开默认2RPS、Pro或试用安排不代表所有链都可匿名请求;没有原版本或权限材料时只列待核,不用另一条链成功样例补齐。
检查结果:原版本、路径、链、token身份和接入范围明确,未知权限或链能力未补成可用。
2. 把旧显示金额与新最小单位字段分开
V4已把amount/gasPrice标弃用,推荐amountDecimals/gasPriceDecimals并传完整小数单位。例中BNB链5个18位USDT是5000000000000000000;另一说明1个6位USDT是1000000。按原输入币decimals换算,不能一律用6位,也不能把显示5直接当amountDecimals=5。
文档旧URL及多个语言demo仍用amount=5或amount=1,集成Guide也保留旧写法。这只证明新旧示例共存,不能据此说旧字段已不可用或把旧显示金额照抄到新字段。保留输入原字符串,避免经浮点数丢失长整数。
检查结果:显示数量、新amountDecimals和各币decimals可对应,旧示例与新字段没有机械换名。
3. 核Gas报价分支,保留单位措辞差异
Guide的Gas响应同时给data.standard=1000000000和without_decimals.standard=1,后者打印为Gwei;V4新示例gasPriceDecimals=1000000000与旧gasPrice=1并列。不能把without_decimals的1直接当新完整单位,也不能把data中的完整值再乘一次。
V4 Gas方法段又说gasPrice为GWEI with decimals,和弃用说明/新字段命名不完全同一口径;应把原字段、来自哪个响应分支、链和取得时间并列。原材料无法确定分支或单位,就标待核,不靠示例推当前Gas值;estimatedGas仅参考,也不证明费用已扣或可成功执行。
检查结果:Gas数值的字段名、响应分支、单位及时间齐全;冲突或缺单位没有擅自统一倍率。
4. 区分报价、交易体和输出保护
/swap的account表虽标必填,说明又明确缺account只返回报价、不提供calldata/transaction body。若设置sender,sender为caller、account为receiver;否则account兼两者。对既有data.from/to/value/data/chainId逐角色核,不把quote响应中的exchange地址直接当接收人。
slippage是百分比,1表示1%,默认1,允许0.05到50;与KyberSwap的bps字段不同。price_impact是估计值,OpenOcean明确不会据此自动阻止交易。minOutput是目的币完整单位,仅列Base/BNB/ETH支持,例9.9个6位USDC为9900000;原minOutAmount是保护/报价数据,不是已到账。
检查结果:缺account的报价未当交易体,调用者/接收者分开;滑点、price impact与minOutput范围各自解释。
5. 按原方案核费用和结果缺项
referrer只是集成方标识/可选收款地址,不能单凭有referrer就说已收费;referrerFee按输入币百分比,1.2是1.2%,不是1.2bps。公开Swap API另列四类费用且同页称dynamic model;不要把同链公开费、Pro约定、集成费和网络费合成一个统一百分比。
保留原HTTP与业务code,官方示例code=200只证明该响应形状,不证明链上完成。对outAmount、minOutAmount、estimatedGas和已有实际结果分别留证,缺交易体、缺费用明细或缺到账结果就保持未知。最终形成单位与角色对照,不以历史测量分数代替本次可用性。
检查结果:集成费百分比、公开方案/网络成本和实际结果分别有记录或未知,未由报价code推定实收。
怎样确认完成
- 得到版本、单位、角色、原错误与结果缺项的对照;官方方法已核,当前账户和实际执行结果依原材料确认。
常见错误与边界
- 不要把同名字段、旧demo或其他API单位照搬进当前版本。
- 报价/编码、费用估计与实际执行结果分别留证;未知不补零或成功。