मुख्य सामग्री पर जाएँ
Change page

स्मार्ट अनुबंध लाइब्रेरी

पेज का अंतिम अपडेट: 21 अगस्त 2025

आपको अपने प्रोजेक्ट में हर स्मार्ट अनुबंध को शुरू से लिखने की आवश्यकता नहीं है। कई ओपन सोर्स स्मार्ट अनुबंध लाइब्रेरी उपलब्ध हैं जो आपकी परियोजना के लिए पुन: प्रयोज्य बिल्डिंग ब्लॉक प्रदान करती हैं जिससे आपको इसे फिर से बनाने की मेहनत नहीं करनी पड़ती।

पूर्वापेक्षाएं

स्मार्ट अनुबंध लाइब्रेरी में प्रवेश करने से पहले, स्मार्ट अनुबंध की संरचना की अच्छी समझ प्राप्त करना अच्छा विचार है। यदि आपने अभी तक ऐसा नहीं किया है तो स्मार्ट अनुबंध एनाटॉमी पर जाएं।

एक लाइब्रेरी में क्या है

आप आमतौर पर स्मार्ट अनुबंध लाइब्रेरी में दो प्रकार के बिल्डिंग ब्लॉक पा सकते हैं: पुन: प्रयोज्य व्यवहार जिन्हें आप अपने अनुबंधों में जोड़ सकते हैं, और विभिन्न मानकों के कार्यान्वयन।

व्यवहार

स्मार्ट अनुबंध लिखते समय, इस बात की अच्छी संभावना है कि आप खुद को बार-बार एक जैसे पैटर्न लिखते हुए पाएंगे, जैसे अनुबंध में संरक्षित संचालन करने के लिए एडमिन पता असाइन करना, या एक अप्रत्याशित समस्या की स्थिति में आपातकालीन पॉज़ बटन जोड़ना।

स्मार्ट अनुबंध लाइब्रेरी आमतौर पर इन व्यवहारों के पुन: प्रयोज्य कार्यान्वयन को सॉलिडिटी में लाइब्रेरी (opens in a new tab) या इनहेरिटेंस (opens in a new tab) के माध्यम से प्रदान करती हैं।

एक उदाहरण के रूप में, निम्नलिखित ओपनज़ेपेलिन कॉन्ट्रैक्ट्स लाइब्रेरी (opens in a new tab) से Ownable अनुबंध (opens in a new tab) का एक सरलीकृत संस्करण है, जो एक पते को एक अनुबंध के मालिक के रूप में नामित करता है, और केवल उस मालिक तक पहुंच को एक विधि तक सीमित करने के लिए एक संशोधक प्रदान करता है।

1contract Ownable {
2 address public owner;
3
4 constructor() internal {
5 owner = msg.sender;
6 }
7
8 modifier onlyOwner() {
9 require(owner == msg.sender, "Ownable: कॉलर मालिक नहीं है");
10 _;
11 }
12}

अपने अनुबंध में इस तरह के बिल्डिंग ब्लॉक का उपयोग करने के लिए, आपको पहले इसे आयात करना होगा, और फिर इसे अपने स्वयं के अनुबंधों में विस्तारित करना होगा। यह आपको अपने स्वयं के फंक्शंस को सुरक्षित करने के लिए आधार Ownable अनुबंध द्वारा प्रदान किए गए संशोधक का उपयोग करने की अनुमति देगा।

1import ".../Ownable.sol"; // आयातित लाइब्रेरी का पाथ
2
3contract MyContract is Ownable {
4 // निम्नलिखित फ़ंक्शन को केवल मालिक द्वारा ही कॉल किया जा सकता है
5 function secured() onlyOwner public {
6 msg.sender.transfer(1 ether);
7 }
8}

एक और लोकप्रिय उदाहरण SafeMath (opens in a new tab) या DsMath (opens in a new tab) है। ये लाइब्रेरी हैं (आधार अनुबंधों के विपरीत) जो ओवरफ्लो जांच के साथ अंकगणितीय फंक्शंस प्रदान करते हैं, जो भाषा द्वारा प्रदान नहीं किए जाते हैं। ओवरफ्लो के खिलाफ अपने अनुबंध की रक्षा के लिए मूल अंकगणितीय संचालन के बजाय इन लाइब्रेरी में से किसी एक का उपयोग करना एक अच्छा अभ्यास है, जिसके विनाशकारी परिणाम हो सकते हैं!

मानक

कम्पोज़ेबिलिटी और इंटरऑपरेटेबिलिटी को सुविधाजनक बनाने के लिए, एथेरियम समुदाय ने ERCs के रूप में कई मानकों को परिभाषित किया है। आप उनके बारे में मानक अनुभाग में और अधिक पढ़ सकते हैं।

अपने अनुबंधों के हिस्से के रूप में एक ERC को शामिल करते समय, अपने स्वयं के रोल आउट करने की कोशिश करने के बजाय मानक कार्यान्वयनों की तलाश करना एक अच्छा विचार है। कई स्मार्ट अनुबंध लाइब्रेरी में सबसे लोकप्रिय ERC के लिए कार्यान्वयन शामिल हैं। उदाहरण के लिए, सर्वव्यापी ERC20 फंजिबल टोकन मानक HQ20 (opens in a new tab), DappSys (opens in a new tab) और ओपनज़ेपेलिन (opens in a new tab) में पाया जा सकता है। इसके अतिरिक्त, कुछ ERC स्वयं ERC के हिस्से के रूप में विहित कार्यान्वयन भी प्रदान करते हैं।

यह उल्लेखनीय है कि कुछ ERC स्टैंडअलोन नहीं हैं, बल्कि अन्य ERC के अतिरिक्त हैं। उदाहरण के लिए, ERC2612 (opens in a new tab) अपनी उपयोगिता में सुधार करने के लिए ERC20 में एक एक्सटेंशन जोड़ता है।

लाइब्रेरी कैसे जोड़ें

हमेशा उस लाइब्रेरी के प्रलेखन को देखें जिसे आप अपने प्रोजेक्ट में शामिल करने के तरीके के बारे में विशिष्ट निर्देशों के लिए शामिल कर रहे हैं। कई सॉलिडिटी अनुबंध लाइब्रेरी npm का उपयोग करके पैक की जाती हैं, इसलिए आप उन्हें केवल npm install कर सकते हैं। अनुबंधों का संकलन करने के लिए अधिकांश उपकरण स्मार्ट अनुबंध लाइब्रेरी के लिए आपके node_modules पर गौर करेंगे, ताकि आप निम्न कार्य कर सकें:

1// यह आपके node_modules से @openzeppelin/contracts लाइब्रेरी को लोड करेगा
2import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
3
4contract MyNFT is ERC721 {
5 constructor() ERC721("MyNFT", "MNFT") public { }
6}

आपके द्वारा उपयोग की जाने वाली विधि के बावजूद, लाइब्रेरी शामिल करते समय, हमेशा भाषा संस्करण पर नज़र रखें। उदाहरण के लिए, यदि आप सॉलिडिटी 0.5 में अपने अनुबंध लिख रहे हैं तो आप सॉलिडिटी 0.6 के लिए लाइब्रेरी का उपयोग नहीं कर सकते।

कब उपयोग करें

अपने प्रोजेक्ट के लिए स्मार्ट अनुबंध लाइब्रेरी का उपयोग करने के कई लाभ हैं। सबसे पहले और सबसे महत्वपूर्ण, यह आपको रेडी-टू-यूज़ बिल्डिंग ब्लॉक्स प्रदान करके आपका समय बचाता है, जिन्हें आप अपने सिस्टम में शामिल कर सकते हैं, बजाय उन्हें स्वयं कोड करने के।

सुरक्षा भी एक प्रमुख लाभ है। ओपन सोर्स स्मार्ट अनुबंध लाइब्रेरी की भी अक्सर गहन जांच की जाती है। यह देखते हुए कि कई प्रोजेक्ट उन पर निर्भर करते हैं, समुदाय द्वारा उन्हें निरंतर समीक्षा के तहत रखने के लिए एक मजबूत प्रोत्साहन है। पुन: प्रयोज्य अनुबंध लाइब्रेरी की तुलना में एप्लिकेशन कोड में त्रुटियों को ढूंढना अधिक सामान्य है। कुछ लाइब्रेरी अतिरिक्त सुरक्षा के लिए बाहरी ऑडिट (opens in a new tab) से भी गुजरती हैं।

हालाँकि, स्मार्ट अनुबंध लाइब्रेरी का उपयोग करने से उस कोड को शामिल करने का जोखिम होता है जिससे आप अपने प्रोजेक्ट में परिचित नहीं हैं। एक अनुबंध आयात करना और इसे सीधे अपने प्रोजेक्ट में शामिल करना आकर्षक लगता है, लेकिन उस अनुबंध की अच्छी समझ के बिना, आप अनजाने में एक अप्रत्याशित व्यवहार के कारण अपने सिस्टम में एक समस्या पैदा कर सकते हैं। हमेशा उस कोड के प्रलेखन को पढ़ना सुनिश्चित करें जिसे आप आयात कर रहे हैं और फिर इसे अपने प्रोजेक्ट का हिस्सा बनाने से पहले कोड की समीक्षा करें!

अंत में, लाइब्रेरी को शामिल करने का निर्णय लेते समय, इसके समग्र उपयोग पर विचार करें। व्यापक रूप से अपनाया गया एक बड़ा समुदाय होने के लाभ हैं और मुद्दों पर अधिक लोग विचार करते हैं। स्मार्ट अनुबंधों के साथ निर्माण करते समय सुरक्षा आपका प्राथमिक ध्यान होना चाहिए!

ओपनज़ेपेलिन कॉन्ट्रैक्ट्स - सुरक्षित स्मार्ट अनुबंध विकास के लिए सबसे लोकप्रिय लाइब्रेरी।

DappSys - स्मार्ट-कॉन्ट्रैक्ट्स के लिए सुरक्षित, सरल, लचीले बिल्डिंग-ब्लॉक।

HQ20 - वास्तविक दुनिया के लिए पूर्ण-विशेषताओं वाले वितरित एप्लिकेशन बनाने में आपकी मदद करने के लिए अनुबंधों, लाइब्रेरियों और उदाहरणों वाला एक सॉलिडिटी प्रोजेक्ट।

thirdweb सॉलिडिटी SDK - कस्टम स्मार्ट अनुबंधों को कुशलतापूर्वक बनाने के लिए आवश्यक उपकरण प्रदान करता है

आगे की रीडिंग

क्या आप किसी सामुदायिक संसाधन के बारे में जानते हैं जिसने आपकी मदद की हो? इस पृष्ठ को संपादित करें और इसे जोड़ें!

क्या यह लेख सहायक था?