O recurso está a ser carregado... Carregamento...

exchange.IO("codificar",...)

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)

OkParâ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 OaddressO parâmetro é usado para definir o endereço do contrato inteligente.exchange.IO("encode", ...)função, passando noaddressO parâmetro indica a codificação da chamada do método no contrato inteligente.exchange.IO("encode", ...)Função, se oaddressse o parâmetro não for transmitido, a função é utilizada para codificar a ordem de tipo especificada e é funcionalmente equivalente aabi.encodeemSolidity- Não. Endereço Falso cordel OdataFormatO parâmetro é utilizado para especificar o método, tipo e ordem dos dados codificados. DataFormat verdade cordel OargParâmetro é usado para especificar o valor de dados específico que corresponde aodataFormatPode haver mais de umargParâmetro, tipo e número deargOs parâmetros dependem dadataFormatConfiguraçã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.encodeemSolidity:

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:

    1. Variaveis correspondentes ao tipo de tupla:
    
    {
        a: 30,
        b: 20,
        c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    }
    
    

    Os parâmetros transmitidos devem igualmente ser coerentes com a estrutura e o tipo detuple, tal como definido notypesParâmetro do formulário:tuple(a uint256,b uint8,c address).

    1. Variaveis correspondentes ao tipobytes:
    "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 oencodemétodo, que pode retornar o código de chamada de função parahexPara utilização específica, pode consultar as plataformas disponíveis publicamenteUniswap V3 Trade Modelo- Não. Quando o método de codificação utiliza contratos inteligentes, o ABI correspondente deve ser registado primeiro.

Intercâmbio.IO (("api", "eth",...) "Encodificados",...)