Tài nguyên đang được tải lên... tải...

exchange.IO("đã mã hóa",...)

Cácexchange.IO("encode", ...)hàm được gọi cho mã hóa dữ liệu.

Cácexchange.IO("encode", ...)hàm trả về dữ liệu được mã hóa. chuỗi

exchange.IO(k, dataFormat,...args)exchange.IO(k, địa chỉ, định dạng dữ liệu)exchange.IO(k, địa chỉ, dataFormat,...args)

Cácktham số được sử dụng để thiết lập chức năng củaexchange.IO()chức năng, được thiết lập thành"encode"có nghĩa là hàm được sử dụng để mã hóa dữ liệu. k đúng chuỗi CácaddressCác tham số được sử dụng để thiết lập địa chỉ của hợp đồng thông minh.exchange.IO("encode", ...)chức năng, đi qua trongaddresstham số chỉ ra mã hóa phương thức gọi trên hợp đồng thông minh.exchange.IO("encode", ...)chức năng, nếuaddresstham số không được truyền, chức năng được sử dụng để mã hóa thứ tự loại được chỉ định và tương đương về chức năng vớiabi.encodetrongSolidity. địa chỉ sai chuỗi CácdataFormattham số được sử dụng để xác định phương pháp, loại và thứ tự của dữ liệu được mã hóa. dataFormat đúng chuỗi Cácargtham số được sử dụng để chỉ định giá trị dữ liệu cụ thể phù hợp vớidataFormatcó thể có nhiều hơn mộtargtham số, và loại và số lượngargcác thông số phụ thuộc vàodataFormatcài đặt tham số. arg sai chuỗi, số, tuple, mảng, và tất cả các loại khác được hỗ trợ bởi hệ thống

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

Ví dụ, gọi phương thức mã hóaunwrapWETH9:

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

Nó tương đương với ví dụ mã hóa củaabi.encodetrongSolidity:

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

Nó hỗ trợ mã hóa một tuple hoặc một thứ tự loại chứa một tuple. Lệnh kiểu này bao gồm:tuple, bytesVì vậy khi gọiexchange.IO()để mã hóa, bạn cần tiếp tục truyền hai tham số:

    1. Các biến tương ứng với loại tuple:
    
    {
        a: 30,
        b: 20,
        c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    }
    
    

    Các thông số được truyền phải phù hợp với cấu trúc và loạituple, như được định nghĩa trongtypestham số của biểu mẫu:tuple(a uint256,b uint8,c address).

    1. Các biến tương ứng với loạibytes:
    "0011"
    
function main() {
    var path = ["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "0xdac17f958d2ee523a2206206994597c13d831ec7"]   // ETH address, USDT address
    var ret = exchange.IO("encode", "address[]", path)
    Log("encode: ", ret)
}

Nó hỗ trợ mã hóa thứ tự của mảng hoặc các loại chứa mảng:

Cácexchange.IO()chức năng bao gồm cácencodephương pháp, mà có thể trả lại mã gọi chức năng đểhexĐối với việc sử dụng cụ thể, bạn có thể tham khảo các nền tảng s có sẵn công khaiUniswap V3 Trade Mẫu. Khi phương pháp mã hóa gọi các hợp đồng thông minh, ABI tương ứng cần phải được đăng ký trước.

trao đổi.IO (("api", "eth",...) exchange.IO (("encodePacked",...)