import { Connection, Keypair, PublicKey } from "@solana/web3.js"; import { BN } from "@coral-xyz/anchor"; import Decimal from "decimal.js"; import { CreateCollectionOptions, CreateSingleOptions } from "@3land/listings-sdk/dist/types/implementation/implementationTypes"; import { mintCollectionNFT, closePerpTradeShort, closePerpTradeLong, openPerpTradeShort, openPerpTradeLong, FEE_TIERS, PriorityFee, TargetTokenStruct, InputAssetStruct } from "../tools"; import { Config, TokenCheck, CollectionDeployment, CollectionOptions, GibworkCreateTaskReponse, JupiterTokenData, MintCollectionNFTResponse, PumpfunLaunchResponse, PumpFunTokenOptions, OrderParams, FlashTradeParams, FlashCloseTradeParams, HeliusWebhookIdResponse, HeliusWebhookResponse, deBridgeOrderInput, deBridgeSupportedChainsResponse, deBridgeOrderResponse, deBridgeOrderStatusResponse, deBridgeTokensInfoResponse, SplAuthorityInput } from "../types"; import { DasApiAsset, DasApiAssetList, GetAssetsByAuthorityRpcInput, GetAssetsByCreatorRpcInput } from "@metaplex-foundation/digital-asset-standard-api"; import { AlloraInference, AlloraTopic } from "@alloralabs/allora-sdk"; /** * Main class for interacting with Solana blockchain * Provides a unified interface for token operations, NFT management, trading and more * * @class SolanaAgentKit * @property {Connection} connection - Solana RPC connection * @property {Keypair} wallet - Wallet keypair for signing transactions * @property {PublicKey} wallet_address - Public key of the wallet * @property {Config} config - Configuration object */ export declare class SolanaAgentKit { connection: Connection; wallet: Keypair; wallet_address: PublicKey; config: Config; /** * @deprecated Using openai_api_key directly in constructor is deprecated. * Please use the new constructor with Config object instead: * @example * const agent = new SolanaAgentKit(privateKey, rpcUrl, { * OPENAI_API_KEY: 'your-key' * }); */ constructor(private_key: string, rpc_url: string, openai_api_key: string | null); constructor(private_key: string, rpc_url: string, config: Config); requestFaucetFunds(): Promise; deployToken(name: string, uri: string, symbol: string, decimals: number | undefined, authority: SplAuthorityInput, initialSupply?: number): Promise<{ mint: PublicKey; }>; deployCollection(options: CollectionOptions): Promise; getBalance(token_address?: PublicKey): Promise; getTokenBalances(wallet_address?: PublicKey): Promise<{ sol: number; tokens: Array<{ tokenAddress: string; name: string; symbol: string; balance: number; decimals: number; }>; }>; getBalanceOther(walletAddress: PublicKey, tokenAddress?: PublicKey): Promise; mintNFT(collectionMint: PublicKey, metadata: Parameters[2], recipient?: PublicKey): Promise; transfer(to: PublicKey, amount: number, mint?: PublicKey): Promise; registerDomain(name: string, spaceKB?: number): Promise; resolveSolDomain(domain: string): Promise; getPrimaryDomain(account: PublicKey): Promise; trade(outputMint: PublicKey, inputAmount: number, inputMint?: PublicKey, slippageBps?: number): Promise; limitOrder(marketId: PublicKey, quantity: number, side: string, price: number): Promise; batchOrder(marketId: PublicKey, orders: OrderParams[]): Promise; cancelAllOrders(marketId: PublicKey): Promise; withdrawAll(marketId: PublicKey): Promise; openPerpTradeLong(args: Omit[0], "agent">): Promise; openPerpTradeShort(args: Omit[0], "agent">): Promise; closePerpTradeShort(args: Omit[0], "agent">): Promise; closePerpTradeLong(args: Omit[0], "agent">): Promise; lendAssets(amount: number): Promise; luloLend(mintAddress: string, amount: number): Promise; luloWithdraw(mintAddress: string, amount: number): Promise; getTPS(): Promise; getTokenDataByAddress(mint: string): Promise; getTokenDataByTicker(ticker: string): Promise; fetchTokenPrice(mint: string): Promise; launchPumpFunToken(tokenName: string, tokenTicker: string, description: string, imageUrl: string, options?: PumpFunTokenOptions): Promise; stake(amount: number): Promise; restake(amount: number): Promise; sendCompressedAirdrop(mintAddress: string, amount: number, decimals: number, recipients: string[], priorityFeeInLamports: number, shouldLog: boolean): Promise; meteoraCreateDynamicPool(tokenAMint: PublicKey, tokenBMint: PublicKey, tokenAAmount: BN, tokenBAmount: BN, tradeFeeNumerator: number, activationPoint: BN | null, hasAlphaVault: boolean, activationType: number): Promise; meteoraCreateDlmmPool(tokenAMint: PublicKey, tokenBMint: PublicKey, binStep: number, initialPrice: number, priceRoundingUp: boolean, feeBps: number, activationType: number, hasAlphaVault: boolean, activationPoint: BN | undefined): Promise; orcaClosePosition(positionMintAddress: PublicKey): Promise; orcaCreateCLMM(mintDeploy: PublicKey, mintPair: PublicKey, initialPrice: Decimal, feeTier: keyof typeof FEE_TIERS): Promise; orcaCreateSingleSidedLiquidityPool(depositTokenAmount: number, depositTokenMint: PublicKey, otherTokenMint: PublicKey, initialPrice: Decimal, maxPrice: Decimal, feeTier: keyof typeof FEE_TIERS): Promise; orcaFetchPositions(): Promise; orcaOpenCenteredPositionWithLiquidity(whirlpoolAddress: PublicKey, priceOffsetBps: number, inputTokenMint: PublicKey, inputAmount: Decimal): Promise; orcaOpenSingleSidedPosition(whirlpoolAddress: PublicKey, distanceFromCurrentPriceBps: number, widthBps: number, inputTokenMint: PublicKey, inputAmount: Decimal): Promise; resolveAllDomains(domain: string): Promise; getOwnedAllDomains(owner: PublicKey): Promise; getOwnedDomainsForTLD(tld: string): Promise; getAllDomainsTLDs(): Promise; getAllRegisteredAllDomains(): Promise; getMainAllDomainsDomain(owner: PublicKey): Promise; raydiumCreateAmmV4(marketId: PublicKey, baseAmount: BN, quoteAmount: BN, startTime: BN): Promise; raydiumCreateClmm(mint1: PublicKey, mint2: PublicKey, configId: PublicKey, initialPrice: Decimal, startTime: BN): Promise; raydiumCreateCpmm(mint1: PublicKey, mint2: PublicKey, configId: PublicKey, mintAAmount: BN, mintBAmount: BN, startTime: BN): Promise; openbookCreateMarket(baseMint: PublicKey, quoteMint: PublicKey, lotSize?: number, tickSize?: number): Promise; manifestCreateMarket(baseMint: PublicKey, quoteMint: PublicKey): Promise; getPythPriceFeedID(tokenSymbol: string): Promise; getPythPrice(priceFeedID: string): Promise; createGibworkTask(title: string, content: string, requirements: string, tags: string[], tokenMintAddress: string, tokenAmount: number, payer?: string): Promise; rockPaperScissors(amount: number, choice: "rock" | "paper" | "scissors"): Promise; createTiplink(amount: number, splmintAddress?: PublicKey): Promise<{ url: string; signature: string; }>; tensorListNFT(nftMint: PublicKey, price: number): Promise; tensorCancelListing(nftMint: PublicKey): Promise; closeEmptyTokenAccounts(): Promise<{ signature: string; size: number; }>; fetchTokenReportSummary(mint: string): Promise; fetchTokenDetailedReport(mint: string): Promise; /** * Opens a new trading position on Flash.Trade * @param params Flash trade parameters including market, side, collateral, leverage, and pool name * @returns Transaction signature */ flashOpenTrade(params: FlashTradeParams): Promise; /** * Closes an existing trading position on Flash.Trade * @param params Flash trade close parameters * @returns Transaction signature */ flashCloseTrade(params: FlashCloseTradeParams): Promise; heliusParseTransactions(transactionId: string): Promise; getAllAssetsbyOwner(owner: PublicKey, limit: number): Promise; create3LandCollection(collectionOpts: CreateCollectionOptions, isDevnet?: boolean, priorityFeeParam?: number): Promise; create3LandNft(collectionAccount: string, createItemOptions: CreateSingleOptions, isDevnet?: boolean, withPool?: boolean, priorityFeeParam?: number): Promise; sendTranctionWithPriority(priorityLevel: string, amount: number, to: PublicKey, splmintAddress?: PublicKey): Promise<{ transactionId: string; fee: number; }>; createSquadsMultisig(creator: PublicKey): Promise; depositToMultisig(amount: number, vaultIndex?: number, mint?: PublicKey): Promise; transferFromMultisig(amount: number, to: PublicKey, vaultIndex?: number, mint?: PublicKey): Promise; createMultisigProposal(transactionIndex?: number | bigint): Promise; approveMultisigProposal(transactionIndex?: number | bigint): Promise; rejectMultisigProposal(transactionIndex?: number | bigint): Promise; executeMultisigTransaction(transactionIndex?: number | bigint): Promise; CreateWebhook(accountAddresses: string[], webhookURL: string): Promise; getWebhook(id: string): Promise; deleteWebhook(webhookID: string): Promise; createDriftUserAccount(depositAmount: number, depositSymbol: string): Promise<{ txSignature: string; account: PublicKey; message?: never; } | { message: string; account: PublicKey; txSignature?: never; }>; createDriftVault(params: { name: string; marketName: `${string}-${string}`; redeemPeriod: number; maxTokens: number; minDepositAmount: number; managementFee: number; profitShare: number; hurdleRate?: number; permissioned?: boolean; }): Promise; depositIntoDriftVault(amount: number, vault: string): Promise; depositToDriftUserAccount(amount: number, symbol: string, isRepayment?: boolean): Promise; deriveDriftVaultAddress(name: string): Promise; doesUserHaveDriftAccount(): Promise<{ hasAccount: boolean; account: PublicKey; }>; driftUserAccountInfo(): Promise<{ name: number[]; accountAddress: string; authority: PublicKey; overallBalance: number; settledPerpPnl: string; lastActiveSlot: number; perpPositions: { market: string; baseAssetAmount: number; quoteAssetAmount: number; quoteEntryAmount: number; quoteBreakEvenAmount: number; settledPnl: number; openAsks: number; openBids: number; openOrders: number; positionType: string; }[]; spotPositions: ({ availableBalance: number; symbol: string; openAsks: number; openBids: number; openOrders: number; type: string; } | undefined)[]; }>; requestWithdrawalFromDriftVault(amount: number, vault: string): Promise; tradeUsingDelegatedDriftVault(vault: string, amount: number, symbol: string, action: "long" | "short", type: "market" | "limit", price?: number): Promise; tradeUsingDriftPerpAccount(amount: number, symbol: string, action: "long" | "short", type: "market" | "limit", price?: number): Promise; updateDriftVault(vaultAddress: string, params: { name: string; marketName: `${string}-${string}`; redeemPeriod: number; maxTokens: number; minDepositAmount: number; managementFee: number; profitShare: number; hurdleRate?: number; permissioned?: boolean; }): Promise; getDriftVaultInfo(vaultName: string): Promise<{ name: string; delegate: string; address: string; marketName: string; balance: string; redeemPeriod: number; maxTokens: number; minDepositAmount: number; managementFee: number; profitShare: number; hurdleRate: number; permissioned: boolean; }>; withdrawFromDriftAccount(amount: number, symbol: string, isBorrow?: boolean): Promise; withdrawFromDriftVault(vault: string): Promise; updateDriftVaultDelegate(vaultAddress: string, delegate: string): Promise; getAvailableDriftMarkets(type?: "spot" | "perp"): import("@drift-labs/sdk").SpotMarketConfig[] | import("@drift-labs/sdk").PerpMarketConfig[] | { spot: import("@drift-labs/sdk").SpotMarketConfig[]; perp: import("@drift-labs/sdk").PerpMarketConfig[]; }; stakeToDriftInsuranceFund(amount: number, symbol: string): Promise; requestUnstakeFromDriftInsuranceFund(amount: number, symbol: string): Promise; unstakeFromDriftInsuranceFund(symbol: string): Promise; driftSpotTokenSwap(params: { fromSymbol: string; toSymbol: string; slippage?: number; } & ({ toAmount: number; } | { fromAmount: number; })): Promise; getPerpMarketFundingRate(symbol: `${string}-PERP`, period?: "year" | "hour"): Promise<{ longRate: number; shortRate: number; friendlyString: string; }>; getEntryQuoteOfPerpTrade(amount: number, symbol: `${string}-PERP`, action: "short" | "long"): Promise<{ entryPrice: number; priceImpact: number; bestPrice: number; worstPrice: number; }>; getLendAndBorrowAPY(symbol: string): Promise<{ lendingAPY: number; borrowAPY: number; }>; voltrDepositStrategy(depositAmount: BN, vault: PublicKey, strategy: PublicKey): Promise; voltrWithdrawStrategy(withdrawAmount: BN, vault: PublicKey, strategy: PublicKey): Promise; voltrGetPositionValues(vault: PublicKey): Promise; getAsset(assetId: string): Promise; getAssetsByAuthority(params: GetAssetsByAuthorityRpcInput): Promise; getAssetsByCreator(params: GetAssetsByCreatorRpcInput): Promise; swap(amount: string, fromChain: string, fromToken: string, toChain: string, toToken: string, dstAddr: string, slippageBps?: number): Promise; getPriceInference(tokenSymbol: string, timeframe: string): Promise; getAllTopics(): Promise; getInferenceByTopicId(topicId: number): Promise; closeAccounts(mints: string[]): Promise; burnTokens(mints: string[]): Promise; mergeTokens(inputAssets: InputAssetStruct[], outputMint: string, priorityFee: PriorityFee): Promise; spreadToken(inputAsset: InputAssetStruct, targetTokens: TargetTokenStruct[], priorityFee: PriorityFee): Promise; simulateSwitchboardFeed(feed: string, crossbarUrl: string): Promise; pingElfaAiApi(): Promise; getElfaAiApiKeyStatus(): Promise; getSmartMentions(limit?: number, offset?: number): Promise; getTopMentionsByTicker(ticker: string, timeWindow?: string, page?: number, pageSize?: number, includeAccountDetails?: boolean): Promise; searchMentionsByKeywords(keywords: string, from: number, to: number, limit?: number): Promise; getTrendingTokens(): Promise; getTrendingTokensUsingElfaAi(): Promise; getSmartTwitterAccountStats(username: string): Promise; getDebridgeSupportedChains(): Promise; getDebridgeTokensInfo(chainId: string, search?: string): Promise; createDebridgeOrder(orderInput: deBridgeOrderInput): Promise; executeDebridgeOrder(transactionData: string): Promise; checkDebridgeTransactionStatus(txHashOrOrderId: string): Promise; fluxbeamCreatePool(token_a: PublicKey, token_a_amount: number, token_b: PublicKey, token_b_amount: number): Promise; getCoingeckoLatestPools(): Promise; getTokenInfoUsingCoingecko(tokenAddress: string): Promise; getTokenPriceDataUsingCoingecko(...tokenAddresses: string[]): Promise; getTopGainersOnCoingecko(duration?: "1h" | "24h" | "7d" | "14d" | "30d" | "60d" | "1y", noOfCoins?: 300 | 500 | 1000 | "all"): Promise; getCoingeckoTrendingPools(duration?: "5m" | "1h" | "24h" | "6h"): Promise; getTrendingTokensOnCoingecko(): Promise; createParaPregenWallet(email: string): Promise<{ message: string; address: string | undefined; email: string; walletId: string; userShare: string; }>; getParaPregenWallets(email: string): Promise<{ listAllPregenWallets: import("@getpara/server-sdk").WalletEntity[]; }>; updateParaPregenWallet(walletId: string, email: string): Promise<{ message: string; walletId: string; email: string; }>; useParaPregenWallet(userShare: string): Promise<{ message: string; address: string | undefined; email: string; }>; deactivateParaPregenWallet(): Promise<{ message: string; address: PublicKey; }>; claimParaPregenWallet(userShare: string): Promise<{ message: string; address: string | undefined; email: string; }>; } //# sourceMappingURL=index.d.ts.map