▶️Deploying your contracts

The example is based on Hardhat framework

Prerequisite

Please follow Hardhat guide here

Example: To create a Fixed-cap Asset

contracts/Token.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol";

contract MyToken is ERC20Capped {
    constructor(uint256 _cap) ERC20("MyToken", "XXX") ERC20Capped(_cap) {
        ERC20._mint(msg.sender, _cap);
    }
}

Add network following network config to hardhat.config.ts

const config: HardhatUserConfig = {
    ...
    networks: {
        rei: {
            url: 'https://rei-rpc.moonrhythm.io',
            chainId: 55555,
        },
        reitest: {
            url: 'https://rei-testnet-rpc.moonrhythm.io',
            chainId: 55556,
        },
    ...
    solidity: {
        compilers: [
            {
                version: '0.8.9',
                settings: {
                    optimizer: {
                        enabled: true,
                        runs: 1000000,
                    },
                },
            },
        ],
    },
    ...
}

Compile your code using

Deploy script

Deploy to testnet

Deploy to mainnet

Verify Contract

Now you will find your deployed contract on rei scan

  1. Go to code tab and select Verify and Publish

2. Select Via flattened source code

3. Fill in the following

To get flattened code

Make sure that you do not have duplicate licenses.

Remove duplicate licenses and leave the one on top

Ex. // SPDX-License-Identifier: MIT

Last updated

Was this helpful?