ফাংশন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",...)
ফাংশন, যদি দ্বিতীয় প্যারামিটার (স্ট্রিং টাইপ) দিয়ে শুরু হয়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)
}
ইথেরিয়াম আরপিসি কল করার পদ্ধতি
এনকোডপ্যাকডের জন্য সমর্থন