feat: complete day 7
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
// services/Web3Service.js
|
||||
const { Web3 } = require("web3");
|
||||
|
||||
const web3 = new Web3(process.env.ALCHEMY_API_URL);
|
||||
|
||||
module.exports = {
|
||||
web3,
|
||||
createWallet: () => {
|
||||
return web3.eth.accounts.create();
|
||||
},
|
||||
signMessage: (privateKey, message) => {
|
||||
return web3.eth.accounts.sign(message, privateKey);
|
||||
},
|
||||
getBalance: async (address) => {
|
||||
const balanceWei = await web3.eth.getBalance(address);
|
||||
return web3.utils.fromWei(balanceWei, "ether");
|
||||
},
|
||||
transfer: async (privateKey, to, amount) => {
|
||||
const account = web3.eth.accounts.privateKeyToAccount(privateKey);
|
||||
const from = account.address;
|
||||
const nonce = await web3.eth.getTransactionCount(from, "latest");
|
||||
|
||||
const gasPrice = await web3.eth.getGasPrice();
|
||||
|
||||
const tx = {
|
||||
from,
|
||||
to,
|
||||
value: web3.utils.toWei(amount, "ether"),
|
||||
gas: 21000,
|
||||
gasPrice,
|
||||
nonce,
|
||||
};
|
||||
|
||||
const signed = await account.signTransaction(tx);
|
||||
return web3.eth.sendSignedTransaction(signed.rawTransaction);
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user