MapleProxyFactory
is a Maple protocol specific implementation of ProxyFactory, a set of generic contracts developed by Maple Labs to be able to deploy proxies from a factory and manage multiple implementations in a centrally managed contract.
This contract has the following capabilities:
- Add implementation contracts, tying them to a version.
- Enable/disable upgrade paths between specific versions of implementations, preventing any unauthorized upgrade paths from being used.
- Specify specialized "migrator" contracts to be used for certain upgrade paths, to perform custom storage manipulation operations during a given upgrade.
- Deploy proxy contracts with a given implementation.
- Perform upgrades from one implementation to another for a given proxy.
Contracts in this repo inherit and import code from:
Contracts inherit and import code in the following ways:
MapleProxyFactory
inheritsProxyFactory
for proxy factory logic.
Versions of dependencies can be checked with git submodule status
.
This project was built using Foundry. Refer to installation instructions here.
git clone [email protected]:maple-labs/maple-proxy-factory.git
cd maple-proxy-factory
forge install
- To run all tests:
forge test
- To run specific tests:
forge test --match <test_name>
Auditor | Report Link |
---|---|
Trail of Bits - LoanV2 | 2021-12-28 - Trail of Bits Report |
Code 4rena - LoanV2 | 2022-01-05 - C4 Report |
Trail of Bits - LoanV3 | 2022-04-12 - Trail of Bits Report |
Code 4rena - LoanV3 | 2022-04-20 - C4 Report |
Trail of Bits | 2022-08-24 - Trail of Bits Report |
Spearbit | 2022-10-17 - Spearbit Report |
Three Sigma | 2022-10-24 - Three Sigma Report |
For all information related to the ongoing bug bounty for these contracts run by Immunefi, please visit this site.
Maple Finance 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 V2 protocol, please refer to the GitHub wiki.