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


---

# 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://docs.covestlabs.com/covest-insaas-protocol/insaas-smart-contracts/operator/pool-manager.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.
