פרטי השיעור
פרק 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