Hardhat内置测试钱包地址与私钥能否通过指定包导出?
关于Hardhat内置测试钱包的获取方式
你提到的三个包 (
@nomiclabs/hardhat-ethers、@nomiclabs/hardhat-etherscan、@nomiclabs/hardhat-waffle) 并不提供直接导出内置测试钱包数组的功能,无法实现你期望的import { wallets }直接调用方式。要获取这些内置测试钱包的地址和私钥,无需手动声明,可通过Hardhat的运行时环境(HRE)自动获取:
在测试脚本或自定义任务中,可按以下方式实现:
const hre = require("hardhat"); async function getTestWallets() { // 获取对应签名者对象(包含地址) const signers = await hre.ethers.getSigners(); // 从Hardhat默认配置中获取内置私钥数组 const privateKeys = hre.network.config.accounts; // 组合成你需要的格式 const wallets = signers.map((signer, index) => ({ address: signer.address, privateKey: privateKeys[index] })); return wallets; } // 使用示例 getTestWallets().then(wallets => { console.log(wallets[0].address, wallets[0].privateKey); // 输出:0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 });注意事项:
- 仅当Hardhat使用默认网络配置(未自定义
accounts字段)时,hre.network.config.accounts才会返回这20个内置私钥数组。 - 这些私钥为公开已知信息,绝对不能用于主网或任何包含实际资金的网络,否则资金会直接丢失。
- 仅当Hardhat使用默认网络配置(未自定义
内容的提问来源于stack exchange,提问作者Tan Grumser
相关产品推荐
相关产品推荐

