Transactions
我怎麼知道呼叫合約時要使用多少gas?
當我呼叫(發送交易)合約時,我如何確定要使用多少天然氣?有沒有辦法預先計算這個&如果我發送太多/太少的氣體會發生什麼?
JSON-RPC 和Javascript中都有 estimateGas API 。
它們是估計值,對於想要進一步精確的開發人員來說,需要進行測試,可能在私有鏈上進行。
如果提供了過多的氣體,多餘的氣體將轉化為乙太幣並返還。 如果指定的 gas 太少,礦工將沒收所有指定的 gas,交易將被撤銷:就像合約從未被呼叫一樣。
使用者通常必須信任他們正在使用的 DApp,具有良好 UI 和 UX 的 DApp 可能會向使用者表明一些估計成本,甚至可能通過向使用者的帳戶發送一些乙太幣或給新使用者一個有一些乙太幣的帳戶。
這是可行的,因為大多數交易都需要非常少量的乙太幣;1 個乙太幣是 10^18 wei,可以執行許多交易。舉個例子,如果一個人只是簡單地使用乙太坊來轉移 wei/ether,在目前 5 Gigawei 的 gas 價格下,一個使用者可以用 1 個 ether 進行大約 9523 次轉移。這是因為價值轉移交易需要花費 21000 gas,因此計算量為
1e18 / (21000 * 5e9) = 9523.80
.