Solidity

如何計算合約部署的gas @_@

  • April 15, 2020

請參閱以下內容:

rinkeby: {
 host: "localhost",
 port: 8545,
 from: "my address",
 network_id: 4,
 gas: 4800000,
 gaslimit: 2100000000000
}

當我將 gas 設置為 4700000 時,部署合約時收到以下錯誤。

Error: insufficient funds for gas * price + value

當我將氣體設置為 4800000 時,我收到了以下錯誤:

Error: exceeds block gas limit

相信我,兩者之間的任何值都會導致上述任一錯誤。

我可以知道我能做什麼嗎?這是否意味著我的契約對林克比來說太複雜了?

      • 補充筆記: - - -

這就是我啟動 Rinkeby 節點的方式。

geth --datadir rinkeby console --rinkeby --rpc --rpcapi db,eth,net,web3,personal --rpcaddr "0.0.0.0" --rpccorsdomain "*"

請問是否有錯誤,因為啟動後,我使用以下命令檢查帳戶(Metamask中有大量ETH)。它總是返回 0。

eth.getBalance("<public key>");

首先使用 Javascript VM在http://remix.ethereum.org上部署它。然後,您可以查看實際的 gas 使用情況以進行部署。

在此處輸入圖像描述

我認為你應該嘗試使用 Remix + Metamask 部署你的合約。看看是否有效。如果它有效,則問題出在您的設置上。您似乎正在使用 Truffle 和 geth/parity 來部署您的合約,對吧?確保您的帳戶已解鎖(您必須支付汽油費)。

如果你想查看你的合約花費了多少 gas,這個工具非常有用:https ://github.com/cgewecke/eth-gas-reporter

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