নিম্নলিখিত বিষয়বস্তু কিছু স্মার্ট চুক্তি পদ্ধতির কলের একটি উদাহরণ।
দশমিক সংখ্যা
দ্য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
: অনুমোদন সংখ্যা, এখানে একটি hexadecimal স্ট্রিং ব্যবহার করে প্রতিনিধিত্ব করা হয়, একটি দশমিক মান অনুরূপ1e18
, ভাগ করেtoken
উদাহরণে যথার্থতা ইউনিট (যেমন, 1e18), যা 1 দেয়token
authorized.
তৃতীয় প্যারামিটারexchange.IO
ফাংশন পাস করা হয় পদ্ধতির নামapprove
, যা এই আকারেও লেখা যেতে পারেmethodId
, উদাহরণস্বরূপঃ
মাল্টি কল
দ্যmulticall
পদ্ধতি একটি ধ্রুবক পদ্ধতি নয়Uniswap V3
, যা সৃষ্টি করবেgas
ব্যবহার এবং একাধিক উপায়ে টোকেন বিনিময় করতে ব্যবহার করা যেতে পারে।
দ্যmulticall
পদ্ধতিতে প্যারামিটারগুলি পাস করার একাধিক পদ্ধতি থাকতে পারে। আপনি বিশদ জন্য পদ্ধতি ধারণকারী ABI অনুসন্ধান করতে পারেন। পদ্ধতি কল করার আগে আপনাকে ABI নিবন্ধন করতে হবে। রিটার্ন মানঃ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
পাস করার দরকার নেই।