Elexchange.IO("encode", ...)
La función es llamada para codificar datos.
Elexchange.IO("encode", ...)
función devuelve los datos codificados.
la cuerda
exchange.IO(k, formato de datos,...args)exchange.IO(k, dirección, formato de datos)exchange.IO(k, dirección, datosFormato,...args)
Elk
Parámetro se utiliza para establecer la función de laexchange.IO()
función, fijada en"encode"
significa que la función se utiliza para codificar datos.
el
verdadero
la cuerda
Eladdress
El parámetro se utiliza para establecer la dirección del contrato inteligente.exchange.IO("encode", ...)
función, pasando en eladdress
Parámetro indica la codificación de la llamada del método en el contrato inteligente.exchange.IO("encode", ...)
La función, si eladdress
si el parámetro no se pasa, la función se utiliza para codificar el orden de tipo especificado y es funcionalmente equivalente aabi.encode
En elSolidity
- ¿ Por qué?
Dirección
falsos
la cuerda
EldataFormat
Parámetro utilizado para especificar el método, el tipo y el orden de los datos codificados.
DatosFormato
verdadero
la cuerda
Elarg
Parámetro se utiliza para especificar el valor de datos específicos que coincide con eldataFormat
Puede haber más de unaarg
Parámetro, y el tipo y el número dearg
Los parámetros dependen de ladataFormat
Configuración de parámetros.
el
falsos
cadena, número, tuple, matriz y todos los otros tipos compatibles con el 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 ejemplo, llamando el método de codificaciónunwrapWETH9
:
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
*/
}
Es equivalente al ejemplo de codificación deabi.encode
En elSolidity
:
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)
}
Soporta la codificación de un tuplo o un orden de tipo que contiene un tuplo.
Este tipo de orden consiste en:tuple
, bytes
, así que cuando llamasexchange.IO()
para codificar, usted necesita seguir pasando dos parámetros:
{
a: 30,
b: 20,
c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
Los parámetros transmitidos deben ser también coherentes con la estructura y el tipo detuple
, tal como se define en eltypes
Parámetro del formulario: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)
}
Apoya la codificación secuencial de matrices o tipos que contienen matrices:
Elexchange.IO()
La función encapsula elencode
método, que puede devolver el código de llamada de la función ahex
Para un uso específico, puede consultar las plataformas disponibles públicamente.