TermDiscountRateAdapter.sol#TermDiscountRateAdapter

Git Source

Inherits: ITermDiscountRateAdapter, AccessControl

State Variables

ORACLE_ROLE

bytes32 public constant ORACLE_ROLE = keccak256("ORACLE_ROLE");

prevTermController

Previous term controller

ITermController public prevTermController;

currTermController

Current term controller

ITermController public currTermController;

rateInvalid

mapping(address => mapping(bytes32 => bool)) public rateInvalid;

repoRedemptionHaircut

mapping(address => uint256) public repoRedemptionHaircut;

Functions

constructor

constructor(address termController_, address oracleWallet_);

getDiscountRate

Retrieves the discount rate for a given repo token

This function fetches the auction results for the repo token's term repo ID and returns the clearing rate of the most recent auction

function getDiscountRate(address termController, address repoToken) public view virtual returns (uint256);

Parameters

Name
Type
Description

termController

address

The address of the term controller

repoToken

address

The address of the repo token

Returns

Name
Type
Description

<none>

uint256

The discount rate for the specified repo token

getDiscountRate

Retrieves the discount rate for a given repo token

This function fetches the auction results for the repo token's term repo ID and returns the clearing rate of the most recent auction

function getDiscountRate(address repoToken) public view virtual returns (uint256);

Parameters

Name
Type
Description

repoToken

address

The address of the repo token

Returns

Name
Type
Description

<none>

uint256

The discount rate for the specified repo token

setAuctionRateValidator

Sets the invalidity of the result of a specific auction for a given repo token

This function is used to mark auction results as invalid or not, typically in cases of suspected manipulation

function setAuctionRateValidator(address repoToken, bytes32 termAuctionId, bool isInvalid)
    external
    onlyRole(ORACLE_ROLE);

Parameters

Name
Type
Description

repoToken

address

The address of the repo token associated with the auction

termAuctionId

bytes32

The unique identifier of the term auction to be invalidated

isInvalid

bool

The status of the rate invalidation

setTermController

Sets the term controller

function setTermController(address termController) external onlyRole(ORACLE_ROLE);

Parameters

Name
Type
Description

termController

address

The address of the term controller

setRepoRedemptionHaircut

Set the repo redemption haircut

function setRepoRedemptionHaircut(address repoToken, uint256 haircut) external onlyRole(ORACLE_ROLE);

Parameters

Name
Type
Description

repoToken

address

The address of the repo token

haircut

uint256

The repo redemption haircut in 18 decimals

_identifyTermController

function _identifyTermController(address termRepoToken) internal view returns (ITermController);

_getDiscountRate

function _getDiscountRate(ITermController termController, address repoToken) internal view returns (uint256);

_validateAuctionExistence

function _validateAuctionExistence(AuctionMetadata[] memory auctionMetadata, bytes32 termAuctionId)
    private
    pure
    returns (bool auctionExists);

Last updated