Close Margin Position
Allows users to close a borrow position with collateral.
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: trimMarginPositionExactIn
This function allows the user to decrease their margin position by using collateral (tokenIn) to repay a portion of their borrowed tokens (tokenOut). The user provides the amount of collateral to be used as input.
Parameters:
params (MarginSwapParamsExactIn memory): A struct containing parameters for decreasing the margin position.
tokenIn(address): The address of the collateral token.tokenOut(address): The address of the borrowed token.fee(uint24): The Uniswap pool fee.amountIn(uint256): The amount of collateral tokens to use.interestRateMode(uint256): The interest rate mode (stable or variable) for the borrowed tokens.amountOutMinimum(uint256): The minimum amount of borrowed tokens to be repaid.
Returns: uint256: The amount of borrowed tokens repaid.
Function: trimMarginPositionExactOut
This function allows the user to decrease their margin position by using collateral (tokenIn) to repay a portion of their borrowed tokens (tokenOut). The user provides the amount of borrowed tokens to be repaid as input.
Parameters:
params (MarginSwapParamsExactOut memory): A struct containing parameters for decreasing the margin position.
tokenIn(address): The address of the collateral token.tokenOut(address): The address of the borrowed token.fee(uint24): The Uniswap pool fee.amountOut(uint256): The amount of borrowed tokens to be repaid.interestRateMode(uint256): The interest rate mode (stable or variable) for the borrowed tokens.amountInMaximum(uint256): The maximum amount of collateral tokens allowed to be used.
Returns: uint256: The amount of collateral tokens used for the swap.
Function: trimMarginPositionExactInMulti
This function allows the user to decrease their margin position by using collateral (tokenIn) to repay a portion of their borrowed tokens (tokenOut) using a multi-pool path. The user provides the amount of collateral to be used as input.
Parameters:
params (MarginSwapParamsMultiExactIn memory): A struct containing parameters for decreasing 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 collateral tokens to use.interestRateMode(uint256): The interest rate mode (stable or variable) for the borrowed tokens.amountOutMinimum(uint256): The minimum amount of borrowed tokens to be repaid.
Returns: uint256: The amount of borrowed tokens repaid.
Function: trimMarginPositionExactOutMulti
This function allows the user to decrease their margin position by using collateral (tokenIn) to repay a portion of their borrowed tokens (tokenOut) using a multi-pool path. The user provides the amount of borrowed tokens to be repaid as input.
Parameters:
params (MarginSwapParamsMultiExactOut memory): A struct containing parameters for decreasing 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 borrowed tokens to be repaid.interestRateMode(uint256): The interest rate mode (stable or variable) for the borrowed tokens.amountInMaximum(uint256): The maximum amount of collateral tokens allowed to be used.
Returns: uint256: The amount of collateral tokens used for the swap.
Functions to repay the full loan or withdraw the full position
The following functions allow a dust-free repayment of loans or withdrawal from a collateral position.
Function: trimMarginPositionAllIn
This function allows the user to decrease their margin position by using all available collateral (tokenIn) to repay a portion of their borrowed tokens (tokenOut).
Parameters:
params (MarginSwapParamsAllIn calldata): A struct containing parameters for decreasing the margin position.
tokenIn(address): The address of the collateral token.tokenOut(address): The address of the borrowed token.fee(uint24): The Uniswap pool fee.interestRateMode(uint256): The interest rate mode (stable or variable) for the borrowed tokens.amountOutMinimum(uint256): The minimum amount of borrowed tokens to be repaid.
Returns: uint256: The amount of borrowed tokens repaid.
Function: trimMarginPositionAllOut
This function allows the user to decrease their margin position by using collateral (tokenIn) to repay all of their borrowed tokens (tokenOut).
Parameters:
params (MarginSwapParamsAllOut calldata): A struct containing parameters for decreasing the margin position.
tokenIn(address): The address of the collateral token.tokenOut(address): The address of the borrowed token.fee(uint24): The Uniswap pool fee.interestRateMode(uint256): The interest rate mode (stable or variable) for the borrowed tokens.amountInMaximum(uint256): The maximum amount of collateral tokens allowed to be used.
Returns: uint256: The amount of collateral tokens used for the swap.
Function: trimMarginPositionAllInMulti
This function allows the user to decrease their margin position by using all available collateral (tokenIn) to repay a portion of their borrowed tokens (tokenOut) using a multi-pool path.
Parameters:
params (AllInputMultiParamsBase calldata): A struct containing parameters for decreasing the margin position.
path(bytes): A byte-encoded representation of the tokenIn, tokenOut, and fee of each pool to be used in the trade.interestRateMode(uint256): The interest rate mode (stable or variable) for the borrowed tokens.amountOutMinimum(uint256): The minimum amount of borrowed tokens to be repaid.
Returns: uint256: The amount of borrowed tokens repaid.
Function: trimMarginPositionAllOutMulti
This function allows the user to decrease their margin position by using collateral (tokenIn) to repay all of their borrowed tokens (tokenOut) using a multi-pool path.
Parameters:
params (AllOutputMultiParamsBase calldata): A struct containing parameters for decreasing the margin position.
path(bytes): A byte-encoded representation of the tokenIn, tokenOut, and fee of each pool to be used in the trade.interestRateMode(uint256): The interest rate mode (stable or variable) for the borrowed tokens.amountInMaximum(uint256): The maximum amount of collateral tokens allowed to be used.
Returns: uint256: The amount of collateral tokens used for the swap.
Last updated