输入/搜索内容
内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
去中心化交易所
预测市场
证券与期货
链上与自定义接入

设置代币授权模式:每次只授权本次兑换需要的数量,或授权无限额度。

exchange.IO(k)
exchange.IO(k, mode)

示例

设置代币授权模式。

javascript
function main() { exchange.IO("approve", "max") Log("当前授权模式:", exchange.IO("approve")) }

返回值

类型描述

string

返回当前模式exact或max。

参数

名称类型必填描述

k

string

是

固定为approve,用于设置代币授权模式。

mode

string

否

授权模式:exact(默认)表示每次只授权本次兑换需要的数量,max表示授权无限额度,之后同一个代币不需要再授权。不传表示查询当前模式。

参考

备注

卖出代币(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。