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

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 (85) 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 +0 -1
  6. package/lib/clearingHouse.js +0 -14
  7. package/lib/constants/accounts.d.ts +15 -0
  8. package/lib/constants/accounts.js +18 -0
  9. package/lib/factory/clearingHouse.d.ts +14 -4
  10. package/lib/factory/clearingHouse.js +23 -6
  11. package/lib/idl/clearing_house.json +2 -33
  12. package/lib/index.d.ts +0 -1
  13. package/lib/index.js +0 -1
  14. package/lib/math/amm.d.ts +20 -0
  15. package/lib/math/amm.js +151 -1
  16. package/lib/tx/retryTxSender.d.ts +5 -2
  17. package/lib/tx/retryTxSender.js +14 -1
  18. package/lib/util/promiseTimeout.d.ts +1 -0
  19. package/lib/util/promiseTimeout.js +14 -0
  20. package/package.json +1 -1
  21. package/src/accounts/bulkAccountLoader.ts +51 -40
  22. package/src/accounts/pollingClearingHouseAccountSubscriber.ts +73 -30
  23. package/src/clearingHouse.ts +0 -13
  24. package/src/constants/accounts.ts +26 -0
  25. package/src/factory/clearingHouse.ts +47 -7
  26. package/src/idl/clearing_house.json +2 -33
  27. package/src/index.ts +0 -1
  28. package/src/math/amm.ts +212 -1
  29. package/src/tx/retryTxSender.ts +19 -1
  30. package/src/util/promiseTimeout.ts +14 -0
  31. package/lib/math/repeg.d.ts +0 -32
  32. package/lib/math/repeg.js +0 -178
  33. package/src/accounts/pollingClearingHouseAccountSubscriber.js +0 -210
  34. package/src/accounts/pollingClearingHouseAccountSubscriber.js.map +0 -1
  35. package/src/accounts/pollingOracleSubscriber.js +0 -65
  36. package/src/accounts/pollingOracleSubscriber.js.map +0 -1
  37. package/src/accounts/pollingTokenAccountSubscriber.js +0 -65
  38. package/src/accounts/pollingTokenAccountSubscriber.js.map +0 -1
  39. package/src/accounts/utils.js +0 -8
  40. package/src/accounts/utils.js.map +0 -1
  41. package/src/accounts/webSocketAccountSubscriber.js +0 -64
  42. package/src/accounts/webSocketAccountSubscriber.js.map +0 -1
  43. package/src/accounts/webSocketClearingHouseAccountSubscriber.js +0 -212
  44. package/src/accounts/webSocketClearingHouseAccountSubscriber.js.map +0 -1
  45. package/src/assert/assert.js +0 -10
  46. package/src/assert/assert.js.map +0 -1
  47. package/src/constants/markets.js +0 -167
  48. package/src/constants/markets.js.map +0 -1
  49. package/src/constants/numericConstants.js +0 -22
  50. package/src/constants/numericConstants.js.map +0 -1
  51. package/src/math/conversion.js +0 -16
  52. package/src/math/conversion.js.map +0 -1
  53. package/src/math/funding.js +0 -223
  54. package/src/math/funding.js.map +0 -1
  55. package/src/math/insuranceFund.js +0 -23
  56. package/src/math/insuranceFund.js.map +0 -1
  57. package/src/math/market.js +0 -30
  58. package/src/math/market.js.map +0 -1
  59. package/src/math/orders.js +0 -73
  60. package/src/math/orders.js.map +0 -1
  61. package/src/math/position.js +0 -121
  62. package/src/math/position.js.map +0 -1
  63. package/src/math/repeg.ts +0 -253
  64. package/src/math/trade.js +0 -182
  65. package/src/math/trade.js.map +0 -1
  66. package/src/math/utils.js +0 -27
  67. package/src/math/utils.js.map +0 -1
  68. package/src/oracles/switchboardClient.js +0 -60
  69. package/src/oracles/switchboardClient.js.map +0 -1
  70. package/src/oracles/types.js +0 -3
  71. package/src/oracles/types.js.map +0 -1
  72. package/src/token/index.js +0 -39
  73. package/src/token/index.js.map +0 -1
  74. package/src/tx/defaultTxSender.js +0 -13
  75. package/src/tx/defaultTxSender.js.map +0 -1
  76. package/src/tx/retryTxSender.js +0 -137
  77. package/src/tx/retryTxSender.js.map +0 -1
  78. package/src/tx/types.js +0 -3
  79. package/src/tx/types.js.map +0 -1
  80. package/src/tx/utils.js +0 -9
  81. package/src/tx/utils.js.map +0 -1
  82. package/src/util/computeUnits.js +0 -17
  83. package/src/util/computeUnits.js.map +0 -1
  84. package/src/util/tps.js +0 -17
  85. package/src/util/tps.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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"}
package/src/tx/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":""}
package/src/tx/utils.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wrapInTx = void 0;
4
- const web3_js_1 = require("@solana/web3.js");
5
- function wrapInTx(instruction) {
6
- return new web3_js_1.Transaction().add(instruction);
7
- }
8
- exports.wrapInTx = wrapInTx;
9
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":";;;AAAA,6CAAsE;AAEtE,SAAgB,QAAQ,CAAC,WAAmC;IAC3D,OAAO,IAAI,qBAAW,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC;AAFD,4BAEC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findComputeUnitConsumption = void 0;
4
- async function findComputeUnitConsumption(programId, connection, txSignature, commitment = 'confirmed') {
5
- const tx = await connection.getTransaction(txSignature, { commitment });
6
- const computeUnits = [];
7
- const regex = new RegExp(`Program ${programId.toString()} consumed ([0-9]{0,6}) of 200000 compute units`);
8
- tx.meta.logMessages.forEach((logMessage) => {
9
- const match = logMessage.match(regex);
10
- if (match && match[1]) {
11
- computeUnits.push(match[1]);
12
- }
13
- });
14
- return computeUnits;
15
- }
16
- exports.findComputeUnitConsumption = findComputeUnitConsumption;
17
- //# sourceMappingURL=computeUnits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computeUnits.js","sourceRoot":"","sources":["computeUnits.ts"],"names":[],"mappings":";;;AAEO,KAAK,UAAU,0BAA0B,CAC/C,SAAoB,EACpB,UAAsB,EACtB,WAAmB,EACnB,aAAuB,WAAW;IAElC,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,MAAM,CACvB,WAAW,SAAS,CAAC,QAAQ,EAAE,gDAAgD,CAC/E,CAAC;IACF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACtB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B;IACF,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACrB,CAAC;AAlBD,gEAkBC"}
package/src/util/tps.js DELETED
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.estimateTps = void 0;
4
- async function estimateTps(programId, connection, failed) {
5
- let signatures = await connection.getSignaturesForAddress(programId, undefined, 'finalized');
6
- if (failed) {
7
- signatures = signatures.filter((signature) => signature.err);
8
- }
9
- const numberOfSignatures = signatures.length;
10
- if (numberOfSignatures === 0) {
11
- return 0;
12
- }
13
- return (numberOfSignatures /
14
- (signatures[0].blockTime - signatures[numberOfSignatures - 1].blockTime));
15
- }
16
- exports.estimateTps = estimateTps;
17
- //# sourceMappingURL=tps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tps.js","sourceRoot":"","sources":["tps.ts"],"names":[],"mappings":";;;AAEO,KAAK,UAAU,WAAW,CAChC,SAAoB,EACpB,UAAsB,EACtB,MAAe;IAEf,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,uBAAuB,CACxD,SAAS,EACT,SAAS,EACT,WAAW,CACX,CAAC;IACF,IAAI,MAAM,EAAE;QACX,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KAC7D;IAED,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;IAE7C,IAAI,kBAAkB,KAAK,CAAC,EAAE;QAC7B,OAAO,CAAC,CAAC;KACT;IAED,OAAO,CACN,kBAAkB;QAClB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CACxE,CAAC;AACH,CAAC;AAxBD,kCAwBC"}