@pioneer-platform/helpers 4.0.13 → 4.1.1
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.
- package/CHANGELOG.md +20 -0
- package/package.json +13 -10
- package/src/helpers/asset.ts +0 -5
- package/tsconfig.json +1 -1
- package/LICENSE +0 -674
- package/lib/helpers/asset.d.ts +0 -36
- package/lib/helpers/asset.js +0 -270
- package/lib/helpers/liquidity.d.ts +0 -58
- package/lib/helpers/liquidity.js +0 -112
- package/lib/helpers/memo.d.ts +0 -46
- package/lib/helpers/memo.js +0 -46
- package/lib/helpers/others.d.ts +0 -3
- package/lib/helpers/others.js +0 -24
- package/lib/helpers/request.d.ts +0 -5
- package/lib/helpers/request.js +0 -117
- package/lib/helpers/validators.d.ts +0 -1
- package/lib/helpers/validators.js +0 -17
- package/lib/index.d.ts +0 -15
- package/lib/index.js +0 -31
- package/lib/modules/__tests__/assetValue.test.d.ts +0 -1
- package/lib/modules/__tests__/assetValue.test.js +0 -399
- package/lib/modules/__tests__/swapKitNumber.test.d.ts +0 -1
- package/lib/modules/__tests__/swapKitNumber.test.js +0 -425
- package/lib/modules/assetValue.d.ts +0 -58
- package/lib/modules/assetValue.js +0 -442
- package/lib/modules/bigIntArithmetics.d.ts +0 -54
- package/lib/modules/bigIntArithmetics.js +0 -643
- package/lib/modules/swapKitError.d.ts +0 -64
- package/lib/modules/swapKitError.js +0 -90
- package/lib/modules/swapKitNumber.d.ts +0 -6
- package/lib/modules/swapKitNumber.js +0 -37
@@ -1,425 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
var vitest_1 = require("vitest");
|
4
|
-
var swapKitNumber_ts_1 = require("../swapKitNumber.ts");
|
5
|
-
(0, vitest_1.describe)('SwapKitNumber', function () {
|
6
|
-
(0, vitest_1.describe)('constructors', function () {
|
7
|
-
(0, vitest_1.test)('creates numbers correctly', function () {
|
8
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(1);
|
9
|
-
(0, vitest_1.expect)(skNumber1.getValue('string')).toBe('1');
|
10
|
-
(0, vitest_1.expect)(skNumber1.getValue('number')).toBe(1);
|
11
|
-
(0, vitest_1.expect)(skNumber1.getBaseValue('bigint')).toBe(100000000n);
|
12
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('1');
|
13
|
-
(0, vitest_1.expect)(skNumber2.getValue('string')).toBe('1');
|
14
|
-
(0, vitest_1.expect)(skNumber2.getBaseValue('bigint')).toBe(100000000n);
|
15
|
-
/**
|
16
|
-
* because by default we have 8 decimals - it will be rounded to 0 on base value
|
17
|
-
*/
|
18
|
-
var skNumber3 = new swapKitNumber_ts_1.SwapKitNumber('0.0000000001');
|
19
|
-
(0, vitest_1.expect)(skNumber3.getValue('string')).toBe('0.0000000001');
|
20
|
-
(0, vitest_1.expect)(skNumber3.getBaseValue('bigint')).toBe(0n);
|
21
|
-
var skNumber4 = new swapKitNumber_ts_1.SwapKitNumber({ value: '0.0000000001', decimal: 10 });
|
22
|
-
(0, vitest_1.expect)(skNumber4.getValue('string')).toBe('0.0000000001');
|
23
|
-
(0, vitest_1.expect)(skNumber4.getBaseValue('bigint')).toBe(1n);
|
24
|
-
var skNumber5 = new swapKitNumber_ts_1.SwapKitNumber({ value: 0.1005, decimal: 3 });
|
25
|
-
(0, vitest_1.expect)(skNumber5.getValue('string')).toBe('0.101');
|
26
|
-
(0, vitest_1.expect)(skNumber5.getBaseValue('bigint')).toBe(100n);
|
27
|
-
var skNumber6 = new swapKitNumber_ts_1.SwapKitNumber({ value: -0.1005, decimal: 3 });
|
28
|
-
(0, vitest_1.expect)(skNumber6.getValue('string')).toBe('-0.101');
|
29
|
-
(0, vitest_1.expect)(skNumber6.getBaseValue('bigint')).toBe(-100n);
|
30
|
-
(0, vitest_1.expect)(skNumber6.decimal).toBe(3);
|
31
|
-
(0, vitest_1.expect)(skNumber6.getValue('number')).toBe(-0.101);
|
32
|
-
(0, vitest_1.expect)(skNumber6.decimalMultiplier).toBe(100000000n);
|
33
|
-
});
|
34
|
-
(0, vitest_1.test)('creates SwapKitInstance from BigInt: (12.345678901234, decimals: 12)', function () {
|
35
|
-
var skNumber = swapKitNumber_ts_1.SwapKitNumber.fromBigInt(12345678901234n, 12);
|
36
|
-
(0, vitest_1.expect)(skNumber.getValue('string')).toBe('12.345678901234');
|
37
|
-
(0, vitest_1.expect)(skNumber.getBaseValue('bigint')).toBe(12345678901234n);
|
38
|
-
});
|
39
|
-
});
|
40
|
-
(0, vitest_1.describe)('shiftDecimals', function () {
|
41
|
-
(0, vitest_1.test)('shifts up and bumps number', function () {
|
42
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber(1);
|
43
|
-
(0, vitest_1.expect)(skNumber.getValue('string')).toBe('1');
|
44
|
-
(0, vitest_1.expect)(skNumber.getBaseValue('bigint')).toBe(100000000n);
|
45
|
-
var shiftedSkNumber = swapKitNumber_ts_1.SwapKitNumber.shiftDecimals({
|
46
|
-
value: skNumber,
|
47
|
-
from: 8,
|
48
|
-
to: 6,
|
49
|
-
});
|
50
|
-
(0, vitest_1.expect)(shiftedSkNumber.getValue('string')).toBe('1');
|
51
|
-
(0, vitest_1.expect)(shiftedSkNumber.getBaseValue('bigint')).toBe(1000000n);
|
52
|
-
});
|
53
|
-
(0, vitest_1.test)('shifts down and rounds down number', function () {
|
54
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber(2.12345678);
|
55
|
-
(0, vitest_1.expect)(skNumber.getValue('string')).toBe('2.12345678');
|
56
|
-
(0, vitest_1.expect)(skNumber.getBaseValue('bigint')).toBe(212345678n);
|
57
|
-
var shiftedSkNumber = swapKitNumber_ts_1.SwapKitNumber.shiftDecimals({
|
58
|
-
value: skNumber,
|
59
|
-
from: 8,
|
60
|
-
to: 6,
|
61
|
-
});
|
62
|
-
(0, vitest_1.expect)(shiftedSkNumber.getValue('string')).toBe('2.123456');
|
63
|
-
(0, vitest_1.expect)(shiftedSkNumber.getBaseValue('bigint')).toBe(2123456n);
|
64
|
-
});
|
65
|
-
(0, vitest_1.test)('shift eth from 18 to 8', function () {
|
66
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber({ value: '0.2', decimal: 18 });
|
67
|
-
var shiftedSkNumber = swapKitNumber_ts_1.SwapKitNumber.shiftDecimals({
|
68
|
-
value: skNumber,
|
69
|
-
from: 18,
|
70
|
-
to: 8,
|
71
|
-
});
|
72
|
-
(0, vitest_1.expect)(shiftedSkNumber.getValue('string')).toBe('0.2');
|
73
|
-
(0, vitest_1.expect)(shiftedSkNumber.getBaseValue('bigint')).toBe(20000000n);
|
74
|
-
});
|
75
|
-
});
|
76
|
-
(0, vitest_1.describe)('getValue', function () {
|
77
|
-
(0, vitest_1.describe)('string', function () {
|
78
|
-
(0, vitest_1.test)('returns string value', function () {
|
79
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber(1);
|
80
|
-
(0, vitest_1.expect)(skNumber.getValue('string')).toBe('1');
|
81
|
-
});
|
82
|
-
(0, vitest_1.test)('returns string value with decimals', function () {
|
83
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber(0.01);
|
84
|
-
(0, vitest_1.expect)(skNumber.getValue('string')).toBe('0.01');
|
85
|
-
});
|
86
|
-
});
|
87
|
-
(0, vitest_1.describe)('number', function () {
|
88
|
-
(0, vitest_1.test)('returns number value', function () {
|
89
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber(1);
|
90
|
-
(0, vitest_1.expect)(skNumber.getValue('number')).toBe(1);
|
91
|
-
});
|
92
|
-
(0, vitest_1.test)('returns number value with decimals', function () {
|
93
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber(0.01);
|
94
|
-
(0, vitest_1.expect)(skNumber.getValue('number')).toBe(0.01);
|
95
|
-
});
|
96
|
-
});
|
97
|
-
(0, vitest_1.describe)('bigint', function () {
|
98
|
-
(0, vitest_1.test)('returns bigint value', function () {
|
99
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber(1);
|
100
|
-
(0, vitest_1.expect)(skNumber.getBaseValue('bigint')).toBe(100000000n);
|
101
|
-
});
|
102
|
-
});
|
103
|
-
});
|
104
|
-
(0, vitest_1.describe)('toSignificant', function () {
|
105
|
-
(0, vitest_1.describe)('normal cases', function () {
|
106
|
-
(0, vitest_1.test)('returns first significant number of digits', function () {
|
107
|
-
var usdLikeNumber = new swapKitNumber_ts_1.SwapKitNumber(1234.5678);
|
108
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(2)).toBe('1200');
|
109
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(3)).toBe('1230');
|
110
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(4)).toBe('1234');
|
111
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(5)).toBe('1234.5');
|
112
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(6)).toBe('1234.56');
|
113
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(7)).toBe('1234.567');
|
114
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(8)).toBe('1234.5678');
|
115
|
-
var btcLikeNumber = new swapKitNumber_ts_1.SwapKitNumber(0.00005678);
|
116
|
-
(0, vitest_1.expect)(btcLikeNumber.toSignificant(2)).toBe('0.000056');
|
117
|
-
(0, vitest_1.expect)(btcLikeNumber.toSignificant(3)).toBe('0.0000567');
|
118
|
-
(0, vitest_1.expect)(btcLikeNumber.toSignificant(4)).toBe('0.00005678');
|
119
|
-
(0, vitest_1.expect)(btcLikeNumber.toSignificant(5)).toBe('0.00005678');
|
120
|
-
(0, vitest_1.expect)(btcLikeNumber.toSignificant(8)).toBe('0.00005678');
|
121
|
-
});
|
122
|
-
});
|
123
|
-
(0, vitest_1.describe)('custom decimals', function () {
|
124
|
-
(0, vitest_1.test)('returns first significant number of digits', function () {
|
125
|
-
var usdLikeNumber = new swapKitNumber_ts_1.SwapKitNumber({ value: 1234.5678, decimal: 2 });
|
126
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(2)).toBe('1200');
|
127
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(3)).toBe('1230');
|
128
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(4)).toBe('1234');
|
129
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(5)).toBe('1234.5');
|
130
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(6)).toBe('1234.57');
|
131
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(7)).toBe('1234.57');
|
132
|
-
(0, vitest_1.expect)(usdLikeNumber.toSignificant(8)).toBe('1234.57');
|
133
|
-
var ethLikeNumber = new swapKitNumber_ts_1.SwapKitNumber({ value: 0.00005678, decimal: 18 });
|
134
|
-
(0, vitest_1.expect)(ethLikeNumber.toSignificant(2)).toBe('0.000056');
|
135
|
-
(0, vitest_1.expect)(ethLikeNumber.toSignificant(3)).toBe('0.0000567');
|
136
|
-
(0, vitest_1.expect)(ethLikeNumber.toSignificant(4)).toBe('0.00005678');
|
137
|
-
(0, vitest_1.expect)(ethLikeNumber.toSignificant(5)).toBe('0.00005678');
|
138
|
-
(0, vitest_1.expect)(ethLikeNumber.toSignificant(8)).toBe('0.00005678');
|
139
|
-
(0, vitest_1.expect)(ethLikeNumber.toSignificant(18)).toBe('0.00005678');
|
140
|
-
});
|
141
|
-
});
|
142
|
-
});
|
143
|
-
(0, vitest_1.describe)('toAbbreviation', function () {
|
144
|
-
(0, vitest_1.test)('returns abbreviation with up to 3 integer digits', function () {
|
145
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber(1234.5678);
|
146
|
-
(0, vitest_1.expect)(skNumber.toAbbreviation()).toBe('1.23K');
|
147
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber(1234567.5678);
|
148
|
-
(0, vitest_1.expect)(skNumber2.toAbbreviation()).toBe('1.23M');
|
149
|
-
var skNumber3 = new swapKitNumber_ts_1.SwapKitNumber(1234567890.5678);
|
150
|
-
(0, vitest_1.expect)(skNumber3.toAbbreviation()).toBe('1.23B');
|
151
|
-
var skNumber4 = new swapKitNumber_ts_1.SwapKitNumber(1234567890123.5678);
|
152
|
-
(0, vitest_1.expect)(skNumber4.toAbbreviation()).toBe('1.23T');
|
153
|
-
var skNumber5 = new swapKitNumber_ts_1.SwapKitNumber(1234567890123456.5678);
|
154
|
-
(0, vitest_1.expect)(skNumber5.toAbbreviation()).toBe('1.23Q');
|
155
|
-
var skNumber6 = new swapKitNumber_ts_1.SwapKitNumber(1234567890123456789.5678);
|
156
|
-
(0, vitest_1.expect)(skNumber6.toAbbreviation()).toBe('1.23Qi');
|
157
|
-
var skNumber7 = new swapKitNumber_ts_1.SwapKitNumber(1234567890123456789012.5678);
|
158
|
-
(0, vitest_1.expect)(skNumber7.toAbbreviation()).toBe('1.23S');
|
159
|
-
var skNumber8 = new swapKitNumber_ts_1.SwapKitNumber(1234.5678);
|
160
|
-
(0, vitest_1.expect)(skNumber8.toAbbreviation(0)).toBe('1K');
|
161
|
-
var skNumber9 = new swapKitNumber_ts_1.SwapKitNumber(1234.5678);
|
162
|
-
(0, vitest_1.expect)(skNumber9.toAbbreviation(1)).toBe('1.2K');
|
163
|
-
var skNumber10 = new swapKitNumber_ts_1.SwapKitNumber(123456.78);
|
164
|
-
(0, vitest_1.expect)(skNumber10.toAbbreviation()).toBe('123.46K');
|
165
|
-
});
|
166
|
-
});
|
167
|
-
(0, vitest_1.describe)('toCurrency', function () {
|
168
|
-
(0, vitest_1.test)('returns abbreviation with up to 3 integer digits', function () {
|
169
|
-
var skNumber = new swapKitNumber_ts_1.SwapKitNumber(1234.5678);
|
170
|
-
(0, vitest_1.expect)(skNumber.toCurrency()).toBe('$1,234.56');
|
171
|
-
(0, vitest_1.expect)(skNumber.toCurrency('€', {
|
172
|
-
decimalSeparator: ',',
|
173
|
-
thousandSeparator: ' ',
|
174
|
-
currencyPosition: 'end',
|
175
|
-
})).toBe('1 234,56€');
|
176
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber(0.5678);
|
177
|
-
(0, vitest_1.expect)(skNumber2.toCurrency()).toBe('$0.5678');
|
178
|
-
(0, vitest_1.expect)(skNumber2.toCurrency('€', {
|
179
|
-
decimalSeparator: ',',
|
180
|
-
currencyPosition: 'end',
|
181
|
-
})).toBe('0,5678€');
|
182
|
-
var skNumber3 = new swapKitNumber_ts_1.SwapKitNumber(0.00005678);
|
183
|
-
(0, vitest_1.expect)(skNumber3.toCurrency()).toBe('$0.000057');
|
184
|
-
(0, vitest_1.expect)(skNumber3.toCurrency('€', {
|
185
|
-
decimalSeparator: ',',
|
186
|
-
thousandSeparator: ' ',
|
187
|
-
currencyPosition: 'end',
|
188
|
-
})).toBe('0,000057€');
|
189
|
-
var skNumber4 = new swapKitNumber_ts_1.SwapKitNumber(12345);
|
190
|
-
(0, vitest_1.expect)(skNumber4.toCurrency()).toBe('$12,345');
|
191
|
-
});
|
192
|
-
});
|
193
|
-
(0, vitest_1.describe)('add', function () {
|
194
|
-
(0, vitest_1.test)('adds same type numbers correctly', function () {
|
195
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
196
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('5');
|
197
|
-
var skNumber3 = new swapKitNumber_ts_1.SwapKitNumber('0.5');
|
198
|
-
var result = skNumber1.add(skNumber2, skNumber3);
|
199
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('15.5');
|
200
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(1550000000n);
|
201
|
-
});
|
202
|
-
(0, vitest_1.test)('adds different type numbers correctly', function () {
|
203
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
204
|
-
var result = skNumber1.add(6, '0.5');
|
205
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('16.5');
|
206
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(1650000000n);
|
207
|
-
});
|
208
|
-
(0, vitest_1.test)('adds large decimal numbers correctly', function () {
|
209
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(0.0000000001);
|
210
|
-
var result = skNumber1.add(6.000000000001, '0.0000000000000005');
|
211
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('6.0000000001010005');
|
212
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(600000000n);
|
213
|
-
});
|
214
|
-
});
|
215
|
-
(0, vitest_1.describe)('sub', function () {
|
216
|
-
(0, vitest_1.test)('subtracts same type numbers correctly', function () {
|
217
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
218
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('5');
|
219
|
-
var skNumber3 = new swapKitNumber_ts_1.SwapKitNumber(0.5);
|
220
|
-
var result = skNumber1.sub(skNumber2, skNumber3);
|
221
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('4.5');
|
222
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(450000000n);
|
223
|
-
});
|
224
|
-
(0, vitest_1.test)('subtracts different type numbers correctly', function () {
|
225
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
226
|
-
var result = skNumber1.sub(6, '0.5');
|
227
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('3.5');
|
228
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(350000000n);
|
229
|
-
});
|
230
|
-
(0, vitest_1.test)('can process negative results', function () {
|
231
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
232
|
-
var result0 = skNumber1.sub(10);
|
233
|
-
var resultMinus = result0.sub('10');
|
234
|
-
(0, vitest_1.expect)(result0.getValue('string')).toBe('0');
|
235
|
-
(0, vitest_1.expect)(resultMinus.getValue('string')).toBe('-10');
|
236
|
-
(0, vitest_1.expect)(result0.getBaseValue('bigint')).toBe(0n);
|
237
|
-
(0, vitest_1.expect)(resultMinus.getBaseValue('bigint')).toBe(-1000000000n);
|
238
|
-
});
|
239
|
-
});
|
240
|
-
(0, vitest_1.describe)('mul', function () {
|
241
|
-
(0, vitest_1.test)('multiplies same type numbers correctly', function () {
|
242
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
243
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('5');
|
244
|
-
var skNumber3 = new swapKitNumber_ts_1.SwapKitNumber(0.5);
|
245
|
-
var result = skNumber1.mul(skNumber2, skNumber3);
|
246
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('25');
|
247
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(2500000000n);
|
248
|
-
});
|
249
|
-
(0, vitest_1.test)('multiplies different type numbers correctly', function () {
|
250
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
251
|
-
var result = skNumber1.mul(6, '0.5');
|
252
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('30');
|
253
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(3000000000n);
|
254
|
-
});
|
255
|
-
(0, vitest_1.test)('multiplies numbers correctly if decimals of SKN is lower than number multiplied with', function () {
|
256
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber({ value: 1000000, decimal: 4 });
|
257
|
-
var result = skNumber1.mul('0.00001');
|
258
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('10');
|
259
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(100000n);
|
260
|
-
});
|
261
|
-
(0, vitest_1.test)('should correctly round the result of multiplication', function () {
|
262
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber({ decimal: 3, value: 1.23 });
|
263
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber({ decimal: 4, value: 4.56 });
|
264
|
-
var result = skNumber1.mul(skNumber2);
|
265
|
-
// The exact result of 1.23 * 4.56 is 5.6088
|
266
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('5.609');
|
267
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(5608n);
|
268
|
-
var skNumber3 = new swapKitNumber_ts_1.SwapKitNumber({ decimal: 2, value: 1.23 });
|
269
|
-
var skNumber4 = new swapKitNumber_ts_1.SwapKitNumber(-1.234567891);
|
270
|
-
var result2 = skNumber3.mul(skNumber4);
|
271
|
-
// The exact result of 1.23 * -1.234567891 is -1,518518505
|
272
|
-
// If we round it to 2 decimal places, we should get 5.61
|
273
|
-
(0, vitest_1.expect)(result2.getValue('string')).toBe('-1.52');
|
274
|
-
(0, vitest_1.expect)(result2.getBaseValue('bigint')).toBe(-151n);
|
275
|
-
});
|
276
|
-
});
|
277
|
-
(0, vitest_1.describe)('div', function () {
|
278
|
-
(0, vitest_1.test)('divides same type numbers correctly', function () {
|
279
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
280
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('5');
|
281
|
-
var skNumber3 = new swapKitNumber_ts_1.SwapKitNumber(0.5);
|
282
|
-
var result = skNumber1.div(skNumber2, skNumber3);
|
283
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('4');
|
284
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(400000000n);
|
285
|
-
var skNumber4 = new swapKitNumber_ts_1.SwapKitNumber(10.12);
|
286
|
-
var result2 = skNumber4.div(0.0001);
|
287
|
-
(0, vitest_1.expect)(result2.getValue('string')).toBe('101200');
|
288
|
-
(0, vitest_1.expect)(result2.getBaseValue('bigint')).toBe(10120000000000n);
|
289
|
-
});
|
290
|
-
(0, vitest_1.test)('divides different type numbers correctly', function () {
|
291
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(20);
|
292
|
-
var result = skNumber1.div(5, '0.5');
|
293
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('8');
|
294
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(800000000n);
|
295
|
-
});
|
296
|
-
(0, vitest_1.test)('divides different type numbers correctly when decimal is set', function () {
|
297
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber({ value: '1.2', decimal: 2 });
|
298
|
-
var result = skNumber1.div(0.001);
|
299
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('1200');
|
300
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(120000n);
|
301
|
-
});
|
302
|
-
(0, vitest_1.test)('divides smaller number by larger number', function () {
|
303
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(1);
|
304
|
-
var result = skNumber1.div(2);
|
305
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('0.5');
|
306
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(50000000n);
|
307
|
-
});
|
308
|
-
(0, vitest_1.test)('divides a number with 18 decimals by a negative number with less decimals', function () {
|
309
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber({ value: '1.000000000000000010', decimal: 18 });
|
310
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber({ value: '-2', decimal: 1 });
|
311
|
-
var result = skNumber1.div(skNumber2);
|
312
|
-
// The exact result of 1.000000000000000010 / -2 is -0.500000000000000005
|
313
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('-0.500000000000000005');
|
314
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(-500000000000000005n);
|
315
|
-
});
|
316
|
-
(0, vitest_1.test)('divides a number with 2 decimals by a negative number with more decimals', function () {
|
317
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber({ value: '2', decimal: 2 });
|
318
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber({ value: '-0.000005', decimal: 18 });
|
319
|
-
var result = skNumber1.div(skNumber2);
|
320
|
-
// The exact result of 2 / -0.000005 is -400000
|
321
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('-400000');
|
322
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(-40000000n);
|
323
|
-
});
|
324
|
-
});
|
325
|
-
(0, vitest_1.describe)('shitcoin cases', function () {
|
326
|
-
(0, vitest_1.test)('multiply huge numbers', function () {
|
327
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber({ value: 1000000000000001, decimal: 18 });
|
328
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber({ value: 987654321000, decimal: 18 });
|
329
|
-
var result = skNumber1.mul(skNumber2);
|
330
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('987654321000000987654321000');
|
331
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(987654321000000987654321000000000000000000000n);
|
332
|
-
});
|
333
|
-
(0, vitest_1.test)('divide huge numbers', function () {
|
334
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber({ value: 1000000000000001, decimal: 18 });
|
335
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber({ value: 987654321000, decimal: 18 });
|
336
|
-
var result = skNumber1.div(skNumber2);
|
337
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('1012.4999999873447625');
|
338
|
-
(0, vitest_1.expect)(result.getBaseValue('bigint')).toBe(1012499999987344762500n);
|
339
|
-
});
|
340
|
-
});
|
341
|
-
(0, vitest_1.describe)('extending multiplier without loosing precision', function () {
|
342
|
-
(0, vitest_1.test)('edge case 1', function () {
|
343
|
-
var asset1 = new swapKitNumber_ts_1.SwapKitNumber({ value: 41.90963702, decimal: 8 });
|
344
|
-
var multiplier = 5.337952274462478;
|
345
|
-
var divider = 105.2562773915526;
|
346
|
-
var result = asset1.mul(multiplier).div(divider);
|
347
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('2.12539953');
|
348
|
-
});
|
349
|
-
(0, vitest_1.test)('edge case 2', function () {
|
350
|
-
var asset1 = new swapKitNumber_ts_1.SwapKitNumber('41.90963702');
|
351
|
-
var multiplier = new swapKitNumber_ts_1.SwapKitNumber('5.337952274462478');
|
352
|
-
var divider = new swapKitNumber_ts_1.SwapKitNumber('105.2562773915526');
|
353
|
-
var result = asset1.mul(multiplier).div(divider);
|
354
|
-
(0, vitest_1.expect)(result.getValue('string')).toBe('2.125399527674726');
|
355
|
-
});
|
356
|
-
});
|
357
|
-
(0, vitest_1.describe)('gt', function () {
|
358
|
-
(0, vitest_1.test)('greater than', function () {
|
359
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
360
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('5');
|
361
|
-
(0, vitest_1.expect)(skNumber1.gt(skNumber2)).toBe(true);
|
362
|
-
(0, vitest_1.expect)(skNumber2.gt(skNumber1)).toBe(false);
|
363
|
-
});
|
364
|
-
(0, vitest_1.test)("different decimals doesn't affect comparison", function () {
|
365
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber({ value: 10, decimal: 18 });
|
366
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber({ value: '50', decimal: 8 });
|
367
|
-
(0, vitest_1.expect)(skNumber1.lt(skNumber2)).toBe(true);
|
368
|
-
(0, vitest_1.expect)(skNumber2.gt(skNumber1)).toBe(true);
|
369
|
-
});
|
370
|
-
});
|
371
|
-
(0, vitest_1.describe)('gte', function () {
|
372
|
-
(0, vitest_1.test)('greater than or equal', function () {
|
373
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
374
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('5');
|
375
|
-
(0, vitest_1.expect)(skNumber1.gte(skNumber2)).toBe(true);
|
376
|
-
(0, vitest_1.expect)(skNumber1.gte(skNumber1)).toBe(true);
|
377
|
-
(0, vitest_1.expect)(skNumber2.gte(skNumber1)).toBe(false);
|
378
|
-
});
|
379
|
-
});
|
380
|
-
(0, vitest_1.describe)('lt', function () {
|
381
|
-
(0, vitest_1.test)('less than', function () {
|
382
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
383
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('5');
|
384
|
-
(0, vitest_1.expect)(skNumber1.lt(skNumber2)).toBe(false);
|
385
|
-
(0, vitest_1.expect)(skNumber2.lt(skNumber1)).toBe(true);
|
386
|
-
});
|
387
|
-
});
|
388
|
-
(0, vitest_1.describe)('lte', function () {
|
389
|
-
(0, vitest_1.test)('less than or equal', function () {
|
390
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
391
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('5');
|
392
|
-
(0, vitest_1.expect)(skNumber1.lte(skNumber2)).toBe(false);
|
393
|
-
(0, vitest_1.expect)(skNumber1.lte(skNumber1)).toBe(true);
|
394
|
-
(0, vitest_1.expect)(skNumber2.lte(skNumber1)).toBe(true);
|
395
|
-
});
|
396
|
-
});
|
397
|
-
(0, vitest_1.describe)('eq', function () {
|
398
|
-
(0, vitest_1.test)('equal', function () {
|
399
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
400
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('5');
|
401
|
-
(0, vitest_1.expect)(skNumber1.eq(skNumber2)).toBe(false);
|
402
|
-
(0, vitest_1.expect)(skNumber1.eq(skNumber1)).toBe(true);
|
403
|
-
(0, vitest_1.expect)(skNumber2.eq(skNumber1)).toBe(false);
|
404
|
-
});
|
405
|
-
});
|
406
|
-
(0, vitest_1.describe)('comparison edge cases with decimals', function () {
|
407
|
-
(0, vitest_1.test)('compare on cut decimals', function () {
|
408
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber({ value: 0.001, decimal: 3 });
|
409
|
-
var value = '0.0019';
|
410
|
-
(0, vitest_1.expect)(skNumber1.lt(value)).toBe(true);
|
411
|
-
(0, vitest_1.expect)(skNumber1.gt(value)).toBe(false);
|
412
|
-
(0, vitest_1.expect)(skNumber1.eq(value)).toBe(false);
|
413
|
-
(0, vitest_1.expect)(skNumber1.lte(value)).toBe(true);
|
414
|
-
(0, vitest_1.expect)(skNumber1.gte(value)).toBe(false);
|
415
|
-
});
|
416
|
-
});
|
417
|
-
(0, vitest_1.describe)('Throws', function () {
|
418
|
-
(0, vitest_1.test)('throws if division by zero', function () {
|
419
|
-
var skNumber1 = new swapKitNumber_ts_1.SwapKitNumber(10);
|
420
|
-
var skNumber2 = new swapKitNumber_ts_1.SwapKitNumber('0');
|
421
|
-
(0, vitest_1.expect)(function () { return skNumber1.div(skNumber2); }).toThrow(RangeError);
|
422
|
-
(0, vitest_1.expect)(function () { return skNumber1.div(0); }).toThrow(RangeError);
|
423
|
-
});
|
424
|
-
});
|
425
|
-
});
|
@@ -1,58 +0,0 @@
|
|
1
|
-
import type { CoinGeckoList, MayaList, PancakeswapETHList, PancakeswapList, PangolinList, PioneerList, StargateARBList, SushiswapList, ThorchainList, TraderjoeList, UniswapList, WoofiList } from '@coinmasters/tokens';
|
2
|
-
import { Chain } from '@coinmasters/types';
|
3
|
-
import type { CommonAssetString } from '../helpers/asset';
|
4
|
-
import { getAssetType } from '../helpers/asset';
|
5
|
-
import type { NumberPrimitives } from './bigIntArithmetics';
|
6
|
-
import { BigIntArithmetics } from './bigIntArithmetics';
|
7
|
-
import type { SwapKitValueType } from './swapKitNumber';
|
8
|
-
type TokenTax = {
|
9
|
-
buy: number;
|
10
|
-
sell: number;
|
11
|
-
};
|
12
|
-
export declare function safeValue(value: NumberPrimitives, decimal: number): bigint;
|
13
|
-
type AssetValueParams = {
|
14
|
-
decimal: number;
|
15
|
-
value: SwapKitValueType;
|
16
|
-
tax?: TokenTax;
|
17
|
-
} & ({
|
18
|
-
chain: Chain;
|
19
|
-
symbol: string;
|
20
|
-
} | {
|
21
|
-
identifier: string;
|
22
|
-
});
|
23
|
-
type TCTokenNames = (typeof ThorchainList)['tokens'][number]['identifier'];
|
24
|
-
type TokenNames = TCTokenNames | (typeof CoinGeckoList)['tokens'][number]['identifier'] | (typeof MayaList)['tokens'][number]['identifier'] | (typeof PancakeswapETHList)['tokens'][number]['identifier'] | (typeof PancakeswapList)['tokens'][number]['identifier'] | (typeof PangolinList)['tokens'][number]['identifier'] | (typeof StargateARBList)['tokens'][number]['identifier'] | (typeof SushiswapList)['tokens'][number]['identifier'] | (typeof TraderjoeList)['tokens'][number]['identifier'] | (typeof WoofiList)['tokens'][number]['identifier'] | (typeof UniswapList)['tokens'][number]['identifier'] | (typeof PioneerList)['tokens'][number]['identifier'];
|
25
|
-
export declare class AssetValue extends BigIntArithmetics {
|
26
|
-
address?: string;
|
27
|
-
caip?: string;
|
28
|
-
pubkey?: string;
|
29
|
-
identifier?: string;
|
30
|
-
chain: Chain;
|
31
|
-
isGasAsset: boolean;
|
32
|
-
isSynthetic: boolean;
|
33
|
-
symbol: string;
|
34
|
-
tax?: TokenTax;
|
35
|
-
ticker: string;
|
36
|
-
type: ReturnType<typeof getAssetType>;
|
37
|
-
constructor(params: AssetValueParams);
|
38
|
-
toString(short?: boolean): string | undefined;
|
39
|
-
toUrl(): string | undefined;
|
40
|
-
eq({ chain, symbol }: {
|
41
|
-
chain: Chain;
|
42
|
-
symbol: string;
|
43
|
-
}): boolean | undefined;
|
44
|
-
static fromString(assetString: string, value?: NumberPrimitives): Promise<AssetValue | undefined>;
|
45
|
-
static fromStringSync(assetString: string, value?: NumberPrimitives): AssetValue | undefined;
|
46
|
-
static fromIdentifier(assetString: `${Chain}.${string}` | `${Chain}/${string}` | `${Chain}.${string}-${string}`, value?: NumberPrimitives): Promise<AssetValue | undefined>;
|
47
|
-
static fromIdentifierSync(identifier: TokenNames, value?: NumberPrimitives): AssetValue | undefined;
|
48
|
-
static fromChainOrSignature(assetString: CommonAssetString, value?: NumberPrimitives): AssetValue | undefined;
|
49
|
-
static loadStaticAssets(): Promise<{
|
50
|
-
ok: true;
|
51
|
-
} | {
|
52
|
-
ok: false;
|
53
|
-
message: string;
|
54
|
-
error: any;
|
55
|
-
} | undefined>;
|
56
|
-
}
|
57
|
-
export declare const getMinAmountByChain: (chain: Chain) => any;
|
58
|
-
export {};
|