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-tutorialarrow-up-right to get started.

Prerequisite

Install the dependencies

npm install --save-dev hardhat
npm install --save-dev @nomicfoundation/hardhat-toolbox

Using Hardhat Ignition

  1. In your Hardhat project, add Remote Network to hardhat.config.js for 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:

  1. Compile

  1. Set Up Ignition Modules:

(We have created a sample module for you in the tutorial repository)

  • Create a directory named ignition in the project's root directory.

  • Inside the ignition directory, create another directory named modules.

  • Within the modules directory, create a <YourFile>.js file.

Example directory structure:

  1. Deploy

To tell Hardhat to connect to a specific Ethereum network, you can use the --network parameter when running any task, like this:

Example result from running the above command

Last updated