exchange.IO("approve", ...)
设置代币授权模式:每次只授权本次兑换需要的数量,或授权无限额度。
exchange.IO(k)
exchange.IO(k, mode)示例
设置代币授权模式。
javascript
function main() {
exchange.IO("approve", "max")
Log("当前授权模式:", exchange.IO("approve"))
}返回值
| 类型 | 描述 |
string | 返回当前模式 |
参数
| 名称 | 类型 | 必填 | 描述 |
k | string | 是 | 固定为 |
mode | string | 否 | 授权模式: |
参考
Uniswap / PancakeSwap Aerodrome / Velodrome KyberSwap 1inch exchange.IO exchange.IO("transfer") exchange.IO("simulate") exchange.IO("gasMultiplier")
备注
卖出代币(ERC20输入)前,连接器会检查路由合约的授权额度,不够时先发送授权交易并等待上链,再发送兑换交易。授权额度不为0又不够时先清零再授权(USDT等代币要求)。
Uniswap的V4路径、PancakeSwap的Infinity路径分两步:先把代币授权给Permit2合约(规则同上;两个交易所各用自己的Permit2),再在Permit2中授权对应的Universal Router使用(exact模式只授权本次数量、1天后过期,max模式授权无限额度、30天后过期)。两步都只在额度不够或已过期时才发送交易。
max模式省去后续的授权交易和gas,但路由合约可以动用该代币的全部余额,请按需选择。
授权给谁因交易所而异:Uniswap、PancakeSwap的V2/V3路径授权各自的路由合约,V4/Infinity CL路径经Permit2(见上);Aerodrome、Velodrome授权本次兑换所用的那个路由(基础池子与两代Slipstream各有自己的路由);KyberSwap、1inch直接授权聚合器的路由合约(KyberSwap为MetaAggregationRouterV2,1inch为AggregationRouterV6),不经过Permit2。LP、跨链桥的授权同样按这里的模式:lp.add授权PositionManager,bridge.send授权LI.FI报价里的approvalAddress。