# 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*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.term.finance/0.9.0/protocol-class/termeventemitter.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
