# IMulticallExtended

Enables calling multiple methods in a single call to the contract with optional validation

### Functions <a href="#functions" id="functions"></a>

#### multicall <a href="#multicall" id="multicall"></a>

Call multiple functions in the current contract and return the data from all of them if they all succeed

*The `msg.value` should not be trusted for any method callable from multicall.*

```solidity
function multicall(uint256 deadline, bytes[] calldata data) external payable returns (bytes[] memory results);
```

**Parameters**

| Name       | Type      | Description                                                              |
| ---------- | --------- | ------------------------------------------------------------------------ |
| `deadline` | `uint256` | The time by which this function must be called before failing            |
| `data`     | `bytes[]` | The encoded function data for each of the calls to make to this contract |

**Returns**

| Name      | Type      | Description                                           |
| --------- | --------- | ----------------------------------------------------- |
| `results` | `bytes[]` | The results from each of the calls passed in via data |

#### multicall <a href="#multicall-1" id="multicall-1"></a>

Call multiple functions in the current contract and return the data from all of them if they all succeed

*The `msg.value` should not be trusted for any method callable from multicall.*

```solidity
function multicall(bytes32 previousBlockhash, bytes[] calldata data)
    external
    payable
    returns (bytes[] memory results);
```

**Parameters**

| Name                | Type      | Description                                                              |
| ------------------- | --------- | ------------------------------------------------------------------------ |
| `previousBlockhash` | `bytes32` | The expected parent blockHash                                            |
| `data`              | `bytes[]` | The encoded function data for each of the calls to make to this contract |

**Returns**

| Name      | Type      | Description                                           |
| --------- | --------- | ----------------------------------------------------- |
| `results` | `bytes[]` | The results from each of the calls passed in via data |
