OCY_OUSD.sol

OCY -> On-Chain Yield

Introduction

This contract escrows OUSD and handles accounting for yield distributions.

State Variables

TypeNameDescription

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

Read Functions

Write Functions

Events

Read Functions

canPush()

Permission for owner to call pushToLocker(). See ZivoeLocker.sol

 function canPush() public override pure returns (bool) { return true; }

canPull()

Permission for owner to call pullFromLocker(). See ZivoeLocker.sol

function canPull() public override pure returns (bool) { return true; }

canPullPartial()

Permission for owner to call pullFromLockerPartial(). See ZivoeLocker.sol

function canPullPartial() public override pure returns (bool) { return true; }

Write Functions

pushToLocker()

Migrates specific amount of ERC20 from owner() to locker.

function pushToLocker(
    address asset, 
    uint256 amount, 
    bytes calldata data
) external override onlyOwner;
TypeNameDescription

address

asset

The asset to migrate.

uint256

amount

The amount of "asset" to migrate.

bytes

data

Accompanying transaction data.

Emits the BasisAdjusted() event

pullFromLocker()

Migrates entire ERC20 balance from locker to owner().

function pullFromLocker(address asset, bytes calldata data) external;
TypeNameDescription

address

asset

The asset to migrate.

bytes

data

Accompanying transaction data.

Emits the BasisAdjusted() event

pullFromLockerPartial()

Migrates specific amount of ERC20 from locker to owner().

function pullFromLockerPartial(
    address asset, 
    uint256 amount, 
    bytes calldata data
) external;
TypeNameDescription

address

asset

The asset to migrate.

uint256

amount

The amount of "asset" to migrate.

bytes

data

Accompanying transaction data.

Emits the BasisAdjusted() event

rebase()

Ensures this locker has opted-in for the OUSD rebase.

function rebase() public;

updateOCTYDL()

Updates the OCT_YDL endpoint.

function updateOCTYDL(address _OCT_YDL) external;
TypeNameDescription

address

_OCT_YDL

The new address for OCT_YDL.

Emits the UpdatedOCTYDL() event

forwardYield()

Forwards excess basis to OCT_YDL for conversion.

function forwardYield() public nonReentrant;

Emits the YieldForwarded() event

Events

BasisAdjusted()

Emitted during pushToLocker(), pullFromLocker(), and pullFromLockerPartial()

event BasisAdjusted(uint256 priorBasis, uint256 newBasis);
TypeIndexedNameDescription

uint256

False

priorBasis

The prior value of basis.

uint256

False

newBasis

The new value of basis.

UpdatedOCTYDL()

Emitted during updateOCTYDL()

event UpdatedOCTYDL(address indexed newOCT, address indexed oldOCT);
TypeIndexedNameDescription

address

True

newOCT

The new OCT_YDL contract.

address

True

oldOCT

The old OCT_YDL contract.

YieldForwarded()

Emitted during forwardYield()

event YieldForwarded(uint256 amount, uint256 newBasis);
TypeIndexedNameDescription

uint256

False

amount

The amount of OUSD forwarded.

uint256

False

newBasis

The new basis value.

Last updated

Zivoe Finance - Official Documentation