রিসোর্স লোড হচ্ছে... লোডিং...

স্মার্ট কন্ট্রাক্ট কল করার পদ্ধতি

নিম্নলিখিত বিষয়বস্তু কিছু স্মার্ট চুক্তি পদ্ধতির কলের একটি উদাহরণ।

  • দশমিক সংখ্যা দ্য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: মানিব্যাগের ঠিকানা উদাহরণে owner স্ট্রিং দ্বারা প্রতিস্থাপিত হয়। প্রকৃত ব্যবহারে, আপনাকে ঠিকানাটি পূরণ করতে হবে।spender: অনুমোদিত চুক্তি ঠিকানা স্ট্রিং দ্বারা প্রতিস্থাপিত হয় 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: অনুমোদিত চুক্তির ঠিকানা, উদাহরণ স্ট্রিং দ্বারা প্রতিস্থাপিত হয় spender, প্রকৃত ব্যবহার নির্দিষ্ট ঠিকানা পূরণ করতে হবে, উদাহরণস্বরূপ, এটি হতে পারেUniswap V3 router v1 address. amount: অনুমোদন সংখ্যা, এখানে একটি hexadecimal স্ট্রিং ব্যবহার করে প্রতিনিধিত্ব করা হয়, একটি দশমিক মান অনুরূপ1e18, ভাগ করেtokenউদাহরণে যথার্থতা ইউনিট (যেমন, 1e18), যা 1 দেয়token authorized.

    তৃতীয় প্যারামিটারexchange.IOফাংশন পাস করা হয় পদ্ধতির নামapprove, যা এই আকারেও লেখা যেতে পারেmethodId, উদাহরণস্বরূপঃ 0x571ac8b0. এটি সম্পূর্ণ স্ট্যান্ডার্ড পদ্ধতির নাম লিখতেও সম্ভব, যেমন approve(address,uint256)

  • মাল্টি কল দ্যmulticallপদ্ধতি একটি ধ্রুবক পদ্ধতি নয়Uniswap V3, যা সৃষ্টি করবেgasব্যবহার এবং একাধিক উপায়ে টোকেন বিনিময় করতে ব্যবহার করা যেতে পারে। দ্যmulticallপদ্ধতিতে প্যারামিটারগুলি পাস করার একাধিক পদ্ধতি থাকতে পারে। আপনি বিশদ জন্য পদ্ধতি ধারণকারী ABI অনুসন্ধান করতে পারেন। পদ্ধতি কল করার আগে আপনাকে ABI নিবন্ধন করতে হবে। রিটার্ন মানঃtxid.

    এর নির্দিষ্ট উদাহরণগুলির জন্যmulticallপদ্ধতি কল, দয়া করে পাবলিক পড়ুনUniswap V3 ট্রেডিং ক্লাস লাইব্রেরি টেমপ্লেটআমাদের প্ল্যাটফর্মের।

    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 V3 এর রাউটার v2 চুক্তির ABI, এটি প্রকৃত পরিস্থিতি অনুযায়ী পূরণ করা প্রয়োজন।contractV3SwapRouterV2: 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পাস করার দরকার নেই।

ব্যক্তিগত কী পরিবর্তন করার জন্য সমর্থন অন্যান্য ফাংশন কল