Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发出Web3地址的编码数组_Javascript_Ethereum_Web3_Abi - Fatal编程技术网

Javascript 发出Web3地址的编码数组

Javascript 发出Web3地址的编码数组,javascript,ethereum,web3,abi,Javascript,Ethereum,Web3,Abi,我试着把合同称为: //伪数据 功能:swapExactETHForTokens(uint256 amountOutMin,地址[]路径,地址到,uint256截止日期) 方法ID:0x7ff36ab5 [0]:000000000000000000000000000000000000000000000000 DD0F593444 [1]: 0000000000000000000000000000000000000000000000000000000000000080 [2] :00000000

我试着把合同称为:

//伪数据
功能:swapExactETHForTokens(uint256 amountOutMin,地址[]路径,地址到,uint256截止日期)
方法ID:0x7ff36ab5
[0]:000000000000000000000000000000000000000000000000 DD0F593444
[1]:  0000000000000000000000000000000000000000000000000000000000000080
[2] :00000000000000000000000047c0a182235478ca13d248d049eaa28d4ff7520f
[3] :00000000000000000000000000000000000000000000000000 5F9A1E44
[4]:  0000000000000000000000000000000000000000000000000000000000000002
[5] :000000000000000000C02AA39B223FE8D0A0E5C4F27EAD9083C756CC2
[6] :0000000000000000001A969239E12F07281F8876D11AFCEE081D872ADF
在我的TypeScript代码中,我有:

const abi=web3.eth.abi.encodeFunctionCall(
{
类型:“函数”,
名称:“swapExactTokensForTokens”,
投入:[
{
名称:'amountIn',
类型:“uint256”,
},
{
名称:“amountOutMin”,
类型:“uint256”,
},
{
名称:“路径”,
键入:“地址[]”,
},
{
姓名:'至',
键入:“地址”,
},
{
名称:'截止日期',
类型:“uint256”,
},
],
},
[
来自魏,,
托维,
//问题
web3.eth.abi.encodeParameter('地址[]'[
'0xC02AA39B223FE8D0A0E5C4F27EAD9083C756CC2',
“0x20fe562d797a42dcb3399062ae9546cd06f63280”,
]),
getAddress(),
截止日期,
]
)
从错误中可以看出,encodeFunctionCall似乎不希望使用编码数组(至少是我这样做的)。那么我如何传递一个地址数组呢

(node:21008) UnhandledPromiseRejectionWarning:
Error: expected array value
(argument="path", value="0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000020fe562d797a42dcb3399062ae9546cd06f63280", code=INVALID_ARGUMENT, version=abi/5.0.0-beta.153)

完整来源:

我相信
web3.eth.abi.encodeFunctionCall
需要JSON类型的参数,例如
address[]
表示为一个简单的字符串数组
[“0x…”,“0x…”

请尝试以下操作,而不是:

[
  "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
  "0x20fe562d797a42dcb3399062ae9546cd06f63280"
],

我相信
web3.eth.abi.encodeFunctionCall
需要JSON类型的参数,例如
address[]
表示为字符串的简单数组
[“0x…”,“0x…”

请尝试以下操作,而不是:

[
  "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
  "0x20fe562d797a42dcb3399062ae9546cd06f63280"
],

encodeFunctionCall
需要所有字符串。我甚至尝试过串数组,但没有骰子。我遇到了类似的问题@果戈的建议是正确的。您应该直接传递数组,而不通过.abi.encodeParameter
encodeFunctionCall
需要所有字符串。我甚至尝试过串数组,但没有骰子。我遇到了类似的问题@果戈的建议是正确的。您应该直接传递数组,而不通过.abi.encodeParameter传递它