Solidity

如何在處理事務時解決 VM Exception:Out of gas

  • April 22, 2018

我正在嘗試借助 ganache testrpc 中的 web3.js 呼叫此函式,但它在處理事務時給了我 VM Exception 錯誤:氣體不足

我試圖將甘納許的氣體增加到 999999999999 仍然不起作用……

function initialEscrowDetail(uint transactionId,address partyB,uint amount,bool condition){

    escrowDetail[transactionId].originator=msg.sender;
    escrowDetail[transactionId].beneficiary=partyB;
    escrowDetail[transactionId].amount=amount;
    escrowDetail[transactionId].payoutCondition=condition;
    escrowDetail[transactionId].escrowCompleted=false;
}

在此處輸入圖像描述

如果未指定,web3 中的預設氣體為 90k。由於每次新的儲存修改成本為 20k,其中 5 次儲存修改您使用了超過 100k 的 gas。

您可以在交易氣體中添加可選的最後一個參數

escrow.initialEscrowDetail(1,"0x0",200,true, { gas: 1000000 });

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