> For the complete documentation index, see [llms.txt](https://docs.fly.trade/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fly.trade/developers/deprecated-magpie-contracts/magpieaggregator-diamond-proxy/pauser/libpauser.md).

# LibPauser

The purpose of this library is to provide pause and unpause functionality for a contract.

### pause():

It retrieves the storage state of the contract using `LibMagpieAggregator.getStorage()`.&#x20;

It sets the `paused` variable of the storage state to `true`. This variable is used to indicate whether the contract is currently paused or not.

It emits a `Paused` event, passing `msg.sender` as the parameter. The `Paused` event is emitted to notify listeners that the contract has been paused, and `msg.sender` represents the address of the sender who triggered the `pause` function.

### unpause():

It retrieves the storage state of the contract using `LibMagpieAggregator.getStorage()`.&#x20;

It sets the `paused` variable of the storage state to `false`. This variable is used to indicate whether the contract is currently paused or not.

It emits a `Paused` event, passing `msg.sender` as the parameter. The `Paused` event is emitted to notify listeners that the contract has been unpaused, and `msg.sender` represents the address of the sender who triggered the `unpause` function.

### enforceIsNotPaused():

The purpose of this function is to enforce that certain operations can only be performed when the contract is not paused. If the contract is indeed paused, the function reverts the transaction and provides an error message indicating that the contract is paused. This helps ensure that critical functions or actions are not performed during a paused state, maintaining the desired behavior and security of the contract.
