坚固性如何使元组(嵌套abi)具有功能签名?

时间:2018-08-09 01:12:06

标签: solidity abi

struct Test {
  uint ui;
  string s;
}
function test(Test t) public {
  emit Log(t.ui, t.s);
}

我对ABI有一些了解。我使用实验性ABIEncoderV2选项订立了此合同。总之,此函数的签名为0x6056f4cc,我在操作码中发现了该值。我用sha3尝试了一些案例测试(uint256,string),test(tuple(uint256,string)),test(tuple),test(tuple [uint256,string])),但是没有人做出正确的签名。坚固性如何使元组具有功能签名?

1 个答案:

答案 0 :(得分:2)

您与第一个亲密接触。实际的编码是从test((uint256,string))开始的。

bytes4(keccak256("test((uint256,string))"): 6056f4cc