ERC5095.sol
This document describes the functions, attributes and modifiers in ERC5095.sol
ERC5095
Inherits: ERC20Permit, IERC5095
State Variables
maturity
unix timestamp when the ERC5095 token can be redeemed
underlying
address of the ERC20 token that is returned on ERC5095 redemption
lender
address of the minting authority
marketplace
address of the "marketplace" YieldSpace AMM router
pool
Interface to interact with the pool
redeemer
address and interface for an external custody contract (necessary for some project's backwards compatability)
Functions
authorized
ensures that only a certain address can call the function
Parameters
a
address
address that msg.sender must be to be authorized
constructor
setPool
Allows the marketplace to set the pool
Parameters
p
address
Address of the pool
Returns
<none>
bool
bool True if successful
approveMarketPlace
Allows the marketplace to spend underlying, principal tokens held by the token
This is necessary when MarketPlace calls pool methods to swap tokens
Returns
<none>
bool
True if successful
convertToUnderlying
Post or at maturity, converts an amount of principal tokens to an amount of underlying that would be returned.
Parameters
s
uint256
The amount of principal tokens to convert
Returns
<none>
uint256
uint256 The amount of underlying tokens returned by the conversion
convertToShares
Post or at maturity, converts a desired amount of underlying tokens returned to principal tokens needed.
Parameters
a
uint256
The amount of underlying tokens to convert
Returns
<none>
uint256
uint256 The amount of principal tokens returned by the conversion
maxRedeem
Returns user's PT balance
Parameters
o
address
The address of the owner for which redemption is calculated
Returns
<none>
uint256
uint256 The maximum amount of principal tokens that owner
can redeem.
maxWithdraw
Post or at maturity, returns user's PT balance. Prior to maturity, returns a previewRedeem for owner's PT balance.
Parameters
o
address
The address of the owner for which withdrawal is calculated
Returns
<none>
uint256
uint256 maximum amount of underlying tokens that owner
can withdraw.
previewDeposit
After maturity, returns 0. Prior to maturity, returns the amount of shares
when spending a
in underlying on a YieldSpace AMM.
Parameters
a
uint256
The amount of underlying spent
Returns
<none>
uint256
uint256 The amount of PT purchased by spending a
of underlying
previewMint
After maturity, returns 0. Prior to maturity, returns the amount of assets
in underlying spent on a purchase of s
in PT on a YieldSpace AMM.
Parameters
s
uint256
The amount of principal tokens bought in the simulation
Returns
<none>
uint256
uint256 The amount of underlying required to purchase s
of PT
previewRedeem
Post or at maturity, simulates the effects of redemption. Prior to maturity, returns the amount of assets
from a sale of s
PTs on a YieldSpace AMM.
Parameters
s
uint256
The amount of principal tokens redeemed in the simulation
Returns
<none>
uint256
uint256 The amount of underlying returned by s
of PT redemption
previewWithdraw
Post or at maturity, simulates the effects of withdrawal at the current block. Prior to maturity, simulates the amount of PTs necessary to receive a
in underlying from the sale of PTs on a YieldSpace AMM.
Parameters
a
uint256
The amount of underlying tokens withdrawn in the simulation
Returns
<none>
uint256
uint256 The amount of principal tokens required for the withdrawal of a
deposit
Before maturity spends a
of underlying, and sends PTs to r
. Post or at maturity, reverts.
Parameters
a
uint256
The amount of underlying tokens deposited
r
address
The receiver of the principal tokens
m
uint256
Minimum number of shares that the user will receive
Returns
<none>
uint256
uint256 The amount of principal tokens purchased
deposit
Before maturity spends assets
of underlying, and sends shares
of PTs to receiver
. Post or at maturity, reverts.
Parameters
a
uint256
The amount of underlying tokens deposited
r
address
The receiver of the principal tokens
Returns
<none>
uint256
uint256 The amount of principal tokens burnt by the withdrawal
mint
Before maturity mints s
of PTs to r
by spending underlying. Post or at maturity, reverts.
Parameters
s
uint256
The amount of shares being minted
r
address
The receiver of the underlying tokens being withdrawn
m
uint256
Maximum amount of underlying that the user will spend
Returns
<none>
uint256
uint256 The amount of principal tokens purchased
mint
Before maturity mints shares
of PTs to receiver
by spending underlying. Post or at maturity, reverts.
Parameters
s
uint256
The amount of shares being minted
r
address
The receiver of the underlying tokens being withdrawn
Returns
<none>
uint256
uint256 The amount of principal tokens purchased
withdraw
At or after maturity, burns PTs from owner and sends a
underlying to r
. Before maturity, sends a
by selling shares of PT on a YieldSpace AMM.
Parameters
a
uint256
The amount of underlying tokens withdrawn
r
address
The receiver of the underlying tokens being withdrawn
o
address
The owner of the underlying tokens
m
uint256
Maximum amount of PTs to be sold
Returns
<none>
uint256
uint256 The amount of principal tokens burnt by the withdrawal
withdraw
At or after maturity, burns PTs from owner and sends a
underlying to r
. Before maturity, sends a
by selling shares of PT on a YieldSpace AMM.
Parameters
a
uint256
The amount of underlying tokens withdrawn
r
address
The receiver of the underlying tokens being withdrawn
o
address
The owner of the underlying tokens
Returns
<none>
uint256
uint256 The amount of principal tokens burnt by the withdrawal
redeem
At or after maturity, burns exactly s
of Principal Tokens from o
and sends underlying tokens to r
. Before maturity, sends underlying by selling s
of PT on a YieldSpace AMM.
Parameters
s
uint256
The number of shares to be burned in exchange for the underlying asset
r
address
The receiver of the underlying tokens being withdrawn
o
address
Address of the owner of the shares being burned
m
uint256
Minimum amount of underlying that must be received
Returns
<none>
uint256
uint256 The amount of underlying tokens distributed by the redemption
redeem
At or after maturity, burns exactly shares
of Principal Tokens from owner
and sends assets
of underlying tokens to receiver
. Before maturity, sells s
of PT on a YieldSpace AMM.
Parameters
s
uint256
The number of shares to be burned in exchange for the underlying asset
r
address
The receiver of the underlying tokens being withdrawn
o
address
Address of the owner of the shares being burned
Returns
<none>
uint256
uint256 The amount of underlying tokens distributed by the redemption
authBurn
Parameters
f
address
Address to burn from
a
uint256
Amount to burn
Returns
<none>
bool
bool true if successful
authMint
Parameters
t
address
Address recieving the minted amount
a
uint256
The amount to mint
Returns
<none>
bool
bool True if successful
authApprove
Parameters
o
address
Address of the owner of the tokens
s
address
Address of the spender
a
uint256
Amount to be approved
_deposit
_mint
_withdraw
_redeem
Last updated