Transactions

如何從乙太坊區塊鏈 UniSwap 數據中推斷代幣價格?

  • February 20, 2022

我想(如果可能的話)使用 UniSwap 數據從區塊鏈推斷代幣價格。看完下面這篇文章,我明白了是可行的:

https://blocklytics.org/blog/uniswap-api/

“給定交易所給定代幣的價格可以計算為交易所合約的 token_balance 除以其 ether_balance。”

我的第一次嘗試是檢查一些交易數據,例如這個交易: https ://etherscan.io/tx/0x10de93fd474b5c45035ea5d9ef42172ba6026e024cf77275a72c2b291b118a6d

此頁面以更易讀的方式(對我而言)解釋了交易: https ://etherscan.io/address/0x2bf5a5ba29e60682fc56b2fcf9ce07bef4f6196f#events

我知道我們有:

uint256 tokens_sold
25661215840000000000
uint256 eth_bought
3014603688879169830

所以這意味著一個比率:25661215840000000000 / 3014603688879169830 = 8.512302 對於這個代幣交換 NMR / ETH。

這似乎接近這兩個代幣之間的目前比率(今天早上來自 CoinMarketCap 的價格):203.64 / 23.77 = 8.567101

這種方法正確嗎?

此外,當我在 BigQuery 中查看相同的交易數據時,我得到:

輸入= 0x95E3C50B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000來了

我可以分解成:

0x95e3c50b = 方法 ID

0000000000000000000000000000000000000000000000001641ef3d8f7d3c000 = 25661215840000000000 十進制這似乎很好:我發現與上面相同的 tokens_sold 。

000000000000000000000000000000000000000000000000029a07940a8276bdd = 2999530670434773981 這是什麼?

0000000000000000000000000000000000000000000000000000000005ecbd296 = 1590416022 這是什麼?

我正在努力尋找與上述相同的 eth_bought 金額:3014603688879169830。

有人可以幫忙嗎?

“給定交易所給定代幣的價格可以計算為交易所合約的 token_balance 除以其 ether_balance。”

這個描述的意思是:

  1. 鏈上價格:與鏈下價格相反,這是您在各個交易所看到的價格,當然每個交易所都可能不同。
  2. 現貨價格:這是您將獲得 1 wei 的價格,但它並沒有告訴您超過 1 wei將獲得多少回報。

在這裡了解利率回報之間的區別很重要。

費率告訴您 1 單位可以獲得多少。

當你去任何國家的任何街道上的任何交易所時,這是一種常見的互動方式。

例如,你去倫敦的一家交易所問美元匯率是多少,他們會告訴你 1 英鎊 = 2 美元。

在這個現實世界的例子中,利率回報這兩個術語是等價的,因為利率是線性的,這意味著 2 英鎊您將獲得 4 美元,3 英鎊您將獲得 6 美元,以此類推。

在 UniSwap 的交易系統上(就像在區塊鏈上的許多其他交易系統中一樣),利率回報等價的。

例如,如果您在 UniSwap 上的 ETH/TKN 現貨價格為 10,則意味著您的 1 wei TKN,您將獲得 10 wei 的 ETH。

但是對於你的 TKN 的 1234 wei,你必然會得到少於 12340 wei 的 ETH。

這是因為您的轉換會出現滑點(損失)。

它可能會讓您認為這個現貨價格是一個騙局(騙局)。

但它對於池的某些測量仍然有用。

但是,您絕對不應該依賴這個比率來計算某個給定金額的預期回報

為此,您可以使用Y * x / (X + x), 其中:

  • x是您輸入的源令牌數量
  • X是源代幣中池的餘額
  • Y是目標代幣中池子的餘額

請注意,當您的輸入金額接近 1 時,預期回報會更接近匯率(即現貨價格,正如您在本答案頂部的問題中所引用的那樣Y / X)。

引用自:https://ethereum.stackexchange.com/questions/83701