/// /// import { BN, Program, Provider } from '@coral-xyz/anchor'; import { AccountInfo, AddressLookupTableAccount, Cluster, Commitment, Connection, PublicKey, TransactionInstruction } from '@solana/web3.js'; import { Bank, MintInfo, TokenIndex } from './accounts/bank'; import { Group } from './accounts/group'; import { MangoAccount, TokenConditionalSwapDisplayPriceStyle, TokenConditionalSwapIntention } from './accounts/mangoAccount'; import { StubOracle } from './accounts/oracle'; import { PerpMarket, PerpMarketIndex, PerpOrderSide, PerpOrderType, PerpSelfTradeBehavior } from './accounts/perp'; import { MarketIndex, Serum3Market, Serum3OrderType, Serum3SelfTradeBehavior, Serum3Side } from './accounts/serum3'; import { IxGateParams, PerpEditParams, TokenEditParams, TokenRegisterParams } from './clientIxParamBuilder'; import { Id } from './ids'; import { MangoV4 } from './mango_v4'; import { FlashLoanType, OracleConfigParams } from './types'; import { LatestBlockhash, MangoSignatureStatus, SendTransactionOpts } from './utils/rpc'; export declare const DEFAULT_TOKEN_CONDITIONAL_SWAP_COUNT = 8; export declare const PERP_SETTLE_PNL_CU_LIMIT = 400000; export declare const PERP_SETTLE_FEES_CU_LIMIT = 20000; export declare const SERUM_SETTLE_FUNDS_CU_LIMIT = 65000; export declare enum AccountRetriever { Scanning = 0, Fixed = 1 } export type IdsSource = 'api' | 'static' | 'get-program-accounts'; export type MangoClientOptions = { idsSource?: IdsSource; postSendTxCallback?: (callbackOpts: TxCallbackOptions) => void; postTxConfirmationCallback?: (callbackOpts: TxCallbackOptions) => void; prioritizationFee?: number; estimateFee?: boolean; txConfirmationCommitment?: Commitment; openbookFeesToDao?: boolean; prependedGlobalAdditionalInstructions?: TransactionInstruction[]; multipleConnections?: Connection[]; }; export type TxCallbackOptions = { txid: string; txSignatureBlockHash: LatestBlockhash; }; export declare class MangoClient { program: Program; programId: PublicKey; cluster: Cluster; opts: MangoClientOptions; private idsSource; private postSendTxCallback?; postTxConfirmationCallback?: (callbackOpts: TxCallbackOptions) => void; private prioritizationFee; private estimateFee; private txConfirmationCommitment; private openbookFeesToDao; private prependedGlobalAdditionalInstructions; multipleConnections: Connection[]; constructor(program: Program, programId: PublicKey, cluster: Cluster, opts?: MangoClientOptions); get connection(): Connection; get walletPk(): PublicKey; sendAndConfirmTransaction(ixs: TransactionInstruction[], opts?: SendTransactionOpts): Promise; sendAndConfirmTransaction(ixs: TransactionInstruction[], opts?: { confirmInBackground: true; } & SendTransactionOpts): Promise; sendAndConfirmTransactionForGroup(group: Group, ixs: TransactionInstruction[], opts?: SendTransactionOpts): Promise; sendAndConfirmTransactionForGroup(group: Group, ixs: TransactionInstruction[], opts?: { confirmInBackground: true; } & SendTransactionOpts): Promise; adminTokenWithdrawFees(group: Group, bank: Bank, tokenAccountPk: PublicKey): Promise; adminPerpWithdrawFees(group: Group, perpMarket: PerpMarket, tokenAccountPk: PublicKey): Promise; groupCreate(groupNum: number, testing: boolean, version: number, insuranceMintPk: PublicKey): Promise; groupEdit(group: Group, admin?: PublicKey, fastListingAdmin?: PublicKey, securityAdmin?: PublicKey, testing?: number, version?: number, depositLimitQuote?: BN, feesPayWithMngo?: boolean, feesMngoBonusRate?: number, feesSwapMangoAccount?: PublicKey, feesMngoTokenIndex?: TokenIndex, feesExpiryInterval?: BN, allowedFastListingsPerInterval?: number): Promise; ixGateSet(group: Group, ixGateParams: IxGateParams): Promise; groupClose(group: Group): Promise; getGroup(groupPk: PublicKey): Promise; getGroupsForCreator(creatorPk: PublicKey): Promise; getGroupForCreator(creatorPk: PublicKey, groupNum: number): Promise; getIds(groupPk: PublicKey): Promise; tokenRegister(group: Group, mintPk: PublicKey, oraclePk: PublicKey, tokenIndex: number, name: string, params: TokenRegisterParams): Promise; tokenRegisterTrustless(group: Group, mintPk: PublicKey, oraclePk: PublicKey, tokenIndex: number, name: string): Promise; tokenEdit(group: Group, mintPk: PublicKey, params: TokenEditParams): Promise; tokenForceCloseBorrowsWithToken(group: Group, liqor: MangoAccount, liqee: MangoAccount, assetTokenIndex: TokenIndex, liabTokenIndex: TokenIndex, maxLiabTransfer?: number): Promise; tokenDeregister(group: Group, mintPk: PublicKey): Promise; getBanksForGroup(group: Group): Promise; getMintInfosForGroup(group: Group): Promise; getMintInfoForTokenIndex(group: Group, tokenIndex: TokenIndex): Promise; stubOracleCreate(group: Group, mintPk: PublicKey, price: number): Promise; stubOracleClose(group: Group, oracle: PublicKey): Promise; stubOracleSet(group: Group, oraclePk: PublicKey, price: number): Promise; getStubOracle(group: Group, mintPk?: PublicKey): Promise; createMangoAccount(group: Group, accountNumber?: number, name?: string, tokenCount?: number, serum3Count?: number, perpCount?: number, perpOoCount?: number): Promise; expandMangoAccount(group: Group, account: MangoAccount, tokenCount: number, serum3Count: number, perpCount: number, perpOoCount: number): Promise; accountExpandV2(group: Group, account: MangoAccount, tokenCount: number, serum3Count: number, perpCount: number, perpOoCount: number, tokenConditionalSwapCount: number): Promise; accountExpandV2Ix(group: Group, account: MangoAccount, tokenCount: number, serum3Count: number, perpCount: number, perpOoCount: number, tokenConditionalSwapCount: number): Promise; editMangoAccount(group: Group, mangoAccount: MangoAccount, name?: string, delegate?: PublicKey, temporaryDelegate?: PublicKey, delegateExpiry?: number): Promise; toggleMangoAccountFreeze(group: Group, mangoAccount: MangoAccount, freeze: boolean): Promise; getMangoAccount(mangoAccountPk: PublicKey, loadSerum3Oo?: boolean): Promise; private getMangoAccountFromPk; getMangoAccountFromAi(mangoAccountPk: PublicKey, ai: AccountInfo): MangoAccount; getMangoAccountWithSlot(mangoAccountPk: PublicKey, loadSerum3Oo?: boolean): Promise<{ slot: number; value: MangoAccount; } | undefined>; getMangoAccountForOwner(group: Group, ownerPk: PublicKey, accountNumber: number, loadSerum3Oo?: boolean): Promise; getMangoAccountsForOwner(group: Group, ownerPk: PublicKey, loadSerum3Oo?: boolean): Promise; getMangoAccountsForDelegate(group: Group, delegate: PublicKey, loadSerum3Oo?: boolean): Promise; getAllMangoAccounts(group: Group, loadSerum3Oo?: boolean): Promise; /** * Note: this ix doesn't settle liabs, reduce open positions, or withdraw tokens to wallet, * it simply closes the account. To close successfully ensure all positions are closed, or * use forceClose flag * @param group * @param mangoAccount * @param forceClose * @returns */ closeMangoAccount(group: Group, mangoAccount: MangoAccount, forceClose?: boolean): Promise; emptyAndCloseMangoAccount(group: Group, mangoAccount: MangoAccount): Promise; accountBuybackFeesWithMngoIx(group: Group, mangoAccount: MangoAccount, maxBuybackUsd?: number): Promise; accountBuybackFeesWithMngo(group: Group, mangoAccount: MangoAccount, maxBuyback?: number): Promise; tokenDeposit(group: Group, mangoAccount: MangoAccount, mintPk: PublicKey, amount: number, reduceOnly?: boolean): Promise; tokenDepositNative(group: Group, mangoAccount: MangoAccount, mintPk: PublicKey, nativeAmount: BN, reduceOnly?: boolean): Promise; tokenWithdrawAllDepositForAllUnconfidentOrStaleOracles(group: Group, mangoAccount: MangoAccount): Promise; /** * Withdraw the entire deposit balance for a token, effectively freeing the token position * * @param group * @param mangoAccount * @param mintPk * @returns */ tokenWithdrawAllDepositForMint(group: Group, mangoAccount: MangoAccount, mintPk: PublicKey): Promise; tokenWithdraw(group: Group, mangoAccount: MangoAccount, mintPk: PublicKey, amount: number, allowBorrow: boolean): Promise; tokenWithdrawNativeIx(group: Group, mangoAccount: MangoAccount, mintPk: PublicKey, nativeAmount: BN, allowBorrow: boolean): Promise; tokenWithdrawNative(group: Group, mangoAccount: MangoAccount, mintPk: PublicKey, nativeAmount: BN, allowBorrow: boolean): Promise; serum3RegisterMarket(group: Group, serum3MarketExternalPk: PublicKey, baseBank: Bank, quoteBank: Bank, marketIndex: number, name: string, oraclePriceBand: number): Promise; serum3EditMarketIx(group: Group, serum3MarketIndex: MarketIndex, admin: PublicKey, reduceOnly: boolean | null, forceClose: boolean | null, name: string | null, oraclePriceBand: number | null): Promise; serum3EditMarket(group: Group, serum3MarketIndex: MarketIndex, reduceOnly: boolean | null, forceClose: boolean | null, name: string | null, oraclePriceBand: number | null): Promise; serum3deregisterMarket(group: Group, externalMarketPk: PublicKey): Promise; serum3GetMarkets(group: Group, baseTokenIndex?: number, quoteTokenIndex?: number): Promise; serum3CreateOpenOrders(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey): Promise; serum3CreateOpenOrdersIx(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey): Promise; serum3CloseOpenOrdersIx(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey): Promise; serum3CloseOpenOrders(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey): Promise; serum3LiqForceCancelOrders(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey, limit?: number): Promise; serum3PlaceOrderIx(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey, side: Serum3Side, price: number, size: number, selfTradeBehavior: Serum3SelfTradeBehavior, orderType: Serum3OrderType, clientOrderId: number, limit: number): Promise; serum3PlaceOrderV1Ix(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey, side: Serum3Side, price: number, size: number, selfTradeBehavior: Serum3SelfTradeBehavior, orderType: Serum3OrderType, clientOrderId: number, limit: number): Promise; serum3PlaceOrderV2Ix(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey, side: Serum3Side, price: number, size: number, selfTradeBehavior: Serum3SelfTradeBehavior, orderType: Serum3OrderType, clientOrderId: number, limit: number): Promise; serum3PlaceOrder(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey, side: Serum3Side, price: number, size: number, selfTradeBehavior: Serum3SelfTradeBehavior, orderType: Serum3OrderType, clientOrderId: number, limit: number): Promise; serum3CancelAllOrdersIx(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey, limit?: number): Promise; serum3CancelAllOrders(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey, limit?: number): Promise; serum3SettleFundsIx(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey): Promise; serum3SettleFundsV2Ix(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey): Promise; serum3SettleFunds(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey): Promise; serum3CancelOrderIx(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey, side: Serum3Side, orderId: BN): Promise; serum3CancelOrder(group: Group, mangoAccount: MangoAccount, externalMarketPk: PublicKey, side: Serum3Side, orderId: BN): Promise; perpCreateMarket(group: Group, oraclePk: PublicKey, perpMarketIndex: number, name: string, oracleConfig: OracleConfigParams, baseDecimals: number, quoteLotSize: number, baseLotSize: number, maintBaseAssetWeight: number, initBaseAssetWeight: number, maintBaseLiabWeight: number, initBaseLiabWeight: number, maintOverallAssetWeight: number, initOverallAssetWeight: number, baseLiquidationFee: number, makerFee: number, takerFee: number, feePenalty: number, minFunding: number, maxFunding: number, impactQuantity: number, groupInsuranceFund: boolean, settleFeeFlat: number, settleFeeAmountThreshold: number, settleFeeFractionLowHealth: number, settleTokenIndex: number, settlePnlLimitFactor: number, settlePnlLimitWindowSize: number, positivePnlLiquidationFee: number): Promise; perpEditMarket(group: Group, perpMarketIndex: PerpMarketIndex, params: PerpEditParams): Promise; perpForceClosePosition(group: Group, perpMarketIndex: PerpMarketIndex, accountA: MangoAccount, accountB: MangoAccount): Promise; perpCloseMarket(group: Group, perpMarketIndex: PerpMarketIndex): Promise; perpGetMarkets(group: Group): Promise; perpDeactivatePositionIx(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex): Promise; perpDeactivatePosition(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex): Promise; perpCloseAll(group: Group, mangoAccount: MangoAccount, slippage?: number): Promise; perpPlaceOrder(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, side: PerpOrderSide, price: number, quantity: number, maxQuoteQuantity?: number, clientOrderId?: number, orderType?: PerpOrderType, reduceOnly?: boolean, expiryTimestamp?: number, limit?: number): Promise; perpPlaceOrderIx(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, side: PerpOrderSide, price: number, quantity: number, maxQuoteQuantity?: number, clientOrderId?: number, orderType?: PerpOrderType, reduceOnly?: boolean, expiryTimestamp?: number, limit?: number): Promise; perpPlaceOrderV2Ix(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, side: PerpOrderSide, price: number, quantity: number, maxQuoteQuantity?: number, clientOrderId?: number, orderType?: PerpOrderType, selfTradeBehavior?: PerpSelfTradeBehavior, reduceOnly?: boolean, expiryTimestamp?: number, limit?: number): Promise; perpPlaceOrderPegged(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, side: PerpOrderSide, priceOffset: number, quantity: number, pegLimit?: number, maxQuoteQuantity?: number, clientOrderId?: number, orderType?: PerpOrderType, reduceOnly?: boolean, expiryTimestamp?: number, limit?: number): Promise; perpPlaceOrderPeggedIx(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, side: PerpOrderSide, priceOffset: number, quantity: number, pegLimit?: number, maxQuoteQuantity?: number, clientOrderId?: number, orderType?: PerpOrderType, reduceOnly?: boolean, expiryTimestamp?: number, limit?: number): Promise; perpPlaceOrderPeggedV2Ix(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, side: PerpOrderSide, priceOffset: number, quantity: number, pegLimit?: number, maxQuoteQuantity?: number, clientOrderId?: number, orderType?: PerpOrderType, selfTradeBehavior?: PerpSelfTradeBehavior, reduceOnly?: boolean, expiryTimestamp?: number, limit?: number): Promise; perpCancelOrderByClientOrderIdIx(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, clientOrderId: BN): Promise; perpCancelOrderIx(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, orderId: BN): Promise; perpCancelOrder(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, orderId: BN): Promise; perpCancelAllOrders(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, limit: number): Promise; perpCancelAllOrdersIx(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, limit: number): Promise; settleAll(client: MangoClient, group: Group, mangoAccount: MangoAccount, allMangoAccounts?: MangoAccount[]): Promise; perpSettlePnlAndFees(group: Group, profitableAccount: MangoAccount, unprofitableAccount: MangoAccount, accountToSettleFeesFor: MangoAccount, settler: MangoAccount, perpMarketIndex: PerpMarketIndex, maxSettleAmount?: number): Promise; perpSettlePnl(group: Group, profitableAccount: MangoAccount, unprofitableAccount: MangoAccount, settler: MangoAccount, perpMarketIndex: PerpMarketIndex): Promise; perpSettlePnlIx(group: Group, profitableAccount: MangoAccount, unprofitableAccount: MangoAccount, settler: MangoAccount, perpMarketIndex: PerpMarketIndex): Promise; perpSettleFees(group: Group, account: MangoAccount, perpMarketIndex: PerpMarketIndex, maxSettleAmount?: number): Promise; perpSettleFeesIx(group: Group, account: MangoAccount, perpMarketIndex: PerpMarketIndex, maxSettleAmount?: number): Promise; perpConsumeEvents(group: Group, perpMarketIndex: PerpMarketIndex, accounts: PublicKey[], limit: number): Promise; perpConsumeEventsIx(group: Group, perpMarketIndex: PerpMarketIndex, accounts: PublicKey[], limit: number): Promise; perpConsumeAllEvents(group: Group, perpMarketIndex: PerpMarketIndex): Promise; perpUpdateFundingIx(group: Group, perpMarket: PerpMarket): Promise; marginTrade({ group, mangoAccount, inputMintPk, amountIn, outputMintPk, userDefinedInstructions, userDefinedAlts, flashLoanType, }: { group: Group; mangoAccount: MangoAccount; inputMintPk: PublicKey; amountIn: number; outputMintPk: PublicKey; userDefinedInstructions: TransactionInstruction[]; userDefinedAlts: AddressLookupTableAccount[]; flashLoanType: FlashLoanType; }): Promise; tokenUpdateIndexAndRate(group: Group, mintPk: PublicKey): Promise; tokenUpdateIndexAndRateIx(group: Group, mintPk: PublicKey): Promise; liqTokenWithToken(group: Group, liqor: MangoAccount, liqee: MangoAccount, assetMintPk: PublicKey, liabMintPk: PublicKey, maxLiabTransfer: number): Promise; tcsTakeProfitOnDeposit(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, thresholdPrice: number, thresholdPriceInSellPerBuyToken: boolean, maxSell: number | null, pricePremium: number | null, expiryTimestamp: number | null): Promise; tcsTakeProfitOnDepositIx(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, thresholdPrice: number, thresholdPriceInSellPerBuyToken: boolean, maxSell: number | null, pricePremium: number | null, expiryTimestamp: number | null): Promise; tcsStopLossOnDeposit(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, thresholdPrice: number, thresholdPriceInSellPerBuyToken: boolean, maxSell: number | null, pricePremium: number | null, expiryTimestamp: number | null): Promise; tcsStopLossOnDepositIx(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, thresholdPrice: number, thresholdPriceInSellPerBuyToken: boolean, maxSell: number | null, pricePremium: number | null, expiryTimestamp: number | null): Promise; tcsTakeProfitOnBorrow(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, thresholdPrice: number, thresholdPriceInSellPerBuyToken: boolean, maxBuyUi: number | null, pricePremium: number | null, allowMargin: boolean | null, expiryTimestamp: number | null): Promise; tcsTakeProfitOnBorrowIx(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, thresholdPrice: number, thresholdPriceInSellPerBuyToken: boolean, maxBuyUi: number | null, pricePremium: number | null, allowMargin: boolean | null, expiryTimestamp: number | null): Promise; tcsStopLossOnBorrow(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, thresholdPrice: number, thresholdPriceInSellPerBuyToken: boolean, maxBuyUi: number | null, pricePremium: number | null, allowMargin: boolean | null, expiryTimestamp: number | null): Promise; tcsStopLossOnBorrowIx(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, thresholdPrice: number, thresholdPriceInSellPerBuyToken: boolean, maxBuyUi: number | null, pricePremium: number | null, allowMargin: boolean | null, expiryTimestamp: number | null): Promise; tokenConditionalSwapCreateIx(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, lowerLimitNativeNative: number, upperLimitNativeNative: number, maxBuy: number, maxSell: number, tcsIntention: 'TakeProfitOnDeposit' | 'StopLossOnDeposit' | 'TakeProfitOnBorrow' | 'StopLossOnBorrow' | null, pricePremium: number | null, allowCreatingDeposits: boolean, allowCreatingBorrows: boolean, expiryTimestamp: number | null, displayPriceInSellTokenPerBuyToken: boolean): Promise; tokenConditionalSwapCreate(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, lowerLimitNativeNative: number, upperLimitNativeNative: number, maxBuy: number, maxSell: number, tcsIntention: 'TakeProfitOnDeposit' | 'StopLossOnDeposit' | 'TakeProfitOnBorrow' | 'StopLossOnBorrow' | null, pricePremium: number | null, allowCreatingDeposits: boolean, allowCreatingBorrows: boolean, expiryTimestamp: number | null, displayPriceInSellTokenPerBuyToken: boolean): Promise; tokenConditionalSwapCreateLinearAuctionIx(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, priceStart: number, priceEnd: number, maxBuy: number, maxSell: number, allowCreatingDeposits: boolean, allowCreatingBorrows: boolean, displayPriceInSellTokenPerBuyToken: boolean, startTimestamp: number, durationSeconds: number, expiryTimestamp: number | null): Promise; tokenConditionalSwapCreateLinearAuction(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, priceStart: number, priceEnd: number, maxBuy: number, maxSell: number, allowCreatingDeposits: boolean, allowCreatingBorrows: boolean, displayPriceInSellTokenPerBuyToken: boolean, startTimestamp: number, durationSeconds: number, expiryTimestamp: number | null): Promise; tokenConditionalSwapCreatePremiumAuctionIx(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, lowerLimit: number, upperLimit: number, maxBuy: number, maxSell: number, tcsIntention: 'TakeProfitOnDeposit' | 'StopLossOnDeposit' | 'TakeProfitOnBorrow' | 'StopLossOnBorrow' | null, maxPricePremiumPercent: number | null, allowCreatingDeposits: boolean, allowCreatingBorrows: boolean, expiryTimestamp: number | null, displayPriceInSellTokenPerBuyToken: boolean, durationSeconds: number): Promise; tokenConditionalSwapCreatePremiumAuction(group: Group, account: MangoAccount, sellBank: Bank, buyBank: Bank, lowerLimit: number, upperLimit: number, maxBuy: number, maxSell: number, tcsIntention: 'TakeProfitOnDeposit' | 'StopLossOnDeposit' | 'TakeProfitOnBorrow' | 'StopLossOnBorrow' | null, maxPricePremiumPercent: number | null, allowCreatingDeposits: boolean, allowCreatingBorrows: boolean, expiryTimestamp: number | null, displayPriceInSellTokenPerBuyToken: boolean, durationSeconds: number): Promise; tokenConditionalSwapCreateRaw(group: Group, account: MangoAccount, buyMintPk: PublicKey, sellMintPk: PublicKey, maxBuy: BN, maxSell: BN, expiryTimestamp: number | null, priceLowerLimit: number, priceUpperLimit: number, pricePremiumRate: number, allowCreatingDeposits: boolean, allowCreatingBorrows: boolean, priceDisplayStyle: TokenConditionalSwapDisplayPriceStyle, intention: TokenConditionalSwapIntention): Promise; tokenConditionalSwapCreateRawIx(group: Group, account: MangoAccount, buyMintPk: PublicKey, sellMintPk: PublicKey, maxBuy: BN, maxSell: BN, expiryTimestamp: number | null, priceLowerLimit: number, priceUpperLimit: number, pricePremiumRate: number, allowCreatingDeposits: boolean, allowCreatingBorrows: boolean, priceDisplayStyle: TokenConditionalSwapDisplayPriceStyle, intention: TokenConditionalSwapIntention): Promise; tokenConditionalSwapCancelIx(group: Group, account: MangoAccount, tokenConditionalSwapId: BN): Promise; tokenConditionalSwapCancel(group: Group, account: MangoAccount, tokenConditionalSwapId: BN): Promise; tokenConditionalSwapCancelAll(group: Group, account: MangoAccount): Promise; tokenConditionalSwapTrigger(group: Group, liqee: MangoAccount, liqor: MangoAccount, tokenConditionalSwapId: BN, maxBuyTokenToLiqee: number, maxSellTokenToLiqor: number): Promise; tokenConditionalSwapTriggerIx(group: Group, liqee: MangoAccount, liqor: MangoAccount, tokenConditionalSwapId: BN, maxBuyTokenToLiqee: number, maxSellTokenToLiqor: number): Promise; altSet(group: Group, addressLookupTable: PublicKey, index: number): Promise; altExtend(group: Group, addressLookupTable: PublicKey, index: number, pks: PublicKey[]): Promise; healthRegionBeginIx(group: Group, account: MangoAccount, banks?: Bank[], perpMarkets?: PerpMarket[]): Promise; healthRegionEndIx(group: Group, account: MangoAccount, banks?: Bank[], perpMarkets?: PerpMarket[]): Promise; static connect(provider: Provider, cluster: Cluster, programId: PublicKey, opts?: MangoClientOptions): MangoClient; /** * Connect with defaults, * - random ephemeral keypair, * - fetch ids using gPa * - connects to mainnet-beta * - uses well known program Id * @param clusterUrl * @returns */ static connectDefault(clusterUrl: string): MangoClient; static connectForGroupName(provider: Provider, groupName: string): MangoClient; /** * Builds health remaining accounts. * * For single mango account it builds a list of PublicKeys * which is compatbile with Fixed account retriever. * * For multiple mango accounts it uses same logic as for fixed * but packing all banks, then perp markets, and then serum oo accounts, which * should always be compatible with Scanning account retriever. * * @param group * @param mangoAccounts * @param banks - banks in which new positions might be opened * @param perpMarkets - markets in which new positions might be opened * @param openOrdersForMarket - markets in which new positions might be opened * @returns */ buildHealthRemainingAccounts(group: Group, mangoAccounts: MangoAccount[], banks?: Bank[], perpMarkets?: PerpMarket[], openOrdersForMarket?: [Serum3Market, PublicKey][]): PublicKey[]; modifyPerpOrder(group: Group, mangoAccount: MangoAccount, perpMarketIndex: PerpMarketIndex, orderId: BN, side: PerpOrderSide, price: number, quantity: number, maxQuoteQuantity?: number, clientOrderId?: number, orderType?: PerpOrderType, reduceOnly?: boolean, expiryTimestamp?: number, limit?: number): Promise; modifySerum3Order(group: Group, orderId: BN, mangoAccount: MangoAccount, externalMarketPk: PublicKey, side: Serum3Side, price: number, size: number, selfTradeBehavior: Serum3SelfTradeBehavior, orderType: Serum3OrderType, clientOrderId: number, limit: number): Promise; /** * Returns an estimate of a prioritization fee for a set of instructions. * * The estimate is based on the median fees of writable accounts that will be involved in the transaction. * * @param ixs - the instructions that make up the transaction * @returns prioritizationFeeEstimate -- in microLamports */ estimatePrioritizationFee(ixs: TransactionInstruction[]): Promise; } //# sourceMappingURL=client.d.ts.map