# 对齐Rango单步与多步路由的输入和前置条件

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

只读当前规范或已有脱敏quote/route记录，整理API选择、资产单位、错误分支、费用位置与目标链前置条件。完成的是接入核对单，不创建、确认或执行路由。

## 使用工具
- [Rango Exchange](https://lianxiaozhi.com/tools/rango-exchange) · [官方入口](https://rango.exchange/)

## 前置条件
- 一组目标链/资产需求及其合约、decimals；或已取得并脱敏的路由记录
- 标明材料对应的API版本与取得时间；当前余额、可用路线或前置状态缺证时保留待核

## 1. 按交互要求选择Basic或Main

从Choosing the Right API记录需求：Basic针对单步用户动作，EVM可把源DEX、bridge、目标DEX组合进一笔主交易；Main支持多个候选路线及多步，每步可能至少一笔交易且中间链需网络费。Basic的Multi-Routing仍标未实现，不把Main的多路选择直接套给Basic。

把允许的签署次数、需支持的链和是否接受中间链gas写入接入表。官网Our Vision中的no approvals/no gas不能代替当前流程；选择单步也要继续检查授权和目的链准备。

核对结果：表内明确Basic或Main、允许的中间链及gas责任，并单列尚未核实的路线可用性。
依据：[Choosing the right API](https://docs.rango.exchange/api-integration/choosing-the-right-api)
依据：[Rango official](https://rango.exchange/)
依据：[Transaction prerequisites](https://docs.rango.exchange/api-integration/basic-api-single-step/transaction-prerequisites)

## 2. 把资产身份与金额编码分开

Basic Get Quote规范用from/to描述链及资产，SDK RequestedAsset含blockchain、address及可选symbol；原生币示例address=null。HTTP示例BSC.BNB与AVAX_CCHAIN--合约不能只按USDT名称替换；对照Token的chainId、address、decimals核具体资产。

Basic amount是机器整数的字符串：18位BNB的0.1对应100000000000000000；slippage=1.5表示1.5%。Main flow样例则使用from/to资产对象及amount='1'，不要把Basic编码直接复制进Main样例。Basic flow文字写1 BNB、代码却为0.1 BNB，USDT合约也有差异；保留冲突，用当前所选资产元数据核对，不能据示例认定当前支持。

核对结果：为每个输入记录链、合约或native null、decimals与显示金额；Basic整数换算可回到原显示值，未混用Main样例单位。
依据：[Get Quote](https://docs.rango.exchange/api-integration/basic-api-single-step/api-reference/get-quote)
依据：[Basic flow](https://docs.rango.exchange/api-integration/basic-api-single-step/api-flow)
依据：[Main flow](https://docs.rango.exchange/api-integration/main-api-multi-step/api-flow)

## 3. 检查报价结果与路线过滤的含义

在脱敏Basic记录中读resultType和route：NO_ROUTE没有路线；HIGH_IMPACT不宜继续，INPUT_LIMIT_ISSUE核route.amountRestriction的min/max与type，EXCLUSIVE是严格开区间，INCLUSIVE包含边界。HTTP成功或存在requestId都不等可执行。若没有记录，只标注这些分支，不编造当前结果。

合约发起的需求要核contractCall=true所过滤的swapper；规范警告底层白名单不满足可卡住资金。enableCentralizedSwappers默认false，开启需要传用户IP作合规检查且可能因KYC暂扣；本文不收集或提交IP。不以覆盖增加推定任意钱包可走所有路线。

核对结果：已区分无路、高影响、金额限制和OK；边界类型与合约/中心化路径限制均有字段依据，未知保持未知。
依据：[Get Quote](https://docs.rango.exchange/api-integration/basic-api-single-step/api-reference/get-quote)

## 4. 标记费用扣除位置，避免重复扣输出

按route.fee逐项记name、token、amount及expenseType；DECREASE_FROM_OUTPUT已含在预计输出中，展示时不再扣一次。FROM_SOURCE_WALLET需要源钱包相应费用资产，类型定义还包括FROM_DESTINATION_WALLET；feeUsd可为空，不据此填零。outputAmount/outputAmountMin是报价字段，不是最终到账。

区分自有dApp零界面费、底层swapper费和API/affiliate商业安排。avoidNativeFee只排除以原生币收桥服务费的swapper，不能免网络费，也可能减少路线。Basic flow的15秒、Main的30秒是重新报价示例，不是统一有效期或成交保证。

核对结果：每笔费用都关联币种与扣除位置；已计入输出的费用未重复扣，空USD估值及过期记录没有当当前成本。
依据：[Get Quote](https://docs.rango.exchange/api-integration/basic-api-single-step/api-reference/get-quote)
依据：[Fee structure](https://docs.rango.exchange/technical/fee-structure)
依据：[Basic flow](https://docs.rango.exchange/api-integration/basic-api-single-step/api-flow)
依据：[Main flow](https://docs.rango.exchange/api-integration/main-api-multi-step/api-flow)

## 5. 记录目的链准备和停止条件

读tx.prerequisites而非只看源链：Stellar非原生SAC资产需目标钱包的Change Trust，示例给code、issuer、value、wallet；XRPL已发行代币相应核currency、issuer、value、wallet及TrustSet。不能因主交易在Arbitrum就忽略接收链的信任线。这里只形成待核项目，不发起任何信任线操作。

Basic flow说明tx为空或resultType非OK应停止；Main需逐步处理isApproval，并在前一步成功后才进入下一步。缺少前置状态、动态spender或当前余额/费用证明时，结论写尚不能确认可执行；文档选择或交易数据生成均不等签署、广播或到账。

核对结果：目的链前置资产/issuer/钱包、每步gas责任与未核状态已单列；最终成果只为核对单，没有把文档计划写成完成交易。
依据：[Transaction prerequisites](https://docs.rango.exchange/api-integration/basic-api-single-step/transaction-prerequisites)
依据：[Basic flow](https://docs.rango.exchange/api-integration/basic-api-single-step/api-flow)
依据：[Main flow](https://docs.rango.exchange/api-integration/main-api-multi-step/api-flow)

## 常见错误
- 把官网愿景的gasless/no approvals当所有Basic路线保证。
- 把Basic整数金额复制到Main例子，或把BNB/USDT示例冲突当当前资产数据。
- 将DECREASE_FROM_OUTPUT重复扣除，或把avoidNativeFee解释为免gas。
- 只检查源链；Stellar/XRPL接收资产的信任线准备可能早于主交易。

## 完成检查
- 形成API选择与资产单位表
- 形成金额/费用/前置条件及错误分支核对单，未核状态保留

## 相关知识

## 官方依据
- [Choosing the right API](https://docs.rango.exchange/api-integration/choosing-the-right-api)
- [Rango official](https://rango.exchange/)
- [Transaction prerequisites](https://docs.rango.exchange/api-integration/basic-api-single-step/transaction-prerequisites)
- [Get Quote](https://docs.rango.exchange/api-integration/basic-api-single-step/api-reference/get-quote)
- [Basic flow](https://docs.rango.exchange/api-integration/basic-api-single-step/api-flow)
- [Main flow](https://docs.rango.exchange/api-integration/main-api-multi-step/api-flow)
- [Fee structure](https://docs.rango.exchange/technical/fee-structure)
