@drift-labs/sdk 2.96.0-beta.2 → 2.96.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/VERSION +1 -1
- package/bun.lockb +0 -0
- package/lib/accounts/pollingDriftClientAccountSubscriber.d.ts +5 -3
- package/lib/accounts/pollingDriftClientAccountSubscriber.js +24 -1
- package/lib/accounts/types.d.ts +5 -8
- package/lib/accounts/types.js +7 -1
- package/lib/accounts/utils.d.ts +7 -0
- package/lib/accounts/utils.js +33 -1
- package/lib/accounts/webSocketAccountSubscriber.d.ts +1 -1
- package/lib/accounts/webSocketDriftClientAccountSubscriber.d.ts +8 -7
- package/lib/accounts/webSocketDriftClientAccountSubscriber.js +24 -1
- package/lib/accounts/webSocketProgramAccountSubscriber.d.ts +1 -1
- package/lib/config.d.ts +5 -1
- package/lib/config.js +9 -1
- package/lib/constants/perpMarkets.js +21 -0
- package/lib/constants/spotMarkets.js +12 -1
- package/lib/driftClient.d.ts +44 -9
- package/lib/driftClient.js +181 -61
- package/lib/driftClientConfig.d.ts +2 -6
- package/lib/events/eventSubscriber.js +9 -8
- package/lib/events/types.js +1 -5
- package/lib/idl/drift.json +169 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/math/margin.d.ts +16 -1
- package/lib/math/margin.js +67 -1
- package/lib/orderParams.js +8 -8
- package/lib/orderSubscriber/OrderSubscriber.d.ts +1 -2
- package/lib/orderSubscriber/OrderSubscriber.js +4 -19
- package/lib/orderSubscriber/types.d.ts +0 -9
- package/lib/tokenFaucet.js +2 -1
- package/lib/tx/baseTxSender.js +2 -2
- package/lib/tx/fastSingleTxSender.js +2 -2
- package/lib/tx/forwardOnlyTxSender.js +2 -2
- package/lib/tx/retryTxSender.js +2 -2
- package/lib/tx/txHandler.js +10 -7
- package/lib/tx/whileValidTxSender.d.ts +2 -4
- package/lib/tx/whileValidTxSender.js +16 -17
- package/lib/types.d.ts +21 -1
- package/lib/types.js +6 -1
- package/lib/user.d.ts +4 -1
- package/lib/user.js +13 -13
- package/lib/userConfig.d.ts +1 -6
- package/lib/userMap/userMap.js +0 -14
- package/lib/userMap/userMapConfig.d.ts +0 -7
- package/lib/userStatsConfig.d.ts +0 -6
- package/lib/util/TransactionConfirmationManager.d.ts +14 -0
- package/lib/util/TransactionConfirmationManager.js +96 -0
- package/package.json +4 -5
- package/src/accounts/pollingDriftClientAccountSubscriber.ts +41 -5
- package/src/accounts/types.ts +6 -9
- package/src/accounts/utils.ts +42 -0
- package/src/accounts/webSocketAccountSubscriber.ts +1 -1
- package/src/accounts/webSocketDriftClientAccountSubscriber.ts +43 -8
- package/src/accounts/webSocketProgramAccountSubscriber.ts +1 -1
- package/src/config.ts +15 -1
- package/src/constants/perpMarkets.ts +22 -0
- package/src/constants/spotMarkets.ts +14 -1
- package/src/driftClient.ts +423 -91
- package/src/driftClientConfig.ts +2 -7
- package/src/events/eventSubscriber.ts +18 -11
- package/src/events/types.ts +1 -5
- package/src/idl/drift.json +169 -1
- package/src/index.ts +1 -0
- package/src/math/margin.ts +137 -1
- package/src/orderParams.ts +20 -12
- package/src/orderSubscriber/OrderSubscriber.ts +1 -15
- package/src/orderSubscriber/types.ts +0 -10
- package/src/tokenFaucet.ts +2 -2
- package/src/tx/baseTxSender.ts +2 -2
- package/src/tx/fastSingleTxSender.ts +2 -2
- package/src/tx/forwardOnlyTxSender.ts +2 -2
- package/src/tx/retryTxSender.ts +2 -2
- package/src/tx/txHandler.ts +8 -2
- package/src/tx/whileValidTxSender.ts +23 -26
- package/src/types.ts +30 -1
- package/src/user.ts +35 -13
- package/src/userConfig.ts +1 -7
- package/src/userMap/userMap.ts +1 -17
- package/src/userMap/userMapConfig.ts +0 -8
- package/src/userStatsConfig.ts +0 -7
- package/src/util/TransactionConfirmationManager.ts +155 -0
- package/tests/ci/idl.ts +12 -3
- package/tests/ci/verifyConstants.ts +13 -0
- package/tests/tx/TransactionConfirmationManager.test.ts +286 -0
- package/lib/accounts/grpcAccountSubscriber.d.ts +0 -16
- package/lib/accounts/grpcAccountSubscriber.js +0 -155
- package/lib/accounts/grpcDriftClientAccountSubscriber.d.ts +0 -13
- package/lib/accounts/grpcDriftClientAccountSubscriber.js +0 -96
- package/lib/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +0 -10
- package/lib/accounts/grpcInsuranceFundStakeAccountSubscriber.js +0 -30
- package/lib/accounts/grpcProgramAccountSubscriber.d.ts +0 -19
- package/lib/accounts/grpcProgramAccountSubscriber.js +0 -161
- package/lib/accounts/grpcUserAccountSubscriber.d.ts +0 -10
- package/lib/accounts/grpcUserAccountSubscriber.js +0 -28
- package/lib/accounts/grpcUserStatsAccountSubscriber.d.ts +0 -10
- package/lib/accounts/grpcUserStatsAccountSubscriber.js +0 -28
- package/lib/orderSubscriber/grpcSubscription.d.ts +0 -25
- package/lib/orderSubscriber/grpcSubscription.js +0 -68
- package/lib/userMap/grpcSubscription.d.ts +0 -26
- package/lib/userMap/grpcSubscription.js +0 -42
- package/src/accounts/grpcAccountSubscriber.ts +0 -158
- package/src/accounts/grpcDriftClientAccountSubscriber.ts +0 -196
- package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +0 -62
- package/src/accounts/grpcProgramAccountSubscriber.ts +0 -181
- package/src/accounts/grpcUserAccountSubscriber.ts +0 -48
- package/src/accounts/grpcUserStatsAccountSubscriber.ts +0 -51
- package/src/orderSubscriber/grpcSubscription.ts +0 -126
- package/src/userMap/grpcSubscription.ts +0 -83
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { UserMap } from './userMap';
|
|
2
|
-
import { getNonIdleUserFilter, getUserFilter } from '../memcmp';
|
|
3
|
-
import { WebSocketProgramAccountSubscriber } from '../accounts/webSocketProgramAccountSubscriber';
|
|
4
|
-
import { UserAccount } from '../types';
|
|
5
|
-
import { Commitment, Context, PublicKey } from '@solana/web3.js';
|
|
6
|
-
import { GrpcConfigs, ResubOpts } from '../accounts/types';
|
|
7
|
-
import { grpcProgramAccountSubscriber } from '../accounts/grpcProgramAccountSubscriber';
|
|
8
|
-
|
|
9
|
-
export class grpcSubscription {
|
|
10
|
-
private configs: GrpcConfigs;
|
|
11
|
-
private userMap: UserMap;
|
|
12
|
-
private commitment: Commitment;
|
|
13
|
-
private skipInitialLoad: boolean;
|
|
14
|
-
private resubOpts?: ResubOpts;
|
|
15
|
-
private includeIdle?: boolean;
|
|
16
|
-
private decodeFn: (name: string, data: Buffer) => UserAccount;
|
|
17
|
-
|
|
18
|
-
private subscriber: WebSocketProgramAccountSubscriber<UserAccount>;
|
|
19
|
-
|
|
20
|
-
constructor({
|
|
21
|
-
configs,
|
|
22
|
-
userMap,
|
|
23
|
-
commitment,
|
|
24
|
-
skipInitialLoad = false,
|
|
25
|
-
resubOpts,
|
|
26
|
-
includeIdle = false,
|
|
27
|
-
decodeFn,
|
|
28
|
-
}: {
|
|
29
|
-
configs: GrpcConfigs;
|
|
30
|
-
userMap: UserMap;
|
|
31
|
-
commitment: Commitment;
|
|
32
|
-
skipInitialLoad?: boolean;
|
|
33
|
-
resubOpts?: ResubOpts;
|
|
34
|
-
includeIdle?: boolean;
|
|
35
|
-
decodeFn: (name: string, data: Buffer) => UserAccount;
|
|
36
|
-
}) {
|
|
37
|
-
this.userMap = userMap;
|
|
38
|
-
this.commitment = commitment;
|
|
39
|
-
this.skipInitialLoad = skipInitialLoad;
|
|
40
|
-
this.resubOpts = resubOpts;
|
|
41
|
-
this.includeIdle = includeIdle || false;
|
|
42
|
-
this.decodeFn = decodeFn;
|
|
43
|
-
this.configs = configs;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public async subscribe(): Promise<void> {
|
|
47
|
-
if (!this.subscriber) {
|
|
48
|
-
const filters = [getUserFilter()];
|
|
49
|
-
if (!this.includeIdle) {
|
|
50
|
-
filters.push(getNonIdleUserFilter());
|
|
51
|
-
}
|
|
52
|
-
this.subscriber = new grpcProgramAccountSubscriber<UserAccount>(
|
|
53
|
-
this.configs,
|
|
54
|
-
'UserMap',
|
|
55
|
-
'User',
|
|
56
|
-
this.userMap.driftClient.program,
|
|
57
|
-
this.decodeFn,
|
|
58
|
-
{
|
|
59
|
-
filters,
|
|
60
|
-
commitment: this.commitment,
|
|
61
|
-
},
|
|
62
|
-
this.resubOpts
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
await this.subscriber.subscribe(
|
|
67
|
-
(accountId: PublicKey, account: UserAccount, context: Context) => {
|
|
68
|
-
const userKey = accountId.toBase58();
|
|
69
|
-
this.userMap.updateUserAccount(userKey, account, context.slot);
|
|
70
|
-
}
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
if (!this.skipInitialLoad) {
|
|
74
|
-
await this.userMap.sync();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
public async unsubscribe(): Promise<void> {
|
|
79
|
-
if (!this.subscriber) return;
|
|
80
|
-
await this.subscriber.unsubscribe();
|
|
81
|
-
this.subscriber = undefined;
|
|
82
|
-
}
|
|
83
|
-
}
|