Oexchange.IO("encode", ...)
A função é chamada para codificação de dados.
Oexchange.IO("encode", ...)
função retorna os dados codificados.
cordel
exchange.IO(k, dataFormat,...args)exchange.IO(k, endereço, dataFormat)exchange.IO(k, endereço, dataFormat,...args)
Ok
Parâmetro utilizado para definir a função doexchange.IO()
função, definida em"encode"
significa que a função é utilizada para codificação de dados.
k
verdade
cordel
Oaddress
O parâmetro é usado para definir o endereço do contrato inteligente.exchange.IO("encode", ...)
função, passando noaddress
O parâmetro indica a codificação da chamada do método no contrato inteligente.exchange.IO("encode", ...)
Função, se oaddress
se o parâmetro não for transmitido, a função é utilizada para codificar a ordem de tipo especificada e é funcionalmente equivalente aabi.encode
emSolidity
- Não.
Endereço
Falso
cordel
OdataFormat
O parâmetro é utilizado para especificar o método, tipo e ordem dos dados codificados.
DataFormat
verdade
cordel
Oarg
Parâmetro é usado para especificar o valor de dados específico que corresponde aodataFormat
Pode haver mais de umarg
Parâmetro, tipo e número dearg
Os parâmetros dependem dadataFormat
Configuração de parâmetros.
arg
Falso
string, number, tuple, array, e todos os outros tipos suportados pelo sistema
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)
}
Por exemplo, chamando o método de codificaçãounwrapWETH9
:
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
*/
}
É equivalente ao exemplo de codificação deabi.encode
emSolidity
:
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)
}
Suporta a codificação de uma tupla ou uma ordem de tipo contendo uma tupla.
Esta ordem de tipo consiste em:tuple
, bytes
, então quando ligarexchange.IO()
para codificação, você precisa continuar passando dois parâmetros:
{
a: 30,
b: 20,
c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
Os parâmetros transmitidos devem igualmente ser coerentes com a estrutura e o tipo detuple
, tal como definido notypes
Parâmetro do formulário: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)
}
Suporta a codificação sequencial de matrizes ou tipos contendo matrizes:
Oexchange.IO()
A função encapsula oencode
método, que pode retornar o código de chamada de função parahex
Para utilização específica, pode consultar as plataformas disponíveis publicamente