निम्नलिखित सामग्री कुछ स्मार्ट कॉन्ट्रैक्ट विधि कॉल का एक उदाहरण है।
दशमलव
द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
: हस्तांतरित ईटीएच की राशि, इसे 0 पर सेट करें यदिtokenIn
एक्सचेंज ऑपरेशन के लिए टोकन ईटीएच नहीं है, इसे वास्तविक स्थिति के अनुसार भरने की आवश्यकता है।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
पास करने की आवश्यकता नहीं है।