এনকোড সমর্থন
具体使用可以参考平台公开的[「Uniswap V3 交易类库」模板](https://www.fmz.com/strategy/397260)。
这里使用编码```unwrapWETH9```方法的调用为例子:
function main (() {
// ContractV3SwapRouter V2 প্রধান ওয়েব ঠিকানাঃ 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45
// unwrapWETH9 পদ্ধতির জন্য প্রথমে ABI নিবন্ধন করতে হবে, এখানে নিবন্ধন বাদ দিন
// ক্যাবলওয়েনার ট্যাগটি মানিব্যাগের ঠিকানা, যা নির্দিষ্টভাবে পূরণ করা প্রয়োজন, এবং 1 টি প্যাকেজ আনপ্যাকিংয়ের সংখ্যা, যা একটি WETH আনপ্যাকিংকে ETH করে দেয়
var data = exchange.IO ((encode ট্যাগ, 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45 ট্যাগ, unwrapWETH9 ((uint256,address) ট্যাগ, 1, owner ট্যাগ)
লগ ((data)
}
在调用```exchange.IO("encode", ...)```函数时,如果第二个参数(字符串类型)为```0x```开头,表示编码(encode)智能合约上的方法调用。
如果不是以```0x```开头则用于编码指定的类型顺序,功能等同```solidity```里的```abi.encode```,参考以下例子。
function main (() {
var x = ১০
var address = 0x02a5fBb259d20A3Ad2Fdf9CCADeF86F6C1c1Ccc9
var str = হ্যালো ওয়ার্ল্ড
var array = [1, 2, 3]
var ret = exchange.IO ((encode string, uint256, address,string,uint256[], x, address, str, array) // uint অর্থাৎ uint256, FMZ এ টাইপ দৈর্ঘ্য নির্দিষ্ট করতে হবে
লোগ (রেডিও)
/*
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a // x এর বিপরীতে
00000000000000000000000002a5fbb259d20a3ad2fdf9ccadef86f6c1c1ccc9 // ঠিকানা
000000000000000000000000000000000000000000000000000000000000000000000000000000000080 // str এর বিচ্যুতি
0000000000000000000000000000000000000000000000000000000000000000000000000000000000c0 // array এর বিচ্যুতি
000000000000000000000000000000000000000000000000000000000000000000000000000000000b // str এর দৈর্ঘ্য
48656c6c6f20576f726c640000000000000000000000000000000000000000000000 // str তথ্য
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003 // অ্যারের দৈর্ঘ্য
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 // array প্রথম ডাটা
000000000000000000000000000000000000000000000000000000000000000000000000000000000002 // অ্যারে দ্বিতীয় তথ্য
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003 // অ্যারে তৃতীয় তথ্য
*/
}
支持对元组(tuple)或者包含元组的类型顺序编码:
ফাংশন main() {
var types = tuple ((a uint256,b uint8,c ঠিকানা), বাইট
var ret = exchange.IO ((encode, types, {
a: ৩০,
বিঃ ২০,
c: 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
}, 0011)
লগ ((কোডঃ , ret)
}
这个类型顺序由```tuple```、```bytes```组成,所以在调用```exchange.IO()```函数进行```encode```时需要继续传入两个参数:
- 对应tuple类型的变量:
{
a: ৩০,
বিঃ ২০,
c: 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
}
传入的参数也必须和```tuple```的结构、类型保持一致,如同```types```参数中定义的形式:```tuple(a uint256,b uint8,c address)```。
- 对应bytes类型的变量:
“0011”
支持对数组或者包含数组的类型顺序编码:
ফাংশন main() {
var path = [0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0xdac17f958d2ee523a2206206994597c13d831ec7] // ETH ঠিকানা, USDT ঠিকানা
var ret = exchange.IO ((encode, address[], path)
লগ ((কোডঃ , ret)
}
`
ইথেরিয়ামের আরপিসি পদ্ধতি কল করুন
এনকোডপ্যাকড সমর্থিত