🥚
Oval
  • Oval Overview
    • Problem
    • System Overview
  • Integration
    • Quickstart Deployment
    • Morpho Deployment
    • Advanced Deployment
  • Mechanism Details
    • Integration with MEV-Share
    • Mechanism Description
    • Trust Assumptions
    • Oval Update Lifecycle
    • Inclusion Rates
    • Revenue Sharing
  • Contract Architecture
    • Source Adapters
    • Destination Adapters
    • Integration Controllers
    • Oval
    • Gas Profiling
  • Technical Examples
    • Aave Integration
    • Flashbots Integration
  • For Searchers
    • Getting Started
    • Header Specifications
    • Oval Node
  • OEV Data
  • Oval Demo
  • Audit and Bug Bounty
  • Oval Deployments
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Contract Architecture

Oval

Primary Oval contract.

PreviousIntegration ControllersNextGas Profiling

Last updated 10 months ago

Was this helpful?

This contract contains some of the core logic for what value to return, governed by the case work described in the . This contract also stores the state for lastUnlockTimestamp which governs this case work. Conceptually, this contract sits between the source adapters and destination adapters and connects all parts together, taking the input of from the source adapters, controlling the release process and is then read from by the destination adapter.

The minimal interface of this contract looks as follows:

interface Oval {

    // Function called by permissioned actor to unlock the latest value as part
    // of the MEV-Share auction flow. The call to this function is expected to
    // be sent to flashbots via eth_sendPrivateTransaction and is this is the
    // transaction that is backrun by the winner of the auction. The backrunner
    // has access to the most recent newly updated source price as a result 
    // and therefore can extract associated MEV.
    function unlockLatestValue() external;

    // Returns latest data from source, governed by case work controling if
    // this is the latest value or a value at older than lockWindow old. 
    // This function is called by destination adapters to retrieve the
    // appropriate data to expose.
    function internalLatestData() external view returns (int256, uint256);
}

The source implementation can be found .

here
mechanism description section