مندرجہ ذیل مواد کچھ سمارٹ معاہدے کے طریقہ کار کالوں کی ایک مثال ہے.
اعشاری
کےdecimals
طریقہ کار ایک ہےconstant
طریقہ کارERC20
جو پیدا نہیں کرتاgas
کھپت، اور یہ ایک کی درستگی کے اعداد و شمار کو تلاش کر سکتے ہیںtoken
.
کےdecimals
کوئی پیرامیٹرز نہیں ہے. واپسی کی قیمت: درستگی کے اعداد و شمارtoken
.
function main(){
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302" // The contract address of the token, in the example the token is 1INCH
Log(exchange.IO("api", tokenAddress, "decimals")) // Query, print 1INCH tokens with precision index of 18
}
تنخواہ
کےallowance
طریقہ کار ایک ہےconstant
طریقہ کارERC20
جو پیدا نہیں کرتاgas
کھپت، اور یہ ایک مخصوص مقدار کی اجازت مقدار کی پوچھ گچھ کر سکتے ہیںtoken
ایک مخصوص معاہدے کے ایڈریس کے لئے.
کےallowance
طریقہ 2 پیرامیٹرز میں منتقل کرنے کی ضرورت ہے، سب سے پہلے ایک پرس ایڈریس ہے، اور دوسرا ایک مجاز ایڈریس ہے.token
.
function main(){
// The contract address of the token, in the example the token is 1INCH
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"
var owner = ""
var spender = ""
// For example, the query yields 1000000000000000000, divided by the precision unit of the token 1e18, the current exchange object bound to the wallet to the spender address authorized 1 1INCH.
Log(exchange.IO("api", tokenAddress, "allowance", owner, spender))
}
owner
: پرس کا پتہ مثال میں spender
: مجاز معاہدے کا پتہ مثال میں تار Uniswap V3 router v1
.
منظور
کےapprove
طریقہ کار ایک غیرconstant
طریقہ کارERC20
جو پیدا کرتا ہےgas
کھپت، جو ایک اجازت دینے کے لئے استعمال کیا جاتا ہےtoken
ایک مخصوص معاہدے کے ایڈریس پر آپریشن کی رقم.
کےapprove
طریقہ کار کو 2 پیرامیٹرز میں منتقل کرنے کی ضرورت ہے، پہلا ایڈریس ہے جس کی اجازت دی جائے گی اور دوسرا اختیار شدہ رقم ہے. واپسی کی قیمت:txid
.
function main(){
// The contract address of the token, in the example the token is 1INCH
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"
var spender = ""
var amount = "0xde0b6b3a7640000"
// The hexadecimal string of the authorization amount: 0xde0b6b3a7640000 , the corresponding decimal string: 1e18 , 1e18 divided by the precision unit of the token, i.e. 1 token amount, so this refers to the authorization of one token.
Log(exchange.IO("api", tokenAddress, "approve", spender, amount))
}
spender
: منظور شدہ معاہدے کا پتہ، مثال کے طور پر Uniswap V3 router v1
address.
amount
: اجازتوں کی تعداد، یہاں ہیکساڈیسمل سٹرنگ کا استعمال کرتے ہوئے نمائندگی کی، ایک اعشاریہ قدر کے مساوی ہے1e18
، تقسیمtoken
مثال میں درستگی یونٹ (یعنی، 1e18) ، 1 پیداوارtoken
authorized.
کے تیسرے پیرامیٹرexchange.IO
فنکشن کو طریقہ کار کا نام منتقل کیا جاتا ہےapprove
، جو بھی شکل میں لکھا جا سکتا ہےmethodId
، مثال کے طور پر:
ملٹی کال
کےmulticall
طریقہ ایک غیر مستقل طریقہ ہےUniswap V3
، جو پیدا کرے گاgas
کھپت اور متعدد طریقوں سے ٹوکن کا تبادلہ کرنے کے لئے استعمال کیا جا سکتا ہے.
کےmulticall
طریقہ کار میں پیرامیٹرز کو منتقل کرنے کے متعدد طریقے ہوسکتے ہیں۔ آپ تفصیلات کے لئے طریقہ کار پر مشتمل اے بی آئی سے استفسار کرسکتے ہیں۔ طریقہ کار کو کال کرنے سے پہلے آپ کو اے بی آئی کو رجسٹر کرنے کی ضرورت ہے۔ واپسی کی قیمت:txid
.
کے مخصوص مثالوں کے لئےmulticall
طریقہ کار کالز، براہ مہربانی عوام سے رجوع کریں
function main() {
var ABI_Route = ""
var contractV3SwapRouterV2 = ""
var value = 0
var deadline = (new Date().getTime() / 1000) + 3600
var data = ""
exchange.IO("abi", contractV3SwapRouterV2, ABI_Route)
exchange.IO("api", contractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data)
}
ABI_Route
: Uniswap V3contractV3SwapRouterV2
: Uniswap V3 کے روٹر v2 ایڈریس، اصل استعمال میں ایک مخصوص ایڈریس میں بھرنے کی ضرورت ہوتی ہے...value
: منتقل ETH کی رقم، یہ 0 پر مقرر اگرtokenIn
تبادلہ آپریشن کے لئے ٹوکن ETH نہیں ہے، یہ اصل صورت حال کے مطابق بھرنے کی ضرورت ہے.deadline
: یہ مقرر کیا جا سکتا ہے(new Date().getTime() / 1000) + 3600
، جس کا مطلب ہے کہ یہ ایک گھنٹے کے لئے درست ہے.data
: پیکنگ کے عمل کے اعداد و شمار کو انجام دینے کے لئے، اسے اصل صورت حال کے مطابق بھرنے کی ضرورت ہے.
یہ بھی مخصوص کرنے کے لئے ممکن ہےgasLimit/gasPrice/nonce
طریقہ کار کالوں کی ترتیب:
exchange.IO("api", contractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data, {gasPrice: 5000000000, gasLimit: 21000})
آپ پیرامیٹر مقرر کر سکتے ہیں{gasPrice: 5000000000, gasLimit: 21000, nonce: 100}
آپ کی مخصوص ضروریات کے مطابق، پیرامیٹر کی آخری پیرامیٹر پر مقرر کیا جاتا ہےexchange.IO
فنکشن.
آپ کو چھوڑ سکتے ہیںnonce
اور نظام ڈیفالٹس استعمال کریں، یا مقرر نہیں کرتےgasLimit/gasPrice/nonce
اور سسٹم کے تمام ڈیفالٹ اقدار کا استعمال کریں.
یہ نوٹ کیا جانا چاہئے کہ مثال میں، خصوصیتstateMutability
میںmulticall(uint256,bytes[])
طریقہ یہ ہےpayable
، اورvalue
پیرامیٹر میں منتقل کرنے کی ضرورت ہے.
کی خصوصیتstateMutability":"payable"
سے دیکھا جا سکتا ہےABI
.exchange.IO
تقریب کے مطابق مطلوبہ پیرامیٹرز کا تعین کرے گاstateMutability
میں وصفABI
جو رجسٹرڈ کیا گیا ہے۔
اگرstateMutability
وصف ہےnonpayable
، پیرامیٹرvalue
منتقل کرنے کی ضرورت نہیں ہے.