MORE
  • Introduction
  • MORE Vaults
    • Vaults Framework
      • Diamond Standard (EIP-2535)
      • Component Interactions
      • Upgrade & Governance Flow
    • Core Protocol Components
      • Factory
      • Core Facets
      • Registries
      • Internal Libraries
      • Accounting
    • Connectors
      • AMMs & DEXes
      • Staking
      • Lending
      • Leverage
      • Oracles
      • External Interfaces
      • Multicall
    • Security & Governance
      • Roles & Access Control
      • Upgrade Flow & Timelock
      • Configuration Guard Rails
      • Registries as Boundaries
      • Error & Event Catalogue
    • Developer Workflows
      • Deploying a New Vault
      • Extend with New Facets
      • Indexer Integration
    • Reference & Glossary
      • Event Index
      • Capabilities
      • Terms & Abbreviations
      • Contracts
  • MORE Markets
    • Markets Framework
      • Liquidity Protocol
      • Supply
      • Borrow
      • Repay
      • Withdraw
      • Liquidations
      • Flash Loans
      • Risks
    • Markets
      • Liquidity Pool
      • Reserve
      • Incentives
      • Oracles
    • Contracts
    • Build
  • Resources
    • Code, Licenses & Audits
    • Brand Assets
  • Privacy Policy
  • Terms of Use
Powered by GitBook
On this page
  • Liquidity Routers & Pools
  • Money-Market Primitives
  • Meta-Strategies & Leverage
  • Price Feeds
  • How These Interfaces Work Together
  1. MORE Vaults
  2. Connectors

External Interfaces

PreviousOraclesNextMulticall

Last updated 15 days ago

A MORE Vault never calls another contract “raw.” Instead, every outward‐facing interaction is typed behind an interface: a Solidity contract that defines what can be called and what shapes the data take, while hiding the router-specific opcodes. These interfaces form the contractual handshake between MORE’s facets and the rest of the on-chain world, guaranteeing that upgrades or network forks can swap addresses without rewriting vault logic.

Below each family of interfaces is introduced in plain language, outlining why the vault uses it and what guarantees it provides. Function-by-function details live in the section. Here we focus on the conceptual role each interface plays.


Liquidity Routers & Pools

Interface
Role in a Vault
Key idea

Uniswap V2 Factory & Pair IUniswapV2Factory, IUniswapV2Pair

Lets swap facets discover the canonical pool for two tokens and read reserves before quoting price impact.

Pools are always symmetric 50 / 50; reserves are public and updated every swap.

Curve Router ICurveRouter

A single entry point for multi-pool stable-asset routes. Swap facets stream an encoded path here to execute the whole trip atomically.

Route arrays allow up to five hops with near-zero slippage on correlated assets.

iZUMi Swap Path ISwap (used by iZUMi routers)

Encodes fee tier, tick range, and hop list in one byte string for concentrated-liquidity trades.

Vault passes the path as data; the router decodes and executes without a separate registry call.

AggroKitty Router IAggroKittyRouter

Meta-aggregates quotes from many DEXs, returning the best executable route for a given size.

Discovery logic lives off-chain; the vault sees only a validated “trade” struct.


Money-Market Primitives

Interface
Role
Key idea

aToken Receipt Token IATokenExtended

Represents the vault’s supplied collateral in Aave-v3 pools; its balance earns interest continuously.

Balance changes linearly with interest; no explicit “claim interest” needed.

Aave Rewards Controller IAaveV3RewardsController

Streams protocol-native incentives (eg. AAVE, stkAAVE) to the vault when it supplies or borrows.

Strategy facets claim rewards, swap them via a DEX facet, and compound back into collateral.

(Pool-level interfaces such as IPool are abstracted by the MOREMarketsFacet; see )


Meta-Strategies & Leverage

Interface
Role
Key idea

Origami Investment & Manager IMORELeverageFacet, IMORELeverageInvestment, IMORELeverageLovTokenFlashAndBorrowManager

Abstracts a looped collateral-borrow-swap cycle into a single ERC-20 “LOV token” that the vault can mint or redeem.

Vault maintains its usual over-collateralised posture while Origami handles flash-loan rebalances under the hood.


Price Feeds

Interface
Role
Key idea

Chainlink Aggregator IAggregatorV2V3Interface

Standardised price oracle returning the latest answer, round data, and heartbeat for USD pairs.

The Vaults Registry keeps a pointer to the feed; vault facets query it for slippage checks, NAV, and health factors.


How These Interfaces Work Together

  1. Facet chooses an address: e.g., Uniswap router, Aave pool, or Chainlink feed.

  2. Interface enforces the ABI: the Solidity compiler guarantees the call signature matches, preventing “method not found” exploits.

  3. Registry or strategist updates: changing the address behind an interface (e.g., migrating to a new Chainlink feed) requires only one on-chain storage write. Vault bytecode stays untouched.

  4. Shared safety rails apply: role checks, asset whitelists, and timelocks gate the call before any external contract executes.

Contracts
Lending