وسائل لوڈ ہو رہے ہیں... لوڈنگ...

اسمارٹ معاہدے کو بلانے کا طریقہ

مندرجہ ذیل مواد کچھ سمارٹ معاہدے کے طریقہ کار کالوں کی ایک مثال ہے.

  • اعشاری کے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: اجازتوں کی تعداد، یہاں ہیکساڈیسمل سٹرنگ کا استعمال کرتے ہوئے نمائندگی کی، ایک اعشاریہ قدر کے مساوی ہے1e18، تقسیمtokenمثال میں درستگی یونٹ (یعنی، 1e18) ، 1 پیداوارtoken authorized.

    کے تیسرے پیرامیٹرexchange.IOفنکشن کو طریقہ کار کا نام منتقل کیا جاتا ہےapprove، جو بھی شکل میں لکھا جا سکتا ہےmethodId، مثال کے طور پر: 0x571ac8b0. یہ بھی مکمل معیاری طریقہ نام لکھنے کے لئے ممکن ہے، جیسے approve(address,uint256) .

  • ملٹی کال کےmulticallطریقہ ایک غیر مستقل طریقہ ہےUniswap V3، جو پیدا کرے گاgasکھپت اور متعدد طریقوں سے ٹوکن کا تبادلہ کرنے کے لئے استعمال کیا جا سکتا ہے. کےmulticallطریقہ کار میں پیرامیٹرز کو منتقل کرنے کے متعدد طریقے ہوسکتے ہیں۔ آپ تفصیلات کے لئے طریقہ کار پر مشتمل اے بی آئی سے استفسار کرسکتے ہیں۔ طریقہ کار کو کال کرنے سے پہلے آپ کو اے بی آئی کو رجسٹر کرنے کی ضرورت ہے۔ واپسی کی قیمت: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 V3s روٹر 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منتقل کرنے کی ضرورت نہیں ہے.

نجی چابیاں تبدیل کرنے کے لئے سپورٹ دیگر فنکشن کالز