# MaverickV2Router

**Inherits:** [Checks](/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/base/checks.md), [PushOperations](/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/routerbase/pushoperations.md), [CallbackOperations](/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/routerbase/callbackoperations.md), [IMaverickV2Router](/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/interfaces/imaverickv2router.md)

Swap router functions for Maverick V2. This contract requires that users approve a spending allowance in order to pay for swaps.

The functions in this contract are partitioned into two subcontracts that implement both push-based and callback-based swaps. Maverick V2 provides two mechanisms for paying for a swap:

* Push the input assets to the pool and then call swap. This avoids a callback to transfer the input assets and is generally more gas efficient but is only suitable for exact-input swaps where the caller knows how much input they need to send to the pool.
* Callback payment where the pool calls a callback function on this router to settle up for the input amount of the swap.

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

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

```solidity
constructor(IMaverickV2Factory _factory, IWETH9 _weth) State(_factory, _weth);
```

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mav.xyz/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/maverickv2router.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
