goosefx-ssl-sdk-prism
Version:
SDK for interacting with GooseFX Single-sided Liquidity pools
43 lines (42 loc) • 1.68 kB
TypeScript
import { Connection, PublicKey } from "@solana/web3.js";
import * as wasm from "../wasm/gfx_ssl_wasm";
export declare function deserializeAccount(account: any): any;
export interface Quote {
amountIn: bigint;
fee: bigint;
amountOut: bigint;
impact: number;
swapPrice: number;
instantPrice: number;
oraclePrice: number;
}
export declare class Swap {
connection: Connection;
controller: PublicKey;
programId: PublicKey;
constructor(connection: Connection, controller?: PublicKey, programId?: PublicKey);
getWasm(): Promise<typeof wasm>;
getWasmSync(): typeof wasm;
getPairAddress: (tokenA: PublicKey, tokenB: PublicKey) => PublicKey;
getQuoterSync: (tokenIn: PublicKey, tokenOut: PublicKey) => Quoter;
getQuoter: (tokenIn: PublicKey, tokenOut: PublicKey) => Promise<Quoter>;
getQuote: (tokenIn: PublicKey, tokenOut: PublicKey, inTokenAmount: bigint) => Promise<Quote>;
getMinimumQuote: (tokenA: PublicKey, tokenB: PublicKey, inTokenAmount: bigint, slippage: number) => Promise<bigint>;
}
declare class Quoter {
connection: Connection;
programId: PublicKey;
controller: PublicKey;
tokenIn: PublicKey;
tokenOut: PublicKey;
wasm: any;
private prepared;
constructor(connection: Connection, programId: PublicKey, controller: PublicKey, tokenIn: PublicKey, tokenOut: PublicKey, wasm: any);
getAccountsForUpdate(pairData: any): any[];
prepareSync(parsedAccounts: any[]): void;
prepare(): Promise<void>;
isSuspended(): boolean;
quote(inTokenAmount: bigint, silent?: boolean): Quote;
getPairAddress: (tokenA: PublicKey, tokenB: PublicKey) => PublicKey;
}
export {};