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

קורס סולידיטי – חלק שלישי– OpenZeppelin

וינר יאיר 24 ביוני 2023 אין תגובות

עוד ספרייה חשובה ביותר, למפתחי בלוקציין, היא OpenZeppelin, נרצה מאד לאמץ אותה בפרויקט שלנו.

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

בשביל להתקין את הספרייה של OpenZeppelin יש לרשום את הפקודה הבאה:

npm install @openzeppelin/contracts

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

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

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

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

// Uncomment this line to use console.log
import "../node_modules/hardhat/console.sol";
import "../node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract WellToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("WellToken", "WET") {
        _mint(msg.sender, initialSupply * 10 ** decimals());
    }
}

שימו לב לכמה דברים מעניינים:

  1. יצרתי חוזה בשם WellToken והוא יורש את ERC20 (מי שלא זוכר מה זה ירושות של חוזה חכם) מ openzeppelin ולמעשה אנחנו מקבלים את כל מה שצריך שיהיה בחוזה חכם מאובטח של מטבע מבוסס איתריום.
  2. אפשר לראות שזמינות לנו פונקציות מתוך החוזה ERC20 , למשל _mint וגם decimals. כמו כן תוכלו לגשת לקובץ בספריה של openzeppelin ולראות את כל הפונקציות שזמינות לרשותכם.

deploy לחוזה החכם

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

const hre = require("hardhat");


async function main() {
  const initialSupply = 1000000;

  const wellToken  = await hre.ethers.deployContract("WellToken", [initialSupply]);
 
  await wellToken.waitForDeployment();
  
  const totalSupply = await wellToken.totalSupply();

  console.log(
    `WellToken deployed to ${await wellToken.getAddress()} with an initialSupply ${totalSupply}`
  );
}

// We recommend this pattern to be able to use async/await everywhere
// and properly handle errors.
main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});
ברגע שנריץ את קובץ הJS בעזרת הפקודה: 
npx hardhat run scripts/deploy.js

החוזה שלנו יקומפל , כלומר החוזה של ERC20 של openzeppelin

אתם תקבלו משהו כזה:

WellToken deployed to 0x5FbDB2315678afecb367f032d93F642f64180aa3 with an initialSupply 1000000000000000000000000

יש חוזה ERC20, כלומר token חדש בשם WET' ויש מטבעות (סה"כ 1000000 מטבעות) שהונפקו לחוזה זה

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

לסיכום שיעור סולידיטי OpenZeppelin

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

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

קורס בלוקציין סולידיטי חלק שלישי - hardhatקורס סולידיטי – חלק שלישי– hardhat קורס בלוקציין עושים MINT בDAPPקורס בלוקציין – עושים MINT בDAPP קורס סולידיטי – חלק שני – ירושות ו override קורס סולידיטי מפתח בלוקציין function typesקורס סולידיטי – חלק ראשון – Functions Types
blockchain ERC20 hardhat OpenZeppelin מפתח בלוקציין מתכנת בלוקציין סולידיטי קורס בלוקציין קורס סולידיטי

אודות המחבר

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


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

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
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 אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד