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})