Peraturanexchange.IO("encode", ...)
fungsi dipanggil untuk pengekodan data.
Peraturanexchange.IO("encode", ...)
fungsi mengembalikan data yang dikodkan.
senar
exchange.IO(k, dataFormat,...args)exchange.IO(k, alamat, dataFormat)exchange.IO(k, alamat, dataFormat,...args)
Peraturank
parameter digunakan untuk menetapkan fungsiexchange.IO()
fungsi, ditetapkan kepada"encode"
bermaksud fungsi digunakan untuk pengekodan data.
k
betul
senar
Peraturanaddress
parameter digunakan untuk menetapkan alamat kontrak pintar.exchange.IO("encode", ...)
Fungsi, melalui dalamaddress
parameter menunjukkan pengekodan panggilan kaedah pada kontrak pintar.exchange.IO("encode", ...)
fungsi, jikaaddress
parameter tidak diteruskan, fungsi ini digunakan untuk mengkod perintah jenis yang ditentukan dan berfungsi bersamaan denganabi.encode
dalamSolidity
.
alamat
palsu
senar
PeraturandataFormat
Parameter digunakan untuk menentukan kaedah, jenis, dan urutan data yang dikodkan.
dataFormat
betul
senar
Perkhidmatanarg
parameter digunakan untuk menentukan nilai data tertentu yang sepadan dengandataFormat
Mungkin ada lebih daripada satu parameterarg
parameter, dan jenis dan bilanganarg
parameter bergantung kepadadataFormat
tetapan parameter.
arg
palsu
rentetan, nombor, tuple, array, dan semua jenis lain yang disokong oleh sistem
function main() {
// Main network address of ContractV3SwapRouterV2: 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45
// Calling the unwrapWETH9 method requires registering the ABI first, which is omitted here
// "owner" represents the wallet address, which need to fill in the specific, 1 represents the number of unpacking, unpacking a WETH into ETH
var data = exchange.IO("encode", "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45", "unwrapWETH9(uint256,address)", 1, "owner")
Log(data)
}
Sebagai contoh, memanggil kaedah pengekodanunwrapWETH9
:
function main() {
var x = 10
var address = "0x02a5fBb259d20A3Ad2Fdf9CCADeF86F6C1c1Ccc9"
var str = "Hello World"
var array = [1, 2, 3]
var ret = exchange.IO("encode", "uint256,address,string,uint256[]", x, address, str, array) // uint i.e. uint256 , the type length needs to be specified on FMZ
Log("ret:", ret)
/*
000000000000000000000000000000000000000000000000000000000000000a // x
00000000000000000000000002a5fbb259d20a3ad2fdf9ccadef86f6c1c1ccc9 // address
0000000000000000000000000000000000000000000000000000000000000080 // Offset of str
00000000000000000000000000000000000000000000000000000000000000c0 // Offset of array
000000000000000000000000000000000000000000000000000000000000000b // The length of str
48656c6c6f20576f726c64000000000000000000000000000000000000000000 // str data
0000000000000000000000000000000000000000000000000000000000000003 // The length of the array
0000000000000000000000000000000000000000000000000000000000000001 // array the first data
0000000000000000000000000000000000000000000000000000000000000002 // array the second data
0000000000000000000000000000000000000000000000000000000000000003 // array the third data
*/
}
Ia sama dengan contoh pengekodanabi.encode
dalamSolidity
:
function main() {
var types = "tuple(a uint256,b uint8,c address),bytes"
var ret = exchange.IO("encode", types, {
a: 30,
b: 20,
c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}, "0011")
Log("encode: ", ret)
}
Ia menyokong pengekodan tuple atau urutan jenis yang mengandungi tuple.
Perintah jenis ini terdiri daripada:tuple
, bytes
, jadi apabila memanggilexchange.IO()
untuk pengekodan, anda perlu terus lulus dua parameter:
{
a: 30,
b: 20,
c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
Parameter yang dihantar juga harus konsisten dengan struktur dan jenistuple
, seperti yang ditakrifkan dalamtypes
Parameter borang:tuple(a uint256,b uint8,c address)
.
bytes
:"0011"
function main() {
var path = ["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "0xdac17f958d2ee523a2206206994597c13d831ec7"] // ETH address, USDT address
var ret = exchange.IO("encode", "address[]", path)
Log("encode: ", ret)
}
Ia menyokong pengekodan berurutan array atau jenis yang mengandungi array:
Peraturanexchange.IO()
fungsi merangkumiencode
kaedah, yang boleh mengembalikan kod panggilan fungsi kehex
Untuk kegunaan khusus, anda boleh merujuk kepada platform