RE: RE: Solidity开发指南
You are viewing a single comment's thread from:

RE: Solidity开发指南

Words
67
Reading
1 min
Listen
Play
4M

Application Binary Interface 应⽤程序⼆进制接⼝
调⽤⼀个合约函数 = 向合约地址发送⼀个交易(交易的内容就是 ABI 编码数据)

⽤ABI编码传递数据给合约,因此与合约交互离不开ABI

abi.encode(...) returns (bytes) : ABI
abi.encodePacked(...) returns (bytes) : 
abi.encodeWithSelector(bytes4 selector, ...) returns (bytes)ABI
abi.encodeWithSignature(string signature, ...) returns (bytes):  abi.encodeWithSelector(bytes4(keccak256(signature), ...)

eg:
function set(uint x) public {
   storedData = x;
}
function abiEncode() public constant returns (bytes) {
    return abi.encode(1, 2);  // 计算set(uint x) 的ABI编码
    // return abi.encodePacked(1, 2);
    // return abi.encodeWithSignature("set(uint256)" ,1); //计算函数ABI编码
    // abi.encodeWithSelector(set.selector, x);
}
@lemooljiang: Application Binary | Ecency