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

지원 코드

기능exchange.IO가결된encode함수 호출 인코딩을 반환할 수 있는 방법hex문자열 형식 공개된 플랫폼을 참조할 수 있습니다.Uniswap V3 트레이딩 클래스 라이브러리 템플릿특정 용도로 코딩의 호출unwrapWETH9이 방법은 예를 들어 다음과 같이 사용됩니다.

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

전화할 때exchange.IO("encode",...)함수, 만약 두 번째 매개 변수 (string type) 가0x, 이는 암호화된 (encode스마트 계약. 시작하지 않으면0x, 그것은 지정된 타입 순서를 코드화하는 데 사용됩니다.abi.encodesolidity다음 예제를 참조하십시오.

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

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

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.IOencode:

  • 타입 튜플에 대응하는 변수:
    {
        a: 30,
        b: 20,
        c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    }
    
    전달된 매개 변수는 또한 구조와 유형의tuple, 그 정의에 따라types파라미터:tuple(a uint256, b uint8, c address).
  • 타입 바이트에 대응하는 변수:
    "0011"
    

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

function main() {
    var path = ["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "0xdac17f958d2ee523a2206206994597c13d831ec7"]   // ETH address, USDT address
    var ret = exchange.IO("encode", "address[]", path)
    Log("encode: ", ret)
}
이더리움 RPC 호출 방법 EncodePacked를 지원합니다.