Web3 और DApp विकास की मूल बातें · पाठ

इवेंट घोषित करना

ऑन-चेन लॉग उत्सर्जित करें

पाठ 1, कुल 4 में से13 चरण

इवेंट घोषित करना, CoddyKit पर Web3 और DApp विकास की मूल बातें का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Web3 और DApp विकास की मूल बातें सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Web3 और DApp विकास की मूल बातें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Events क्या हैं

Events किसी स्मार्ट कॉन्ट्रैक्ट को ब्लॉकचेन के log में प्रविष्टियाँ लिखने देते हैं। ये logs किसी घटना के घटित होने को दर्ज करने का सस्ता तरीका हैं और ऑफ-चेन एप्लिकेशन से कॉन्ट्रैक्ट के संवाद का प्राथमिक माध्यम हैं।

फ्रंट-एंड, इंडेक्सर और विश्लेषण उपकरण सभी events के लिए सुनते हैं।

Event घोषित करना

आप event कीवर्ड और टाइप किए गए पैरामीटरों की सूची से event घोषित करते हैं। यह घोषणा event का ढाँचा तय करती है।

<code>event Transfer(address from, address to, uint256 amount);</code>

Event जारी करना

किसी event को सक्रिय करने के लिए event के नाम और आर्ग्युमेंट्स के बाद emit कीवर्ड का उपयोग करें। इससे ट्रांज़ैक्शन रसीद में एक log प्रविष्टि जुड़ जाती है।

<code>function send(address to, uint256 amount) public {
    // ... transfer logic
    emit Transfer(msg.sender, to, amount);
}</code>

Events का उपयोग क्यों करें

Events दो समस्याओं का समाधान करते हैं:

  • सस्ता रिकॉर्ड रखना - logs की लागत स्टोरेज की तुलना में बहुत कम गैस होती है
  • ऑफ-चेन संचार - dApps रीयल टाइम में स्टोरेज नहीं पढ़ सकते, लेकिन events की सदस्यता ले सकते हैं

हालाँकि, कॉन्ट्रैक्ट स्वयं अपने जारी किए गए events को नहीं पढ़ सकते।

एक पूर्ण उदाहरण

यह एक छोटा कॉन्ट्रैक्ट है जो किसी मान के अपडेट होने पर event जारी करता है, ताकि सुनने वाला कोई भी ऐप बदलाव को तुरंत जान सके।

<code>contract Counter {
    uint256 public count;
    event Incremented(uint256 newCount);

    function increment() public {
        count += 1;
        emit Incremented(count);
    }
}</code>

Logs स्टोरेज नहीं हैं

Event डेटा कॉन्ट्रैक्ट स्टोरेज में नहीं, बल्कि ट्रांज़ैक्शन रसीद के विशेष log क्षेत्र में संग्रहीत होता है। इसी कारण वे सस्ते होते हैं, लेकिन कॉन्ट्रैक्ट ऑन-चेन पिछले events की खोज नहीं कर सकता।

Logs ऑफ-चेन क्लाइंट और ब्लॉक एक्सप्लोरर के लिए उपलब्ध होते हैं।

नामकरण और परंपराएँ

परंपरा के अनुसार events के नाम PascalCase में रखे जाते हैं और वे अक्सर पिछली कार्रवाई का वर्णन करते हैं: Transfer, Approval, Deposit, OwnershipTransferred।

ERC-20 जैसे मानक interfaces आवश्यक events परिभाषित करते हैं, जिन्हें आपको जारी करना होता है।

<code>event Approval(address owner, address spender, uint256 value);
event Deposit(address account, uint256 amount);</code>

एकाधिक पैरामीटर

Events में किसी भी प्रकार के कई पैरामीटर हो सकते हैं, जिनमें string और bytes भी शामिल हैं। डेटा को log में ABI-एन्कोड किया जाता है।

<code>event OrderPlaced(uint256 id, address buyer, string product, uint256 price);

function place(uint256 id, string memory p, uint256 price) public {
    emit OrderPlaced(id, msg.sender, p, price);
}</code>

Events की गैस लागत

किसी event को जारी करने में गैस लगती है, लेकिन उसी डेटा को स्टोरेज में लिखने की तुलना में बहुत कम। मूल लागत और प्रति-बाइट की छोटी फीस के कारण ऐतिहासिक डेटा उपलब्ध कराने के लिए events पसंदीदा तरीका हैं।

सामान्य नियम: कॉन्ट्रैक्ट को जिसे पढ़ना हो उसे स्टोर करें, और ऑफ-चेन ऐप्स को जिसे पढ़ना हो उसे जारी करें।

ABI में Events

Event घोषणाएँ कॉन्ट्रैक्ट के ABI में दिखाई देती हैं, ताकि क्लाइंट लाइब्रेरी logs को डीकोड करना जान सकें। Event सिग्नेचर को हैश करके एक topic पहचानकर्ता बनाया जाता है।

<code>// ABI entry (simplified)
// { type: 'event', name: 'Transfer',
//   inputs: [from, to, amount] }</code>

स्टेट बदलावों के लिए Events

हर महत्वपूर्ण स्टेट बदलाव के लिए event जारी करना एक अच्छी प्रथा है। इससे एप्लिकेशन को एक विश्वसनीय और क्रमबद्ध इतिहास मिलता है, जिसे दोबारा चलाकर स्टेट बनाया जा सकता है।

<code>address public owner;
event OwnerChanged(address previous, address next);

function setOwner(address next) public {
    emit OwnerChanged(owner, next);
    owner = next;
}</code>

त्वरित जाँच

Events घोषित करने की अपनी समझ जाँचें।

पुनरावलोकन

आपने events घोषित करना और जारी करना सीखा:

  • event Name(types...) से घोषित करें
  • emit Name(args...) से जारी करें
  • Logs सस्ते होते हैं, ऑफ-चेन पढ़े जा सकते हैं और ऑन-चेन खोजे नहीं जा सकते
  • हर महत्वपूर्ण स्टेट बदलाव के लिए event जारी करें

Events आपके कॉन्ट्रैक्ट और बाहरी दुनिया के बीच सेतु हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Web3 और DApp विकास की मूल बातें सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
29
पाठ
105

अक्सर पूछे जाने वाले प्रश्न

क्या “इवेंट घोषित करना” पाठ निःशुल्क है?

हाँ — Web3 और DApp विकास की मूल बातें अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “इवेंट घोषित करना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Web3 और DApp विकास की मूल बातें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“इवेंट घोषित करना” में मैं क्या सीखूँगा?

ऑन-चेन लॉग उत्सर्जित करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Web3 और DApp विकास की मूल बातें का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Web3 और DApp विकास की मूल बातें शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Web3 और DApp विकास की मूल बातें शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“इवेंट घोषित करना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Web3 और DApp विकास की मूल बातें पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Web3 और DApp विकास की मूल बातें पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. इवेंट घोषित करना
  2. इंडेक्स किए गए पैरामीटर
  3. इवेंट सुनना
  4. इवेंट बनाम संग्रहण
← Web3 और DApp विकास की मूल बातें पर वापस जाएँ