Skip to content

maple-labs/maple-proxy-factory

Repository files navigation

Maple Proxy Factory

Foundry Forge CI License: AGPL v3

Overview

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:

  1. Add implementation contracts, tying them to a version.
  2. Enable/disable upgrade paths between specific versions of implementations, preventing any unauthorized upgrade paths from being used.
  3. Specify specialized "migrator" contracts to be used for certain upgrade paths, to perform custom storage manipulation operations during a given upgrade.
  4. Deploy proxy contracts with a given implementation.
  5. Perform upgrades from one implementation to another for a given proxy.

Dependencies/Inheritance

Contracts in this repo inherit and import code from:

Contracts inherit and import code in the following ways:

  • MapleProxyFactory inherits ProxyFactory for proxy factory logic.

Versions of dependencies can be checked with git submodule status.

Setup

This project was built using Foundry. Refer to installation instructions here.

git clone git@github.com:maple-labs/maple-proxy-factory.git
cd maple-proxy-factory
forge install

Running Tests

  • To run all tests: forge test
  • To run specific tests: forge test --match <test_name>

Audit Reports

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

Bug Bounty

For all information related to the ongoing bug bounty for these contracts run by Immunefi, please visit this site.

About Maple

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.