BSC鏈潘多拉星球Pandora開發系統智慧合約詳情

lin199發表於2023-05-15

在實際情況中,每一次交易都會收取一定的手續費用來交易LP,通常手續費為交易量的0.3%,這就表明你輸入的Δx並不是全用於計算,實際的計算值為Δx * 0.97%,剩下的作為手續費放入交易池中獎勵LP,下面是實際的推導過程:
設要用Δx數量的x代幣交換Δy代幣,則有

編輯:kaifa873

This article is only for system development requirements reference

設手續費的比例為ρ, 1 - ρ為γ
(x + Δx * γ) * (y - Δy) = k = x * y
設 α = Δx / x, β = Δy / y,將其代入上式可得
∴ (x + α * x * γ) * (y - β * y) = x * y
∴ (1 + α * γ) * (1 - β) = 1
∴ α = β / ((1 - β) * γ), β = (α * γ) / (1 + α * γ)
∴ Δy = (α * γ / (1 + α * γ)) * y = ((Δx * γ) / (x + Δx * γ)) * y
  Δx = β / (1 - β) * x = Δy / (y - Δy) * (1 / γ) * x
//我們假設ρ = 0.3%,所以γ = 997 / 1000
∴ 上述結果可以表示為:
  Δy = (997 * Δx * y) / (1000 * x + 997 * Δx)
  Δx = (1000 * Δy * x) / ((y - Δy) * 997))

透過上面推導可以看出當ρ為0時就成為了無手續費模式,並且可以發現一個問題,代入手續費之後整個池子的k只會略微變大,這是因為會有部分的費用作為手續費進入池子並不會進入交易當中。也可以理解為,你輸入的Δx = 手續費 + 實際的交易的數量

在實際的交易中,會出現以下兩種情況:

給出交易的x代幣數量,計算出y代幣的數量

  • 在這種情況下,輸入的x代幣會有一部分作為手續費放入池中,其餘部分才會被用來做交換。計算時可參考上面手續費交易的結果。

給出想要的y代幣數量,計算出所需要的x代幣數量

  • 給出想要獲取的y代幣,計算所需的x代幣數量,同時x代幣中包含了手續費和實際交換數量。計算時可參考上面手續費交易的結果。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69988456/viewspace-2951963/,如需轉載,請註明出處,否則將追究法律責任。

相關文章