CallbackOperations

Inherits: ExactOutputSlim, ICallbackOperations

State Variables

__amountIn

uint256 private __amountIn = type(uint256).max;

Functions

exactOutputSingle

Perform an exact output single swap.

function exactOutputSingle(
    address recipient,
    IMaverickV2Pool pool,
    bool tokenAIn,
    uint256 amountOut,
    uint256 amountInMaximum
) public payable returns (uint256 amountIn, uint256 amountOut_);

Parameters

NameTypeDescription

recipient

address

The address of the recipient.

pool

IMaverickV2Pool

The Maverick V2 pool to swap with.

tokenAIn

bool

A boolean indicating if token A is the input.

amountOut

uint256

The amount of output tokens desired.

amountInMaximum

uint256

The maximum amount of input tokens allowed.

Returns

NameTypeDescription

amountIn

uint256

The amount of input tokens used for the swap.

amountOut_

uint256

The actual amount of output tokens received.

outputSingleWithTickLimit

Perform an output-specified single swap with tick limit check.

function outputSingleWithTickLimit(
    address recipient,
    IMaverickV2Pool pool,
    bool tokenAIn,
    uint256 amountOut,
    int32 tickLimit,
    uint256 amountInMaximum,
    uint256 amountOutMinimum
) public payable returns (uint256 amountIn_, uint256 amountOut_);

Parameters

NameTypeDescription

recipient

address

The address of the recipient.

pool

IMaverickV2Pool

The Maverick V2 pool to swap with.

tokenAIn

bool

A boolean indicating if token A is the input.

amountOut

uint256

The amount of output tokens desired.

tickLimit

int32

The tick limit for the swap.

amountInMaximum

uint256

The maximum amount of input tokens allowed.

amountOutMinimum

uint256

The minimum amount of output tokens expected.

Returns

NameTypeDescription

amountIn_

uint256

The actual amount of input tokens used for the swap.

amountOut_

uint256

The actual amount of output tokens received. This amount can vary from the requested amountOut due to the tick limit. If the pool swaps to the tick limit, it will stop filling the order and return the amount out swapped up to the ticklimit to the user.

exactOutputMultiHop

Perform an exact output multihop swap.

function exactOutputMultiHop(address recipient, bytes memory path, uint256 amountOut, uint256 amountInMaximum)
    external
    payable
    returns (uint256 amountIn);

Parameters

NameTypeDescription

recipient

address

The recipient address.

path

bytes

The swap path as encoded bytes.

amountOut

uint256

The exact output amount.

amountInMaximum

uint256

The maximum input amount allowed.

Returns

NameTypeDescription

amountIn

uint256

The input amount for the swap.

inputSingleWithTickLimit

Perform an input-specified single swap with tick limit check.

function inputSingleWithTickLimit(
    address recipient,
    IMaverickV2Pool pool,
    bool tokenAIn,
    uint256 amountIn,
    int32 tickLimit,
    uint256 amountOutMinimum
) public payable returns (uint256 amountIn_, uint256 amountOut);

Parameters

NameTypeDescription

recipient

address

The address of the recipient.

pool

IMaverickV2Pool

The Maverick V2 pool to swap with.

tokenAIn

bool

A boolean indicating if token A is the input.

amountIn

uint256

The amount of input tokens.

tickLimit

int32

The tick limit for the swap.

amountOutMinimum

uint256

The minimum amount of output tokens expected.

Returns

NameTypeDescription

amountIn_

uint256

The actual input amount used for the swap. This may differ from the amount the caller specified if the pool reaches the tick limit. In that case, the pool will consume the input swap amount up to the tick limit and return the resulting output amount to the user.

amountOut

uint256

The amount of output tokens received.

_exactOutputInternal

function _exactOutputInternal(uint256 amountOut, address recipient, CallbackData memory data)
    private
    returns (uint256 amountIn);

maverickV2SwapCallback

function maverickV2SwapCallback(IERC20 tokenIn, uint256 amountToPay, uint256, bytes calldata _data) external override;

Structs

CallbackData

struct CallbackData {
    bytes path;
    address payer;
}

Last updated