> For the complete documentation index, see [llms.txt](https://docs.aera.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aera.finance/the-protocol/periphery/executor.md).

# Executor

**Inherits:** IExecutor, ReentrancyGuard

Abstract contract for executing operations

*A similar version of this contract was previously audited*

*See: <https://github.com/aera-finance/aera-contracts-public/blob/main/v2/periphery/Executor.sol>*

## Functions

### execute

Execute arbitrary actions

```solidity
function execute(OperationPayable[] calldata operations) external nonReentrant;
```

**Parameters**

| Name         | Type                 | Description               |
| ------------ | -------------------- | ------------------------- |
| `operations` | `OperationPayable[]` | The operations to execute |

### \_executeOperation

Execute a single operation

*Executes the operation and reverts if it fails*

```solidity
function _executeOperation(OperationPayable calldata operation) internal virtual;
```

**Parameters**

| Name        | Type               | Description              |
| ----------- | ------------------ | ------------------------ |
| `operation` | `OperationPayable` | The operation to execute |

### \_checkOperations

Authorize the execution of operations

*Intended to be marked by `onlyOwner` or similar access control modifier*

```solidity
function _checkOperations(OperationPayable[] calldata operations) internal view virtual;
```

**Parameters**

| Name         | Type                 | Description             |
| ------------ | -------------------- | ----------------------- |
| `operations` | `OperationPayable[]` | The operations to check |

### \_checkOperation

Authorize the execution of a single operation

```solidity
function _checkOperation(OperationPayable calldata operation) internal view virtual;
```

**Parameters**

| Name        | Type               | Description            |
| ----------- | ------------------ | ---------------------- |
| `operation` | `OperationPayable` | The operation to check |
