Die Ressourcen sind geladen. Beförderung...

exchange.IO("Code",...)

Dieexchange.IO("encode", ...)Die Funktion wird für die Datenkodierung aufgerufen.

Dieexchange.IO("encode", ...)Funktion gibt die codierten Daten zurück. String

exchange.IO(k, Datenformat,...args)exchange.IO(k, Adresse, Datenformat)exchange.IO(k, Adresse, Datenformat,...args)

DiekParameter wird verwendet, um die Funktion derexchange.IO()Funktion, auf"encode"bedeutet, dass die Funktion für die Datenkodierung verwendet wird. k wahr String DieaddressDie Parameter werden verwendet, um die Adresse des Smart Contracts festzulegen.exchange.IO("encode", ...)Funktion, die in deraddressDer Parameter zeigt die Codierung der Methode auf dem Smart Contract an.exchange.IO("encode", ...)Funktion, wennaddresswenn der Parameter nicht übergeben wird, wird die Funktion verwendet, um die angegebene Typfolge zu kodieren, und ist funktionell gleichwertig mitabi.encodeinSolidity- Ich weiß. Anschrift falsche String DiedataFormatDer Parameter wird verwendet, um die Methode, den Typ und die Reihenfolge der codierten Daten anzugeben. DatenFormat - Das stimmt. String DieargParameter wird verwendet, um den spezifischen Datenwert anzugeben, der demdataFormatEs kann mehr als eineargParameter und die Art und Anzahl derargParameter hängen von derdataFormatEinstellung der Parameter. Arg falsche String, number, tuple, array und alle anderen vom System unterstützten Typen

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)
}

Zum Beispiel, rufen Sie die CodierungsmethodeunwrapWETH9:

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 ist gleichbedeutend mit dem Codierungsbeispiel vonabi.encodeinSolidity:

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)
}

Es unterstützt die Codierung eines Tupels oder einer Typreihenfolge, die ein Tupel enthält. Diese Typordnung besteht austuple, bytesAlso, wenn Sie anrufenexchange.IO()Für die Kodierung müssen Sie zwei Parameter weitergeben:

    1. Variablen, die dem Tupeltyp entsprechen:
    
    {
        a: 30,
        b: 20,
        c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    }
    
    

    Die eingegebenen Parameter müssen auch mit der Struktur und dem Typ dertuple, wie sie in dertypesParameter des Formulars:tuple(a uint256,b uint8,c address).

    1. Variablen für den Typbytes:
    "0011"
    
function main() {
    var path = ["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "0xdac17f958d2ee523a2206206994597c13d831ec7"]   // ETH address, USDT address
    var ret = exchange.IO("encode", "address[]", path)
    Log("encode: ", ret)
}

Es unterstützt die sequentielle Codierung von Arrays oder Arraytypen, die Arrays enthalten:

Dieexchange.IO()Funktion umfasst dieencodeMethode, die den Funktionsanrufcode zurückgeben kannhexFür spezifische Anwendungen können Sie sich auf die öffentlich zugänglichen Plattformen beziehenUniswap V3 Trade Vorlage- Ich weiß. Wenn die Codierungsmethode Smart Contracts aufruft, muss zuerst das entsprechende ABI registriert werden.

Auswechselung.IO (("api", "eth",...) - Ich bin nicht bereit, das zu tun.