ERC20BaseMaxSupply inherits from Thirdweb's ERC20Base with adding constraint maximum total supply. We can retrieve the maxSupply
or remainingSupply
by invoking methods with the same name. Ensure we get an error when trying to mint exceed the limit
The following tools need to be installed:
Capability | Module |
---|---|
Dependence Framework | @thirdweb-dev/contracts collection of smart contracts deployable via the thirdweb SDK, dashboard and CLI |
Build Tools | thirdweb CLI provides tools to create, build, and deploy projects using thirdweb tools and infrastructure. Using the CLI, you can create new projects with the SDK configured, build, publish and deploy smart contracts, generate types while developing, upload files to IPFS, and more, hardhat-javascript-starter thirdweb contracts starter project for Hardhat & TypeScript |
Coding Standard | solhint is an open-source project to provide a linting utility for Solidity code. |
Useful Links | solidity cheatsheet quick reference solidity syntax, Introduction to Smart Contracts understand basic knowledge, Structure of a Contract |
npm run lint
# or
yarn lint
After any changes to the contract, run:
npm run build
# or
yarn build
to compile your contracts. This will also detect the Contracts Extensions Docs detected on your contract.
When you're ready to deploy your contracts, just run one of the following command to deploy you're contracts:
- via thirdweb cli
npm run deploy
## or
yarn deploy
- via hardhat
#Replace ... with your value
ADMIN_WALLET=... NAME=... SYMBOL=... MAX_SUPPLY=... NODE_PROVIDER_URL=... DEPLOYER_PRIVATE_KEY=... npm run deploy:hardhat
## or
ADMIN_WALLET=... NAME=... SYMBOL=... MAX_SUPPLY=... NODE_PROVIDER_URL=... DEPLOYER_PRIVATE_KEY=... yarn deploy:hardhat
If you want to publish a version of your contracts publicly, you can use one of the followings command:
npm run publish
# or
yarn publish
- Follow Solidity style-guide
- Reuse Common Patterns
- Use readable commit message karma
/‾‾‾‾‾‾‾‾
🔔 < Ring! Please use semantic commit messages
\________
<type>(<scope>): ([issue number]) <subject>
│ │ | │
| | | └─> subject in present tense. Not capitalized. No period at the end.
| | |
│ │ └─> Issue number (optional): Jira Ticket or Issue number
│ │
│ └─> Scope (optional): eg. Articles, Profile, Core
│
└─> Type: chore, docs, feat, fix, refactor, style, ci, perf, build, or test.