@symmetry-hq/baskets-sdk
Version:
Software Development Kit for interacting with Symmetry Baskets Program
30 lines (29 loc) • 3.69 kB
TypeScript
import { Program, Wallet } from "@coral-xyz/anchor";
import { AddressLookupTableAccount, Connection, GetProgramAccountsFilter, GetProgramAccountsResponse, Keypair, PublicKey, Transaction, TransactionSignature, VersionedTransaction } from "@solana/web3.js";
import { BasketsIDL } from "./basketsIDL";
import { CreateBasketParams, RebalanceInfo, TokenSettings, JupSwapData } from "./config";
import { Basket } from "./basketState";
export declare function delay(ms: number): Promise<unknown>;
export declare function rawOraclePrices(connection: Connection, tokenList: any): Promise<number[]>;
export declare function getOraclePrices(program: Program<BasketsIDL>, tokenList: TokenSettings[]): Promise<number[]>;
export declare function getFilteredProgramAccounts(connection: Connection, filters: GetProgramAccountsFilter[]): Promise<GetProgramAccountsResponse>;
export declare function signVersionedTransactions(wallet: Wallet, transactions: VersionedTransaction[]): Promise<VersionedTransaction[]>;
export declare function signTransactionsWithWallet(connection: Connection, wallet: Wallet, transactionsData: {
transaction: Transaction;
signers: Keypair[];
}[]): Promise<Transaction[]>;
export declare function sendSignedTransaction(connection: Connection, transaction: Transaction | VersionedTransaction, retries?: number, delayMs?: number): Promise<TransactionSignature>;
export declare function confirmTransaction(connection: Connection, txId: TransactionSignature, timeout?: number): Promise<boolean>;
export declare function sendSignedTransactions(connection: Connection, transactions: (Transaction | VersionedTransaction)[], confirmFirstN?: number): Promise<TransactionSignature[]>;
export declare const getAddressLookupTableAccounts: (connection: Connection, keys: string[]) => Promise<AddressLookupTableAccount[]>;
export declare function buildTxFromQuoteResponse(quoteResponse: any, rebalanceInfo: RebalanceInfo, connection: Connection, jupAPIkey: string): Promise<JupSwapData>;
export declare function findRoute(rebalanceInfo: any, jupAPIkey: string, slippage: number, midToken: string, inputAmountOverwrite: number): Promise<any>;
export declare function generateJupSwapInstruction(rebalanceInfo: RebalanceInfo, slippage: number, connection: Connection, fromPriceWithDecimals: number, toPriceWithDecimals: number, midTokenMint: string, midTokenPda: string, jupAPIkey: string): Promise<JupSwapData>;
export declare function generateJupTxData(signer: PublicKey, mintFrom: string, mintTo: string, amountFrom: number, maxAllowedAccounts: number, slippage: number, fromPriceWithDecimals: number, toPriceWithDecimals: number, jupAPIkey: string): Promise<any>;
export declare function calculateRebalanceAmounts(program: Program<BasketsIDL>, numTokens: number, timestamp: number, lastRebalanceTime: number[], rebalanceInterval: number, currentCompToken: number[], currentCompAmount: number[], targetWeights: number[], weightSum: number, tokenList: TokenSettings[], rebalanceThreshold: number, oraclePriceData: number[], forceRebalance: boolean): RebalanceInfo[];
export declare function stringToAscii(coingeckoId: string): Array<number>;
export declare function asciiToString(coingeckoIdAscii: number[]): string;
export declare function fetchTokenList(program: Program<BasketsIDL>): Promise<TokenSettings[]>;
export declare function getCurrentComposition(basket: Basket, tokenList: TokenSettings[], oraclePriceData: number[]): any;
export declare function validateCreateBasketParams(createBasketParams: CreateBasketParams, tokenList: TokenSettings[], basketState?: PublicKey, skipNameCheck?: boolean): Promise<void>;
export declare function tryMetadata(parsed: any): Promise<any>;