@swapkit/helpers 1.0.0-rc.71 → 1.0.0-rc.72

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.
@@ -1,55 +1,55 @@
1
- import { describe, expect, test } from 'vitest';
1
+ import { describe, expect, test } from "vitest";
2
2
 
3
- import { SwapKitNumber } from '../swapKitNumber.ts';
3
+ import { SwapKitNumber } from "../swapKitNumber.ts";
4
4
 
5
- describe('SwapKitNumber', () => {
6
- describe('constructors', () => {
7
- test('creates numbers correctly', () => {
5
+ describe("SwapKitNumber", () => {
6
+ describe("constructors", () => {
7
+ test("creates numbers correctly", () => {
8
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);
9
+ expect(skNumber1.getValue("string")).toBe("1");
10
+ expect(skNumber1.getValue("number")).toBe(1);
11
+ expect(skNumber1.getBaseValue("bigint")).toBe(100000000n);
12
12
 
13
- const skNumber2 = new SwapKitNumber('1');
14
- expect(skNumber2.getValue('string')).toBe('1');
15
- expect(skNumber2.getBaseValue('bigint')).toBe(100000000n);
13
+ const skNumber2 = new SwapKitNumber("1");
14
+ expect(skNumber2.getValue("string")).toBe("1");
15
+ expect(skNumber2.getBaseValue("bigint")).toBe(100000000n);
16
16
 
17
17
  /**
18
18
  * because by default we have 8 decimals - it will be rounded to 0 on base value
19
19
  */
20
- const skNumber3 = new SwapKitNumber('0.0000000001');
21
- expect(skNumber3.getValue('string')).toBe('0.0000000001');
22
- expect(skNumber3.getBaseValue('bigint')).toBe(0n);
20
+ const skNumber3 = new SwapKitNumber("0.0000000001");
21
+ expect(skNumber3.getValue("string")).toBe("0.0000000001");
22
+ expect(skNumber3.getBaseValue("bigint")).toBe(0n);
23
23
 
24
- const skNumber4 = new SwapKitNumber({ value: '0.0000000001', decimal: 10 });
25
- expect(skNumber4.getValue('string')).toBe('0.0000000001');
26
- expect(skNumber4.getBaseValue('bigint')).toBe(1n);
24
+ const skNumber4 = new SwapKitNumber({ value: "0.0000000001", decimal: 10 });
25
+ expect(skNumber4.getValue("string")).toBe("0.0000000001");
26
+ expect(skNumber4.getBaseValue("bigint")).toBe(1n);
27
27
 
28
28
  const skNumber5 = new SwapKitNumber({ value: 0.1005, decimal: 3 });
29
- expect(skNumber5.getValue('string')).toBe('0.101');
30
- expect(skNumber5.getBaseValue('bigint')).toBe(100n);
29
+ expect(skNumber5.getValue("string")).toBe("0.101");
30
+ expect(skNumber5.getBaseValue("bigint")).toBe(100n);
31
31
 
32
32
  const skNumber6 = new SwapKitNumber({ value: -0.1005, decimal: 3 });
33
- expect(skNumber6.getValue('string')).toBe('-0.101');
34
- expect(skNumber6.getBaseValue('bigint')).toBe(-100n);
33
+ expect(skNumber6.getValue("string")).toBe("-0.101");
34
+ expect(skNumber6.getBaseValue("bigint")).toBe(-100n);
35
35
  expect(skNumber6.decimal).toBe(3);
36
- expect(skNumber6.getValue('number')).toBe(-0.101);
36
+ expect(skNumber6.getValue("number")).toBe(-0.101);
37
37
  expect(skNumber6.decimalMultiplier).toBe(100000000n);
38
38
  });
39
39
 
40
- test('creates SwapKitInstance from BigInt: (12.345678901234, decimals: 12)', () => {
40
+ test("creates SwapKitInstance from BigInt: (12.345678901234, decimals: 12)", () => {
41
41
  const skNumber = SwapKitNumber.fromBigInt(12345678901234n, 12);
42
42
 
43
- expect(skNumber.getValue('string')).toBe('12.345678901234');
44
- expect(skNumber.getBaseValue('bigint')).toBe(12345678901234n);
43
+ expect(skNumber.getValue("string")).toBe("12.345678901234");
44
+ expect(skNumber.getBaseValue("bigint")).toBe(12345678901234n);
45
45
  });
46
46
  });
47
47
 
48
- describe('shiftDecimals', () => {
49
- test('shifts up and bumps number', () => {
48
+ describe("shiftDecimals", () => {
49
+ test("shifts up and bumps number", () => {
50
50
  const skNumber = new SwapKitNumber(1);
51
- expect(skNumber.getValue('string')).toBe('1');
52
- expect(skNumber.getBaseValue('bigint')).toBe(100000000n);
51
+ expect(skNumber.getValue("string")).toBe("1");
52
+ expect(skNumber.getBaseValue("bigint")).toBe(100000000n);
53
53
 
54
54
  const shiftedSkNumber = SwapKitNumber.shiftDecimals({
55
55
  value: skNumber,
@@ -57,14 +57,14 @@ describe('SwapKitNumber', () => {
57
57
  to: 6,
58
58
  });
59
59
 
60
- expect(shiftedSkNumber.getValue('string')).toBe('1');
61
- expect(shiftedSkNumber.getBaseValue('bigint')).toBe(1000000n);
60
+ expect(shiftedSkNumber.getValue("string")).toBe("1");
61
+ expect(shiftedSkNumber.getBaseValue("bigint")).toBe(1000000n);
62
62
  });
63
63
 
64
- test('shifts down and rounds down number', () => {
64
+ test("shifts down and rounds down number", () => {
65
65
  const skNumber = new SwapKitNumber(2.12345678);
66
- expect(skNumber.getValue('string')).toBe('2.12345678');
67
- expect(skNumber.getBaseValue('bigint')).toBe(212345678n);
66
+ expect(skNumber.getValue("string")).toBe("2.12345678");
67
+ expect(skNumber.getBaseValue("bigint")).toBe(212345678n);
68
68
 
69
69
  const shiftedSkNumber = SwapKitNumber.shiftDecimals({
70
70
  value: skNumber,
@@ -72,12 +72,12 @@ describe('SwapKitNumber', () => {
72
72
  to: 6,
73
73
  });
74
74
 
75
- expect(shiftedSkNumber.getValue('string')).toBe('2.123456');
76
- expect(shiftedSkNumber.getBaseValue('bigint')).toBe(2123456n);
75
+ expect(shiftedSkNumber.getValue("string")).toBe("2.123456");
76
+ expect(shiftedSkNumber.getBaseValue("bigint")).toBe(2123456n);
77
77
  });
78
78
 
79
- test('shift eth from 18 to 8', () => {
80
- const skNumber = new SwapKitNumber({ value: '0.2', decimal: 18 });
79
+ test("shift eth from 18 to 8", () => {
80
+ const skNumber = new SwapKitNumber({ value: "0.2", decimal: 18 });
81
81
 
82
82
  const shiftedSkNumber = SwapKitNumber.shiftDecimals({
83
83
  value: skNumber,
@@ -85,251 +85,251 @@ describe('SwapKitNumber', () => {
85
85
  to: 8,
86
86
  });
87
87
 
88
- expect(shiftedSkNumber.getValue('string')).toBe('0.2');
89
- expect(shiftedSkNumber.getBaseValue('bigint')).toBe(20000000n);
88
+ expect(shiftedSkNumber.getValue("string")).toBe("0.2");
89
+ expect(shiftedSkNumber.getBaseValue("bigint")).toBe(20000000n);
90
90
  });
91
91
  });
92
92
 
93
- describe('getValue', () => {
94
- describe('string', () => {
95
- test('returns string value', () => {
93
+ describe("getValue", () => {
94
+ describe("string", () => {
95
+ test("returns string value", () => {
96
96
  const skNumber = new SwapKitNumber(1);
97
- expect(skNumber.getValue('string')).toBe('1');
97
+ expect(skNumber.getValue("string")).toBe("1");
98
98
  });
99
99
 
100
- test('returns string value with decimals', () => {
100
+ test("returns string value with decimals", () => {
101
101
  const skNumber = new SwapKitNumber(0.01);
102
- expect(skNumber.getValue('string')).toBe('0.01');
102
+ expect(skNumber.getValue("string")).toBe("0.01");
103
103
  });
104
104
  });
105
105
 
106
- describe('number', () => {
107
- test('returns number value', () => {
106
+ describe("number", () => {
107
+ test("returns number value", () => {
108
108
  const skNumber = new SwapKitNumber(1);
109
- expect(skNumber.getValue('number')).toBe(1);
109
+ expect(skNumber.getValue("number")).toBe(1);
110
110
  });
111
111
 
112
- test('returns number value with decimals', () => {
112
+ test("returns number value with decimals", () => {
113
113
  const skNumber = new SwapKitNumber(0.01);
114
- expect(skNumber.getValue('number')).toBe(0.01);
114
+ expect(skNumber.getValue("number")).toBe(0.01);
115
115
  });
116
116
  });
117
117
 
118
- describe('bigint', () => {
119
- test('returns bigint value', () => {
118
+ describe("bigint", () => {
119
+ test("returns bigint value", () => {
120
120
  const skNumber = new SwapKitNumber(1);
121
- expect(skNumber.getBaseValue('bigint')).toBe(100000000n);
121
+ expect(skNumber.getBaseValue("bigint")).toBe(100000000n);
122
122
  });
123
123
  });
124
124
  });
125
125
 
126
- describe('toSignificant', () => {
127
- describe('normal cases', () => {
128
- test('returns first significant number of digits', () => {
126
+ describe("toSignificant", () => {
127
+ describe("normal cases", () => {
128
+ test("returns first significant number of digits", () => {
129
129
  const usdLikeNumber = new SwapKitNumber(1234.5678);
130
- expect(usdLikeNumber.toSignificant(2)).toBe('1200');
131
- expect(usdLikeNumber.toSignificant(3)).toBe('1230');
132
- expect(usdLikeNumber.toSignificant(4)).toBe('1234');
133
- expect(usdLikeNumber.toSignificant(5)).toBe('1234.5');
134
- expect(usdLikeNumber.toSignificant(6)).toBe('1234.56');
135
- expect(usdLikeNumber.toSignificant(7)).toBe('1234.567');
136
- expect(usdLikeNumber.toSignificant(8)).toBe('1234.5678');
130
+ expect(usdLikeNumber.toSignificant(2)).toBe("1200");
131
+ expect(usdLikeNumber.toSignificant(3)).toBe("1230");
132
+ expect(usdLikeNumber.toSignificant(4)).toBe("1234");
133
+ expect(usdLikeNumber.toSignificant(5)).toBe("1234.5");
134
+ expect(usdLikeNumber.toSignificant(6)).toBe("1234.56");
135
+ expect(usdLikeNumber.toSignificant(7)).toBe("1234.567");
136
+ expect(usdLikeNumber.toSignificant(8)).toBe("1234.5678");
137
137
 
138
138
  const btcLikeNumber = new SwapKitNumber(0.00005678);
139
- expect(btcLikeNumber.toSignificant(2)).toBe('0.000056');
140
- expect(btcLikeNumber.toSignificant(3)).toBe('0.0000567');
141
- expect(btcLikeNumber.toSignificant(4)).toBe('0.00005678');
142
- expect(btcLikeNumber.toSignificant(5)).toBe('0.00005678');
143
- expect(btcLikeNumber.toSignificant(8)).toBe('0.00005678');
139
+ expect(btcLikeNumber.toSignificant(2)).toBe("0.000056");
140
+ expect(btcLikeNumber.toSignificant(3)).toBe("0.0000567");
141
+ expect(btcLikeNumber.toSignificant(4)).toBe("0.00005678");
142
+ expect(btcLikeNumber.toSignificant(5)).toBe("0.00005678");
143
+ expect(btcLikeNumber.toSignificant(8)).toBe("0.00005678");
144
144
  });
145
145
  });
146
146
 
147
- describe('custom decimals', () => {
148
- test('returns first significant number of digits', () => {
147
+ describe("custom decimals", () => {
148
+ test("returns first significant number of digits", () => {
149
149
  const usdLikeNumber = new SwapKitNumber({ value: 1234.5678, decimal: 2 });
150
- expect(usdLikeNumber.toSignificant(2)).toBe('1200');
151
- expect(usdLikeNumber.toSignificant(3)).toBe('1230');
152
- expect(usdLikeNumber.toSignificant(4)).toBe('1234');
153
- expect(usdLikeNumber.toSignificant(5)).toBe('1234.5');
154
- expect(usdLikeNumber.toSignificant(6)).toBe('1234.57');
155
- expect(usdLikeNumber.toSignificant(7)).toBe('1234.57');
156
- expect(usdLikeNumber.toSignificant(8)).toBe('1234.57');
150
+ expect(usdLikeNumber.toSignificant(2)).toBe("1200");
151
+ expect(usdLikeNumber.toSignificant(3)).toBe("1230");
152
+ expect(usdLikeNumber.toSignificant(4)).toBe("1234");
153
+ expect(usdLikeNumber.toSignificant(5)).toBe("1234.5");
154
+ expect(usdLikeNumber.toSignificant(6)).toBe("1234.57");
155
+ expect(usdLikeNumber.toSignificant(7)).toBe("1234.57");
156
+ expect(usdLikeNumber.toSignificant(8)).toBe("1234.57");
157
157
 
158
158
  const ethLikeNumber = new SwapKitNumber({ value: 0.00005678, decimal: 18 });
159
- expect(ethLikeNumber.toSignificant(2)).toBe('0.000056');
160
- expect(ethLikeNumber.toSignificant(3)).toBe('0.0000567');
161
- expect(ethLikeNumber.toSignificant(4)).toBe('0.00005678');
162
- expect(ethLikeNumber.toSignificant(5)).toBe('0.00005678');
163
- expect(ethLikeNumber.toSignificant(8)).toBe('0.00005678');
164
- expect(ethLikeNumber.toSignificant(18)).toBe('0.00005678');
159
+ expect(ethLikeNumber.toSignificant(2)).toBe("0.000056");
160
+ expect(ethLikeNumber.toSignificant(3)).toBe("0.0000567");
161
+ expect(ethLikeNumber.toSignificant(4)).toBe("0.00005678");
162
+ expect(ethLikeNumber.toSignificant(5)).toBe("0.00005678");
163
+ expect(ethLikeNumber.toSignificant(8)).toBe("0.00005678");
164
+ expect(ethLikeNumber.toSignificant(18)).toBe("0.00005678");
165
165
  });
166
166
  });
167
167
  });
168
168
 
169
- describe('toAbbreviation', () => {
170
- test('returns abbreviation with up to 3 integer digits', () => {
169
+ describe("toAbbreviation", () => {
170
+ test("returns abbreviation with up to 3 integer digits", () => {
171
171
  const skNumber = new SwapKitNumber(1234.5678);
172
- expect(skNumber.toAbbreviation()).toBe('1.23K');
172
+ expect(skNumber.toAbbreviation()).toBe("1.23K");
173
173
 
174
174
  const skNumber2 = new SwapKitNumber(1234567.5678);
175
- expect(skNumber2.toAbbreviation()).toBe('1.23M');
175
+ expect(skNumber2.toAbbreviation()).toBe("1.23M");
176
176
 
177
177
  const skNumber3 = new SwapKitNumber(1234567890.5678);
178
- expect(skNumber3.toAbbreviation()).toBe('1.23B');
178
+ expect(skNumber3.toAbbreviation()).toBe("1.23B");
179
179
 
180
- const skNumber4 = new SwapKitNumber(1234567890123.5678);
181
- expect(skNumber4.toAbbreviation()).toBe('1.23T');
180
+ const skNumber4 = new SwapKitNumber("1234567890123.5678");
181
+ expect(skNumber4.toAbbreviation()).toBe("1.23T");
182
182
 
183
- const skNumber5 = new SwapKitNumber(1234567890123456.5678);
184
- expect(skNumber5.toAbbreviation()).toBe('1.23Q');
183
+ const skNumber5 = new SwapKitNumber("1234567890123456.5678");
184
+ expect(skNumber5.toAbbreviation()).toBe("1.23Q");
185
185
 
186
- const skNumber6 = new SwapKitNumber(1234567890123456789.5678);
187
- expect(skNumber6.toAbbreviation()).toBe('1.23Qi');
186
+ const skNumber6 = new SwapKitNumber("1234567890123456789.5678");
187
+ expect(skNumber6.toAbbreviation()).toBe("1.23Qi");
188
188
 
189
- const skNumber7 = new SwapKitNumber(1234567890123456789012.5678);
190
- expect(skNumber7.toAbbreviation()).toBe('1.23S');
189
+ const skNumber7 = new SwapKitNumber("1234567890123456789012.5678");
190
+ expect(skNumber7.toAbbreviation()).toBe("1.23S");
191
191
 
192
192
  const skNumber8 = new SwapKitNumber(1234.5678);
193
- expect(skNumber8.toAbbreviation(0)).toBe('1K');
193
+ expect(skNumber8.toAbbreviation(0)).toBe("1K");
194
194
 
195
195
  const skNumber9 = new SwapKitNumber(1234.5678);
196
- expect(skNumber9.toAbbreviation(1)).toBe('1.2K');
196
+ expect(skNumber9.toAbbreviation(1)).toBe("1.2K");
197
197
 
198
198
  const skNumber10 = new SwapKitNumber(123456.78);
199
- expect(skNumber10.toAbbreviation()).toBe('123.46K');
199
+ expect(skNumber10.toAbbreviation()).toBe("123.46K");
200
200
  });
201
201
  });
202
202
 
203
- describe('toCurrency', () => {
204
- test('returns abbreviation with up to 3 integer digits', () => {
203
+ describe("toCurrency", () => {
204
+ test("returns abbreviation with up to 3 integer digits", () => {
205
205
  const skNumber = new SwapKitNumber(1234.5678);
206
- expect(skNumber.toCurrency()).toBe('$1,234.56');
206
+ expect(skNumber.toCurrency()).toBe("$1,234.56");
207
207
  expect(
208
- skNumber.toCurrency('', {
209
- decimalSeparator: ',',
210
- thousandSeparator: ' ',
211
- currencyPosition: 'end',
208
+ skNumber.toCurrency("", {
209
+ decimalSeparator: ",",
210
+ thousandSeparator: " ",
211
+ currencyPosition: "end",
212
212
  }),
213
- ).toBe('1 234,56€');
213
+ ).toBe("1 234,56€");
214
214
 
215
215
  const skNumber2 = new SwapKitNumber(0.5678);
216
- expect(skNumber2.toCurrency()).toBe('$0.5678');
216
+ expect(skNumber2.toCurrency()).toBe("$0.5678");
217
217
  expect(
218
- skNumber2.toCurrency('', {
219
- decimalSeparator: ',',
220
- currencyPosition: 'end',
218
+ skNumber2.toCurrency("", {
219
+ decimalSeparator: ",",
220
+ currencyPosition: "end",
221
221
  }),
222
- ).toBe('0,5678€');
222
+ ).toBe("0,5678€");
223
223
 
224
224
  const skNumber3 = new SwapKitNumber(0.00005678);
225
- expect(skNumber3.toCurrency()).toBe('$0.000057');
225
+ expect(skNumber3.toCurrency()).toBe("$0.000057");
226
226
  expect(
227
- skNumber3.toCurrency('', {
228
- decimalSeparator: ',',
229
- thousandSeparator: ' ',
230
- currencyPosition: 'end',
227
+ skNumber3.toCurrency("", {
228
+ decimalSeparator: ",",
229
+ thousandSeparator: " ",
230
+ currencyPosition: "end",
231
231
  }),
232
- ).toBe('0,000057€');
232
+ ).toBe("0,000057€");
233
233
 
234
234
  const skNumber4 = new SwapKitNumber(12345);
235
- expect(skNumber4.toCurrency()).toBe('$12,345');
235
+ expect(skNumber4.toCurrency()).toBe("$12,345");
236
236
  });
237
237
  });
238
238
 
239
- describe('add', () => {
240
- test('adds same type numbers correctly', () => {
239
+ describe("add", () => {
240
+ test("adds same type numbers correctly", () => {
241
241
  const skNumber1 = new SwapKitNumber(10);
242
- const skNumber2 = new SwapKitNumber('5');
243
- const skNumber3 = new SwapKitNumber('0.5');
242
+ const skNumber2 = new SwapKitNumber("5");
243
+ const skNumber3 = new SwapKitNumber("0.5");
244
244
  const result = skNumber1.add(skNumber2, skNumber3);
245
245
 
246
- expect(result.getValue('string')).toBe('15.5');
247
- expect(result.getBaseValue('bigint')).toBe(1550000000n);
246
+ expect(result.getValue("string")).toBe("15.5");
247
+ expect(result.getBaseValue("bigint")).toBe(1550000000n);
248
248
  });
249
249
 
250
- test('adds different type numbers correctly', () => {
250
+ test("adds different type numbers correctly", () => {
251
251
  const skNumber1 = new SwapKitNumber(10);
252
- const result = skNumber1.add(6, '0.5');
252
+ const result = skNumber1.add(6, "0.5");
253
253
 
254
- expect(result.getValue('string')).toBe('16.5');
255
- expect(result.getBaseValue('bigint')).toBe(1650000000n);
254
+ expect(result.getValue("string")).toBe("16.5");
255
+ expect(result.getBaseValue("bigint")).toBe(1650000000n);
256
256
  });
257
257
 
258
- test('adds large decimal numbers correctly', () => {
258
+ test("adds large decimal numbers correctly", () => {
259
259
  const skNumber1 = new SwapKitNumber(0.0000000001);
260
- const result = skNumber1.add(6.000000000001, '0.0000000000000005');
261
- expect(result.getValue('string')).toBe('6.0000000001010005');
262
- expect(result.getBaseValue('bigint')).toBe(600000000n);
260
+ const result = skNumber1.add(6.000000000001, "0.0000000000000005");
261
+ expect(result.getValue("string")).toBe("6.0000000001010005");
262
+ expect(result.getBaseValue("bigint")).toBe(600000000n);
263
263
  });
264
264
  });
265
265
 
266
- describe('sub', () => {
267
- test('subtracts same type numbers correctly', () => {
266
+ describe("sub", () => {
267
+ test("subtracts same type numbers correctly", () => {
268
268
  const skNumber1 = new SwapKitNumber(10);
269
- const skNumber2 = new SwapKitNumber('5');
269
+ const skNumber2 = new SwapKitNumber("5");
270
270
  const skNumber3 = new SwapKitNumber(0.5);
271
271
  const result = skNumber1.sub(skNumber2, skNumber3);
272
272
 
273
- expect(result.getValue('string')).toBe('4.5');
274
- expect(result.getBaseValue('bigint')).toBe(450000000n);
273
+ expect(result.getValue("string")).toBe("4.5");
274
+ expect(result.getBaseValue("bigint")).toBe(450000000n);
275
275
  });
276
276
 
277
- test('subtracts different type numbers correctly', () => {
277
+ test("subtracts different type numbers correctly", () => {
278
278
  const skNumber1 = new SwapKitNumber(10);
279
- const result = skNumber1.sub(6, '0.5');
279
+ const result = skNumber1.sub(6, "0.5");
280
280
 
281
- expect(result.getValue('string')).toBe('3.5');
282
- expect(result.getBaseValue('bigint')).toBe(350000000n);
281
+ expect(result.getValue("string")).toBe("3.5");
282
+ expect(result.getBaseValue("bigint")).toBe(350000000n);
283
283
  });
284
284
 
285
- test('can process negative results', () => {
285
+ test("can process negative results", () => {
286
286
  const skNumber1 = new SwapKitNumber(10);
287
287
  const result0 = skNumber1.sub(10);
288
- const resultMinus = result0.sub('10');
288
+ const resultMinus = result0.sub("10");
289
289
 
290
- expect(result0.getValue('string')).toBe('0');
291
- expect(resultMinus.getValue('string')).toBe('-10');
292
- expect(result0.getBaseValue('bigint')).toBe(0n);
293
- expect(resultMinus.getBaseValue('bigint')).toBe(-1000000000n);
290
+ expect(result0.getValue("string")).toBe("0");
291
+ expect(resultMinus.getValue("string")).toBe("-10");
292
+ expect(result0.getBaseValue("bigint")).toBe(0n);
293
+ expect(resultMinus.getBaseValue("bigint")).toBe(-1000000000n);
294
294
  });
295
295
  });
296
296
 
297
- describe('mul', () => {
298
- test('multiplies same type numbers correctly', () => {
297
+ describe("mul", () => {
298
+ test("multiplies same type numbers correctly", () => {
299
299
  const skNumber1 = new SwapKitNumber(10);
300
- const skNumber2 = new SwapKitNumber('5');
300
+ const skNumber2 = new SwapKitNumber("5");
301
301
  const skNumber3 = new SwapKitNumber(0.5);
302
302
  const result = skNumber1.mul(skNumber2, skNumber3);
303
303
 
304
- expect(result.getValue('string')).toBe('25');
305
- expect(result.getBaseValue('bigint')).toBe(2500000000n);
304
+ expect(result.getValue("string")).toBe("25");
305
+ expect(result.getBaseValue("bigint")).toBe(2500000000n);
306
306
  });
307
307
 
308
- test('multiplies different type numbers correctly', () => {
308
+ test("multiplies different type numbers correctly", () => {
309
309
  const skNumber1 = new SwapKitNumber(10);
310
- const result = skNumber1.mul(6, '0.5');
310
+ const result = skNumber1.mul(6, "0.5");
311
311
 
312
- expect(result.getValue('string')).toBe('30');
313
- expect(result.getBaseValue('bigint')).toBe(3000000000n);
312
+ expect(result.getValue("string")).toBe("30");
313
+ expect(result.getBaseValue("bigint")).toBe(3000000000n);
314
314
  });
315
315
 
316
- test('multiplies numbers correctly if decimals of SKN is lower than number multiplied with', () => {
316
+ test("multiplies numbers correctly if decimals of SKN is lower than number multiplied with", () => {
317
317
  const skNumber1 = new SwapKitNumber({ value: 1000000, decimal: 4 });
318
- const result = skNumber1.mul('0.00001');
318
+ const result = skNumber1.mul("0.00001");
319
319
 
320
- expect(result.getValue('string')).toBe('10');
321
- expect(result.getBaseValue('bigint')).toBe(100000n);
320
+ expect(result.getValue("string")).toBe("10");
321
+ expect(result.getBaseValue("bigint")).toBe(100000n);
322
322
  });
323
323
 
324
- test('should correctly round the result of multiplication', () => {
324
+ test("should correctly round the result of multiplication", () => {
325
325
  const skNumber1 = new SwapKitNumber({ decimal: 3, value: 1.23 });
326
326
  const skNumber2 = new SwapKitNumber({ decimal: 4, value: 4.56 });
327
327
 
328
328
  const result = skNumber1.mul(skNumber2);
329
329
 
330
330
  // The exact result of 1.23 * 4.56 is 5.6088
331
- expect(result.getValue('string')).toBe('5.609');
332
- expect(result.getBaseValue('bigint')).toBe(5608n);
331
+ expect(result.getValue("string")).toBe("5.609");
332
+ expect(result.getBaseValue("bigint")).toBe(5608n);
333
333
 
334
334
  const skNumber3 = new SwapKitNumber({ decimal: 2, value: 1.23 });
335
335
  const skNumber4 = new SwapKitNumber(-1.234567891);
@@ -338,119 +338,119 @@ describe('SwapKitNumber', () => {
338
338
 
339
339
  // The exact result of 1.23 * -1.234567891 is -1,518518505
340
340
  // If we round it to 2 decimal places, we should get 5.61
341
- expect(result2.getValue('string')).toBe('-1.52');
342
- expect(result2.getBaseValue('bigint')).toBe(-151n);
341
+ expect(result2.getValue("string")).toBe("-1.52");
342
+ expect(result2.getBaseValue("bigint")).toBe(-151n);
343
343
  });
344
344
  });
345
345
 
346
- describe('div', () => {
347
- test('divides same type numbers correctly', () => {
346
+ describe("div", () => {
347
+ test("divides same type numbers correctly", () => {
348
348
  const skNumber1 = new SwapKitNumber(10);
349
- const skNumber2 = new SwapKitNumber('5');
349
+ const skNumber2 = new SwapKitNumber("5");
350
350
  const skNumber3 = new SwapKitNumber(0.5);
351
351
  const result = skNumber1.div(skNumber2, skNumber3);
352
352
 
353
- expect(result.getValue('string')).toBe('4');
354
- expect(result.getBaseValue('bigint')).toBe(400000000n);
353
+ expect(result.getValue("string")).toBe("4");
354
+ expect(result.getBaseValue("bigint")).toBe(400000000n);
355
355
 
356
356
  const skNumber4 = new SwapKitNumber(10.12);
357
357
  const result2 = skNumber4.div(0.0001);
358
358
 
359
- expect(result2.getValue('string')).toBe('101200');
360
- expect(result2.getBaseValue('bigint')).toBe(10120000000000n);
359
+ expect(result2.getValue("string")).toBe("101200");
360
+ expect(result2.getBaseValue("bigint")).toBe(10120000000000n);
361
361
  });
362
362
 
363
- test('divides different type numbers correctly', () => {
363
+ test("divides different type numbers correctly", () => {
364
364
  const skNumber1 = new SwapKitNumber(20);
365
- const result = skNumber1.div(5, '0.5');
365
+ const result = skNumber1.div(5, "0.5");
366
366
 
367
- expect(result.getValue('string')).toBe('8');
368
- expect(result.getBaseValue('bigint')).toBe(800000000n);
367
+ expect(result.getValue("string")).toBe("8");
368
+ expect(result.getBaseValue("bigint")).toBe(800000000n);
369
369
  });
370
370
 
371
- test('divides different type numbers correctly when decimal is set', () => {
372
- const skNumber1 = new SwapKitNumber({ value: '1.2', decimal: 2 });
371
+ test("divides different type numbers correctly when decimal is set", () => {
372
+ const skNumber1 = new SwapKitNumber({ value: "1.2", decimal: 2 });
373
373
  const result = skNumber1.div(0.001);
374
374
 
375
- expect(result.getValue('string')).toBe('1200');
376
- expect(result.getBaseValue('bigint')).toBe(120000n);
375
+ expect(result.getValue("string")).toBe("1200");
376
+ expect(result.getBaseValue("bigint")).toBe(120000n);
377
377
  });
378
378
 
379
- test('divides smaller number by larger number', () => {
379
+ test("divides smaller number by larger number", () => {
380
380
  const skNumber1 = new SwapKitNumber(1);
381
381
  const result = skNumber1.div(2);
382
382
 
383
- expect(result.getValue('string')).toBe('0.5');
384
- expect(result.getBaseValue('bigint')).toBe(50000000n);
383
+ expect(result.getValue("string")).toBe("0.5");
384
+ expect(result.getBaseValue("bigint")).toBe(50000000n);
385
385
  });
386
386
 
387
- test('divides a number with 18 decimals by a negative number with less decimals', () => {
388
- const skNumber1 = new SwapKitNumber({ value: '1.000000000000000010', decimal: 18 });
389
- const skNumber2 = new SwapKitNumber({ value: '-2', decimal: 1 });
387
+ test("divides a number with 18 decimals by a negative number with less decimals", () => {
388
+ const skNumber1 = new SwapKitNumber({ value: "1.000000000000000010", decimal: 18 });
389
+ const skNumber2 = new SwapKitNumber({ value: "-2", decimal: 1 });
390
390
 
391
391
  const result = skNumber1.div(skNumber2);
392
392
 
393
393
  // The exact result of 1.000000000000000010 / -2 is -0.500000000000000005
394
- expect(result.getValue('string')).toBe('-0.500000000000000005');
395
- expect(result.getBaseValue('bigint')).toBe(-500000000000000005n);
394
+ expect(result.getValue("string")).toBe("-0.500000000000000005");
395
+ expect(result.getBaseValue("bigint")).toBe(-500000000000000005n);
396
396
  });
397
397
 
398
- test('divides a number with 2 decimals by a negative number with more decimals', () => {
399
- const skNumber1 = new SwapKitNumber({ value: '2', decimal: 2 });
400
- const skNumber2 = new SwapKitNumber({ value: '-0.000005', decimal: 18 });
398
+ test("divides a number with 2 decimals by a negative number with more decimals", () => {
399
+ const skNumber1 = new SwapKitNumber({ value: "2", decimal: 2 });
400
+ const skNumber2 = new SwapKitNumber({ value: "-0.000005", decimal: 18 });
401
401
 
402
402
  const result = skNumber1.div(skNumber2);
403
403
 
404
404
  // The exact result of 2 / -0.000005 is -400000
405
- expect(result.getValue('string')).toBe('-400000');
406
- expect(result.getBaseValue('bigint')).toBe(-40000000n);
405
+ expect(result.getValue("string")).toBe("-400000");
406
+ expect(result.getBaseValue("bigint")).toBe(-40000000n);
407
407
  });
408
408
  });
409
409
 
410
- describe('shitcoin cases', () => {
411
- test('multiply huge numbers', () => {
410
+ describe("shitcoin cases", () => {
411
+ test("multiply huge numbers", () => {
412
412
  const skNumber1 = new SwapKitNumber({ value: 1_000_000_000_000_001, decimal: 18 });
413
413
  const skNumber2 = new SwapKitNumber({ value: 987_654_321_000, decimal: 18 });
414
414
 
415
415
  const result = skNumber1.mul(skNumber2);
416
- expect(result.getValue('string')).toBe('987654321000000987654321000');
417
- expect(result.getBaseValue('bigint')).toBe(987654321000000987654321000000000000000000000n);
416
+ expect(result.getValue("string")).toBe("987654321000000987654321000");
417
+ expect(result.getBaseValue("bigint")).toBe(987654321000000987654321000000000000000000000n);
418
418
  });
419
419
 
420
- test('divide huge numbers', () => {
420
+ test("divide huge numbers", () => {
421
421
  const skNumber1 = new SwapKitNumber({ value: 1_000_000_000_000_001, decimal: 18 });
422
422
  const skNumber2 = new SwapKitNumber({ value: 987_654_321_000, decimal: 18 });
423
423
 
424
424
  const result = skNumber1.div(skNumber2);
425
- expect(result.getValue('string')).toBe('1012.4999999873447625');
426
- expect(result.getBaseValue('bigint')).toBe(1012499999987344762500n);
425
+ expect(result.getValue("string")).toBe("1012.4999999873447625");
426
+ expect(result.getBaseValue("bigint")).toBe(1012499999987344762500n);
427
427
  });
428
428
  });
429
429
 
430
- describe('extending multiplier without loosing precision', () => {
431
- test('edge case 1', () => {
430
+ describe("extending multiplier without loosing precision", () => {
431
+ test("edge case 1", () => {
432
432
  const asset1 = new SwapKitNumber({ value: 41.90963702, decimal: 8 });
433
433
  const multiplier = 5.337952274462478;
434
434
  const divider = 105.2562773915526;
435
435
  const result = asset1.mul(multiplier).div(divider);
436
436
 
437
- expect(result.getValue('string')).toBe('2.12539953');
437
+ expect(result.getValue("string")).toBe("2.12539953");
438
438
  });
439
439
 
440
- test('edge case 2', () => {
441
- const asset1 = new SwapKitNumber('41.90963702');
442
- const multiplier = new SwapKitNumber('5.337952274462478');
443
- const divider = new SwapKitNumber('105.2562773915526');
440
+ test("edge case 2", () => {
441
+ const asset1 = new SwapKitNumber("41.90963702");
442
+ const multiplier = new SwapKitNumber("5.337952274462478");
443
+ const divider = new SwapKitNumber("105.2562773915526");
444
444
  const result = asset1.mul(multiplier).div(divider);
445
445
 
446
- expect(result.getValue('string')).toBe('2.125399527674726');
446
+ expect(result.getValue("string")).toBe("2.125399527674726");
447
447
  });
448
448
  });
449
449
 
450
- describe('gt', () => {
451
- test('greater than', () => {
450
+ describe("gt", () => {
451
+ test("greater than", () => {
452
452
  const skNumber1 = new SwapKitNumber(10);
453
- const skNumber2 = new SwapKitNumber('5');
453
+ const skNumber2 = new SwapKitNumber("5");
454
454
 
455
455
  expect(skNumber1.gt(skNumber2)).toBe(true);
456
456
  expect(skNumber2.gt(skNumber1)).toBe(false);
@@ -458,17 +458,17 @@ describe('SwapKitNumber', () => {
458
458
 
459
459
  test("different decimals doesn't affect comparison", () => {
460
460
  const skNumber1 = new SwapKitNumber({ value: 10, decimal: 18 });
461
- const skNumber2 = new SwapKitNumber({ value: '50', decimal: 8 });
461
+ const skNumber2 = new SwapKitNumber({ value: "50", decimal: 8 });
462
462
 
463
463
  expect(skNumber1.lt(skNumber2)).toBe(true);
464
464
  expect(skNumber2.gt(skNumber1)).toBe(true);
465
465
  });
466
466
  });
467
467
 
468
- describe('gte', () => {
469
- test('greater than or equal', () => {
468
+ describe("gte", () => {
469
+ test("greater than or equal", () => {
470
470
  const skNumber1 = new SwapKitNumber(10);
471
- const skNumber2 = new SwapKitNumber('5');
471
+ const skNumber2 = new SwapKitNumber("5");
472
472
 
473
473
  expect(skNumber1.gte(skNumber2)).toBe(true);
474
474
  expect(skNumber1.gte(skNumber1)).toBe(true);
@@ -476,20 +476,20 @@ describe('SwapKitNumber', () => {
476
476
  });
477
477
  });
478
478
 
479
- describe('lt', () => {
480
- test('less than', () => {
479
+ describe("lt", () => {
480
+ test("less than", () => {
481
481
  const skNumber1 = new SwapKitNumber(10);
482
- const skNumber2 = new SwapKitNumber('5');
482
+ const skNumber2 = new SwapKitNumber("5");
483
483
 
484
484
  expect(skNumber1.lt(skNumber2)).toBe(false);
485
485
  expect(skNumber2.lt(skNumber1)).toBe(true);
486
486
  });
487
487
  });
488
488
 
489
- describe('lte', () => {
490
- test('less than or equal', () => {
489
+ describe("lte", () => {
490
+ test("less than or equal", () => {
491
491
  const skNumber1 = new SwapKitNumber(10);
492
- const skNumber2 = new SwapKitNumber('5');
492
+ const skNumber2 = new SwapKitNumber("5");
493
493
 
494
494
  expect(skNumber1.lte(skNumber2)).toBe(false);
495
495
  expect(skNumber1.lte(skNumber1)).toBe(true);
@@ -497,10 +497,10 @@ describe('SwapKitNumber', () => {
497
497
  });
498
498
  });
499
499
 
500
- describe('eq', () => {
501
- test('equal', () => {
500
+ describe("eq", () => {
501
+ test("equal", () => {
502
502
  const skNumber1 = new SwapKitNumber(10);
503
- const skNumber2 = new SwapKitNumber('5');
503
+ const skNumber2 = new SwapKitNumber("5");
504
504
 
505
505
  expect(skNumber1.eq(skNumber2)).toBe(false);
506
506
  expect(skNumber1.eq(skNumber1)).toBe(true);
@@ -508,10 +508,10 @@ describe('SwapKitNumber', () => {
508
508
  });
509
509
  });
510
510
 
511
- describe('comparison edge cases with decimals', () => {
512
- test('compare on cut decimals', () => {
511
+ describe("comparison edge cases with decimals", () => {
512
+ test("compare on cut decimals", () => {
513
513
  const skNumber1 = new SwapKitNumber({ value: 0.001, decimal: 3 });
514
- const value = '0.0019';
514
+ const value = "0.0019";
515
515
 
516
516
  expect(skNumber1.lt(value)).toBe(true);
517
517
  expect(skNumber1.gt(value)).toBe(false);
@@ -521,10 +521,10 @@ describe('SwapKitNumber', () => {
521
521
  });
522
522
  });
523
523
 
524
- describe('Throws', () => {
525
- test('throws if division by zero', () => {
524
+ describe("Throws", () => {
525
+ test("throws if division by zero", () => {
526
526
  const skNumber1 = new SwapKitNumber(10);
527
- const skNumber2 = new SwapKitNumber('0');
527
+ const skNumber2 = new SwapKitNumber("0");
528
528
 
529
529
  expect(() => skNumber1.div(skNumber2)).toThrow(RangeError);
530
530
  expect(() => skNumber1.div(0)).toThrow(RangeError);