Using Hardhat
Here is a detailed explanation of what Hardhat is and a step-by-step guide on how to deploy a TEP20 contract using hardhat:
What is Hardhat ?
Hardhat is a development environment for Ethereum and Ethereum-compatible blockchains. It provides a comprehensive toolset for smart contract development, testing, debugging, and deployment.
Step-by-Step Guide to Deploy Contract
Follow these steps to deploy a TEP20 contract using Hardhat:
1.Install Hardhat
Ensure you have Node.js and npm installed. Then, create a new directory for your project and initialize it with Hardhat:
mkdir TEP20TokenProject
cd TEP20TokenProject
npm init -y
npm install --save-dev hardhat
2.Initialize Hardhat Project
Run the following command to initialize a Hardhat project:
npx hardhat
Follow the prompts to create a new Hardhat project, selecting the appropriate options for your needs.
3.Write the Contract
Create a new file TEP20Token.sol
in the contracts
directory and add your TEP20 token code:
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract TEP20Token is ERC20, Ownable {
constructor()
ERC20("MyToken", "MTK")
Ownable(msg.sender)
{}
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
}
}
4.Write the Deployment Script
Create a new file deploy.js
in the scripts
directory to write your deployment script:
async function main() {
const [deployer] = await ethers.getSigners();
console.log("Deploying the contracts with the account:",await deployer.getAddress());
console.log("Account balance:", (await deployer.getBalance()).toString());
const TEP20Token = await ethers.getContractFactory("TEP20Token");
const token = await TEP20Token.deploy();
await token.deployed({ gasLimit: 6000000 });
console.log("TEP20Token address:", token.address);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
5.Configure Network
Make sure to install the suggested versions of the packages:
npm install --save-dev @nomiclabs/hardhat-ethers@^2.2.3 @nomiclabs/hardhat-waffle@^2.0.6 @openzeppelin/contracts@^5.0.2 @uniswap/v3-periphery@^1.0.1 bignumber.js@^9.1.2 dotenv@^16.4.5 ethereum-waffle@^4.0.10 [email protected] hardhat@^2.22.4
Create a `.env`
file in the root of your project directory to store your private key.
// In .env file
YOUR_PRIVATE_KEY = "YOUR_PRIVATE_KEY"
Update the hardhat.config.js
file to include network configurations:
require("@nomiclabs/hardhat-waffle");
/** @type import('hardhat/config').HardhatUserConfig */
const privateKey = process.env.YOUR_PRIVATE_KEY;;
module.exports = {
solidity: {
version: "0.8.20",
settings: {
optimizer:{
enabled:true,
runs:1000,
details:{yul:false},
}
}
},
networks: {
taral: {
chainId: 4442,
url: "https://devnet-rpc1.tanledger.com",
accounts: [privateKey],
},
},
};
6.Deploy the Contract
Run the deployment script with Hardhat:
npx hardhat run scripts/deploy.js --network tan
Congratulations!! You have successfully deployed your TEP20 token contract using Hardhat. This guide covered the entire process from setting up the Hardhat project to deploying the contract.
Last updated