En la carga de los recursos... Cargando...

exchange.IO("decodificar",...)

Elexchange.IO("decode", ...)La función se llama de una manera que se utiliza para la decodificación.

Elexchange.IO("decode", ...)Devuelve una cadena cuando sólo hay un dato especificado por eldataFormatRetorna una matriz cuando hay más de un dato especificado por eldataFormatel parámetro. la matriz, la cadena

exchange.IO(k, datosFormato, datos)

ElkParámetro se utiliza para establecer la función de laexchange.IO()la función, y la configuración a"decode"significa que la función se utiliza para decodificar datos. el verdadero la cuerda EldataFormatParámetro utilizado para especificar el tipo y el orden de los datos decodificados. DatosFormato verdadero la cuerda EldataEl parámetro se utiliza para establecer los datos a descifrar. datos verdadero la cuerda

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)            

    var rawData = exchange.IO("decode", types, ret)
    Log("decode:", rawData)
}

El funcionamiento inverso de laexchange.IO("encode", ...)Función:

function main() {
    // register SwapRouter02 abi
    var walletAddress = "0x398a93ca23CBdd2642a07445bCD2b8435e0a373f"
    var routerAddress = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"
    var abi = `[{"inputs":[{"components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"}],"internalType":"struct IV3SwapRouter.ExactOutputParams","name":"params","type":"tuple"}],"name":"exactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"payable","type":"function"}]`
    exchange.IO("abi", routerAddress, abi)   // abi only uses the contents of the local exactOutput method, the full abi can be searched on the Internet              

    // encode path
    var fee = exchange.IO("encodePacked", "uint24", 3000)
    var tokenInAddress = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    var tokenOutAddress = "0xdac17f958d2ee523a2206206994597c13d831ec7"
    var path = tokenInAddress.slice(2).toLowerCase()
    path += fee + tokenOutAddress.slice(2).toLowerCase()
    Log("path:", path)              

    var dataTuple = {
        "path" : path, 
        "recipient" : walletAddress, 
        "amountOut" : 1000, 
        "amountInMaximum" : 1, 
    }
    // encode SwapRouter02 exactOutput 
    var rawData = exchange.IO("encode", routerAddress, "exactOutput", dataTuple)
    Log("method hash:", rawData.slice(0, 8))   // 09b81346
    Log("params hash:", rawData.slice(8))              

    // decode exactOutput params
    var decodeRaw = exchange.IO("decode", "tuple(path bytes,recipient address,amountOut uint256,amountInMaximum uint256)", rawData.slice(8))
    Log("decodeRaw:", decodeRaw)
}

El siguiente ejemplo realiza primero unaencodePackedLa operación en elpathEl procesamiento de parámetros, porque elexactOutputllamada de método que necesita ser codificado más tarde requierepathcomo un parámetro.encodeElexactOutputmétodo del contrato de ruta, que sólo tiene un parámetro de tipotuple. Nombre del métodoexactOutputestá codificado como:0x09b81346, y utilizando elexchange.IO("decode", ...)método para decodificar el resultadodecodeRaw, coherente con la variabledataTuple.

Para el tratamiento de datos, elexchange.IO()Función soporta no sólo la codificación, sino también la decodificación.

En el caso de las empresas de servicios de telecomunicaciones, la información que se transmite a través de los servicios de telecomunicaciones es la siguiente: En el caso de las empresas de servicios de telecomunicaciones, la información que se transmite a través de los sistemas de información de las empresas de telecomunicaciones es la siguiente: