我已经将Metamask连接到使用Hardhat创建的节点。在将链ID设置为与Hardhat网络链ID(31337)匹配后,我可以在Metamask上连接到http://localhost:8545
网络上的此节点。
我该如何向本地主机网络上的帐户/地址发送以太币,以便这些帐户拥有足够的以太币来部署合约?
我已经将Metamask连接到使用Hardhat创建的节点。在将链ID设置为与Hardhat网络链ID(31337)匹配后,我可以在Metamask上连接到http://localhost:8545
网络上的此节点。
我该如何向本地主机网络上的帐户/地址发送以太币,以便这些帐户拥有足够的以太币来部署合约?
您无法将以太币直接添加到本地硬帽钱包中,因为没有本地龙头能够向您的账户发送以太币。但您可以通过以下步骤连接到由Hardhat自动创建的预资金账户:
使用命令 npx hardhat node --show-accounts
以独立方式运行 Hardhat 网络,打印出被 Hardhat 自动创建的预资金账户及其对应的私钥。
在 MetaMask 中,将网络设置为 http://localhost:8545
并将链 ID 设置为与 Hardhat 网络链 ID(31337)相匹配,然后连接到此节点。
在 MetaMask 中,选择“导入账户”选项,然后粘贴来自本地 Hardhat 节点的其中一个账户的私钥,即可连接 MetaMask 到该账户以查看账户余额等信息。
在您的 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}
@nomicfoundation/hardhat-networks-helpers
包。
你甚至不需要存储私钥来进行资金管理,但是你需要一个私钥来部署或进行交易:@nomicfoundation/hardhat-network-helpers提供一个方便的JavaScript接口,用于Hardhat Network的JSON-RPC功能。
await helpers.setBalance(address, balance);
文档链接
networks: {
hardhat: {
accounts: [
{
privateKey: 'your-dev-account-private-key',
balance: '10000000000000000000000'
}
];
}
}
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连接到Hardhat区块链,网络为127.0.0.1:8545。
如果您还没有将Hardhat添加到MetaMask的网络列表中,请打开浏览器,单击狐狸图标,然后单击顶部中心下拉按钮,列出所有可用的网络,然后单击添加网络。
一个表格应该会弹出。在“网络名称”字段中输入“Hardhat”。在“新的RPC URL”字段中输入“http://127.0.0.1:8545”。在链ID中输入“1337”。然后单击保存。
一旦您在Hardhat节点上拥有测试账户,您将拥有10000 ETH来部署您的合约。