# TermEventEmitter.sol

## TermEventEmitter

This contract is a centralized event emitter that records important events to the blockchain

*This contract operates at the protocol level and governs all instances of a Term Repo*

### DEVOPS\_ROLE

```solidity
bytes32 DEVOPS_ROLE
```

### INITIALIZER\_ROLE

```solidity
bytes32 INITIALIZER_ROLE
```

### TERM\_CONTRACT

```solidity
bytes32 TERM_CONTRACT
```

### TERM\_DELISTER

```solidity
bytes32 TERM_DELISTER
```

### constructor

```solidity
constructor() public
```

### initialize

```solidity
function initialize(address devopsWallet_, address termDelister_, address termInitializer_) external
```

### pairTermContract

```solidity
function pairTermContract(address termContract) external
```

### emitTermAuctionInitialized

```solidity
function emitTermAuctionInitialized(bytes32 termRepoId, bytes32 termAuctionId, address termAuction, uint256 auctionEndTime, string version) external
```

#### Parameters

| Name           | Type    | Description                                                  |
| -------------- | ------- | ------------------------------------------------------------ |
| termRepoId     | bytes32 | The id of the current Term Repo deployment being initialized |
| termAuctionId  | bytes32 | The id of the auction being initialized                      |
| termAuction    | address | The address of the auction contract being initialized        |
| auctionEndTime | uint256 | The end time of the auction being initialized                |
| version        | string  | The version tag of the smart contract deployed               |

### emitBidAssigned

```solidity
function emitBidAssigned(bytes32 termAuctionId, bytes32 id, uint256 amount) external
```

#### Parameters

| Name          | Type    | Description                     |
| ------------- | ------- | ------------------------------- |
| termAuctionId | bytes32 | A Term Auction id               |
| id            | bytes32 | A bid id                        |
| amount        | uint256 | The amount assigned to this bid |

### emitOfferAssigned

```solidity
function emitOfferAssigned(bytes32 termAuctionId, bytes32 id, uint256 amount) external
```

#### Parameters

| Name          | Type    | Description                       |
| ------------- | ------- | --------------------------------- |
| termAuctionId | bytes32 | A Term Auction id                 |
| id            | bytes32 | An offer id                       |
| amount        | uint256 | The amount assigned to this offer |

### emitAuctionCompleted

```solidity
function emitAuctionCompleted(bytes32 termAuctionId, uint256 timestamp, uint256 blockNumber, uint256 totalAssignedBids, uint256 totalAssignedOffers, uint256 clearingPrice) external
```

#### Parameters

| Name                | Type    | Description                                  |
| ------------------- | ------- | -------------------------------------------- |
| termAuctionId       | bytes32 | The Term Auction id of auction completed     |
| timestamp           | uint256 | The timestamp of the current block           |
| blockNumber         | uint256 | The number of the current block              |
| totalAssignedBids   | uint256 | The number of assigned bids in the auction   |
| totalAssignedOffers | uint256 | The number of assigned offers in the auction |
| clearingPrice       | uint256 | The clearing price of the auction            |

### emitAuctionCancelled

```solidity
function emitAuctionCancelled(bytes32 termAuctionId, bool nonViableAuction, bool auctionCancelledforWithdrawal) external
```

#### Parameters

| Name                          | Type    | Description                                                     |
| ----------------------------- | ------- | --------------------------------------------------------------- |
| termAuctionId                 | bytes32 | The id of the auction cancelled                                 |
| nonViableAuction              | bool    | Auction not viable due to bid and offer prices not intersecting |
| auctionCancelledforWithdrawal | bool    | Auction has been cancelled for manual fund withdrawal           |

### emitCompleteAuctionPaused

```solidity
function emitCompleteAuctionPaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                     |
| ------------- | ------- | ----------------------------------------------- |
| termAuctionId | bytes32 | The id of the auction paused                    |
| termRepoId    | bytes32 | The Term Repo id associated with auction paused |

### emitCompleteAuctionUnpaused

```solidity
function emitCompleteAuctionUnpaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                       |
| ------------- | ------- | ------------------------------------------------- |
| termAuctionId | bytes32 | The id of the auction unpaused                    |
| termRepoId    | bytes32 | The Term Repo id associated with auction unpaused |

### emitTermAuctionBidLockerInitialized

```solidity
function emitTermAuctionBidLockerInitialized(bytes32 termRepoId, bytes32 termAuctionId, address termAuctionBidLocker, uint256 auctionStartTime, uint256 revealTime, uint256 maxBidPrice, uint256 minimumTenderAmount, uint256 dayCountFractionMantissa) external
```

#### Parameters

| Name                     | Type    | Description                                                       |
| ------------------------ | ------- | ----------------------------------------------------------------- |
| termRepoId               | bytes32 | The Term Repo id associated with BidLocker initialized            |
| termAuctionId            | bytes32 | The Term Auction id associated with BidLocker initialized         |
| termAuctionBidLocker     | address | The address of the TermAuctionBidLocker contract being intialized |
| auctionStartTime         | uint256 | The time at which auction bids will be accepted for submission    |
| revealTime               | uint256 | The time at which sealed auction bids can be revealed             |
| maxBidPrice              | uint256 | The maximum bid price for the auction                             |
| minimumTenderAmount      | uint256 | The minimum tender amount for the auction                         |
| dayCountFractionMantissa | uint256 | The day count fraction remainder                                  |

### emitBidLocked

```solidity
function emitBidLocked(bytes32 termAuctionId, struct TermAuctionBid bid, address referralAddress) external
```

#### Parameters

| Name            | Type                  | Description                                        |
| --------------- | --------------------- | -------------------------------------------------- |
| termAuctionId   | bytes32               | A Term Auction id                                  |
| bid             | struct TermAuctionBid | A struct containing details of the locked bid      |
| referralAddress | address               | The address of the referrer. Zero Address if none. |

### emitBidRevealed

```solidity
function emitBidRevealed(bytes32 termAuctionId, bytes32 id, uint256 bidPrice) external
```

#### Parameters

| Name          | Type    | Description                   |
| ------------- | ------- | ----------------------------- |
| termAuctionId | bytes32 | A Term Auction id             |
| id            | bytes32 | The bid id                    |
| bidPrice      | uint256 | The revealed price of the bid |

### emitBidUnlocked

```solidity
function emitBidUnlocked(bytes32 termAuctionId, bytes32 id) external
```

#### Parameters

| Name          | Type    | Description       |
| ------------- | ------- | ----------------- |
| termAuctionId | bytes32 | A Term Auction id |
| id            | bytes32 | A bid id          |

### emitBidInShortfall

```solidity
function emitBidInShortfall(bytes32 termAuctionId, bytes32 id) external
```

#### Parameters

| Name          | Type    | Description       |
| ------------- | ------- | ----------------- |
| termAuctionId | bytes32 | A Term Auction id |
| id            | bytes32 | A bid id          |

### emitBidLockingPaused

```solidity
function emitBidLockingPaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                        |
| ------------- | ------- | -------------------------------------------------- |
| termAuctionId | bytes32 | The id of Term Auction where bid locking is paused |
| termRepoId    | bytes32 | The Term Repo id where bid locking is paused       |

### emitBidLockingUnpaused

```solidity
function emitBidLockingUnpaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                          |
| ------------- | ------- | ---------------------------------------------------- |
| termAuctionId | bytes32 | The id of Term Auction where bid locking is unpaused |
| termRepoId    | bytes32 | The Term Repo id where bid locking is unpaused       |

### emitBidUnlockingPaused

```solidity
function emitBidUnlockingPaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                          |
| ------------- | ------- | ---------------------------------------------------- |
| termAuctionId | bytes32 | The id of Term Auction where bid unlocking is paused |
| termRepoId    | bytes32 | The Term Repo id where bid unlocking is paused       |

### emitBidUnlockingUnpaused

```solidity
function emitBidUnlockingUnpaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                            |
| ------------- | ------- | ------------------------------------------------------ |
| termAuctionId | bytes32 | The id of Term Auction where bid unlocking is unpaused |
| termRepoId    | bytes32 | The Term Repo id where bid unlocking is unpaused       |

### emitTermAuctionOfferLockerInitialized

```solidity
function emitTermAuctionOfferLockerInitialized(bytes32 termRepoId, bytes32 termAuctionId, address termAuctionOfferLocker, uint256 auctionStartTime, uint256 revealTime, uint256 maxOfferPrice, uint256 minimumTenderAmount) external
```

#### Parameters

| Name                   | Type    | Description                                                         |
| ---------------------- | ------- | ------------------------------------------------------------------- |
| termRepoId             | bytes32 | The Term Repo id associated with OfferLocker initialized            |
| termAuctionId          | bytes32 | The Term Auction id associated with OfferLocker initialized         |
| termAuctionOfferLocker | address | The address of the TermAuctionOfferLocker contract being intialized |
| auctionStartTime       | uint256 | The time at which auction bids will be accepted for submission      |
| revealTime             | uint256 | The time at which sealed auction bids can be revealed               |
| maxOfferPrice          | uint256 | The maximum offer price for the auction                             |
| minimumTenderAmount    | uint256 | The minimum tender amount for the auction                           |

### emitOfferLocked

```solidity
function emitOfferLocked(bytes32 termAuctionId, bytes32 id, address offeror, bytes32 offerPrice, uint256 amount, address purchaseToken, address referralAddress) external
```

#### Parameters

| Name            | Type    | Description                                        |
| --------------- | ------- | -------------------------------------------------- |
| termAuctionId   | bytes32 | A Term Auction id                                  |
| id              | bytes32 | An offer id                                        |
| offeror         | address | The address of the offeror                         |
| offerPrice      | bytes32 | The offer price                                    |
| amount          | uint256 | The amount of purchase tokens offered              |
| purchaseToken   | address | The address of the purchase token being offered    |
| referralAddress | address | The address of the referrer. Zero Address if none. |

### emitOfferRevealed

```solidity
function emitOfferRevealed(bytes32 termAuctionId, bytes32 id, uint256 offerPrice) external
```

#### Parameters

| Name          | Type    | Description              |
| ------------- | ------- | ------------------------ |
| termAuctionId | bytes32 | A Term Auction id        |
| id            | bytes32 | An offer id              |
| offerPrice    | uint256 | The offer price revealed |

### emitOfferUnlocked

```solidity
function emitOfferUnlocked(bytes32 termAuctionId, bytes32 id) external
```

#### Parameters

| Name          | Type    | Description       |
| ------------- | ------- | ----------------- |
| termAuctionId | bytes32 | A Term Auction id |
| id            | bytes32 | An offer id       |

### emitOfferLockingPaused

```solidity
function emitOfferLockingPaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                          |
| ------------- | ------- | ---------------------------------------------------- |
| termAuctionId | bytes32 | The id of Term Auction where offer locking is paused |
| termRepoId    | bytes32 | The Term Repo id where offer locking is paused       |

### emitOfferLockingUnpaused

```solidity
function emitOfferLockingUnpaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                            |
| ------------- | ------- | ------------------------------------------------------ |
| termAuctionId | bytes32 | The id of Term Auction where offer locking is unpaused |
| termRepoId    | bytes32 | The Term Repo id where offer locking is unpaused       |

### emitOfferUnlockingPaused

```solidity
function emitOfferUnlockingPaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                            |
| ------------- | ------- | ------------------------------------------------------ |
| termAuctionId | bytes32 | The id of Term Auction where offer unlocking is paused |
| termRepoId    | bytes32 | The Term Repo id where offer unlocking is paused       |

### emitOfferUnlockingUnpaused

```solidity
function emitOfferUnlockingUnpaused(bytes32 termAuctionId, bytes32 termRepoId) external
```

#### Parameters

| Name          | Type    | Description                                              |
| ------------- | ------- | -------------------------------------------------------- |
| termAuctionId | bytes32 | The id of Term Auction where offer unlocking is unpaused |
| termRepoId    | bytes32 | The Term Repo id where offer unlocking is unpaused       |

### emitTermRepoCollateralManagerInitialized

```solidity
function emitTermRepoCollateralManagerInitialized(bytes32 termRepoId, address termRepoCollateralManager, address[] collateralTokens, uint256[] initialCollateralRatios, uint256[] maintenanceCollateralRatios, uint256[] liquidatedDamagesSchedule) external
```

#### Parameters

| Name                        | Type       | Description                                                                     |
| --------------------------- | ---------- | ------------------------------------------------------------------------------- |
| termRepoId                  | bytes32    | The Term Repo id associated with collateral manger being initialized            |
| termRepoCollateralManager   | address    | The address of the TermRepoCollateralManager contract being intialized          |
| collateralTokens            | address\[] | An array containing a list of the addresses of all accepted collateral tokens   |
| initialCollateralRatios     | uint256\[] | An array containing the initial collateral ratios for each collateral token     |
| maintenanceCollateralRatios | uint256\[] | An array containing the maintenance collateral ratios for each collateral token |
| liquidatedDamagesSchedule   | uint256\[] | An array containing the liquidated damages applicable to each collateral token  |

### emitPairReopeningBidLocker

```solidity
function emitPairReopeningBidLocker(bytes32 termRepoId, address termRepoCollateralManager, address termAuctionBidLocker) external
```

#### Parameters

| Name                      | Type    | Description                                                            |
| ------------------------- | ------- | ---------------------------------------------------------------------- |
| termRepoId                | bytes32 | The Term Repo id for the Term Repo being reopened                      |
| termRepoCollateralManager | address | The TermRepoCollateralManager address for the Term Repo being reopened |
| termAuctionBidLocker      | address | The new TermAuctionBidLocker to be paired for reopening                |

### emitCollateralLocked

```solidity
function emitCollateralLocked(bytes32 termRepoId, address borrower, address collateralToken, uint256 amount) external
```

#### Parameters

| Name            | Type    | Description                                |
| --------------- | ------- | ------------------------------------------ |
| termRepoId      | bytes32 | A Term Repo id                             |
| borrower        | address | The address of the borrower                |
| collateralToken | address | The address of the collateral token locked |
| amount          | uint256 | The amount of collateral being locked      |

### emitCollateralUnlocked

```solidity
function emitCollateralUnlocked(bytes32 termRepoId, address borrower, address collateralToken, uint256 amount) external
```

#### Parameters

| Name            | Type    | Description                                |
| --------------- | ------- | ------------------------------------------ |
| termRepoId      | bytes32 | A Term Repo id                             |
| borrower        | address | The address of the borrower                |
| collateralToken | address | The address of the collateral token locked |
| amount          | uint256 | The amount of collateral being unlocked    |

### emitLiquidation

```solidity
function emitLiquidation(bytes32 termRepoId, address borrower, address liquidator, uint256 closureAmount, address collateralToken, uint256 amountLiquidated, uint256 protocolSeizureAmount, bool defaultLiquidation) external
```

#### Parameters

| Name                  | Type    | Description                                     |
| --------------------- | ------- | ----------------------------------------------- |
| termRepoId            | bytes32 | A Term Repo id                                  |
| borrower              | address | The address of the borrower                     |
| liquidator            | address | The address of the liquidator                   |
| closureAmount         | uint256 | The amount of repurchase exposure covered       |
| collateralToken       | address | The address of the collateral tokens liquidated |
| amountLiquidated      | uint256 | The amount of collateral tokens liquidated      |
| protocolSeizureAmount | uint256 |                                                 |
| defaultLiquidation    | bool    |                                                 |

### emitLiquidationPaused

```solidity
function emitLiquidationPaused(bytes32 termRepoId) external
```

#### Parameters

| Name       | Type    | Description                                       |
| ---------- | ------- | ------------------------------------------------- |
| termRepoId | bytes32 | The id of Term Repo where liquidations are paused |

### emitLiquidationUnpaused

```solidity
function emitLiquidationUnpaused(bytes32 termRepoId) external
```

#### Parameters

| Name       | Type    | Description                                       |
| ---------- | ------- | ------------------------------------------------- |
| termRepoId | bytes32 | The id of Term Repo where liquidation is unpaused |

### emitTermRepoServicerInitialized

```solidity
function emitTermRepoServicerInitialized(bytes32 termRepoId, address termRepoServicer, address purchaseToken, uint256 maturityTimestamp, uint256 endOfRepurchaseWindow, uint256 redemptionTimestamp, uint256 servicingFee, string version) external
```

#### Parameters

| Name                  | Type    | Description                                                         |
| --------------------- | ------- | ------------------------------------------------------------------- |
| termRepoId            | bytes32 | The Term Repo id associated with TermRepoServicer being initialized |
| termRepoServicer      | address | The address of the TermRepoServicer contract being initialized      |
| purchaseToken         | address | The address of the purchase token                                   |
| maturityTimestamp     | uint256 | The time at which repurchase is due                                 |
| endOfRepurchaseWindow | uint256 | The time at which the repurchase window ends                        |
| redemptionTimestamp   | uint256 | The time when redemption of Term Repo Tokens begins                 |
| servicingFee          | uint256 | percentage share of bid amounts charged to bidder                   |
| version               | string  | The version tag of the smart contract deployed                      |

### emitReopeningOfferLockerPaired

```solidity
function emitReopeningOfferLockerPaired(bytes32 termRepoId, address termRepoServicer, address termAuctionOfferLocker, address termAuction) external
```

#### Parameters

| Name                   | Type    | Description                                                                   |
| ---------------------- | ------- | ----------------------------------------------------------------------------- |
| termRepoId             | bytes32 | The Term Repo id for the Term Repo being reopened                             |
| termRepoServicer       | address | The address of the TermRepoServicer contract for the Term Repo being reopened |
| termAuctionOfferLocker | address | The TermAuctionOfferLocker to be paired for reopening                         |
| termAuction            | address | The address of the TermAuction contract to be paired for reopening            |

### emitOfferLockedByServicer

```solidity
function emitOfferLockedByServicer(bytes32 termRepoId, address offeror, uint256 amount) external
```

This event is not to be confused with OfferLocked by TermOfferLocker Both this event and OfferLocked will be triggered, this one specifically refers to corresponding action taken by Term Servicer

#### Parameters

| Name       | Type    | Description                   |
| ---------- | ------- | ----------------------------- |
| termRepoId | bytes32 | A Term Repo id                |
| offeror    | address | The address of the offeror    |
| amount     | uint256 | The offer amount to be locked |

### emitOfferUnlockedByServicer

```solidity
function emitOfferUnlockedByServicer(bytes32 termRepoId, address offeror, uint256 amount) external
```

This event is not to be confused with OfferUnlocked by TermOfferLocker Both this event and OfferLocked will be triggered, this one specifically refers to corresponding action taken by Term Servicer

#### Parameters

| Name       | Type    | Description                     |
| ---------- | ------- | ------------------------------- |
| termRepoId | bytes32 | A Term Repo id                  |
| offeror    | address | The address of the offeror      |
| amount     | uint256 | The offer amount to be unlocked |

### emitOfferFulfilled

```solidity
function emitOfferFulfilled(bytes32 offerId, address offeror, uint256 purchasePrice, uint256 repurchasePrice, uint256 repoTokensMinted) external
```

#### Parameters

| Name             | Type    | Description                                      |
| ---------------- | ------- | ------------------------------------------------ |
| offerId          | bytes32 | A unique offer id                                |
| offeror          | address | The address of the offeror                       |
| purchasePrice    | uint256 | The offer amount fulfilled                       |
| repurchasePrice  | uint256 | The repurchase price due to offeror at maturity  |
| repoTokensMinted | uint256 | The amount of Term Repo Tokens minted to offeror |

### emitTermRepoTokensRedeemed

```solidity
function emitTermRepoTokensRedeemed(bytes32 termRepoId, address redeemer, uint256 redemptionAmount, uint256 redemptionHaircut) external
```

#### Parameters

| Name              | Type    | Description                                                                    |
| ----------------- | ------- | ------------------------------------------------------------------------------ |
| termRepoId        | bytes32 | A Term Repo id                                                                 |
| redeemer          | address | The address of the redeemer                                                    |
| redemptionAmount  | uint256 | The amount of TermRepoTokens redeemed                                          |
| redemptionHaircut | uint256 | The haircut applied to redemptions (if any) due to unrecoverable repo exposure |

### emitBidFulfilled

```solidity
function emitBidFulfilled(bytes32 termRepoId, address bidder, uint256 purchasePrice, uint256 repurchasePrice, uint256 servicingFees) external
```

#### Parameters

| Name            | Type    | Description                          |
| --------------- | ------- | ------------------------------------ |
| termRepoId      | bytes32 | A Term Repo id                       |
| bidder          | address | The address of the bidder            |
| purchasePrice   | uint256 | The bid amount fulfilled in auction  |
| repurchasePrice | uint256 | The repurchase price due at maturity |
| servicingFees   | uint256 | The fees earned by the protocol      |

### emitExposureOpenedOnRolloverNew

```solidity
function emitExposureOpenedOnRolloverNew(bytes32 termRepoId, address borrower, uint256 purchasePrice, uint256 repurchasePrice, uint256 servicingFees) external
```

#### Parameters

| Name            | Type    | Description                                              |
| --------------- | ------- | -------------------------------------------------------- |
| termRepoId      | bytes32 | A Term Repo id                                           |
| borrower        | address | The address of the borrower                              |
| purchasePrice   | uint256 | The purchase price received from new TermRepo            |
| repurchasePrice | uint256 | The new repurchase price due at maturity of new TermRepo |
| servicingFees   | uint256 | The fees earned by the protocol                          |

### emitExposureClosedOnRolloverExisting

```solidity
function emitExposureClosedOnRolloverExisting(bytes32 termRepoId, address borrower, uint256 amountRolled) external
```

#### Parameters

| Name         | Type    | Description                                             |
| ------------ | ------- | ------------------------------------------------------- |
| termRepoId   | bytes32 | A Term Repo id                                          |
| borrower     | address | The address of the borrower                             |
| amountRolled | uint256 | The repurchase exposure balance closed on old Term Repo |

### emitRepurchasePaymentSubmitted

```solidity
function emitRepurchasePaymentSubmitted(bytes32 termRepoId, address borrower, uint256 amount) external
```

#### Parameters

| Name       | Type    | Description                         |
| ---------- | ------- | ----------------------------------- |
| termRepoId | bytes32 | A Term Repo id                      |
| borrower   | address | The address of the borrower         |
| amount     | uint256 | The amount submitted for repurchase |

### emitMintExposureAccessGranted

```solidity
function emitMintExposureAccessGranted(bytes32 termRepoId, address authedUser) external
```

#### Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| termRepoId | bytes32 | A Term Repo id                    |
| authedUser | address | User granted mint exposure access |

### emitMintExposure

```solidity
function emitMintExposure(bytes32 termRepoId, address minter, uint256 netTokensReceived, uint256 servicingFeeTokens, uint256 repurchasePrice) external
```

#### Parameters

| Name               | Type    | Description                                                             |
| ------------------ | ------- | ----------------------------------------------------------------------- |
| termRepoId         | bytes32 | A Term Repo id                                                          |
| minter             | address | The address of the minter                                               |
| netTokensReceived  | uint256 | The amount of Term Repo Tokens received by minter net of servicing fees |
| servicingFeeTokens | uint256 | The number of Term Repo Tokens retained by protocol in servicing fees   |
| repurchasePrice    | uint256 | The repurchase exposure opened by minter against Term Repo Token mint   |

### emitBurnCollapseExposure

```solidity
function emitBurnCollapseExposure(bytes32 termRepoId, address borrower, uint256 closeAmount) external
```

#### Parameters

| Name        | Type    | Description                                |
| ----------- | ------- | ------------------------------------------ |
| termRepoId  | bytes32 | A Term Repo id                             |
| borrower    | address | The address of the borrower                |
| closeAmount | uint256 | The amount of repurchase exposure to close |

### emitTermRepoRolloverManagerInitialized

```solidity
function emitTermRepoRolloverManagerInitialized(bytes32 termRepoId, address rolloverManager) external
```

#### Parameters

| Name            | Type    | Description                                                                |
| --------------- | ------- | -------------------------------------------------------------------------- |
| termRepoId      | bytes32 | The Term Repo id associated with TermRepoRolloverManager being initialized |
| rolloverManager | address | The address of the TermRepoRolloverManager contract being initialized      |

### emitRolloverTermApproved

```solidity
function emitRolloverTermApproved(bytes32 termRepoId, bytes32 rolloverTermAuctionId) external
```

#### Parameters

| Name                  | Type    | Description                                                  |
| --------------------- | ------- | ------------------------------------------------------------ |
| termRepoId            | bytes32 | The Term Repo id of existing Term Repo                       |
| rolloverTermAuctionId | bytes32 | The Term Auction Id that rollover bid will be submitted into |

### emitRolloverTermApprovalRevoked

```solidity
function emitRolloverTermApprovalRevoked(bytes32 termRepoId, bytes32 rolloverTermAuctionId) external
```

#### Parameters

| Name                  | Type    | Description                                            |
| --------------------- | ------- | ------------------------------------------------------ |
| termRepoId            | bytes32 | The Term Repo id of existing Term Repo                 |
| rolloverTermAuctionId | bytes32 | The Term Auction Id whose rollover approval is revoked |

### emitRolloverElection

```solidity
function emitRolloverElection(bytes32 termRepoId, bytes32 rolloverTermRepoId, address borrower, address rolloverAuction, uint256 rolloverAmount, bytes32 hashedBidPrice) external
```

#### Parameters

| Name               | Type    | Description                                     |
| ------------------ | ------- | ----------------------------------------------- |
| termRepoId         | bytes32 | The Term Repo id of existing Term Repo          |
| rolloverTermRepoId | bytes32 | The Term Repo Id of Rollover Term Repo          |
| borrower           | address | The address of the borrower                     |
| rolloverAuction    | address | The address of the auction being rolled over to |
| rolloverAmount     | uint256 | The repurchase amount being rolled over         |
| hashedBidPrice     | bytes32 | The hash of the rollover bid price              |

### emitRolloverCancellation

```solidity
function emitRolloverCancellation(bytes32 termRepoId, address borrower) external
```

#### Parameters

| Name       | Type    | Description                            |
| ---------- | ------- | -------------------------------------- |
| termRepoId | bytes32 | The Term Repo id of existing Term Repo |
| borrower   | address | The address of the borrower            |

### emitRolloverProcessed

```solidity
function emitRolloverProcessed(bytes32 termRepoId, address borrower) external
```

#### Parameters

| Name       | Type    | Description                            |
| ---------- | ------- | -------------------------------------- |
| termRepoId | bytes32 | The Term Repo id of existing Term Repo |
| borrower   | address | The address of the borrower            |

### emitTermRepoLockerInitialized

```solidity
function emitTermRepoLockerInitialized(bytes32 termRepoId, address termRepoLocker) external
```

#### Parameters

| Name           | Type    | Description                                                                |
| -------------- | ------- | -------------------------------------------------------------------------- |
| termRepoId     | bytes32 | The Term Repo id associated with TermRepoLocker contract being initialized |
| termRepoLocker | address | The address of the TermRepoLocker contract being initialized               |

### emitTermRepoLockerTransfersPaused

```solidity
function emitTermRepoLockerTransfersPaused(bytes32 termRepoId) external
```

#### Parameters

| Name       | Type    | Description    |
| ---------- | ------- | -------------- |
| termRepoId | bytes32 | A Term Repo id |

### emitTermRepoLockerTransfersUnpaused

```solidity
function emitTermRepoLockerTransfersUnpaused(bytes32 termRepoId) external
```

#### Parameters

| Name       | Type    | Description    |
| ---------- | ------- | -------------- |
| termRepoId | bytes32 | A Term Repo id |

### emitTermRepoTokenInitialized

```solidity
function emitTermRepoTokenInitialized(bytes32 termRepoId, address termRepoToken, uint256 redemptionRatio) external
```

#### Parameters

| Name            | Type    | Description                                                                 |
| --------------- | ------- | --------------------------------------------------------------------------- |
| termRepoId      | bytes32 | The Term Repo id associated with the TermRepoToken being initalized         |
| termRepoToken   | address | The address of the TermRepoToken contract being initialized                 |
| redemptionRatio | uint256 | The number of purchase tokens redeemable per unit of Term Repo Token at par |

### emitTermRepoTokenMintingPaused

```solidity
function emitTermRepoTokenMintingPaused(bytes32 termRepoId) external
```

#### Parameters

| Name       | Type    | Description                                                                |
| ---------- | ------- | -------------------------------------------------------------------------- |
| termRepoId | bytes32 | The Term Repo id associated with the TermRepoToken where minting is paused |

### emitTermRepoTokenMintingUnpaused

```solidity
function emitTermRepoTokenMintingUnpaused(bytes32 termRepoId) external
```

#### Parameters

| Name       | Type    | Description                                                                  |
| ---------- | ------- | ---------------------------------------------------------------------------- |
| termRepoId | bytes32 | The Term Repo id associated with the TermRepoToken where minting is unpaused |

### emitTermRepoTokenBurningPaused

```solidity
function emitTermRepoTokenBurningPaused(bytes32 termRepoId) external
```

#### Parameters

| Name       | Type    | Description                                                                |
| ---------- | ------- | -------------------------------------------------------------------------- |
| termRepoId | bytes32 | The Term Repo id associated with the TermRepoToken where burning is paused |

### emitTermRepoTokenBurningUnpaused

```solidity
function emitTermRepoTokenBurningUnpaused(bytes32 termRepoId) external
```

#### Parameters

| Name       | Type    | Description                                                                  |
| ---------- | ------- | ---------------------------------------------------------------------------- |
| termRepoId | bytes32 | The Term Repo id associated with the TermRepoToken where burning is unpaused |

### emitDelistTermRepo

```solidity
function emitDelistTermRepo(bytes32 termRepoId) external
```

#### Parameters

| Name       | Type    | Description                            |
| ---------- | ------- | -------------------------------------- |
| termRepoId | bytes32 | The id of the Term Repo being delisted |

### emitDelistTermAuction

```solidity
function emitDelistTermAuction(bytes32 termAuctionId) external
```

#### Parameters

| Name          | Type    | Description                               |
| ------------- | ------- | ----------------------------------------- |
| termAuctionId | bytes32 | The id of the Term Auction being delisted |

### emitTermContractUpgraded

```solidity
function emitTermContractUpgraded(address proxy, address implementation) external
```

#### Parameters

| Name           | Type    | Description                                             |
| -------------- | ------- | ------------------------------------------------------- |
| proxy          | address | address of proxy contract                               |
| implementation | address | address of new impl contract proxy has been upgraded to |

### \_authorizeUpgrade

```solidity
function _authorizeUpgrade(address) internal view
```

*required override by the OpenZeppelin UUPS module*
