@drift-labs/sdk 0.1.29-master.1 → 0.1.30-master.1

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.
Files changed (73) hide show
  1. package/lib/accounts/bulkAccountLoader.d.ts +2 -1
  2. package/lib/accounts/bulkAccountLoader.js +44 -32
  3. package/lib/accounts/pollingClearingHouseAccountSubscriber.d.ts +15 -0
  4. package/lib/accounts/pollingClearingHouseAccountSubscriber.js +50 -23
  5. package/lib/clearingHouse.d.ts +4 -2
  6. package/lib/clearingHouse.js +49 -14
  7. package/lib/constants/accounts.d.ts +15 -0
  8. package/lib/constants/accounts.js +18 -0
  9. package/lib/constants/markets.js +11 -0
  10. package/lib/factory/clearingHouse.d.ts +14 -4
  11. package/lib/factory/clearingHouse.js +23 -6
  12. package/lib/idl/clearing_house.json +53 -33
  13. package/lib/math/amm.d.ts +18 -0
  14. package/lib/math/amm.js +88 -1
  15. package/lib/oracles/pythClient.js +1 -1
  16. package/lib/orderParams.d.ts +1 -1
  17. package/lib/orderParams.js +2 -2
  18. package/lib/tx/retryTxSender.d.ts +5 -2
  19. package/lib/tx/retryTxSender.js +14 -1
  20. package/lib/util/promiseTimeout.d.ts +1 -0
  21. package/lib/util/promiseTimeout.js +14 -0
  22. package/package.json +1 -1
  23. package/src/accounts/bulkAccountLoader.ts +51 -40
  24. package/src/accounts/pollingClearingHouseAccountSubscriber.ts +73 -30
  25. package/src/clearingHouse.ts +71 -13
  26. package/src/constants/accounts.ts +26 -0
  27. package/src/constants/markets.ts +11 -0
  28. package/src/factory/clearingHouse.ts +47 -7
  29. package/src/idl/clearing_house.json +53 -33
  30. package/src/math/amm.ts +127 -2
  31. package/src/oracles/pythClient.ts +1 -1
  32. package/src/orderParams.ts +3 -2
  33. package/src/tx/retryTxSender.ts +19 -1
  34. package/src/util/promiseTimeout.ts +14 -0
  35. package/lib/math/repeg.d.ts +0 -32
  36. package/lib/math/repeg.js +0 -178
  37. package/src/accounts/bulkUserSubscription.js +0 -56
  38. package/src/accounts/bulkUserSubscription.js.map +0 -1
  39. package/src/accounts/pollingClearingHouseAccountSubscriber.js +0 -210
  40. package/src/accounts/pollingClearingHouseAccountSubscriber.js.map +0 -1
  41. package/src/accounts/pollingOracleSubscriber.js +0 -65
  42. package/src/accounts/pollingOracleSubscriber.js.map +0 -1
  43. package/src/accounts/pollingTokenAccountSubscriber.js +0 -65
  44. package/src/accounts/pollingTokenAccountSubscriber.js.map +0 -1
  45. package/src/accounts/pollingUserAccountSubscriber.js +0 -139
  46. package/src/accounts/pollingUserAccountSubscriber.js.map +0 -1
  47. package/src/accounts/types.js +0 -11
  48. package/src/accounts/types.js.map +0 -1
  49. package/src/accounts/utils.js +0 -8
  50. package/src/accounts/utils.js.map +0 -1
  51. package/src/accounts/webSocketAccountSubscriber.js +0 -64
  52. package/src/accounts/webSocketAccountSubscriber.js.map +0 -1
  53. package/src/accounts/webSocketClearingHouseAccountSubscriber.js +0 -212
  54. package/src/accounts/webSocketClearingHouseAccountSubscriber.js.map +0 -1
  55. package/src/accounts/webSocketUserAccountSubscriber.js +0 -78
  56. package/src/accounts/webSocketUserAccountSubscriber.js.map +0 -1
  57. package/src/constants/markets.js +0 -167
  58. package/src/constants/markets.js.map +0 -1
  59. package/src/constants/numericConstants.js +0 -22
  60. package/src/constants/numericConstants.js.map +0 -1
  61. package/src/factory/clearingHouse.js +0 -65
  62. package/src/factory/clearingHouse.js.map +0 -1
  63. package/src/factory/clearingHouseUser.js +0 -35
  64. package/src/factory/clearingHouseUser.js.map +0 -1
  65. package/src/factory/oracleClient.js +0 -17
  66. package/src/factory/oracleClient.js.map +0 -1
  67. package/src/math/amm.js +0 -285
  68. package/src/math/amm.js.map +0 -1
  69. package/src/math/repeg.ts +0 -253
  70. package/src/oracles/pythClient.js +0 -39
  71. package/src/oracles/pythClient.js.map +0 -1
  72. package/src/tx/retryTxSender.js +0 -137
  73. package/src/tx/retryTxSender.js.map +0 -1
@@ -1,210 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PollingClearingHouseAccountSubscriber = void 0;
4
- const types_1 = require("./types");
5
- const events_1 = require("events");
6
- const addresses_1 = require("../addresses");
7
- const utils_1 = require("./utils");
8
- class PollingClearingHouseAccountSubscriber {
9
- constructor(program, accountLoader) {
10
- this.accountsToPoll = new Map();
11
- this.optionalExtraSubscriptions = [];
12
- this.type = 'polling';
13
- this.isSubscribing = false;
14
- this.isSubscribed = false;
15
- this.program = program;
16
- this.eventEmitter = new events_1.EventEmitter();
17
- this.accountLoader = accountLoader;
18
- }
19
- async subscribe(optionalSubscriptions) {
20
- if (this.isSubscribed) {
21
- return true;
22
- }
23
- if (this.isSubscribing) {
24
- return await this.subscriptionPromise;
25
- }
26
- this.optionalExtraSubscriptions = optionalSubscriptions;
27
- this.isSubscribing = true;
28
- this.subscriptionPromise = new Promise((res) => {
29
- this.subscriptionPromiseResolver = res;
30
- });
31
- await this.updateAccountsToPoll();
32
- await this.addToAccountLoader();
33
- await this.fetch();
34
- this.eventEmitter.emit('update');
35
- this.isSubscribing = false;
36
- this.isSubscribed = true;
37
- this.subscriptionPromiseResolver(true);
38
- return true;
39
- }
40
- async updateAccountsToPoll() {
41
- var _a, _b, _c, _d, _e, _f, _g;
42
- if (this.accountsToPoll.size > 0) {
43
- return;
44
- }
45
- const statePublicKey = await (0, addresses_1.getClearingHouseStateAccountPublicKey)(this.program.programId);
46
- const state = (await this.program.account.state.fetch(statePublicKey));
47
- this.accountsToPoll.set(statePublicKey.toString(), {
48
- key: 'state',
49
- publicKey: statePublicKey,
50
- eventType: 'stateAccountUpdate',
51
- });
52
- this.accountsToPoll.set(state.markets.toString(), {
53
- key: 'markets',
54
- publicKey: state.markets,
55
- eventType: 'marketsAccountUpdate',
56
- });
57
- this.accountsToPoll.set(state.orderState.toString(), {
58
- key: 'orderState',
59
- publicKey: state.orderState,
60
- eventType: 'orderStateAccountUpdate',
61
- });
62
- if ((_a = this.optionalExtraSubscriptions) === null || _a === void 0 ? void 0 : _a.includes('tradeHistoryAccount')) {
63
- this.accountsToPoll.set(state.tradeHistory.toString(), {
64
- key: 'tradeHistory',
65
- publicKey: state.tradeHistory,
66
- eventType: 'tradeHistoryAccountUpdate',
67
- });
68
- }
69
- if ((_b = this.optionalExtraSubscriptions) === null || _b === void 0 ? void 0 : _b.includes('depositHistoryAccount')) {
70
- this.accountsToPoll.set(state.depositHistory.toString(), {
71
- key: 'depositHistory',
72
- publicKey: state.depositHistory,
73
- eventType: 'depositHistoryAccountUpdate',
74
- });
75
- }
76
- if ((_c = this.optionalExtraSubscriptions) === null || _c === void 0 ? void 0 : _c.includes('fundingPaymentHistoryAccount')) {
77
- this.accountsToPoll.set(state.fundingPaymentHistory.toString(), {
78
- key: 'fundingPaymentHistory',
79
- publicKey: state.fundingPaymentHistory,
80
- eventType: 'fundingPaymentHistoryAccountUpdate',
81
- });
82
- }
83
- if ((_d = this.optionalExtraSubscriptions) === null || _d === void 0 ? void 0 : _d.includes('fundingRateHistoryAccount')) {
84
- this.accountsToPoll.set(state.fundingRateHistory.toString(), {
85
- key: 'fundingRateHistory',
86
- publicKey: state.fundingRateHistory,
87
- eventType: 'fundingRateHistoryAccountUpdate',
88
- });
89
- }
90
- if ((_e = this.optionalExtraSubscriptions) === null || _e === void 0 ? void 0 : _e.includes('curveHistoryAccount')) {
91
- this.accountsToPoll.set(state.extendedCurveHistory.toString(), {
92
- key: 'extendedCurveHistory',
93
- publicKey: state.extendedCurveHistory,
94
- eventType: 'curveHistoryAccountUpdate',
95
- });
96
- }
97
- if ((_f = this.optionalExtraSubscriptions) === null || _f === void 0 ? void 0 : _f.includes('liquidationHistoryAccount')) {
98
- this.accountsToPoll.set(state.liquidationHistory.toString(), {
99
- key: 'liquidationHistory',
100
- publicKey: state.liquidationHistory,
101
- eventType: 'liquidationHistoryAccountUpdate',
102
- });
103
- }
104
- if ((_g = this.optionalExtraSubscriptions) === null || _g === void 0 ? void 0 : _g.includes('orderHistoryAccount')) {
105
- const orderState = (await this.program.account.orderState.fetch(state.orderState));
106
- this.accountsToPoll.set(orderState.orderHistory.toString(), {
107
- key: 'orderHistory',
108
- publicKey: orderState.orderHistory,
109
- eventType: 'orderHistoryAccountUpdate',
110
- });
111
- }
112
- }
113
- async addToAccountLoader() {
114
- for (const [_, accountToPoll] of this.accountsToPoll) {
115
- accountToPoll.callbackId = this.accountLoader.addAccount(accountToPoll.publicKey, (buffer) => {
116
- const account = this.program.account[accountToPoll.key].coder.accounts.decode((0, utils_1.capitalize)(accountToPoll.key), buffer);
117
- this[accountToPoll.key] = account;
118
- // @ts-ignore
119
- this.eventEmitter.emit(accountToPoll.eventType, account);
120
- this.eventEmitter.emit('update');
121
- });
122
- }
123
- this.errorCallbackId = this.accountLoader.addErrorCallbacks((error) => {
124
- this.eventEmitter.emit('error', error);
125
- });
126
- }
127
- async fetch() {
128
- await this.accountLoader.load();
129
- for (const [_, accountToPoll] of this.accountsToPoll) {
130
- const buffer = this.accountLoader.getAccountData(accountToPoll.publicKey);
131
- if (buffer) {
132
- this[accountToPoll.key] = this.program.account[accountToPoll.key].coder.accounts.decode((0, utils_1.capitalize)(accountToPoll.key), buffer);
133
- }
134
- }
135
- }
136
- async unsubscribe() {
137
- if (!this.isSubscribed) {
138
- return;
139
- }
140
- for (const [_, accountToPoll] of this.accountsToPoll) {
141
- this.accountLoader.removeAccount(accountToPoll.publicKey, accountToPoll.callbackId);
142
- }
143
- this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
144
- this.errorCallbackId = undefined;
145
- this.accountsToPoll.clear();
146
- this.isSubscribed = false;
147
- }
148
- assertIsSubscribed() {
149
- if (!this.isSubscribed) {
150
- throw new types_1.NotSubscribedError('You must call `subscribe` before using this function');
151
- }
152
- }
153
- assertOptionalIsSubscribed(optionalSubscription) {
154
- if (!this.isSubscribed) {
155
- throw new types_1.NotSubscribedError('You must call `subscribe` before using this function');
156
- }
157
- if (!this.optionalExtraSubscriptions.includes(optionalSubscription)) {
158
- throw new types_1.NotSubscribedError(`You need to subscribe to the optional Clearing House account "${optionalSubscription}" to use this method`);
159
- }
160
- }
161
- getStateAccount() {
162
- this.assertIsSubscribed();
163
- return this.state;
164
- }
165
- getMarketsAccount() {
166
- this.assertIsSubscribed();
167
- return this.markets;
168
- }
169
- getOrderStateAccount() {
170
- this.assertIsSubscribed();
171
- return this.orderState;
172
- }
173
- getTradeHistoryAccount() {
174
- this.assertIsSubscribed();
175
- this.assertOptionalIsSubscribed('tradeHistoryAccount');
176
- return this.tradeHistory;
177
- }
178
- getDepositHistoryAccount() {
179
- this.assertIsSubscribed();
180
- this.assertOptionalIsSubscribed('depositHistoryAccount');
181
- return this.depositHistory;
182
- }
183
- getFundingPaymentHistoryAccount() {
184
- this.assertIsSubscribed();
185
- this.assertOptionalIsSubscribed('fundingPaymentHistoryAccount');
186
- return this.fundingPaymentHistory;
187
- }
188
- getFundingRateHistoryAccount() {
189
- this.assertIsSubscribed();
190
- this.assertOptionalIsSubscribed('fundingRateHistoryAccount');
191
- return this.fundingRateHistory;
192
- }
193
- getCurveHistoryAccount() {
194
- this.assertIsSubscribed();
195
- this.assertOptionalIsSubscribed('curveHistoryAccount');
196
- return this.extendedCurveHistory;
197
- }
198
- getLiquidationHistoryAccount() {
199
- this.assertIsSubscribed();
200
- this.assertOptionalIsSubscribed('liquidationHistoryAccount');
201
- return this.liquidationHistory;
202
- }
203
- getOrderHistoryAccount() {
204
- this.assertIsSubscribed();
205
- this.assertOptionalIsSubscribed('orderHistoryAccount');
206
- return this.orderHistory;
207
- }
208
- }
209
- exports.PollingClearingHouseAccountSubscriber = PollingClearingHouseAccountSubscriber;
210
- //# sourceMappingURL=pollingClearingHouseAccountSubscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pollingClearingHouseAccountSubscriber.js","sourceRoot":"","sources":["pollingClearingHouseAccountSubscriber.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PollingOracleSubscriber = void 0;
4
- const types_1 = require("./types");
5
- const events_1 = require("events");
6
- class PollingOracleSubscriber {
7
- constructor(publicKey, oracleClient, accountLoader) {
8
- this.isSubscribed = false;
9
- this.publicKey = publicKey;
10
- this.oracleClient = oracleClient;
11
- this.accountLoader = accountLoader;
12
- this.eventEmitter = new events_1.EventEmitter();
13
- }
14
- async subscribe() {
15
- if (this.isSubscribed) {
16
- return true;
17
- }
18
- this.addToAccountLoader();
19
- await this.fetch();
20
- this.eventEmitter.emit('update');
21
- this.isSubscribed = true;
22
- return true;
23
- }
24
- addToAccountLoader() {
25
- if (this.callbackId) {
26
- return;
27
- }
28
- this.callbackId = this.accountLoader.addAccount(this.publicKey, async (buffer) => {
29
- const oraclePriceData = await this.oracleClient.getOraclePriceDataFromBuffer(buffer);
30
- this.oraclePriceData = oraclePriceData;
31
- // @ts-ignore
32
- this.eventEmitter.emit('oracleUpdate', oraclePriceData);
33
- this.eventEmitter.emit('update');
34
- });
35
- this.errorCallbackId = this.accountLoader.addErrorCallbacks((error) => {
36
- this.eventEmitter.emit('error', error);
37
- });
38
- }
39
- async fetch() {
40
- await this.accountLoader.load();
41
- const buffer = this.accountLoader.getAccountData(this.publicKey);
42
- this.oraclePriceData = await this.oracleClient.getOraclePriceDataFromBuffer(buffer);
43
- }
44
- async unsubscribe() {
45
- if (!this.isSubscribed) {
46
- return;
47
- }
48
- this.accountLoader.removeAccount(this.publicKey, this.callbackId);
49
- this.callbackId = undefined;
50
- this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
51
- this.errorCallbackId = undefined;
52
- this.isSubscribed = false;
53
- }
54
- assertIsSubscribed() {
55
- if (!this.isSubscribed) {
56
- throw new types_1.NotSubscribedError('You must call `subscribe` before using this function');
57
- }
58
- }
59
- getOraclePriceData() {
60
- this.assertIsSubscribed();
61
- return this.oraclePriceData;
62
- }
63
- }
64
- exports.PollingOracleSubscriber = PollingOracleSubscriber;
65
- //# sourceMappingURL=pollingOracleSubscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pollingOracleSubscriber.js","sourceRoot":"","sources":["pollingOracleSubscriber.ts"],"names":[],"mappings":";;;AAAA,mCAA6E;AAG7E,mCAAsC;AAKtC,MAAa,uBAAuB;IAanC,YACC,SAAoB,EACpB,YAA0B,EAC1B,aAAgC;QAEhC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAY,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,IAAI,CAAC;SACZ;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,kBAAkB;QACjB,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACP;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAC9C,IAAI,CAAC,SAAS,EACd,KAAK,EAAE,MAAM,EAAE,EAAE;YAChB,MAAM,eAAe,GACpB,MAAM,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,aAAa;YACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CACD,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,EAAE;YACrE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACV,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAC1E,MAAM,CACN,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACvB,OAAO;SACP;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACvB,MAAM,IAAI,0BAAkB,CAC3B,sDAAsD,CACtD,CAAC;SACF;IACF,CAAC;IAEM,kBAAkB;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;CACD;AA9FD,0DA8FC"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PollingTokenAccountSubscriber = void 0;
4
- const types_1 = require("./types");
5
- const events_1 = require("events");
6
- const token_1 = require("../token");
7
- class PollingTokenAccountSubscriber {
8
- constructor(publicKey, accountLoader) {
9
- this.isSubscribed = false;
10
- this.publicKey = publicKey;
11
- this.accountLoader = accountLoader;
12
- this.eventEmitter = new events_1.EventEmitter();
13
- }
14
- async subscribe() {
15
- if (this.isSubscribed) {
16
- return true;
17
- }
18
- this.addToAccountLoader();
19
- await this.fetch();
20
- this.eventEmitter.emit('update');
21
- this.isSubscribed = true;
22
- return true;
23
- }
24
- addToAccountLoader() {
25
- if (this.callbackId) {
26
- return;
27
- }
28
- this.callbackId = this.accountLoader.addAccount(this.publicKey, (buffer) => {
29
- const tokenAccount = (0, token_1.parseTokenAccount)(buffer);
30
- this.tokenAccount = tokenAccount;
31
- // @ts-ignore
32
- this.eventEmitter.emit('tokenAccountUpdate', tokenAccount);
33
- this.eventEmitter.emit('update');
34
- });
35
- this.errorCallbackId = this.accountLoader.addErrorCallbacks((error) => {
36
- this.eventEmitter.emit('error', error);
37
- });
38
- }
39
- async fetch() {
40
- await this.accountLoader.load();
41
- const buffer = this.accountLoader.getAccountData(this.publicKey);
42
- this.tokenAccount = (0, token_1.parseTokenAccount)(buffer);
43
- }
44
- async unsubscribe() {
45
- if (!this.isSubscribed) {
46
- return;
47
- }
48
- this.accountLoader.removeAccount(this.publicKey, this.callbackId);
49
- this.callbackId = undefined;
50
- this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
51
- this.errorCallbackId = undefined;
52
- this.isSubscribed = false;
53
- }
54
- assertIsSubscribed() {
55
- if (!this.isSubscribed) {
56
- throw new types_1.NotSubscribedError('You must call `subscribe` before using this function');
57
- }
58
- }
59
- getTokenAccount() {
60
- this.assertIsSubscribed();
61
- return this.tokenAccount;
62
- }
63
- }
64
- exports.PollingTokenAccountSubscriber = PollingTokenAccountSubscriber;
65
- //# sourceMappingURL=pollingTokenAccountSubscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pollingTokenAccountSubscriber.js","sourceRoot":"","sources":["pollingTokenAccountSubscriber.ts"],"names":[],"mappings":";;;AAAA,mCAIiB;AAGjB,mCAAsC;AAItC,oCAA6C;AAE7C,MAAa,6BAA6B;IAYzC,YAAmB,SAAoB,EAAE,aAAgC;QACxE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAY,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,IAAI,CAAC;SACZ;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,kBAAkB;QACjB,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACP;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAC9C,IAAI,CAAC,SAAS,EACd,CAAC,MAAM,EAAE,EAAE;YACV,MAAM,YAAY,GAAG,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,aAAa;YACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CACD,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,EAAE;YACrE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACV,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACvB,OAAO;SACP;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACvB,MAAM,IAAI,0BAAkB,CAC3B,sDAAsD,CACtD,CAAC;SACF;IACF,CAAC;IAEM,eAAe;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;CACD;AArFD,sEAqFC"}
@@ -1,139 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PollingUserAccountSubscriber = void 0;
4
- const types_1 = require("./types");
5
- const events_1 = require("events");
6
- const addresses_1 = require("../addresses");
7
- const utils_1 = require("./utils");
8
- class PollingUserAccountSubscriber {
9
- constructor(program, authority, accountLoader) {
10
- this.accountsToPoll = new Map();
11
- this.type = 'polling';
12
- this.isSubscribed = false;
13
- this.program = program;
14
- this.authority = authority;
15
- this.accountLoader = accountLoader;
16
- this.eventEmitter = new events_1.EventEmitter();
17
- }
18
- async subscribe() {
19
- if (this.isSubscribed) {
20
- return true;
21
- }
22
- await this.addToAccountLoader();
23
- await this.fetchIfUnloaded();
24
- this.eventEmitter.emit('update');
25
- this.isSubscribed = true;
26
- return true;
27
- }
28
- async addToAccountLoader(userPublicKeys) {
29
- if (this.accountsToPoll.size > 0) {
30
- return;
31
- }
32
- if (!userPublicKeys) {
33
- const userPublicKey = await (0, addresses_1.getUserAccountPublicKey)(this.program.programId, this.authority);
34
- const userAccount = (await this.program.account.user.fetch(userPublicKey));
35
- this.accountsToPoll.set(userPublicKey.toString(), {
36
- key: 'user',
37
- publicKey: userPublicKey,
38
- eventType: 'userAccountData',
39
- });
40
- this.accountsToPoll.set(userAccount.positions.toString(), {
41
- key: 'userPositions',
42
- publicKey: userAccount.positions,
43
- eventType: 'userPositionsData',
44
- });
45
- const userOrdersPublicKey = await (0, addresses_1.getUserOrdersAccountPublicKey)(this.program.programId, userPublicKey);
46
- this.accountsToPoll.set(userOrdersPublicKey.toString(), {
47
- key: 'userOrders',
48
- publicKey: userOrdersPublicKey,
49
- eventType: 'userOrdersData',
50
- });
51
- }
52
- else {
53
- this.accountsToPoll.set(userPublicKeys.user.toString(), {
54
- key: 'user',
55
- publicKey: userPublicKeys.user,
56
- eventType: 'userAccountData',
57
- });
58
- this.accountsToPoll.set(userPublicKeys.userPositions.toString(), {
59
- key: 'userPositions',
60
- publicKey: userPublicKeys.userPositions,
61
- eventType: 'userPositionsData',
62
- });
63
- if (userPublicKeys.userOrders) {
64
- this.accountsToPoll.set(userPublicKeys.userOrders.toString(), {
65
- key: 'userOrders',
66
- publicKey: userPublicKeys.userOrders,
67
- eventType: 'userOrdersData',
68
- });
69
- }
70
- }
71
- for (const [_, accountToPoll] of this.accountsToPoll) {
72
- accountToPoll.callbackId = this.accountLoader.addAccount(accountToPoll.publicKey, (buffer) => {
73
- if (!buffer) {
74
- return;
75
- }
76
- const account = this.program.account[accountToPoll.key].coder.accounts.decode((0, utils_1.capitalize)(accountToPoll.key), buffer);
77
- this[accountToPoll.key] = account;
78
- // @ts-ignore
79
- this.eventEmitter.emit(accountToPoll.eventType, account);
80
- this.eventEmitter.emit('update');
81
- });
82
- }
83
- this.errorCallbackId = this.accountLoader.addErrorCallbacks((error) => {
84
- this.eventEmitter.emit('error', error);
85
- });
86
- }
87
- async fetchIfUnloaded() {
88
- let shouldFetch = false;
89
- for (const [_, accountToPoll] of this.accountsToPoll) {
90
- if (this[accountToPoll.key] === undefined) {
91
- shouldFetch = true;
92
- break;
93
- }
94
- }
95
- if (shouldFetch) {
96
- await this.fetch();
97
- }
98
- }
99
- async fetch() {
100
- await this.accountLoader.load();
101
- for (const [_, accountToPoll] of this.accountsToPoll) {
102
- const buffer = this.accountLoader.getAccountData(accountToPoll.publicKey);
103
- if (buffer) {
104
- this[accountToPoll.key] = this.program.account[accountToPoll.key].coder.accounts.decode((0, utils_1.capitalize)(accountToPoll.key), buffer);
105
- }
106
- }
107
- }
108
- async unsubscribe() {
109
- if (!this.isSubscribed) {
110
- return;
111
- }
112
- for (const [_, accountToPoll] of this.accountsToPoll) {
113
- this.accountLoader.removeAccount(accountToPoll.publicKey, accountToPoll.callbackId);
114
- }
115
- this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
116
- this.errorCallbackId = undefined;
117
- this.accountsToPoll.clear();
118
- this.isSubscribed = false;
119
- }
120
- assertIsSubscribed() {
121
- if (!this.isSubscribed) {
122
- throw new types_1.NotSubscribedError('You must call `subscribe` before using this function');
123
- }
124
- }
125
- getUserAccount() {
126
- this.assertIsSubscribed();
127
- return this.user;
128
- }
129
- getUserPositionsAccount() {
130
- this.assertIsSubscribed();
131
- return this.userPositions;
132
- }
133
- getUserOrdersAccount() {
134
- this.assertIsSubscribed();
135
- return this.userOrders;
136
- }
137
- }
138
- exports.PollingUserAccountSubscriber = PollingUserAccountSubscriber;
139
- //# sourceMappingURL=pollingUserAccountSubscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pollingUserAccountSubscriber.js","sourceRoot":"","sources":["pollingUserAccountSubscriber.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NotSubscribedError = void 0;
4
- class NotSubscribedError extends Error {
5
- constructor() {
6
- super(...arguments);
7
- this.name = 'NotSubscribedError';
8
- }
9
- }
10
- exports.NotSubscribedError = NotSubscribedError;
11
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":";;;AAgCA,MAAa,kBAAmB,SAAQ,KAAK;IAA7C;;QACC,SAAI,GAAG,oBAAoB,CAAC;IAC7B,CAAC;CAAA;AAFD,gDAEC"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.capitalize = void 0;
4
- function capitalize(value) {
5
- return value[0].toUpperCase() + value.slice(1);
6
- }
7
- exports.capitalize = capitalize;
8
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAFD,gCAEC"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebSocketAccountSubscriber = void 0;
4
- const utils_1 = require("./utils");
5
- class WebSocketAccountSubscriber {
6
- constructor(accountName, program, accountPublicKey) {
7
- this.accountName = accountName;
8
- this.program = program;
9
- this.accountPublicKey = accountPublicKey;
10
- }
11
- async subscribe(onChange) {
12
- if (this.listenerId) {
13
- return;
14
- }
15
- this.onChange = onChange;
16
- await this.fetch();
17
- this.listenerId = this.program.provider.connection.onAccountChange(this.accountPublicKey, (accountInfo, context) => {
18
- this.handleRpcResponse(context, accountInfo);
19
- }, this.program.provider.opts.commitment);
20
- }
21
- async fetch() {
22
- const rpcResponse = await this.program.provider.connection.getAccountInfoAndContext(this.accountPublicKey, this.program.provider.opts.commitment);
23
- this.handleRpcResponse(rpcResponse.context, rpcResponse === null || rpcResponse === void 0 ? void 0 : rpcResponse.value);
24
- }
25
- handleRpcResponse(context, accountInfo) {
26
- const newSlot = context.slot;
27
- let newBuffer = undefined;
28
- if (accountInfo) {
29
- newBuffer = accountInfo.data;
30
- }
31
- if (!this.accountData) {
32
- this.accountData = {
33
- buffer: newBuffer,
34
- slot: newSlot,
35
- };
36
- if (newBuffer) {
37
- this.data = this.program.account[this.accountName].coder.accounts.decode((0, utils_1.capitalize)(this.accountName), newBuffer);
38
- this.onChange(this.data);
39
- }
40
- return;
41
- }
42
- if (newSlot <= this.accountData.slot) {
43
- return;
44
- }
45
- const oldBuffer = this.accountData.buffer;
46
- if (newBuffer && (!oldBuffer || !newBuffer.equals(oldBuffer))) {
47
- this.accountData = {
48
- buffer: newBuffer,
49
- slot: newSlot,
50
- };
51
- this.data = this.program.account[this.accountName].coder.accounts.decode((0, utils_1.capitalize)(this.accountName), newBuffer);
52
- this.onChange(this.data);
53
- }
54
- }
55
- unsubscribe() {
56
- if (this.listenerId) {
57
- const promise = this.program.provider.connection.removeAccountChangeListener(this.listenerId);
58
- this.listenerId = undefined;
59
- return promise;
60
- }
61
- }
62
- }
63
- exports.WebSocketAccountSubscriber = WebSocketAccountSubscriber;
64
- //# sourceMappingURL=webSocketAccountSubscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webSocketAccountSubscriber.js","sourceRoot":"","sources":["webSocketAccountSubscriber.ts"],"names":[],"mappings":"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"}