Uniswap 中的执行价格是如何计算的?

dec*_*ind 10 ethereum solidity smartcontracts

我已经花了几个小时试图了解执行价格。

我理解中间价格的概念,因为它是两对之间的准备金比率。

根据 Uniswap sdk文档,执行价格是发送/接收资产的比率。我很难理解计算是如何完成的。此外,Uniswap 的货币对交换似乎是基于执行价格而不是中间价格。为什么在交易时使用执行价格而不是中间价格?

sha*_*sen 6

在自动做市商中,例如 Uniswap,您将收到的代币数量取决于您以非线性方式发送的代币数量您从池中移除的流动性越多,您收到的代币就越少。决赛。

\n

如果不考虑费用,则 X 和 Y 对的储备必须满足每次掉期的以下不变量:

\n
Xold Yold = Xnew Ynew\n
Run Code Online (Sandbox Code Playgroud)\n

因此,通过将 \xce\x94X 发送到池中,您将根据以下公式收到 \xce\x94Y:

\n
\xce\x94Y = (Y \xce\x94X)/(X + \xce\x94X)\n
Run Code Online (Sandbox Code Playgroud)\n

执行价格定义为\xce\x94Y/\xce\x94X,即

\n
Execution price = Y/(X+\xce\x94X)\n
Run Code Online (Sandbox Code Playgroud)\n

请注意,中间价格(定义为 Y/X)近似执行价格,因为 \xce\x94X 近似于 0。这就是为什么 Uniswap 声明中间价格“代表理论上您可以进行无穷小金额交易的价格(\ xce\xb5) 的一个令牌为另一个令牌”。然而,实际上,您将支付执行价格,因为您还需要支付从池中移除流动性的费用。

\n