کےexchange.IO("api", ...)
فنکشن کو اس طرح بلایا جاتا ہے جو اسمارٹ معاہدے کے طریقوں کو بلانے کے لئے استعمال ہوتا ہے۔
کےexchange.IO("api", ...)
فنکشن اسمارٹ کنٹریکٹ نامی طریقہ کار کی واپسی کی قیمت واپس کرتا ہے۔
string, number, bool, object, array, null اور سسٹم کی معاونت کرنے والی دیگر تمام اقسام
exchange.IO(k، پتہ، طریقہ)exchange.IO(k، پتہ، طریقہ،...args)exchange.IO(k، پتہ، طریقہ، قدر،...args)
کےk
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"api"
اشارہ کرتا ہے کہ فنکشن کو کال کی درخواست کو بڑھانے کے لئے استعمال کیا جاتا ہے.
k
سچ
سٹرنگ
کےaddress
اسمارٹ معاہدے کا پتہ بتانے کے لئے پیرامیٹر استعمال کیا جاتا ہے۔
ایڈریس
سچ
سٹرنگ
کےmethod
پیرامیٹر اسمارٹ معاہدے کا طریقہ بیان کرنے کے لئے استعمال کیا جاتا ہے جسے بلایا جائے۔
طریقہ کار
سچ
سٹرنگ
کےvalue
ETH کی رقم بھیجنے کے لئے مقرر کرنے کے لئے استعمال کیا جاتا ہے.stateMutability
اسمارٹ معاہدے کے طریقہ کار کی خصوصیت ہے جو عملدرآمد کیا جائے گاpayable
، پھرvalue
پیرامیٹر منتقل کرنے کی ضرورت ہے."stateMutability": "payable"
ABI سے دیکھا جا سکتا.exchange.IO()
تقریب کی بنیاد پر مطلوبہ پیرامیٹر کا تعین کرے گاstateMutability
رجسٹرڈ کیا گیا ہے کہ ABI میں وصف.stateMutability
وصف ہےnonpayable
، پھرvalue
پیرامیٹر منتقل کرنے کی ضرورت نہیں ہے.
قیمت
غلط
نمبر٬سلسلہ
کےarg
پیرامیٹر استعمال کیا جاتا ہے اسمارٹ معاہدے کے طریقہ کار کے پیرامیٹرز کی وضاحت کرنے کے لئے بلایا جا رہا ہے.arg
پیرامیٹر، اور قسم اور تعدادarg
پیرامیٹرز اسمارٹ کنٹریکٹ کے طریقہ کار پر منحصر ہے جسے بلایا جائے۔
ارگ
غلط
تار، نمبر، بول، اور نظام کی طرف سے حمایت کی دیگر تمام اقسام
function main(){
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302" // The contract address of the token, the token is 1INCH in the example
Log(exchange.IO("api", tokenAddress, "decimals")) // Query, print 1INCH tokens with precision index of 18
}
کےdecimals
طریقہ کار ایک ہےconstant
ERC20 کا طریقہ ہے کہ گیس کی کھپت کا سامنا نہیں کرتا اور یہ ایک ٹوکن کی صحت سے متعلق اعداد و شمار کو تلاش کر سکتے ہیں.decimals
طریقہ کار کے پاس کوئی پیرامیٹرز نہیں ہیں۔ واپسی کی قیمت: ٹوکن کے صحت سے متعلق ڈیٹا۔
function main(){
// The contract address of the token, in the example the token is 1INCH
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"
// For example, the query yields 1000000000000000000, divided by the precision unit of the token 1e18, the wallet to which the current exchange object is bound has authorized 1 1INCH to the spender address
Log(exchange.IO("api", tokenAddress, "allowance", "owner", "spender"))
}
کےallowance
طریقہ کار ایک ہےconstant
ERC20 کا ایک طریقہ ہے جو گیس کی کھپت پیدا نہیں کرتا ہے اور ایک مخصوص معاہدے کے ایڈریس کے لئے ایک ٹوکن کی مجاز رقم سے استفسار کرسکتا ہے۔allowance
طریقہ کار 2 پیرامیٹرز لیتا ہے ، پہلا والٹ ایڈریس ہے اور دوسرا مجاز پتہ ہے۔ واپسی کی قیمت: ٹوکن کی اجازت کی رقم۔
owner
: بٹوے کا پتہ، مثال spender
: منظور شدہ معاہدے کا پتہ، مثال کے طور پر سلسلہ Uniswap V3 router v1
address.
function main(){
// The contract address of the token, the token is 1INCH in the example
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"
// 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", "0xde0b6b3a7640000"))
}```
The ```approve``` method is a non-```constant``` method of ERC20, which generates gas consumption and is used to authorize the operation amount of a token to a contract address. The ```approve``` method takes 2 parameters, the first one is the address to be authorized and the second one is the amount to be authorized. Return value: txid.
```spender```: the address of the authorized contract, the example is replaced by the string "spender", the actual use needs to fill in the specific address, for example, it can be ```Uniswap V3 router v1``` address. ```0xde0b6b3a7640000```: the number of authorizations, here is the hexadecimal string, the corresponding decimal value is 1e18, divided by the token precision unit in the example (i.e. 1e18). The result is that 1 token is authorized. The third parameter of the ```exchange.IO()``` function is passed to the method name ```approve```, which can also be written in the form of methodId, such as "0x571ac8b0". It is also possible to write the full standard method name, for example: "approve(address,uint256)".
```javascript
function main() {
var ContractV3SwapRouterV2 = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"
var tokenInName = "ETH"
var amountIn = 0.01
var options = {gasPrice: 5000000000, gasLimit: 21000, nonce: 100} // This is an example, depending on the actual scene settings
var data = "" // The encoded data, here is the empty string, depending on the actual scene settings
var tx = exchange.IO("api", ContractV3SwapRouterV2, "multicall(uint256,bytes[])", (tokenInName == 'ETH' ? amountIn : 0), (new Date().getTime() / 1000) + 3600, data, options || {})
}
کےmulticall
طریقہ کار ایک غیرconstant
طریقہ کارUniswap V3
جو گیس کی کھپت پیدا کرتا ہے اور ٹوکن کو کئی طریقوں سے تبدیل کرنے کے لئے استعمال کیا جاتا ہے۔
کےmulticall
طریقہ پیرامیٹرز کو منتقل کرنے کے مختلف طریقے ہوسکتے ہیں ، آپ ABI کو چیک کرسکتے ہیں جس میں طریقہ خاص طور پر ہوتا ہے ، آپ کو طریقہ کار کو کال کرنے سے پہلے ABI کو رجسٹر کرنے کی ضرورت ہے۔ واپسی کی قیمت: txid۔
کے مخصوص مثالوں کے لئےmulticall
طریقہ کار کالز، آپ کو عوامی طور پر دستیاب پلیٹ فارم سے رجوع کر سکتے ہیں
یہاں کچھ تفصیلات کا استعمال کرتے ہوئے بیان کیا گیا ہے:
exchange.IO("api", ContractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data)
ContractV3SwapRouterV2
: Uniswap V3 کے روٹر v2 کا پتہ.value
: منتقلی کے لئے ETH کی رقم، اگر ایکسچینج آپریشن کا ٹوکن ETH نہیں ہے تو 0 پر سیٹ کریں۔deadline
: deadline
کے پیرامیٹر ہےmulticall
طریقہ، جس میں (نئی Date().getTime() / 1000) + 3600 پر مقرر کیا جا سکتا ہے، اس بات کا اشارہ ہے کہ یہ ایک گھنٹے کے لئے درست ہے.data
: data
کے پیرامیٹر ہےmulticall
طریقہ کار، پیکیجنگ آپریشن کے اعداد و شمار کو انجام دیا جائے گا.
اسی طرحexchange.IO("api", "eth", "send", "toAddress", toAmount)
،gasLimit/gasPrice/nonce
ترتیب کے طریقہ کار کال کی وضاحت کی جا سکتی ہےmulticall
طریقہ کار
ایک بار پھر، ہم بیان کرنے کے لئے جعلی کوڈ کا استعمال کرتے ہیں:
exchange.IO("api", ContractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data, {gasPrice: 123456, gasLimit: 21000})
پیرامیٹر{gasPrice: 11, gasLimit: 111, nonce: 111}
مخصوص ضروریات کے مطابق مقرر کیا جا سکتا ہے، جس کے آخری پیرامیٹر پر مقرر کیا جاتا ہےexchange.IO()
فنکشن.
آپ کو چھوڑ سکتے ہیںnonce
اور سسٹم ڈیفالٹ قدر کا استعمال کریں، یا چھوڑ دیںgasLimit/gasPrice/nonce
غیر مقرر کریں اور تمام کے لئے سسٹم ڈیفالٹ قدر استعمال کریں.