UNPKG

@symmetry-hq/liquidity-sdk

Version:

Exchange functionality using symmetry funds liquidity

119 lines (118 loc) 2.99 kB
import { AccountMeta, PublicKey } from "@solana/web3.js"; import { BN } from "@coral-xyz/anchor"; export declare const FUNDS_PROGRAM_ID: PublicKey; export declare const FUNDS_PROGRAM_PDA: PublicKey; export declare const TOKEN_LIST_ADDRESS: PublicKey; export declare const CURVE_DATA_ADDRESS: PublicKey; export declare const SWAP_FEE_ACCOUNT: PublicKey; export type FundStateChainData = { version: BN; manager: PublicKey; fundToken: PublicKey; managerFee: BN; supplyOutsanding: BN; activelyManaged: BN; activeBuyStates: BN; sellState: BN; rebalanceSellState: BN; hostPubkey: PublicKey; hostFee: BN; numOfTokens: BN; currentCompToken: BN[]; currentCompAmount: BN[]; lastRebalanceTime: BN[]; targetWeight: BN[]; weightSum: BN; currentWeight: BN[]; fundWorth: BN; lastUpdateTime: BN; refilterInterval: BN; reweightInterval: BN; rebalanceInterval: BN; rebalanceThreshold: BN; rebalanceSlippage: BN; lpOffsetThreshold: BN; lastRefilterTime: BN; lastReweightTime: BN; rulesReady: BN; assetPool: BN[]; numOfRules: BN; rules: { filterBy: BN; filterDays: BN; sortBy: BN; totalWeight: BN; fixedAsset: BN; numAssets: BN; weightBy: BN; weightDays: BN; weightExpo: BN; excludeNum: BN; excludeAssets: BN[]; ruleAssets: BN[]; }[]; numRuleTokens: BN; ruleTokens: BN[]; ruleTokenWeights: BN[]; messageDigestFive: BN[]; fundLpFee: BN; symmetryLpFee: BN; extraBytes: BN[]; }; export type TokenSettings = { id: number; symbol: string; name: string; tokenMint: string; decimals: number; coingeckoId: string; pdaTokenAccount: string; oracleType: string; oracleAccount: string; oracleIndex: number; oracleConfidencePct: number; fixedConfidenceBps: number; tokenSwapFeeBeforeTwBps: number; tokenSwapFeeAfterTwBps: number; isLive: boolean; lpOn: boolean; useCurveData: boolean; additionalData: number[]; }; export type OraclePrice = { avg_price: number; sell_price: number; buy_price: number; }; export type RouteData = { fromAmount: number; toAmount: number; fromTokenId: number; toTokenId: number; feePct: number; priceImpactPct: number; swapAccounts: { program: PublicKey; fundState: PublicKey; authority: PublicKey; source: PublicKey; destination: PublicKey; fees: { smfWallet: PublicKey; hostWallet: PublicKey; managerWallet: PublicKey; feeTokenMint: PublicKey; }; tokenList: PublicKey; curveData: PublicKey; remainingAccounts: AccountMeta[]; }; }; export type CurveChainData = { buy: TokenPriceData[]; sell: TokenPriceData[]; }; export type TokenPriceData = { amount: BN[]; price: BN[]; };