我有一个仅接受字节数据的函数调用(dydx _getCallActions)
_getCallAction(bytes memory data)
Run Code Online (Sandbox Code Playgroud)
在合约执行期间,数据被传递到名为“callFunction”的用户定义函数
当解码为单个结构时,它可以工作,但是我想将数据解码为两个单独的结构。
function callFunction(bytes calldata _data){
// This works, when passed in encoded data matching Struct1Type
Struct1Type memory data1 = abi.decode(_data, (Struct1Type));
}
function callFunction(bytes calldata _data){
// Doesnt work
Struct1Type memory data1, Struct2Type memory data2 = abi.decode(_data, (Struct1Type,Struct2Type));
}
Run Code Online (Sandbox Code Playgroud)
我可以将数据解码为单个结构,然后有选择地将其转换为两个所需的结构,但这似乎气体效率低下