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_transfer
push
pull
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 [email protected]: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.