@drift-labs/sdk 0.2.0-master.26 → 0.2.0-master.28

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 (143) hide show
  1. package/lib/accounts/pollingClearingHouseAccountSubscriber.d.ts +1 -0
  2. package/lib/accounts/pollingClearingHouseAccountSubscriber.js +3 -0
  3. package/lib/accounts/types.d.ts +2 -0
  4. package/lib/accounts/webSocketClearingHouseAccountSubscriber.d.ts +1 -0
  5. package/lib/accounts/webSocketClearingHouseAccountSubscriber.js +3 -0
  6. package/lib/admin.d.ts +5 -2
  7. package/lib/admin.js +30 -4
  8. package/lib/clearingHouse.d.ts +3 -0
  9. package/lib/clearingHouse.js +19 -1
  10. package/lib/clearingHouseUser.d.ts +11 -9
  11. package/lib/clearingHouseUser.js +184 -108
  12. package/lib/config.js +1 -1
  13. package/lib/dlob/DLOB.d.ts +73 -0
  14. package/lib/dlob/DLOB.js +557 -0
  15. package/lib/dlob/DLOBNode.d.ts +52 -0
  16. package/lib/dlob/DLOBNode.js +82 -0
  17. package/lib/dlob/NodeList.d.ts +26 -0
  18. package/lib/dlob/NodeList.js +138 -0
  19. package/lib/idl/clearing_house.json +123 -203
  20. package/lib/index.d.ts +5 -0
  21. package/lib/index.js +5 -0
  22. package/lib/math/market.d.ts +3 -2
  23. package/lib/math/market.js +17 -12
  24. package/lib/math/orders.d.ts +3 -3
  25. package/lib/math/orders.js +31 -16
  26. package/lib/math/position.d.ts +3 -3
  27. package/lib/math/position.js +23 -16
  28. package/lib/math/repeg.js +8 -0
  29. package/lib/math/spotBalance.d.ts +3 -0
  30. package/lib/math/spotBalance.js +18 -1
  31. package/lib/math/spotPosition.d.ts +5 -1
  32. package/lib/math/spotPosition.js +16 -1
  33. package/lib/types.d.ts +25 -24
  34. package/lib/types.js +9 -3
  35. package/lib/userMap/userMap.d.ts +25 -0
  36. package/lib/userMap/userMap.js +73 -0
  37. package/lib/userMap/userStatsMap.d.ts +19 -0
  38. package/lib/userMap/userStatsMap.js +68 -0
  39. package/package.json +6 -3
  40. package/src/accounts/pollingClearingHouseAccountSubscriber.ts +4 -0
  41. package/src/accounts/types.ts +1 -0
  42. package/src/accounts/webSocketClearingHouseAccountSubscriber.ts +6 -0
  43. package/src/admin.ts +50 -8
  44. package/src/clearingHouse.ts +30 -1
  45. package/src/clearingHouseUser.ts +366 -167
  46. package/src/config.ts +1 -1
  47. package/src/dlob/DLOB.ts +884 -0
  48. package/src/dlob/DLOBNode.ts +163 -0
  49. package/src/dlob/NodeList.ts +185 -0
  50. package/src/idl/clearing_house.json +123 -203
  51. package/src/index.ts +5 -0
  52. package/src/math/market.ts +22 -13
  53. package/src/math/orders.ts +29 -21
  54. package/src/math/position.ts +36 -22
  55. package/src/math/repeg.ts +9 -0
  56. package/src/math/spotBalance.ts +26 -0
  57. package/src/math/spotPosition.ts +42 -1
  58. package/src/types.ts +26 -24
  59. package/src/userMap/userMap.ts +100 -0
  60. package/src/userMap/userStatsMap.ts +110 -0
  61. package/tests/bn/test.ts +2 -3
  62. package/tests/dlob/helpers.ts +322 -0
  63. package/tests/dlob/test.ts +2865 -0
  64. package/my-script/.env +0 -7
  65. package/my-script/getUserStats.ts +0 -106
  66. package/my-script/multiConnections.ts +0 -119
  67. package/my-script/test-regex.ts +0 -11
  68. package/my-script/utils.ts +0 -52
  69. package/src/accounts/bulkAccountLoader.js +0 -249
  70. package/src/accounts/bulkUserStatsSubscription.js +0 -75
  71. package/src/accounts/bulkUserSubscription.js +0 -75
  72. package/src/accounts/fetch.js +0 -92
  73. package/src/accounts/pollingClearingHouseAccountSubscriber.js +0 -465
  74. package/src/accounts/pollingOracleSubscriber.js +0 -156
  75. package/src/accounts/pollingTokenAccountSubscriber.js +0 -141
  76. package/src/accounts/pollingUserAccountSubscriber.js +0 -208
  77. package/src/accounts/pollingUserStatsAccountSubscriber.js +0 -208
  78. package/src/accounts/types.js +0 -28
  79. package/src/accounts/utils.js +0 -7
  80. package/src/accounts/webSocketAccountSubscriber.js +0 -138
  81. package/src/accounts/webSocketClearingHouseAccountSubscriber.js +0 -433
  82. package/src/accounts/webSocketUserAccountSubscriber.js +0 -113
  83. package/src/accounts/webSocketUserStatsAccountSubsriber.js +0 -113
  84. package/src/addresses/pda.js +0 -186
  85. package/src/admin.js +0 -1284
  86. package/src/assert/assert.js +0 -9
  87. package/src/clearingHouse.js +0 -3433
  88. package/src/clearingHouseConfig.js +0 -2
  89. package/src/clearingHouseUser.js +0 -874
  90. package/src/clearingHouseUserConfig.js +0 -2
  91. package/src/clearingHouseUserStats.js +0 -115
  92. package/src/clearingHouseUserStatsConfig.js +0 -2
  93. package/src/config.js +0 -80
  94. package/src/constants/numericConstants.js +0 -48
  95. package/src/constants/perpMarkets.js +0 -42
  96. package/src/constants/spotMarkets.js +0 -51
  97. package/src/events/eventList.js +0 -120
  98. package/src/events/eventSubscriber.js +0 -202
  99. package/src/events/fetchLogs.js +0 -117
  100. package/src/events/pollingLogProvider.js +0 -113
  101. package/src/events/sort.js +0 -41
  102. package/src/events/txEventCache.js +0 -74
  103. package/src/events/types.js +0 -25
  104. package/src/events/webSocketLogProvider.js +0 -76
  105. package/src/factory/bigNum.js +0 -393
  106. package/src/factory/oracleClient.js +0 -20
  107. package/src/index.js +0 -75
  108. package/src/math/amm.js +0 -422
  109. package/src/math/auction.js +0 -42
  110. package/src/math/conversion.js +0 -12
  111. package/src/math/funding.js +0 -296
  112. package/src/math/insurance.js +0 -27
  113. package/src/math/margin.js +0 -77
  114. package/src/math/market.js +0 -105
  115. package/src/math/oracles.js +0 -56
  116. package/src/math/orders.js +0 -153
  117. package/src/math/position.js +0 -172
  118. package/src/math/repeg.js +0 -128
  119. package/src/math/spotBalance.js +0 -176
  120. package/src/math/spotMarket.js +0 -8
  121. package/src/math/spotPosition.js +0 -8
  122. package/src/math/trade.js +0 -260
  123. package/src/math/utils.js +0 -27
  124. package/src/oracles/oracleClientCache.js +0 -20
  125. package/src/oracles/pythClient.js +0 -81
  126. package/src/oracles/quoteAssetOracleClient.js +0 -63
  127. package/src/oracles/switchboardClient.js +0 -101
  128. package/src/oracles/types.js +0 -2
  129. package/src/orderParams.js +0 -28
  130. package/src/serum/serumSubscriber.js +0 -102
  131. package/src/serum/types.js +0 -2
  132. package/src/slot/SlotSubscriber.js +0 -86
  133. package/src/token/index.js +0 -38
  134. package/src/tokenFaucet.js +0 -323
  135. package/src/tx/retryTxSender.js +0 -280
  136. package/src/tx/types.js +0 -2
  137. package/src/tx/utils.js +0 -18
  138. package/src/types.js +0 -216
  139. package/src/userName.js +0 -20
  140. package/src/util/computeUnits.js +0 -62
  141. package/src/util/promiseTimeout.js +0 -14
  142. package/src/util/tps.js +0 -61
  143. package/src/wallet.js +0 -72
@@ -1,393 +0,0 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- exports.__esModule = true;
12
- exports.BigNum = void 0;
13
- var anchor_1 = require("@project-serum/anchor");
14
- var assert_1 = require("../assert/assert");
15
- var numericConstants_1 = require("./../constants/numericConstants");
16
- var BigNum = /** @class */ (function () {
17
- function BigNum(val, precisionVal) {
18
- var _this = this;
19
- if (precisionVal === void 0) { precisionVal = new anchor_1.BN(0); }
20
- this.toString = function (base, length) {
21
- return _this.val.toString(base, length);
22
- };
23
- this.val = new anchor_1.BN(val);
24
- this.precision = new anchor_1.BN(precisionVal);
25
- }
26
- BigNum.prototype.bigNumFromParam = function (bn) {
27
- return anchor_1.BN.isBN(bn) ? BigNum.from(bn) : bn;
28
- };
29
- BigNum.prototype.add = function (bn) {
30
- (0, assert_1.assert)(bn.precision.eq(this.precision), 'Adding unequal precisions');
31
- return BigNum.from(this.val.add(bn.val), this.precision);
32
- };
33
- BigNum.prototype.sub = function (bn) {
34
- (0, assert_1.assert)(bn.precision.eq(this.precision), 'Subtracting unequal precisions');
35
- return BigNum.from(this.val.sub(bn.val), this.precision);
36
- };
37
- BigNum.prototype.mul = function (bn) {
38
- var mulVal = this.bigNumFromParam(bn);
39
- return BigNum.from(this.val.mul(mulVal.val), this.precision.add(mulVal.precision));
40
- };
41
- /**
42
- * Multiplies by another big number then scales the result down by the big number's precision so that we're in the same precision space
43
- * @param bn
44
- * @returns
45
- */
46
- BigNum.prototype.scalarMul = function (bn) {
47
- if (anchor_1.BN.isBN(bn))
48
- return BigNum.from(this.val.mul(bn), this.precision);
49
- return BigNum.from(this.val.mul(bn.val), this.precision.add(bn.precision)).shift(bn.precision.neg());
50
- };
51
- BigNum.prototype.div = function (bn) {
52
- if (anchor_1.BN.isBN(bn))
53
- return BigNum.from(this.val.div(bn), this.precision);
54
- return BigNum.from(this.val.div(bn.val), this.precision.sub(bn.precision));
55
- };
56
- /**
57
- * Shift precision up or down
58
- * @param exponent
59
- * @param skipAdjustingPrecision
60
- * @returns
61
- */
62
- BigNum.prototype.shift = function (exponent, skipAdjustingPrecision) {
63
- if (skipAdjustingPrecision === void 0) { skipAdjustingPrecision = false; }
64
- var shiftVal = typeof exponent === 'number' ? new anchor_1.BN(exponent) : exponent;
65
- return BigNum.from(shiftVal.isNeg()
66
- ? this.val.div(new anchor_1.BN(10).pow(shiftVal))
67
- : this.val.mul(new anchor_1.BN(10).pow(shiftVal)), skipAdjustingPrecision ? this.precision : this.precision.add(shiftVal));
68
- };
69
- /**
70
- * Shift to a target precision
71
- * @param targetPrecision
72
- * @returns
73
- */
74
- BigNum.prototype.shiftTo = function (targetPrecision) {
75
- return this.shift(targetPrecision.sub(this.precision));
76
- };
77
- /**
78
- * Scale the number by a fraction
79
- * @param numerator
80
- * @param denominator
81
- * @returns
82
- */
83
- BigNum.prototype.scale = function (numerator, denominator) {
84
- return this.mul(BigNum.from(new anchor_1.BN(numerator))).div(new anchor_1.BN(denominator));
85
- };
86
- BigNum.prototype.toPercentage = function (denominator, precision) {
87
- return this.shift(precision)
88
- .shift(2, true)
89
- .div(denominator)
90
- .toPrecision(precision);
91
- };
92
- BigNum.prototype.gt = function (bn, ignorePrecision) {
93
- var comparisonVal = this.bigNumFromParam(bn);
94
- if (!ignorePrecision && !comparisonVal.eq(numericConstants_1.ZERO)) {
95
- (0, assert_1.assert)(comparisonVal.precision.eq(this.precision), 'Trying to compare numbers with different precision. Yo can opt to ignore precision using the ignorePrecision parameter');
96
- }
97
- return this.val.gt(comparisonVal.val);
98
- };
99
- BigNum.prototype.lt = function (bn, ignorePrecision) {
100
- var comparisonVal = this.bigNumFromParam(bn);
101
- if (!ignorePrecision && !comparisonVal.val.eq(numericConstants_1.ZERO)) {
102
- (0, assert_1.assert)(comparisonVal.precision.eq(this.precision), 'Trying to compare numbers with different precision. Yo can opt to ignore precision using the ignorePrecision parameter');
103
- }
104
- return this.val.lt(comparisonVal.val);
105
- };
106
- BigNum.prototype.gte = function (bn, ignorePrecision) {
107
- var comparisonVal = this.bigNumFromParam(bn);
108
- if (!ignorePrecision && !comparisonVal.val.eq(numericConstants_1.ZERO)) {
109
- (0, assert_1.assert)(comparisonVal.precision.eq(this.precision), 'Trying to compare numbers with different precision. Yo can opt to ignore precision using the ignorePrecision parameter');
110
- }
111
- return this.val.gte(comparisonVal.val);
112
- };
113
- BigNum.prototype.lte = function (bn, ignorePrecision) {
114
- var comparisonVal = this.bigNumFromParam(bn);
115
- if (!ignorePrecision && !comparisonVal.val.eq(numericConstants_1.ZERO)) {
116
- (0, assert_1.assert)(comparisonVal.precision.eq(this.precision), 'Trying to compare numbers with different precision. Yo can opt to ignore precision using the ignorePrecision parameter');
117
- }
118
- return this.val.lte(comparisonVal.val);
119
- };
120
- BigNum.prototype.eq = function (bn, ignorePrecision) {
121
- var comparisonVal = this.bigNumFromParam(bn);
122
- if (!ignorePrecision && !comparisonVal.val.eq(numericConstants_1.ZERO)) {
123
- (0, assert_1.assert)(comparisonVal.precision.eq(this.precision), 'Trying to compare numbers with different precision. Yo can opt to ignore precision using the ignorePrecision parameter');
124
- }
125
- return this.val.eq(comparisonVal.val);
126
- };
127
- BigNum.prototype.eqZero = function () {
128
- return this.val.eq(numericConstants_1.ZERO);
129
- };
130
- BigNum.prototype.gtZero = function () {
131
- return this.val.gt(numericConstants_1.ZERO);
132
- };
133
- BigNum.prototype.ltZero = function () {
134
- return this.val.lt(numericConstants_1.ZERO);
135
- };
136
- BigNum.prototype.gteZero = function () {
137
- return this.val.gte(numericConstants_1.ZERO);
138
- };
139
- BigNum.prototype.lteZero = function () {
140
- return this.val.lte(numericConstants_1.ZERO);
141
- };
142
- BigNum.prototype.abs = function () {
143
- return new BigNum(this.val.abs(), this.precision);
144
- };
145
- BigNum.prototype.neg = function () {
146
- return new BigNum(this.val.neg(), this.precision);
147
- };
148
- /**
149
- * Pretty print the underlying value in human-readable form. Depends on precision being correct for the output string to be correct
150
- * @returns
151
- */
152
- BigNum.prototype.print = function () {
153
- (0, assert_1.assert)(this.precision.gte(numericConstants_1.ZERO), 'Tried to print a BN with precision lower than zero');
154
- var isNeg = this.isNeg();
155
- var plainString = this.abs().toString();
156
- var precisionNum = this.precision.toNumber();
157
- // make a string with at least the precisionNum number of zeroes
158
- var printString = __spreadArray(__spreadArray([], Array(this.precision.toNumber()).fill(0), true), plainString.split(''), true).join('');
159
- // inject decimal
160
- printString =
161
- printString.substring(0, printString.length - precisionNum) +
162
- BigNum.delim +
163
- printString.substring(printString.length - precisionNum);
164
- // remove leading zeroes
165
- printString = printString.replace(/^0+/, '');
166
- // add zero if leading delim
167
- if (printString[0] === BigNum.delim)
168
- printString = "0".concat(printString);
169
- // Add minus if negative
170
- if (isNeg)
171
- printString = "-".concat(printString);
172
- // remove trailing delim
173
- if (printString[printString.length - 1] === BigNum.delim)
174
- printString = printString.slice(0, printString.length - 1);
175
- return printString;
176
- };
177
- BigNum.prototype.prettyPrint = function (useTradePrecision, precisionOverride) {
178
- var _a = this.printShort(useTradePrecision, precisionOverride).split(BigNum.delim), leftSide = _a[0], rightSide = _a[1];
179
- var formattedLeftSide = leftSide;
180
- var isNeg = formattedLeftSide.includes('-');
181
- if (isNeg) {
182
- formattedLeftSide = formattedLeftSide.replace('-', '');
183
- }
184
- var index = formattedLeftSide.length - 3;
185
- while (index >= 1) {
186
- var formattedLeftSideArray = formattedLeftSide.split('');
187
- formattedLeftSideArray.splice(index, 0, BigNum.spacer);
188
- formattedLeftSide = formattedLeftSideArray.join('');
189
- index -= 3;
190
- }
191
- return "".concat(isNeg ? '-' : '').concat(formattedLeftSide).concat(rightSide ? "".concat(BigNum.delim).concat(rightSide) : '');
192
- };
193
- /**
194
- * Print and remove unnecessary trailing zeroes
195
- * @returns
196
- */
197
- BigNum.prototype.printShort = function (useTradePrecision, precisionOverride) {
198
- var printVal = precisionOverride
199
- ? this.toPrecision(precisionOverride)
200
- : useTradePrecision
201
- ? this.toTradePrecision()
202
- : this.print();
203
- return printVal.replace(/0+$/g, '').replace(/\.$/, '').replace(/,$/, '');
204
- };
205
- BigNum.prototype.debug = function () {
206
- console.log("".concat(this.toString(), " | ").concat(this.print(), " | ").concat(this.precision.toString()));
207
- };
208
- /**
209
- * Pretty print with the specified number of decimal places
210
- * @param fixedPrecision
211
- * @returns
212
- */
213
- BigNum.prototype.toFixed = function (fixedPrecision) {
214
- var printString = this.print();
215
- var _a = printString.split(BigNum.delim), leftSide = _a[0], rightSide = _a[1];
216
- var filledRightSide = __spreadArray(__spreadArray([], (rightSide !== null && rightSide !== void 0 ? rightSide : '').slice(0, fixedPrecision), true), Array(fixedPrecision).fill('0'), true).slice(0, fixedPrecision)
217
- .join('');
218
- return "".concat(leftSide).concat(BigNum.delim).concat(filledRightSide);
219
- };
220
- /**
221
- * Pretty print to the specified number of significant figures
222
- * @param fixedPrecision
223
- * @returns
224
- */
225
- BigNum.prototype.toPrecision = function (fixedPrecision, trailingZeroes) {
226
- if (trailingZeroes === void 0) { trailingZeroes = false; }
227
- var printString = this.print();
228
- var precisionPrintString = printString.slice(0, fixedPrecision + 1);
229
- if (!precisionPrintString.includes(BigNum.delim) ||
230
- precisionPrintString[precisionPrintString.length - 1] === BigNum.delim) {
231
- precisionPrintString = printString.slice(0, fixedPrecision);
232
- }
233
- var pointsOfPrecision = precisionPrintString.replace(BigNum.delim, '').length;
234
- if (pointsOfPrecision < fixedPrecision) {
235
- precisionPrintString = __spreadArray(__spreadArray([], precisionPrintString.split(''), true), Array(fixedPrecision - pointsOfPrecision).fill('0'), true).join('');
236
- }
237
- if (!precisionPrintString.includes(BigNum.delim)) {
238
- var delimFullStringLocation = printString.indexOf(BigNum.delim);
239
- var skipExponent = false;
240
- if (delimFullStringLocation === -1) {
241
- // no decimal, not missing any precision
242
- skipExponent = true;
243
- }
244
- if (precisionPrintString[precisionPrintString.length - 1] === BigNum.delim) {
245
- // decimal is at end of string, not missing any precision, do nothing
246
- skipExponent = true;
247
- }
248
- if (printString.indexOf(BigNum.delim) === fixedPrecision) {
249
- // decimal is at end of string, not missing any precision, do nothing
250
- skipExponent = true;
251
- }
252
- if (!skipExponent) {
253
- var exponent = delimFullStringLocation - fixedPrecision;
254
- if (trailingZeroes) {
255
- precisionPrintString = "".concat(precisionPrintString).concat(Array(exponent)
256
- .fill('0')
257
- .join(''));
258
- }
259
- else {
260
- precisionPrintString = "".concat(precisionPrintString, "e").concat(exponent);
261
- }
262
- }
263
- }
264
- return precisionPrintString;
265
- };
266
- BigNum.prototype.toTradePrecision = function () {
267
- return this.toPrecision(6, true);
268
- };
269
- /**
270
- * Print dollar formatted value. Defaults to fixed decimals two unless a given precision is given.
271
- * @param useTradePrecision
272
- * @param precisionOverride
273
- * @returns
274
- */
275
- BigNum.prototype.toNotional = function (useTradePrecision, precisionOverride) {
276
- var _a;
277
- var prefix = "".concat(this.lt(BigNum.zero()) ? "-" : "", "$");
278
- var usingCustomPrecision = true && (useTradePrecision || precisionOverride);
279
- var val = usingCustomPrecision
280
- ? this.prettyPrint(useTradePrecision, precisionOverride)
281
- : BigNum.fromPrint(this.toFixed(2), new anchor_1.BN(2)).prettyPrint();
282
- // Append two trailing zeroes if not using custom precision
283
- if (!usingCustomPrecision) {
284
- var _b = val.split(BigNum.delim), _1 = _b[0], rightSide = _b[1];
285
- var trailingLength = (_a = rightSide === null || rightSide === void 0 ? void 0 : rightSide.length) !== null && _a !== void 0 ? _a : 0;
286
- if (trailingLength < 2) {
287
- var numHasDecimals = this.print().includes(BigNum.delim);
288
- // Handle case where pretty print won't include the decimal point
289
- if (trailingLength === 0 && numHasDecimals) {
290
- val = "".concat(val, ".00");
291
- }
292
- else {
293
- val = "".concat(val).concat(new Array(2 - trailingLength).fill('0').join(''));
294
- }
295
- }
296
- }
297
- return "".concat(prefix).concat(val.replace('-', ''));
298
- };
299
- BigNum.prototype.toMillified = function (precision) {
300
- if (precision === void 0) { precision = 3; }
301
- var stringVal = this.print();
302
- var leftSide = stringVal.split(BigNum.delim)[0];
303
- if (!leftSide) {
304
- return this.shift(new anchor_1.BN(precision)).toPrecision(precision, true);
305
- }
306
- if (leftSide.length <= 3) {
307
- return this.shift(new anchor_1.BN(precision)).toPrecision(precision, true);
308
- }
309
- var unitTicks = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];
310
- var unitNumber = Math.floor((leftSide.length - 1) / 3);
311
- var unit = unitTicks[unitNumber];
312
- var leadDigits = leftSide.slice(0, precision);
313
- if (leadDigits.length < precision) {
314
- leadDigits = __spreadArray(__spreadArray([], leadDigits.split(''), true), Array(precision - leadDigits.length).fill('0'), true).join('');
315
- }
316
- var decimalLocation = leftSide.length - 3 * unitNumber;
317
- var leadString = '';
318
- if (decimalLocation >= precision) {
319
- leadString = "".concat(leadDigits);
320
- }
321
- else {
322
- leadString = "".concat(leadDigits.slice(0, decimalLocation)).concat(BigNum.delim).concat(leadDigits.slice(decimalLocation));
323
- }
324
- return "".concat(leadString).concat(unit);
325
- };
326
- BigNum.prototype.toJSON = function () {
327
- return {
328
- val: this.val.toString(),
329
- precision: this.precision.toString()
330
- };
331
- };
332
- BigNum.prototype.isNeg = function () {
333
- return this.lt(numericConstants_1.ZERO, true);
334
- };
335
- BigNum.prototype.isPos = function () {
336
- return !this.isNeg();
337
- };
338
- /**
339
- * Get the numerical value of the BigNum. This can break if the BigNum is too large.
340
- * @returns
341
- */
342
- BigNum.prototype.toNum = function () {
343
- return parseFloat(this.print());
344
- };
345
- BigNum.fromJSON = function (json) {
346
- return BigNum.from(new anchor_1.BN(json.val), new anchor_1.BN(json.precision));
347
- };
348
- /**
349
- * Create a BigNum instance
350
- * @param val
351
- * @param precision
352
- * @returns
353
- */
354
- BigNum.from = function (val, precision) {
355
- if (val === void 0) { val = numericConstants_1.ZERO; }
356
- (0, assert_1.assert)(new anchor_1.BN(precision).lt(new anchor_1.BN(100)), 'Tried to create a bignum with precision higher than 10^100');
357
- return new BigNum(val, precision);
358
- };
359
- /**
360
- * Create a BigNum instance from a printed BigNum
361
- * @param val
362
- * @param precisionOverride
363
- * @returns
364
- */
365
- BigNum.fromPrint = function (val, precisionShift) {
366
- var _a;
367
- // Handle empty number edge cases
368
- if (!val)
369
- return BigNum.from(numericConstants_1.ZERO, precisionShift);
370
- if (!val.replace(BigNum.delim, ''))
371
- return BigNum.from(numericConstants_1.ZERO, precisionShift);
372
- var _b = val.split(BigNum.delim), leftSide = _b[0], rightSide = _b[1];
373
- var rawBn = new anchor_1.BN("".concat(leftSide !== null && leftSide !== void 0 ? leftSide : '').concat(rightSide !== null && rightSide !== void 0 ? rightSide : ''));
374
- var rightSideLength = (_a = rightSide === null || rightSide === void 0 ? void 0 : rightSide.length) !== null && _a !== void 0 ? _a : 0;
375
- var totalShift = precisionShift
376
- ? precisionShift.sub(new anchor_1.BN(rightSideLength))
377
- : numericConstants_1.ZERO;
378
- return BigNum.from(rawBn, precisionShift).shift(totalShift, true);
379
- };
380
- BigNum.max = function (a, b) {
381
- return a.gt(b) ? a : b;
382
- };
383
- BigNum.min = function (a, b) {
384
- return a.lt(b) ? a : b;
385
- };
386
- BigNum.zero = function (precision) {
387
- return BigNum.from(0, precision);
388
- };
389
- BigNum.delim = '.';
390
- BigNum.spacer = ',';
391
- return BigNum;
392
- }());
393
- exports.BigNum = BigNum;
@@ -1,20 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.getOracleClient = void 0;
4
- var types_1 = require("../types");
5
- var pythClient_1 = require("../oracles/pythClient");
6
- var switchboardClient_1 = require("../oracles/switchboardClient");
7
- var quoteAssetOracleClient_1 = require("../oracles/quoteAssetOracleClient");
8
- function getOracleClient(oracleSource, connection) {
9
- if ((0, types_1.isVariant)(oracleSource, 'pyth')) {
10
- return new pythClient_1.PythClient(connection);
11
- }
12
- if ((0, types_1.isVariant)(oracleSource, 'switchboard')) {
13
- return new switchboardClient_1.SwitchboardClient(connection);
14
- }
15
- if ((0, types_1.isVariant)(oracleSource, 'quoteAsset')) {
16
- return new quoteAssetOracleClient_1.QuoteAssetOracleClient();
17
- }
18
- throw new Error("Unknown oracle source ".concat(oracleSource));
19
- }
20
- exports.getOracleClient = getOracleClient;
package/src/index.js DELETED
@@ -1,75 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- exports.__esModule = true;
13
- exports.pyth = exports.PublicKey = exports.BN = void 0;
14
- var anchor_1 = require("@project-serum/anchor");
15
- exports.BN = anchor_1.BN;
16
- var web3_js_1 = require("@solana/web3.js");
17
- exports.PublicKey = web3_js_1.PublicKey;
18
- var client_1 = require("@pythnetwork/client");
19
- exports.pyth = client_1["default"];
20
- __exportStar(require("./tokenFaucet"), exports);
21
- __exportStar(require("./oracles/types"), exports);
22
- __exportStar(require("./oracles/pythClient"), exports);
23
- __exportStar(require("./oracles/switchboardClient"), exports);
24
- __exportStar(require("./types"), exports);
25
- __exportStar(require("./constants/perpMarkets"), exports);
26
- __exportStar(require("./accounts/fetch"), exports);
27
- __exportStar(require("./accounts/webSocketClearingHouseAccountSubscriber"), exports);
28
- __exportStar(require("./accounts/bulkAccountLoader"), exports);
29
- __exportStar(require("./accounts/bulkUserSubscription"), exports);
30
- __exportStar(require("./accounts/bulkUserStatsSubscription"), exports);
31
- __exportStar(require("./accounts/pollingClearingHouseAccountSubscriber"), exports);
32
- __exportStar(require("./accounts/pollingOracleSubscriber"), exports);
33
- __exportStar(require("./accounts/pollingTokenAccountSubscriber"), exports);
34
- __exportStar(require("./accounts/pollingUserAccountSubscriber"), exports);
35
- __exportStar(require("./accounts/pollingUserStatsAccountSubscriber"), exports);
36
- __exportStar(require("./accounts/types"), exports);
37
- __exportStar(require("./addresses/pda"), exports);
38
- __exportStar(require("./admin"), exports);
39
- __exportStar(require("./clearingHouseUser"), exports);
40
- __exportStar(require("./clearingHouseUserConfig"), exports);
41
- __exportStar(require("./clearingHouseUserStats"), exports);
42
- __exportStar(require("./clearingHouseUserStatsConfig"), exports);
43
- __exportStar(require("./clearingHouse"), exports);
44
- __exportStar(require("./factory/oracleClient"), exports);
45
- __exportStar(require("./factory/bigNum"), exports);
46
- __exportStar(require("./events/types"), exports);
47
- __exportStar(require("./events/eventSubscriber"), exports);
48
- __exportStar(require("./events/fetchLogs"), exports);
49
- __exportStar(require("./math/auction"), exports);
50
- __exportStar(require("./math/spotMarket"), exports);
51
- __exportStar(require("./math/conversion"), exports);
52
- __exportStar(require("./math/funding"), exports);
53
- __exportStar(require("./math/market"), exports);
54
- __exportStar(require("./math/position"), exports);
55
- __exportStar(require("./math/oracles"), exports);
56
- __exportStar(require("./math/amm"), exports);
57
- __exportStar(require("./math/trade"), exports);
58
- __exportStar(require("./math/orders"), exports);
59
- __exportStar(require("./math/repeg"), exports);
60
- __exportStar(require("./math/margin"), exports);
61
- __exportStar(require("./math/insurance"), exports);
62
- __exportStar(require("./orderParams"), exports);
63
- __exportStar(require("./slot/SlotSubscriber"), exports);
64
- __exportStar(require("./wallet"), exports);
65
- __exportStar(require("./types"), exports);
66
- __exportStar(require("./math/utils"), exports);
67
- __exportStar(require("./config"), exports);
68
- __exportStar(require("./constants/numericConstants"), exports);
69
- __exportStar(require("./serum/serumSubscriber"), exports);
70
- __exportStar(require("./tx/retryTxSender"), exports);
71
- __exportStar(require("./util/computeUnits"), exports);
72
- __exportStar(require("./util/tps"), exports);
73
- __exportStar(require("./math/spotBalance"), exports);
74
- __exportStar(require("./constants/spotMarkets"), exports);
75
- __exportStar(require("./clearingHouseConfig"), exports);