पाठ 1सामान्य कॉन्ट्रैक्ट पैटर्न: Ownable, Pausable, ReentrancyGuard, Pull over Push भुगतान, Checks-Effects-Interactions पैटर्नसुरक्षा और रखरखाव को बेहतर बनाने वाले मूलभूत स्मार्ट कॉन्ट्रैक्ट पैटर्नों का अन्वेषण करें। आप Ownable, Pausable, और ReentrancyGuard लागू करेंगे, और वास्तविक भुगतान प्रवाहों में Pull over Push और Checks-Effects-Interactions लागू करेंगे।
Ownable एक्सेस कंट्रोल लागू करना और उपयोग करनाPausable कॉन्ट्रैक्ट और आपातकालीन रोकReentrancyGuard और रीएंट्रेंसी हमले का बचावPull over Push भुगतान प्रवाह डिजाइनChecks-Effects-Interactions सर्वोत्तम प्रथाएंपाठ 2सॉलिडिटी 0.8+ में सुरक्षित गणित और ओवरफ्लो सुरक्षा: अंतर्निहित जाँच बनाम स्पष्ट लाइब्रेरी (OpenZeppelin SafeMath इतिहास)जानें कि सॉलिडिटी 0.8+ के अंतर्निहित ओवरफ्लो जाँच ने अंकगणितीय सुरक्षा को कैसे बदला। पुरानी SafeMath-शैली लाइब्रेरी को आधुनिक पैटर्न से तुलना करें, और जानें कि unchecked ब्लॉक्स कब गैस-कुशल अंकगणितीय संचालन के लिए सुरक्षित हैं।
इंटीजर ओवरफ्लो और अंडरफ्लो मूलभूतसॉलिडिटी 0.8+ में अंतर्निहित अंकगणितीय जाँचपुरानी SafeMath लाइब्रेरी और माइग्रेशनगैस के लिए unchecked ब्लॉक्स का सुरक्षित उपयोगअंकगणितीय एज केस और सीमाओं का परीक्षणपाठ 3स्टेट वेरिएबल्स, स्टोरेज बनाम मेमोरी, इवेंट्स, मॉडिफायर्स, और एरर हैंडलिंग (require, revert, assert, कस्टम एरर्स)मास्टर करें कि सॉलिडिटी स्टेट वेरिएबल्स, स्टोरेज, मेमोरी, और calldata का उपयोग करके डेटा कैसे स्टोर और एक्सेस करता है। इवेंट्स इमिट करना, पुन: उपयोग योग्य मॉडिफायर्स लिखना, और स्पष्ट एरर हैंडलिंग के लिए require, revert, assert, और कस्टम एरर्स लागू करना सीखें।
स्टेट वेरिएबल्स और स्टोरेज स्लॉट्सस्टोरेज बनाम मेमोरी बनाम calldata उपयोगउपयोगी इवेंट्स डिजाइन और इमिट करनापुन: उपयोग योग्य और सुरक्षित मॉडिफायर्स लिखनाRequire, revert, assert, और कस्टम एरर्सपाठ 4फंक्शन विजिबिलिटी और म्यूटेबिलिटी: public, external, internal, private; view, pure, payableस्पष्ट करें कि फंक्शन विजिबिलिटी और म्यूटेबिलिटी सुरक्षा, गैस, और उपयोगिता को कैसे प्रभावित करती है। जानें कि public, external, internal, और private कब उपयोग करना है, और view, pure, और payable स्टेट परिवर्तनों और मूल्य हस्तांतरण को कैसे प्रभावित करते हैं।
Public बनाम external फंक्शन ट्रेड-ऑफ्सइनकैप्सुलेशन के लिए internal और privateरीड-ओनली लॉजिक के लिए view और purePayable फंक्शन और ETH हस्तांतरणस्पष्ट और सुरक्षित APIs डिजाइन करनापाठ 5जमा/निकासी लेखा डिजाइन: mapping(address => uint256) बैलेंस, जमा/निकासी के लिए इवेंट्स, एकल-टोकन बनाम मल्टी-टोकन वॉल्ट्स हैंडलिंगमैपिंग्स, इवेंट्स, और टोकन इंटरफेस का उपयोग करके सुरक्षित जमा और निकासी प्रवाह डिजाइन करना सीखें। एकल-टोकन और मल्टी-टोकन वॉल्ट्स की तुलना करें, और विफल हस्तांतरणों और अप्रत्याशित टोकन व्यवहार जैसे एज केस हैंडल करें।
मैपिंग बैलेंस और लेखा इनवैरिएंट्सजमा और निकासी के लिए इवेंट्स इमिट करनाएकल-टोकन वॉल्ट डिजाइन और इंटरफेसमल्टी-टोकन वॉल्ट्स और टोकन पहचानकर्ताविफल हस्तांतरणों और टोकन विचित्रताओं को हैंडल करनापाठ 6स्मार्ट कॉन्ट्रैक्ट्स का परीक्षण: यूनिट टेस्टिंग अवधारणाएँ, फिक्स्चर्स, ERC-20 टोकन्स के लिए मॉक्स, और टेस्ट संरचना (arrange-act-assert)संरचित दृष्टिकोण से स्मार्ट कॉन्ट्रैक्ट्स का परीक्षण करना सीखें। आप यूनिट टेस्ट्स लिखेंगे, ERC-20 टोकन्स के लिए फिक्स्चर्स और मॉक्स उपयोग करेंगे, arrange-act-assert का पालन करेंगे, और एज केस, रिवर्ट्स, और इवेंट अपेक्षाओं को कवर करेंगे।
टेस्टिंग फ्रेमवर्क्स और प्रोजेक्ट सेटअपArrange-Act-Assert टेस्ट संरचनादोहराने योग्य स्टेट के लिए फिक्स्चर्स उपयोगERC-20 टोकन्स और व्यवहारों को मॉक करनारिवर्ट्स, इवेंट्स, और एज केस का परीक्षणपाठ 7सॉलिडिटी भाषा मूलभूत: सिंटैक्स, प्रकार, विजिबिलिटी, इनहेरिटेंस, और कंपाइलर प्राग्मा (0.8.x विशेषताएँ)सॉलिडिटी सिंटैक्स, प्रकारों, और विजिबिलिटी नियमों की मजबूत समझ बनाएँ। इनहेरिटेंस, इंटरफेस, कंपाइलर प्राग्मा, और 0.8.x विशेषताओं जैसे कस्टम एरर्स और बेहतर प्रकार सुरक्षा का अन्वेषण करें आधुनिक स्मार्ट कॉन्ट्रैक्ट विकास के लिए।
सोर्स फाइल्स, कॉन्ट्रैक्ट्स, और मूलभूत सिंटैक्सवैल्यू प्रकार, रेफरेंस प्रकार, और ऐरेफंक्शन और स्टेट वेरिएबल विजिबिलिटीइनहेरिटेंस, इंटरफेस, और एब्स्ट्रैक्ट कॉन्ट्रैक्ट्सकंपाइलर प्राग्मा और 0.8.x भाषा परिवर्तनपाठ 8कॉन्ट्रैक्ट अपग्रेडेबिलिटी मूलभूत और ट्रेड-ऑफ्स: प्रॉक्सी पैटर्न (transparent, UUPS) और सरल वॉल्ट्स के लिए अपग्रेड्स से बचना कबसमझें कि प्रॉक्सी पैटर्न का उपयोग करके कॉन्ट्रैक्ट्स कब और कैसे अपग्रेड करें। transparent और UUPS प्रॉक्सी, स्टोरेज लेआउट बाधाओं, और गवर्नेंस जोखिमों की तुलना करें, और देखें कि सरल वॉल्ट्स अपग्रेडेबिलिटी के बिना क्यों सुरक्षित हो सकते हैं।
कॉन्ट्रैक्ट्स अपग्रेड करने के कारण और कब बचनाTransparent प्रॉक्सी आर्किटेक्चर और भूमिकाएँUUPS प्रॉक्सी पैटर्न और अपग्रेड फंक्शन्सस्टोरेज लेआउट संगतता और गड्ढेअपग्रेड्स के सुरक्षा और गवर्नेंस जोखिमपाठ 9गैस अनुकूलन मूलभूत: स्टोरेज लेआउट, पैकिंग, बाहरी कॉल्स कम करना, और calldata उपयोगसॉलिडिटी कॉन्ट्रैक्ट्स के लिए व्यावहारिक गैस अनुकूलन तकनीकों को सीखें। आप स्टोरेज लेआउट और पैकिंग का विश्लेषण करेंगे, महंगे बाहरी कॉल्स कम करेंगे, calldata का लाभ उठाएंगे, और सुरक्षित सूक्ष्म-अनुकूलनों को निर्देशित करने के लिए गैस उपयोग मापेंगे।
गैस लागतों और रिफंड्स को समझनास्टोरेज लेआउट और वेरिएबल पैकिंगबाहरी और क्रॉस-कॉन्ट्रैक्ट कॉल्स कम करनासस्ते रीड-ओनली इनपुट्स के लिए calldata उपयोगगैस उपयोग मापना और बेंचमार्किंगपाठ 10ERC-20 टोकन स्टैंडर्ड गहन अध्ययन: इंटरफेस (IERC20), भत्ताएँ, approve/transferFrom सिमेंटिक्स, रिटर्न वैल्यू हैंडलिंग और गैर-मानक टोकन्सERC-20 स्टैंडर्ड में गहराई से उतरें, IERC20 इंटरफेस, बैलेंस, भत्ताओं, और approve/transferFrom प्रवाहों पर ध्यान केंद्रित करते हुए। रिटर्न वैल्यूज, गैर-मानक टोकन्स को हैंडल करना, और उत्पादन कॉन्ट्रैक्ट्स में सुरक्षित इंटरैक्शन पैटर्न सीखें।
IERC20 इंटरफेस और आवश्यक फंक्शन्सबैलेंस, totalSupply, और decimals हैंडलिंगApprove और transferFrom भत्ता वर्कफ्लोगैर-मानक ERC-20 टोकन्स से निपटनाहेल्पर लाइब्रेरी के साथ सुरक्षित ERC-20 इंटरैक्शन्स