При вызове контракта, подобного этому:
if(!contractname.somefunction()) throw;
Он одновременно проверяет стек (который проверяет, не завершился ли вызов по контракту), и если вызов по контракту успешен, но возвращает false в памяти.
Но при использовании .value()
или .send()
он только проверяет, не завершены ли вызовы по контракту, что означает, что он не проверяет возвращаемое значение в памяти.
Так как проверять возвращаемое значение в памяти, покавсе еще отправляете эфиры?