10Z ethereum hardhat : Развертывание в сети

— введение

— Развертывание в живой сети

— Развертывание в удаленных сетях

— hardhat Tutorials , hardhat 教程

— Контакт 联系方式

— введение

Когда вы будете готовы поделиться своим dApp с другими людьми, вы, возможно, захотите развернуть его в живой сети. Таким образом, другие смогут получить доступ к экземпляру, который не запущен локально на вашей системе.

Сеть «mainnet» Ethereum работает с реальными деньгами, но существуют отдельные сети «testnet», которые этого не делают. Эти тестовые сети предоставляют общие среды, которые хорошо имитируют сценарий реального мира, не ставя на карту реальные деньги, и у Ethereum их несколько, например Goerli и Sepolia. Мы рекомендуем вам развертывать свои контракты в тестовой сети Goerli.

На программном уровне развертывание в тестовой сети — это то же самое, что и развертывание в mainnet. Разница лишь в том, к какой сети вы подключаетесь. Давайте рассмотрим, как будет выглядеть код для развертывания ваших контрактов с помощью ethers.js.

Основные используемые понятия — это Signer, ContractFactory и Contract, о которых мы рассказывали в разделе тестирования. Здесь нет ничего нового по сравнению с тестированием, учитывая, что при тестировании контрактов вы фактически выполняете развертывание в сети разработки. Это делает код очень похожим или даже одинаковым.

— Развертывание в реальной сети

Давайте создадим новый каталог 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 на подключение к определенной сети Ethereum, вы можете использовать параметр --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
Войти в полноэкранный режим Выход из полноэкранного режима

— Развертывание в удаленных сетях

Для развертывания в удаленной сети, такой как mainnet или любой testnet, вам нужно добавить запись network в файл hardhat.config.js. В этом примере мы будем использовать 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 на любой узел или шлюз Ethereum будет работать. Возьмите свой ALCHEMY_API_KEY и возвращайтесь.

Для развертывания на Goerli вам нужно отправить немного эфира Goerli на адрес, который будет выполнять развертывание. Вы можете получить эфир testnet из крана — сервиса, который бесплатно распространяет test-ETH. Вот некоторые из них для Goerli:

  • Кран Chainlink
  • Кран алхимии Гёрли

Перед проведением транзакций вам придется изменить сеть 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

— Контакт 联系方式

Домашняя страница : 565.ee

GitHub : github.com/565ee

Электронная почта : 565.eee@gmail.com

Facebook : facebook.com/565.ee

Twitter : twitter.com/565_eee

Telegram : t.me/ee_565

Оцените статью
devanswers.ru
Добавить комментарий