इव्हेंटसह स्मार्ट कॉन्ट्रॅक्टमधून डेटा लॉग करणे
Solidity मध्ये, इव्हेंट्स हे पाठवलेले सिग्नल आहेत जे स्मार्ट कॉन्ट्रॅक्ट्स फायर करू शकतात. Dapps, किंवा इथेरियम JSON-RPC API शी जोडलेली कोणतीही गोष्ट, हे इव्हेंट्स ऐकू शकते आणि त्यानुसार कार्य करू शकते. एखाद्या इव्हेंटला इंडेक्स देखील केले जाऊ शकते जेणेकरून इव्हेंटचा इतिहास नंतर शोधण्यायोग्य होईल.
इव्हेंट्स
हा लेख लिहिण्याच्या वेळी इथेरियम ब्लॉकचेनवरील सर्वात सामान्य इव्हेंट म्हणजे ट्रान्सफर इव्हेंट जो ERC20 टोकन्सद्वारे उत्सर्जित केला जातो जेव्हा कोणी टोकन ट्रान्सफर करतो.
1event Transfer(address indexed from, address indexed to, uint256 value);इव्हेंट सिग्नेचर कॉन्ट्रॅक्ट कोडमध्ये घोषित केले जाते आणि emit कीवर्डसह उत्सर्जित केले जाऊ शकते. उदाहरणार्थ, ट्रान्सफर इव्हेंट लॉग करतो की कोणी ट्रान्सफर पाठवले (from), कोणाला (to) आणि किती टोकन ट्रान्सफर केले गेले (value).
आता आपण आपल्या काउंटर स्मार्ट कॉन्ट्रॅक्टवर परत येऊ आणि प्रत्येक वेळी मूल्य बदलल्यावर लॉग करण्याचे ठरवू. हा कॉन्ट्रॅक्ट डिप्लॉय करण्यासाठी नसून, तो विस्तारित करून दुसरा कॉन्ट्रॅक्ट तयार करण्यासाठी आधार म्हणून काम करतो: याला अॅबस्ट्रॅक्ट कॉन्ट्रॅक्ट म्हणतात. आपल्या काउंटरच्या उदाहरणात, ते असे दिसेल:
1pragma solidity 0.5.17;23contract Counter {45 event ValueChanged(uint oldValue, uint256 newValue);67 // गणनेची संख्या ठेवण्यासाठी अनसाईन्ड इंट प्रकारातील खाजगी व्हेरिएबल8 uint256 private count = 0;910 // आमच्या काउंटरमध्ये वाढ करणारे फंक्शन11 function increment() public {12 count += 1;13 emit ValueChanged(count - 1, count);14 }1516 // गणनेचे मूल्य मिळवण्यासाठी गेटर17 function getCount() public view returns (uint256) {18 return count;19 }2021}सर्व दाखवाहे लक्षात घ्या:
-
ओळ ५: आपण आपला इव्हेंट आणि त्यात काय आहे, म्हणजे जुने मूल्य आणि नवीन मूल्य, हे घोषित करतो.
-
ओळ १३: जेव्हा आपण आपल्या count व्हेरिएबलमध्ये वाढ करतो, तेव्हा आपण इव्हेंट उत्सर्जित करतो.
जर आपण आता कॉन्ट्रॅक्ट डिप्लॉय केला आणि इन्क्रिमेंट फंक्शनला कॉल केला, तर आपल्याला दिसेल की, जर तुम्ही लॉग नावाच्या अॅरेमधील नवीन ट्रान्झॅक्शनवर क्लिक केले तर Remix ते आपोआप प्रदर्शित करेल.
तुमचे स्मार्ट कॉन्ट्रॅक्ट डीबग करण्यासाठी लॉग खूप उपयुक्त आहेत, पण ते तेव्हाही महत्त्वाचे आहेत जेव्हा तुम्ही वेगवेगळ्या लोकांद्वारे वापरले जाणारे ॲप्लिकेशन्स तयार करता आणि त्यांच्यामुळे तुमचा स्मार्ट कॉन्ट्रॅक्ट कसा वापरला जातो हे ट्रॅक करून समजून घेण्यासाठी विश्लेषण करणे सोपे होते. ट्रान्झॅक्शनद्वारे तयार केलेले लॉग लोकप्रिय ब्लॉक एक्सप्लोररमध्ये प्रदर्शित केले जातात आणि तुम्ही उदाहरणार्थ, विशिष्ट इव्हेंट्स ऐकण्यासाठी आणि ते घडल्यावर कारवाई करण्यासाठी ऑफचेन स्क्रिप्ट्स तयार करण्याकरिता त्यांचा वापर करू शकता.
पृष्ठ अखेरचे अद्यतन: १२ फेब्रुवारी, २०२५
