我试图对参数进行编码,以便通过Set TradeModule调用C1。UniswapV3ExchangeAdapter有一个名为generateDataParam的函数,它给定跳数和费用,返回进行交易调用所需的数据。我是这样称呼的:
'0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
'0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
] [ '500' ] 它正在返回:
然而,当我试图将其输入到0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48中时,就会得到错误param.substring is not a function,这基本上是一个恢复或参数编码失败。
我用来调用trade函数的代码:
const tx = tradeModuleInstance.methods.trade(
setTokenAddress,
process.env.uniswapAdapter,
sourceToken,
sourceUnits,
targetToken,
minTargetUnits,
// web3.utils.hexToBytes(generatedParams), tried this to to no avail
Uint8Array.from(Buffer.from(generatedParams.slice(2), 'hex')),
)我使用的调用trade函数的全部参数是(set address编辑的):
0x[redacted]
UniswapV3ExchangeAdapter
0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
1000000000
0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
200000
[
192, 42, 170, 57, 178, 35, 254, 141, 10,
14, 92, 79, 39, 234, 217, 8, 60, 117,
108, 194, 0, 1, 244, 160, 184, 105, 145,
198, 33, 139, 54, 193, 209, 157, 74, 46,
158, 176, 206, 54, 6, 235, 72
]我不知道如何从data传递这个generatedParams参数,以便UniswapV3能够使用它。有小费吗?
发布于 2021-09-22 08:49:23
我成功地将generatedParams参数直接应用到trade函数中,而没有进行任何编码,从而成功地修复了这个问题。
https://ethereum.stackexchange.com/questions/110112
复制相似问题