@symmetry-hq/liquidity-sdk
Version:
Exchange functionality using symmetry funds liquidity
24 lines (23 loc) • 1.81 kB
TypeScript
import { PublicKey } from "@solana/web3.js";
import { CurveChainData, FundStateChainData, OraclePrice, RouteData, TokenPriceData, TokenSettings } from "./types";
export declare const BPS_DIVIDER = 10000;
export declare const WEIGHT_MULTIPLIER = 10000;
export declare function mul_div(a: number, b: number, c: number): number;
export declare function amount_to_usd_value(amount: number, decimals: number, price: number): number;
export declare function usd_value_to_amount(worth: number, decimals: number, price: number): number;
export declare function compute_value_of_sold_token(amount: number, token_settings: TokenSettings, price: OraclePrice, start_amount: number, target_amount: number, curve_data: TokenPriceData): number;
export declare function compute_amount_of_bought_token(value: number, token_settings: TokenSettings, price: OraclePrice, start_amount: number, target_amount: number, curve_data: TokenPriceData): number;
export declare function computeOutputAmount(from_token_id: number, to_token_id: number, from_amount: number, fundState: FundStateChainData, oracle_prices: OraclePrice[], curve_data: CurveChainData, token_list: {
list: TokenSettings[];
}): {
toAmount: undefined;
feePct: undefined;
} | {
toAmount: number;
feePct: number;
};
export declare function checkForLiquidity(tokenListData: TokenSettings[], curveChainData: CurveChainData, fundAddress: PublicKey, fund: FundStateChainData, oraclePrices: OraclePrice[], tokenFrom: number, tokenTo: number, fromAmount: number): RouteData | undefined;
export declare function loadRouteData(tokenListData: TokenSettings[], curveChainData: CurveChainData, funds: {
pubkey: PublicKey;
fund: FundStateChainData;
}[], oraclePrices: OraclePrice[], tokenFrom: number, tokenTo: number, fromAmount: number): RouteData;