我正在尝试在 Goerli 上部署合约,但我不断收到错误消息
Error HH100: Network goerli doesn't exist
这是我的
hardhat.config.ts
require("dotenv").config();
import { task } from 'hardhat/config';
import '@nomiclabs/hardhat-waffle';
import '@typechain/hardhat'
import '@nomiclabs/hardhat-ethers';
import { HardhatUserConfig } from "hardhat/config";
const PrivateKey = "b427...";
const config: HardhatUserConfig = {
solidity: {
version: '0.8.0',
},
networks: {
goerli: {
chainId: 5,
url: "https://goerli.infura.io/v3/309820d3955640ec9cda472d998479ef",
accounts: [PrivateKey],
},
},
};
// This is a sample Hardhat task. To learn how to create your own go to
// https://hardhat.org/guides/create-task.html
task('accounts', 'Prints the list of accounts', async (taskArgs, hre) => {
const accounts = await hre.ethers.getSigners();
for (const account of accounts) {
console.log(account.address);
}
});
// You need to export an object to set up your config
// Go to https://hardhat.org/config/ to learn more
export default {
solidity: '0.8.0',
};
谢谢!
我不知道我应该补充什么,但请问,我会发布更多信息。
我两天前有这个错误。我可以通过这一步解决它。
npm 初始化
npm 安装 --save-dev hardhat @nomiclabs/hardhat-ethers“ethers@^5.0.0”
创建一个空的 hardhat.config.js
现在你的项目是安装安全帽。并创建将备份文件夹和 solidity 代码中的所有文件夹复制到您的项目文件夹但是如果您有工件和缓存文件夹,请不要复制它。
在 hardhar.config.js 文件中,将这段代码粘贴到顶部。
require('@nomiclabs/hardhat-ethers')
const API_URL = "Your testnet rpc link";
const PRIVATE_KEY = "Your Private Accout address"
const PUBLIC_KEY = "Your Account Address";
并在 module.module 中导出代码。
module.exports = {
solidity: "0.8.0",
defaultNetwork: "yourtestnetname",
networks: {
hardhat:{},
yourtestnetname:{
url: API_URL,
accounts: [`0x${PRIVATE_KEY}`]
}
}
};
检查 0x$
{}
以确保它在您的 PRIVATE_KEY 中。然后使用这个命令
npx 安全帽编译
如果编译成功文件夹工件和缓存将在您的项目中生成并生成智能合约代码。并在备份 deploy.js 文件中复制代码。
现在使用此命令部署.js 文件
npx hardhat run scripts/deploy.js --network yournamenetwork
如果编译成功你的终端会显示你的合约地址
您可以在此处查看此视频教程。
或者我的 git Repo smart_contract 文件夹例如
[`0x${PrivateKey}`]
检查
0x${}
以确保它在您的PRIVATE_KEY
中。
你导入了错误的东西。应该是:
import type { HardhatUserConfig } from "hardhat/types";
你不应该给我一个名为
的文件部署.js
但是如果你通过这个文档找到了正确的代码Ethereum.org。
一些关于js的例子:
你的 deploy.js 文件应该是
async function main() {
const [deployer] = await ethers.getSigners();
console.log("Deploying contracts with the account:", deployer.address);
console.log("Account balance:", (await deployer.getBalance()).toString());
const Token = await ethers.getContractFactory("Transaction");
const token = await Token.deploy();
console.log("Token address:", token.address);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
你的 hardhat.config.js 文件应该是
require('@nomiclabs/hardhat-waffle')
module.exports = {
solidity : 'version',
networks : {
goerli : {
url : 'alchemy_url',
accounts : ['private_key']
}
}
}
甚至我也有同样的错误。 1.首先重新初始化进程。 纱线初始化或 npm 初始化 2.安装程序运行所需的所有依赖 yarn add --dev 安全帽 3.然后转到 hardhatconfig.js ,在导入部分粘贴此代码
require('@nomiclabs/hardhat-ethers')
const API_URL = "Your testnet rpc link";// from your testet provider
const PRIVATE_KEY = "Your Private Accout address"
const PUBLIC_KEY = "Your Account Address";
以下:-
solidity
module.exports = {
solidity: "0.8.0",
defaultNetwork: "yourtestnetname",
networks: {
hardhat:{},
sepolia:{
url: API_URL,
accounts: [`0x${PRIVATE_KEY}`]
}
}
};
问题是关于:
默认网络:“您的测试网络名称”,
但是,不支持goearli
您可以使用多边形:孟买测试网