@swapkit/helpers 4.5.9 → 4.12.4

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 (109) hide show
  1. package/dist/LICENSE +246 -0
  2. package/dist/api/index.cjs +0 -4
  3. package/dist/api/index.js +1 -4
  4. package/dist/chunk-1m30h0t9.js +1 -0
  5. package/dist/chunk-57tjgeg1.js +5 -0
  6. package/dist/chunk-7xv3mp86.js +4 -0
  7. package/dist/contracts.cjs +0 -3
  8. package/dist/contracts.js +0 -3
  9. package/dist/index.cjs +1 -7
  10. package/dist/index.js +1 -7
  11. package/dist/tokens.cjs +0 -3
  12. package/dist/tokens.js +0 -3
  13. package/dist/types/api/index.d.ts +129 -153
  14. package/dist/types/api/index.d.ts.map +1 -1
  15. package/dist/types/api/midgard/endpoints.d.ts +2 -1
  16. package/dist/types/api/midgard/endpoints.d.ts.map +1 -1
  17. package/dist/types/api/swapkitApi/endpoints.d.ts +137 -159
  18. package/dist/types/api/swapkitApi/endpoints.d.ts.map +1 -1
  19. package/dist/types/api/swapkitApi/types.d.ts +1050 -23
  20. package/dist/types/api/swapkitApi/types.d.ts.map +1 -1
  21. package/dist/types/api/thornode/endpoints.d.ts +1 -1
  22. package/dist/types/api/thornode/endpoints.d.ts.map +1 -1
  23. package/dist/types/index.d.ts +5 -0
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/modules/assetValue.d.ts +6 -7
  26. package/dist/types/modules/assetValue.d.ts.map +1 -1
  27. package/dist/types/modules/requestClient.d.ts +1 -1
  28. package/dist/types/modules/requestClient.d.ts.map +1 -1
  29. package/dist/types/modules/swapKitConfig.d.ts +24 -78
  30. package/dist/types/modules/swapKitConfig.d.ts.map +1 -1
  31. package/dist/types/modules/swapKitError.d.ts +150 -14
  32. package/dist/types/modules/swapKitError.d.ts.map +1 -1
  33. package/dist/types/modules/widgetAuth.d.ts +6 -0
  34. package/dist/types/modules/widgetAuth.d.ts.map +1 -0
  35. package/dist/types/types/derivationPath.d.ts +1 -1
  36. package/dist/types/types/derivationPath.d.ts.map +1 -1
  37. package/dist/types/types/quotes.d.ts +2 -6
  38. package/dist/types/types/quotes.d.ts.map +1 -1
  39. package/dist/types/types/sdk.d.ts +6 -0
  40. package/dist/types/types/sdk.d.ts.map +1 -1
  41. package/dist/types/types/wallet.d.ts +12 -3
  42. package/dist/types/types/wallet.d.ts.map +1 -1
  43. package/dist/types/utils/asset.d.ts +17 -1
  44. package/dist/types/utils/asset.d.ts.map +1 -1
  45. package/dist/types/utils/chains.d.ts +5 -0
  46. package/dist/types/utils/chains.d.ts.map +1 -1
  47. package/dist/types/utils/derivationPath.d.ts +4 -2
  48. package/dist/types/utils/derivationPath.d.ts.map +1 -1
  49. package/dist/types/utils/wallets.d.ts +18 -2
  50. package/dist/types/utils/wallets.d.ts.map +1 -1
  51. package/package.json +12 -30
  52. package/dist/api/index.cjs.map +0 -14
  53. package/dist/api/index.js.map +0 -14
  54. package/dist/chunk-pfmeq01a.js +0 -5
  55. package/dist/chunk-pfmeq01a.js.map +0 -9
  56. package/dist/chunk-vb4wtm2w.js +0 -4
  57. package/dist/chunk-vb4wtm2w.js.map +0 -9
  58. package/dist/contracts.cjs.map +0 -10
  59. package/dist/contracts.js.map +0 -10
  60. package/dist/index.cjs.map +0 -30
  61. package/dist/index.js.map +0 -30
  62. package/dist/tokens.cjs.map +0 -10
  63. package/dist/tokens.js.map +0 -10
  64. package/src/api/index.ts +0 -9
  65. package/src/api/midgard/endpoints.ts +0 -348
  66. package/src/api/midgard/types.ts +0 -515
  67. package/src/api/swapkitApi/endpoints.ts +0 -247
  68. package/src/api/swapkitApi/types.ts +0 -624
  69. package/src/api/thornode/endpoints.ts +0 -105
  70. package/src/api/thornode/types.ts +0 -247
  71. package/src/contracts.ts +0 -1
  72. package/src/index.ts +0 -28
  73. package/src/modules/__tests__/assetValue.test.ts +0 -2452
  74. package/src/modules/__tests__/bigIntArithmetics.test.ts +0 -410
  75. package/src/modules/__tests__/feeMultiplier.test.ts +0 -125
  76. package/src/modules/__tests__/swapKitConfig.test.ts +0 -425
  77. package/src/modules/__tests__/swapKitNumber.test.ts +0 -435
  78. package/src/modules/assetValue.ts +0 -532
  79. package/src/modules/bigIntArithmetics.ts +0 -362
  80. package/src/modules/feeMultiplier.ts +0 -80
  81. package/src/modules/requestClient.ts +0 -110
  82. package/src/modules/swapKitConfig.ts +0 -174
  83. package/src/modules/swapKitError.ts +0 -470
  84. package/src/modules/swapKitNumber.ts +0 -13
  85. package/src/tokens.ts +0 -1
  86. package/src/types/commonTypes.ts +0 -10
  87. package/src/types/derivationPath.ts +0 -11
  88. package/src/types/errors/apiV1.ts +0 -0
  89. package/src/types/index.ts +0 -5
  90. package/src/types/quotes.ts +0 -174
  91. package/src/types/sdk.ts +0 -38
  92. package/src/types/wallet.ts +0 -124
  93. package/src/utils/__tests__/asset.test.ts +0 -186
  94. package/src/utils/__tests__/derivationPath.test.ts +0 -142
  95. package/src/utils/__tests__/explorerUrls.test.ts +0 -59
  96. package/src/utils/__tests__/liquidity.test.ts +0 -302
  97. package/src/utils/__tests__/memo.test.ts +0 -99
  98. package/src/utils/__tests__/others.test.ts +0 -165
  99. package/src/utils/__tests__/validators.test.ts +0 -84
  100. package/src/utils/__tests__/wallets.test.ts +0 -621
  101. package/src/utils/asset.ts +0 -399
  102. package/src/utils/chains.ts +0 -100
  103. package/src/utils/derivationPath.ts +0 -101
  104. package/src/utils/explorerUrls.ts +0 -32
  105. package/src/utils/liquidity.ts +0 -150
  106. package/src/utils/memo.ts +0 -102
  107. package/src/utils/others.ts +0 -62
  108. package/src/utils/validators.ts +0 -32
  109. package/src/utils/wallets.ts +0 -237
@@ -1,435 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
-
3
- import { SwapKitNumber } from "../swapKitNumber";
4
-
5
- describe("SwapKitNumber", () => {
6
- describe("constructors", () => {
7
- test("creates numbers correctly", () => {
8
- const skNumber1 = new SwapKitNumber(1);
9
- expect(skNumber1.getValue("string")).toBe("1");
10
- expect(skNumber1.getValue("number")).toBe(1);
11
- expect(skNumber1.getBaseValue("bigint")).toBe(100000000n);
12
-
13
- const skNumber2 = new SwapKitNumber("1");
14
- expect(skNumber2.getValue("string")).toBe("1");
15
- expect(skNumber2.getBaseValue("bigint")).toBe(100000000n);
16
-
17
- /**
18
- * because by default we have 8 decimals - it will be rounded to 0 on base value
19
- */
20
- const skNumber3 = new SwapKitNumber("0.0000000001");
21
- expect(skNumber3.getValue("string")).toBe("0.0000000001");
22
- expect(skNumber3.getBaseValue("bigint")).toBe(0n);
23
-
24
- const skNumber4 = new SwapKitNumber({ decimal: 10, value: "0.0000000001" });
25
- expect(skNumber4.getValue("string")).toBe("0.0000000001");
26
- expect(skNumber4.getBaseValue("bigint")).toBe(1n);
27
-
28
- const skNumber5 = new SwapKitNumber({ decimal: 3, value: 0.1005 });
29
- expect(skNumber5.getValue("string")).toBe("0.101");
30
- expect(skNumber5.getBaseValue("bigint")).toBe(101n);
31
-
32
- const skNumber6 = new SwapKitNumber({ decimal: 3, value: -0.1005 });
33
- expect(skNumber6.getValue("string")).toBe("-0.101");
34
- expect(skNumber6.getBaseValue("bigint")).toBe(-101n);
35
- expect(skNumber6.decimal).toBe(3);
36
- expect(skNumber6.getValue("number")).toBe(-0.101);
37
- expect(skNumber6.decimalMultiplier).toBe(100000000n);
38
- });
39
-
40
- test("creates SwapKitInstance from BigInt: (12.345678901234, decimals: 12)", () => {
41
- const skNumber = SwapKitNumber.fromBigInt(12345678901234n, 12);
42
-
43
- expect(skNumber.getValue("string")).toBe("12.345678901234");
44
- expect(skNumber.getBaseValue("bigint")).toBe(12345678901234n);
45
- });
46
- });
47
-
48
- describe("shiftDecimals", () => {
49
- test("shifts up and bumps number", () => {
50
- const skNumber = new SwapKitNumber(1);
51
- expect(skNumber.getValue("string")).toBe("1");
52
- expect(skNumber.getBaseValue("bigint")).toBe(100000000n);
53
-
54
- const shiftedSkNumber = SwapKitNumber.shiftDecimals({ from: 8, to: 6, value: skNumber });
55
-
56
- expect(shiftedSkNumber.getValue("string")).toBe("1");
57
- expect(shiftedSkNumber.getBaseValue("bigint")).toBe(1000000n);
58
- });
59
-
60
- test("shifts down and rounds down number", () => {
61
- const skNumber = new SwapKitNumber(2.12345678);
62
- expect(skNumber.getValue("string")).toBe("2.12345678");
63
- expect(skNumber.getBaseValue("bigint")).toBe(212345678n);
64
-
65
- const shiftedSkNumber = SwapKitNumber.shiftDecimals({ from: 8, to: 6, value: skNumber });
66
-
67
- expect(shiftedSkNumber.getValue("string")).toBe("2.123456");
68
- expect(shiftedSkNumber.getBaseValue("bigint")).toBe(2123456n);
69
- });
70
-
71
- test("shift eth from 18 to 8", () => {
72
- const skNumber = new SwapKitNumber({ decimal: 18, value: "0.2" });
73
-
74
- const shiftedSkNumber = SwapKitNumber.shiftDecimals({ from: 18, to: 8, value: skNumber });
75
-
76
- expect(shiftedSkNumber.getValue("string")).toBe("0.2");
77
- expect(shiftedSkNumber.getBaseValue("bigint")).toBe(20000000n);
78
- });
79
- });
80
-
81
- describe("getValue", () => {
82
- describe("string", () => {
83
- test("returns string value", () => {
84
- const skNumber = new SwapKitNumber(1);
85
- expect(skNumber.getValue("string")).toBe("1");
86
- });
87
-
88
- test("returns string value with decimals", () => {
89
- const skNumber = new SwapKitNumber(0.01);
90
- expect(skNumber.getValue("string")).toBe("0.01");
91
- });
92
-
93
- test("returns string value with adjusted decimals", () => {
94
- const skNumber = new SwapKitNumber({ decimal: 18, value: "1.234567890123456789" });
95
- expect(skNumber.getValue("string", 8)).toBe("1.23456789");
96
- });
97
-
98
- test("returns string base value with adjusted decimals", () => {
99
- const skNumber = new SwapKitNumber({ decimal: 18, value: "1.234567890123456789" });
100
- expect(skNumber.getBaseValue("string", 8)).toBe("123456789");
101
- expect(skNumber.getBaseValue("string", 10)).toBe("12345678901");
102
- });
103
- });
104
-
105
- describe("number", () => {
106
- test("returns number value", () => {
107
- const skNumber = new SwapKitNumber(1);
108
- expect(skNumber.getValue("number")).toBe(1);
109
- });
110
-
111
- test("returns number value with decimals", () => {
112
- const skNumber = new SwapKitNumber(0.01);
113
- expect(skNumber.getValue("number")).toBe(0.01);
114
- });
115
-
116
- test("returns number value with adjusted decimals", () => {
117
- const skNumber = new SwapKitNumber({ decimal: 18, value: "1.234567890123456789" });
118
- expect(skNumber.getValue("number", 8)).toBe(1.23456789);
119
- });
120
-
121
- test("returns number base value with adjusted decimals", () => {
122
- const skNumber = new SwapKitNumber({ decimal: 18, value: "1.234567890123456789" });
123
- expect(skNumber.getBaseValue("number", 8)).toBe(123456789);
124
- expect(skNumber.getBaseValue("number", 10)).toBe(12345678901);
125
- });
126
- });
127
-
128
- describe("bigint", () => {
129
- test("returns bigint value", () => {
130
- const skNumber = new SwapKitNumber(1);
131
- expect(skNumber.getBaseValue("bigint")).toBe(100000000n);
132
- });
133
-
134
- test("returns bigint value with adjusted decimals", () => {
135
- const skNumber = new SwapKitNumber({ decimal: 18, value: "1.234567890123456789" });
136
- expect(skNumber.getBaseValue("bigint", 8)).toBe(123456789n);
137
- expect(skNumber.getBaseValue("bigint", 10)).toBe(12345678901n);
138
- });
139
- });
140
- });
141
-
142
- describe("add", () => {
143
- test("adds same type numbers correctly", () => {
144
- const skNumber1 = new SwapKitNumber(10);
145
- const skNumber2 = new SwapKitNumber("5");
146
- const skNumber3 = new SwapKitNumber("0.5");
147
- const result = skNumber1.add(skNumber2, skNumber3);
148
-
149
- expect(result.getValue("string")).toBe("15.5");
150
- expect(result.getBaseValue("bigint")).toBe(1550000000n);
151
- });
152
-
153
- test("adds different type numbers correctly", () => {
154
- const skNumber1 = new SwapKitNumber(10);
155
- const result = skNumber1.add(6, "0.5");
156
-
157
- expect(result.getValue("string")).toBe("16.5");
158
- expect(result.getBaseValue("bigint")).toBe(1650000000n);
159
- });
160
-
161
- test("adds large decimal numbers correctly", () => {
162
- const skNumber1 = new SwapKitNumber(0.0000000001);
163
- const result = skNumber1.add(6.000000000001, "0.0000000000000005");
164
- expect(result.getValue("string")).toBe("6.0000000001010005");
165
- expect(result.getBaseValue("bigint")).toBe(600000000n);
166
- });
167
- });
168
-
169
- describe("sub", () => {
170
- test("subtracts same type numbers correctly", () => {
171
- const skNumber1 = new SwapKitNumber(10);
172
- const skNumber2 = new SwapKitNumber("5");
173
- const skNumber3 = new SwapKitNumber(0.5);
174
- const result = skNumber1.sub(skNumber2, skNumber3);
175
-
176
- expect(result.getValue("string")).toBe("4.5");
177
- expect(result.getBaseValue("bigint")).toBe(450000000n);
178
- });
179
-
180
- test("subtracts different type numbers correctly", () => {
181
- const skNumber1 = new SwapKitNumber(10);
182
- const result = skNumber1.sub(6, "0.5");
183
-
184
- expect(result.getValue("string")).toBe("3.5");
185
- expect(result.getBaseValue("bigint")).toBe(350000000n);
186
- });
187
-
188
- test("can process negative results", () => {
189
- const skNumber1 = new SwapKitNumber(10);
190
- const result0 = skNumber1.sub(10);
191
- const resultMinus = result0.sub("10");
192
-
193
- expect(result0.getValue("string")).toBe("0");
194
- expect(resultMinus.getValue("string")).toBe("-10");
195
- expect(result0.getBaseValue("bigint")).toBe(0n);
196
- expect(resultMinus.getBaseValue("bigint")).toBe(-1000000000n);
197
- });
198
- });
199
-
200
- describe("mul", () => {
201
- test("multiplies same type numbers correctly", () => {
202
- const skNumber1 = new SwapKitNumber(10);
203
- const skNumber2 = new SwapKitNumber("5");
204
- const skNumber3 = new SwapKitNumber(0.5);
205
- const result = skNumber1.mul(skNumber2, skNumber3);
206
-
207
- expect(result.getValue("string")).toBe("25");
208
- expect(result.getBaseValue("bigint")).toBe(2500000000n);
209
- });
210
-
211
- test("multiplies different type numbers correctly", () => {
212
- const skNumber1 = new SwapKitNumber(10);
213
- const result = skNumber1.mul(6, "0.5");
214
-
215
- expect(result.getValue("string")).toBe("30");
216
- expect(result.getBaseValue("bigint")).toBe(3000000000n);
217
- });
218
-
219
- test("multiplies numbers correctly if decimals of SKN is lower than number multiplied with", () => {
220
- const skNumber1 = new SwapKitNumber({ decimal: 4, value: 1000000 });
221
- const result = skNumber1.mul("0.00001");
222
-
223
- expect(result.getValue("string")).toBe("10");
224
- expect(result.getBaseValue("bigint")).toBe(100000n);
225
- });
226
-
227
- test("should correctly round the result of multiplication", () => {
228
- const skNumber1 = new SwapKitNumber({ decimal: 3, value: 1.23 });
229
- const skNumber2 = new SwapKitNumber({ decimal: 4, value: 4.56 });
230
-
231
- const result = skNumber1.mul(skNumber2);
232
-
233
- expect(result.getValue("string")).toBe("5.609");
234
- expect(result.getBaseValue("bigint")).toBe(5609n);
235
-
236
- const skNumber3 = new SwapKitNumber({ decimal: 2, value: 1.23 });
237
- const skNumber4 = new SwapKitNumber(-1.234567891);
238
-
239
- const result2 = skNumber3.mul(skNumber4);
240
-
241
- // The exact result of 1.23 * -1.234567891 is -1,518518505
242
- // If we round it to 2 decimal places, we should get 5.61
243
- expect(result2.getValue("string")).toBe("-1.52");
244
- expect(result2.getBaseValue("bigint")).toBe(-152n);
245
- });
246
- });
247
-
248
- describe("div", () => {
249
- test("divides same type numbers correctly", () => {
250
- const skNumber1 = new SwapKitNumber(10);
251
- const skNumber2 = new SwapKitNumber("5");
252
- const skNumber3 = new SwapKitNumber(0.5);
253
- const result = skNumber1.div(skNumber2, skNumber3);
254
-
255
- expect(result.getValue("string")).toBe("4");
256
- expect(result.getBaseValue("bigint")).toBe(400000000n);
257
-
258
- const skNumber4 = new SwapKitNumber(10.12);
259
- const result2 = skNumber4.div(0.0001);
260
-
261
- expect(result2.getValue("string")).toBe("101200");
262
- expect(result2.getBaseValue("bigint")).toBe(10120000000000n);
263
- });
264
-
265
- test("divides different type numbers correctly", () => {
266
- const skNumber1 = new SwapKitNumber(20);
267
- const result = skNumber1.div(5, "0.5");
268
-
269
- expect(result.getValue("string")).toBe("8");
270
- expect(result.getBaseValue("bigint")).toBe(800000000n);
271
- });
272
-
273
- test("divides different type numbers correctly when decimal is set", () => {
274
- const skNumber1 = new SwapKitNumber({ decimal: 2, value: "1.2" });
275
- const result = skNumber1.div(0.001);
276
-
277
- expect(result.getValue("string")).toBe("1200");
278
- expect(result.getBaseValue("bigint")).toBe(120000n);
279
- });
280
-
281
- test("divides smaller number by larger number", () => {
282
- const skNumber1 = new SwapKitNumber(1);
283
- const result = skNumber1.div(2);
284
-
285
- expect(result.getValue("string")).toBe("0.5");
286
- expect(result.getBaseValue("bigint")).toBe(50000000n);
287
- });
288
-
289
- test("divides a number with 18 decimals by a negative number with less decimals", () => {
290
- const skNumber1 = new SwapKitNumber({ decimal: 18, value: "1.000000000000000010" });
291
- const skNumber2 = new SwapKitNumber({ decimal: 1, value: "-2" });
292
-
293
- const result = skNumber1.div(skNumber2);
294
-
295
- // The exact result of 1.000000000000000010 / -2 is -0.500000000000000005
296
- expect(result.getValue("string")).toBe("-0.500000000000000005");
297
- expect(result.getBaseValue("bigint")).toBe(-500000000000000005n);
298
- });
299
-
300
- test("divides a number with 2 decimals by a negative number with more decimals", () => {
301
- const skNumber1 = new SwapKitNumber({ decimal: 2, value: "2" });
302
- const skNumber2 = new SwapKitNumber({ decimal: 18, value: "-0.000005" });
303
-
304
- const result = skNumber1.div(skNumber2);
305
-
306
- // The exact result of 2 / -0.000005 is -400000
307
- expect(result.getValue("string")).toBe("-400000");
308
- expect(result.getBaseValue("bigint")).toBe(-40000000n);
309
- });
310
- });
311
-
312
- describe("shitcoin cases", () => {
313
- test("multiply huge numbers", () => {
314
- const skNumber1 = new SwapKitNumber({ decimal: 18, value: 1_000_000_000_000_001 });
315
- const skNumber2 = new SwapKitNumber({ decimal: 18, value: 987_654_321_000 });
316
-
317
- const result = skNumber1.mul(skNumber2);
318
- expect(result.getValue("string")).toBe("987654321000000987654321000");
319
- expect(result.getBaseValue("bigint")).toBe(987654321000000987654321000000000000000000000n);
320
- });
321
-
322
- test("divide huge numbers", () => {
323
- const skNumber1 = new SwapKitNumber({ decimal: 18, value: 1_000_000_000_000_001 });
324
- const skNumber2 = new SwapKitNumber({ decimal: 18, value: 987_654_321_000 });
325
-
326
- const result = skNumber1.div(skNumber2);
327
- expect(result.getValue("string")).toBe("1012.4999999873447625");
328
- expect(result.getBaseValue("bigint")).toBe(1012499999987344762500n);
329
- });
330
- });
331
-
332
- describe("extending multiplier without loosing precision", () => {
333
- test("edge case 1", () => {
334
- const asset1 = new SwapKitNumber({ decimal: 8, value: 41.90963702 });
335
- const multiplier = 5.337952274462478;
336
- const divider = 105.2562773915526;
337
- const result = asset1.mul(multiplier).div(divider);
338
-
339
- expect(result.getValue("string")).toBe("2.12539953");
340
- });
341
-
342
- test("edge case 2", () => {
343
- const asset1 = new SwapKitNumber("41.90963702");
344
- const multiplier = new SwapKitNumber("5.337952274462478");
345
- const divider = new SwapKitNumber("105.2562773915526");
346
- const result = asset1.mul(multiplier).div(divider);
347
-
348
- expect(result.getValue("string")).toBe("2.12539952767472630150052259932285534");
349
- });
350
- });
351
-
352
- describe("gt", () => {
353
- test("greater than", () => {
354
- const skNumber1 = new SwapKitNumber(10);
355
- const skNumber2 = new SwapKitNumber("5");
356
-
357
- expect(skNumber1.gt(skNumber2)).toBe(true);
358
- expect(skNumber2.gt(skNumber1)).toBe(false);
359
- });
360
-
361
- test("different decimals doesn't affect comparison", () => {
362
- const skNumber1 = new SwapKitNumber({ decimal: 18, value: 10 });
363
- const skNumber2 = new SwapKitNumber({ decimal: 8, value: "50" });
364
-
365
- expect(skNumber1.lt(skNumber2)).toBe(true);
366
- expect(skNumber2.gt(skNumber1)).toBe(true);
367
- });
368
- });
369
-
370
- describe("gte", () => {
371
- test("greater than or equal", () => {
372
- const skNumber1 = new SwapKitNumber(10);
373
- const skNumber2 = new SwapKitNumber("5");
374
-
375
- expect(skNumber1.gte(skNumber2)).toBe(true);
376
- expect(skNumber1.gte(skNumber1)).toBe(true);
377
- expect(skNumber2.gte(skNumber1)).toBe(false);
378
- });
379
- });
380
-
381
- describe("lt", () => {
382
- test("less than", () => {
383
- const skNumber1 = new SwapKitNumber(10);
384
- const skNumber2 = new SwapKitNumber("5");
385
-
386
- expect(skNumber1.lt(skNumber2)).toBe(false);
387
- expect(skNumber2.lt(skNumber1)).toBe(true);
388
- });
389
- });
390
-
391
- describe("lte", () => {
392
- test("less than or equal", () => {
393
- const skNumber1 = new SwapKitNumber(10);
394
- const skNumber2 = new SwapKitNumber("5");
395
-
396
- expect(skNumber1.lte(skNumber2)).toBe(false);
397
- expect(skNumber1.lte(skNumber1)).toBe(true);
398
- expect(skNumber2.lte(skNumber1)).toBe(true);
399
- });
400
- });
401
-
402
- describe("eq", () => {
403
- test("equal", () => {
404
- const skNumber1 = new SwapKitNumber(10);
405
- const skNumber2 = new SwapKitNumber("5");
406
-
407
- expect(skNumber1.eq(skNumber2)).toBe(false);
408
- expect(skNumber1.eq(skNumber1)).toBe(true);
409
- expect(skNumber2.eq(skNumber1)).toBe(false);
410
- });
411
- });
412
-
413
- describe("comparison edge cases with decimals", () => {
414
- test("compare on cut decimals", () => {
415
- const skNumber1 = new SwapKitNumber({ decimal: 3, value: 0.001 });
416
- const value = "0.0019";
417
-
418
- expect(skNumber1.lt(value)).toBe(true);
419
- expect(skNumber1.gt(value)).toBe(false);
420
- expect(skNumber1.eq(value)).toBe(false);
421
- expect(skNumber1.lte(value)).toBe(true);
422
- expect(skNumber1.gte(value)).toBe(false);
423
- });
424
- });
425
-
426
- describe("Throws", () => {
427
- test("throws if division by zero", () => {
428
- const skNumber1 = new SwapKitNumber(10);
429
- const skNumber2 = new SwapKitNumber("0");
430
-
431
- expect(() => skNumber1.div(skNumber2)).toThrow(RangeError);
432
- expect(() => skNumber1.div(0)).toThrow(RangeError);
433
- });
434
- });
435
- });