리소스 로딩... 로딩...

exchange.IO("코드",...)

exchange.IO("encode", ...)데이터 인코딩을 위해 함수가 호출됩니다.

exchange.IO("encode", ...)함수는 암호화된 데이터를 반환합니다. 문자열

exchange.IO(k, dataFormat,...args)exchange.IO(k, 주소, 데이터 포맷)exchange.IO(k, 주소, 데이터 포맷,...args)

k매개 변수exchange.IO()함수, 설정"encode"함수는 데이터 코딩에 사용됩니다. k 사실 문자열 의address이 매개 변수는 스마트 계약의 주소를 설정하는 데 사용됩니다.exchange.IO("encode", ...)기능,address매개 변수는 스마트 계약에 메소드 호출을 코딩을 나타냅니다.exchange.IO("encode", ...)기능, 만약address매개 변수가 전달되지 않는 경우, 함수는 지정된 타입 순서를 코딩하는 데 사용되며 기능적으로abi.encode안쪽Solidity... 주소 거짓 문자열 의dataFormat이 매개 변수는 암호화된 데이터의 방법, 유형 및 순서를 지정하는 데 사용됩니다. 데이터 형식 사실 문자열 의arg이 매개 변수는dataFormat한 개 이상 있을 수 있습니다.arg매개 변수와arg매개 변수dataFormat파라미터 설정 아그 거짓 문자열, 숫자, 튜플, 배열, 그리고 시스템에서 지원하는 다른 모든 유형

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

예를 들어, 인코딩 방법을 호출unwrapWETH9:

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

이 예제와 같습니다abi.encode안쪽Solidity:

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

튜플 또는 튜플을 포함하는 타입 순서를 인코딩하는 것을 지원합니다. 이 유형의 순서는 다음과 같습니다.tuple, bytes그래서 전화할 때exchange.IO()인코딩을 위해, 당신은 두 개의 매개 변수를 전달해야 합니다:

    1. 튜플 타입에 대응하는 변수:
    
    {
        a: 30,
        b: 20,
        c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    }
    
    

    전달된 매개 변수는 또한 구조와 유형의tuple, 그 정의에 따라types양식의 매개 변수:tuple(a uint256,b uint8,c address).

    1. 타입에 대응하는 변수bytes:
    "0011"
    
function main() {
    var path = ["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "0xdac17f958d2ee523a2206206994597c13d831ec7"]   // ETH address, USDT address
    var ret = exchange.IO("encode", "address[]", path)
    Log("encode: ", ret)
}

배열 또는 배열을 포함하는 타입의 순차적 인코딩을 지원합니다:

exchange.IO()함수는encode함수 호출 코드를 반환할 수 있는hex문자열 형식입니다. 특정 사용을 위해 공개된 플랫폼을 참조할 수 있습니다.Uniswap V3 무역 템플릿- 네 코드 메소드가 스마트 컨트랙트를 호출할 때 해당 ABI가 먼저 등록되어야 합니다.

교환.IO (("api", "eth",...) 교환.IO (("인코드 포장",...)