Leexchange.IO("encode", ...)
la fonction est appelée pour l'encodage des données.
Leexchange.IO("encode", ...)
fonction renvoie les données codées.
chaîne
exchange.IO(k, format de données,... args)exchange.IO(k, adresse, format des données)exchange.IO(k, adresse, donnéesFormat,...args)
Lek
Le paramètre est utilisé pour définir la fonction deexchange.IO()
fonction, réglée sur"encode"
signifie que la fonction est utilisée pour l'encodage des données.
K
vrai
chaîne
Leaddress
Le paramètre est utilisé pour définir l'adresse du contrat intelligent.exchange.IO("encode", ...)
fonction, en passant dans leaddress
Paramètre indique le codage de l'appel de méthode sur le contrat intelligent.exchange.IO("encode", ...)
fonction, si leaddress
paramètre n'est pas passé, la fonction est utilisée pour coder l'ordre de type spécifié et est fonctionnellement équivalente àabi.encode
dansSolidity
- Je ne sais pas.
l'adresse
faux
chaîne
LedataFormat
paramètre est utilisé pour spécifier la méthode, le type et l'ordre des données codées.
donnéesFormat
vrai
chaîne
Learg
paramètre est utilisé pour spécifier la valeur de données spécifique qui correspond à ladataFormat
Il peut y avoir plus d'unarg
paramètre, ainsi que le type et learg
Les paramètres dépendent de ladataFormat
réglage des paramètres.
arg
faux
chaîne, nombre, tuple, tableau et tous les autres types pris en charge par le système
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)
}
Par exemple, appeler la méthode d'encodageunwrapWETH9
:
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
*/
}
Il est équivalent à l'exemple de codage deabi.encode
dansSolidity
:
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)
}
Il prend en charge l'encodage d'une tuple ou d'un ordre de type contenant une tuple.
Cet ordre de type est composé de:tuple
, bytes
Alors quand tu appellesexchange.IO()
pour le codage, vous devez continuer à passer deux paramètres:
{
a: 30,
b: 20,
c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
Les paramètres transmis doivent également être conformes à la structure et au type detuple
, au sens de la définitiontypes
paramètre du formulaire: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)
}
Il prend en charge le codage séquentiel de tableaux ou de types contenant des tableaux:
Leexchange.IO()
fonction encapsule leencode
méthode, qui peut renvoyer le code d'appel de fonction àhex
Pour une utilisation spécifique, vous pouvez vous référer aux plateformes accessibles au public