Basic ERC-20 contract designed to be inherited and extended. Leveraging native overflow checks in solc 0.8 to simplify ERC-20 implementation. It should be noted that this ERC-20 implementation does not include some functionality that is commonly used in other tokens, such as:
address(0)checks on_transferpushpull
This was intentional, as this ERC-20 was intended to have the minimum functionality necessary, allowing for maximum extendability and customizability.
This token implementation includes ERC-2612 permit capability as well as increaseAllowance and decreaseAllowance functions.
This project was built using Foundry. Refer to installation instructions here.
git clone git@github.com:maple-labs/erc20.git
cd erc20
forge install- To run all tests:
forge test - To run specific tests:
forge test --match <test_name>
./scripts/test.sh is used to enable Foundry profile usage with the -p flag. Profiles are used to specify the number of fuzz runs.
These contracts were inspired by and/or directly modified from the following sources:
| Auditor | Report link |
|---|---|
| Trail of Bits | ToB Report - April 12, 2022 |
| Code 4rena | C4 Report - April 20, 2022 |
For all information related to the ongoing bug bounty for these contracts run by Immunefi, please visit this site.
Maple is a decentralized corporate credit market. Maple provides capital to institutional borrowers through globally accessible fixed-income yield opportunities.
For all technical documentation related to the Maple protocol, please refer to the GitHub wiki.
