我誤解了我看到的氣體數據。我的斷線在哪裡?
我肯定錯過了什麼。也許有人可以幫我看看我在哪裡誤解。
如果這個問題已經被問過,請原諒我。我看到一些相鄰的問題,但無法回答我的問題。
我正在嘗試計算一筆交易的最高美元成本。我不想使用 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.1096027
Gwei?!不。一定是錯的。所以也許我的燃氣單位錯了,這是魏的價格?這樣就變成了:0.029941438 * (24.169920433 + 1.5) = 0.76859433
Gwei!?不。仍然明顯錯誤。好的,讓我們忘記手動計算並直接從煉金術中使用 feeData。
maxFeePerGas = 49839840866 or ~49.8 Gwei gasEstimate = 21000 so... 49.8 * 21000 = 1045800 (Gwei!?) this is not right either.
我所知道的是:
- 我每 gwei calc 的美元是正確的
- gasEstimate 不是wei,實際上是gas 單位。
- 似乎這
maxFeePerGasGwei
是我在預言機上看到的總 gwei 成本,但是,將其與我的估計相乘顯然是不正確的……感謝您閱讀本文。最近幾天我一直在努力解決這個問題,我想了解一下。
當您簽署乙太坊交易時,您指定一個
gasLimit
. 不是gasLimit
出現在您的數據中的 29941438 塊,而是您的交易gasLimit
。這是您將支付的最大天然氣*單位數。*一個普通的 ETH 轉移到EOA總是消耗 21000 個氣體單位,所以對於這樣的交易,你可以將交易設置gasLimit
為 21000。假設您的交易最終在 a
baseFeePerGas
為 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 作為小費,但不再是那個,因為您指定了maxFeePerGas
15 gwei 的絕對最大值。因此,您為每個 gas 單位支付的 ETH 的絕對最大金額始終為
maxFeePerGas
. 因此,如果您指定一筆交易gasLimit
為 21000 個 gas 單位,並指定maxFeePerGas
每個 gas 單位為 15 gwei,那麼您可能被收取的絕對最大 ETH 為 21000 × 15 = 315000 gwei,或 0.000315 ETH。這些 0.000315 ETH 的美元價值將取決於目前的市場匯率。