如何在使用 Hardhat 的本地 Metamask 钱包中添加以太币?

11

我已经将Metamask连接到使用Hardhat创建的节点。在将链ID设置为与Hardhat网络链ID(31337)匹配后,我可以在Metamask上连接到http://localhost:8545网络上的此节点。

我该如何向本地主机网络上的帐户/地址发送以太币,以便这些帐户拥有足够的以太币来部署合约?

4个回答

16

您无法将以太币直接添加到本地硬帽钱包中,因为没有本地龙头能够向您的账户发送以太币。但您可以通过以下步骤连接到由Hardhat自动创建的预资金账户:

  1. 使用命令 npx hardhat node --show-accounts 以独立方式运行 Hardhat 网络,打印出被 Hardhat 自动创建的预资金账户及其对应的私钥。

  2. 在 MetaMask 中,将网络设置为 http://localhost:8545 并将链 ID 设置为与 Hardhat 网络链 ID(31337)相匹配,然后连接到此节点。

  3. 在 MetaMask 中,选择“导入账户”选项,然后粘贴来自本地 Hardhat 节点的其中一个账户的私钥,即可连接 MetaMask 到该账户以查看账户余额等信息。

  4. 在您的 Hardhat 配置文件中,将预资金账户中的一个或多个私钥包含到 localhost 网络的 account 属性中。

    localhost: {
      chainId: 31337, // Chain ID should match the hardhat network's chainid
      accounts: [`${PRE_FUNDED_PRIVATE_KEY_1}`, `${PRE_FUNDED_PRIVATE_KEY_2}`, `${OTHER_PRIVATE_KEY}`],
    }

然后您可以在部署脚本中访问这些帐户。例如,要从${PRE_FUNDED_PRIVATE_KEY_1}发送合同到${OTHER_PRIVATE_KEY}


1
你可以使用@nomicfoundation/hardhat-networks-helpers包。

@nomicfoundation/hardhat-network-helpers提供一个方便的JavaScript接口,用于Hardhat Network的JSON-RPC功能。

你甚至不需要存储私钥来进行资金管理,但是你需要一个私钥来部署或进行交易:
await helpers.setBalance(address, balance); 文档链接

1

0

配置你的 hardhat.config.js 文件

手动添加 chaindId:1337 以避免与 MetaMask 冲突。

e.g

require("@nomicfoundation/hardhat-toolbox");

// The next line is part of the sample project, you don't need it in your
// project. It imports a Hardhat task definition, that can be used for
// testing the frontend.
require("./tasks/faucet");

/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
  solidity: "0.8.9",
  networks: {
    hardhat: {
      chainId: 1337 // We set 1337 to make interacting with MetaMask simpler
    }
  }
};

启动本地开发区块链

$ npx hardhat node

将开发区块链账户连接到MetaMask

复制地址的私钥并导入到MetaMask中 将您的MetaMask连接到Hardhat区块链,网络为127.0.0.1:8545。

如果您还没有将Hardhat添加到MetaMask的网络列表中,请打开浏览器,单击狐狸图标,然后单击顶部中心下拉按钮,列出所有可用的网络,然后单击添加网络。

一个表格应该会弹出。在“网络名称”字段中输入“Hardhat”。在“新的RPC URL”字段中输入“http://127.0.0.1:8545”。在链ID中输入“1337”。然后单击保存。

最后

一旦您在Hardhat节点上拥有测试账户,您将拥有10000 ETH来部署您的合约。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接