@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,137 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RetryTxSender = void 0;
7
- const assert_1 = __importDefault(require("assert"));
8
- const bs58_1 = __importDefault(require("bs58"));
9
- const DEFAULT_TIMEOUT = 35000;
10
- const DEFAULT_RETRY = 8000;
11
- class RetryTxSender {
12
- constructor(provider, timeout, retrySleep) {
13
- this.provider = provider;
14
- this.timeout = timeout !== null && timeout !== void 0 ? timeout : DEFAULT_TIMEOUT;
15
- this.retrySleep = retrySleep !== null && retrySleep !== void 0 ? retrySleep : DEFAULT_RETRY;
16
- }
17
- async send(tx, additionalSigners, opts) {
18
- if (additionalSigners === undefined) {
19
- additionalSigners = [];
20
- }
21
- if (opts === undefined) {
22
- opts = this.provider.opts;
23
- }
24
- await this.prepareTx(tx, additionalSigners, opts);
25
- const rawTransaction = tx.serialize();
26
- const startTime = this.getTimestamp();
27
- const txid = await this.provider.connection.sendRawTransaction(rawTransaction, opts);
28
- let done = false;
29
- const resolveReference = {
30
- resolve: undefined,
31
- };
32
- const stopWaiting = () => {
33
- done = true;
34
- if (resolveReference.resolve) {
35
- resolveReference.resolve();
36
- }
37
- };
38
- (async () => {
39
- while (!done && this.getTimestamp() - startTime < this.timeout) {
40
- await this.sleep(resolveReference);
41
- if (!done) {
42
- this.provider.connection
43
- .sendRawTransaction(rawTransaction, opts)
44
- .catch((e) => {
45
- console.error(e);
46
- stopWaiting();
47
- });
48
- }
49
- }
50
- })();
51
- try {
52
- await this.confirmTransaction(txid, opts.commitment);
53
- }
54
- catch (e) {
55
- console.error(e);
56
- throw e;
57
- }
58
- finally {
59
- stopWaiting();
60
- }
61
- return txid;
62
- }
63
- async prepareTx(tx, additionalSigners, opts) {
64
- tx.feePayer = this.provider.wallet.publicKey;
65
- tx.recentBlockhash = (await this.provider.connection.getRecentBlockhash(opts.preflightCommitment)).blockhash;
66
- await this.provider.wallet.signTransaction(tx);
67
- additionalSigners
68
- .filter((s) => s !== undefined)
69
- .forEach((kp) => {
70
- tx.partialSign(kp);
71
- });
72
- return tx;
73
- }
74
- async confirmTransaction(signature, commitment) {
75
- let decodedSignature;
76
- try {
77
- decodedSignature = bs58_1.default.decode(signature);
78
- }
79
- catch (err) {
80
- throw new Error('signature must be base58 encoded: ' + signature);
81
- }
82
- (0, assert_1.default)(decodedSignature.length === 64, 'signature has invalid length');
83
- const start = Date.now();
84
- const subscriptionCommitment = commitment || this.provider.opts.commitment;
85
- let subscriptionId;
86
- let response = null;
87
- const confirmPromise = new Promise((resolve, reject) => {
88
- try {
89
- subscriptionId = this.provider.connection.onSignature(signature, (result, context) => {
90
- subscriptionId = undefined;
91
- response = {
92
- context,
93
- value: result,
94
- };
95
- resolve(null);
96
- }, subscriptionCommitment);
97
- }
98
- catch (err) {
99
- reject(err);
100
- }
101
- });
102
- try {
103
- await this.promiseTimeout(confirmPromise, this.timeout);
104
- }
105
- finally {
106
- if (subscriptionId) {
107
- this.provider.connection.removeSignatureListener(subscriptionId);
108
- }
109
- }
110
- if (response === null) {
111
- const duration = (Date.now() - start) / 1000;
112
- throw new Error(`Transaction was not confirmed in ${duration.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${signature} using the Solana Explorer or CLI tools.`);
113
- }
114
- return response;
115
- }
116
- getTimestamp() {
117
- return new Date().getTime();
118
- }
119
- async sleep(reference) {
120
- return new Promise((resolve) => {
121
- reference.resolve = resolve;
122
- setTimeout(resolve, this.retrySleep);
123
- });
124
- }
125
- promiseTimeout(promise, timeoutMs) {
126
- let timeoutId;
127
- const timeoutPromise = new Promise((resolve) => {
128
- timeoutId = setTimeout(() => resolve(null), timeoutMs);
129
- });
130
- return Promise.race([promise, timeoutPromise]).then((result) => {
131
- clearTimeout(timeoutId);
132
- return result;
133
- });
134
- }
135
- }
136
- exports.RetryTxSender = RetryTxSender;
137
- //# sourceMappingURL=retryTxSender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retryTxSender.js","sourceRoot":"","sources":["retryTxSender.ts"],"names":[],"mappings":"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"}