פרטי השיעור
פרק 8: פיתוח ארנק
מבוא
בפרק זה נלמד כיצד לפתח ארנק למטבע הקריפטוגרפי שלך. הארנק מאפשר למשתמשים לאחסן, לשלוח ולקבל מטבעות. נשתמש ב-JavaScript ובספריית Web3.js כדי ליצור את הארנק.
שלב 1: הגדרת פרויקט הארנק
-
צור תיקייה חדשה לפרויקט הארנק שלך:
mkdir my-wallet cd my-wallet
אתחל פרויקט Node.js:
npm init -y
התקן את הספריות הדרושות:
npm install web3 express body-parser
הסבר:
- Web3.js: ספרייה המאפשרת לך לתקשר עם בלוקצ'יין את'ריום.
- Express: מסגרת עבודה ל-Node.js לבניית יישומי ווב.
- Body-parser: ספרייה לעיבוד בקשות HTTP עם נתוני גוף.
שלב 2: יצירת הארנק
-
צור קובץ בשם
wallet.js
עם התוכן הבא:
const Web3 = require('web3'); const express = require('express'); const bodyParser = require('body-parser'); const app = express(); const web3 = new Web3('http://localhost:8545'); // כתובת הנוד שלך app.use(bodyParser.json()); // יצירת ארנק חדש app.post('/createWallet', (req, res) => { const account = web3.eth.accounts.create(); res.json({ address: account.address, privateKey: account.privateKey }); }); // קבלת יתרה של כתובת app.get('/balance/:address', async (req, res) => { const balance = await web3.eth.getBalance(req.params.address); res.json({ balance: web3.utils.fromWei(balance, 'ether') }); }); // שליחת טרנזקציה app.post('/sendTransaction', async (req, res) => { const { from, to, amount, privateKey } = req.body; const signedTx = await web3.eth.accounts.signTransaction({ from, to, value: web3.utils.toWei(amount, 'ether'), gas: 2000000 }, privateKey); const receipt = await web3.eth.sendSignedTransaction(signedTx.rawTransaction); res.json({ receipt }); }); app.listen(3000, () => { console.log('Server running on port 3000'); });
הרץ את השרת:
node wallet.js
הסבר:
/createWallet
: מסלול ליצירת ארנק חדש עם כתובת ומפתח פרטי./balance/:address
: מסלול לקבלת יתרה של כתובת מסוימת./sendTransaction
: מסלול לשליחת טרנזקציה בין כתובות.
שלב 3: בדיקת הארנק
-
שלח בקשה ליצירת ארנק חדש:
curl -X POST http://localhost:3000/createWallet
שלח בקשה לקבלת יתרה:
curl http://localhost:3000/balance/<כתובת>
שלח בקשה לשליחת טרנזקציה:
curl -X POST -H "Content-Type: application/json" -d '{"from": "<כתובת>", "to": "<כתובת>", "amount": "0.1", "privateKey": "<מפתח פרטי>"}' http://localhost:3000/sendTransaction