RewardControl.sol
View Source: contracts/RewardControl.sol
↗ Extends: RewardControlStorage, RewardControlInterface, ExponentialNoError
Events
Modifiers
onlyOwner
onlyOwner
Make sure that the sender is only the owner of the contract
Arguments
Name | Type | Description |
Functions
initializer(address _owner, address _alkemiEarnVerified, address _alkemiEarnPublic, address _alkAddress)
refreshAlkSupplyIndex(address market, address supplier, bool isVerified)
refreshAlkBorrowIndex(address market, address borrower, bool isVerified)
claimAlk(address holder)
claimAlk(address holder, address market, bool isVerified)
refreshMarketLiquidity()
refreshAlkSpeeds()
updateAlkSupplyIndex(address market, bool isVerified)
updateAlkBorrowIndex(address market, bool isVerified)
distributeSupplierAlk(address market, address supplier, bool isVerified)
distributeBorrowerAlk(address market, address borrower, bool isVerified)
claimAlk(address holder, address[] markets, bool isVerified)
transferAlk(address participant, uint256 participantAccrued, address market, bool isVerified)
getBlockNumber()
getAlkAccrued(address participant)
getAlkAddress()
getAlkemiEarnAddress()
getMarketStats(address market, bool isVerified)
getMarketTotalSupply(address market, bool isVerified)
getMarketTotalBorrows(address market, bool isVerified)
getSupplyBalance(address market, address supplier, bool isVerified)
getBorrowBalance(address market, address borrower, bool isVerified)
transferOwnership(address _newOwner)
acceptOwnership()
addMarket(address market, bool isVerified)
removeMarket(uint256 id, bool isVerified)
setAlkAddress(address _alkAddress)
setAlkemiEarnVerifiedAddress(address _alkemiEarnVerified)
setAlkemiEarnPublicAddress(address _alkemiEarnPublic)
setAlkRate(uint256 _alkRate)
getAlkRewards(address user)
getSupplyAlkRewards(struct ExponentialNoError.Exp totalLiquidity, struct ExponentialNoError.Exp[] marketTotalLiquidity, address user, uint256 i, uint256 j, bool isVerified)
getBorrowAlkRewards(struct ExponentialNoError.Exp totalLiquidity, struct ExponentialNoError.Exp[] marketTotalLiquidity, address user, uint256 i, uint256 j, bool isVerified)
initializer
RewardControl
is the contract to calculate and distribute reward tokens
Arguments
Name | Type | Description |
_owner | address | |
_alkemiEarnVerified | address | |
_alkemiEarnPublic | address | |
_alkAddress | address |
refreshAlkSupplyIndex
⤾ overrides RewardControlInterface.refreshAlkSupplyIndex
Refresh ALK supply index for the specified market and supplier
Arguments
Name | Type | Description |
market | address | The market whose supply index to update |
supplier | address | The address of the supplier to distribute ALK to |
isVerified | bool | Specifies if the market is from verified or public protocol |
refreshAlkBorrowIndex
⤾ overrides RewardControlInterface.refreshAlkBorrowIndex
Refresh ALK borrow index for the specified market and borrower
Arguments
Name | Type | Description |
market | address | The market whose borrow index to update |
borrower | address | The address of the borrower to distribute ALK to |
isVerified | bool | Specifies if the market is from verified or public protocol |
claimAlk
⤾ overrides RewardControlInterface.claimAlk
Claim all the ALK accrued by holder in all markets
Arguments
Name | Type | Description |
holder | address | The address to claim ALK for |
claimAlk
⤾ overrides RewardControlInterface.claimAlk
Claim all the ALK accrued by holder by refreshing the indexes on the specified market only
Arguments
Name | Type | Description |
holder | address | The address to claim ALK for |
market | address | The address of the market to refresh the indexes for |
isVerified | bool | Specifies if the market is from verified or public protocol |
refreshMarketLiquidity
Recalculate and update ALK speeds for all markets
Arguments
Name | Type | Description |
refreshAlkSpeeds
Recalculate and update ALK speeds for all markets
Arguments
Name | Type | Description |
updateAlkSupplyIndex
Accrue ALK to the market by updating the supply index
Arguments
Name | Type | Description |
market | address | The market whose supply index to update |
isVerified | bool | Verified / Public protocol |
updateAlkBorrowIndex
Accrue ALK to the market by updating the borrow index
Arguments
Name | Type | Description |
market | address | The market whose borrow index to update |
isVerified | bool | Verified / Public protocol |
distributeSupplierAlk
Calculate ALK accrued by a supplier and add it on top of alkAccrued[supplier]
Arguments
Name | Type | Description |
market | address | The market in which the supplier is interacting |
supplier | address | The address of the supplier to distribute ALK to |
isVerified | bool | Verified / Public protocol |
distributeBorrowerAlk
Calculate ALK accrued by a borrower and add it on top of alkAccrued[borrower]
Arguments
Name | Type | Description |
market | address | The market in which the borrower is interacting |
borrower | address | The address of the borrower to distribute ALK to |
isVerified | bool | Verified / Public protocol |
claimAlk
Claim all the ALK accrued by holder in the specified markets
Arguments
Name | Type | Description |
holder | address | The address to claim ALK for |
markets | address[] | The list of markets to claim ALK in |
isVerified | bool | Verified / Public protocol |
transferAlk
Transfer ALK to the participant
Returns
The amount of ALK which was NOT transferred to the participant
Arguments
Name | Type | Description |
participant | address | The address of the participant to transfer ALK to |
participantAccrued | uint256 | The amount of ALK to (possibly) transfer |
market | address | Market for which ALK is transferred |
isVerified | bool | Verified / Public Protocol |
getBlockNumber
Get the current block number
Returns
The current block number
Arguments
Name | Type | Description |
getAlkAccrued
Get the current accrued ALK for a participant
Returns
The amount of accrued ALK for the participant
Arguments
Name | Type | Description |
participant | address | The address of the participant |
getAlkAddress
Get the address of the ALK token
Returns
The address of ALK token
Arguments
Name | Type | Description |
getAlkemiEarnAddress
Get the address of the underlying AlkemiEarnVerified and AlkemiEarnPublic contract
Returns
The address of the underlying AlkemiEarnVerified and AlkemiEarnPublic contract
Arguments
Name | Type | Description |
getMarketStats
Get market statistics from the AlkemiEarnVerified contract
Returns
Market statistics for the given market
Arguments
Name | Type | Description |
market | address | The address of the market |
isVerified | bool | Verified / Public protocol |
getMarketTotalSupply
Get market total supply from the AlkemiEarnVerified / AlkemiEarnPublic contract
Returns
Market total supply for the given market
Arguments
Name | Type | Description |
market | address | The address of the market |
isVerified | bool | Verified / Public protocol |
getMarketTotalBorrows
Get market total borrows from the AlkemiEarnVerified contract
Returns
Market total borrows for the given market
Arguments
Name | Type | Description |
market | address | The address of the market |
isVerified | bool | Verified / Public protocol |
getSupplyBalance
Get supply balance of the specified market and supplier
Returns
Supply balance of the specified market and supplier
Arguments
Name | Type | Description |
market | address | The address of the market |
supplier | address | The address of the supplier |
isVerified | bool | Verified / Public protocol |
getBorrowBalance
Get borrow balance of the specified market and borrower
Returns
Borrow balance of the specified market and borrower
Arguments
Name | Type | Description |
market | address | The address of the market |
borrower | address | The address of the borrower |
isVerified | bool | Verified / Public protocol |
transferOwnership
Transfer the ownership of this contract to the new owner. The ownership will not be transferred until the new owner accept it.
Arguments
Name | Type | Description |
_newOwner | address | The address of the new owner |
acceptOwnership
Accept the ownership of this contract by the new owner
Arguments
Name | Type | Description |
addMarket
Add new market to the reward program
Arguments
Name | Type | Description |
market | address | The address of the new market to be added to the reward program |
isVerified | bool | Verified / Public protocol |
removeMarket
Remove a market from the reward program based on array index
Arguments
Name | Type | Description |
id | uint256 | The index of the |
isVerified | bool | Verified / Public protocol |
setAlkAddress
Set ALK token address
Arguments
Name | Type | Description |
_alkAddress | address | The ALK token address |
setAlkemiEarnVerifiedAddress
Set AlkemiEarnVerified contract address
Arguments
Name | Type | Description |
_alkemiEarnVerified | address | The AlkemiEarnVerified contract address |
setAlkemiEarnPublicAddress
Set AlkemiEarnPublic contract address
Arguments
Name | Type | Description |
_alkemiEarnPublic | address | The AlkemiEarnVerified contract address |
setAlkRate
Set ALK rate
Arguments
Name | Type | Description |
_alkRate | uint256 | The ALK rate |
getAlkRewards
Get latest ALK rewards
Arguments
Name | Type | Description |
user | address | the supplier/borrower |
getSupplyAlkRewards
Get latest Supply ALK rewards
Arguments
Name | Type | Description |
totalLiquidity | struct ExponentialNoError.Exp | Total Liquidity of all markets |
marketTotalLiquidity | struct ExponentialNoError.Exp[] | Array of individual market liquidity |
user | address | the supplier |
i | uint256 | index of the market in marketTotalLiquidity array |
j | uint256 | index of the market in the verified/public allMarkets array |
isVerified | bool | Verified / Public protocol |
getBorrowAlkRewards
Get latest Borrow ALK rewards
Arguments
Name | Type | Description |
totalLiquidity | struct ExponentialNoError.Exp | Total Liquidity of all markets |
marketTotalLiquidity | struct ExponentialNoError.Exp[] | Array of individual market liquidity |
user | address | the borrower |
i | uint256 | index of the market in marketTotalLiquidity array |
j | uint256 | index of the market in the verified/public allMarkets array |
isVerified | bool | Verified / Public protocol |
Last updated