ממשיכים לפתח את האפליקציית web3 שלנו שלא עושה יותר מידי חוץ מלתת להתאמן קצת ולראות דוגמאות שימושיות. אז כן בשיעור הקודם ראינו את כמעט את כל התהליך להעלאת החוזה שכתבנו ואפילו הרצנו את הפקודה שעושה את הdeploy. זו הפקודה למי שלא זוכר:
npx hardhat run scripts/deploy.js
אבל ראינו שהחוזה עשה דיפלוי לסביבה לוקלית (שhardhat מספקת לנו) ואין לנו ממש מה לעשות עם זה. אז נמשיך ונלמד על כיצד לקנפג סביבות שונות ולעשות דיפלוי לסביבות הללו
אפשר לעלות לסביבה לוקלית של ganacheן שאנחנו כבר מכירים, אבל בואו נזכר ונראה כיצד מקנפגים זאת. בדומה נקנפג גם סביבות נוספות.
אז יש קובץ אחד חשוב שדואג לקינפוגים הללו הוא hardhat.config.js שיושב בתיקיה הראשית של הפרויקט שלנו. נכנס אליו ונוסיף:
להלן קובץ עם הקינפוג של גאנש:
require("@nomicfoundation/hardhat-toolbox"); /** @type import('hardhat/config').HardhatUserConfig */ module.exports = { solidity: "0.8.18", networks: { localhost: { url: "http://127.0.0.1:8545" }, hardhat: { // See its defaults }, ganache: { url: 'HTTP://127.0.0.1:7545', accounts: ['PRIAVE_KEY'] } } };
אז אפשר לראות שהוספתי ברשימת הnetworks את הקינפוג לרשת של גאנש, כל מה שיהיה עליכם לעשות זה לפתוח את הסביבה של גאנש ולחבר את אחד החשבונות למטה מאסק כפי שעשינו בעבר בפוסט של blockchain wallet .
ועכשיו אחרי שיש לכם את גאנש במטה מסק מוגדר וגם הגדרתם את הסביבה בקונפיג, כל מה שנשאר זה להריץ את הפקודה הבאה:
npx hardhat run scripts/deploy.js --network ganache
ואם הכל הלך כמו שצריך , אתם תראו כי החוזה עלה בהצלחה!
כל מה שנותר זה להסתכל במטה מאסק ולראות שאכן החוזה נרשם בבלוקציין. לא בטוח שהמידע הזה יוצג במטה מסאק אבל בהחלט תוכלו לראות שהירד קצת איתר (איתר לא אמיתי כמובן) מהבלאנס שלכם וגם תוכלו להוסיף את הטוקן שיצרו בחוזה , הרי החוזה שלנו הוא ERC20.😊
להלן צילומי מסך שיעזרו לכם להתמצא: (כמו כן כל אחד ישים את המפתח הפרטי שלו במקום PRIAVE_KEY)
טרזקציה עבור חוזה שנחתם בבלוקציין של גאנש:

באלנס במטה מאסק לאתר שהחוזה עלה:

מציאת הטוקן החדש שיצנו וייבוא שלו לחשבון שלנו:


אוקיי זה נחמד מאוד לעבוד עם גאנש בלוקלי אבל זה עובד פחות טוב ולא באמת מדמה סביבה אמיתית. לשם כך נצטרך סביבת test . ישנם כל מיני סביבות כפי שאתם כבר יודעים, אני אציג פה עבודה עם goerli אבל כל סביבה אחרת זה בדיוק אותו הדבר ועדיין תוכלו לעקוב אחר השלבים. אז קודם נוסיף את הסביבה בקונפיג: (כמו כן כל אחד ישים את המפתח הפרטי שלו במקום PRIAVE_KEY).
require("@nomicfoundation/hardhat-toolbox"); /** @type import('hardhat/config').HardhatUserConfig */ module.exports = { solidity: "0.8.18", networks: { localhost: { url: "http://127.0.0.1:8545" }, hardhat: { // See its defaults }, goerli: { url: 'https://eth-goerli.g.alchemy.com/v2/KJH55GayDCAOzD1F28WOAM5Ad6WL01wa', accounts: ['PRIAVE_KEY'] }, ganache: { url: 'HTTP://127.0.0.1:7545', accounts: ['PRIAVE_KEY'] } } };
בישביל להשיג גישה לסביבה זו, אפשר לגשת לאתר של alchemy ולייצר אפליקציה ולקבל URL מתאים, צרו חשבון והקימו אפליקציה חדשה ובחרו את הרשת (network) של ethereum goerli:


לאחר מכן תוכלו ללחוץ על view key ולקבל את הURL.
ואז במטה מאסק יהיה עליכם גם לעבור לרשת goerli שב99 אחוז מהמקרים כבר מוגדרת לכם by default. אז צרו חשבון חדש, וגשו למפתח הפרטי והשתמשו בו במקום שרשום PRIVET KEY , בהמשך נעביר את כל הפרטים הללו לקובץ ENV ככה שהכל יהיה יותר מאובטח. לשם התרגול נשים הכל בקובץ הקונפיג.
עכשיו נוכל לעשות את אותו התהליך, נריץ את הפקודה באופן הזה:
npx hardhat run scripts/deploy.js --network goerli
חשוב לציין כי מכוון שgoerli מדמה סביבה אמיתית יש צורך באיתריום של גוארלי, ולכן יהיה עליכם למצוא אפשר לקבל קצת איתר לבדיקות, למשל אם תחפשו בגוגל faucet ethereum goerli סיכוי גבוה התמצאו, במידה ולא מצאתם, תרשמו כתגובה את הpublic key שלכם ואני אעביר לכם.
עכשיו החוזה עלה לסביבת הטסט שמדמה סביבה אמיתית, נוכל לראות הכל בצורה ברורה. כמו כן אם תחזרו על השלבים של הוספת הטוקן אתם תראו את הטוקנים שיצרנו ממש בתוך הארנק שלנו! מליון טוקנים חדשים 😍

כמו כן תוכלו לגשת ל"goerli.etherscan " ולהקיש את כתובת החוזה ולראות שהוא אכן חתום בבלוקציין.
סיכום שיעור contracts deployment בקורס סולידיטי
אז עשינו דיפלויי לרשת "אמיתית" (טסט אבל ממש כמו הסביבה האמיתית) ואם תרצו להעלות את החוזה שלכם לסביבה אמיתית, אז זה בדיוק אותו תהליך, והנה לכם חוזה של ERC20, ברגע זה יצרתם טוקן חדש.
