@thespidercode/openbook-swap
Version:
Ready-to-use swap tool using Openbook DEX
76 lines (75 loc) • 2.34 kB
TypeScript
import { Connection, PublicKey } from "@solana/web3.js";
import { TokenDetails } from "./token";
import { Swap } from "./swap";
import { Market } from "./serum/market";
export declare const getMarketOrdersOnChain: (marketAddress: PublicKey, connection: Connection, market?: Market) => Promise<{
market: MarketOrders | undefined;
} | undefined>;
export declare const getMarketInfo: (connection: Connection, market: Market) => Promise<MarketOrders | undefined>;
export declare const getMarket: (marketAddress: string) => Promise<{
data: {
market: MarketOrders;
tokenPrices: {
[key: string]: number;
};
};
} | null>;
export declare const getMarketOrders: (marketAddress: PublicKey) => Promise<{
market: MarketOrders;
tokenPrices: {
[key: string]: number;
};
} | null>;
export declare const getMarketData: (marketAddress: PublicKey, connection: Connection, onchain: boolean) => Promise<{
marketOrdersResponse: any;
isOnChainData: boolean;
}>;
export declare const computeQuotes: (marketOrders: MarketOrders, swap: Swap) => Promise<{
amounts: {
quote: number;
base: number;
};
inputAmounts: {
base: string;
quote: string;
};
slotConsumed: number;
sell: boolean;
market: MarketDetails;
} | undefined>;
export declare const updateMarketOrders: (marketOrders: MarketOrders, marketOrdersResponse: any, setMarketOrders: (value: MarketOrders) => void, base: string, price: number) => Promise<void>;
export declare const marketOrdersInit: MarketOrders;
export interface Markets {
[key: string]: MarketDetails;
}
export interface MarketDetails {
address: PublicKey;
base: TokenDetails;
quote: TokenDetails;
minBase: number;
swapMargin: number;
}
export interface MarketOrders {
bids: number[][];
asks: number[][];
totalBaseQuantity: number;
totalQuoteQuantity: number;
highestBid: number;
lowestAsk: number;
highestBidVQuantity: number;
lowestAskQuantity: number;
updatedAt: string;
}
export interface SwapMarket {
address: PublicKey;
base: SwapMarketToken;
quote: SwapMarketToken;
minBase: number;
swapMargin: number;
}
export interface SwapMarketToken {
name: string;
logo: string;
mint: PublicKey;
vault: PublicKey;
}