Trade Helpers
getPresentfCashValue
Returns the present value of the given fCash amount using Notional internal oracle rates. If riskAdjusted
is set to true
then the will return the buffered or haircut value of fCash used in the Notional free collateral calculation.
fCashAmount must be specified in 8 decimal precision, present value will be returned in 8 decimal precision.
getMarketIndex
Returns an integer between 0 and 7 that represents the corresponding market index (i.e. tenor) of the market. 0 represents no corresponding market. Market indexes reference fCash tenors as follows:
1: 3 Month
2: 6 Month
3: 1 Year
4: 2 Year
5: 5 Year
6: 10 Year
7: 20 Year
Each currency will be listed with a max markets index that it cannot trade past.
getfCashLendFromDeposit
Returns an amount of fCash that would be received if lending the depositAmountExternal
amount. currencyId
refers to the currency that is being lent on Notional, depositAmountExternal
is denominated in the token's native decimal precision (i.e. 6 decimals for USDC, 18 for DAI). useUnderlying
can be set to true
when referring to underlying tokens (i.e. DAI, USDC) and false
when referring to asset tokens (i.e. cDAI, cUSDC, aFRAX). minLendRate
is the minimum annualized interest rate that will be encoded in encodedTrade,
this is specified in 9 decimal precision where 1e9 is 100% interest. If 0 is specified for minLendRate
then no slippage limit will be applied.
Returns the fCashAmount to be received at maturity, the market index that corresponds to the maturity, and an encodedTrade object that can be passed directly into batchLend
or batchBalanceAndTradeAction
.
getfCashBorrowFromPrincipal
Returns an amount of fCash that would be owed if borrowing the depositAmountExternal
amount. currencyId
refers to the currency that is being borrowed on Notional, depositAmountExternal
is denominated in the token's native decimal precision (i.e. 6 decimals for USDC, 18 for DAI). useUnderlying
can be set to true
when referring to underlying tokens (i.e. DAI, USDC) and false
when referring to asset tokens (i.e. cDAI, cUSDC, aFRAX). maxBorrowRate
is the maximum annualized interest rate that will be encoded in encodedTrade,
this is specified in 9 decimal precision where 1e9 is 100% interest. If 0 is specified for maxBorrowRate
then no slippage limit will be applied.
Returns the fCashAmount to be repaid at maturity, the market index that corresponds to the maturity, and an encodedTrade object that can be passed directly into batchBalanceAndTradeAction
.
getDepositFromfCashLend
Returns an amount of cash (both underlying and asset denominated) that is required in order to lend a given fCash amount. currencyId
refers to the currency that is being lent on Notional. minLendRate
is the minimum annualized interest rate that will be encoded in encodedTrade,
this is specified in 9 decimal precision where 1e9 is 100% interest. If 0 is specified for minLendRate
then no slippage limit will be applied.
Returns depositAmountUnderlying
and depositAmountAsset
which correspond to the amount of tokens (in their native decimal precision) that is required to lend, the market index that corresponds to the maturity, and an encodedTrade object that can be passed directly into batchLend
or batchBalanceAndTradeAction
.
getPrincipalFromfCashBorrow
Returns an amount of cash (both underlying and asset denominated) that will be received when borrowing a given fCash amount. currencyId
refers to the currency that is being borrowed on Notional. maxBorrowRate
is the maximum annualized interest rate that will be encoded in encodedTrade,
this is specified in 9 decimal precision where 1e9 is 100% interest. If 0 is specified for maxBorrowRate
then no slippage limit will be applied.
Returns depositAmountUnderlying
and depositAmountAsset
which correspond to the amount of tokens (in their native decimal precision) that will be received when borrowing, the market index that corresponds to the maturity, and an encodedTrade object that can be passed directly batchBalanceAndTradeAction
.
convertCashBalanceToExternal
Converts a Notional internal cash balance to a native token precision value. cashBalanceInternal
is a cash balance value returned by Notional, if convertToUnderlying is true then it will return the amount in underlying token denomination (i.e. USDC, DAI). If false, then it will return the amount in asset token denomination (i.e. cDAI, aFRAX, etc).
Note that cash balances can be positive or negative. Negative signifies that an amount is owed to the protocol.
Deprecated Calculation Methods
These calculation methods are still available and accurate but are deprecated because they are not as easy to use as the newer methods above. They only return values in 8 decimal precision, rather than the token's native precision and they require users to encode trade objects manually.
getCashAmountGivenfCashAmount
Given an amount of fCash to lend (positive) or borrow (negative) at the given market index, returns the resulting netAssetCash
. netAssetCash
will be negative when lending (lender must pay this amount) and positive when borrowing (borrower will receive this amount). netUnderlyingCash
is the converted netAssetCash
value (i.e. netAssetCash refers to cDAI whereas netUnderlyingCash
refers to DAI).
fCashAmount must be specified in 8 decimal precision, netAssetCash and netUnderlyingCash will be returned in 8 decimal precision.
getfCashAmountGivenCashAmount
Given an amount of net cash to an account (lend will be negative because the lender will pay this amount, borrowing is positive because the borrower will receive) at the given market index, returns the resulting netfCash
. netfCash
will be positive when lending (lender will receive this amount) and negative when borrowing (borrower must pay this amount).
netCashToAccount must be specified in 8 decimal precision, netfCash will be returned in 8 decimal precision.
Last updated