OCY_OUSD.sol
OCY -> On-Chain Yield
Introduction
This contract escrows OUSD and handles accounting for yield distributions.
State Variables
address
GBL
The ZivoeGlobals contract.
address
OUSD
Origin Dollar contract.
address
OCT_YDL
The OCT_YDL contract.
uint256
basis
The basis of OUSD for distribution accounting.
Sections
canPush() - Permission for owner to call
pushToLocker()
. See ZivoeLocker.solcanPull() - Permission for owner to call
pullFromLocker()
. See ZivoeLocker.solcanPullPartial() - Permission for owner to call
pullFromLockerPartial()
. See ZivoeLocker.sol
pushToLocker() - Migrates specific amount of ERC20 from owner() to locker.
pullFromLocker() - Migrates entire ERC20 balance from locker to
owner()
.pullFromLockerPartial() - Migrates specific amount of ERC20 from locker to
owner()
.rebase() - Ensures this locker has opted-in for the OUSD rebase.
updateOCTYDL() - Updates the OCT_YDL endpoint.
forwardYield() - Forwards excess basis to OCT_YDL for conversion.
Read Functions
canPush()
canPush()
Permission for owner to call pushToLocker()
. See ZivoeLocker.sol
function canPush() public override pure returns (bool) { return true; }
canPull()
canPull()
Permission for owner to call pullFromLocker()
. See ZivoeLocker.sol
function canPull() public override pure returns (bool) { return true; }
canPullPartial()
canPullPartial()
Permission for owner to call pullFromLockerPartial()
. See ZivoeLocker.sol
function canPullPartial() public override pure returns (bool) { return true; }
Write Functions
pushToLocker()
pushToLocker()
Migrates specific amount of ERC20 from owner() to locker.
function pushToLocker(
address asset,
uint256 amount,
bytes calldata data
) external override onlyOwner;
address
asset
The asset to migrate.
uint256
amount
The amount of "asset" to migrate.
bytes
data
Accompanying transaction data.
Emits the BasisAdjusted() event
pullFromLocker()
pullFromLocker()
Migrates entire ERC20 balance from locker to owner()
.
function pullFromLocker(address asset, bytes calldata data) external;
address
asset
The asset to migrate.
bytes
data
Accompanying transaction data.
Emits the BasisAdjusted() event
pullFromLockerPartial()
pullFromLockerPartial()
Migrates specific amount of ERC20 from locker to owner()
.
function pullFromLockerPartial(
address asset,
uint256 amount,
bytes calldata data
) external;
address
asset
The asset to migrate.
uint256
amount
The amount of "asset" to migrate.
bytes
data
Accompanying transaction data.
Emits the BasisAdjusted() event
rebase()
rebase()
Ensures this locker has opted-in for the OUSD rebase.
function rebase() public;
updateOCTYDL()
updateOCTYDL()
Updates the OCT_YDL endpoint.
function updateOCTYDL(address _OCT_YDL) external;
address
_OCT_YDL
The new address for OCT_YDL.
Emits the UpdatedOCTYDL() event
forwardYield()
forwardYield()
Forwards excess basis to OCT_YDL for conversion.
function forwardYield() public nonReentrant;
Emits the YieldForwarded() event
Events
BasisAdjusted()
BasisAdjusted()
Emitted during pushToLocker(), pullFromLocker(), and pullFromLockerPartial()
event BasisAdjusted(uint256 priorBasis, uint256 newBasis);
uint256
False
priorBasis
The prior value of basis.
uint256
False
newBasis
The new value of basis.
UpdatedOCTYDL()
UpdatedOCTYDL()
Emitted during updateOCTYDL()
event UpdatedOCTYDL(address indexed newOCT, address indexed oldOCT);
address
True
newOCT
The new OCT_YDL contract.
address
True
oldOCT
The old OCT_YDL contract.
YieldForwarded()
YieldForwarded()
Emitted during forwardYield()
event YieldForwarded(uint256 amount, uint256 newBasis);
uint256
False
amount
The amount of OUSD forwarded.
uint256
False
newBasis
The new basis value.
Last updated