רמיקס הינו IDE ייעודי לכתיבת חוזים חכמים על גבי בלוקציין של איתריום (Ethereum) , פותח על ידי הקהילה של איתריום והיום נחשבת לפופולארית ביותר לכתיבת חוזים חכמים ואפליקציות web3.
לרמיקס אפשרויות רבות מלבד כתיבת קוד ולעזור לנו בכתיבה כמו כל IDE סטנדרטי, לרמיקס יש אפשרויות שונות כמו compile של חוזה חכם, deployment לסביבות שונות , תוספים ועוד.. (אשתדל לכסות את רוב הדברים בפוסט הזה, לפחות את החשובים ביותר).
לרמיקס יש כמה סביבות לעבודה, אפשר להיכנס לאתר רמיקס ופשוט לעבוד בסביבה הוובית שהיא נוחה מאד ואני באופן אישי עבדתי איתה לא מעט. אבל יש להיזהר כי המידע שאתם שתפכו לשמה נשמר בbrowser storage וב indexed DB שגם אותו אפשר לנקות מהדפדפן ולכן המידע שלכם יכול להעלם לחלוטין. אז אם תחליטו לעבוד עם רמיקס באופן וובי , תמיד תשמרו עותק אצלכם , או תורידו גיבוי מרמיקס בכל סוף יום עבודה. אני לאחרונה עבדתי לעבוד עם רמיקס בדסקטופ וגם זה מה אני אציג פה בקורס. אז המלצתי להוריד רמיקס למחשב. ההתקנה פשוטה מאד, יש קישור לGITHUB מהאתר הראשי , תבחרו את הקובץ המתאים לכם להתקנה , למשל אני בווינדואוס אז אני מוריד את הקובץ בסיומת exe. אז יאללההה בואו נתחיל ללמוד!
Remix Solidity Desktop
מאמין שלרובכם יש נסיון לא מועט בIDEs כאלה ואחרים ויהיה לכם קל לזהות הרבה מהאזורים כל הממשקים הללו דיי דומים מבחינת הUI שלהם. אבל לרמיקס יש כמה חלקים נוספים שאם לא נתקלתם בהם מקודם, סביר להניח שיהיו זרים לכם.
רמיקס מאפשר לנו לרשום קוד ולוודא שהוא אכן תקין בעזרת הקומפיילר ואז גם לעשות לו דיפלויי ולעלות אותו לסביבות טסט ואפילו לmainnet.
ראשית אתן הסבר כללי על מה יש לנו כאן בממשק ואז נמשיך ומעמיק לתוך האפשרויות תוך כדי עבודה.
הסבר כללי על התוכנה
רמיקס מחולק לכמה חלקים מרכזיים:
- תפריט שמאלי של אייקונים (מתחת ללוגו של רמיקס)
- אזור עבודה שמאלי – שימושים רבים לאזור זה, בין אם זה file explorer , קומפיילר, דפלויי ועוד..
- חלק מרכזי, בוא נכתוב את החוזים שלנ
- מתחת לחלק המרכזי ישנו טרמינל, שעוזר לנו בעיקר ל debugging וגם נותן לנו הרבה אינפורמציה.
מתחילים פרויקט חדש ברמיקס
נמשיך קצת לכתיבת פרויקט חדש עם רמיקס, וכך נכיר מעט טוב יותר את השימושים השונים ברמיקס, אני לא אסביר דברים שקשורים כרגע לקוד , כי אותם נלמד בהמשך. אז ניגש ל file explorer שזה הטאב הראשון בתפריט השמאלי של האייקונים. נוכל לראות שיש כבר פרויקט דוגמה (יותר נכון workspace ראשון). אפשר לראות שיש בו מספר תיקיות מעניינות אבל נעבור עליהם בהמשך ולא כעת. כעת תלחצו על create Workspace
כעת נפתח לכם חלון שבו תצטרכו לבחור את התבנית של הפרויקט שתרצו. רמיקס מקל עלינו ומאפשר לנו לבחור תבניות מוכנות או להתחיל מblanck .
default – יצור עבורנו מספר תיקיות וקבצי דוגמה
openZepplin – אפשרות להשתמש בתבניות של חוזים של אופן זפלין (נכיר את הספריה הזו טוב בהמשך, בחלק השלישי של הקורס הזה)
ויש אפשרות גם להשתמש בחוזה למטבעות של הספריה 0x@ (האפשרות האחרונה)
נתחיל ונבחר פרויקט blank, והנה לנו בורד נקי ואפשר להתחיל לייצר קבצים. כמו כן , במידה ותרצו לגשת לקבצים, (מעט מבלבל הנושא של שמירת הקבצים א תשאלו אותי). ישנה כמה דרכים לשמור את הקבצים:
- אפשר לייצר workspace ואז המידע נשמר בקאש, אפשר גם לשתף בגיט. לדעתי זו אופציה טובה אבל אם תרצו עותק שלכם תצטרכו לעשות קופי לקצבים, אול להוריד גיבוי.
- אפשרות לבחור בworkspace את local storage ואז ליצור תיקיה ולשים בה את הקצבים שלכם.
ונתמשיך הלאה לפרויקט שלנו אני ממליץ לשמור גיבוי אצלכם אם אתם לא רוצים לשתף בגיט, אני מעלה לגיט לטובת הקורס כך שתוכלו גם לראות את הקבצים של כל שיעור, בסיכום כל שיעור יהיה קישור לגיט.
אז בשביל הדומגה ושימוש ביכולות של רמיקס נעלה את החוזה הבא, בהסבר קצר, יש כאן בסהכ "קלאס" (בסולידי class זה contract) שעושה 2 פעולות , קריאה של מידע וכתיבה , זה הכל. (בהמשך נלמד מה זה באמת אומר כרגע זרמו עם זה)
// SPDX-License-Identifier: MTI pragma solidity ^0.8.0; contract ReadAndWrite { uint data = 3456; function readData() view public returns(uint) { return data; } function writeData(uint updateData) public { data = updateData; } }
עכשיו יש לנו חוזה ושניה ננסה להבין בלי להבין מה יש לנו בחוזה הזה, אפשר לראות שיש לנו איזה משתנה בשם data שיש לו איזה ערך ראשוני, ויש לנו 2 פונקציות, אחת שקוראת את המידע ואחת שכותבת מידע לתוך המשתנה הזה, פשוט מאוד. בואו נראה מה יקרה שנעבור לטאב הבא שנקרא solidity compiler,
קודם כל הייתי ממליץ לסמן את ה auto compile, ככה יותר נוח לעבוד, ובכל זאת נלחץ על הכפתור הכחול compile ReadAndWrite.sol ונראה שקיבלנו V ירוק כלומר שהקימפול עבד והחוזה ללא שגיאות כלשהן וכן הקימפול מייצר לנו כמה דברים חשובים שנזכיר אותם הרבה בהמשך למשל ABI שזה Application Binary Interface. נרחיב על זה בהמשך (בחלק השני לקורס) .
נמשיך לטאב הבא בתפריט השמאלי של האייקונים שהוא DEPLOY & RUN TRANSACTIONS.
אחד הטאבים היותר חשובים, בו מעלים את החוזה שלכם לבלוקציין, ויש בו לא מעט דברים לעבור עליהם, ולכן נקדיש לו פוסט נפרד. נמשיך מיד בפוסט חדש 🙂 .