Hardhat
Деплой смарт-контракта с использованием Hardhat
Что такое Hardhat?
Hardhat - это среда разработки для Ethereum, которая помогает разработчикам управлять и автоматизировать общие задачи, связанные с созданием смарт-контрактов и децентрализованных приложений. Она может напрямую взаимодействовать с Ethereum API компании Caldera, позволяя развертывать смарт-контракты в сети Caldera.
Кроме того, Hardhat - это комплексный набор инструментов для создания программного обеспечения на базе Ethereum, включающий различные компоненты, которые помогают редактировать, компилировать, отлаживать и развертывать смарт-контракты и децентрализованные приложения. Все эти компоненты работают вместе, создавая полноценную среду разработки.
Создание проекта Hardhat
Создайте директорию для своего проекта:
mkdir hardhat && cd hardhatИнициализируйте проект, для чего создавайте файл
package.jsonnpm init -yУстановите Hardhat
npm install hardhatСоздайте проект
npx hardhatСоздайте пустой
hardhat.config.jsи установите плагин Ethers для использования Ethers.js библиотеки для взаимодействия с сетью.npm install @nomiclabs/hardhat-ethers ethers
Создание своего смарт-контракта
Создайте директорию
contractsmkdir contracts && cd contractsСоздайте файл
your_contract.solв директорииcontractstouch 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.jsmkdir 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