10Y 以太坊 ethereum hardhat : 部署到网络

介绍
部署到实时网络
部署到远程网络
hardhat Tutorials , hardhat 教程
Contact 联系方式

• 介绍

一旦您准备好与其他人共享您的 dApp,您可能希望将其部署到实时网络。这样,其他人就可以访问不在您系统上本地运行的实例。

“主网”以太坊网络处理真钱,但有单独的“测试网”网络不处理。这些测试网提供了共享的暂存环境,可以很好地模仿现实世界的场景,而不会危及真金白银,并且
以太坊有几个
,如歌尔力和塞波利亚。我们建议您将合约部署到Goerli测试网。

在软件层面,部署到测试网与部署到主网相同。唯一的区别是您连接到哪个网络。让我们看看使用 ethers.js 部署合约的代码是什么样的。

使用的主要概念是Signer,我们在ContractFactoryContract
测试
部分。与测试相比,没有什么新的事情需要做,因为当你测试你的合约时,你实际上是在对你的开发网络进行部署。这使得代码非常相似,甚至相同。

• 部署到实时网络

让我们在项目根目录中创建一个新目录 scripts,并将以下内容粘贴到该目录中的 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("Token");
  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 连接到特定的以太坊网络,您可以在运行任何任务时使用 --network 参数,如下所示:

npx hardhat run scripts/deploy.js --network <network-name>

使用我们当前的配置,在没有 --network 参数的情况下运行它会导致代码针对 Hardhat Network 的嵌入式实例运行。在这种情况下,当 Hardhat 完成运行时,部署实际上会丢失,但测试我们的部署代码是否有效仍然很有用:

$ npx hardhat run scripts/deploy.js
Deploying contracts with the account: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
Account balance: 10000000000000000000000
Token address: 0x5FbDB2315678afecb367f032d93F642f64180aa3

• 部署到远程网络

要部署到远程网络,例如主网或任何测试网,您需要在您的 hardhat.config.js 文件中添加一个 network 条目。我们将在此示例中使用 Goerli,但您可以类似地添加任何网络:

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

// Go to https://www.alchemyapi.io, sign up, create
// a new App in its dashboard, and replace "KEY" with its key
const ALCHEMY_API_KEY = "KEY";

// Replace this private key with your Goerli account private key
// To export your private key from Metamask, open Metamask and
// go to Account Details > Export Private Key
// Beware: NEVER put real Ether into testing accounts
const GOERLI_PRIVATE_KEY = "YOUR GOERLI PRIVATE KEY";

module.exports = {
  solidity: "0.8.9",
  networks: {
    goerli: {
      url: `https://eth-goerli.alchemyapi.io/v2/${ALCHEMY_API_KEY}`,
      accounts: [GOERLI_PRIVATE_KEY]
    }
  }
};

我们正在使用 Alchemy,但将 url 指向任何以太坊节点或网关都可以。去拿你的“ALCHEMY_API_KEY”然后回来。

要在 Goerli 上部署,您需要将一些 Goerli ether 发送到将要进行部署的地址。您可以从水龙头中获取测试网以太币,这是一种免费分发测试以太币的服务。 Goerli 有以下几点:

在进行交易之前,您必须将 Metamask 的网络更改为 Goerli。

最后,运行:

npx hardhat run scripts/deploy.js --network goerli

如果一切顺利,您应该会看到已部署的合约地址。

• hardhat Tutorials , hardhat 教程

CN 中文 Github hardhat 教程 : github.com/565ee/hardhat_CN
CN 中文 CSDN hardhat 教程 : blog.csdn.net/wx468116118
EN 英文 Github hardhat Tutorials : github.com/565ee/hardhat_EN

• Contact 联系方式

Homepage : 565.ee
微信公众号 : wx468116118
微信 QQ : 468116118
GitHub : github.com/565ee
CSDN : blog.csdn.net/wx468116118
Email : [email protected]

猜你喜欢

转载自blog.csdn.net/wx468116118/article/details/125902953