Olympus Heart
Olympus Heart (Policy) Contract
The Olympus Heart contract provides keeper rewards to call the heart beat function which fuels Olympus market operations. The Heart orchestrates state updates in the correct order to ensure market operations use up to date information.
function ROLES() external view returns (contract ROLESv1)
Name | Type | Description |
---|---|---|
_0 | contract ROLESv1 | undefined |
function activate() external nonpayable
Turns the heart on and resets the beatAccess restricted
This function is used to restart the heart after a pause
function active() external view returns (bool)
Status of the Heart, false = stopped, true = beating
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
function beat() external nonpayable
Beats the heartOnly callable when enough time has passed since last beat (determined by frequency variable)This function is incentivized with a token reward (see rewardToken and reward variables).
Triggers price oracle update and market operations
function changeKernel(contract Kernel newKernel_) external nonpayable
Function used by kernel when migrating to a new kernel.
Name | Type | Description |
---|---|---|
newKernel_ | contract Kernel | undefined |
function configureDependencies() external nonpayable returns (Keycode[] dependencies)
Define module dependencies for this policy.
Name | Type | Description |
---|---|---|
dependencies | Keycode[] | - Keycode array of module dependencies. |
function deactivate() external nonpayable
Turns the heart offAccess restricted
Emergency stop function for the heart
function frequency() external view returns (uint256)
Heart beat frequency, in seconds
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
function isActive() external view returns (bool)
Easily accessible indicator for if a policy is activated or not.
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
function kernel() external view returns (contract Kernel)
Name | Type | Description |
---|---|---|
_0 | contract Kernel | undefined |
function lastBeat() external view returns (uint256)
Timestamp of the last beat (UTC, in seconds)
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
function requestPermissions() external view returns (struct Permissions[] permissions)
Function called by kernel to set module function permissions.
Name | Type | Description |
---|---|---|
permissions | Permissions[] | - Array of keycodes and function selectors for requested permissions. |
function resetBeat() external nonpayable
Unlocks the cycle if stuck on one side, eject functionAccess restricted
function reward() external view returns (uint256)
Reward for beating the Heart (in reward token decimals)
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
function rewardToken() external view returns (contract ERC20)
Reward token address that users are sent for beating the Heart
Name | Type | Description |
---|---|---|
_0 | contract ERC20 | undefined |
function setRewardTokenAndAmount(contract ERC20 token_, uint256 reward_) external nonpayable
Sets the reward token and amount for the beat functionAccess restricted
Name | Type | Description |
---|---|---|
token_ | contract ERC20 | - New reward token address |
reward_ | uint256 | - New reward amount, in units of the reward token |
function withdrawUnspentRewards(contract ERC20 token_) external nonpayable
Withdraws unspent balance of provided token to senderAccess restricted
Name | Type | Description |
---|---|---|
token_ | contract ERC20 | undefined |
event Beat(uint256 timestamp_)
Name | Type | Description |
---|---|---|
timestamp_ | uint256 | undefined |
event RewardIssued(address to_, uint256 rewardAmount_)
Name | Type | Description |
---|---|---|
to_ | address | undefined |
rewardAmount_ | uint256 | undefined |
event RewardUpdated(contract ERC20 token_, uint256 rewardAmount_)
Name | Type | Description |
---|---|---|
token_ | contract ERC20 | undefined |
rewardAmount_ | uint256 | undefined |
error Heart_BeatAvailable()
error Heart_BeatStopped()
error Heart_InvalidParams()
error Heart_OutOfCycle()
error KernelAdapter_OnlyKernel(address caller_)
Name | Type | Description |
---|---|---|
caller_ | address | undefined |
error Policy_ModuleDoesNotExist(Keycode keycode_)
Name | Type | Description |
---|---|---|
keycode_ | Keycode | undefined |