发送以太币时如何查看合约调用的返回值?



当像这样调用合约时:

if(!contractname.somefunction()) throw;

它既检查堆栈(检查合约调用是否失败(,也检查合约调用是否成功但在内存中返回 false。

但是当使用.value().send()时,它只检查合约调用是否失败,这意味着它不会检查内存中的返回值。

那么如何在发送以太币的同时检查内存中的返回值呢?

一个好方法是通过事件。对于该somefunction(),您可以拥有以下内容:

contract Contractname {
event ReturnValue(uint);
function somefunction(){
uint result;
//...some computation right here
emit ReturnValue(result);
}
}

不可能在同时返回返回值的同时发送以太币。

最新更新