@marinade.finance/kamino-sdk
Version:
66 lines (65 loc) • 2.53 kB
TypeScript
import { TransactionInstruction, PublicKey } from '@solana/web3.js';
import BN from 'bn.js';
export interface OpenPositionArgs {
tickLowerIndex: number;
tickUpperIndex: number;
tickArrayLowerStartIndex: number;
tickArrayUpperStartIndex: number;
liquidity: BN;
amount0Max: BN;
amount1Max: BN;
}
export interface OpenPositionAccounts {
/** Pays to mint the position */
payer: PublicKey;
positionNftOwner: PublicKey;
/** Unique token mint address */
positionNftMint: PublicKey;
/** Token account where position NFT will be minted */
positionNftAccount: PublicKey;
/** To store metaplex metadata */
metadataAccount: PublicKey;
/** Add liquidity for this pool */
poolState: PublicKey;
/** Store the information of market marking in range */
protocolPosition: PublicKey;
tickArrayLower: PublicKey;
tickArrayUpper: PublicKey;
/** personal position state */
personalPosition: PublicKey;
/** The token_0 account deposit token to the pool */
tokenAccount0: PublicKey;
/** The token_1 account deposit token to the pool */
tokenAccount1: PublicKey;
/** The address that holds pool tokens for token_0 */
tokenVault0: PublicKey;
/** The address that holds pool tokens for token_1 */
tokenVault1: PublicKey;
/** Sysvar for token mint and ATA creation */
rent: PublicKey;
/** Program to create the position manager state account */
systemProgram: PublicKey;
/** Program to create mint account and mint tokens */
tokenProgram: PublicKey;
/** Program to create an ATA for receiving position NFT */
associatedTokenProgram: PublicKey;
/** Program to create NFT metadata */
metadataProgram: PublicKey;
}
export declare const layout: any;
/**
* Creates a new position wrapped in a NFT
*
* # Arguments
*
* * `ctx` - The context of accounts
* * `tick_lower_index` - The low boundary of market
* * `tick_upper_index` - The upper boundary of market
* * `tick_array_lower_start_index` - The start index of tick array which include tick low
* * `tick_array_upper_start_index` - The start index of tick array which include tick upper
* * `liquidity` - The liquidity to be added
* * `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check
* * `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check
*
*/
export declare function openPosition(args: OpenPositionArgs, accounts: OpenPositionAccounts): TransactionInstruction;