Skip to main content

OlympusTreasury

Git Source

Inherits: TRSRYv1, ReentrancyGuard

Treasury holds all other assets under the control of the protocol.

Functions​

constructor​

constructor(Kernel kernel_) Module(kernel_);

KEYCODE​

5 byte identifier for a module.

function KEYCODE() public pure override returns (Keycode);

VERSION​

Returns which semantic version of a module is being implemented.

function VERSION() external pure override returns (uint8 major, uint8 minor);

Returns

NameTypeDescription
majoruint8- Major version upgrade indicates breaking change to the interface.
minoruint8- Minor version change retains backward-compatible interface.

increaseWithdrawApproval​

Increase approval for specific withdrawer addresses

function increaseWithdrawApproval(address withdrawer_, ERC20 token_, uint256 amount_)
external
override
permissioned;

decreaseWithdrawApproval​

Decrease approval for specific withdrawer addresses

function decreaseWithdrawApproval(address withdrawer_, ERC20 token_, uint256 amount_)
external
override
permissioned;

withdrawReserves​

Allow withdrawal of reserve funds from pre-approved addresses.

function withdrawReserves(address to_, ERC20 token_, uint256 amount_) public override permissioned onlyWhileActive;

increaseDebtorApproval​

Increase approval for someone to accrue debt in order to withdraw reserves.

Debt will generally be taken by contracts to allocate treasury funds in yield sources.

function increaseDebtorApproval(address debtor_, ERC20 token_, uint256 amount_) external override permissioned;

decreaseDebtorApproval​

Decrease approval for someone to withdraw reserves as debt.

function decreaseDebtorApproval(address debtor_, ERC20 token_, uint256 amount_) external override permissioned;

incurDebt​

Pre-approved policies can get a loan to perform operations with treasury assets.

function incurDebt(ERC20 token_, uint256 amount_) external override permissioned onlyWhileActive;

repayDebt​

Repay a debtor debt.

Only confirmed to safely handle standard and non-standard ERC20s.

function repayDebt(address debtor_, ERC20 token_, uint256 amount_) external override permissioned nonReentrant;

setDebt​

An escape hatch for setting debt in special cases, like swapping reserves to another token.

function setDebt(address debtor_, ERC20 token_, uint256 amount_) external override permissioned;

deactivate​

Emergency shutdown of withdrawals.

function deactivate() external override permissioned;

activate​

Re-activate withdrawals after shutdown.

function activate() external override permissioned;

getReserveBalance​

Get total balance of assets inside the treasury + any debt taken out against those assets.

function getReserveBalance(ERC20 token_) external view override returns (uint256);