Как проверить возвращаемое значение контрактного вызова при отправке Эфиры? - PullRequest
0 голосов
/ 11 октября 2019

При вызове контракта, подобного этому:

if(!contractname.somefunction()) throw;

Он одновременно проверяет стек (который проверяет, не завершился ли вызов по контракту), и если вызов по контракту успешен, но возвращает false в памяти.

Но при использовании .value() или .send() он только проверяет, не завершены ли вызовы по контракту, что означает, что он не проверяет возвращаемое значение в памяти.

Так как проверять возвращаемое значение в памяти, покавсе еще отправляете эфиры?

1 Ответ

0 голосов
/ 07 ноября 2019

Хороший способ - через События . Для этого somefunction() у вас может быть что-то, показанное ниже:

contract Contractname {

  event ReturnValue(uint);

  function somefunction(){
    uint result;

    //...some computation right here

    emit ReturnValue(result);
  }

}

Невозможно отправить эфир, возвращая возвращаемое значение в то же время.

...