Hardhat
Деплой смарт-контракта с использованием Hardhat
Что такое Hardhat?
Hardhat - это среда разработки для Ethereum, которая помогает разработчикам управлять и автоматизировать общие задачи, связанные с созданием смарт-контрактов и децентрализованных приложений. Она может напрямую взаимодействовать с Ethereum API компании Caldera, позволяя развертывать смарт-контракты в сети Caldera.
Кроме того, Hardhat - это комплексный набор инструментов для создания программного обеспечения на базе Ethereum, включающий различные компоненты, которые помогают редактировать, компилировать, отлаживать и развертывать смарт-контракты и децентрализованные приложения. Все эти компоненты работают вместе, создавая полноценную среду разработки.
Создание проекта Hardhat
Создайте директорию для своего проекта:
mkdir hardhat && cd hardhat
Инициализируйте проект, для чего создавайте файл
package.json
npm init -y
Установите Hardhat
npm install hardhat
Создайте проект
npx hardhat
Создайте пустой
hardhat.config.js
и установите плагин Ethers для использования Ethers.js библиотеки для взаимодействия с сетью.npm install @nomiclabs/hardhat-ethers ethers
Создание своего смарт-контракта
Создайте директорию
contracts
mkdir contracts && cd contracts
Создайте файл
your_contract.sol
в директорииcontracts
touch your_contract.sol
Создание конфигурационного файла
Измените конфигурационный файл Hardhat и создайте безопасный файл для хранения приватного ключа в нем.
Создайте файл
secrets.json
для хранения приватного ключаtouch secrets.json
Добавьте ваш приватный ключ в
secrets.json
{ "privateKey": "YOUR-PRIVATE-KEY-HERE" }
Добавьте файл к своему проекту
.gitignore
, и никогда не раскрывайте свой закрытый ключ.Измените файл
hardhat.config.js
Импортируйте плагин Ethers.js
Импортируйте файл
secrets.json
Внутрь
module.exports
добавьте конфигурации сети Caldera
hardhat.config.js
require('@nomiclabs/hardhat-ethers'); const { privateKey } = require('./secrets.json'); module.exports = { solidity: "0.8.1", defaultNetwork: "rinkeby", networks: { rinkeby: { url: "https://eth-rinkeby.alchemyapi.io/v2/123abc123abc123abc123abc123abcde", accounts: [privateKey] }, caldera: { url: "RPC URL", // Insert your RPC URL Here } }, }
Деплой смарт-контракта
Скомпилируйте контракт
npx hardhat compile
Создайте новую директорию для скрипта и назовите ее scripts и добавьте новый файл с названием
deploy.js
mkdir scripts && cd scripts touch deploy.js
Создайте скрипт деплоинга, например belowscripts/deploy.js
async function main() { // 1. Get the contract to deploy const Your_Contract = await ethers.getContractFactory('your_contract'); console.log('Deploying Your_Contract...'); // 2. Instantiating a new smart contract const your_contract = await Your_Contract.deploy(); // 3. Waiting for the deployment to resolve await your_contract.deployed(); // 4. Use the contract instance to get the contract address console.log('Your_Contract deployed to:', your_contract.address); } main() .then(() => process.exit(0)) .catch((error) => { console.error(error); process.exit(1); });
Задеплойте
your_contract.sol
используя команду нижеnpx hardhat run scripts/deploy.js --network caldera
Last updated