Search
K

Deployment

Initial deployment of the MetaStreet v2 Pool contracts is proxied to allow for upgrades and bug fixes. However, deployment will ultimately migrate to immutable Pools, which is already supported in the codebase.

Pool Factory Deployment

The PoolFactory contract is deployed as an ERC1967 proxy, with a permissioned upgradeToAndCall() API to facilitate upgrades.
The PoolFactory will ultimately be owned by protocol governance.

Pool Deployment

The Pool is deployed as an ERC1967 BeaconProxy.
Proxied pools can be created with the PoolFactory createProxied() function, which accepts a Pool implementation beacon and initialization parameters.
Immutable pools can be created with the PoolFactory create() function, which accepts a Pool implementation contract and initialization parameters. This function creates an ERC1167 minimal clone proxy.
As the Pool contract stabilizes, deployment will ultimately switch from createProxied() to create() and use versioned Pool implementations for newly created Pools.

Collateral Liquidator Deployment

The EnglishAuctionCollateralLiquidator contract is deployed as an ERC1967 BeaconProxy.
This contract can be made immutable with the removal of the currently privileged collateral wrapper management.

Collateral Wrapper Deployment

The BundleCollateralWrapper contract is deployed as an ERC1967 TransparentUpgradeableProxy.
This contract can also be deployed immutably.