Bài viết
Chia sẻ kiến thức của bạn.
How to fund a account with ETH on a local fork or local node in hardhat?
Let's say I have an account in hardhat
[owner, user, user2] = await ethers.getSigners();
userAddress = user.address;
How would I fund userAddress
with funds on my local fork?
- blockchain
- solidity
Câu trả lời
3You can use setBalance
from the hardhat docs
await network.provider.send("hardhat_setBalance", [
userAddress,
"0x1000000000000000000000000", // we are giving ourselves a LOT eth
]);
// then we can print out how much we have in hex
console.log(
await network.provider.send("eth_getBalance", [
impersonatedSigner.address,
])
);
Whenever Hardhat spins up a local instance, it creates pre-funded accounts. You can access those accounts if import ethers from hardhat.
const { ethers } = require("hardhat");
async function main() {
const accounts = await ethers.getSigners();
const provider = ethers.provider;
for (const account of accounts) {
console.log("%s (%i ETH)", account.address, ethers.utils.formatEther(
await provider.getBalance(account.address)
)
);
}
}
main()
.then(() => process.exit(0))
.catch(error => {
console.error(error);
process.exit(1);
});
Nạp tiền vào tài khoản bằng ETH trên một fork cục bộ hoặc node cục bộ trong Hardhat là một bước quan trọng để thử nghiệm các hợp đồng thông minh trong các điều kiện bắt chước mạng chính Ethereum. Hướng dẫn này tận dụng các từ khóa thiết yếu để hướng dẫn bạn thông qua quy trình một cách có cấu trúc và tối ưu hóa:
mkdir mainnet-fork-tutorial
Tạo một dự án JavaScript: Khởi tạo dự án của bạn bằng cách mở một thiết bị đầu cuối và nhập lệnh để tạo một thư mục cho hướng dẫn của bạn, chẳng hạn như. Điều hướng vào thư mục dự án của bạn và thiết lập một dự án JavaScript mới.
2.** Cài đặt Hardhat**: Trong thư mục dự án của bạn, sử dụng npm để cài đặt Hardhat, đây là công cụ cốt lõi cho hướng dẫn này. Chạy npm install --save-dev hardhat
để thêm nó vào các phụ thuộc phát triển của dự án của bạn.
3.** Cài đặt Dotenv**: Để quản lý an toàn khóa API và khóa riêng của bạn, bạn sẽ cần cài đặt gói dotenv. Chạy npm i dotenv
trong thiết bị đầu cuối của bạn. Bước này đảm bảo rằng bạn có thể tải các biến môi trường từ một .env
tệp vào dự án của mình, giữ an toàn thông tin nhạy cảm như khóa riêng tư và khóa API của bạn.
npx hardhat
Thiết lập dự án Hardhat của bạn: Khởi tạo dự án Hardhat của bạn bằng cách chạy trong thiết bị đầu cuối. Làm theo lời nhắc để tạo một dự án mẫu và khi được yêu cầu, bạn có thể chọn tạo một dự án JavaScript và yêu cầunomicfoundation/hardhat-toolbox
, đây là một tập hợp các công cụ và plugin hữu ích cho việc phát triển.
5.Định cấu hình Hardhat cho Mainnet Forking: Trong tệp cấu hình Hardhat của bạn (hardhat.config.js
), thêm cấu hình mạng cho Hardhat chỉ định nhánh mainnet. Điều này liên quan đến việc sử dụng networks
thuộc tính để xác định một mạng mới hardhat
có tên bao gồm forking
tùy chọn. Bạn sẽ cần một khóa API cho một dịch vụ node lưu trữ đầy đủ như Alchemy hoặc Infura. Cấu hình có thể trông giống như thế này:
async function main() {
const [deployer] = await ethers.getSigners();
const receiver = "0xYourAccountAddress";
const amount = ethers.utils.parseEther("1.0");
const tx = await deployer.sendTransaction({
to: receiver,
value: amount,
});
console.log(`Funded ${receiver} with 1 ETH.`);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
npx hardhat node --fork https://eth-mainnet.alchemyapi.io/v2/yourAlchemyApiKey --fork-block-number 12345678
Fork the Mainnet: Với cấu hình Hardhat của bạn được thiết lập để phân nhánh mạng chính, hãy khởi động một nút Hardhat cục bộ để phân nhánh mạng chính Ethereum bằng cách chạy. Lệnh này sử dụngnpx hardhat node
để phân nhánh mạng chính, cho phép bạn tương tác với trạng thái và các hợp đồng đã có từ trước của mạng Ethereum. Thay thếyourAlchemyApiKey
bằng khóa API thực tế của bạn và tùy chọn chỉ định số khối để phân nhánh.
7.Nạp tiền vào tài khoản của bạn: Để nạp tiền vào tài khoản bằng ETH trong môi trường địa phương này, bạn có thể sử dụng bảng điều khiển hoặc tập lệnh của Hardhat. Đầu tiên, hãy đảm bảo bạn có một tài khoản có quyền truy cập vào khóa riêng của nó. Bạn có thể tạo tài khoản mới bằng Hardhat hoặc sử dụng tài khoản Ethereum hiện có. Trong .env
tệp của bạn, lưu trữ khóa riêng như sau:PRIVATE_KEY=yourPrivateKey
.
8.Thực thi một tập lệnh nạp tiền: Tạo một tập lệnh trong dự án của bạn để gửi ETH đến tài khoản của bạn từ một trong các tài khoản được tài trợ trước trong nút Hardhat. Dưới đây là một tập lệnh ví dụfundAccount.js
, bạn có thể chạy vớinpx hardhat run scripts/fundAccount.js --network localhost
:
async function main() {
const [deployer] = await ethers.getSigners();
const receiver = "0xYourAccountAddress";
const amount = ethers.utils.parseEther("1.0");
const tx = await deployer.sendTransaction({
to: receiver,
value: amount,
});
console.log(`Funded ${receiver} with 1 ETH.`);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
9.Xác minh số dạng: Xác minh số dư ETH trong tài khoản của bạn bằng cách chạy một tác vụ Hardhat hoặc tập lệnh đơn giản để kiểm tra và in ra số dư của tài khoản.
Bạn có biết câu trả lời không?
Hãy đăng nhập và chia sẻ nó.
Web3 (also known as Web 3.0) is an idea for a new iteration of the World Wide Web which incorporates concepts such as decentralization, blockchain technologies, and token-based economics.
Kiếm phần của bạn từ 1000 Sui
Tích lũy điểm danh tiếng và nhận phần thưởng khi giúp cộng đồng Sui phát triển.

- 0xduckmove... SUI+88
1
- harry phan... SUI+61
2
- MiniBob... SUI+57
3
- ... SUIHaGiang+56
- ... SUIRogue+47
- ... SUIRogueRig+44
- ... SUIPeera Admin+25
- ... SUIVens.sui+20
- ... SUIMarlKey+20
- ... SUIdudley_smith+16