मुख्य आशयावर जा

घटनांचा वापर करून स्मार्ट कॉन्ट्रॅक्ट्समधून डेटाची नोंद करणे

स्मार्ट कॉन्ट्रॅक्ट्स
remix
solidity
घटना
मध्यम
jdourlens
3 एप्रिल, 2020
2 मिनिटांचे वाचन

Solidity मध्ये, घटना हे स्मार्ट कॉन्ट्रॅक्ट्सद्वारे पाठवले जाणारे सिग्नल्स असतात. विकेंद्रित ॲप्लिकेशन्स (dapps), किंवा इथेरियम जेसॉन-आरपीसी API शी जोडलेले कोणतेही ॲप्लिकेशन, या घटना ऐकू शकतात आणि त्यानुसार कृती करू शकतात. एखादी घटना अनुक्रमित (indexed) देखील केली जाऊ शकते जेणेकरून नंतर घटनांचा इतिहास शोधता येईल.

घटना

हा लेख लिहिताना इथेरियम ब्लॉकचेनवरील सर्वात सामान्य घटना म्हणजे Transfer घटना आहे, जी ERC-20 टोकन्सद्वारे तेव्हा उत्सर्जित (emit) केली जाते जेव्हा कोणीतरी टोकन्सचे हस्तांतरण करते.

event Transfer(address indexed from, address indexed to, uint256 value);

घटनेची स्वाक्षरी कॉन्ट्रॅक्ट कोडच्या आत घोषित केली जाते आणि ती emit कीवर्डसह उत्सर्जित केली जाऊ शकते. उदाहरणार्थ, transfer घटना कोणी हस्तांतरण पाठवले (from), कोणाला पाठवले (to) आणि किती टोकन्स हस्तांतरित केले गेले (value) याची नोंद करते.

जर आपण आपल्या Counter स्मार्ट कॉन्ट्रॅक्टकडे परत गेलो आणि प्रत्येक वेळी मूल्य बदलल्यावर नोंद करण्याचे ठरवले. हे कॉन्ट्रॅक्ट प्रस्थापित करण्यासाठी (deploy) बनवलेले नाही तर ते विस्तारित करून दुसरे कॉन्ट्रॅक्ट तयार करण्यासाठी आधार म्हणून काम करते: याला ॲब्स्ट्रॅक्ट (abstract) कॉन्ट्रॅक्ट म्हणतात. आपल्या counter च्या उदाहरणात, ते असे दिसेल:

लक्षात घ्या की:

  • Line 5: आपण आपली घटना आणि त्यात काय समाविष्ट आहे, जुने मूल्य आणि नवीन मूल्य घोषित करतो.

  • Line 13: जेव्हा आपण आपले count व्हेरिएबल वाढवतो, तेव्हा आपण घटना उत्सर्जित करतो.

जर आपण आता कॉन्ट्रॅक्ट प्रस्थापित केले आणि increment फंक्शन कॉल केले, तर आपण पाहू की जर तुम्ही logs नावाच्या ॲरेमधील नवीन व्यवहारावर क्लिक केले तर Remix ते स्वयंचलितपणे प्रदर्शित करेल.

Remix screenshot

तुमच्या स्मार्ट कॉन्ट्रॅक्ट्सचे डीबगिंग करण्यासाठी नोंदी खरोखर उपयुक्त आहेत परंतु जर तुम्ही वेगवेगळ्या लोकांद्वारे वापरले जाणारे ॲप्लिकेशन्स तयार करत असाल तर त्या देखील महत्त्वाच्या आहेत आणि तुमचे स्मार्ट कॉन्ट्रॅक्ट कसे वापरले जाते याचा मागोवा घेण्यासाठी आणि समजून घेण्यासाठी ॲनालिटिक्स करणे सोपे करतात. व्यवहारांद्वारे व्युत्पन्न केलेल्या नोंदी लोकप्रिय ब्लॉक एक्सप्लोरर्समध्ये प्रदर्शित केल्या जातात आणि उदाहरणार्थ तुम्ही त्यांचा वापर विशिष्ट घटना ऐकण्यासाठी आणि त्या घडल्यावर कृती करण्यासाठी साखळीबाह्य स्क्रिप्ट्स तयार करण्यासाठी देखील करू शकता.