请告诉我固体参数字节[]。在abigen编译之后,golang中的参数变成undefined字节。我该怎么做呢?
// Multicall0 is a paid mutator transaction binding the contract method 0x5ae401dc.
//
// Solidity: function multicall(uint256 deadline, bytes[] data) payable returns(bytes[])
func (_UniSwapV3Router *UniSwapV3RouterTransactor) Multicall0(opts *bind.TransactOpts, deadline *big.Int, data [][]byte) (*types.Transaction, error) {
return _UniSwapV3Router.contract.Transact(opts, "multicall0", deadline, data)
}https://etherscan.io/tx/0xafa45bc1badb33b4804249c1e5549ba9bc32f876d08a9a246806aa46f360faa3
这是uniswap的合同调用,这是手动事务的调用实例。
发布于 2022-03-18 11:54:07
请告诉我固体参数字节[]。在abigen编译之后,golang中的参数变成undefined字节。我该怎么做呢?
几乎,这不是byte[],而是bytes[]:
// Solidity: function multicall(uint256 deadline, bytes[] data) payable returns(bytes[])
// ^^^^^^^它是bytes1[]的别名,因此数据实际上是bytes1[][],在go中有效地将其转换为[][]byte。
多路通只是通过一个事务进行多个呼叫的一种方式。所以你需要发送一个字节数组。第一个维度包含字节数组,第二个维度是它们各自的内容(即表示带有函数标识符和每个调用的参数的调用数据的字节)。
https://ethereum.stackexchange.com/questions/124107
复制相似问题