公式
本页面展示了 mimo 协议中使用的公式。
概述
在每笔交易中,交易者用一定数量的某种代币交换一定数量的另一种代币,价格由公式定义。没有订单簿,无需等待成交。
mimo 使用的公式是著名的 ,该公式已被基于 AMM 的 DEX 广泛采用,如 Uniswap。
公式
假设 是源代币, 是目标代币。在 mimo 中,、 可以是 IOTX 或 XRC20 代币。设 、 分别是当前流动性池中的 X 代币、Y 代币。
基于著名的 AMM 方程:
其中 是常数。
交易前后 和 的乘积保持不变。详情请参阅 Vitalik Buterin 的文章。
基于输入的定价
让我们进一步定义 、 分别是您想要支付的 X 代币数量和您将获得的 Y 代币数量。
getInputPrice
如果 getInputPrice 表示通过出售给定的 可以购买多少 Y 代币(即 ):
getOutputPrice
如果 getOutputPrice 表示购买 个 Y 代币需要多少 X 代币:
其中上述等式中的 / 表示 divToInteger,意味着除法结果向下取整。
价格影响
在 AMM 中,每笔交易后价格都会变化。交易者希望在交易前了解价格影响。
有两种计算价格影响的方法。可以基于 或 。一种基于输入,一种基于输出。
基于输入 ()
基于输出 ()
注意
价格影响始终在 -1 和 0 之间。
跨交易价格影响
如果两个代币之间没有直接交易对,比如在 V1 中我们只支持 IOTX/代币对,交易者需要使用一种代币(如 IOTX)作为桥接来在两个代币之间进行交易。
在这种情况下,价格影响为:
其中:
- 是第一个交易对的价格影响,如 到 IOTX
- 是第二个交易对的价格影响,如 IOTX 到