Deployment with Hardhat
Overview
Hardhat is a development tool for Ethereum, aiding in smart contract creation with features for compiling, testing, debugging, and deployment of Solidity code.
Clone the tutorial at https://github.com/MANTRA-Chain/omstead-hardhat-deployment-tutorial to get started.
Prerequisite
Install the dependencies
npm install --save-dev hardhat
npm install --save-dev @nomicfoundation/hardhat-toolboxUsing Hardhat Ignition
In your Hardhat project, add Remote Network to
hardhat.config.jsfor MANTRA Omstead (COSMOS+EVM)
require("@nomicfoundation/hardhat-toolbox");
const { vars } = require("hardhat/config");
const TEST_PRIVATE_KEY = vars.get("TEST_PRIVATE_KEY");
/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
solidity: "0.8.28",
networks: {
omstead: {
url: `https://evm.dukong.mantrachain.io/`,
chainId: 5887,
accounts: [TEST_PRIVATE_KEY]
},
}
};Example on how to configure variables for user-specific values in Hardhat:
npx hardhat vars set TEST_PRIVATE_KEY
✔ Enter value: ********************************Compile
npx hardhat compileSet Up Ignition Modules:
(We have created a sample module for you in the tutorial repository)
Create a directory named
ignitionin the project's root directory.Inside the
ignitiondirectory, create another directory namedmodules.Within the
modulesdirectory, create a<YourFile>.jsfile.
Example directory structure:
./ignition/modules/<YourFile>.jsDeploy
To tell Hardhat to connect to a specific Ethereum network, you can use the --network parameter when running any task, like this:
npx hardhat ignition deploy ./ignition/modules/Token.js --network omsteadExample result from running the above command
$ npx hardhat ignition deploy ./ignition/modules/USDC.js --network omstead
✔ Confirm deploy to network omstead (5887)? … yes
Hardhat Ignition 🚀
Deploying [ TokenModule ]
Batch #1
Executed TokenModule#Token
[ TokenModule ] successfully deployed 🚀
TokenModule#Token - <0xHash of the deployed contract>Last updated