Skip to content

Commit f3cbf89

Browse files
authored
Add hardhat config to docs (#1209)
1 parent 71ab528 commit f3cbf89

File tree

2 files changed

+100
-20
lines changed

2 files changed

+100
-20
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
import { task } from "hardhat/config"
2+
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers"
3+
import { BigNumber } from "ethers"
4+
import "@nomiclabs/hardhat-waffle"
5+
6+
// When using the hardhat network, you may choose to fork Fuji or Avalanche Mainnet
7+
// This will allow you to debug contracts using the hardhat network while keeping the current network state
8+
// To enable forking, turn one of these booleans on, and then run your tasks/scripts using ``--network hardhat``
9+
// For more information go to the hardhat guide
10+
// https://hardhat.org/hardhat-network/
11+
// https://hardhat.org/guides/mainnet-forking.html
12+
const FORK_FUJI = false
13+
const FORK_MAINNET = false
14+
const forkingData = FORK_FUJI ? {
15+
url: 'https://api.avax-test.network/ext/bc/C/rpc',
16+
} : FORK_MAINNET ? {
17+
url: 'https://api.avax.network/ext/bc/C/rpc'
18+
} : undefined
19+
20+
task("accounts", "Prints the list of accounts", async (args, hre): Promise<void> => {
21+
const accounts: SignerWithAddress[] = await hre.ethers.getSigners()
22+
accounts.forEach((account: SignerWithAddress): void => {
23+
console.log(account.address)
24+
})
25+
})
26+
27+
task("balances", "Prints the list of AVAX account balances", async (args, hre): Promise<void> => {
28+
const accounts: SignerWithAddress[] = await hre.ethers.getSigners()
29+
for(const account of accounts){
30+
const balance: BigNumber = await hre.ethers.provider.getBalance(
31+
account.address
32+
);
33+
console.log(`${account.address} has balance ${balance.toString()}`);
34+
}
35+
})
36+
37+
export default {
38+
solidity: {
39+
compilers: [
40+
{
41+
version: "0.5.16"
42+
},
43+
{
44+
version: "0.6.2"
45+
},
46+
{
47+
version: "0.6.4"
48+
},
49+
{
50+
version: "0.7.0"
51+
},
52+
{
53+
version: "0.8.0"
54+
}
55+
]
56+
},
57+
networks: {
58+
hardhat: {
59+
gasPrice: 225000000000,
60+
chainId: !forkingData ? 43112 : undefined, //Only specify a chainId if we are not forking
61+
forking: forkingData
62+
},
63+
local: {
64+
url: 'http://localhost:9650/ext/bc/C/rpc',
65+
gasPrice: 225000000000,
66+
chainId: 43112,
67+
accounts: [
68+
"0x56289e99c94b6912bfc12adc093c9b51124f0dc54ac7a766b2bc5ccf558d8027",
69+
"0x7b4198529994b0dc604278c99d153cfd069d594753d471171a1d102a10438e07",
70+
"0x15614556be13730e9e8d6eacc1603143e7b96987429df8726384c2ec4502ef6e",
71+
"0x31b571bf6894a248831ff937bb49f7754509fe93bbd2517c9c73c4144c0e97dc",
72+
"0x6934bef917e01692b789da754a0eae31a8536eb465e7bff752ea291dad88c675",
73+
"0xe700bdbdbc279b808b1ec45f8c2370e4616d3a02c336e68d85d4668e08f53cff",
74+
"0xbbc2865b76ba28016bc2255c7504d000e046ae01934b04c694592a6276988630",
75+
"0xcdbfd34f687ced8c6968854f8a99ae47712c4f4183b78dcc4a903d1bfe8cbf60",
76+
"0x86f78c5416151fe3546dece84fda4b4b1e36089f2dbc48496faf3a950f16157c",
77+
"0x750839e9dbbd2a0910efe40f50b2f3b2f2f59f5580bb4b83bd8c1201cf9a010a"
78+
]
79+
},
80+
fuji: {
81+
url: 'https://api.avax-test.network/ext/bc/C/rpc',
82+
gasPrice: 225000000000,
83+
chainId: 43113,
84+
accounts: []
85+
},
86+
mainnet: {
87+
url: 'https://api.avax.network/ext/bc/C/rpc',
88+
gasPrice: 225000000000,
89+
chainId: 43114,
90+
accounts: []
91+
}
92+
}
93+
}

docs/dapps/developer-toolchains/using-hardhat-with-the-avalanche-c-chain.md

+7-20
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,10 @@ Hardhat uses `hardhat.config.js` as the configuration file. You can define
6969
tasks, networks, compilers and more in that file. For more information see
7070
[here](https://hardhat.org/config/).
7171

72-
In our repository we use a pre-configured file
73-
[hardhat.config.ts](https://github.com/ava-labs/avalanche-smart-contract-quickstart/blob/main/hardhat.config.ts).
74-
This file configures necessary network information to provide smooth interaction
75-
with Avalanche. There are also some pre-defined private keys for testing on a
76-
local test network.
72+
Here is an example pre-configured [hardhat.config.ts](./hardhat.config.ts). This
73+
file configures necessary network information to provide smooth interaction with
74+
Avalanche. There are also some pre-defined private keys for testing on a local
75+
test network.
7776

7877
:::info
7978

@@ -86,18 +85,10 @@ see how to retrieve the port numbers.
8685

8786
## Hardhat Tasks
8887

89-
You can define custom hardhat tasks in
90-
[hardhat.config.ts](https://github.com/ava-labs/avalanche-smart-contract-quickstart/blob/main/hardhat.config.ts).
91-
There are two tasks included as examples: `accounts` and `balances`. Both have
92-
scripts in
93-
[package.json](https://github.com/ava-labs/avalanche-smart-contract-quickstart/blob/main/package.json).
88+
You can define custom hardhat tasks in [hardhat.config.ts](./hardhat.config.ts).
89+
There are two tasks included as examples: `accounts` and `balances`.
9490

95-
```javascript
96-
"accounts": "npx hardhat accounts",
97-
"balances": "npx hardhat balances"
98-
```
99-
100-
`yarn accounts` prints the list of accounts. `yarn balances` prints the list of
91+
`npx hardhat accounts` prints the list of accounts. `npx hardhat balances` prints the list of
10192
AVAX account balances. As with other `yarn` scripts you can pass in a
10293
`--network` flag to hardhat tasks.
10394

@@ -106,8 +97,6 @@ AVAX account balances. As with other `yarn` scripts you can pass in a
10697
Prints a list of accounts on the local Avalanche Network Runner network.
10798

10899
```text
109-
$ yarn accounts --network local
110-
yarn run v1.22.4
111100
npx hardhat accounts --network local
112101
0x8db97C7cEcE249c2b98bDC0226Cc4C2A57BF52FC
113102
0x9632a79656af553F58738B0FB750320158495942
@@ -127,8 +116,6 @@ Prints a list of accounts and their corresponding AVAX balances on the local
127116
Avalanche Network Runner network.
128117

129118
```text
130-
$ yarn balances --network local
131-
yarn run v1.22.4
132119
npx hardhat balances --network local
133120
0x8db97C7cEcE249c2b98bDC0226Cc4C2A57BF52FC has balance 50000000000000000000000000
134121
0x9632a79656af553F58738B0FB750320158495942 has balance 0

0 commit comments

Comments
 (0)