> For the complete documentation index, see [llms.txt](https://docs.mune.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mune.finance/solidity-docs/iswap.md).

# ISwap

## Functions:

* [`getA()`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-getA--)
* [`getAllowlist()`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-getAllowlist--)
* [`getToken(uint8 index)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-getToken-uint8-)
* [`getTokenIndex(address tokenAddress)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-getTokenIndex-address-)
* [`getTokenBalance(uint8 index)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-getTokenBalance-uint8-)
* [`getVirtualPrice()`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-getVirtualPrice--)
* [`isGuarded()`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-isGuarded--)
* [`calculateSwap(uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 dx)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-calculateSwap-uint8-uint8-uint256-)
* [`calculateTokenAmount(uint256[] amounts, bool deposit)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-calculateTokenAmount-uint256---bool-)
* [`calculateRemoveLiquidity(uint256 amount)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-calculateRemoveLiquidity-uint256-)
* [`calculateRemoveLiquidityOneToken(uint256 tokenAmount, uint8 tokenIndex)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-calculateRemoveLiquidityOneToken-uint256-uint8-)
* [`swap(uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 dx, uint256 minDy, uint256 deadline)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-swap-uint8-uint8-uint256-uint256-uint256-)
* [`addLiquidity(uint256[] amounts, uint256 minToMint, uint256 deadline, bytes32[] merkleProof)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-addLiquidity-uint256---uint256-uint256-bytes32---)
* [`removeLiquidity(uint256 amount, uint256[] minAmounts, uint256 deadline)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-removeLiquidity-uint256-uint256---uint256-)
* [`removeLiquidityOneToken(uint256 tokenAmount, uint8 tokenIndex, uint256 minAmount, uint256 deadline)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-removeLiquidityOneToken-uint256-uint8-uint256-uint256-)
* [`removeLiquidityImbalance(uint256[] amounts, uint256 maxBurnAmount, uint256 deadline)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-removeLiquidityImbalance-uint256---uint256-uint256-)
* [`updateUserWithdrawFee(address recipient, uint256 transferAmount)`](broken://pages/-Mh9X_-xHfPjcqb4OG1l#ISwap-updateUserWithdrawFee-address-uint256-)

## Function `getA() → uint256`

No description

## Function `getAllowlist() → contract IAllowlist`

No description

## Function `getToken(uint8 index) → contract IERC20`

No description

## Function `getTokenIndex(address tokenAddress) → uint8`

No description

## Function `getTokenBalance(uint8 index) → uint256`

No description

## Function `getVirtualPrice() → uint256`

No description

## Function `isGuarded() → bool`

No description

## Function `calculateSwap(uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 dx) → uint256`

No description

## Function `calculateTokenAmount(uint256[] amounts, bool deposit) → uint256`

No description

## Function `calculateRemoveLiquidity(uint256 amount) → uint256[]`

No description

## Function `calculateRemoveLiquidityOneToken(uint256 tokenAmount, uint8 tokenIndex) → uint256 availableTokenAmount`

No description

## Function `swap(uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 dx, uint256 minDy, uint256 deadline) → uint256`

No description

## Function `addLiquidity(uint256[] amounts, uint256 minToMint, uint256 deadline, bytes32[] merkleProof) → uint256`

No description

## Function `removeLiquidity(uint256 amount, uint256[] minAmounts, uint256 deadline) → uint256[]`

No description

## Function `removeLiquidityOneToken(uint256 tokenAmount, uint8 tokenIndex, uint256 minAmount, uint256 deadline) → uint256`

No description

## Function `removeLiquidityImbalance(uint256[] amounts, uint256 maxBurnAmount, uint256 deadline) → uint256`

No description

## Function `updateUserWithdrawFee(address recipient, uint256 transferAmount)`

No description
