Die Ressourcen sind geladen. Beförderung...

Unterstützungskode

Die Funktionexchange.IOdieencodeMethode, die die Funktionsanruf-Codierung zurückgeben kannhexStringformat. Sie können auf die öffentlich zugänglichen Plattformen verweisenUniswap V3 Trading Class Library Vorlagefür spezielle Zwecke. Der Anruf der CodierungunwrapWETH9Die Methode wird hier als Beispiel verwendet:

function main() {
    // Main network address of ContractV3SwapRouterV2: 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45
    // To call the unwrapWETH9 method, you need to register the ABI first, omit the registration here.
    // "owner" represents the wallet address, it needs to fill in the specific, 1 represents the number of unwrapping, unwrap a WETH into ETH
    var data = exchange.IO("encode", "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45", "unwrapWETH9(uint256,address)", 1, "owner")
    Log(data)
}

Bei Anrufen derexchange.IO("encode",...)Funktion, wenn der zweite Parameter (String-Typ) mit0x, bedeutet der Anruf der Methode auf dem codierten (encode) ein intelligenter Vertrag. Wenn es nicht mit0xDie Funktion ist die gleiche wie bei derabi.encodein dersolidity. Verweisen Sie auf das folgende Beispiel.

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
    */
}

Unterstützung der sequentiellen Kodierung von Tupeln oder Typen mit Tupeln:

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

Diese Typordnung besteht austupleundbytes, also müssen zwei Parameter eingegeben werden, wenn sie aufgerufen werdenexchange.IOzuencode:

  • Variablen, die dem Typ Tupel entsprechen:
    {
        a: 30,
        b: 20,
        c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    }
    
    Die eingegebenen Parameter müssen auch mit der Struktur und dem Typ dertuple, wie sie in dertypesParameter:tuple(a uint256, b uint8, c address).
  • Variablen, die dem Typ Bytes entsprechen:
    "0011"
    

Unterstützung der sequentiellen Kodierung von Arrays oder Arraytypen, die Arrays enthalten:

function main() {
    var path = ["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "0xdac17f958d2ee523a2206206994597c13d831ec7"]   // ETH address, USDT address
    var ret = exchange.IO("encode", "address[]", path)
    Log("encode: ", ret)
}
Methode zum Aufrufen von Ethereum RPC Unterstützung für encodePacked