Core.sol

The user accessible functions in the core contract.

Deposit Function

To deposit underlying ERC20 Token into the respective stream.

deposit(bytes32 _streamKey,
        uint256 _amountUnderlying) external returns (uint256, uint256);
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

  • _amountUnderlying: the quantity of underlying tokens user wishes to deposit

Redeem Yield Function

To Redeem underlying yield for corresponding YT.

redeemYield(bytes32 _streamKey, uint256 _epoch) external;
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

  • _epoch: the index of the future against which yield will be redeemed.

Redeem Principle Function

To Redeem underlying principle for corresponding OT.

redeemPrinciple(bytes32 _streamKey, uint256 _epoch) external;
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

  • _epoch: the index of the future against which principle will be redeemed.

Expire Epoch Function

Expires the previous epoch so that the funds can become claimable.

expireEpoch(bytes32 _streamKey, uint256 _epoch, address _epochAddress) external;
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

  • _epoch: the index of the future against which principle will be redeemed.

  • _epochAddress: address of the expired future instance

Get Current Epoch Function

Get the current future index for a given stream.

getCurrentEpoch(bytes32 _streamKey) public view returns (uint256);
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

Get Epoch Address Function

Get the address of future for a given stream and index.

getEpochAddress(bytes32 _streamKey, uint256 _epoch) public view returns (address);
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

  • _epoch: the index of the future.

getOTYTCount Function

Returns the amount of Ot and Yt tokens a user would receive on depositing the money at a given instance.

getOTYTCount(bytes32 _streamKey, uint256 _amountUnderlying) public view returns (uint256, uint256);
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

  • _amountUnderlying: the underlying amount the user is going to deposit.

IsStreamInitialized Function

Check if a given stream is initialized.

isStreamInitialized(bytes32 _streamKey) public view returns (bool);
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

getYieldRemaining Function

Get the yield generated in a given epoch of a stream.

getYieldRemaining(bytes32 _streamKey, uint256 _epoch) public view returns (uint256);
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

  • _epoch: the index of the future.

getPrincipleRemaining Function

Get the principle remaining in a given epoch of a stream.

getPrincipleRemaining(bytes32 _streamKey, uint256 _epoch) public view returns (uint256);
  • _streamKey: name of the stream, created by hashing protocol, underlying, duration together.

  • _epoch: the index of the future.

getStreamKey Function

Get the unique name of the stream, created by hashing protocol, underlying, duration.

getStreamKey(string memory _protocol, address _underlying, uint256 _duration) public pure returns (bytes32);
  • _protocol: name of the protocol. eg - AAVE/COMP.

  • _underlying: address of the token kept as underlying. eg - DAI.

  • _duration: number of blocks the future will run before renewing.

Last updated