기능exchange.IO
가결된encode
함수 호출 인코딩을 반환할 수 있는 방법hex
문자열 형식
공개된 플랫폼을 참조할 수 있습니다.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.encode
에solidity
다음 예제를 참조하십시오.
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.IO
에encode
:
{
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를 지원합니다.