Contract-Deployment

合約部署“gas 資金不足”Arbitrum

  • August 15, 2022

我正在嘗試使用以下程式碼部署契約:

const Contract = await ethers.getContractFactory("Contract", {
   libraries: {
     UtilsLibrary: "0xF...e",
   }
});
let pool = await Contract.deploy({gasLimit: 10000000, gasPrice: ethers.utils.parseUnits("1", "gwei")})

當我在 Kovan、Goerly、Arbitrum Goerly 上執行它時,它工作得很好(顯然我更正了庫地址)。當我在 Arbitrum 主網上執行此程序時,我收到一條錯誤消息,提示“沒有足夠的資金用於 gas”。我已經更改了多個 RPC,結果不是運氣。

合約需要大約 5 百萬氣體來部署,我的錢包裡有大約 1 ETH。我真的對這裡可能出了什麼問題沒有更多的想法。任何建議表示讚賞。

UPD:我已經完全部署了 UtilsLibrary 作為腳本的一部分。因此,正在使用正確的簽名者並且它有資金。

我不得不將 gas 限制增加到 1 億,並且部署了 8 千萬。我不知道為什麼類似的交易只在 kovan 和 Arbitrum 測試網上花費了 500 萬

Arbitrum 有一種不同的方式來計算 gas 成本,請參見此處https://developer.offchainlabs.com/docs/Differences_Overview#fee-stats

特別是,calldata它比 L1 更昂貴,這解釋了合約部署的額外成本。

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