Sumber daya yang dimuat... Pemuatan...

Dukungan encode

具体使用可以参考平台公开的[「Uniswap V3 交易类库」模板](https://www.fmz.com/strategy/397260)。
这里使用编码```unwrapWETH9```方法的调用为例子:

fungsi main (() { // ContractV3SwapRouter V2 alamat utama: 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45 // Menggunakan metode unwrapWETH9 membutuhkan pendaftaran ABI terlebih dahulu, di sini pilih pendaftaran // Tangki pemilik dompet mewakili alamat dompet, yang harus diisi secara khusus, dan 1 mewakili jumlah pembongkaran, mengubah satu pembongkaran WETH menjadi ETH var data = exchange.IO ((encode, 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45, unwrapWETH9 ((uint256, address), 1, owner) Log (data) Aku tidak tahu.


在调用```exchange.IO("encode", ...)```函数时,如果第二个参数(字符串类型)为```0x```开头,表示编码(encode)智能合约上的方法调用。
如果不是以```0x```开头则用于编码指定的类型顺序,功能等同```solidity```里的```abi.encode```,参考以下例子。

fungsi main (() { x adalah 10 var address = 0x02a5fBb259d20A3Ad2Fdf9CCADeF86F6C1c1Ccc9 var str = Hello World Var array = [1, 2, 3] var ret = exchange.IO ((encode string, uint256, address,string,uint256[], x, address, str, array) // uint yaitu uint256, di FMZ diperlukan untuk menentukan panjang tipe Log (Ret: Oh, ret) /* Jadi jika kita melihat bahwa x adalah x, kita akan melihat bahwa x adalah x. 0000000000000000000002a5fbb259d20a3ad2fdf9ccadef86f6c1c1ccc9 // alamat Pergeseran dari 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 / str 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0 // pergeseran dari array Panjang dari 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b // str 48656c6c6f20576f726c6400000000000000000000000000000000000000000000000000 // str data 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003 // panjang dari array 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 // array data pertama adalah bahwa data pertama adalah array 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 // array data kedua 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003 // array data ketiga */ Aku tidak tahu.


支持对元组(tuple)或者包含元组的类型顺序编码:

Fungsi utama var tipe = tuple ((a uint256,b uint8,c alamat),byte var ret = exchange.IO ((encode, tipe, { a: 30, b: 20, c: 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 }, 0011) Log ((kode: , ret) {\cH00FFFF}


这个类型顺序由```tuple```、```bytes```组成,所以在调用```exchange.IO()```函数进行```encode```时需要继续传入两个参数:

- 对应tuple类型的变量:

{\cH00FFFF} a: 30, b: 20, c: 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 {\cH00FFFF}

  传入的参数也必须和```tuple```的结构、类型保持一致,如同```types```参数中定义的形式:```tuple(a uint256,b uint8,c address)```。
- 对应bytes类型的变量:

“0011”


支持对数组或者包含数组的类型顺序编码:

Fungsi utama VAR path = [0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0xdac17f958d2ee523a2206206994597c13d831ec7] // ETH alamat, USDT alamat var ret = exchange.IO ((encode, address[], path) Log ((kode: , ret) {\cH00FFFF} `

Menggunakan metode Ethereum RPC Dukungan untuk encodePacked