@drift-labs/sdk
Version:
SDK for Drift Protocol
61 lines (60 loc) • 2.44 kB
TypeScript
import { ConfirmOptions, PublicKey } from '@solana/web3.js';
import { PerpMarketAccount, SpotMarketAccount } from './types';
import { PerpMarketConfig } from './constants/perpMarkets';
import { SpotMarketConfig } from './constants/spotMarkets';
import { OracleInfo } from './oracles/types';
import { Program } from '@coral-xyz/anchor';
type DriftConfig = {
ENV: DriftEnv;
PYTH_ORACLE_MAPPING_ADDRESS: string;
DRIFT_PROGRAM_ID: string;
JIT_PROXY_PROGRAM_ID?: string;
DRIFT_ORACLE_RECEIVER_ID: string;
USDC_MINT_ADDRESS: string;
SERUM_V3: string;
PHOENIX: string;
OPENBOOK: string;
V2_ALPHA_TICKET_MINT_ADDRESS: string;
PERP_MARKETS: PerpMarketConfig[];
SPOT_MARKETS: SpotMarketConfig[];
/** @deprecated use MARKET_LOOKUP_TABLES */
MARKET_LOOKUP_TABLE: string;
MARKET_LOOKUP_TABLES: string[];
SERUM_LOOKUP_TABLE?: string;
PYTH_PULL_ORACLE_LOOKUP_TABLE?: string;
SB_ON_DEMAND_PID: PublicKey;
};
export type DriftEnv = 'devnet' | 'mainnet-beta';
export declare const DRIFT_PROGRAM_ID = "dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH";
export declare const DRIFT_ORACLE_RECEIVER_ID = "G6EoTTTgpkNBtVXo96EQp2m6uwwVh2Kt6YidjkmQqoha";
export declare const PTYH_LAZER_PROGRAM_ID = "pytd2yyk641x7ak7mkaasSJVXh6YYZnC7wTmtgAyxPt";
export declare const PYTH_LAZER_STORAGE_ACCOUNT_KEY: PublicKey;
export declare const DEFAULT_CONFIRMATION_OPTS: ConfirmOptions;
export declare const configs: {
[key in DriftEnv]: DriftConfig;
};
export declare const getConfig: () => DriftConfig;
/**
* Allows customization of the SDK's environment and endpoints. You can pass individual settings to override the settings with your own presets.
*
* Defaults to master environment if you don't use this function.
* @param props
* @returns
*/
export declare const initialize: (props: {
env: DriftEnv;
overrideEnv?: Partial<DriftConfig>;
}) => DriftConfig;
export declare function getMarketsAndOraclesForSubscription(env: DriftEnv, perpMarkets?: PerpMarketConfig[], spotMarkets?: SpotMarketConfig[]): {
perpMarketIndexes: number[];
spotMarketIndexes: number[];
oracleInfos: OracleInfo[];
};
export declare function findAllMarketAndOracles(program: Program): Promise<{
perpMarketIndexes: number[];
perpMarketAccounts: PerpMarketAccount[];
spotMarketIndexes: number[];
oracleInfos: OracleInfo[];
spotMarketAccounts: SpotMarketAccount[];
}>;
export {};