Open Margin Position

Allows opening a margin positions using a lender.

Prequisites

Supports single-pool swaps and multi-hop swaps. In this case, tokenIn and tokenOut are provided together with the fee parameter to identify the swap pool.

In case of a multi-hop swaps, the swap-path is provided as encoded bytes.

Functions


Function: openMarginPositionExactIn

This function allows a user to open a margin position by borrowing a token (tokenIn) and selling it against collateral (tokenOut). The user provides the debt amount as input.

Parameters:

params (MarginSwapParamsExactIn memory): A struct containing parameters for opening the margin position.

  • tokenIn (address): The address of the input token to borrow.

  • fee (uint24): The fee tier of the pool to be used for the swap.

  • tokenOut (address): The address of the output token (collateral).

  • amountIn (uint256): The amount of input tokens to borrow.

  • interestRateMode (uint256): The interest rate mode (stable or variable) for the borrowed tokens.

  • amountOutMinimum (uint256): The minimum amount of output tokens (collateral) allowed to be received.

Returns: uint256: The amount of output tokens (collateral) received from the swap.


Function: openMarginPositionExactOut

This function allows a user to open a margin position by borrowing a token (tokenIn) and selling it against collateral (tokenOut). The user provides the collateral amount as input.

Parameters:

params (MarginSwapParamsExactOut memory): A struct containing parameters for opening the margin position.

  • tokenIn (address): The address of the input token to borrow.

  • fee (uint24): The fee tier of the pool to be used for the swap.

  • tokenOut (address): The address of the output token (collateral).

  • amountOut (uint256): The amount of output tokens (collateral) to receive.

  • interestRateMode (uint256): The interest rate mode (stable or variable) for the borrowed tokens.

  • amountInMaximum (uint256): The maximum amount of input tokens allowed to be borrowed.

Returns: uint256: The amount of input tokens (borrowed) used for the swap.


Function: openMarginPositionExactInMulti

This function allows a user to open a margin position by borrowing a token (tokenIn) and selling it against collateral (tokenOut) using a multi-pool path. The user provides the debt amount as input.

Parameters:

params (MarginSwapParamsMultiExactIn memory): A struct containing parameters for opening the margin position.

  • path (bytes): A byte-encoded representation of the tokenIn, tokenOut, and fee of each pool to be used in the trade.

  • amountIn (uint256): The amount of input tokens to borrow.

  • interestRateMode (uint256): The interest rate mode (stable or variable) for the borrowed tokens.

  • amountOutMinimum (uint256): The minimum amount of output tokens (collateral) allowed to be received.

Returns: uint256: The amount of output tokens (collateral) received from the swap.


Function: openMarginPositionExactOutMulti

This function allows a user to open a margin position by borrowing a token (tokenIn) and selling it against collateral (tokenOut) using a multi-pool path. The user provides the collateral amount as input.

Parameters:

params (MarginSwapParamsMultiExactOut memory): A struct containing parameters for opening the margin position.

  • path (bytes): A byte-encoded representation of the tokenIn, tokenOut, and fee of each pool to be used in the trade.

  • amountOut (uint256): The amount of output tokens (collateral) to receive.

  • interestRateMode (uint256): The interest rate mode (stable or variable) for the borrowed tokens.

  • amountInMaximum (uint256): The maximum amount of input tokens allowed to be borrowed.

Returns: uint256: The amount of input tokens (borrowed) used for the swap.

Last updated