@symmetry-hq/baskets-sdk
Version:
Software Development Kit for interacting with Symmetry Baskets Program
41 lines (40 loc) • 4.13 kB
TypeScript
import { Program, Wallet } from "@coral-xyz/anchor";
import { AccountInfo, AddressLookupTableAccount, Connection, PublicKey, TransactionInstruction, TransactionSignature } from "@solana/web3.js";
import { BasketsIDL } from "./basketsIDL";
import { BasketStateChainData, RebalanceInfo, TokenSettings, JupSwapData, SimpleEditParams, SimpleCreateParams, TransactionToSend } from "./config";
export declare class Basket {
ownAddress: PublicKey;
data: BasketStateChainData;
constructor(ownAddress: PublicKey, basketData: BasketStateChainData);
static loadFromRawData(program: Program<BasketsIDL>, rawData: {
pubkey: PublicKey;
account: AccountInfo<Buffer>;
}): Basket;
static loadFromPubkey(program: Program<BasketsIDL>, basketState: PublicKey): Promise<Basket>;
static getCompositionAndPrice(connection: Connection, pubkey: PublicKey, getPrice?: boolean): Promise<any>;
static create(program: Program<BasketsIDL>, connection: Connection, wallet: Wallet, tokenList: TokenSettings[], lookups: AddressLookupTableAccount[], basketParams: SimpleCreateParams, lamports?: number): Promise<Basket>;
update(program: Program<BasketsIDL>): Promise<void>;
editManager(program: Program<BasketsIDL>, connection: Connection, wallet: Wallet, newManager: PublicKey, lamports?: number): Promise<TransactionSignature>;
edit(program: Program<BasketsIDL>, connection: Connection, wallet: Wallet, tokenList: TokenSettings[], lookups: AddressLookupTableAccount[], basketParams: SimpleEditParams, lamports?: number): Promise<TransactionSignature>;
setMetaData(program: Program<BasketsIDL>, wallet: Wallet, symbol: string, name: string, uri: string, lamports?: number): Promise<TransactionSignature>;
close(program: Program<BasketsIDL>, wallet: Wallet, lamports?: number): Promise<TransactionSignature>;
getSwbFeeds(tokenList: TokenSettings[]): PublicKey[];
rebalanceFromUsdcTransactionData(program: Program<BasketsIDL>, wallet: Wallet, pda: PublicKey, basketState: PublicKey, tokenList: TokenSettings[], rebalanceFeeAccount: PublicKey, jupSwapData: JupSwapData, lamports?: number): Promise<{
payerKey: PublicKey;
instructions: TransactionInstruction[];
lookupTables: AddressLookupTableAccount[];
}>;
rebalanceToUsdcTransactionData(program: Program<BasketsIDL>, wallet: Wallet, pda: PublicKey, basketState: PublicKey, tokenList: TokenSettings[], rebalanceFeeAccount: PublicKey, jupSwapData: JupSwapData, lamports?: number): Promise<TransactionToSend>;
getRebalanceInfo(program: Program<BasketsIDL>, tokenList: TokenSettings[], oraclePriceData: number[], timestamp: number, forceRebalance?: boolean): RebalanceInfo[];
rebalanceFrom(program: Program<BasketsIDL>, wallet: Wallet, tokenList: TokenSettings[], jupSwapDatas: JupSwapData[], rebalanceInfos: RebalanceInfo[], lookups: AddressLookupTableAccount[], lamports?: number): Promise<TransactionToSend[]>;
rebalanceTo(program: Program<BasketsIDL>, wallet: Wallet, tokenList: TokenSettings[], jupSwapDatas: JupSwapData[], rebalanceInfos: RebalanceInfo[], lookups: AddressLookupTableAccount[], lamports?: number): Promise<{
payerKey: PublicKey;
instructions: TransactionInstruction[];
lookupTables: AddressLookupTableAccount[];
}[]>;
computeOutputAmountWithSingleToken(oraclePrices: number[], tokenList: TokenSettings[], withdrawToken: TokenSettings, burnAmount: number): Promise<number>;
sell(program: Program<BasketsIDL>, wallet: Wallet, amount: number, rebalance: number, lamports?: number): Promise<Basket>;
claimTokens(program: Program<BasketsIDL>, wallet: Wallet, tokenList: TokenSettings[], lamports?: number): Promise<TransactionSignature[]>;
removeDust(program: Program<BasketsIDL>, wallet: Wallet, tokenList: TokenSettings[], oraclePriceData: number[], lamports: number, updateOracles: boolean): Promise<TransactionSignature[]>;
liquidityProvision(program: Program<BasketsIDL>, wallet: Wallet, tokenList: TokenSettings[], fromToken: number, toToken: number, fromAmount: number, lamports?: number): Promise<TransactionSignature[]>;
}