This repository holds Mean's swapping infra. We can divide it into 4 different components:
This contract will function as a registry for all allowed swappers and allowance targets. Since we will allow swappers to take arbitrary calls and approve arbitrary addresses, we need to have an allowlist. If we didn't, then we could easily get attacked.
This abstract contract will give contracts that implement it swapping capabilities. It will make integration with swappers much easier, as it will handle validations, approvals, execution and transfers.
These are different versions of the Swap Adapter, built for different scenarios. Other contracts can simply implement these extensions and they will support swapping out of the box.
This contract implements all swap extensions, so it can be used by EOAs or other contracts that do not have the extensions.
Oracles has been audited by Omniscia and can be find here.
The package will contain:
- Artifacts can be found under
@mean-finance/swappers/artifacts
- Typescript smart contract typings under
@mean-finance/swappers/typechained
Everything that you need to know as a developer on how to use all repository smart contracts can be found in the documented interfaces.
To install with Hardhat or Truffle:
yarn add @mean-finance/swappers
npm install @mean-finance/swappers
Contracts are deployed at the same address on all available networks via the deterministic contract factory
Available networks: Optimism, Arbitrum One, Polygon.
- SwapperRegistry:
0xd6C8fd8100252F0a314407C26e7A47286F7Fda24
- SwapProxy:
0xca341351FA4D98a3EE7eb688796B796603128d85