स्टेप बाय स्टेप गाइड: कैसे बनाएं अपनी खुद की एथेरियम ईआरसी -20 टोकन

ईआरसी -20 टोकन बनाएं

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

हम इस बारे में थोड़ी व्याख्या करते हैं कि सॉलिडिटी कैसे काम करती है, यह कैसे संरचित है और “हैलो वर्ल्ड” स्मार्ट अनुबंध लिखने के लिए कुछ सरल कोड के साथ आपको शुरू करता है।.

इस ट्यूटोरियल में हम और गहराई में जाते हैं और आपको अपना Ethereum ERC-20 टोकन तैनात करने का कोड सिखाते हैं। (यहाँ हमारा ब्लॉकोनॉमी टोकन ).

एथेरियम & ICO बूम

ICO का अर्थ इनिशियल कॉइन की पेशकश है और यह क्रिप्टोकरेंसी का उपयोग करते हुए एक प्रकार का फंड है। ICO में, क्रिप्टोक्यूरेंसी की एक मात्रा सट्टेबाजों या निवेशकों को “टोकन” (“सिक्के”) के रूप में बेची जाती है, बदले में कानूनी निविदा या बिटकॉइन या एथेरियम जैसी अन्य क्रिप्टोकरेंसी के लिए.

बेची गई टोकन को ICO के फंडिंग लक्ष्य को पूरा करने और प्रोजेक्ट लॉन्च होने पर मुद्रा की भावी कार्यात्मक इकाइयों के रूप में प्रचारित किया जाता है।.

हमने पहले ही बात की थी कि कैसे स्मार्ट कॉन्ट्रैक्ट डेवलपर्स को बनाने और नया करने के लिए एक पूरी नई दुनिया खोलते हैं। हालांकि, इन डेवलपर्स को अपनी परियोजनाओं को वित्त करने के लिए एक तरीके की आवश्यकता थी.

और समाधान ICO था.

2017 में ICO फलफूल रहा था – हर दिन अनगिनत परियोजनाएं दिखाई दीं, जो वे हासिल करना चाहते थे, और निवेशकों ने उन्हें उधार दिया.

तब से, चीजें शांत हो गई हैं क्योंकि अंतरिक्ष परिपक्व हो गया है और निवेशक गायब हो गए हैं, कई आईसीओ जो वादा किया गया था, उस पर वितरित करने में विफल रहे, लेकिन यह एक और पोस्ट के लिए एक कहानी है – हम तकनीकी पक्ष पर चर्चा करने के लिए यहां हैं।.

एक टोकन क्या है?

टोकन अनिवार्य रूप से स्मार्ट कॉन्ट्रैक्ट हैं जो एथेरियम ब्लॉकचैन पर रहते हैं, उनके उपयोग और उद्देश्य हो सकते हैं.

एक टोकन एक विशेष भूमिका तक सीमित नहीं है। यह अपने मूल पारिस्थितिकी तंत्र में बहुत सी भूमिकाएं पूरी कर सकता है। यहाँ कुछ भूमिकाओं की सूची है जो टोकन ले सकते हैं.

  • टोल: एक टोकन एक डैप के प्रवेश द्वार के रूप में कार्य कर सकता है। मूल रूप से, Dapp तक पहुँचने के लिए, आपको टोकन रखने की आवश्यकता होगी.
  • मताधिकार: टोकन भी धारकों को कुछ वोटिंग अधिकारों के लिए अर्हता प्राप्त कर सकते हैं। ईओएस के बारे में सोचें, ईओएस टोकन रखने से आप ब्लॉक उत्पादकों को वोट दे सकेंगे। EOS ब्लॉकचेन एक विकेन्द्रीकृत ऑपरेटिंग सिस्टम बनने का लक्ष्य लेकर चल रहा है जो औद्योगिक पैमाने के विकेंद्रीकृत अनुप्रयोगों का समर्थन कर सकता है.
  • मूल्य विनिमय: यह पारिस्थितिकी तंत्र के भीतर टोकन की अधिक सामान्य भूमिकाओं में से एक है। टोकन एप्लिकेशन के भीतर एक आंतरिक आर्थिक प्रणाली बनाने में मदद कर सकते हैं.
  • उपयोगकर्ता अनुभव में वृद्धि: टोकन भी धारकों को विशेष वातावरण की परिधि के अंदर उपयोगकर्ता अनुभव को समृद्ध करने में सक्षम कर सकता है। जैसे। ब्रैव (एक वेब ब्राउज़र) में, बैट (ब्रैव में उपयोग किए जाने वाले टोकन) के धारकों को बहादुर प्लेटफॉर्म पर विज्ञापन या अन्य ध्यान आधारित सेवाओं को जोड़ने के लिए अपने टोकन का उपयोग करके ग्राहक अनुभव को समृद्ध करने का अधिकार मिलेगा।.
  • मुद्रा: मूल्य के एक भंडार के रूप में इस्तेमाल किया जा सकता है जो कि दिए गए पारिस्थितिकी तंत्र के अंदर और बाहर दोनों लेनदेन का संचालन करने के लिए इस्तेमाल किया जा सकता है.

ईआरसी -20 क्या है?

ईआरसी -20 एक तकनीकी मानक है जिसका उपयोग टोकन को लागू करने के लिए एथेरियम ब्लॉकचेन पर स्मार्ट अनुबंधों के लिए किया जाता है। इथेरियम ब्लॉकचेन पर जारी किए गए अधिकांश टोकन ईआरसी -20 के अनुरूप हैं.

ईआरसी -20 एक प्रोटोकॉल मानक है जो एथेरियम के नेटवर्क पर टोकन जारी करने के लिए कुछ नियमों और मानकों को परिभाषित करता है। For ईआरसी -20 ’में, ERC टिप्पणियों के लिए एथेरियम अनुरोध के लिए खड़ा है और 20 इस मानक को दूसरों से अलग करने के लिए एक अद्वितीय आईडी नंबर के लिए खड़ा है.

इसे सरल बनाए रखने के लिए, ERC-20 उन नियमों और विनियमों की एक मार्गदर्शिका है जो एथेरियम-आधारित स्मार्ट कॉन्ट्रैक्ट्स के लिए अपने टोकन बनाने के लिए एक खाका बनाने में मदद करेंगे।.

एथेरियम पर एक टोकन मूल रूप से केवल एक स्मार्ट अनुबंध है जो कुछ सामान्य नियमों का पालन करता है – अर्थात् यह उन कार्यों के एक मानक सेट को लागू करता है जो अन्य सभी टोकन अनुबंध साझा करते हैं, जैसे कि ट्रांसफरफ्रॉम (पता _from, पता _to, uint256-tokenId) और balanceOf (पता _owner).

तो मूल रूप से एक टोकन सिर्फ एक अनुबंध है जो उस टोकन का मालिक है, जो ट्रैक करता है, और कुछ फ़ंक्शन ताकि उपयोगकर्ता उन टोकन को अन्य पते पर स्थानांतरित कर सकें.

ईआरसी -20 मानक इतना महत्वपूर्ण क्यों है?

चूंकि सभी ईआरसी -20 टोकन समान नामों के साथ फ़ंक्शन के समान सेट को साझा करते हैं, इसलिए उन सभी के साथ एक ही तरीके से बातचीत की जा सकती है.

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

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

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

चलो एक टोकन बनाना शुरू करें

हम अपने ईआरसी -20 टोकन के लिए स्मार्ट कॉन्ट्रैक्ट विकसित करने के लिए रीमिक्स आईडीई का उपयोग करेंगे.

रीमिक्स ऑनलाइन टूल है जो आपको सॉलिडिटी स्मार्ट कॉन्ट्रैक्ट लिखने की अनुमति देता है, फिर इसे तैनात करें और चलाएं.

बस जाना है https://remix.ethereum.org आपके ब्राउज़र से और हम कोडिंग शुरू कर सकते हैं.

सॉलिडिटी बटन पर क्लिक करें, और फिर ऊपरी बाएँ कोने में प्लस बटन.

मैं इसे “BlockonomiToken” नाम दूंगा, आप अपनी क्रिप्टोकरेंसी के लिए जो भी नाम पसंद कर सकते हैं उसे चुन सकते हैं.

अच्छा, अब सब कुछ सेटअप है.

ईआरसी -20 टोकन नियम

ईआरसी -20 टोकन नियमों की एक सूची का पालन करते हैं ताकि उन्हें साझा किया जा सके, अन्य टोकन के लिए आदान-प्रदान किया जा सके या एक क्रिप्टो-वॉलेट में स्थानांतरित किया जा सके।.

ERC20 मानक में 3 वैकल्पिक नियम और 6 अनिवार्य नियम शामिल हैं.

इसे आम शब्दों में कहें, यदि आप टोकन के स्मार्ट अनुबंध में कुछ कार्य शामिल करते हैं, तो आप ERC20 के अनुरूप हैं। यदि आप अनिवार्य कार्य शामिल नहीं करते हैं, तो आप ERC20 नहीं हैं.

अनिवार्य नियम इस प्रकार हैं:

  1. कुल मिलाकर
  2. का संतुलन
  3. स्थानांतरण
  4. इससे स्थानांतरित करें
  5. मंजूर
  6. भत्ता

दूसरी ओर, वैकल्पिक नियम हैं:

  1. टोकन का नाम
  2. प्रतीक
  3. दशमलव (18 तक)

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

सॉलिडिटी में वंशानुक्रम

सॉलिडिटी में, वंशानुक्रम क्लासिक उन्मुख ऑब्जेक्ट प्रोग्रामिंग भाषाओं के समान है। आप पहले अपना आधार अनुबंध लिखेंगे और बताएंगे कि आपका नया अनुबंध आधार से विरासत में मिलेगा.

अनुबंध IBank {

// आधार अनुबंध कोड…

}

अनुबंध बैंक है IBank {

// अनुबन्धित अनुबंध कोड…

}

आपको यह भी पता होना चाहिए कि बहुरूपता, बहुरूपता सहित कोड की नकल करके कई विरासत का समर्थन करता है.

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

जब कोई अनुबंध कई अनुबंधों से होता है, तो ब्लॉकचेन पर केवल एक अनुबंध बनाया जाता है, और सभी आधार अनुबंधों के कोड को बनाए गए अनुबंध में कॉपी किया जाता है.

आइए अपने ERC-20 टोकन पर वापस जाएं। ईआरसी -20 टोकन बनाने के लिए हमारे पास अनिवार्य नियम हैं.

हम उन्हें 6 कार्यों के रूप में परिभाषित करेंगे और इसे इंटरफ़ेस में लिखेंगे। तब हमारा वास्तव में टोकन का अनुबंध उस कॉल इंटरफ़ेस को विरासत में मिलेगा.

आपके कोड को इस तरह देखना होगा.

अनुबंध ERC20Interface {

कुल कार्य ()

जनता

राय

रिटर्न (यूंट);

फ़ंक्शन बैलेंसऑफ (पता टोकनऑनर)

जनता

राय

रिटर्न (यूंट बैलेंस);

समारोह भत्ता

(एड्रेस टोकनओनर, एड्रेस स्पेंडर)

जनता

राय

रिटर्न (यूंट शेष);

फ़ंक्शन ट्रांसफर (पता, यूइंट टोकन) सार्वजनिक

रिटर्न (बूल सफलता);

फ़ंक्शन स्वीकृत (पते के स्पेंडर, यूंट टोकन) सार्वजनिक

रिटर्न (बूल सफलता);

फ़ंक्शन स्थानांतरण

(पते से पता, से, यूंट टोकन) सार्वजनिक

रिटर्न (बूल सफलता);

ईवेंट ट्रांसफर (एड्रेस इंडेक्स से, एड्रेस इंडेक्स टू, यूंट टोकन);

ईवेंट स्वीकृति (पता अनुक्रमित tokenOwner, पता अनुक्रमित स्पेंडर, यूंट टोकन);

}

टोकन कॉन्ट्रैक्ट

आइए हमारे टोकन अनुबंध बनाएं। प्रकार अनुबंध {}

अब हम 3 वैकल्पिक नियमों से गुजरेंगे.

भले ही आपके टोकन का नाम देना आवश्यक नहीं है, फिर भी इसे पहचान देना महत्वपूर्ण है.

अगले हमारे पास प्रतीक हैं। हम बस उनके महत्व को नहीं समझ सकते। एक आकर्षक प्रतीक बेहतर ब्रांडिंग के साथ मदद करता है.

अंत में, हमारे पास विभाज्यता है जो हमें टोकन के न्यूनतम संभव मूल्य को निर्धारित करने में मदद करेगी। 0 की विभाज्यता का मतलब यह होगा कि टोकन का न्यूनतम मूल्य 1. 2 की विभाज्यता है, दूसरी ओर, इसका अर्थ है कि इसका निम्नतम मूल्य 0.01 होगा। अनुमत दशमलव स्थानों की अधिकतम संख्या 18 है। 18 दशमलव दृढ़ता से सुझाई गई डिफ़ॉल्ट है, इसे बदलने से बचें

आइए उन्हें परिभाषित करें और निर्माण में आरंभ करें.

अनुबंध BlockonomiToken है ERC20Interface {

स्ट्रिंग सार्वजनिक नाम;

स्ट्रिंग सार्वजनिक प्रतीक;

uint8 सार्वजनिक दशमलव;

निर्माता () सार्वजनिक {

नाम = "ब्लॉकोनोमीटोकन";

प्रतीक = "बीकेएम";

दशमलव = 18;

}

}

हमारे टोकन के लिए प्रारंभिक आपूर्ति, और सभी शेष राशि का कुछ रिकॉर्ड होना चाहिए। हम उस जानकारी को एरे में स्टोर कर सकते हैं.

कंस्ट्रक्टर में हम अपने अनुबंध को प्रारंभिक आपूर्ति टोकन के साथ अनुबंध के निर्माता को आरंभीकृत करेंगे संदेश) है। इन पंक्तियों को हमारे कोड में जोड़ें और हम उन सभी के उद्देश्य पर चर्चा करेंगे.

अनुबंध BlockonomiToken है ERC20Interface {

स्ट्रिंग सार्वजनिक नाम;

स्ट्रिंग सार्वजनिक प्रतीक;

uint8 सार्वजनिक दशमलव;

uint256 public _totalSupply;

मानचित्रण (पता =)> uint) संतुलन;

मानचित्रण (पता =)> मानचित्रण (पता =)> uint)) की अनुमति दी;

निर्माता () सार्वजनिक {

नाम = "ब्लॉकोनोमीटोकन";

प्रतीक = "बीकेएम";

दशमलव = 18;

_totalSupply = 100000000000000000000000000;

शेष राशि [msg.sender] = _totalSupply;

emit स्थानांतरण (पता (0), msg.sender, _totalSupply);

}

}

सॉलिडिटी डेटा प्रकार

जैसा कि आप देख सकते हैं _totalSupply में ए है uint256 डेटाटाइप और दशमलव uint8.

सॉलिडिटी एक सांख्यिकीय रूप से टाइप की जाने वाली भाषा है, जिसका अर्थ है कि प्रत्येक चर (राज्य और स्थानीय) के प्रकार को संकलन-समय पर निर्दिष्ट करने की आवश्यकता है। सॉलिडिटी कई प्राथमिक प्रकार प्रदान करती है जिन्हें जटिल प्रकार बनाने के लिए जोड़ा जा सकता है.

आइए अब इंटेगर प्रकार के बारे में चर्चा करें.

पूर्णांक हो सकते हैं पूर्णांक या उंट: विभिन्न आकारों के हस्ताक्षरित और अहस्ताक्षरित पूर्णांक। यदि आप कंप्यूटर विज्ञान सिद्धांत से परिचित हैं या आप C भाषा में हस्ताक्षरित और अहस्ताक्षरित पूर्णांक के बीच अंतर जानते हैं, तो सब कुछ सॉलिडिटी में बिल्कुल समान है.

यदि आप नहीं हैं, तो हम यह कह सकते हैं कि अहस्ताक्षरित एक पूर्णांक है जो कभी भी नकारात्मक नहीं हो सकता है! दूसरी तरफ हस्ताक्षर नकारात्मक और सकारात्मक दोनों हो सकते हैं, लेकिन हम अपने अनुबंध में केवल इकाइयों का उपयोग करेंगे.

8 के चरणों में uint8 से uint256 तक कीवर्ड (8 बिट 256 बिट तक) और int8 से int256 तक। uint और int क्रमशः uint256 और int256 के लिए उपनाम हैं.

हमने बात की कि हम किसी प्रकार की सरणी में शेष राशि संग्रहित करेंगे। खैर, बेहतर उपाय हैश टेबल का उपयोग करना है, या सॉलिडिटी मैपिंग में.

मूल रूप से हम नक्शा करते हैं पता (वह डेटाटाइप भी) उंट.

msg.sender (पता): संदेश भेजने वाला (वर्तमान कॉल)

संदेश वह व्यक्ति होगा जो वर्तमान में अनुबंध से जुड़ रहा है.

बाद में, आप संभवतः अनुबंधों से जुड़ने वाले अनुबंधों से निपटेंगे। उस स्थिति में, कॉल बनाने वाला अनुबंध होगा संदेश.

मैपिंग

मानचित्रण प्रकार के रूप में घोषित किए जाते हैं मैपिंग (_कुंजी प्रकार = => _मान प्रकार). यहां _KeyType मैपिंग, डायनामिकली साइज़ ऐरे, कॉन्ट्रैक्ट, एनम और स्ट्रक्चर को छोड़कर लगभग किसी भी प्रकार का हो सकता है। _ValueType वास्तव में मैपिंग सहित किसी भी प्रकार का हो सकता है.

मैपिंग को हैश टेबलों के रूप में देखा जा सकता है, जिन्हें लगभग इस तरह से इनिशियलाइज़ किया जाता है कि हर संभव कुंजी मौजूद है और एक ऐसे मान पर मैप की जाती है जिसका बाइट-प्रतिनिधित्व सभी शून्य है: एक प्रकार का डिफ़ॉल्ट मान। समानता यहाँ समाप्त होती है, हालांकि: मुख्य डेटा वास्तव में मैपिंग में संग्रहीत नहीं किया जाता है, केवल इसकी केकेक 256 हैश मूल्य देखने के लिए उपयोग किया जाता है.

इस वजह से, मैपिंग की लंबाई या कुंजी या मूल्य “सेट” होने की अवधारणा नहीं है।.

मैपिंग केवल राज्य चर (या आंतरिक कार्यों में भंडारण संदर्भ प्रकार के रूप में) की अनुमति है.

यह संभव है कि मैपिंग को सार्वजनिक किया जाए और सॉलिडिटी को एक गेट्टर बनाया जाए। _KeyType गेट्टर के लिए एक आवश्यक पैरामीटर बन जाएगा और यह _ValueType लौटाएगा.

_ValueType एक मैपिंग भी हो सकता है। प्राप्तकर्ता के पास प्रत्येक _KeyType के लिए एक पैरामीटर होगा, पुनरावर्ती रूप से.

आयोजन

ब्लॉकचेन उन ब्लॉकों की एक सूची है जो मूल रूप से लेनदेन की सूची हैं। प्रत्येक लेनदेन में एक संलग्न रसीद होती है जिसमें शून्य या अधिक लॉग प्रविष्टियाँ होती हैं। लॉग एंट्री स्मार्ट कॉन्ट्रैक्ट से निकाल दी गई घटनाओं के परिणाम का प्रतिनिधित्व करती है.

सॉलिडिटी सोर्स कोड में, किसी घटना को परिभाषित करने के लिए, आप इसे इस प्रकार से चिह्नित करते हैं प्रतिस्पर्धा कीवर्ड (फ़ंक्शन कीवर्ड के उपयोग के समान)। य

तब जो भी कार्य आप ईवेंट उत्पन्न करने के लिए करना चाहते हैं उसके शरीर में ईवेंट को कॉल या फायर करें। (मुझे संदेह है कि इसके लिए एक मानक शब्दांकन है)। आप किसी भी फ़ंक्शन से ईवेंट का उपयोग करके आग लगा सकते हैं फेंकना कीवर्ड.

ईआरसी -20 इंटरफेस

अब ERC-20 इंटरफ़ेस लागू करें। ऐसा करने के लिए, हमें अपने सभी छह अनिवार्य कार्यों के लिए कोड लिखना होगा.

1. कुल मिलाकर

ईआरसी -20 टोकन की कुल संख्या की पहचान करता है। इस पद्धति का उद्देश्य पारिस्थितिकी तंत्र के आसपास तैरते हुए टोकन की कुल संख्या निर्धारित करना है.

कुल कार्य ()

जनता

राय

रिटर्न (यूंट)

{{

वापसी _totalSupply – शेष [पता (0)];

}

2. संतुलन 

उस टोकन की संख्या लौटाता है, जो एक विशेष पते, इस मामले में, अनुबंध के मालिक, उनके खाते में है.

फ़ंक्शन बैलेंसऑफ (पता टोकनऑनर)

जनता

राय

रिटर्न (यूंट बैलेंस)

{{

वापसी शेष [tokenOwner];

}

3. भत्ता

लेन-देन करने के लिए सबसे महत्वपूर्ण डेटा जो अनुबंध को जानना चाहिए वह उपयोगकर्ता का संतुलन है। आखिरकार, लेन-देन करने के लिए उपयोगकर्ता के पास न्यूनतम मात्रा में टोकन होना चाहिए.

यही कारण है कि, ईआरसी -20 अनुबंध में भत्ता () फ़ंक्शन भी शामिल है। यदि उपयोगकर्ता के पास टोकन की न्यूनतम आवश्यक संख्या नहीं है, तो फ़ंक्शन लेनदेन को रद्द कर देता है.

समारोह भत्ता

(एड्रेस टोकनओनर, एड्रेस स्पेंडर)

जनता

राय

रिटर्न (यूंट शेष)

{{

वापसी की अनुमति दी [टोकनओनर] [स्पेंडर];

}

4. मंजूर

एक बार शेष राशि की जाँच हो जाने के बाद, अनुबंध मालिक अनुबंध के पते से टोकन की आवश्यक संख्या एकत्र करने के लिए उपयोगकर्ता को अपनी स्वीकृति दे सकता है.

अनुमोदित फ़ंक्शन यह सुनिश्चित करने के लिए टोकन की कुल आपूर्ति के खिलाफ लेनदेन की भी जांच करता है कि कोई लापता या अतिरिक्त नहीं है.

दूसरे शब्दों में, यह सुनिश्चित करता है कि जालसाजी असंभव है.

फ़ंक्शन स्वीकृत (पते के स्पेंडर, यूंट टोकन) सार्वजनिक

रिटर्न

(बूल सफलता)

{{

अनुमति दी [msg.sender] [खर्च] = टोकन;

एमिट अनुमोदन (msg.sender, स्पेंडर, टोकन);

सच लौटें;}

सुरक्षित मठ पुस्तकालय

शेष दो कार्यों को सही ढंग से लागू करने के लिए हमें सुरक्षित गणित पुस्तकालय की आवश्यकता है.

जोड़े गए अतिप्रवाह चेक के साथ सॉलिडिटी के अंकगणितीय संचालन पर सुरक्षित मठ पुस्तकालय लपेटता है.

अतिप्रवाह में सॉलिडिटी रैप में अंकगणितीय संचालन। यह आसानी से बग का परिणाम हो सकता है, क्योंकि प्रोग्रामर आमतौर पर मानते हैं कि अतिप्रवाह एक त्रुटि उठाता है, जो उच्च स्तरीय प्रोग्रामिंग भाषाओं में मानक व्यवहार है.

जब कोई ऑपरेशन ओवरफ्लो होता है तो सेफ मैथ ट्रांजैक्शन को वापस करके इस अंतर्ज्ञान को बहाल करता है.

अनियंत्रित परिचालनों के बजाय इस लाइब्रेरी का उपयोग करने से बग्स की एक पूरी कक्षा समाप्त हो जाती है, इसलिए इसे हमेशा उपयोग करने की सिफारिश की जाती है.

अब हमें बस इतना करना है कि इस कॉन्ट्रैक्ट को अपने कॉन्ट्रैक्ट के ऊपर कॉपी करें, और फिर इसे इनहेरिट करें.

कॉन्ट्रैक्ट सेफमैथ {

फ़ंक्शन सेफअड (uint a, uint b) सार्वजनिक शुद्ध रिटर्न (यूंट सी) {

c = a + b;

आवश्यकता है (c) >= ए);

}

फ़ंक्शन सेफसब (यूइंट ए, यूइंट बी) सार्वजनिक शुद्ध रिटर्न (यूंट सी) {

आवश्यकता है (बी) <= ए); c = a – b; } फ़ंक्शन सेफमुल (uint a, uint b) सार्वजनिक शुद्ध रिटर्न (uint c) {c = a * b; आवश्यकता (a == 0 || c / a ==); } फ़ंक्शन सेफडिव (uint a, uint b) सार्वजनिक शुद्ध रिटर्न (uint c) {आवश्यकता (b) > 0);

c = a / b;

}

}

इसे विरासत में देना न भूलें.

अनुबंध BlockonomiToken ERC20Interface, SafeMath है

5. स्थानांतरण

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

यह फ़ंक्शन कॉन्ट्रैक्ट के मालिक को पारंपरिक क्रिप्टोक्यूरेंसी लेनदेन की तरह टोकन की एक दी गई राशि को दूसरे पते पर भेजने की अनुमति देता है। एक निश्चित संख्या में टोकन को उपयोगकर्ता खाते में कुल आपूर्ति से स्थानांतरित करने की अनुमति देता है।.

समारोह हस्तांतरण (पता, यूंट टोकन)

जनता

प्रतिफल (बूल सफलता)

{{

शेष [msg.sender] = safeSub (शेष [msg.sender], टोकन);

शेष [को] = तिजोरी (शेष [को], टोकन);

emit Transfer (msg.sender, to, tokens);

सच लौटना;

}

6. हस्तांतरण

हम ट्रांसफर फ़ंक्शन को पहले ही कवर कर चुके हैं, हमारे पास दूसरा क्यों है?

खैर, यह देखने के लिए एक उदाहरण लेते हैं कि स्थानांतरण एफआरसी 20 अनुबंध के लिए इतना शानदार अतिरिक्त क्यों है.

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

वह क्या है TransferFrom () आपको करने की अनुमति देता है। यह आपको एक विशिष्ट खाते में भुगतान स्थानान्तरण को स्वचालित करने में मदद करता है.

फ़ंक्शन स्थानांतरण

(पते से पता, यूआईएनटी टोकन)

जनता

प्रतिफल (बूल सफलता)

{{

संतुलन [से] = सेफसुब (संतुलन [से], टोकन));

अनुमति [से] [msg.sender] = safeSub (अनुमत [से] [msg.sender], टोकन);

शेष [को] = तिजोरी (शेष [को], टोकन);

स्थानान्तरण (से, टोकन);

सच लौटना;

}

पूर्ण कोड

यहाँ हमारे ब्लॉकोनोमी टोकन के लिए पूर्ण कोड है.

प्रैग्म सॉलिडिटी ^ 0.5.0;

// —————————————————————————-

// ईआरसी टोकन स्टैंडर्ड # 20 इंटरफ़ेस

//

// —————————————————————————-

अनुबंध ERC20Interface {

कुल कार्य () सार्वजनिक दृश्य रिटर्न (यूंट);

function balanceOf (पता tokenOwner) सार्वजनिक दृश्य रिटर्न (यूंट बैलेंस);

समारोह भत्ता (एड्रेस टोकन, एड्रेस स्पेंडर) सार्वजनिक दृश्य रिटर्न (यूंट शेष);

समारोह हस्तांतरण (पता, यूंट टोकन) सार्वजनिक रिटर्न (बूल सफलता);

फ़ंक्शन स्वीकृत (पते के लिए खर्च करने वाला, यूंट टोकन) सार्वजनिक रिटर्न (बूल सफलता);

फ़ंक्शन ट्रांसफ़रफ़ॉर्म (पते से पता, से, यूंट टोकन) सार्वजनिक रिटर्न (बूल सफलता);

ईवेंट ट्रांसफर (एड्रेस इंडेक्स से, एड्रेस इंडेक्स टू, यूंट टोकन);

ईवेंट स्वीकृति (पता अनुक्रमित tokenOwner, पता अनुक्रमित स्पेंडर, यूंट टोकन);

}

// —————————————————————————-

// सुरक्षित मठ पुस्तकालय

// —————————————————————————-

कॉन्ट्रैक्ट सेफमैथ {

फ़ंक्शन सेफअड (uint a, uint b) सार्वजनिक शुद्ध रिटर्न (यूंट सी) {

c = a + b;

आवश्यकता है (c) >= ए);

}

फ़ंक्शन सेफसब (यूइंट ए, यूइंट बी) सार्वजनिक शुद्ध रिटर्न (यूंट सी) {

आवश्यकता है (बी) <= ए); c = a – b; } फ़ंक्शन सेफमुल (uint a, uint b) सार्वजनिक शुद्ध रिटर्न (uint c) {c = a * b; आवश्यकता (a == 0 || c / a ==); } फ़ंक्शन सेफडिव (uint a, uint b) सार्वजनिक शुद्ध रिटर्न (uint c) {आवश्यकता (b) > 0);

c = a / b;

}

}

अनुबंध BlockonomiToken ERC20Interface, SafeMath {

स्ट्रिंग सार्वजनिक नाम;

स्ट्रिंग सार्वजनिक प्रतीक;

uint8 सार्वजनिक दशमलव; // 18 दशमलव दृढ़ता से सुझाया गया डिफ़ॉल्ट है, इसे बदलने से बचें

uint256 public _totalSupply;

मानचित्रण (पता =)> uint) संतुलन;

मानचित्रण (पता =)> मानचित्रण (पता =)> uint)) की अनुमति दी;

/ **

* कंस्ट्रक्टर फ़ंक्शन

*

* अनुबंध के निर्माता को प्रारंभिक आपूर्ति टोकन के साथ अनुबंध को प्रारंभिक करता है

* /

निर्माता () सार्वजनिक {

नाम = "ब्लॉकोनोमीटोकन";

प्रतीक = "बीकेएम";

दशमलव = 18;

_totalSupply = 100000000000000000000000000;

शेष राशि [msg.sender] = _totalSupply;

emit स्थानांतरण (पता (0), msg.sender, _totalSupply);

}

कुल कार्य () सार्वजनिक दृश्य रिटर्न (यूंट) {

वापसी _totalSupply – शेष [पता (0)];

}

फ़ंक्शन बैलेंसऑफ (पता टोकनऑनर) सार्वजनिक दृश्य रिटर्न (यूंट बैलेंस) {

वापसी शेष [tokenOwner];

}

समारोह भत्ता (एड्रेस टोकन, एड्रेस स्पेंडर) सार्वजनिक दृश्य रिटर्न (यूंट शेष) {

वापसी की अनुमति दी [टोकनओनर] [स्पेंडर];

}

फ़ंक्शन स्वीकृत (पते के लिए खर्च करने वाला, यूंट टोकन) सार्वजनिक रिटर्न (बूल सफलता) {

अनुमति दी [msg.sender] [खर्च] = टोकन;

एमिट अनुमोदन (msg.sender, स्पेंडर, टोकन);

सच लौटना;

}

समारोह हस्तांतरण (पता, यूआईटी टोकन) सार्वजनिक रिटर्न (बूल सफलता) {

शेष [msg.sender] = safeSub (शेष [msg.sender], टोकन);

शेष [को] = तिजोरी (शेष [को], टोकन);

emit Transfer (msg.sender, to, tokens);

सच लौटना;

}

फ़ंक्शन ट्रांसफ़रफ़ॉर्म (पते से पता, से, यूंट टोकन) सार्वजनिक रिटर्न (बूल सफलता) {

शेष [से] = तिजोरी (शेष [से], टोकन);

अनुमत [से] [msg.sender] = safeSub (अनुमत [से] [msg.sender], टोकन);

शेष [को] = तिजोरी (शेष [को], टोकन);

स्थानान्तरण (से, टोकन);

सच लौटना;

}

}

बधाई हो! आपने सफलतापूर्वक अपना स्वयं का टोकन विकसित किया है.

अंतिम चरण वास्तविक नेटवर्क पर परिनियोजन है.

आपका टोकन तैनात करना

ऐसा करने के लिए, हमें मेटामास्क वॉलेट की आवश्यकता होगी.

मेटामास्क विस्तार है जो आपको पूर्ण एथेरम नोड को चलाने के बिना अपने ब्राउज़र में एथेरियम डीएपीएस को चलाने की अनुमति देता है.

के लिए जाओ https://metamask.io/ अपने ब्राउज़र (क्रोम, फ़ायरफ़ॉक्स या ओपेरा) से और इसे जोड़ें.

मेटामास्क में एक नया वॉलेट बनाएं

जब एक्सटेंशन स्थापित हो जाता है, तो अपने ब्राउज़र के ऊपरी दाएं कोने में आइकन पर क्लिक करें ताकि एक वॉलेट बनाना शुरू हो सके.

शर्तें पढ़ें और स्वीकार करें और फिर एक मजबूत पासवर्ड दर्ज करें और “बनाएँ” पर क्लिक करें.

आपको 12 शब्दों का बीज वाक्यांश दिखाई देगा। बीज शब्दों को एक फ़ाइल के रूप में सहेजें या उन्हें एक सुरक्षित स्थान पर कॉपी करें और “मैंने इसे कहीं सुरक्षित रूप से कॉपी नहीं किया है” पर क्लिक करें.

आपने अब नए वॉलेट पते के साथ मेटामास्क में एक खाता सफलतापूर्वक बनाया है!

आप देखेंगे कि वर्तमान में आपके बटुए में 0 ETH है। एथेरियम नेटवर्क पर अनुबंध को लागू करने के लिए किसी को ईथर की कुछ राशि की आवश्यकता होती है। हम अपने अनुबंध को मुख्य नेटवर्क पर तैनात नहीं करेंगे क्योंकि यह सिर्फ डेमो है.

हम इस अनुबंध को परीक्षण नेटवर्क पर प्रकाशित करेंगे। कुछ Ethereum ब्लॉकचेन टेस्टनेट्स वास्तव में हैं – रोपेंस्ट, रिंकीबी, कोवन…

इस उदाहरण के लिए रोपस्टेन का उपयोग करें.

पहले आपको कुछ ईथर की आवश्यकता है, है ना? परीक्षण नेटवर्क पर हम नकली मुक्त पंखों के साथ काम करते हैं। सिर्फ एक नल से उन लोगों में से कुछ का दावा करने की जरूरत है.

के लिए जाओ: https://faucet.ropsten.be/ , अपना वॉलेट पता पेस्ट करें और “मुझे परीक्षण भेजें” पर क्लिक करें.

कुछ सेकंड के बाद, आपको अपने वॉलेट में कुछ ETH दिखाई देंगे.

इसे जीना

अब सब कुछ लाइव करने का समय आ गया है!

रीमिक्स आईडीई पर जाएं और अनुबंध संकलित करें। यदि कोई त्रुटि नहीं है, तो हम परिनियोजन के लिए तैयार हैं.

पर्यावरण के लिए इंजेक्ट वेब 3 का चयन करें। यह स्वचालित रूप से आपके मेटामास्क वॉलेट का पता लगा लेगा.

डिप्लॉय बटन को हिट करें.

इस सौदे को खरीदने के लिए अब मेटमास्क आपको अपने वॉलेट से कुछ धन निकालने के लिए कहेगा.

उसको पक्का करो। फिर रीमिक्स आईडीई पर वापस जाएं, और टरमिनल पर ध्यान दें। हम देखते हैं कि लेनदेन सफल रहा है.

हमें परिणाम के रूप में लेन-देन हैश मिला है। टर्मिनल से uri पर क्लिक करें जो दिखता है: ropsten.etherscan.io/

यह हमें नेविगेट करेगा etherscan.io – यह है कि Ethereum ब्लॉकचेन एक्सप्लोरर और यहां आप मुख्य और परीक्षण नेटवर्क पर चल रही हर चीज को ट्रैक कर सकते हैं, क्योंकि ब्लॉकचेन पर सब कुछ सार्वजनिक है.

जब हम इस यूरी में जाते हैं तो हम अपने लेनदेन के बारे में विवरण देखेंगे। अधिक जानने के लिए अनुबंध हैश पर क्लिक करें.

ब्लॉकचेन पर सब कुछ सार्वजनिक है, यहां तक ​​कि हमारा कोड भी। सॉलिडिटी डेवलपर्स में त्रुटियों के लिए कोई जगह नहीं है!

पर क्लिक करें अनुबंध टैब और आप हमारे संकलित bytecode देखेंगे

अब आप हमारी जानकारी देखने के लिए टोकन ट्रेसर पर जा सकते हैं ब्लॉकोनॉमी टोकन. आप 3 वैकल्पिक नियम देख सकते हैं जिन्हें हमने पहले परिभाषित किया था.

अब अपने वॉलेट की जांच करें। आप देखेंगे कि रोपस्ट पर स्मार्ट अनुबंध को लागू करने के लिए हमने जो ईथर का भुगतान किया था, उसे हटा दिया गया है.

निष्कर्ष

इन चरणों और हमारे कोड नमूनों का पालन करके आप हमारे ट्यूटोरियल को लपेटते हैं, जिसे आप अपने स्वयं के Ethereum ERC-2065en को तैनात करने में सक्षम होना चाहिए।.

मज़े करो!

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me