universal_router 中inputs bytes要如何构造 web3j

if (command == Commands.V2_SWAP_EXACT_IN) {
// equivalent: abi.decode(inputs, (address, uint256, uint256, bytes, bool))
address recipient;
uint256 amountIn;
uint256 amountOutMin;
bool payerIsUser;
assembly {
recipient := calldataload(inputs.offset)
amountIn := calldataload(add(inputs.offset, 0x20))
amountOutMin := calldataload(add(inputs.offset, 0x40))
// 0x60 offset is the path, decoded below
payerIsUser := calldataload(add(inputs.offset, 0x80))
}
address[] calldata path = inputs.toAddressArray(3);
address payer = payerIsUser ? lockedBy : address(this);
v2SwapExactInput(map(recipient), amountIn, amountOutMin, path, payer);
}

请先 登录 后评论

1 个回答

赵逸 - 区块链开发

在inputData里,32byte 为一个参数,

0-31 :recipient
32-63:amountIn
64-95:amountOutMin
128-159: payerIsUser
192-223:token0
224-255:token1

差不多就这么一个参数

请先 登录 后评论
  • 1 关注
  • 0 收藏,1485 浏览
  • 提出于 2024-03-28 21:58