このようなコントラクトを呼び出す場合:
if(!contractname.somefunction()) throw;
スタック (コントラクト呼び出しが失敗したかどうかをチェックする) と、コントラクト呼び出しが成功してもメモリ内で false を返すかどうかの両方をチェックします。
ただし、.value()
orを使用.send()
すると、コントラクト呼び出しが失敗したかどうかのみがチェックされます。つまり、メモリ内の戻り値はチェックされません。
では、 Ethers を送信しながらメモリ内の戻り値を確認するにはどうすればよいでしょうか?