# ISweepable

Interface for contracts that can recover tokens to a designated recipient

## Functions

### sweep

Withdraw any tokens accidentally sent to contract

```solidity
function sweep(address token, uint256 amount) external;
```

**Parameters**

| Name     | Type      | Description                                                            |
| -------- | --------- | ---------------------------------------------------------------------- |
| `token`  | `address` | Token address to withdraw or zero address for the chain's native token |
| `amount` | `uint256` | Amount to withdraw                                                     |

## Events

### Sweep

Emitted when sweep is called

```solidity
event Sweep(address indexed token, uint256 amount);
```

**Parameters**

| Name     | Type      | Description                                                          |
| -------- | --------- | -------------------------------------------------------------------- |
| `token`  | `address` | Token address or zero address if recovering the chain's native token |
| `amount` | `uint256` | Withdrawn amount of token                                            |

## Errors

### Aera\_\_FailedToSendNativeToken

Emitted when sweep of the native token has failed

```solidity
error Aera__FailedToSendNativeToken();
```
