Gas

我誤解了我看到的氣體數據。我的斷線在哪裡?

  • June 12, 2022

我肯定錯過了什麼。也許有人可以幫我看看我在哪裡誤解。

如果這個問題已經被問過,請原諒我。我看到一些相鄰的問題,但無法回答我的問題。

我正在嘗試計算一筆交易的最高美元成本。我不想使用 oracle 或 api,而是想看看如何使用原始 rpc / 提供程序數據來完成。這是我正在查看的範例

 usdPerEth: 1514.5428940543754, // current avg ETH in USD (accurate enough)
 usdPerGwei: 0.0000015145428940543755, // = (usdPerEth / 1000000000)
 blockData: { // alchemy raw block data
   gasLimit: '29941438', // max amount of gas units (not wei?) allowed in block
   baseFeePerGas: '24169920433' // base fee that everyone pays - adjusts by 12.5% depending on amount of txs processed previously.
 },
 feeData: { // alchemy fee data
   gasEstimate: 21000, // # of gas units? not wei? for my estimated tx
   maxFeePerGas: '49839840866', // total amount in wei i might pay per unit above (including priority)?
   maxPriorityFeePerGas: '1500000000', // "tip" / priority / miner incentive in wei
   gasPrice: '25169920433', // is this is the pre-london price? wei

   // converted above fee data to gwei
   maxFeePerGasGwei: 49.839840866,
   maxPriorityGwei: 1.5,
   gasPriceGwei: '25.169920433'
 }

查看它說的乙太坊開發文件

計算總交易費用的方法如下:Gas units (limit) * (Base fee + Tip)

有了上面的數據就變成了。

總成本(以 wei 為單位)=gasLimit * (baseFeePerGas + maxPriorityFeePerGas)

變為29941438 * (24.169920433 + 1500000000) = 7.68594331e17 (wei) 轉換為 gwei 以使其更容易 29941438 * (24.169920433 + 1.5) = 768594331.1096027Gwei?!不。一定是錯的。所以也許我的燃氣單位錯了,這是魏的價格?這樣就變成了: 0.029941438 * (24.169920433 + 1.5) = 0.76859433Gwei!?不。仍然明顯錯誤。

好的,讓我們忘記手動計算並直接從煉金術中使用 feeData。

maxFeePerGas = 49839840866 or ~49.8 Gwei
gasEstimate = 21000

so...
49.8 * 21000 = 1045800 (Gwei!?) this is not right either.

我所知道的是:

  1. 我每 gwei calc 的美元是正確的
  2. gasEstimate 不是wei,實際上是gas 單位。
  3. 似乎這maxFeePerGasGwei是我在預言機上看到的總 gwei 成本,但是,將其與我的估計相乘顯然是不正確的……

感謝您閱讀本文。最近幾天我一直在努力解決這個問題,我想了解一下。

當您簽署乙太坊交易時,您指定一個gasLimit. 不是gasLimit出現在您的數據中的 29941438 塊,而是您的交易 gasLimit。這是您將支付的最大天然氣*單位數。*一個普通的 ETH 轉移到EOA總是消耗 21000 個氣體單位,所以對於這樣的交易,你可以將交易設置gasLimit為 21000。

假設您的交易最終在 abaseFeePerGas為 10 gwei 的區塊中被開採。這意味著,對於您的交易將消耗的 21000 個 gas 單位中的每 1 個,您將支付 10 gwei 的“區塊包含費”。這筆費用是“協議費用”,它會被燒掉,不會歸礦工所有。如果您提供的 amaxFeePerGas超過 10 gwei,例如 15 gwei,則有 5 gwei 盈餘(每個氣體單位)。礦工將嘗試從這 5 gwei 中盡可能多地索取“優先費用”(小費)……但最多只能達到maxPriorityFeePerGas. 因此,例如,如果您指定maxPriorityFeePerGas了 2 gwei,那麼礦工將收取 2 gwei,並且您將退還您預先支付的額外 3 gwei(當您提供每個 gas 單位 15 gwei 時)。另一方面,如果您指定了更高的maxPriorityFeePerGas例如 9 gwei,那麼礦工將把整個 5 gwei 作為小費,但不再是那個,因為您指定了maxFeePerGas15 gwei 的絕對最大值。

因此,您為每個 gas 單位支付的 ETH 的絕對最大金額始終為maxFeePerGas. 因此,如果您指定一筆交易gasLimit為 21000 個 gas 單位,並指定maxFeePerGas每個 gas 單位為 15 gwei,那麼您可能被收取的絕對最大 ETH 為 21000 × 15 = 315000 gwei,或 0.000315 ETH。

這些 0.000315 ETH 的美元價值將取決於目前的市場匯率。

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