@symmetry-hq/baskets-sdk
Version:
Software Development Kit for interacting with Symmetry Baskets Program
30 lines (29 loc) • 2.5 kB
TypeScript
import { Program, Wallet } from "@coral-xyz/anchor";
import { AccountInfo, AddressLookupTableAccount, GetProgramAccountsResponse, PublicKey, TransactionSignature } from "@solana/web3.js";
import { BasketsIDL } from "./basketsIDL";
import { BuyStateChainData, RebalanceInfo, TokenSettings, JupSwapData, TransactionToSend } from "./config";
import { Basket } from "./basketState";
export declare class BuyState {
ownAddress: PublicKey;
data: BuyStateChainData;
basket: Basket;
constructor(ownAddress: PublicKey, buyStateData: BuyStateChainData, basket: Basket);
static loadFromRawData(program: Program<BasketsIDL>, rawData: {
pubkey: PublicKey;
account: AccountInfo<Buffer>;
}, basket?: Basket): Promise<BuyState>;
static loadMultiple(program: Program<BasketsIDL>, rawDatas: GetProgramAccountsResponse): Promise<BuyState[]>;
static loadFromPubkey(program: Program<BasketsIDL>, buyState: PublicKey, basket?: Basket): Promise<BuyState>;
static computeMintAmountWithMultipleTokens(tokenList: TokenSettings[], basket: Basket, contribution: {
token: PublicKey;
amount: number;
}[], oraclePrices: number[]): number;
static computeMintAmountWithSingleToken(tokenList: TokenSettings[], basket: Basket, tokenSettings: TokenSettings, amount: number, oraclePrices: number[]): number;
static singleTokenDeposit(program: Program<BasketsIDL>, wallet: Wallet, tokenList: TokenSettings[], basket: Basket, tokenMint: PublicKey, amount: number, lamports: number, updateOracles: boolean): Promise<TransactionSignature>;
static createNew(program: Program<BasketsIDL>, wallet: Wallet, tokenList: TokenSettings[], basket: Basket, amount: number, lamports?: number): Promise<BuyState>;
update(program: Program<BasketsIDL>): Promise<void>;
getBuyStateRebalanceInfo(tokenList: TokenSettings[]): RebalanceInfo[];
rebalanceBuyState(program: Program<BasketsIDL>, wallet: Wallet, tokenList: TokenSettings[], jupSwapDatas: JupSwapData[], lamports: number, updateOraclesTxData: TransactionToSend[], lookups: AddressLookupTableAccount[]): Promise<TransactionSignature[]>;
mint(program: Program<BasketsIDL>, swbProgram: Program, wallet: Wallet, tokenList: TokenSettings[], lookups: AddressLookupTableAccount[], lamports: number, updateOracles: boolean): Promise<TransactionSignature[]>;
claimTokens(program: Program<BasketsIDL>, wallet: Wallet, tokenList: TokenSettings[], lamports?: number): Promise<TransactionSignature[]>;
}