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

קורס blockchain – הקדמה והכנה לפרויקט

וינר יאיר 25 בפברואר 2022 אין תגובות

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

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

  1. react בשביל צד לקוח.
  2. solidity – שפת קוד מבוססת Ethereum לכתיבת חוזה חכם (Smart Contract).
  3. js, html ,css – השפות הבסיסיות לעבודה בweb. חשוב מאוד לדעת ברמה טובה.

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

  1. ethers
  2. hardhat
  3. waffle
  4. openzeppelin
  • נעבור על הספריות הללו עוד בהמשך הלימודים פה באתר.

נתחיל לבנות את הצד לקוח – react

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

נמשיך לקוד,

העניין המרכזי פה הוא לא המבנה של ריאקט שהוא פשוט למדיי . אלא העניין הוא לחבר את הגולש אל האפליקציה שלנו דרך הערוץ web3 שלרוב נעשה באמצעות תוסף תומך . אפשר להתממשק לתוספים שונים אבל לצורך הקורס שלנו אנחנו נתממשק כרגע רק אל metaMask שהינו התוסף הפופולארי ביותר (נכון להיום).

import './App.scss';
import React, { useEffect, useState } from 'react';
import GallerySlider from './GallerySlider';
import logo from './logo.png';
import { ethers } from 'ethers';

function App() {
  const [address , setAddress] = useState();

  const connectWallet = () =>{
    if(window.ethereum) {
        window.ethereum.request({method: 'eth_requestAccounts'})
        .then(result=>{
            setAddress(result[0]);
        })
    }else {
        console.log('Install Metamask')
    }
};

  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} alt="logo" />
        <span>NTF Artist</span>
      </header>
      <div className="collection-cointainer">
      <h1>New NFT's Collections</h1>
        <GallerySlider />
      </div>
      <button type="button"  onClick={connectWallet} className="mint-btn">Mint NFT Now</button>
    {address}
    </div>
  );
}

export default App;
import React, { useEffect, useState } from 'react'
import imgOne from './01.jpg';
import imgTwo from './02.jpg';
import imgThree from './03.jpg';
import imgFour from './04.jpg';

function GallerySlider() {
    const [slides, getSlides] = useState([]);
    useEffect(() => {
        if (slides.length < 1) {
            setTimeout(() => {
                getSlides([...slides, { img: imgOne, desc: 'Some text about this art.', id: 243567 },
                { img: imgTwo, desc: 'Some text about this art.', id: 98742564 },
                { img: imgThree, desc: 'Some text about this art.', id: 978645 },
                { img: imgFour, desc: 'Some text about this art.', id: 3568 }]);
            }, 2000);
        }
    }, []);

    if (slides && slides.length > 0) {
        return (
            <>
                <ul className='listOfArts'>

                    {
                        slides.map((item) =>
                            <li className='item-container' key={item.id}>
                                <img src={item.img} alt={item.desc} />
                                <div className='artDescription'>
                                    <span>
                                        {item.desc}
                                    </span>
                                    <button type="button" disabled>its Minted</button>
                                </div>
                            </li>
                        )
                    }
                </ul>
            </>
        )
    } else {
        return (<> Gallery is loading, Please Wait..
        </>)
    }

}
export default GallerySlider;

נעבור על הקוד כעת,

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

בשביל העניין יש פה קצת עבודת CSS על מנת לקבל איזה look&feel של אתר בעבור יצירות NFT .
והחלק החשוב הוא הכפתור לביצוע ה mint שממנו יתחיל כל הקסם.

וניגש לעיקר, התחברות עם ה account של הלקוח.
קודם כל נתקין ספריית עזר: (נתשמש בה בשיעורים הבאים)

  • ethers

כפי שניתן לראות כל הקוד המוצג הוא קוד בסיסי של react. עשינו שימוש בhooks של address בשביל לקבל את הכתובת של החשבון שמתחבר אל ה Dapp שלנו ונציג את הכתובת רק לצורך בדיקה שאכן זה עובד. כמו כן אתם צריכים שיהיה לכם את התוסף של metamask אחרת תקבלו שגיאה.

אז החלק המעניין נמצא בשורות 10 – 18 בפונקציה connectWallet. שמה אנחנו עושים קריאה לחשבון של המשתמש. היות ומותקן לנו על הדפדפן metamask אז יש לנו גישה אל אובייקט זה שיושב על window .

וכל מה שאנחנו מבקשים כרגע זה את הכתובת הציבורית של המשתמש.

סיכום הקורס בלוקציין שיעור המבוא

זהו הצעד הראשון שלנו! התחברות בין חשבון לאפליקציה שלנו בוצעה בהצלחה. ברור שכרגע כל זה עוד לא עוזר לנו לייצר קריאה או כתיבה לבלוקציין. אבל שלב שלב 🐊😎

תצוגת הפרויקט שלנו לעת עתה:

תצוגה של השלב הראשון בבניית אתר NFT | למכירת יצירות NFT.
תצוגה של השלב הראשון בבניית אתר NFT | למכירת יצירות NFT.

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

קורס-חינם-React-&-GraphQL---שיעור-ראשון---משחק-איקס-עיגול-TIK-TAK-TOEקורס חינם React & GraphQL – שיעור שני – משחק איקס עיגול TIK-TAK-TOE קורס וורדפרס למתקדמים שיעור ראשוןקורס בניית אתרים בוורדפרס – הקדמה מדריך ריאקט שיעור useContextמדריך ריאקט – react hooks | useContext מדריך ריאקט – react hooks | useMemo & useCallbackמדריך ריאקט – react hooks | useMemo & useCallback
blockchain ethers metamask nft קורס בלוקציין

אודות המחבר

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


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

השארת תגובה

ביטול

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

כלי נגישות

  • הגדל טקסטהגדל טקסט
  • הקטן טקסטהקטן טקסט
  • גווני אפורגווני אפור
  • ניגודיות גבוההניגודיות גבוהה
  • ניגודיות הפוכהניגודיות הפוכה
  • רקע בהיררקע בהיר
  • הדגשת קישוריםהדגשת קישורים
  • פונט קריאפונט קריא
  • איפוס איפוס