# OpenOcean V4金额或Gas异常：核新旧字段与交易体

整理：链小知（AI 辅助）
资料核对日期：2026-10-14
引用地址：https://lianxiaozhi.com/tools/guides/openocean-v4-decimal-gas-field-migration-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

区分显示量与完整单位、Gas响应两种分支、/quote与/swap及输出保护，保留旧示例和现行参数冲突。

## 使用工具
- [OpenOcean](https://lianxiaozhi.com/tools/openocean) · [官方入口](https://openocean.finance/)

## 前置条件
- 准备已有脱敏请求与响应，保留接口版本、链、币合约、小数位、金额原字符串及时间；缺权限或执行结果的材料明确留待核。

## 1. 固定V4路径、链和记录中的资产

先辨原/quote只报价与/swap交易体方法，不能把旧V3 /swap_quote名称混成当前V4路径。保存chain代码或ID、inTokenAddress/outTokenAddress及各自decimals；相同USDT符号在不同链并不共用小数位。

当前Swap覆盖表与Gasless列分开，Solana必须白名单及授权key。公开默认2RPS、Pro或试用安排不代表所有链都可匿名请求；没有原版本或权限材料时只列待核，不用另一条链成功样例补齐。

核对结果：原版本、路径、链、token身份和接入范围明确，未知权限或链能力未补成可用。
依据：[OpenOcean：当前V4字段及示例](https://docs.openocean.finance/docs/swap-api/v4)
依据：[OpenOcean：Swap与Gasless链范围及Solana白名单](https://docs.openocean.finance/docs/overview/supported-chains)
依据：[OpenOcean：公开/Pro接入与费用](https://docs.openocean.finance/docs/swap-api/api-pricing-and-access)

## 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可对应，旧示例与新字段没有机械换名。
依据：[OpenOcean：当前V4字段及示例](https://docs.openocean.finance/docs/swap-api/v4)
依据：[OpenOcean：集成方法与Gas响应两种单位](https://docs.openocean.finance/docs/swap-api/guide)

## 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数值的字段名、响应分支、单位及时间齐全；冲突或缺单位没有擅自统一倍率。
依据：[OpenOcean：当前V4字段及示例](https://docs.openocean.finance/docs/swap-api/v4)
依据：[OpenOcean：集成方法与Gas响应两种单位](https://docs.openocean.finance/docs/swap-api/guide)

## 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范围各自解释。
依据：[OpenOcean：当前V4字段及示例](https://docs.openocean.finance/docs/swap-api/v4)

## 5. 按原方案核费用和结果缺项

referrer只是集成方标识/可选收款地址，不能单凭有referrer就说已收费；referrerFee按输入币百分比，1.2是1.2%，不是1.2bps。公开Swap API另列四类费用且同页称dynamic model；不要把同链公开费、Pro约定、集成费和网络费合成一个统一百分比。

保留原HTTP与业务code，官方示例code=200只证明该响应形状，不证明链上完成。对outAmount、minOutAmount、estimatedGas和已有实际结果分别留证，缺交易体、缺费用明细或缺到账结果就保持未知。最终形成单位与角色对照，不以历史测量分数代替本次可用性。

核对结果：集成费百分比、公开方案/网络成本和实际结果分别有记录或未知，未由报价code推定实收。
依据：[OpenOcean：当前V4字段及示例](https://docs.openocean.finance/docs/swap-api/v4)
依据：[OpenOcean：公开/Pro接入与费用](https://docs.openocean.finance/docs/swap-api/api-pricing-and-access)
依据：[OpenOcean：集成方法与Gas响应两种单位](https://docs.openocean.finance/docs/swap-api/guide)

## 常见错误
- 不要把同名字段、旧demo或其他API单位照搬进当前版本。
- 报价/编码、费用估计与实际执行结果分别留证；未知不补零或成功。

## 完成检查
- 得到版本、单位、角色、原错误与结果缺项的对照；官方方法已核，当前账户和实际执行结果依原材料确认。

## 相关知识

## 官方依据
- [OpenOcean：当前V4字段及示例](https://docs.openocean.finance/docs/swap-api/v4)
- [OpenOcean：集成方法与Gas响应两种单位](https://docs.openocean.finance/docs/swap-api/guide)
- [OpenOcean：公开/Pro接入与费用](https://docs.openocean.finance/docs/swap-api/api-pricing-and-access)
- [OpenOcean：Swap与Gasless链范围及Solana白名单](https://docs.openocean.finance/docs/overview/supported-chains)
