Last updated
Last updated
Fetched via contract
Uses clearing rate from most recent valid auction
Validation rules:
For reopening auctions (within 30 minutes), uses previous valid auction rate
Oracle can invalidate specific auction rates
Requires at least one valid auction result
The purchase/sale price is calculated using:
The face value of the RepoToken, adjusted by the redemptionValue,
discounted using Actual/360 day count convention relative to the RepoToken's ; and
the discount rate fetched from the most recent Term Auction, retrieved via the ,
adjusted by a discountRateMarkup
Base Formula:
Oracle role for manual intervention in case of auction rate manipulation
Haircut mechanism to adjust valuation for bad debt
Rate validity checks with timestamp verification of auction results
RepoTokens must meet these criteria for listing:
Not blacklisted (repoTokenBlacklist[token] == false
)
Active deployment in TermController (isTermDeployed == true
)
Not matured (redemptionTimestamp > current_timestamp
)
Amount exceeds minimum listing threshold
Two purchase options available:
purchase(uint256 desiredAmount, address repoToken)
Buy specific quantity of RepoTokens
swapExactPurchaseForRepo(uint256 purchaseTokenAmount, address repoToken)
Spend specific amount of purchase tokens
Reentrancy protection on all state-modifying functions
Pausable functionality for emergency stops
Role-based access control for admin functions
Blacklist capability for RepoTokens
Minimum listing amounts based on token type