Integration Controllers
Control behaviour of an Oval deployment.
Controllers enable extension and customization of the Oval system. They govern:
Who can update the Oval system (through
canUnlock
)Under what conditions the Oval system returns which price (through
lockWindow
)Other system settings, like
maxTraversal
, which governs how far to look back to search within the Chainlink contract when looking for historic prices.
Each of the function defined in the interface can be overridden by an integration if custom behavior is desired, such as connecting who can update the Oval system to some external permissioning system. This is the primary venue for customization of the Oval system.
The minimal interface for an integration controller looks as follows:
The source code can be found here.
The base implementation contains the following controllers:
ImmutableController
. A controller that has no permissioning and no ownership. Designed for applications that want their Oval integration point to be as immutable, permissionless, and low-cost as possible.BaseController
. A minimum viable "custom" controller providing the simplest possible logic to control who can unlock and update the Oval system. Can be used as a starting point to develop more custom controllers on top of the Oval system.
For more information on how to customize this see Advanced Deploymentthat talks about using BaseControllers in different ways.
Last updated