# `L2MessageService`

### CONTRACT_VERSION

```solidity
string CONTRACT_VERSION
```

_This is the ABI version and not the reinitialize version._

### constructor

```solidity
constructor() public
```

### initialize

```solidity
function initialize(uint256 _rateLimitPeriod, uint256 _rateLimitAmount, address _defaultAdmin, struct IPermissionsManager.RoleAddress[] _roleAddresses, struct IPauseManager.PauseTypeRole[] _pauseTypeRoles, struct IPauseManager.PauseTypeRole[] _unpauseTypeRoles) external
```

Initializes underlying message service dependencies.

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| _rateLimitPeriod | uint256 | The period to rate limit against. |
| _rateLimitAmount | uint256 | The limit allowed for withdrawing the period. |
| _defaultAdmin | address | The account to be given DEFAULT_ADMIN_ROLE on initialization. |
| _roleAddresses | struct IPermissionsManager.RoleAddress[] | The list of addresses to grant roles to. |
| _pauseTypeRoles | struct IPauseManager.PauseTypeRole[] | The list of pause type roles. |
| _unpauseTypeRoles | struct IPauseManager.PauseTypeRole[] | The list of unpause type roles. |

### reinitializePauseTypesAndPermissions

```solidity
function reinitializePauseTypesAndPermissions(struct IPermissionsManager.RoleAddress[] _roleAddresses, struct IPauseManager.PauseTypeRole[] _pauseTypeRoles, struct IPauseManager.PauseTypeRole[] _unpauseTypeRoles) external
```

Sets permissions for a list of addresses and their roles as well as initialises the PauseManager pauseType:role mappings.

_This function is a reinitializer and can only be called once per version. Should be called using an upgradeAndCall transaction to the ProxyAdmin._

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| _roleAddresses | struct IPermissionsManager.RoleAddress[] | The list of addresses and roles to assign permissions to. |
| _pauseTypeRoles | struct IPauseManager.PauseTypeRole[] | The list of pause types to associate with roles. |
| _unpauseTypeRoles | struct IPauseManager.PauseTypeRole[] | The list of unpause types to associate with roles. |

