Web3js
在 EIP-1559 之後對 metamask 的巨額建議費用
我們必須基於響應的應用程序負責連接 NFT 合約並呼叫“mint”函式。
要呼叫該函式,合約會要求 0.06ETH,數量就是 NFT 的使用者想要多少。
contract.methods.mintToken(amount).send({ from: account, value: amount * web3.utils.toWei("0.06", "ether"), });
但是metamask會設置巨大的gas limit,大約28500000,有時是10K甚至20K。
我們嘗試添加自定義gasLimit:
from: account, value: amount * web3.utils.toWei("0.06", "ether"), gasLimit: "300000",
這給出了合理的 150-200 美元。
但是這種收費的交易會讓一些人失敗,沒有模式。我們嘗試獲取最後一個區塊的中間值,動態增加等。沒有任何效果,即使有 500K 的氣體限制,人們仍然會獲得還原交易,有些人在幾秒鐘內獲得 200K 交易,真的是絕對隨機的。
所以我的問題是:
如何降低建議費用並使建議費用合理?
還有一點建議,當我使用
gasLimit: "300000"
should this begasLimit: amount * "300000"
時,因為使用者可以在一次交易中鑄造多達 20 個?
maxPriorityFeePerGas
通常應該在 1.5 到 3.0 左右(2.5 實際上是 Web3js 和 Ethersjs 用來解釋“MEV Heavy”塊的設置)。此參數通常由 metamask 錯誤配置,並且會使值與您的 相同maxFeePerGas
,因此瘋狂定價。如果您願意,可以使用此 API:
curl -sL api.txprice.com | jq
此 API 是 Blocknatives 天然氣定價服務的代理。他們也有一個 chrome 擴展。(注意:我的雇主操作此端點,除了來自 IP 的每分鐘請求數外,我們不跟踪使用者數據)。
它將為您提供基於信賴區間的交易成本定價。
如果您想了解其他服務/API 提供商如何產生他們的結果,這裡是 Gas Reporting Index(注意:我自己的工作):