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])),但是没有人做出正确的签名。坚固性如何使元组具有功能签名?
答案 0 :(得分:2)
您与第一个亲密接触。实际的编码是从test((uint256,string))
开始的。
bytes4(keccak256("test((uint256,string))"): 6056f4cc