Skip to content

Commit 6b9d23a

Browse files
committed
feat: upgrade ethers.js v6 06-ethersjs-waffle
1 parent 8de015f commit 6b9d23a

File tree

4 files changed

+112
-22
lines changed

4 files changed

+112
-22
lines changed

basic/06-ethersjs-waffle/README-cn.md

+9-4
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,12 @@ $ yarn --versionyarn --version
9292

9393
- waffle 官方文档: <https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html>
9494

95-
- ehterjs 官方文档: <https://docs.ethers.io/v4/api-providers.html>
96-
<https://docs.ethers.io/v5/getting-started/#getting-started--contracts>
97-
98-
- 中文文档: <https://learnblockchain.cn/docs/ethers.js/api-providers.html>
95+
- ehterjs 官方文档:
96+
- v4 <https://docs.ethers.io/v4/api-providers.html>
97+
- v5 <https://docs.ethers.io/v5/getting-started/#getting-started--contracts>
98+
- v6 <https://docs.ethers.org/v6/getting-started>
99+
100+
- 中文文档:
101+
- v4 <https://learnblockchain.cn/docs/ethers.js/api-providers.html>
102+
- v5 <https://learnblockchain.cn/ethers_v5/getting-started>
103+
- v6 <https://www.wtf.academy/docs/ethers-101/HelloVitalik/>

basic/06-ethersjs-waffle/README.md

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[中文](./README-CN.md) / English
1+
[中文](./README-cn.md) / English
22

33
## Preface
44

@@ -93,7 +93,12 @@ afer changed:
9393

9494
- waffle offical document: <https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html>
9595

96-
- etherjs offical document: <https://docs.ethers.io/v4/api-providers.html>
97-
<https://docs.ethers.io/v5/getting-started/#getting-started--contracts>
96+
- etherjs offical document:
97+
- v4 <https://docs.ethers.io/v4/api-providers.html>
98+
- v5 <https://docs.ethers.io/v5/getting-started/#getting-started--contracts>
99+
- v6 <https://docs.ethers.org/v6/getting-started>
98100

99-
- Chinese document: <https://learnblockchain.cn/docs/ethers.js/api-providers.html>
101+
- Chinese document:
102+
- v4 <https://learnblockchain.cn/docs/ethers.js/api-providers.html>
103+
- v5 <https://learnblockchain.cn/ethers_v5/getting-started>
104+
- v6 <https://www.wtf.academy/docs/ethers-101/HelloVitalik/>

basic/06-ethersjs-waffle/index-v5.js

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
const fs = require("fs");
2+
const SimpleToken = require("./build/SimpleToken.json");
3+
4+
const { ethers } = require("ethers");
5+
6+
require("dotenv").config();
7+
const privateKey = process.env.PRIVATE_KEY;
8+
9+
// const web3 = new Web3.providers.HttpProvider('https://sepolia.infura.io/v3/0aae8358bfe04803b8e75bb4755eaf07');
10+
// let web3Provider = new ethers.providers.Web3Provider(web3)
11+
12+
const web3Provider = new ethers.providers.InfuraProvider(
13+
"sepolia",
14+
process.env.INFURA_ID
15+
);
16+
17+
const wallet = new ethers.Wallet(privateKey, web3Provider);
18+
19+
let address = "0x54A65DB20D7653CE509d3ee42656a8F138037d51";
20+
21+
let bal;
22+
23+
// support eip1559
24+
async function getGasPrice () {
25+
return await web3Provider.getFeeData().then(async function (res) {
26+
let maxFeePerGas = res.maxFeePerGas;
27+
let maxPriorityFeePerGas = res.maxPriorityFeePerGas;
28+
console.log("maxFeePerGas: ", maxFeePerGas.toString());
29+
console.log("maxPriorityFeePerGas:", maxPriorityFeePerGas.toString());
30+
31+
return {
32+
maxFeePerGas: maxFeePerGas,
33+
maxPriorityFeePerGas: maxPriorityFeePerGas,
34+
};
35+
});
36+
}
37+
38+
async function checkBalance () {
39+
bal = await web3Provider.getBalance(address).then((balance) => {
40+
// balance is a BigNumber (in wei); format is as a sting (in ether)
41+
let etherString = ethers.utils.formatEther(balance);
42+
return etherString;
43+
});
44+
console.log("balance: ", bal);
45+
}
46+
47+
checkBalance();
48+
49+
let token;
50+
async function deploy () {
51+
let option = await getGasPrice();
52+
// 常见合约工厂实例
53+
const simpletoken = new ethers.ContractFactory(
54+
SimpleToken.abi,
55+
SimpleToken.bytecode,
56+
wallet
57+
);
58+
token = await simpletoken.deploy("HEHE", "HH", 1, 100000000);
59+
tx = await token.transfer(
60+
"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
61+
ethers.utils.parseEther("0.00000000001"),
62+
option
63+
);
64+
console.log(token.address);
65+
66+
console.log(token.deployTransaction.hash);
67+
68+
await token.deployed();
69+
70+
let bal = await token.balanceOf(wallet.address);
71+
console.log(bal.toString());
72+
}
73+
74+
deploy();

basic/06-ethersjs-waffle/index.js

+20-14
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,27 @@ const { ethers } = require("ethers");
66
require("dotenv").config();
77
const privateKey = process.env.PRIVATE_KEY;
88

9-
// const web3 = new Web3.providers.HttpProvider('https://sepolia.infura.io/v3/0aae8358bfe04803b8e75bb4755eaf07');
9+
// const web3 = new Web3.providers.HttpProvider('https://sepolia.infura.io/v3' + process.env.INFURA_ID);
1010
// let web3Provider = new ethers.providers.Web3Provider(web3)
1111

12-
const web3Provider = new ethers.providers.InfuraProvider(
12+
const web3Provider = new ethers.InfuraProvider(
1313
"sepolia",
1414
process.env.INFURA_ID
1515
);
1616

17+
// or
18+
// const web3Provider = new ethers.JsonRpcProvider('https://sepolia.infura.io/v3/' + process.env.INFURA_ID,
19+
// 'sepolia'
20+
// );
21+
1722
const wallet = new ethers.Wallet(privateKey, web3Provider);
1823

19-
let address = "0x54A65DB20D7653CE509d3ee42656a8F138037d51";
24+
let address = "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266";
2025

2126
let bal;
2227

2328
// support eip1559
24-
async function getGasPrice() {
29+
async function getGasPrice () {
2530
return await web3Provider.getFeeData().then(async function (res) {
2631
let maxFeePerGas = res.maxFeePerGas;
2732
let maxPriorityFeePerGas = res.maxPriorityFeePerGas;
@@ -35,10 +40,10 @@ async function getGasPrice() {
3540
});
3641
}
3742

38-
async function checkBalance() {
43+
async function checkBalance () {
3944
bal = await web3Provider.getBalance(address).then((balance) => {
4045
// balance is a BigNumber (in wei); format is as a sting (in ether)
41-
let etherString = ethers.utils.formatEther(balance);
46+
let etherString = ethers.formatEther(balance);
4247
return etherString;
4348
});
4449
console.log("balance: ", bal);
@@ -47,26 +52,27 @@ async function checkBalance() {
4752
checkBalance();
4853

4954
let token;
50-
async function deploy() {
55+
async function deploy () {
5156
let option = await getGasPrice();
5257
// 常见合约工厂实例
5358
const simpletoken = new ethers.ContractFactory(
5459
SimpleToken.abi,
5560
SimpleToken.bytecode,
5661
wallet
5762
);
63+
console.log('start deploy')
5864
token = await simpletoken.deploy("HEHE", "HH", 1, 100000000);
65+
66+
console.log(token.target);
67+
68+
await token.waitForDeployment();
69+
console.log('deployed')
5970
tx = await token.transfer(
6071
"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
61-
ethers.utils.parseEther("0.00000000001"),
72+
ethers.parseEther("0.00000000001"),
6273
option
6374
);
64-
console.log(token.address);
65-
66-
console.log(token.deployTransaction.hash);
67-
68-
await token.deployed();
69-
75+
console.log('hash', tx.hash);
7076
let bal = await token.balanceOf(wallet.address);
7177
console.log(bal.toString());
7278
}

0 commit comments

Comments
 (0)