Skip to content

Add interfaces back #1788

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,16 @@ module.exports = {
// Restrict importing BN from bn.js
"group": ["bn.js"],
"message": "Import BN from @drift-labs/sdk instead",
}
},
{
// Prevent imports from index files within the same package
group: [
'**/index',
'**/index.ts',
],
message:
'Do not import from index file within the same package. Import directly from source files instead. This prevents barrel imports.',
},
],
},
],
Expand Down
1,072 changes: 1,072 additions & 0 deletions bun.lock

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ResubOpts, GrpcConfigs } from './types';
import { ResubOpts, GrpcConfigs } from '../types';
import { Program } from '@coral-xyz/anchor';
import { PublicKey } from '@solana/web3.js';
import * as Buffer from 'buffer';
Expand All @@ -11,7 +11,7 @@ import {
createClient,
SubscribeRequest,
SubscribeUpdate,
} from '../isomorphic/grpc';
} from '../../isomorphic/grpc';

export class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
private client: Client;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import {
BufferAndSlot,
AccountSubscriber,
ResubOpts,
} from './types';
} from '../types';
import { AnchorProvider, Program } from '@coral-xyz/anchor';
import { AccountInfo, Commitment, Context, PublicKey } from '@solana/web3.js';
import { capitalize } from './utils';
import { capitalize } from '../utils';
import * as Buffer from 'buffer';

export class WebSocketAccountSubscriber<T> implements AccountSubscriber<T> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { Commitment, PublicKey } from '@solana/web3.js';
import { v4 as uuidv4 } from 'uuid';
import { BufferAndSlot } from './types';
import { promiseTimeout } from '../util/promiseTimeout';
import { Connection } from '../bankrun/bankrunConnection';
import { GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE } from '../constants/numericConstants';
import { BufferAndSlot } from '../types';
import { promiseTimeout } from '../../util/promiseTimeout';
import { Connection } from '../../bankrun/bankrunConnection';
import { GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE } from '../../constants/numericConstants';

export type AccountToLoad = {
publicKey: PublicKey;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE } from '../constants/numericConstants';
import { GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE } from '../../constants/numericConstants';
import { BulkAccountLoader } from './bulkAccountLoader';
import { Commitment, Connection, PublicKey } from '@solana/web3.js';
import { v4 as uuidv4 } from 'uuid';
Expand Down
8 changes: 4 additions & 4 deletions sdk/src/accounts/bulkUserStatsSubscription.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { UserStats } from '../userStats';
import { BulkAccountLoader } from './bulkAccountLoader';
import { PollingUserStatsAccountSubscriber } from './pollingUserStatsAccountSubscriber';
import { IUserStats } from '../userStats/types';
import { BulkAccountLoader } from './bulkAccountLoader/bulkAccountLoader';
import { PollingUserStatsAccountSubscriber } from './userStatsAccount/pollingUserStatsAccountSubscriber';

/**
* @param userStats
* @param accountLoader
*/
export async function bulkPollingUserStatsSubscribe(
userStats: UserStats[],
userStats: IUserStats[],
accountLoader: BulkAccountLoader
): Promise<void> {
if (userStats.length === 0) {
Expand Down
8 changes: 4 additions & 4 deletions sdk/src/accounts/bulkUserSubscription.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { User } from '../user';
import { BulkAccountLoader } from './bulkAccountLoader';
import { PollingUserAccountSubscriber } from './pollingUserAccountSubscriber';
import { IUser } from '../user/types';
import { BulkAccountLoader } from './bulkAccountLoader/bulkAccountLoader';
import { PollingUserAccountSubscriber } from './userAccount/pollingUserAccountSubscriber';

/**
* @param users
* @param accountLoader
*/
export async function bulkPollingUserSubscribe(
users: User[],
users: IUser[],
accountLoader: BulkAccountLoader
): Promise<void> {
if (users.length === 0) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
import { WebSocketDriftClientAccountSubscriber } from './webSocketDriftClientAccountSubscriber';
import { OracleInfo, OraclePriceData } from '../oracles/types';
import { OracleInfo, OraclePriceData } from '../../oracles/types';
import { Program } from '@coral-xyz/anchor';
import { findAllMarketAndOracles } from '../config';
import { findAllMarketAndOracles } from '../../config';
import {
getDriftStateAccountPublicKey,
getPerpMarketPublicKey,
getSpotMarketPublicKey,
} from '../addresses/pda';
import { DelistedMarketSetting, GrpcConfigs, ResubOpts } from './types';
import { grpcAccountSubscriber } from './grpcAccountSubscriber';
import { PerpMarketAccount, SpotMarketAccount, StateAccount } from '../types';
import { getOracleId } from '../oracles/oracleId';
} from '../../addresses/pda';
import { DelistedMarketSetting, GrpcConfigs, ResubOpts } from '../types';
import { grpcAccountSubscriber } from '../baseSubscribers/grpcAccountSubscriber';
import {
PerpMarketAccount,
SpotMarketAccount,
StateAccount,
} from '../../types';
import { getOracleId } from '../../oracles/oracleId';

export class gprcDriftClientAccountSubscriber extends WebSocketDriftClientAccountSubscriber {
private grpcConfigs: GrpcConfigs;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
DriftClientAccountSubscriber,
NotSubscribedError,
OraclesToPoll,
} from './types';
} from '../types';
import { Program } from '@coral-xyz/anchor';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
Expand All @@ -16,20 +16,20 @@ import {
StateAccount,
UserAccount,
OracleSource,
} from '../types';
} from '../../types';
import {
getDriftStateAccountPublicKey,
getPerpMarketPublicKey,
getSpotMarketPublicKey,
} from '../addresses/pda';
import { BulkAccountLoader } from './bulkAccountLoader';
import { capitalize, findDelistedPerpMarketsAndOracles } from './utils';
} from '../../addresses/pda';
import { BulkAccountLoader } from '../bulkAccountLoader/bulkAccountLoader';
import { capitalize, findDelistedPerpMarketsAndOracles } from '../utils';
import { PublicKey } from '@solana/web3.js';
import { OracleInfo, OraclePriceData } from '../oracles/types';
import { OracleClientCache } from '../oracles/oracleClientCache';
import { QUOTE_ORACLE_PRICE_DATA } from '../oracles/quoteAssetOracleClient';
import { findAllMarketAndOracles } from '../config';
import { getOracleId } from '../oracles/oracleId';
import { OracleInfo, OraclePriceData } from '../../oracles/types';
import { OracleClientCache } from '../../oracles/oracleClientCache';
import { QUOTE_ORACLE_PRICE_DATA } from '../../oracles/quoteAssetOracleClient';
import { findAllMarketAndOracles } from '../../config';
import { getOracleId } from '../../oracles/oracleId';

const ORACLE_DEFAULT_ID = getOracleId(
PublicKey.default,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@ import {
DriftClientAccountSubscriber,
NotSubscribedError,
ResubOpts,
} from './types';
import { PerpMarketAccount, SpotMarketAccount, StateAccount } from '../types';
} from '../types';
import {
PerpMarketAccount,
SpotMarketAccount,
StateAccount,
} from '../../types';
import { Program } from '@coral-xyz/anchor';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
Expand All @@ -17,17 +21,17 @@ import {
getPerpMarketPublicKeySync,
getSpotMarketPublicKey,
getSpotMarketPublicKeySync,
} from '../addresses/pda';
import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
} from '../../addresses/pda';
import { WebSocketAccountSubscriber } from '../baseSubscribers/webSocketAccountSubscriber';
import { Commitment, PublicKey } from '@solana/web3.js';
import { OracleInfo, OraclePriceData } from '../oracles/types';
import { OracleClientCache } from '../oracles/oracleClientCache';
import { OracleInfo, OraclePriceData } from '../../oracles/types';
import { OracleClientCache } from '../../oracles/oracleClientCache';
import * as Buffer from 'buffer';
import { QUOTE_ORACLE_PRICE_DATA } from '../oracles/quoteAssetOracleClient';
import { findAllMarketAndOracles } from '../config';
import { findDelistedPerpMarketsAndOracles } from './utils';
import { getOracleId } from '../oracles/oracleId';
import { OracleSource } from '../types';
import { QUOTE_ORACLE_PRICE_DATA } from '../../oracles/quoteAssetOracleClient';
import { findAllMarketAndOracles } from '../../config';
import { findDelistedPerpMarketsAndOracles } from '../utils';
import { getOracleId } from '../../oracles/oracleId';
import { OracleSource } from '../../types';

const ORACLE_DEFAULT_ID = getOracleId(
PublicKey.default,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import {
NotSubscribedError,
HighLeverageModeConfigAccountEvents,
HighLeverageModeConfigAccountSubscriber,
} from './types';
} from '../types';
import { Program } from '@coral-xyz/anchor';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { PublicKey } from '@solana/web3.js';
import { BulkAccountLoader } from './bulkAccountLoader';
import { HighLeverageModeConfig } from '../types';
import { BulkAccountLoader } from '../bulkAccountLoader/bulkAccountLoader';
import { HighLeverageModeConfig } from '../../types';

export class PollingHighLeverageModeConfigAccountSubscriber
implements HighLeverageModeConfigAccountSubscriber
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import {
NotSubscribedError,
HighLeverageModeConfigAccountEvents,
HighLeverageModeConfigAccountSubscriber,
} from './types';
} from '../types';
import { Program } from '@coral-xyz/anchor';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { Commitment, PublicKey } from '@solana/web3.js';
import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
import { HighLeverageModeConfig } from '../types';
import { WebSocketAccountSubscriber } from '../baseSubscribers/webSocketAccountSubscriber';
import { HighLeverageModeConfig } from '../../types';

export class WebSocketHighLeverageModeConfigAccountSubscriber
implements HighLeverageModeConfigAccountSubscriber
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { GrpcConfigs } from './types';
import { GrpcConfigs } from '../types';
import { Program } from '@coral-xyz/anchor';
import { PublicKey } from '@solana/web3.js';
import { InsuranceFundStake } from '../types';
import { InsuranceFundStake } from '../../types';
import { WebSocketInsuranceFundStakeAccountSubscriber } from './webSocketInsuranceFundStakeAccountSubscriber';
import { grpcAccountSubscriber } from './grpcAccountSubscriber';
import { grpcAccountSubscriber } from '../baseSubscribers/grpcAccountSubscriber';

export class grpcInsuranceFundStakeAccountSubscriber extends WebSocketInsuranceFundStakeAccountSubscriber {
private grpcConfigs: GrpcConfigs;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import {
NotSubscribedError,
InsuranceFundStakeAccountEvents,
InsuranceFundStakeAccountSubscriber,
} from './types';
} from '../types';
import { Program } from '@coral-xyz/anchor';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { PublicKey } from '@solana/web3.js';
import { BulkAccountLoader } from './bulkAccountLoader';
import { InsuranceFundStake } from '../types';
import { BulkAccountLoader } from '../bulkAccountLoader/bulkAccountLoader';
import { InsuranceFundStake } from '../../types';

export class PollingInsuranceFundStakeAccountSubscriber
implements InsuranceFundStakeAccountSubscriber
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import {
NotSubscribedError,
InsuranceFundStakeAccountEvents,
InsuranceFundStakeAccountSubscriber,
} from './types';
} from '../types';
import { Program } from '@coral-xyz/anchor';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { Commitment, PublicKey } from '@solana/web3.js';
import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
import { InsuranceFundStake } from '../types';
import { WebSocketAccountSubscriber } from '../baseSubscribers/webSocketAccountSubscriber';
import { InsuranceFundStake } from '../../types';

export class WebSocketInsuranceFundStakeAccountSubscriber
implements InsuranceFundStakeAccountSubscriber
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import {
NotSubscribedError,
OracleEvents,
OracleAccountSubscriber,
} from './types';
} from '../types';
import { Program } from '@coral-xyz/anchor';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { PublicKey } from '@solana/web3.js';
import { BulkAccountLoader } from './bulkAccountLoader';
import { OracleClient, OraclePriceData } from '../oracles/types';
import { BulkAccountLoader } from '../bulkAccountLoader/bulkAccountLoader';
import { OracleClient, OraclePriceData } from '../../oracles/types';

export class PollingOracleAccountSubscriber implements OracleAccountSubscriber {
isSubscribed: boolean;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ResubOpts, GrpcConfigs } from './types';
import { ResubOpts, GrpcConfigs } from '../types';
import { Program } from '@coral-xyz/anchor';
import bs58 from 'bs58';
import { Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
Expand All @@ -11,7 +11,7 @@ import {
createClient,
SubscribeRequest,
SubscribeUpdate,
} from '../isomorphic/grpc';
} from '../../isomorphic/grpc';

export class grpcProgramAccountSubscriber<
T,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types';
import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from '../types';
import { AnchorProvider, Program } from '@coral-xyz/anchor';
import {
Commitment,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import {
NotSubscribedError,
TokenAccountEvents,
TokenAccountSubscriber,
} from './types';
} from '../types';
import { Program } from '@coral-xyz/anchor';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { PublicKey } from '@solana/web3.js';
import { BulkAccountLoader } from './bulkAccountLoader';
import { BulkAccountLoader } from '../bulkAccountLoader/bulkAccountLoader';
import { Account } from '@solana/spl-token';
import { parseTokenAccount } from '../token';
import { parseTokenAccount } from '../../token';

export class PollingTokenAccountSubscriber implements TokenAccountSubscriber {
isSubscribed: boolean;
Expand Down
7 changes: 0 additions & 7 deletions sdk/src/accounts/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import { EventEmitter } from 'events';
import { Context, PublicKey } from '@solana/web3.js';
import { Account } from '@solana/spl-token';
import { OracleInfo, OraclePriceData } from '../oracles/types';
import { User } from '../user';
import { ChannelOptions, CommitmentLevel } from '../isomorphic/grpc';

export interface AccountSubscriber<T> {
Expand Down Expand Up @@ -103,12 +102,6 @@ export interface UserAccountEvents {
error: (e: Error) => void;
}

export interface UserEvents {
userUpdate: (payload: User) => void;
update: void;
error: (e: Error) => void;
}

export interface UserAccountSubscriber {
eventEmitter: StrictEventEmitter<EventEmitter, UserAccountEvents>;
isSubscribed: boolean;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import { DataAndSlot, UserAccountEvents, UserAccountSubscriber } from './types';
import {
DataAndSlot,
UserAccountEvents,
UserAccountSubscriber,
} from '../types';
import { PublicKey } from '@solana/web3.js';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { UserAccount } from '../types';
import { UserAccount } from '../../types';

/**
* Basic implementation of UserAccountSubscriber. It will only take in UserAccount
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { ResubOpts, GrpcConfigs } from './types';
import { ResubOpts, GrpcConfigs } from '../types';
import { Program } from '@coral-xyz/anchor';
import { PublicKey } from '@solana/web3.js';
import { UserAccount } from '../types';
import { UserAccount } from '../../types';
import { WebSocketUserAccountSubscriber } from './webSocketUserAccountSubscriber';
import { grpcAccountSubscriber } from './grpcAccountSubscriber';
import { grpcAccountSubscriber } from '../baseSubscribers/grpcAccountSubscriber';

export class grpcUserAccountSubscriber extends WebSocketUserAccountSubscriber {
private grpcConfigs: GrpcConfigs;
Expand Down
Loading