کےexchange.IO("encode", ...)
فنکشن ڈیٹا کوڈنگ کے لئے بلایا جاتا ہے.
کےexchange.IO("encode", ...)
فنکشن کوڈڈ ڈیٹا واپس کرتا ہے.
سٹرنگ
exchange.IO(k، ڈیٹا فارمیٹ،...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 یا ایک tuple پر مشتمل ایک قسم کے حکم کی کوڈنگ کی حمایت کرتا ہے.
اس قسم کے حکم میں شامل ہیں:tuple
, bytes
، تو جب فونexchange.IO()
کوڈنگ کے لئے، آپ کو دو پیرامیٹرز کو منتقل کرنے کے لئے جاری رکھنے کی ضرورت ہے:
{
a: 30,
b: 20,
c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
میں منتقل پیرامیٹرز کی ساخت اور قسم کے ساتھ بھی ہم آہنگ ہونا ضروری ہےtuple
، جیسا کہtypes
فارم کا پیرامیٹر:tuple(a uint256,b uint8,c address)
.
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
string فارمیٹ۔ مخصوص استعمال کے لئے ، آپ عوامی طور پر دستیاب پلیٹ فارمز سے رجوع کرسکتے ہیں