内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
去中心化交易所
Hyperliquid
Lighter
edgeX
Aster
Aevo
Pendle
WOOFi Pro
Uniswap / PancakeSwap
Aerodrome / Velodrome
KyberSwap
1inch
EVM DEX通用指令
exchange.IO("route", ...)
exchange.IO("simulate", ...)
exchange.IO("token", ...)
exchange.IO("transfer", ...)
exchange.IO("receipt", ...)
exchange.IO("wrap", ...)
exchange.IO("unwrap", ...)
exchange.IO("approve", ...)
exchange.IO("slippage", ...)
exchange.IO("deadline", ...)
exchange.IO("cancelWait", ...)
exchange.IO("gasMultiplier", ...)
exchange.IO("lp.pools", ...)
exchange.IO("lp.select", ...)
exchange.IO("lp.pool", ...)
exchange.IO("lp.ticks", ...)
exchange.IO("lp.plan", ...)
exchange.IO("lp.simulate", ...)
exchange.IO("lp.add", ...)
exchange.IO("lp.increase", ...)
exchange.IO("lp.decrease", ...)
exchange.IO("lp.collect", ...)
exchange.IO("lp.remove", ...)
exchange.IO("lp.positions", ...)
exchange.IO("lp.history", ...)
exchange.IO("lp.track", ...)
exchange.IO("bridge.*", ...)
Jupiter
OKX DEX
DEX策略示例
预测市场
证券与期货
链上与自定义接入
EVM DEX通用指令
Uniswap / PancakeSwap、Aerodrome / Velodrome、KyberSwap、1inch这几个交易所对象是同一套实现(EVM链上的兑换、区间流动性与跨链桥),本目录是它们共用的exchange.IO()指令子页:各交易所页的专属IO指令表列出全部指令并链到这里,交易所之间的差别写在子页的备注里。
| 指令 | 适用的交易所 |
|---|---|
兑换询价与模拟:route、simulate;代币表:token | 全部(KyberSwap、1inch的路径由聚合器给出) |
钱包:transfer、receipt、wrap、unwrap | 全部 |
设置:approve、slippage、deadline、cancelWait、gasMultiplier | 全部 |
区间流动性:lp.* | Uniswap、PancakeSwap、Aerodrome、Velodrome;gauge质押lp.stake、lp.unstake、lp.claim只在Aerodrome、Velodrome |
跨链桥:bridge.* | 全部 |
区间流动性的一般流程:lp.pools或lp.select选池 → lp.plan做计划 → lp.simulate模拟 → lp.add建仓 → lp.positions监控 → lp.collect领手续费、lp.decrease减仓或lp.remove撤出;完整的策略示例见lp.add页;出区间自动调仓、gauge质押复投、DEX与CEX搬砖、定投等可以直接运行的策略见DEX策略示例。
本章内容整章阅读
| 名称 | 描述 |
| exchange.IO("route", ...) | 询价:列出一笔兑换在各条候选路径上的报价及最优路径,不下单。 |
| exchange.IO("simulate", ...) | 按下单逻辑(选路、询价、价格保护)构造兑换交易,只在链上模拟执行(eth_call),不签名、不广播、不花费gas。 |
| exchange.IO("token", ...) | 登记代币,或列出代币表;登记后的代币可以直接写在交易对里。 |
| exchange.IO("transfer", ...) | 从配置的钱包转出链上原生币(如ETH、BNB)或ERC20代币。 |
| exchange.IO("receipt", ...) | 查询本链任意交易(不限本交易所对象发出的下单、转账等)的回执,可以等待交易上链。 |
| exchange.IO("wrap", ...) | 把原生币(如ETH、BNB)包装成包装币(如WETH、WBNB),1:1兑换,没有滑点,只花gas。 |
| exchange.IO("unwrap", ...) | 把包装币(如WETH、WBNB)解包成原生币(如ETH、BNB),1:1兑换,没有滑点,只花gas。 |
| exchange.IO("approve", ...) | 设置代币授权模式:每次只授权本次兑换需要的数量,或授权无限额度。 |
| exchange.IO("slippage", ...) | 设置市价单的滑点保护比例。 |
| exchange.IO("deadline", ...) | 设置兑换交易的有效期(截止时间)。 |
| exchange.IO("cancelWait", ...) | 设置撤单时等待结果的最长时间。 |
| exchange.IO("gasMultiplier", ...) | 设置gas上限倍数:交易的gasLimit为节点估算的gas乘以该倍数。 |
| exchange.IO("lp.pools", ...) | 列出代币的全部LP池子(Uniswap、PancakeSwap为V3与V4/Infinity CL池子,Aerodrome、Velodrome为Slipstream与基础池子),包括费率、现价、流动性、TVL与24小时成交额,按T… |
| exchange.IO("lp.select", ...) | 按规则自动选择一个LP池子:在流动性充足的池子中选择24小时成交额最大的,或选择指定费率的池子。 |
| exchange.IO("lp.pool", ...) | 查询单个池子的实时状态,包括两种代币、费率、tick间距、当前tick、价格与流动性。 |
| exchange.IO("lp.ticks", ...) | 查询池子在一段tick区间内的流动性分布,按段给出流动性和两种代币的数量。 |
| exchange.IO("lp.plan", ...) | 生成建仓计划(只读,不花钱):按预算、价格区间和形状算出各仓位的区间、流动性和两种代币的数量,以及钱包够不够、还要换多少币。 |
| exchange.IO("lp.simulate", ...) | 按计划用eth_call模拟建仓交易(不签名、不广播、不花钱),确认交易能执行并查看实际投入的数量。 |
| exchange.IO("lp.add", ...) | 按计划建仓:需要时先换币,再授权,一笔交易创建计划中的全部仓位,等交易上链后返回仓位ID。 |
| exchange.IO("lp.increase", ...) | 给已有仓位加仓:预算按仓位区间与现价的配比拆成两种代币,缺的那种先换,然后加到同一个仓位里。 |
| exchange.IO("lp.decrease", ...) | 按比例减仓,同时领取仓位的全部手续费;仓位保留(比例为1时流动性清零但不销毁NFT)。 |
| exchange.IO("lp.collect", ...) | 领取仓位累积的手续费,不动本金;多个仓位合成一笔交易。 |
| exchange.IO("lp.remove", ...) | 撤出仓位的流动性并领取手续费,全部撤出时销毁仓位NFT;多个仓位合成一笔交易。 |
| exchange.IO("lp.positions", ...) | 列出钱包的LP仓位:区间、是否在区间内、流动性、当前数量与价值、未领手续费。 |
| exchange.IO("lp.history", ...) | 查询仓位的资金流水与盈亏:存入、撤出的本金和领取的手续费,按当前池价折算。 |
| exchange.IO("lp.track", ...) | 登记仓位ID,让lp.positions在节点查不到完整历史日志时也能找到这些仓位(重启后找回以前建的仓位)。 |
| exchange.IO("bridge.*", ...) | 跨链桥(经LI.FI聚合的Across、Stargate、CCTP等):查询支持的链与代币、报价、模拟,把代币从本交易所对象的链转到另一条EVM链或Solana,并查询到账进度。 |