【发布时间】:2018-09-23 10:55:25
【问题描述】:
根据solidity文档page
我创建并部署了以下合同:
pragma solidity ^0.4.16;
contract Foo {
uint public result;
function bar(bytes3[2]) public pure {}
function baz(uint32 x, bool y) public pure returns (bool r) { result = x; return y; }
function sam(bytes, bool, uint[]) public pure {}
}
地址:'0x0aaaaaaaaaaaaaaaaaaaaaaaaax'
现在我创建了另一个合约来执行 baz 方法。
pragma solidity ^0.4.16;
contract ResultUtil {
function generateResult(address _foo, bytes _data) public {
_foo.call(_data); // call baz method.
}
}
执行功能生成器(“0x0aaaaaaaaaaaaaaaaaaaaaaaaaaax”,“0xcdcd77c00000000000000000000000000/30000000000/300000000/30000000000/300000000/3000000000000/30000000000/300000000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c0000c600c600c600ci000000/30000/30000c0000c0000c0000cive0000c0000c600c600c600c800c600cive0000c600cive0000c600cive000000/30000/3000000/30000/30000c0000caw00000000/30000/>
函数执行成功但结果值仍然为0
【问题讨论】:
-
fyi,如果我调用函数
(bytes4(sha3("baz(uint256,bool)")), 15, true),它工作成功。
标签: blockchain ethereum solidity abi smartcontracts