ERC20Generator
This package is used here https://ikalas.com/app/create-token-on-bsc
Installation
-
This is a Node.js module available through the npm registry. Before installing, download and install Node.js. If this is a brand new project, make sure to create a
package.json
first with thenpm init
command. -
This module need to be in a hardhat project.
create hardhat project with
npm install hardhat --save-dev
npx hardhat
- install the module using
npm install @ikalasdev/erc20generator
check soldity compiler version is >= 0.8.0 in hardhat.config.js
add require('@nomiclabs/hardhat-waffle') in your hardhat.config.js if you don't have it
Network
exemple of hardhat config for binance testnet:
module.exports = {
solidity: "0.8.4",
networks: {
bsc: {
url: `https://data-seed-prebsc-1-s1.binance.org:8545/`,
accounts: [`${YOURPRIVATE_KEY}`]
}
}
};
- you can specify the network to use with the
--network
flag.
npx hardhat run .\mySuperScript.js --network mySuperBlockchain
- or you can specify the network rpc and the private key in the fonction parameters
Verification
you can specify in the parameters a etherscan api key to verify the contract and publish the source code on etherscan.io
- work with polygonscan.com, bscscan.com... and their testnet.
Examples
//import the module
const erc20Generator = require('@ikalasdev/erc20generator');
//specify the contract properties
const parameters = {
name: name,
symbol: symbol,
initialSupply: initialSupply,
decimal: 18,
//optional parameters
options: ["burnable", "snapshots", "mintable", "pausable", "permit", "vote", "flashminting"],
//if you have the holdersfee option you need to specify the fee
feeForTransaction: "1",
//you can add a tax to your transactions
tax: {
taxForTransaction: "1", // 0.01% of the transaction will be charged
address: addr1.address // the address that will receive the tax
},
//you can specify the network name if you decare it in the hardhat.config.js
network: "smartchain",
// OR you can specify the the private key and (rpc or chainId)
privateKey: YOUR_PRIVATE_KEY,
rpc: "https://data-seed-prebsc-1-s1.binance.org:8545/",
chainId: "0x38" // hex value must start with 0x or decimal value
futurOwner: "0x324..",
//you can specify the etherscan api key
etherscanApiKey: "YOUR_API_KEY"
};
generate new Contract to deploy
//contract contains all the information to deploy the contract (bytecode, abi, ...)
const contract = await erc20Generator.createERC20Contract(parameters);
//for example see https://docs.ethers.io/v4/api-contract.html to deploy it
OR
directly deploy new erc20 contract with hardhat
//if you don't specify the privateKey and the rpc hardhat will use the default network in your hardhat.config.js
const token = await erc20Generator.deployERC20Contract(parameters);
Error
- if you have a compilation error try to execute
npx hardhat clean
Logs
the lib will log the events in the file erc20generator.log
Want to see more ? Check the test code in the repository