# Pauser Role

The smart contracts used in the Teller Platform often have `Pauser/owner` variables to designate the party with special privileges to make modifications to the platform's settings. In the spirit of transparency in the decentralized world, these roles are documented below for the Teller Finance platform.

## Pauser Role

The `Pauser` role is set in the Settings smart contract for the Teller platform and inherited into the platform's smart contracts.&#x20;

{% hint style="info" %}
Ethereum wallet addresses are assigned `Pauser` role through the Teller Protocol to govern the management and development of the Teller Platform.
{% endhint %}

The Teller Protocol wallet addresses with the Pauser role can govern methods in the following contracts:

### ChainlinkAggregator

| Method                                                                                                                                                    | Action                                                      |
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| <p><code>add(</code></p><p>  <code>address src,</code></p><p>  <code>address dst,</code></p><p>  <code>address aggregator</code></p><p><code>)</code></p> | Registers additional new pair aggregators for given markets |
| <p><code>remove(</code></p><p>  <code>address src,</code></p><p>  <code>address dst</code></p><p><code>)</code></p>                                       | Unregisters a single pair aggregator for a given market     |
| <p><code>add(</code></p><p>  <code>address token</code></p><p><code>)</code></p>                                                                          | Removes aggregator support for a specific token             |

### DappFactory

| Method                                                                                                                      | Action                                  |
| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| <p><code>addDapp(</code></p><p>  <code>address dapp,</code></p><p>  <code>bool unsecured</code></p><p><code>)</code></p>    | Adds a new dApp to the factory          |
| <p><code>updateDapp(</code></p><p>  <code>address dapp,</code></p><p>  <code>bool unsecured</code></p><p><code>)</code></p> | Updates a current dApp in the factory   |
| `removeDapp(address dapp)`                                                                                                  | Removes a current dApp from the factory |

### MarketFactory

| Method                                                                                                                                          | Action                                                         |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| <p><code>createMarket(</code></p><p>  <code>address lendingToken,</code> </p><p>  <code>address collateralToken</code></p><p><code>)</code></p> | Creates a new market for a given lending and collateral tokens |

### Settings

| Method                                                                                                                                                                                                                        | Action                                                                         |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| `pause()`                                                                                                                                                                                                                     | Pauses the platform, stopping the contract state                               |
| `unpause()`                                                                                                                                                                                                                   | **Unp**auses the platform, restarting the contract state                       |
| `adddPauser(address account)`                                                                                                                                                                                                 | Adds an account as a pauser                                                    |
| `removePauser(address account)`                                                                                                                                                                                               | Removes an account as a pauser                                                 |
| <p><code>createPlatformSetting(</code></p><p>  <code>bytes32 settingName,</code> </p><p>  <code>uint256 value,</code> </p><p>  <code>uint256 minValue,</code> </p><p>  <code>uint256 maxValue</code></p><p><code>)</code></p> | Creates a new platform setting given a setting name, value, min and max values |
| <p><code>updatePlatformSetting(</code></p><p>  <code>bytes32 settingName,</code> </p><p>  <code>uint256 newValue</code></p><p><code>)</code></p>                                                                              | Updates an existent platform setting given a setting name                      |
| `removePlatformSetting(bytes32 settingName)`                                                                                                                                                                                  | Removes a current platform setting given a setting name                        |
| `pauseLendingPool(address lendingPoolAddress)`                                                                                                                                                                                | Pauses a specific lending pool                                                 |
| `unpauseLendingPool(address lendingPoolAddress)`                                                                                                                                                                              | Unpauses a specific lending pool                                               |
