Hardhat
What is Hardhat?
Hardhat is a development environment for Ethereum that helps developers manage and automate the common tasks involved in building smart contracts and decentralized applications. It can directly interact with Caldera's Ethereum API, allowing for the deployment of smart contracts into the Caldera network.Additionally, Hardhat is a comprehensive set of tools for creating Ethereum-based software, which includes various components that aid in editing, compiling, debugging, and deploying smart contracts and decentralized applications. All of these components work together to create a complete development environment.
Creating a Hardhat Project
Create a directory for your project:
Copy
mkdir hardhat && cd hardhat
Initialize the project, which will create a
package.json
file
Copy
npm init -y
Install Hardhat
Copy
npm install hardhat
Create a project
Copy
npx hardhat
Create an empty
hardhat.config.js
and install the Ethers plugin to use the Ethers.js library to interact with the network.
Copy
npm install @nomiclabs/hardhat-ethers ethers
Creating Your Smart Contract
Create a
contracts
directory
Copy
mkdir contracts && cd contracts
Create
your_contract.sol
file incontracts
directory
Copy
touch your_contract.sol
Creating Your Configuration File
Modify the Hardhat configuration file and create a secure file to store your private key in.
Create a
secrets.json
file to store your private key
Copy
touch secrets.json
Add your private key to
secrets.json
Copy
{ "privateKey": "YOUR-PRIVATE-KEY-HERE"}
Add the file to your project's
.gitignore
, and never reveal your private key.Modify the
hardhat.config.js
file
Import the Ethers.js plugin
Import the
secrets.json
fileInside the
module.exports
add the Caldera network configuration
Copy
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] }, Meta Yield: { url: "https://rpc.Metachain.io/http", // RPC URL Here chainId: 10241024 , // ChainID Here }},}
Deploying Your Smart Contract
Compile the contract
Copy
npx hardhat compilejs
Create a new directory for the script and name it scripts and add a new file to it called
deploy.js
Copy
mkdir scripts && cd scriptstouch deploy.js
Create a deployment script, like the one below
Copy
async function main() {// 1. Get the contract to deployconst Your_Contract = await ethers.getContractFactory('your_contract');console.log('Deploying Your_Contract...'); // 2. Instantiating a new smart contractconst your_contract = await Your_Contract.deploy(); // 3. Waiting for the deployment to resolveawait your_contract.deployed(); // 4. Use the contract instance to get the contract addressconsole.log('Your_Contract deployed to:', your_contract.address);} main().then(() => process.exit(0)).catch((error) => { console.error(error); process.exit(1);});
Deploy
your_contract.sol
using the command below
Copy
npx hardhat run scripts/deploy.js --network Meta Yield
Last updated