संसाधन लोड हो रहा है... लोड करना...

exchange.IO("डेकोड",...)

..exchange.IO("decode", ...)फ़ंक्शन को इस तरह से बुलाया जाता है जिसका उपयोग डिकोडिंग के लिए किया जाता है।

..exchange.IO("decode", ...)फ़ंक्शन डिकोड किए गए डेटा को लौटाता है. एक स्ट्रिंग लौटाता है जब केवल एक डेटा निर्दिष्ट हैdataFormatपैरामीटर. एक सरणी देता है जब वहाँ एक से अधिक डेटा द्वारा निर्दिष्ट हैdataFormatपैरामीटर array、string

exchange.IO(k, dataफॉर्मेट, डेटा)

..kपैरामीटर का उपयोग फंक्शन सेट करने के लिए किया जाता हैexchange.IO()कार्य, और इसे सेट करने के लिए"decode"इसका अर्थ है कि फ़ंक्शन का उपयोग डेटा डिकोडिंग के लिए किया जाता है। क सच स्ट्रिंग दdataFormatपैरामीटर का उपयोग डिकोड किए गए डेटा के प्रकार और क्रम को निर्दिष्ट करने के लिए किया जाता है। डेटाफ़ॉर्मेट सच स्ट्रिंग दdataपैरामीटर का प्रयोग डेटा को डिकोड करने के लिए किया जाता है। आंकड़ा सच स्ट्रिंग

function main() {
    var types = "tuple(a uint256,b uint8,c address),bytes"
    var ret = exchange.IO("encode", types, {
        a: 30,
        b: 20,
        c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    }, "0011")
    Log("encode: ", ret)            

    var rawData = exchange.IO("decode", types, ret)
    Log("decode:", rawData)
}

रिवर्स ऑपरेशनexchange.IO("encode", ...)कार्य:

function main() {
    // register SwapRouter02 abi
    var walletAddress = "0x398a93ca23CBdd2642a07445bCD2b8435e0a373f"
    var routerAddress = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"
    var abi = `[{"inputs":[{"components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"}],"internalType":"struct IV3SwapRouter.ExactOutputParams","name":"params","type":"tuple"}],"name":"exactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"payable","type":"function"}]`
    exchange.IO("abi", routerAddress, abi)   // abi only uses the contents of the local exactOutput method, the full abi can be searched on the Internet              

    // encode path
    var fee = exchange.IO("encodePacked", "uint24", 3000)
    var tokenInAddress = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    var tokenOutAddress = "0xdac17f958d2ee523a2206206994597c13d831ec7"
    var path = tokenInAddress.slice(2).toLowerCase()
    path += fee + tokenOutAddress.slice(2).toLowerCase()
    Log("path:", path)              

    var dataTuple = {
        "path" : path, 
        "recipient" : walletAddress, 
        "amountOut" : 1000, 
        "amountInMaximum" : 1, 
    }
    // encode SwapRouter02 exactOutput 
    var rawData = exchange.IO("encode", routerAddress, "exactOutput", dataTuple)
    Log("method hash:", rawData.slice(0, 8))   // 09b81346
    Log("params hash:", rawData.slice(8))              

    // decode exactOutput params
    var decodeRaw = exchange.IO("decode", "tuple(path bytes,recipient address,amountOut uint256,amountInMaximum uint256)", rawData.slice(8))
    Log("decodeRaw:", decodeRaw)
}

निम्नलिखित उदाहरण पहले एकencodePackedऑपरेशन परpathपैरामीटर प्रसंस्करण, क्योंकिexactOutputविधि कॉल है कि बाद में एन्कोड करने की जरूरत है की आवश्यकता हैpathएक पैरामीटर के रूप में. तोencodeexactOutputमार्ग अनुबंध की विधि, जिसमें केवल एक प्रकार का पैरामीटर होता हैtuple. विधि का नामexactOutputइस प्रकार कोडित हैः0x09b81346, औरexchange.IO("decode", ...)परिणामी कोड को डिकोड करने की विधिdecodeRaw, चर के अनुरूपdataTuple.

डाटा प्रोसेसिंग के लिए,exchange.IO()समारोह न केवल एन्कोडिंग का समर्थन करता है, बल्कि डिकोडिंग भी करता है।

exchange.IO (("encodePacked",...) विनिमय.IO (("कुंजी",...)