E-Kami
E-Kami

Reputation: 2669

Hardhat networks: Second chain fork

My hardhat network forking configuration looks like this:

task("accounts", "Prints the list of accounts", async (taskArgs, hre) => {
  const accounts = await hre.ethers.getSigners();

  console.log(
    `Printing accounts for network ${hre.network.name}(${hre.network.config.chainId})`
  );
  for (const account of accounts) {
    console.log(account.address);
  }
});

...

  networks: {
    hardhat: {
      forking: {
        url: "https://api.avax.network/ext/bc/C/rpc",
        enabled: true,
        blockNumber: 13861930,
      },
    },
    avalanche_fork: {
      gasPrice: 225000000000,
      url: "https://api.avax.network/ext/bc/C/rpc",
      forking: {
        url: "https://api.avax.network/ext/bc/C/rpc",
        enabled: true,
        blockNumber: 13861930,
      },
    },
  },

The problem I have is that when I run hardhat accounts I get the following:

Printing accounts for network hardhat(31337)
0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92265
0x70997970C51812dc3A010C7d01b50e0d17dc79C8
0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC
0x90F79bf6EB2c4f870365E785982E1f101E93b906
0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65
0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc
0x976EA74026E726554dB657fA54763abd0C3a0aa9
0x14dC79964da2C08b23698B3D3cc7Ca32193d9955
0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f
0xa0Ee7A142d267C1f36714E4a8F75612F20a79720
0xBcd4042DE499D14e55001CcbB24a551F3b954096
0x71bE63f3384f5fb98995898A86B02Fb2426c5788
0xFABB0ac9d68B0B445fB7357272Ff202C5651694a
0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec
0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097
0xcd3B766CCDd6AE721141F452C550Ca635964ce71
0x2546BcD3c84621e976D8185a91A922aE77ECEc30
0xbDA5747bFD65F08deb54cb465eB87D40e51B197E
0xdD2FD4581271e230360230F9337D5c0430Bf44C0
0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199
Done in 3.89s.

But if I try hardhat accounts --network avalanche_fork I get:

Printing accounts for network avalanche_fork(undefined)
Done in 1.70s.

What is the difference between those two configurations and how can I get the behavior of the hardhat network into avalanche_fork? My goal really is to have the hardhat network behavior in avalanche_fork. Thanks!

Upvotes: 0

Views: 677

Answers (1)

Petr Hejda
Petr Hejda

Reputation: 43491

The hardhat network uses a default config generating these accounts. Docs: https://hardhat.org/hardhat-network/reference/#accounts

To get the same accounts in a custom network, you need to define the same (default) mnemonic and number of accounts.

avalanche_fork: {
    gasPrice: 225000000000,
    url: "https://api.avax.network/ext/bc/C/rpc",
    forking: {
        url: "https://api.avax.network/ext/bc/C/rpc",
        enabled: true,
        blockNumber: 13861930,
    },
    accounts: {
        mnemonic: "test test test test test test test test test test test junk",
        count: 20
    }
}

Upvotes: 2

Related Questions