wallet-cli exchange¶
TRON 协议层的 Bancor 交易所。
交易对交易的是 TRX 和 TRC10 资产,不涉及 TRC20,并按照 Bancor 联合曲线即时结算。两侧都可以是 TRX 或某个 TRC10 id,因此 TRC10 对 TRC10 的交易对同样合法;唯一的规则是两侧必须不同:不使用订单簿、对手方或撮合机制。使用本组命令前,需要注意以下几点与常见自动做市商的区别:
- 交易对专属于它的创建者。 只有创建该交易对的账户才能对它注资或撤资,而且这层绑定无法转移。这里没有 LP token,也没有外部流动性提供者。
- 任何人都可以交易。 流动性管理仅限创建者,但交易本身对所有账户开放。
- 协议不收取任何手续费。
trade、inject和withdraw只消耗带宽;唯一要花钱的是create,它会燃烧getExchangeCreateFee。 - 人类可读金额按节点提供的小数位换算。 每个
--amount/--amounts/--min-received都会用节点报告的 TRC10precision换算成基本单位,也就是说, 这个值决定了你签名时的实际数量。它会按协议允许的 0..6 范围以及所请求的 token id 做校验,但落在该范围内的错误值本地无从发现。当精确的基本单位数量很重要时, 请改用--raw-*系列参数——它们会被原样使用。 - TRX 在链上的 token id 是下划线
_。 可以写TRX(大小写不限)或某个 asset id;_也一样接受。json 展示的是真正上链的内容,因此 TRX 在其中显示为"_"。
定价由曲线决定,而不是简单使用储备比例。 两侧储备的比值只表示交易量趋近于零时的边际价格。
实际交易会改变曲线位置,交易量相对储备越大,滑点通常越高。这段差额就是滑点。exchange trade 接受一个可选的下限(--min-received、--raw-min-received 或 --slippage);三个都不给也是允许的,但会给出一条警告,并按协议最小值 expected = 1 提交,这实际上等于没有任何滑点保护。要估算特定数量的兑换结果,请基于当前储备执行
exchange trade --dry-run。储备量还受链参数 getExchangeBalanceLimit 限制。
本组命令只通过 ID 指定 token,即 TRX 或数字形式的 asset ID,不接受 token 名称。交易对使用冒号分隔(--pair TRX:1000123、--amounts 10000:500000);由于 TRC10 名称本身可以包含冒号,允许使用名称会导致 --pair 产生歧义。可通过 asset info <name> 将名称解析为 ID。
仅限 TRON。 Bancor 交易所内置于 TRON 协议中;本组每一条子命令在 EVM 网络上都会以 family_mismatch 失败。
用法¶
wallet-cli exchange COMMAND
子命令¶
| 命令 | 页面 | 说明 |
|---|---|---|
exchange create |
create.md | 创建交易对并为两侧注入初始资金 |
exchange inject |
inject.md | 按储备比例注资 |
exchange withdraw |
withdraw.md | 按储备比例撤资 |
exchange trade |
trade.md | 用一侧换取另一侧 |
exchange show |
show.md | 查看单个交易对的创建者、创建时间和储备 |
exchange list |
list.md | 分页列出交易对 |
另请参见¶
asset · tx send · chain params