קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
ראשי ♦ בלוקציין ♦ חוזה חכם ERC20 כך תוכלו ליצור מטבע משלכם

חוזה חכם ERC20 כך תוכלו ליצור מטבע משלכם

וינר יאיר 23 ביולי 2022 אין תגובות

כבר כל העולם שמע על בלוקציין ועל התקדמות האינטרנט ל web3 וכמובן שכל העולם עובר ומשתמש במטבעות דיגיטליים .. ובכל זאת יש מפתחים שעוד לא יודעים על מה מדובר , כלומר איך זה עובד ברמת קוד, הריי מעייני המפתח חשוב לראות איך הדברים נראים וכיצד עם עובדים ומה שנקרא "ללכלך את הידיים" . אז לפני שניגש לקוד ניתן קצת רקע על מה הפוסט .

על מה הפוסט בעצם,

בפוסט הזה אני אסביר ואלמד איך תוכלו ליצור מטבע משלכם, על בלוקציין של ETHEREUM. מי שלא מבין מה זה אומר יכול לקרוא קצת פה: מבוא לבלוקציין.


ERC20

מכוון שיש הרבה אפשרויות לכתוב טוקן(מטבע דיגיטלי) משלכם וכמו בכל תחום בעיקר בתחום הפיתוח יש סטנדרטים, ERC20 הוא סטנדרט למבטע דיגיטלי על בלוקציין של ETHEREUM. מי שעוד לא יודע אז בשביל לרשום חוזה חכם על בסיס ETHEREUM יש ללמוד שפת תכנות שנקראת SOLIDITY שהומצאה במיוחד עבור איטריום, לעומת סולנה למשל שפותח בRUST וישנם (כל בלוקציין והבחירה שלו כמובן).

אז ניגש לקוד של ERC20 ונלמד אותו:

abstract contract ERC20Token {
    function name() virtual public view returns (string);
    function symbol() virtual public view returns (string);
    function decimals() virtual public view returns (uint8);
    function totalSupply() virtual public view returns (uint256);
    function balanceOf(address _owner) virtual public view returns (uint256 balance);
   function transferFrom(address _from, address _to, uint256 _value) virtual public returns (bool success);
    function transfer(address _to, uint256 _value) virtual public returns (bool success);
    function approve(address _spender, uint256 _value) virtual public returns (bool success);
    function allowance(address _owner, address _spender) virtual public view returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

הנה לנו קובץ SOL המכיל את כל מה שאנחנו צריכים בשביל להכיר את החוזה לייצירת טוקן בסטנדרט ERC20. בשביל שנכיר יותר טוב את הדברים שאנחנו גם נבנה טוקן כדוגמה ואפילו נתביע אותו בבלוקציין! אבל זה כבר יהיה סידרת פוסטים שלמה שממש תלמד אתכם איך להיות מתכנתי סולידיטי (המתינו בסבלנות זה יקח קצת זמן). אז בואו נעבור ונכיר את מה שקורה פה, כרגע הכל יושב בabstruct ובמקום class יש לנו בסולידי מה שנקרא contract . ניתן לראות את כל כל הפונקציות שיש לממש בחוזה שלנו על מנת שהוא יחשב הסטנדרט של ERC20. את הקוד הזה גם תוכלו למצוא באתר של ETHEREUM , כמו כן ניתן גם להשתמש בOPENZEPPELIN שהיא דרך פופולארית מאד לייבוא את הסטדנדטים של ERC20 לחוזה שלנו.

אז למעשה החוזה הוא מאד בסיסי ותמיד עושים עליו תוספות ושינויים כל אחד והצרכים שלו אבל בפוסט הזה נברר קודם מה זמין לנו כאן.

אז אפשר לראות שיש פה כל מיני טייפים , כי סולידיטי היא statically-typed language . ואני לא אכנס כרגע לפירוט של כל טייפ ומתי להשתמש בו ואשאיר את זה לקורס סולידיטי שיפתח בקרוב.

אז כפי שאפשר לראות יש לנו כמה פונקציות חלקם מאד ברורות וחלקם נסביר לפרטים:

  1. name – מחזירה את השם של הטוקן שנגדיר עבור אותו טוקן
  2. symbol – כל טוקן יש לו מעיין קיצור \ראשי תיבות , וזהו הסימבול, למשל ETH של ETHEREUM
  3. decimals – זהו תחם שאפשר להעמיק בו ונעמיק בו בהמשך , כרגע שהוא הפירוק של הטוקן אחרי הנקודה, כלומר אם תרצו שיהיה 3 ספרות אחרי הנקודה או יותר או פחות, יש איזו קונבנציה במטבעות על איטריום להשתמש ב18 ספרות לאחר הנקודה.
  4. totalSupply הינו הערך הסופי שתנפיקו למטבעות שלכם , כמו כן חשוב לציין שאפשר לעשות שיהיה אפשר להוסיף עוד מטבעות או שלא יהיה אפשר להוסיף יותר מטבעות ויש שעושים אפשרות של שריפת מטבעות (burn tokens)
  5. balanceOf מאפשר לנו לראות כמה מטבעות שייכים לאדם ספציפי , שימו לב שהפונקציה מקבלת address כלומר כתובת ארנק.
  6. transferFrom הפונקציה החשובה ביותר בסיפור. היא שתעביר את הטוקנים מאדם לאדם וגם תעשה שימוש בevent (בהמשך)
  7. transfer תהיה דומה מאד לtransferFrom . ההבל בניהם שtransferFrom מקבלת גם את כתובת השולח בעוד ש transfer מקבלת רק ערך ולאן להעביר (יש לזה שימושים שונים במקרים מסויימים. לרוב transfer מחזירה את הtransferFrom.
  8. approve ,allowance שני אלו אחראיות על לאפשר שימוש בטוקנים מארנקים שונים. לרוב לא נרצה לאפשר למישהו לעשות שימוש בטוקנים שלנו או בטוקנים של אחרים . אפשר לעשות עם זה דברים מגניבים אבל פחות נפוץ.
  9. Transfer פונקציה זו היא מסוג EVENT מה שאומר שהיא תרשום בבלוקציין את העברה וכך למעשה חתמנו את הזכויות החדשות בין השולח למקבל.

מאד פשוט לייצר חוזה בסיסי וגם פשוט להבנה, אם לומר את האמת לא צריך לדעת כלום בשביל לצייר טוקן בסיסי. יש הרבה מנועים שעושים את זה ואתם רק מזינים את הערכים עבור הטוקן שלכם.

כמה קל לייצר מטבע דיגיטלי משלכם! אבל זה לא נגמר פה.

לא בשביל זה הגעתם לקודקודייל . חשבנו רבות איך נוכל לשלב במה לעולמות החדשים הללו אצלנו באתר ויהיה הכי נכון עבורכם ללמוד את הבסיס לפני הכל ולכן בשלבים הבאים נלמד סולידיטי ברמה סבירה שנוכל לרשום בעצמנו טוקן ורק נשתמש בסטנדרט של ERC20 וגם וכל לשלב את הכל לתוך ממשק client side וכך נרים פרויקט שלם שילמד אתכם וגם יקנה לכם פקרטיקה.

בהצלחה. 🐊

פוסטים קשורים:

קורס בלוקציין - חוזה חכם עבור NFTקורס בלוקציין – חוזה חכם עבור NFT חוזה חכם Contractקורס בלוקציין – חוזה חכם Smart Contract קורס בלוקציין עושים MINT בDAPPקורס בלוקציין – עושים MINT בDAPP אפליקציה וחוזה חכם DAPPקורס בלוקציין – אפליקציה וחוזה חכם DAPP
blockchain ERC20 ethers בלוקציין מפתח בלוק מתכנת בלוקציין קורס בלוקציין

אודות המחבר

יאיר וינר להציג את כל הפוסטים של וינר יאיר


« פוסט קודם
פוסט הבא »

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
29 בדצמבר 2023 עידן יצחקי

שדה טקסט עשיר עם תמונות

אתם הולכים להיות מופתעים עד כמה HTML יכול להיות חכם ולבצע משהו כל כך מורכב, שאם אנחנו היינו רוצים ליצור

1 באוקטובר 2021 עידן יצחקי

איך למשוך דינמית favicon של אתרים אחרים ב-JS

בפוסט זה נראה איך אפשר על פי לינקים בדף למשוך את ה-favicon מהדומיין שלהם באופן דינמי, בדיקה של תקינות התמונה

פופולרי
Javascript functions – היכרות עם סוגי פונקציות
Javascript
21 בדצמבר 2024 אין תגובות
Nested routing in angular standalone component
Typescript
15 בנובמבר 2024 תגובה אחת
בחרו לפי תגיות
angular blockchain css ethers express front-end fullstack GQL html javascript next js nextjs nodejs react hooks reactjs solidity webgl אנגולר בלוקציין וורדפרס לימודי אנגולר לימודי וורדפרס לימוד ריאקט מדריך front-end מדריך GQL מדריך אנגולר מדריך וורדפרס מדריך חינם react מדריך ריאקט מפתח בלוק מפתח בלוקציין מתכנת front-end מתכנת בלוקציין מתכנת פרונט סולידיטי קורס front end קורס fullstack קורס nextjs קורס אנגולר קורס בלוקציין קורס בלוקציין בחינם קורס סולידיטי קורס ריאקט קורס תכנות קורס תכנות בחינם
סינון על פי קטגוריות
CSS fullstack HTML IIS Javascript nodeJs SEO Typescript אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד