简体   繁体   English

如何将 `byte32`、`bytes` 和 `uint8` 参数发送给合约?

[英]How to send `byte32`, `bytes` and `uint8` params to contract?

I tried to simulate transaction to smart contract.我试图模拟智能合约的交易。 You can find it here: https://arbiscan.io/address/0xba12222222228d8ba445958a75a0704d566bf2c8#writeContract你可以在这里找到它: https://arbiscan.io/address/0xba12222222228d8ba445958a75a0704d566bf2c8#writeContract

I want to call function swap, I have a successfull transaction as an example.我想打电话给function swap,我有一个成功的交易作为例子。

Function: swap((bytes32,uint8,address,address,uint256,bytes), (address,bool,address,bool), uint256, uint256) Function: swap((bytes32,uint8,address,address,uint256,bytes), (address,bool,address,bool), uint256, uint256)

在此处输入图像描述

But when I tried to send a new transaction with same params, I got an error without any details.但是当我尝试发送具有相同参数的新交易时,我收到了一个没有任何细节的错误。 I think that I should encode a few params such as bytes , uint8 and byte32 before sending transaction, but I don't know how.我认为我应该在发送交易之前编码一些参数,例如bytesuint8byte32 ,但我不知道如何。 Any ideas?有任何想法吗?

在此处输入图像描述

Blockscan UI accepts tupple items wrapped in brackets [] - same as array items. Blockscan UI 接受用方括号[]包裹的元组项——与数组项相同。 And hex strings wrapped in quotes " .和用引号"包裹的十六进制字符串。

Example:例子:

["0x536f2b3c8607aa5bc16e25a194e93e5bba8c2faf000200000000000000000107", 0, "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8", "0x64343594Ab9b56e99087BfA6F2335Db24c2d1F17", 3100000, "0x"]

输入的屏幕截图

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM