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:
npm run deploy
# or
yarn deploy
If you want to publish a version of your contracts publicly, you can use one of the followings command:
# --access public: publishing scoped public package as default npm account. Remove option [--access public] for private
npm run publish --access public
# or
yarn publish --access public
- 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.