Intermediate

 

How to deploy ERC20 Contract using truffle

This tutorial provides step-by-step instructions for deploying an ERC20 token contract using Truffle and Hardhat on the Cronos network. It begins with instructions for setting up and modifying the required files, including the .env file and the migration script. It also includes information on setting the endpoints for the Cronos network in the configuration file. Finally, it provides the commands for deploying the contract and obtaining the contract address from the console, which can then be used in Metamask to view the correct balance. The tutorial includes separate sections for deploying the ERC20 contract using Truffle and using Hardhat.

Truffle: Deploy ERC20 Contract

Step 1. Enter smart-contract-example/truffle folder

$ cd cronos-smart-contract-example/truffle

 

Step 2. Run npm install inside the folder

$ npm install

 

Step 3. Make a copy of .env.example to .env

$ cp .env.example .env

 

 

Step 4. Modify .env and fill ONE of the field

 
MNEMONIC=goose easy ivory ...
PRIVATE_KEY=XXXXXXX

 

Step 5. Review Migration Script at migrations/2_deploy_cronos_token.js

const CronosToken = artifacts.require("CronosToken");

module.exports = function (deployer) {
    deployer.deploy(CronosToken, "Cronos Token", "CRT", "1000000000000000000000000");
};

 

Step 6. Endpoints setting

By default, the script will be using your local host "127.0.0.1" – If you are not running a localhost, you may leverage the public endpoint https://evm-t3.cronos.org/ by making changes to networks in truffle-config.js, for example:

networks: {
  development: {
    provider: new HDWalletProvider(getHDWallet(), "http://127.0.0.1:8545"), // TODO
    network_id: "*",       // Any network (default: none)
  },
  testnet: {
    provider: new HDWalletProvider(getHDWallet(), "https://evm-t3.cronos.org/"), // TODO
    network_id: "*",
    skipDryRun: true
  },
},

 

Step 7. Deploy Contract

npm run deploy-contract-cronos

 

Step 8. Obtain Contract address from console and input to Metamask

Correct balance will be shown on Metamask page

 

Hardhat: Deploy ERC20 Contract

Step 1. Enter smart-contract-example/hardhat folder

$ cd smart-contract-example/hardhat

 

Step 2. Run npm install inside the folder

 
$ npm install

 

Step 3. Make a copy of .env.example to .env

$ cp .env.example .env

 

Step 4. Modify .env and fill ONE of the field

MNEMONIC=goose easy ivory ...
PRIVATE_KEY=XXXXXXX

Step 5. Review Migration Script at scripts/deploy-cronos-token.js

async function main() {
    const CronosToken = await hre.ethers.getContractFactory("CronosToken");
    const cronosToken = await CronosToken.deploy("Cronos Token", "CRT", "1000000000000000000000000");

    await cronosToken.deployed();

    console.log("CronosToken deployed to:", cronosToken.address);
}

 

Step 6. Endpoints setting

By default, the script will be using your local host "127.0.0.1" – If you are not running a localhost, you may leverage the public endpoint https://evm-t3.cronos.org/ by making changes to networks in hardhat.config.js, for example:

networks: {
  development: {
    url: "http://localhost:8545",
    accounts: getHDWallet(),
   },
  testnet: {
    url: "https://evm-t3.cronos.org/",
    accounts: getHDWallet(),
  },
},

 

Step 7. Deploy Contract

 
npm run deploy-contract-cronos

 

Step 8. Obtain Contract address from console and input to Metamask

Correct balance will be shown on Metamask page

CronosToken deployed to: 0x5F803c894a0A16B46fe5982fB5D89eb334eAF68