# IGNSAddressStore

*Interface for AddressStoreUtils library*

## initialize

```solidity
function initialize(address _rolesManager) external
```

*Initializes address store facet*

### Parameters

| Name           | Type    | Description           |
| -------------- | ------- | --------------------- |
| \_rolesManager | address | roles manager address |

## getAddresses

```solidity
function getAddresses() external view returns (struct IAddressStore.Addresses)
```

*Returns addresses current values*

## hasRole

```solidity
function hasRole(address _account, enum IAddressStore.Role _role) external view returns (bool)
```

*Returns whether an account has been granted a particular role*

### Parameters

| Name      | Type                    | Description              |
| --------- | ----------------------- | ------------------------ |
| \_account | address                 | account address to check |
| \_role    | enum IAddressStore.Role | role to check            |

## setRoles

```solidity
function setRoles(address[] _accounts, enum IAddressStore.Role[] _roles, bool[] _values) external
```

*Updates access control for a list of accounts*

### Parameters

| Name       | Type                       | Description                     |
| ---------- | -------------------------- | ------------------------------- |
| \_accounts | address\[]                 | accounts addresses to update    |
| \_roles    | enum IAddressStore.Role\[] | corresponding roles to update   |
| \_values   | bool\[]                    | corresponding new values to set |

## AddressesUpdated

```solidity
event AddressesUpdated(struct IAddressStore.Addresses addresses)
```

*Emitted when addresses are updated*

### Parameters

| Name      | Type                           | Description          |
| --------- | ------------------------------ | -------------------- |
| addresses | struct IAddressStore.Addresses | new addresses values |

## AccessControlUpdated

```solidity
event AccessControlUpdated(address target, enum IAddressStore.Role role, bool access)
```

*Emitted when access control is updated for an account*

### Parameters

| Name   | Type                    | Description                        |
| ------ | ----------------------- | ---------------------------------- |
| target | address                 | account address to update          |
| role   | enum IAddressStore.Role | role to update                     |
| access | bool                    | whether role is granted or revoked |

## NotAllowed

```solidity
error NotAllowed()
```

## WrongAccess

```solidity
error WrongAccess()
```


---

# 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.gains.trade/developer/technical-reference/contracts/interfaces/ignsaddressstore.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.
