@mercurial-finance/dynamic-amm-sdk
Version:
Mercurial Vaults SDK is a typescript library that allows you to interact with Mercurial v2's AMM.
1,415 lines (1,414 loc) • 149 kB
TypeScript
export type Amm = {
"version": "0.5.2";
"name": "amm";
"docs": [
"Program for AMM"
];
"instructions": [
{
"name": "initializePermissionedPool";
"docs": [
"Initialize a new permissioned pool."
];
"accounts": [
{
"name": "pool";
"isMut": true;
"isSigner": true;
"docs": [
"Pool account (arbitrary address)"
];
},
{
"name": "lpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of the pool"
];
},
{
"name": "tokenAMint";
"isMut": false;
"isSigner": false;
"docs": [
"Token A mint of the pool. Eg: USDT"
];
},
{
"name": "tokenBMint";
"isMut": false;
"isSigner": false;
"docs": [
"Token B mint of the pool. Eg: USDC"
];
},
{
"name": "aVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "bVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "aVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault A"
];
},
{
"name": "bVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault B"
];
},
{
"name": "aVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "bVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "adminTokenA";
"isMut": true;
"isSigner": false;
"docs": [
"Admin token account for pool token A mint. Used to bootstrap the pool with initial liquidity."
];
},
{
"name": "adminTokenB";
"isMut": true;
"isSigner": false;
"docs": [
"Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity."
];
},
{
"name": "adminPoolLp";
"isMut": true;
"isSigner": false;
"docs": [
"Admin pool LP token account. Used to receive LP during first deposit (initialize pool)",
"Admin pool LP token account. Used to receive LP during first deposit (initialize pool)"
];
},
{
"name": "protocolTokenAFee";
"isMut": true;
"isSigner": false;
"docs": [
"Protocol fee token account for token A. Used to receive trading fee."
];
},
{
"name": "protocolTokenBFee";
"isMut": true;
"isSigner": false;
"docs": [
"Protocol fee token account for token B. Used to receive trading fee."
];
},
{
"name": "admin";
"isMut": true;
"isSigner": true;
"docs": [
"Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool."
];
},
{
"name": "feeOwner";
"isMut": false;
"isSigner": false;
},
{
"name": "rent";
"isMut": false;
"isSigner": false;
"docs": [
"Rent account."
];
},
{
"name": "mintMetadata";
"isMut": true;
"isSigner": false;
},
{
"name": "metadataProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "vaultProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Vault program. The pool will deposit/withdraw liquidity from the vault."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Token program."
];
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Associated token program."
];
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
"docs": [
"System program."
];
}
];
"args": [
{
"name": "curveType";
"type": {
"defined": "CurveType";
};
}
];
},
{
"name": "initializePermissionlessPool";
"docs": [
"Initialize a new permissionless pool."
];
"accounts": [
{
"name": "pool";
"isMut": true;
"isSigner": false;
"docs": [
"Pool account (PDA address)"
];
},
{
"name": "lpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of the pool"
];
},
{
"name": "tokenAMint";
"isMut": false;
"isSigner": false;
"docs": [
"Token A mint of the pool. Eg: USDT"
];
},
{
"name": "tokenBMint";
"isMut": false;
"isSigner": false;
"docs": [
"Token B mint of the pool. Eg: USDC"
];
},
{
"name": "aVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "bVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "aTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault A"
];
},
{
"name": "bTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault B"
];
},
{
"name": "aVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault A"
];
},
{
"name": "bVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault B"
];
},
{
"name": "aVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "bVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "payerTokenA";
"isMut": true;
"isSigner": false;
"docs": [
"Payer token account for pool token A mint. Used to bootstrap the pool with initial liquidity."
];
},
{
"name": "payerTokenB";
"isMut": true;
"isSigner": false;
"docs": [
"Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity."
];
},
{
"name": "payerPoolLp";
"isMut": true;
"isSigner": false;
},
{
"name": "protocolTokenAFee";
"isMut": true;
"isSigner": false;
"docs": [
"Protocol fee token account for token A. Used to receive trading fee."
];
},
{
"name": "protocolTokenBFee";
"isMut": true;
"isSigner": false;
"docs": [
"Protocol fee token account for token B. Used to receive trading fee."
];
},
{
"name": "payer";
"isMut": true;
"isSigner": true;
"docs": [
"Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool."
];
},
{
"name": "feeOwner";
"isMut": false;
"isSigner": false;
},
{
"name": "rent";
"isMut": false;
"isSigner": false;
"docs": [
"Rent account."
];
},
{
"name": "mintMetadata";
"isMut": true;
"isSigner": false;
},
{
"name": "metadataProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "vaultProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Vault program. The pool will deposit/withdraw liquidity from the vault."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Token program."
];
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Associated token program."
];
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
"docs": [
"System program."
];
}
];
"args": [
{
"name": "curveType";
"type": {
"defined": "CurveType";
};
},
{
"name": "tokenAAmount";
"type": "u64";
},
{
"name": "tokenBAmount";
"type": "u64";
}
];
},
{
"name": "initializePermissionlessPoolWithFeeTier";
"docs": [
"Initialize a new permissionless pool with customized fee tier"
];
"accounts": [
{
"name": "pool";
"isMut": true;
"isSigner": false;
"docs": [
"Pool account (PDA address)"
];
},
{
"name": "lpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of the pool"
];
},
{
"name": "tokenAMint";
"isMut": false;
"isSigner": false;
"docs": [
"Token A mint of the pool. Eg: USDT"
];
},
{
"name": "tokenBMint";
"isMut": false;
"isSigner": false;
"docs": [
"Token B mint of the pool. Eg: USDC"
];
},
{
"name": "aVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "bVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "aTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault A"
];
},
{
"name": "bTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault B"
];
},
{
"name": "aVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault A"
];
},
{
"name": "bVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault B"
];
},
{
"name": "aVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "bVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "payerTokenA";
"isMut": true;
"isSigner": false;
"docs": [
"Payer token account for pool token A mint. Used to bootstrap the pool with initial liquidity."
];
},
{
"name": "payerTokenB";
"isMut": true;
"isSigner": false;
"docs": [
"Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity."
];
},
{
"name": "payerPoolLp";
"isMut": true;
"isSigner": false;
},
{
"name": "protocolTokenAFee";
"isMut": true;
"isSigner": false;
"docs": [
"Protocol fee token account for token A. Used to receive trading fee."
];
},
{
"name": "protocolTokenBFee";
"isMut": true;
"isSigner": false;
"docs": [
"Protocol fee token account for token B. Used to receive trading fee."
];
},
{
"name": "payer";
"isMut": true;
"isSigner": true;
"docs": [
"Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool."
];
},
{
"name": "feeOwner";
"isMut": false;
"isSigner": false;
},
{
"name": "rent";
"isMut": false;
"isSigner": false;
"docs": [
"Rent account."
];
},
{
"name": "mintMetadata";
"isMut": true;
"isSigner": false;
},
{
"name": "metadataProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "vaultProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Vault program. The pool will deposit/withdraw liquidity from the vault."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Token program."
];
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Associated token program."
];
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
"docs": [
"System program."
];
}
];
"args": [
{
"name": "curveType";
"type": {
"defined": "CurveType";
};
},
{
"name": "tradeFeeBps";
"type": "u64";
},
{
"name": "tokenAAmount";
"type": "u64";
},
{
"name": "tokenBAmount";
"type": "u64";
}
];
},
{
"name": "enableOrDisablePool";
"docs": [
"Enable or disable a pool. A disabled pool allow only remove balanced liquidity operation."
];
"accounts": [
{
"name": "pool";
"isMut": true;
"isSigner": false;
"docs": [
"Pool account (PDA)"
];
},
{
"name": "admin";
"isMut": false;
"isSigner": true;
"docs": [
"Admin account. Must be owner of the pool."
];
}
];
"args": [
{
"name": "enable";
"type": "bool";
}
];
},
{
"name": "swap";
"docs": [
"Swap token A to B, or vice versa. An amount of trading fee will be charged for liquidity provider, and the admin of the pool."
];
"accounts": [
{
"name": "pool";
"isMut": true;
"isSigner": false;
"docs": [
"Pool account (PDA)"
];
},
{
"name": "userSourceToken";
"isMut": true;
"isSigner": false;
"docs": [
"User token account. Token from this account will be transfer into the vault by the pool in exchange for another token of the pool."
];
},
{
"name": "userDestinationToken";
"isMut": true;
"isSigner": false;
"docs": [
"User token account. The exchanged token will be transfer into this account from the pool."
];
},
{
"name": "aVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token a. token a of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "bVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token b. token b of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "aTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault A"
];
},
{
"name": "bTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault B"
];
},
{
"name": "aVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"Lp token mint of vault a"
];
},
{
"name": "bVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"Lp token mint of vault b"
];
},
{
"name": "aVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "bVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "protocolTokenFee";
"isMut": true;
"isSigner": false;
"docs": [
"Protocol fee token account. Used to receive trading fee. It's mint field must matched with user_source_token mint field."
];
},
{
"name": "user";
"isMut": false;
"isSigner": true;
"docs": [
"User account. Must be owner of user_source_token."
];
},
{
"name": "vaultProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Vault program. the pool will deposit/withdraw liquidity from the vault."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Token program."
];
}
];
"args": [
{
"name": "inAmount";
"type": "u64";
},
{
"name": "minimumOutAmount";
"type": "u64";
}
];
},
{
"name": "removeLiquiditySingleSide";
"docs": [
"Withdraw only single token from the pool. Only supported by pool with stable swap curve."
];
"accounts": [
{
"name": "pool";
"isMut": true;
"isSigner": false;
"docs": [
"Pool account (PDA)"
];
},
{
"name": "lpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of the pool"
];
},
{
"name": "userPoolLp";
"isMut": true;
"isSigner": false;
"docs": [
"User pool lp token account. LP will be burned from this account upon success liquidity removal."
];
},
{
"name": "aVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "bVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "aVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "bVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "aVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault A"
];
},
{
"name": "bVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault B"
];
},
{
"name": "aTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault A"
];
},
{
"name": "bTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault B"
];
},
{
"name": "userDestinationToken";
"isMut": true;
"isSigner": false;
"docs": [
"User token account to receive token upon success liquidity removal."
];
},
{
"name": "user";
"isMut": false;
"isSigner": true;
"docs": [
"User account. Must be owner of the user_pool_lp account."
];
},
{
"name": "vaultProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Vault program. The pool will deposit/withdraw liquidity from the vault."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Token program."
];
}
];
"args": [
{
"name": "poolTokenAmount";
"type": "u64";
},
{
"name": "minimumOutAmount";
"type": "u64";
}
];
},
{
"name": "addImbalanceLiquidity";
"docs": [
"Deposit tokens to the pool in an imbalance ratio. Only supported by pool with stable swap curve."
];
"accounts": [
{
"name": "pool";
"isMut": true;
"isSigner": false;
"docs": [
"Pool account (PDA)"
];
},
{
"name": "lpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of the pool"
];
},
{
"name": "userPoolLp";
"isMut": true;
"isSigner": false;
"docs": [
"user pool lp token account. lp will be burned from this account upon success liquidity removal."
];
},
{
"name": "aVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "bVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "aVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token a. token a of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "bVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token b. token b of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "aVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault a"
];
},
{
"name": "bVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault b"
];
},
{
"name": "aTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault A"
];
},
{
"name": "bTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault B"
];
},
{
"name": "userAToken";
"isMut": true;
"isSigner": false;
"docs": [
"User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account."
];
},
{
"name": "userBToken";
"isMut": true;
"isSigner": false;
"docs": [
"User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account."
];
},
{
"name": "user";
"isMut": false;
"isSigner": true;
"docs": [
"User account. Must be owner of user_a_token, and user_b_token."
];
},
{
"name": "vaultProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Vault program. the pool will deposit/withdraw liquidity from the vault."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Token program."
];
}
];
"args": [
{
"name": "minimumPoolTokenAmount";
"type": "u64";
},
{
"name": "tokenAAmount";
"type": "u64";
},
{
"name": "tokenBAmount";
"type": "u64";
}
];
},
{
"name": "removeBalanceLiquidity";
"docs": [
"Withdraw tokens from the pool in a balanced ratio. User will still able to withdraw from pool even the pool is disabled. This allow user to exit their liquidity when there's some unforeseen event happen."
];
"accounts": [
{
"name": "pool";
"isMut": true;
"isSigner": false;
"docs": [
"Pool account (PDA)"
];
},
{
"name": "lpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of the pool"
];
},
{
"name": "userPoolLp";
"isMut": true;
"isSigner": false;
"docs": [
"user pool lp token account. lp will be burned from this account upon success liquidity removal."
];
},
{
"name": "aVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "bVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "aVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token a. token a of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "bVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token b. token b of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "aVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault a"
];
},
{
"name": "bVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault b"
];
},
{
"name": "aTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault A"
];
},
{
"name": "bTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault B"
];
},
{
"name": "userAToken";
"isMut": true;
"isSigner": false;
"docs": [
"User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account."
];
},
{
"name": "userBToken";
"isMut": true;
"isSigner": false;
"docs": [
"User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account."
];
},
{
"name": "user";
"isMut": false;
"isSigner": true;
"docs": [
"User account. Must be owner of user_a_token, and user_b_token."
];
},
{
"name": "vaultProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Vault program. the pool will deposit/withdraw liquidity from the vault."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Token program."
];
}
];
"args": [
{
"name": "poolTokenAmount";
"type": "u64";
},
{
"name": "minimumATokenOut";
"type": "u64";
},
{
"name": "minimumBTokenOut";
"type": "u64";
}
];
},
{
"name": "addBalanceLiquidity";
"docs": [
"Deposit tokens to the pool in a balanced ratio."
];
"accounts": [
{
"name": "pool";
"isMut": true;
"isSigner": false;
"docs": [
"Pool account (PDA)"
];
},
{
"name": "lpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of the pool"
];
},
{
"name": "userPoolLp";
"isMut": true;
"isSigner": false;
"docs": [
"user pool lp token account. lp will be burned from this account upon success liquidity removal."
];
},
{
"name": "aVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "bVaultLp";
"isMut": true;
"isSigner": false;
"docs": [
"LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault."
];
},
{
"name": "aVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token a. token a of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "bVault";
"isMut": true;
"isSigner": false;
"docs": [
"Vault account for token b. token b of the pool will be deposit / withdraw from this vault account."
];
},
{
"name": "aVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault a"
];
},
{
"name": "bVaultLpMint";
"isMut": true;
"isSigner": false;
"docs": [
"LP token mint of vault b"
];
},
{
"name": "aTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault A"
];
},
{
"name": "bTokenVault";
"isMut": true;
"isSigner": false;
"docs": [
"Token vault account of vault B"
];
},
{
"name": "userAToken";
"isMut": true;
"isSigner": false;
"docs": [
"User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account."
];
},
{
"name": "userBToken";
"isMut": true;
"isSigner": false;
"docs": [
"User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account."
];
},
{
"name": "user";
"isMut": false;
"isSigner": true;
"docs": [
"User account. Must be owner of user_a_token, and user_b_token."
];
},
{
"name": "vaultProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Vault program. the pool will deposit/withdraw liquidity from the vault."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Token program."
];
}
];
"args": [
{
"name": "poolTokenAmount";
"type": "u64";
},
{
"name": "maximumTokenAAmount";
"type": "u64";
},
{
"name": "maximumTokenBAmount";
"type": "u64";
}
];
},
{
"name": "setPoolFees";
"docs": [
"Update trading fee charged for liquidity provider, and admin."
];
"accounts": [
{