# Pool Manager

### currency

```solidity
function currency() external view returns (address)
```

Get the currency address.

| Name | Type    | Description                  |
| ---- | ------- | ---------------------------- |
| \[0] | address | The address of the currency. |

### poolId

```solidity
function poolId() external view returns (string)
```

Get the pool id.

| Name | Type   | Description  |
| ---- | ------ | ------------ |
| \[0] | string | The pool id. |

### poolName

```solidity
function poolName() external view returns (string)
```

Get the pool name.

| Name | Type   | Description    |
| ---- | ------ | -------------- |
| \[0] | string | The pool name. |

### decimals

```solidity
function decimals() external pure returns (uint8)
```

Get the decimals of the pool.

| Name | Type  | Description               |
| ---- | ----- | ------------------------- |
| \[0] | uint8 | The decimals of the pool. |

### verifier

```solidity
function verifier() external view returns (address)
```

Get the verifier address.

| Name | Type    | Description                                                         |
| ---- | ------- | ------------------------------------------------------------------- |
| \[0] | address | The address of the verifier that provides the verification service. |

### riskCarrierManager

```solidity
function riskCarrierManager() external view returns (address)
```

Get the risk carrier manager address.

| Name | Type    | Description                              |
| ---- | ------- | ---------------------------------------- |
| \[0] | address | The address of the risk carrier manager. |

### upfrontManager

```solidity
function upfrontManager() external view returns (address)
```

Get the upfront manager address.

| Name | Type    | Description                         |
| ---- | ------- | ----------------------------------- |
| \[0] | address | The address of the upfront manager. |

### validatorManager

```solidity
function validatorManager() external view returns (address)
```

Get the validator manager address.

| Name | Type    | Description                           |
| ---- | ------- | ------------------------------------- |
| \[0] | address | The address of the validator manager. |

### setCurrency

```solidity
function setCurrency(address _addr_) external
```

Set the currency address.

Requirements:

* `msg.sender` - The caller must have the role of `SUPER_MANAGER_LEVEL`.

Events:

* `CurrencyChanged` - Emitted when the currency address is changed successfully.

| Name   | Type    | Description                  |
| ------ | ------- | ---------------------------- |
| *addr* | address | The address of the currency. |

#### CurrencyChanged

```solidity
event CurrencyChanged(address currency)
```

This event is emitted when the currency address is changed.

| Name     | Type    | Description           |
| -------- | ------- | --------------------- |
| currency | address | The currency address. |

### setPoolName

```solidity
function setPoolName(string _poolName_) external
```

Set the pool name.

Requirements:

* `msg.sender` - The caller must have the role of `SUPER_MANAGER_LEVEL`.

Events:

* `PoolNameChanged` - Emitted when the pool name is changed successfully.

| Name       | Type   | Description    |
| ---------- | ------ | -------------- |
| *poolName* | string | The pool name. |

#### PoolNameChanged

```solidity
event PoolNameChanged(string poolName)
```

This event is emitted when the pool name is changed.

| Name     | Type   | Description    |
| -------- | ------ | -------------- |
| poolName | string | The pool name. |

### setPoolId

```solidity
function setPoolId(string _poolId_) external
```

Set the pool id.

Requirements:

* `msg.sender` - The caller must have the role of `SUPER_MANAGER_LEVEL`.

Events:

* `PoolIdChanged` - Emitted when the pool id is changed successfully.

| Name     | Type   | Description  |
| -------- | ------ | ------------ |
| *poolId* | string | The pool id. |

PoolIdChanged

```solidity
event PoolIdChanged(string poolId)
```

This event is emitted when the pool id is changed.

| Name   | Type   | Description  |
| ------ | ------ | ------------ |
| poolId | string | The pool id. |

### setVerifier

```solidity
function setVerifier(address _addr_) external
```

Set the verifier address.

Requirements:

* `msg.sender` - The caller must have the role of `SUPER_MANAGER_LEVEL`.

Events:

* `VerifierChanged` - Emitted when the verifier address is changed successfully.

| Name   | Type    | Description                                                         |
| ------ | ------- | ------------------------------------------------------------------- |
| *addr* | address | The address of the verifier that provides the verification service. |

#### VerifierChanged

```solidity
event VerifierChanged(address verifier)
```

This event is emitted when the verifier address is changed.

| Name     | Type    | Description           |
| -------- | ------- | --------------------- |
| verifier | address | The verifier address. |

### setRiskCarrierManager

```solidity
function setRiskCarrierManager(address _addr_) external
```

Set the risk carrier manager address.

Requirements:

* `msg.sender` - The caller must have the role of `SUPER_MANAGER_LEVEL`.

Events:

* `RiskCarrierManagerChanged` - Emitted when the risk carrier manager address is changed successfully.

| Name   | Type    | Description                              |
| ------ | ------- | ---------------------------------------- |
| *addr* | address | The address of the risk carrier manager. |

#### RiskCarrierManagerChanged

```solidity
event RiskCarrierManagerChanged(address riskCarrierManager)
```

This event is emitted when the risk carrier manager address is changed.

| Name               | Type    | Description                       |
| ------------------ | ------- | --------------------------------- |
| riskCarrierManager | address | The risk carrier manager address. |

### setUpfrontManager

```solidity
function setUpfrontManager(address _addr_) external
```

Set the upfront manager address.

Requirements:

* `msg.sender` - The caller must have the role of `SUPER_MANAGER_LEVEL`.

Events:

* `UpfrontManagerChanged` - Emitted when the upfront manager address is changed successfully.

| Name   | Type    | Description                         |
| ------ | ------- | ----------------------------------- |
| *addr* | address | The address of the upfront manager. |

#### UpfrontManagerChanged

```solidity
event UpfrontManagerChanged(address upfrontManager)
```

This event is emitted when the upfront manager address is changed.

| Name           | Type    | Description                  |
| -------------- | ------- | ---------------------------- |
| upfrontManager | address | The upfront manager address. |

### setValidatorManager

```solidity
function setValidatorManager(address _addr_) external
```

Set the validator manager address.

Requirements:

* `msg.sender` - The caller must have the role of `SUPER_MANAGER_LEVEL`.

Events:

* `ValidatorManagerChanged` - Emitted when the validator manager address is changed successfully.

| Name   | Type    | Description                           |
| ------ | ------- | ------------------------------------- |
| *addr* | address | The address of the validator manager. |

#### ValidatorManagerChanged

```solidity
event ValidatorManagerChanged(address validatorManager)
```

This event is emitted when the validator manager address is changed.

| Name             | Type    | Description                    |
| ---------------- | ------- | ------------------------------ |
| validatorManager | address | The validator manager address. |
