Error: VM Exceptionの解決
Metamask などで SUBMIT して実行したときに発生するエラーに関する超簡単な覚書です.
ケース1
Error: VM Exception while processing transaction: revert
例えば,Solidity 側で require()
の条件を満たしていないときに発生します.
ケース2
Error: VM Exception while processing transaction: invalid opcode
例えば,存在しないものを呼び出そうとしているなど,JavaScript で書き方間違ってるときに発生します.
ケース3
Error: VM Exception while processing transaction: out of gas
コントラクトの実行の際,ガスが足りないときに発生します.設定しているガスの量を増やすか,Metamask 上で変更すると通ります.
また,コントラクト側で transfer
関数を用いていて,Web 側でこの関数を呼ぶときにガスの設定を入れ忘れても同様のエラーが発生します.ガスの設定は以下のようにして追加します.
contract.deposit(id, {gas: 300000})