UNPKG

@symmetry-hq/baskets-sdk

Version:

Software Development Kit for interacting with Symmetry Baskets Program

78 lines (77 loc) 4.46 kB
import { AddressLookupTableAccount, Connection, PublicKey, TransactionInstruction, TransactionSignature } from "@solana/web3.js"; import { Program, Wallet, Idl } from "@coral-xyz/anchor"; import { BasketsIDL } from "./basketsIDL"; import { Basket } from "./basketState"; import { CreateBasketParams, FilterOption, TokenSettings, SimpleEditParams, SimpleCreateParams } from "./config"; import { BuyState } from "./buyState"; export * as BasketInstructions from "./basketInstructions"; export * from "./config"; export * from "./basketState"; export * from "./buyState"; export * from "./utils"; export * from "./basketsIDL"; export declare class BasketsSDK { private connection; private program; private swbProgram; private swbIDL; private tokenList; private lookups; private wallet?; private lamports; private jupAPIkey; constructor(connection: Connection, program: Program<BasketsIDL>, swbProgram: Program, swbIDL: Idl, tokenList: TokenSettings[], lookups: AddressLookupTableAccount[], wallet?: Wallet); static init(connection: Connection, wallet?: Wallet): Promise<BasketsSDK>; setWallet(wallet: Wallet): void; setPriorityFee(lamports: number): void; setJupAPIKey(apiKey: string): void; loadFromPubkey(pubkey: PublicKey): Promise<Basket>; getCurrentCompositions(baskets: Basket[]): Promise<any>; findBaskets(filters: FilterOption[]): Promise<Basket[]>; findActiveSellStates(user: PublicKey): Promise<Basket[]>; findActiveBuyStates(user: PublicKey): Promise<BuyState[]>; fetchAllBuyStates(filters: FilterOption[]): Promise<BuyState[]>; fetchBuyStateFromPubkey(pubkey: PublicKey): Promise<BuyState>; fetchAllSellStates(filters: FilterOption[]): Promise<Basket[]>; fetchAllHoldings(user: PublicKey): Promise<{ basketAddress: string; mint: string; balance: number; basketData: any; }[]>; getTokenListData(): TokenSettings[]; tokenIdFromMint(tokenMint: string): number; createBasket(createBasketParams: SimpleCreateParams): Promise<Basket>; simulateBasket(createBasketParams: CreateBasketParams, simulationDays: number): Promise<{ price: number; currentCompAmount: number[]; currentCompToken: number[]; }[]>; editBasket(basket: Basket, editBasketParams: SimpleEditParams): Promise<TransactionSignature>; setMetadata(basket: Basket, symbol: string, name: string, uri?: string): Promise<TransactionSignature>; editManager(basket: Basket, newManager: PublicKey): Promise<TransactionSignature>; closeBasket(basket: Basket): Promise<TransactionSignature>; refilterBasketInstruction(basket: Basket): Promise<TransactionInstruction>; reweightBasketInstruction(basket: Basket): Promise<TransactionInstruction>; rebalanceBasket(basket: Basket, updateOracles?: boolean): Promise<TransactionSignature[]>; updateAllSwbOracles(): Promise<string[]>; rebalanceCronJob(basket: Basket, updateOracles?: boolean, maxAllowedAccounts?: number, softCap?: number, hardCap?: number, underTokens?: number, overTokens?: number): Promise<TransactionSignature[]>; filterCronJobBaskets(allBaskets: Basket[], softCap?: number): Promise<Basket[]>; buyBasket(basket: Basket, amountUsdc: number): Promise<BuyState>; getOraclePrices(): Promise<number[]>; computeMintAmountWithMultipleTokens(basket: Basket, contribution: { token: PublicKey; amount: number; }[]): Promise<number>; computeMintAmountWithSingleToken(basket: Basket, token: PublicKey, amount: number): Promise<number>; buyWithSingleToken(basket: Basket, token: PublicKey, amount: number, updateOracles?: boolean): Promise<TransactionSignature>; rebalanceBuyState(buyState: BuyState, updateOracles?: boolean): Promise<TransactionSignature[]>; mintBasket(buyState: BuyState, updateOracles?: boolean): Promise<TransactionSignature[]>; computeOutputAmountWithSingleToken(basket: Basket, withdrawToken: PublicKey, amount: number): Promise<number>; sellBasket(basket: Basket, amount: number, rebalance: number): Promise<Basket>; claimTokensFromBuyState(buyState: BuyState): Promise<TransactionSignature[]>; claimTokens(basket: Basket): Promise<TransactionSignature[]>; removeDust(basket: Basket, updateOracles?: boolean): Promise<TransactionSignature[]>; freezeProgram(): Promise<TransactionSignature>; unfreezeProgram(): Promise<TransactionSignature>; }