> For the complete documentation index, see [llms.txt](https://docs.mav.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mav.xyz/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/routerbase/ipushoperations.md).

# IPushOperations

**Inherits:** [IRouterErrors](/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/routerbase/iroutererrors.md)

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

#### exactInputSinglePackedArgs <a href="#exactinputsinglepackedargs" id="exactinputsinglepackedargs"></a>

Perform an exact input single swap with compressed input values.

```solidity
function exactInputSinglePackedArgs(bytes memory argsPacked) external payable returns (uint256 amountOut);
```

#### exactInputSingle <a href="#exactinputsingle" id="exactinputsingle"></a>

Perform an exact input single swap without tick limit check.

```solidity
function exactInputSingle(
    address recipient,
    IMaverickV2Pool pool,
    bool tokenAIn,
    uint256 amountIn,
    uint256 amountOutMinimum
) external payable returns (uint256 amountOut);
```

**Parameters**

| Name               | Type              | Description                                                            |
| ------------------ | ----------------- | ---------------------------------------------------------------------- |
| `recipient`        | `address`         | The address of the recipient.                                          |
| `pool`             | `IMaverickV2Pool` | The Maverick V2 pool to swap with.                                     |
| `tokenAIn`         | `bool`            | True is tokenA is the input token. False is tokenB is the input token. |
| `amountIn`         | `uint256`         | The amount of input tokens.                                            |
| `amountOutMinimum` | `uint256`         | The minimum amount of output tokens expected.                          |

#### exactInputMultiHop <a href="#exactinputmultihop" id="exactinputmultihop"></a>

Perform an exact input multi-hop swap.

```solidity
function exactInputMultiHop(address recipient, bytes memory path, uint256 amountIn, uint256 amountOutMinimum)
    external
    payable
    returns (uint256 amountOut);
```

**Parameters**

| Name               | Type      | Description                                   |
| ------------------ | --------- | --------------------------------------------- |
| `recipient`        | `address` | The address of the recipient.                 |
| `path`             | `bytes`   | The path of tokens to swap.                   |
| `amountIn`         | `uint256` | The amount of input tokens.                   |
| `amountOutMinimum` | `uint256` | The minimum amount of output tokens expected. |

<br>
