सुपर ऐप्स में सुपरफ्लुइड स्ट्रीम शुरू/बंद करने को स्वचालित करने का तरीका जानें। 🚀 वेब3 के बारे में सबसे असाधारण चीजों में से एक यह है कि हम अभी भी शुरुआती चरण में हैं और जैसा कि हम बोलते हैं, वेब 3 पारिस्थितिकी तंत्र नए प्रोटोकॉल, टूलिंग आदि के साथ बढ़ रहा है, और हमारी विशेषज्ञता के स्तर की परवाह किए बिना, हम दूसरों की मदद करने में योगदान दे सकते हैं। जैसा कि हम सीख रहे हैं। इस ब्लॉग का उद्देश्य डेवलपर्स को स्मार्ट कॉन्ट्रैक्ट्स के साथ जिलेटो नेटवर्क का उपयोग करने में मदद करना है और विशेष रूप से सुपरफ्लुइड सुपर ऐप्स के साथ गेलैटो ऑटोमेशन का उपयोग करने के लिए। अन्य सुविधाओं के बीच उपयोगकर्ताओं को केवल एक लेनदेन और न्यूनतम पूंजी लॉकअप के साथ उपयोगकर्ताओं/अनुबंधों को धन/टोकन स्ट्रीम करने की अनुमति देता है। चेतावनी यह है कि आपको धारा को रोकना याद रखना होगा, यदि नहीं तो धारा अंतहीन रूप से जारी रहेगी। अधिक जानकारी के लिए कृपया सुपरफ्लुइड वेबसाइट सुपरफ्लुइड प्रोटोकॉल देखें https://www.superfluid.finance/home आपको भविष्य के समय में कार्यों को निष्पादित करने की अनुमति देता है (पूर्व-web2 के लिए एक प्रकार के अनुसूचक के समान होगा)। मुख्य उपयोग मामला दोहराए गए कार्यों के लिए है। सुपरफ्लुइड स्ट्रीम के लिए हमें केवल एक निष्पादन (शुरू या बंद) की आवश्यकता होगी, इसलिए हमें कार्य को तैनात करना होगा और साथ ही "कार्य रद्द करें"। अधिक जानकारी के लिए कृपया जिलेटो वेबसाइट पर जाएं Gelato Network https://www.gelato.network/ यह परियोजना जिलेटो के साथ स्मार्ट अनुबंधों को स्वचालित करने के सामान्य-उद्देश्य के उदाहरणों के साथ-साथ सुपरफ्लुइड धाराओं के लिए एप्लिकेशन को प्रोग्राम करने योग्य नकदी प्रवाह बनाने के लिए एक बहुत ही सरल 3 + 3 चरण मार्गदर्शिका प्रस्तुत करती है। ऐसा करने के लिए हमने पर एक शोकेस डैप तैनात किया है। हम दो मुख्य सत्यापित और मुंबई अनुबंधों पर तैनात के साथ बातचीत करेंगे: https://gelato-superapp.web.app पार्टी ऐप अनुबंध ( ) स्कैन पर देखें Gelato सुपर ऐप अनुबंध ( ) स्कैन पर देखें कोड इस में पाया जा सकता है रिपॉजिटरी https://youtu.be/yjmJZ6LuPig स्मार्ट अनुबंध को पूरा करने के लिए 3+3 चरण मार्गदर्शिका यहां आपको जिलेटो इन्फ्रास्ट्रक्चर को जोड़ने और अपने स्मार्ट अनुबंध कार्यों को बहुत आसानी से स्वचालित करने के लिए 3 + 3 सबसे आसान चरण मिलेंगे: वायर गेलैटो इन्फ्रास्ट्रक्चर जिलेटो फंडिंग रणनीति Gelato व्यापार तर्क 3.1) कार्य निर्माण 3.2) चेकर कंडीशन 3.3) निष्पादन योग्य कार्य चरण 1: वायर गेलैटो इन्फ्रास्ट्रक्चर जिलेटो नेटवर्क के साथ बातचीत करने के लिए, हमें जिलेटो अनुबंधों के साथ बातचीत करने की आवश्यकता होगी (पते पाए जा सकते हैं)। हम तीन अनुबंधों के साथ बातचीत करेंगे: यहां बनाने, रद्द करने, लेन-देन शुल्क, स्थानांतरण शुल्क आदि प्राप्त करने के लिए मुख्य अनुबंध। हम अनुबंध प्राप्त करेंगे, हम कंस्ट्रक्टर में जिलेटो ऑप्स और जिलेटो ट्रेजरी पते पास करेंगे और ! ऑप्स अनुबंध: OpsReady.sol हम जाने के लिए अच्छे हैं import {OpsReady} from "./gelato/OpsReady.sol"; import {IOps} from "./gelato/IOps.sol"; import {ITaskTreasury} from "./gelato/ITaskTreasury.sol"; contract PartyApp is OpsReady, Ownable { constructor(address payable _ops, address payable _treasury) OpsReady(_ops, payable(_treasury)){ } : हमें अपनी फंडिंग रणनीति के आधार पर फंड/निकासी के लिए जिलेटो ट्रेजरी अनुबंध के साथ बातचीत करने की आवश्यकता होगी (चरण 2 देखें) गेलैटो ट्रेजरी अनुबंध : हम अपने परीक्षणों में इस अनुबंध के साथ बातचीत करेंगे… बोनस ट्रैक #2 . पर अधिक Gelato नेटवर्क OpsReady.sol अनुबंध, साथ ही इंटरफेस, रिपॉजिटरी के भीतर जिलेटो में पाया जा सकता है। आप बस उन्हें कॉपी कर सकते हैं और यह काम करता है! -फाइलों चरण 2: जिलेटो फंडिंग रणनीति Gelato भविष्य के समय में लेन-देन निष्पादित करता है, इसलिए हमें लेन-देन के वित्तपोषण का एक तरीका चुनने की आवश्यकता है जिसे Gelato हमारी ओर से निष्पादित करने जा रहा है। ऐसा करने के लिए दो विकल्प हैं: जब तक आपके पास ट्रेजरी अनुबंध में सकारात्मक शेष राशि है, भविष्य के लेनदेन निष्पादित किए जाएंगे। यदि हम इस विकल्प को चुनते हैं तो हमें इसके वित्तपोषण के लिए जिलेटो ट्रेजरी अनुबंध के साथ बातचीत करने की आवश्यकता है। 1) जिलेटो ट्रेजरी अनुबंध को निधि दें: function fundGelato(uint256 amount) public payable { require(msg.value == amount, "NO_FUNDING"); ITaskTreasury(treasury).depositFunds{value: amount}(address(this),ETH,amount); } function withdrawGelato() public onlyOwner { uint256 maxAmount = ITaskTreasury(treasury).userTokenBalance(address(this),ETH); ITaskTreasury(treasury).withdrawFunds(payable(msg.sender), ETH, maxAmount); } हमारा स्मार्ट अनुबंध भविष्य के प्रत्येक लेनदेन में शुल्क का भुगतान करने के लिए अनुरोधित राशि को स्थानांतरित करेगा। इस मामले में, हमें गेलेटो ट्रेजरी अनुबंध के साथ बातचीत करने की आवश्यकता नहीं होगी, लेकिन । 2) प्रत्येक लेन-देन को निधि दें: हमें अपने अनुबंध में सकारात्मक संतुलन बनाए रखना चाहिए चरण 3: गेलैटो बिजनेस लॉजिक तीन मुख्य भाग/चरण हैं जिन्हें हमें व्यावसायिक तर्क में परिभाषित करना है: हमें गेलेटो को यह बताने के लिए एक कार्य को परिभाषित करना होगा कि हम क्या निष्पादित करना चाहते हैं। 3.1) कार्य बनाएँ: function createTask() public { require(taskIdByUser[msg.sender] == bytes32(0), "TASK_STILL_ACTIVE"); bytes32 taskId = IOps(ops).createTask( address(this), /// Contract executing the task this.startParty.selector, /// Executable function's selector address(this), /// Resolver contract, in our case will be the same abi.encodeWithSelector(this.checkerStartParty.selector) /// Checker Condition ); taskIdByUser[msg.sender] = taskId; } भविष्य के लेन-देन को निष्पादित करने के लिए, हमें गेलैटो को यह जांचने के लिए शर्त प्रदान करनी होगी कि क्या गेलैटो निष्पादित कर सकता है या नहीं 3.2) चेकर की स्थिति: function checkerStartParty() external view returns (bool canExec, bytes memory execPayload) { canExec = headachePresent == false; execPayload = abi.encodeWithSelector(this.startParty.selector); } वह कार्य जो शर्तों और/या समय के पूरा होने पर निष्पादित किया जाएगा। 3.3) निष्पादन योग्य कार्य: function startParty() external onlyOps { require(headachePresent == false, "NOT_READY"); lastPartyStart = block.timestamp; headachePresent = true; } https://gist.github.com/donoso-eth/0678b0613db36c6c332063c9f39cddfd पार्टी ऐप डेमो! हमारा पहला गेलैटो ऐप बहुत आसान होने वाला है। यह जांचता है कि हमारी जिलेटो पार्टी शुरू हुई है या नहीं। पार्टी हमेशा शुरू होगी अगर हमें पिछली पार्टी से "सिरदर्द" नहीं है। जब हमारा "सिरदर्द" खत्म हो जाता है तो हम मैन्युअल रूप से सेट कर सकते हैं और फिर गेलैटो नेटवर्क स्टार्ट पार्टी को निष्पादित करने में सक्षम होगा, एक नया स्टार्ट पार्टी टाइमस्टैम्प सेट करेगा और हमारे "सिरदर्द को सही" पर सेट करेगा। हमारी फंडिंग रणनीति के आधार पर हमारी स्क्रीन को दो भागों में बांटा गया है। यह अनुबंध तीन उपयोग मामलों की अनुमति देता है: राजकोष से वित्त पोषित एक सरल कार्य बनाएँ: विवरण ऊपर देखा जा सकता है एक बार टास्क बन जाने के बाद हम पर जा सकते हैं और हम देखेंगे कि हमारा टास्क एक्जीक्यूशन का इंतजार कर रहा है जिलेटो ऑप्स वेबसाइट और सफल निष्पादन के बाद, ऑप्स डैशबोर्ड हमें कुछ इस तरह दिखाएगा। ट्रेजरी के साथ वित्त पोषित एक सरल कार्य बनाएं और पहले निष्पादन के बाद रद्द करें (हम बाद में इस पैटर्न का उपयोग अपने सुपरफ्लुइड स्ट्रीम के साथ करने जा रहे हैं)। https://gist.github.com/donoso-eth/517e2dca691980de506229cbe27eee62 प्रत्येक लेन-देन का भुगतान करने वाला एक सरल कार्य बनाएं (ट्रेजरी फंडिंग नहीं) https://gist.github.com/donoso-eth/340ca96b53005dd457defab0991a735c Gelato सुपर ऐप डेमो हमारा गेलैटो सुपर ऐप हमें स्टॉप या स्ट्रीम की शुरुआत को स्वचालित करके सुपरफ्लुइड स्ट्रीम को प्रोग्राम करने योग्य बनाने में मदद करेगा। हम पार्टी ऐप की तरह जिलेटो इन्फ्रास्ट्रक्चर (चरण 1) को लागू करेंगे और हम फंडिंग रणनीति के रूप में ट्रेजरी फंडिंग को चुनते हैं (चरण 2) हम कुछ पूर्वनिर्धारित मिनटों के बाद एक स्ट्रीम को रोकने का डेमो दिखाएंगे। हमारा व्यावसायिक तर्क इस तरह दिखेगा: https://gist.github.com/donoso-eth/e4fc0145ed75ed84309da1a467175931 अब अगर आपने खजाने को वित्त पोषित किया है, एक धारा शुरू कर दी है और जिलेटो को पहले ही उस धारा को रोक दिया गया है जिसे आपने अपना बोनस अनलॉक कर दिया है !! बोनस ट्रैक # 1: सो जाओ और स्ट्रीम शुरू हो जाएगी। अब तक हमने एक स्ट्रीम को स्वचालित रूप से रोकने के लिए हासिल किया है, लेकिन उसी तर्क का पालन करते हुए, मैं काम के पहले दिन ठीक 00:00 बजे एक नए कर्मचारी को स्ट्रीमिंग शुरू करना चाहता हूं और मैं हर दिन जागना नहीं चाहता क्योंकि उम्मीद है कि हम बहुत सारे कर्मचारियों को काम पर रखने जा रहे हैं! .. फिर बचाव के लिए (सीएफए एक्सेस कंट्रोल लिस्ट), एसडीके से या सीधे अनुबंध के लिए सीएफए निरंतर समझौते के लिए एक साधारण कॉल के साथ जब एक निश्चित समय बीत चुका है और एक "जिलेटो टास्क" निष्पादित किया जाता है। सीएफए एसीएल आप हमारे सुपर ऐप को आपकी ओर से एक स्ट्रीम शुरू करने की अनुमति देना चाह सकते हैं इस उपयोग के मामले में, हम दो कार्यों को जोड़ रहे हैं, जब पहले एक को निष्पादित किया जाता है, तो स्ट्रीम शुरू हो जाएगी, कार्य रद्द कर दिया जाएगा, और स्ट्रीम को रोकने के लिए दूसरा कार्य बनाया जाएगा। https://gist.github.com/donoso-eth/5491f5f94409f9648fa196c3ed24ca3d बोनस ट्रैक#2: मास्टर हार्डहट फोर्क और स्काई रॉकेट आपके विकास की गति ब्लॉकचैन विकास में सुखद अनुभवों में से एक है ….. के एक-क्लिक निर्माण की क्षमता। जैसे-जैसे हमारे डैप जटिलता में बढ़ते हैं, हमें मौजूदा ऑन-चेन अनुबंधों के साथ बातचीत करने की आवश्यकता होगी और प्रोटोकॉल का मजाक/तैनाती करना होगा। कुछ मामलों में यह । इस समस्या को दूर करने का सबसे अच्छा विकल्प एक कांटा के साथ काम करना है, हमारे के भीतर एक बहुत ही सरल कॉन्फ़िगरेशन के साथ (सही दिशा को इंगित करने के लिए फ्लेमिनी और हिलमार को धन्यवाद)। यदि हम स्थानीय बने रहना चाहते हैं तो हमें बोझिल हो सकता है और हम विकास के लिए कीमती समय व्यतीत करेंगे hardhat.config.ts सैम एक्स https://gist.github.com/donoso-eth/1dbfc57d3d40679e324048e1d7c01ab4 और फिर के साथ हम उस ब्लॉकचैन की "वर्चुअल" कॉपी बनाने में सक्षम होंगे जिसे हम लक्षित कर रहे हैं। अब से हम जो ब्लॉक बनाते हैं उन्हें स्थानीय रूप से संग्रहीत किया जाएगा और पुराने लोगों के लिए हम अपने आरपीसी प्रदाता (ऊपर हम कीमिया का उपयोग कर रहे हैं) के साथ "वास्तविक" ब्लॉकचैन को क्वेरी करेंगे। npx hardhat node --network "hardhat" हमारे उदाहरण में, हम मुंबई के साथ काम कर रहे हैं, सुपरफ्लुइड कॉन्ट्रैक्ट्स (होस्ट, कॉन्स्टनफ्लोएग्रींट, सुपरटोकन…), साथ ही जिलेटो कॉन्ट्रैक्ट्स (नेटवर्क, ओपीएस, और ट्रेजरी), उस राज्य के साथ मौजूद हैं जो उनके पास कांटे के ब्लॉक नंबर पर था। हमें उनके साथ बातचीत करने की इजाजत देता है क्योंकि हम "असली" ब्लॉकचैन के साथ बातचीत करेंगे। अब, आपके पास अपना स्थानीय "मुंबई" अतिरिक्त सहायक विधियों के साथ वास्तव में श्रृंखला में महारत हासिल करने के लिए है: https://gist.github.com/donoso-eth/148d031bbc57e6a3b6708367a52b0069 हमारे Dapp में हम Gelato अनुबंधों के साथ काम कर रहे हैं। "निष्पादक" हमारे कार्यों को स्वचालित करने का ध्यान रखेंगे, लेकिन हमारी स्थानीय "आभासी" श्रृंखला में कोई निष्पादक नहीं हैं ... हमारे कार्यों को कौन निष्पादित करेगा?। और इसका उत्तर बहुत सरल है, । हम ऐसा कर सकते हैं क्योंकि हम अपने स्थानीय ब्लॉकचेन में महारत हासिल करते हैं, और हम निष्पादक बनना चुनते हैं। हार्डहाट हमें शानदार विधि प्रदान करता है और हम इसका उपयोग स्थानीय रूप से "निष्पादक" बनने के लिए करेंगे। हम स्वयं कार्य को अंजाम देने जा रहे हैं हम जो भी बनना चाहते हैं वह हो सकते हैं hardhat_impersonateAcount यहां हम Gelato नेटवर्क अनुबंध का प्रतिरूपण करते हुए जिलेटो कार्यों को निष्पादित करने के लिए कार्यान्वयन का विवरण देख सकते हैं https://gist.github.com/donoso-eth/88b3e43f5957cf1e6cdbcd326067fee0 कार्य को निष्पादित करने में सक्षम होने के लिए हमें पैरा बनाने की आवश्यकता होगी, यदि हम ऑप्स इंटरफ़ेस में देखते हैं तो हम देखते हैं कि हमें निम्नलिखित पैरा की आवश्यकता है /// @notice Execution API called by Gelato /// @param _txFee Fee paid to Gelato for execution, deducted on the TaskTreasury /// @param _feeToken Token used to pay for the execution. ETH = 0xeeeeee... /// @param _taskCreator On which contract should Gelato check when to execute the tx /// @param _useTaskTreasuryFunds If msg.sender's balance on TaskTreasury should pay for the tx /// @param _revertOnFailure To revert or not if call to execAddress fails /// @param _execAddress On which contract should Gelato execute the tx /// @param _execData Data used to execute the tx, queried from the Resolver by Gelato function exec( uint256 _txFee, address _feeToken, address _taskCreator, bool _useTaskTreasuryFunds, bool _revertOnFailure, bytes32 _resolverHash, address _execAddress, bytes calldata _execData ) external; पार्टी ऐप में हमारे एक उदाहरण का उपयोग करते हुए हमारे पास होगा: https://gist.github.com/donoso-eth/bacd13ccb9718d70f618eca6c82587f7 हमारे डीएपी परीक्षणों में कार्यान्वयन में देखा जा सकता है। हम अपने अनुबंध परीक्षणों में इस तकनीक का उपयोग करते हैं। कोड निष्कर्ष जैसा कि हमने देखा है, हमारे स्मार्ट अनुबंधों में जिलेटो नेटवर्क को तार करना और स्वचालन की पूरी क्षमता को अनलॉक करना अपेक्षाकृत सरल है। विशेष रूप से सुपरफ्लुइड स्ट्रीम के लिए जिलेटो सुपर ऐप्स को स्ट्रीम-शेड्यूलिंग करने की अनुमति दे सकता है। आशा है कि यह लेख अन्य देवों को जिलेटो के साथ जल्दी से उठने और चलाने में मदद कर सकता है और इसे सुपरफ्लुइड धाराओं पर लागू कर सकता है। आप मेरे साथ ट्विटर पर जुड़ सकते हैं @donoso_eth भी प्रकाशित हो चुकी है।. यहाँ