首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请告诉我固体参数字节[]。在abigen编译之后,golang中的参数变成[] []字节。我该怎么做呢?

请告诉我固体参数字节[]。在abigen编译之后,golang中的参数变成[] []字节。我该怎么做呢?
EN

Ethereum用户
提问于 2022-03-18 09:43:34
回答 1查看 287关注 0票数 0

请告诉我固体参数字节[]。在abigen编译之后,golang中的参数变成undefined字节。我该怎么做呢?

代码语言:javascript
复制
// 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的合同调用,这是手动事务的调用实例。

EN

回答 1

Ethereum用户

发布于 2022-03-18 11:54:07

请告诉我固体参数字节[]。在abigen编译之后,golang中的参数变成undefined字节。我该怎么做呢?

几乎,这不是byte[],而是bytes[]

代码语言:javascript
复制
// Solidity: function multicall(uint256 deadline, bytes[] data) payable returns(bytes[])
//                                                ^^^^^^^

它是bytes1[]的别名,因此数据实际上是bytes1[][],在go中有效地将其转换为[][]byte

多路通只是通过一个事务进行多个呼叫的一种方式。所以你需要发送一个字节数组。第一个维度包含字节数组,第二个维度是它们各自的内容(即表示带有函数标识符和每个调用的参数的调用数据的字节)。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/124107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档