@swapkit/helpers 4.5.8 → 4.12.3

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 (111) 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-jsgxsr8a.js +4 -0
  6. package/dist/chunk-z5an6869.js +5 -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 +126 -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 +134 -159
  18. package/dist/types/api/swapkitApi/endpoints.d.ts.map +1 -1
  19. package/dist/types/api/swapkitApi/types.d.ts +1038 -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/bigIntArithmetics.d.ts +2 -1
  28. package/dist/types/modules/bigIntArithmetics.d.ts.map +1 -1
  29. package/dist/types/modules/requestClient.d.ts +1 -1
  30. package/dist/types/modules/requestClient.d.ts.map +1 -1
  31. package/dist/types/modules/swapKitConfig.d.ts +24 -78
  32. package/dist/types/modules/swapKitConfig.d.ts.map +1 -1
  33. package/dist/types/modules/swapKitError.d.ts +146 -14
  34. package/dist/types/modules/swapKitError.d.ts.map +1 -1
  35. package/dist/types/modules/widgetAuth.d.ts +6 -0
  36. package/dist/types/modules/widgetAuth.d.ts.map +1 -0
  37. package/dist/types/types/derivationPath.d.ts +1 -1
  38. package/dist/types/types/derivationPath.d.ts.map +1 -1
  39. package/dist/types/types/quotes.d.ts +2 -6
  40. package/dist/types/types/quotes.d.ts.map +1 -1
  41. package/dist/types/types/sdk.d.ts +6 -0
  42. package/dist/types/types/sdk.d.ts.map +1 -1
  43. package/dist/types/types/wallet.d.ts +12 -3
  44. package/dist/types/types/wallet.d.ts.map +1 -1
  45. package/dist/types/utils/asset.d.ts +17 -1
  46. package/dist/types/utils/asset.d.ts.map +1 -1
  47. package/dist/types/utils/chains.d.ts +5 -0
  48. package/dist/types/utils/chains.d.ts.map +1 -1
  49. package/dist/types/utils/derivationPath.d.ts +4 -2
  50. package/dist/types/utils/derivationPath.d.ts.map +1 -1
  51. package/dist/types/utils/wallets.d.ts +18 -2
  52. package/dist/types/utils/wallets.d.ts.map +1 -1
  53. package/package.json +12 -30
  54. package/dist/api/index.cjs.map +0 -14
  55. package/dist/api/index.js.map +0 -14
  56. package/dist/chunk-pfmeq01a.js +0 -5
  57. package/dist/chunk-pfmeq01a.js.map +0 -9
  58. package/dist/chunk-vb4wtm2w.js +0 -4
  59. package/dist/chunk-vb4wtm2w.js.map +0 -9
  60. package/dist/contracts.cjs.map +0 -10
  61. package/dist/contracts.js.map +0 -10
  62. package/dist/index.cjs.map +0 -30
  63. package/dist/index.js.map +0 -30
  64. package/dist/tokens.cjs.map +0 -10
  65. package/dist/tokens.js.map +0 -10
  66. package/src/api/index.ts +0 -9
  67. package/src/api/midgard/endpoints.ts +0 -348
  68. package/src/api/midgard/types.ts +0 -515
  69. package/src/api/swapkitApi/endpoints.ts +0 -247
  70. package/src/api/swapkitApi/types.ts +0 -624
  71. package/src/api/thornode/endpoints.ts +0 -105
  72. package/src/api/thornode/types.ts +0 -247
  73. package/src/contracts.ts +0 -1
  74. package/src/index.ts +0 -28
  75. package/src/modules/__tests__/assetValue.test.ts +0 -1892
  76. package/src/modules/__tests__/bigIntArithmetics.test.ts +0 -408
  77. package/src/modules/__tests__/feeMultiplier.test.ts +0 -125
  78. package/src/modules/__tests__/swapKitConfig.test.ts +0 -425
  79. package/src/modules/__tests__/swapKitNumber.test.ts +0 -435
  80. package/src/modules/assetValue.ts +0 -532
  81. package/src/modules/bigIntArithmetics.ts +0 -368
  82. package/src/modules/feeMultiplier.ts +0 -80
  83. package/src/modules/requestClient.ts +0 -110
  84. package/src/modules/swapKitConfig.ts +0 -174
  85. package/src/modules/swapKitError.ts +0 -470
  86. package/src/modules/swapKitNumber.ts +0 -13
  87. package/src/tokens.ts +0 -1
  88. package/src/types/commonTypes.ts +0 -10
  89. package/src/types/derivationPath.ts +0 -11
  90. package/src/types/errors/apiV1.ts +0 -0
  91. package/src/types/index.ts +0 -5
  92. package/src/types/quotes.ts +0 -174
  93. package/src/types/sdk.ts +0 -38
  94. package/src/types/wallet.ts +0 -124
  95. package/src/utils/__tests__/asset.test.ts +0 -186
  96. package/src/utils/__tests__/derivationPath.test.ts +0 -142
  97. package/src/utils/__tests__/explorerUrls.test.ts +0 -59
  98. package/src/utils/__tests__/liquidity.test.ts +0 -302
  99. package/src/utils/__tests__/memo.test.ts +0 -99
  100. package/src/utils/__tests__/others.test.ts +0 -165
  101. package/src/utils/__tests__/validators.test.ts +0 -84
  102. package/src/utils/__tests__/wallets.test.ts +0 -621
  103. package/src/utils/asset.ts +0 -399
  104. package/src/utils/chains.ts +0 -100
  105. package/src/utils/derivationPath.ts +0 -101
  106. package/src/utils/explorerUrls.ts +0 -32
  107. package/src/utils/liquidity.ts +0 -150
  108. package/src/utils/memo.ts +0 -102
  109. package/src/utils/others.ts +0 -62
  110. package/src/utils/validators.ts +0 -32
  111. 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
- });