<!-- Canonical: https://docs.linea.build/api/linea-smart-contracts/messageservice/l2/l2messageservice -->

> For the complete Linea documentation index, see [llms.txt](/llms.txt).
> Agents can fetch this page as Markdown at [https://docs.linea.build/api/linea-smart-contracts/messageservice/l2/l2messageservice.md](https://docs.linea.build/api/linea-smart-contracts/messageservice/l2/l2messageservice.md).

# L2MessageService

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

Contributions not accepted

These reference pages are automatically generated based on Linea's [smart contracts](https://github.com/Consensys/linea-monorepo/tree/main/contracts/src). To ensure they accurately match the deployed smart contracts, we cannot accept any contributions that edit these pages.
