> For the complete documentation index, see [llms.txt](https://developers.term.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.term.finance/protocol-security/smart-contract-monitoring.md).

# Smart Contract Monitoring

### Monitoring

All access controlled contract calls and calls pertaining to contract deployment trigger alerts in real-time via OpenZeppelin Defender Contract Sentinels. This is done by monitoring the contracts in the following table. Note, in addition to monitoring calls at the Protocol level, monitoring is also done on the Protocol's Zodial Delay Modifier through which all DEVOPS\_ROLE calls must be initiated in order to provide a second layer of ACL intrusion detection.

<table><thead><tr><th width="230">Contract</th><th width="157">Role</th><th>Events/Functions</th></tr></thead><tbody><tr><td><strong>Event Emitter 0.6.0</strong></td><td><pre><code>ADMIN_ROLE
</code></pre></td><td><code>AuctionCancelled(bytes32,bool,bool)AuctionCompleted(bytes32,uint256,uint256,uint256,uint256,uint256)BidLockingPaused(bytes32,bytes32)BidLockingUnpaused(bytes32,bytes32)BidUnlockingPaused(bytes32,bytes32)BidUnlockingUnpaused(bytes32,bytes32)CompleteAuctionPaused(bytes32,bytes32)CompleteAuctionUnpaused(bytes32,bytes32)DelistTermAuction(bytes32)DelistTermRepo(bytes32)LiquidationsPaused(bytes32)LiquidationsUnpaused(bytes32)MintExposureAccessGranted(bytes32,address)OfferLockingPaused(bytes32,bytes32)OfferLockingUnpaused(bytes32,bytes32)OfferUnlockingPaused(bytes32,bytes32)OfferUnlockingUnpaused(bytes32,bytes32)RolloverTermApprovalRevoked(bytes32,bytes32)RolloverTermApproved(bytes32,bytes32)TermRepoLockerTransfersPaused(bytes32)TermRepoLockerTransfersUnpaused(bytes32)TermRepoTokenBurningPaused(bytes32)TermRepoTokenBurningUnpaused(bytes32)TermRepoTokenMintingPaused(bytes32)TermRepoTokenMintingUnpaused(bytes32)</code></td></tr><tr><td><strong>Event Emitter 0.6.0</strong></td><td><pre data-full-width="true"><code>DEVOPS_ROLE
</code></pre></td><td><code>TermContractUpgraded(address,address)</code></td></tr><tr><td><strong>Term Initializer 0.6.0</strong></td><td><pre><code>DEPLOYER
</code></pre></td><td><code>pairTermContracts(address,address,address)setupAuction(address,address,address,address,address,address,address,string)setupTerm((address,address,address,address,address,address,address,address),address,address,string,string)</code></td></tr><tr><td><strong>Term Initializer 0.6.0</strong></td><td><pre><code>DEVOPS_ROLE
</code></pre></td><td><code>pauseDeploying()unpauseDeploying()</code></td></tr><tr><td><strong>Term Controller 0.6.0</strong></td><td><pre><code>DEPLOYER
</code></pre></td><td><code>markTermDeployed(address)unmarkTermDeployed(address)</code></td></tr><tr><td><strong>Term Controller - 0.6.0</strong></td><td><pre><code>DEVOPS_ROLE
</code></pre></td><td><code>ProtocolReserveAddressUpdated(address,address)TreasuryAddressUpdated(address,address)updateControllerAdminWallet(address,address)</code></td></tr><tr><td><strong>Term Oracle - 0.6.0</strong></td><td><pre><code>DEVOPS_ROLE
</code></pre></td><td><code>Upgraded(address)addNewTokenPriceFeed(address,address)removeTokenPriceFeed(address)</code></td></tr><tr><td><strong>Zodiac Delay Module</strong></td><td><pre><code>DEVOPS_ROLE
</code></pre></td><td><code>disableModule(address,address)enableModule(address)execTransactionFromModule(address,uint256,bytes,uint8)executeNextTx(address,uint256,bytes,uint8)setAvatar(address)setTarget(address)setTxCooldown(uint256)setTxExpiration(uint256)setTxNonce(uint256)</code></td></tr></tbody></table>
