@swapkit/helpers 1.0.0-rc.2 → 1.0.0-rc.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.
package/package.json CHANGED
@@ -6,15 +6,15 @@
6
6
  "vite": "4.4.9",
7
7
  "vitest": "0.34.4",
8
8
  "@internal/config": "0.0.0-internal.0",
9
- "@swapkit/tokens": "1.0.0-rc.1",
10
- "@swapkit/types": "1.0.0-rc.1"
9
+ "@swapkit/tokens": "1.0.0-rc.3",
10
+ "@swapkit/types": "1.0.0-rc.3"
11
11
  },
12
12
  "eslintConfig": {
13
13
  "extends": "../../../internal/eslint-config"
14
14
  },
15
15
  "peerDependencies": {
16
- "@swapkit/tokens": "1.0.0-rc.1",
17
- "@swapkit/types": "1.0.0-rc.1"
16
+ "@swapkit/tokens": "1.0.0-rc.3",
17
+ "@swapkit/types": "1.0.0-rc.3"
18
18
  },
19
19
  "exports": {
20
20
  ".": {
@@ -39,7 +39,7 @@
39
39
  "repository": "https://github.com/thorswap/SwapKit.git",
40
40
  "type": "module",
41
41
  "types": "./dist/index.d.ts",
42
- "version": "1.0.0-rc.2",
42
+ "version": "1.0.0-rc.4",
43
43
  "scripts": {
44
44
  "build": "vite build",
45
45
  "clean": "rm -rf dist vite.config.ts.* .turbo node_modules",
@@ -23,23 +23,28 @@ export const getRequest = async <T>(
23
23
  url: string,
24
24
  params?: { [key in string]?: any },
25
25
  ): Promise<T> => {
26
- const queryParams = Object.entries(params || {}).reduce(
27
- (acc, [key, value]) => {
28
- if (value) {
29
- acc[key] = value;
30
- }
31
-
32
- return acc;
33
- },
34
- {} as { [key in string]: any },
35
- );
36
-
37
- const response = await fetch(
38
- `${url}${params ? `?${new URLSearchParams(queryParams).toString()}` : ''}`,
39
- { method: 'GET', mode: 'cors', credentials: 'omit', referrer: 'https://sk.thorswap.net' },
40
- );
41
-
42
- return response.json();
26
+ try {
27
+ const queryParams = Object.entries(params || {}).reduce(
28
+ (acc, [key, value]) => {
29
+ if (value) {
30
+ acc[key] = value;
31
+ }
32
+
33
+ return acc;
34
+ },
35
+ {} as { [key in string]: any },
36
+ );
37
+
38
+ const response = await fetch(
39
+ `${url}${params ? `?${new URLSearchParams(queryParams).toString()}` : ''}`,
40
+ { method: 'GET', mode: 'cors', credentials: 'omit', referrer: 'https://sk.thorswap.net' },
41
+ );
42
+
43
+ return response.json();
44
+ } catch (error) {
45
+ console.error(error);
46
+ return {} as T;
47
+ }
43
48
  };
44
49
 
45
50
  export const postRequest = async <T>(
@@ -48,12 +53,16 @@ export const postRequest = async <T>(
48
53
  headers?: Record<string, string>,
49
54
  parseAsString = false,
50
55
  ): Promise<T> => {
51
- const response = await fetch(`${url}`, {
52
- body,
53
- headers,
54
- method: 'POST',
55
- referrer: 'https://sk.thorswap.net',
56
- });
57
-
58
- return parseAsString ? response.text() : response.json();
56
+ try {
57
+ const response = await fetch(`${url}`, {
58
+ body,
59
+ headers,
60
+ method: 'POST',
61
+ referrer: 'https://sk.thorswap.net',
62
+ });
63
+
64
+ return parseAsString ? response.text() : response.json();
65
+ } catch (error) {
66
+ return {} as T;
67
+ }
59
68
  };
package/src/index.ts CHANGED
@@ -4,12 +4,12 @@
4
4
  export * from './helpers/asset.ts';
5
5
  export * from './helpers/liquidity.ts';
6
6
  export * from './helpers/memo.ts';
7
- export * from './helpers/number.ts';
8
7
  export * from './helpers/others.ts';
9
8
 
10
9
  /**
11
10
  * Modules
12
11
  */
13
- export { AssetValue, getMinAmountByChain } from './modules/assetValue.ts';
14
- export { type Keys, SwapKitError } from './modules/swapKitError.ts';
15
- export { SwapKitNumber } from './modules/swapKitNumber.ts';
12
+ export * from './modules/assetValue.ts';
13
+ export * from './modules/bigIntArithmetics.ts';
14
+ export * from './modules/swapKitError.ts';
15
+ export * from './modules/swapKitNumber.ts';
@@ -6,47 +6,47 @@ describe('SwapKitNumber', () => {
6
6
  describe('constructors', () => {
7
7
  test('creates numbers correctly', () => {
8
8
  const skNumber1 = new SwapKitNumber(1);
9
- expect(skNumber1.value).toBe('1');
10
- expect(skNumber1.bigIntValue).toBe(100000000n);
9
+ expect(skNumber1.getValue('string')).toBe('1');
10
+ expect(skNumber1.getValue('number')).toBe(1);
11
+ expect(skNumber1.getValue('bigint')).toBe(100000000n);
11
12
 
12
13
  const skNumber2 = new SwapKitNumber('1');
13
- expect(skNumber2.value).toBe('1');
14
- expect(skNumber2.bigIntValue).toBe(100000000n);
14
+ expect(skNumber2.getValue('string')).toBe('1');
15
+ expect(skNumber2.getValue('bigint')).toBe(100000000n);
15
16
 
16
17
  const skNumber3 = new SwapKitNumber('0.0000000001');
17
- expect(skNumber3.value).toBe('0.0000000001');
18
- expect(skNumber3.bigIntValue).toBe(1n);
18
+ expect(skNumber3.getValue('string')).toBe('0.0000000001');
19
+ expect(skNumber3.getValue('bigint')).toBe(1n);
19
20
 
20
21
  const skNumber4 = new SwapKitNumber(0.000000001);
21
- expect(skNumber4.value).toBe('0.000000001');
22
- expect(skNumber4.bigIntValue).toBe(1n);
22
+ expect(skNumber4.getValue('string')).toBe('0.000000001');
23
+ expect(skNumber4.getValue('bigint')).toBe(1n);
23
24
 
24
25
  const skNumber6 = new SwapKitNumber({ value: 0.1005, decimal: 3 });
25
- expect(skNumber6.value).toBe('0.101');
26
- expect(skNumber6.bigIntValue).toBe(10050000n);
26
+ expect(skNumber6.getValue('string')).toBe('0.101');
27
+ expect(skNumber6.getValue('bigint')).toBe(10050000n);
27
28
 
28
29
  const skNumber7 = new SwapKitNumber({ value: -0.1005, decimal: 3 });
29
- expect(skNumber7.value).toBe('-0.101');
30
- expect(skNumber7.bigIntValue).toBe(-10050000n);
30
+ expect(skNumber7.getValue('string')).toBe('-0.101');
31
+ expect(skNumber7.getValue('bigint')).toBe(-10050000n);
31
32
  expect(skNumber7.decimal).toBe(3);
32
- expect(skNumber7.unsafeNumber).toBe(0);
33
+ expect(skNumber7.getValue('number')).toBe(-0.101);
33
34
  expect(skNumber7.decimalMultiplier).toBe(100000000n);
34
- expect(skNumber7.toString()).toBe('-0.101');
35
35
  });
36
36
 
37
37
  test('creates SwapKitInstance from BigInt: (12.345678901234, decimals: 12)', () => {
38
38
  const skNumber = SwapKitNumber.fromBigInt(12345678901234n, 12);
39
39
 
40
- expect(skNumber.value).toBe('12.345678901234');
41
- expect(skNumber.bigIntValue).toBe(12345678901234n);
40
+ expect(skNumber.getValue('string')).toBe('12.345678901234');
41
+ expect(skNumber.getValue('bigint')).toBe(12345678901234n);
42
42
  });
43
43
  });
44
44
 
45
45
  describe('shiftDecimals', () => {
46
46
  test('shifts up and bumps number', () => {
47
47
  const skNumber = new SwapKitNumber(1);
48
- expect(skNumber.value).toBe('1');
49
- expect(skNumber.bigIntValue).toBe(100000000n);
48
+ expect(skNumber.getValue('string')).toBe('1');
49
+ expect(skNumber.getValue('bigint')).toBe(100000000n);
50
50
 
51
51
  const shiftedSkNumber = SwapKitNumber.shiftDecimals({
52
52
  value: skNumber,
@@ -54,14 +54,14 @@ describe('SwapKitNumber', () => {
54
54
  to: 8,
55
55
  });
56
56
 
57
- expect(shiftedSkNumber.value).toBe('100');
58
- expect(shiftedSkNumber.bigIntValue).toBe(10000000000n);
57
+ expect(shiftedSkNumber.getValue('string')).toBe('100');
58
+ expect(shiftedSkNumber.getValue('bigint')).toBe(10000000000n);
59
59
  });
60
60
 
61
- test.skip('shifts down and rounds down number', () => {
61
+ test('shifts down and rounds down number', () => {
62
62
  const skNumber = new SwapKitNumber(2.12345678);
63
- expect(skNumber.value).toBe('2.12345678');
64
- expect(skNumber.bigIntValue).toBe(212345678n);
63
+ expect(skNumber.getValue('string')).toBe('2.12345678');
64
+ expect(skNumber.getValue('bigint')).toBe(212345678n);
65
65
 
66
66
  const shiftedSkNumber = SwapKitNumber.shiftDecimals({
67
67
  value: skNumber,
@@ -69,8 +69,84 @@ describe('SwapKitNumber', () => {
69
69
  to: 6,
70
70
  });
71
71
 
72
- expect(shiftedSkNumber.value).toBe('2.123456');
73
- expect(shiftedSkNumber.bigIntValue).toBe(2123456n);
72
+ expect(shiftedSkNumber.getValue('string')).toBe('2.123456');
73
+ expect(shiftedSkNumber.getValue('bigint')).toBe(212345600n);
74
+ });
75
+ });
76
+
77
+ describe('getValue', () => {
78
+ describe('string', () => {
79
+ test('returns string value', () => {
80
+ const skNumber = new SwapKitNumber(1);
81
+ expect(skNumber.getValue('string')).toBe('1');
82
+ });
83
+
84
+ test('returns string value with decimals', () => {
85
+ const skNumber = new SwapKitNumber(0.01);
86
+ expect(skNumber.getValue('string')).toBe('0.01');
87
+ });
88
+ });
89
+
90
+ describe('number', () => {
91
+ test('returns number value', () => {
92
+ const skNumber = new SwapKitNumber(1);
93
+ expect(skNumber.getValue('number')).toBe(1);
94
+ });
95
+
96
+ test('returns number value with decimals', () => {
97
+ const skNumber = new SwapKitNumber(0.01);
98
+ expect(skNumber.getValue('number')).toBe(0.01);
99
+ });
100
+ });
101
+
102
+ describe('bigint', () => {
103
+ test('returns bigint value', () => {
104
+ const skNumber = new SwapKitNumber(1);
105
+ expect(skNumber.getValue('bigint')).toBe(100000000n);
106
+ });
107
+ });
108
+ });
109
+
110
+ describe('toSignificant', () => {
111
+ describe('normal cases', () => {
112
+ test('returns first significant number of digits', () => {
113
+ const usdLikeNumber = new SwapKitNumber(1234.5678);
114
+ expect(usdLikeNumber.toSignificant(2)).toBe('1200');
115
+ expect(usdLikeNumber.toSignificant(3)).toBe('1230');
116
+ expect(usdLikeNumber.toSignificant(4)).toBe('1234');
117
+ expect(usdLikeNumber.toSignificant(5)).toBe('1234.5');
118
+ expect(usdLikeNumber.toSignificant(6)).toBe('1234.56');
119
+ expect(usdLikeNumber.toSignificant(7)).toBe('1234.567');
120
+ expect(usdLikeNumber.toSignificant(8)).toBe('1234.5678');
121
+
122
+ const btcLikeNumber = new SwapKitNumber(0.00005678);
123
+ expect(btcLikeNumber.toSignificant(2)).toBe('0.000056');
124
+ expect(btcLikeNumber.toSignificant(3)).toBe('0.0000567');
125
+ expect(btcLikeNumber.toSignificant(4)).toBe('0.00005678');
126
+ expect(btcLikeNumber.toSignificant(5)).toBe('0.00005678');
127
+ expect(btcLikeNumber.toSignificant(8)).toBe('0.00005678');
128
+ });
129
+ });
130
+
131
+ describe('custom decimals', () => {
132
+ test('returns first significant number of digits', () => {
133
+ const usdLikeNumber = new SwapKitNumber({ value: 1234.5678, decimal: 2 });
134
+ expect(usdLikeNumber.toSignificant(2)).toBe('1200');
135
+ expect(usdLikeNumber.toSignificant(3)).toBe('1230');
136
+ expect(usdLikeNumber.toSignificant(4)).toBe('1234');
137
+ expect(usdLikeNumber.toSignificant(5)).toBe('1234.5');
138
+ expect(usdLikeNumber.toSignificant(6)).toBe('1234.57');
139
+ expect(usdLikeNumber.toSignificant(7)).toBe('1234.57');
140
+ expect(usdLikeNumber.toSignificant(8)).toBe('1234.57');
141
+
142
+ const ethLikeNumber = new SwapKitNumber({ value: 0.00005678, decimal: 18 });
143
+ expect(ethLikeNumber.toSignificant(2)).toBe('0.000056');
144
+ expect(ethLikeNumber.toSignificant(3)).toBe('0.0000567');
145
+ expect(ethLikeNumber.toSignificant(4)).toBe('0.00005678');
146
+ expect(ethLikeNumber.toSignificant(5)).toBe('0.00005678');
147
+ expect(ethLikeNumber.toSignificant(8)).toBe('0.00005678');
148
+ expect(ethLikeNumber.toSignificant(18)).toBe('0.00005678');
149
+ });
74
150
  });
75
151
  });
76
152
 
@@ -81,23 +157,23 @@ describe('SwapKitNumber', () => {
81
157
  const skNumber3 = new SwapKitNumber('0.5');
82
158
  const result = skNumber1.add(skNumber2, skNumber3);
83
159
 
84
- expect(result.value).toBe('15.5');
85
- expect(result.bigIntValue).toBe(1550000000n);
160
+ expect(result.getValue('string')).toBe('15.5');
161
+ expect(result.getValue('bigint')).toBe(1550000000n);
86
162
  });
87
163
 
88
164
  test('adds different type numbers correctly', () => {
89
165
  const skNumber1 = new SwapKitNumber(10);
90
166
  const result = skNumber1.add(6, '0.5');
91
167
 
92
- expect(result.value).toBe('16.5');
93
- expect(result.bigIntValue).toBe(1650000000n);
168
+ expect(result.getValue('string')).toBe('16.5');
169
+ expect(result.getValue('bigint')).toBe(1650000000n);
94
170
  });
95
171
 
96
172
  test('adds large decimal numbers correctly', () => {
97
173
  const skNumber1 = new SwapKitNumber(0.0000000001);
98
174
  const result = skNumber1.add(6.000000000001, '0.0000000000000005');
99
- expect(result.value).toBe('6.0000000001010005');
100
- expect(result.bigIntValue).toBe(60000000001010005n);
175
+ expect(result.getValue('string')).toBe('6.0000000001010005');
176
+ expect(result.getValue('bigint')).toBe(60000000001010005n);
101
177
  });
102
178
  });
103
179
 
@@ -108,16 +184,16 @@ describe('SwapKitNumber', () => {
108
184
  const skNumber3 = new SwapKitNumber(0.5);
109
185
  const result = skNumber1.sub(skNumber2, skNumber3);
110
186
 
111
- expect(result.value).toBe('4.5');
112
- expect(result.bigIntValue).toBe(450000000n);
187
+ expect(result.getValue('string')).toBe('4.5');
188
+ expect(result.getValue('bigint')).toBe(450000000n);
113
189
  });
114
190
 
115
191
  test('subtracts different type numbers correctly', () => {
116
192
  const skNumber1 = new SwapKitNumber(10);
117
193
  const result = skNumber1.sub(6, '0.5');
118
194
 
119
- expect(result.value).toBe('3.5');
120
- expect(result.bigIntValue).toBe(350000000n);
195
+ expect(result.getValue('string')).toBe('3.5');
196
+ expect(result.getValue('bigint')).toBe(350000000n);
121
197
  });
122
198
 
123
199
  test('can process negative results', () => {
@@ -125,10 +201,10 @@ describe('SwapKitNumber', () => {
125
201
  const result0 = skNumber1.sub(10);
126
202
  const resultMinus = result0.sub('10');
127
203
 
128
- expect(result0.value).toBe('0');
129
- expect(resultMinus.value).toBe('-10');
130
- expect(result0.bigIntValue).toBe(0n);
131
- expect(resultMinus.bigIntValue).toBe(-1000000000n);
204
+ expect(result0.getValue('string')).toBe('0');
205
+ expect(resultMinus.getValue('string')).toBe('-10');
206
+ expect(result0.getValue('bigint')).toBe(0n);
207
+ expect(resultMinus.getValue('bigint')).toBe(-1000000000n);
132
208
  });
133
209
  });
134
210
 
@@ -139,24 +215,24 @@ describe('SwapKitNumber', () => {
139
215
  const skNumber3 = new SwapKitNumber(0.5);
140
216
  const result = skNumber1.mul(skNumber2, skNumber3);
141
217
 
142
- expect(result.value).toBe('25');
143
- expect(result.bigIntValue).toBe(2500000000n);
218
+ expect(result.getValue('string')).toBe('25');
219
+ expect(result.getValue('bigint')).toBe(2500000000n);
144
220
  });
145
221
 
146
222
  test('multiplies different type numbers correctly', () => {
147
223
  const skNumber1 = new SwapKitNumber(10);
148
224
  const result = skNumber1.mul(6, '0.5');
149
225
 
150
- expect(result.value).toBe('30');
151
- expect(result.bigIntValue).toBe(3000000000n);
226
+ expect(result.getValue('string')).toBe('30');
227
+ expect(result.getValue('bigint')).toBe(3000000000n);
152
228
  });
153
229
 
154
230
  test('multiplies numbers correctly if decimals of SKN is lower than number multiplied with', () => {
155
231
  const skNumber1 = new SwapKitNumber({ value: 1000000, decimal: 4 });
156
232
  const result = skNumber1.mul('0.00001');
157
233
 
158
- expect(result.value).toBe('10');
159
- expect(result.bigIntValue).toBe(1000000000n);
234
+ expect(result.getValue('string')).toBe('10');
235
+ expect(result.getValue('bigint')).toBe(1000000000n);
160
236
  });
161
237
 
162
238
  test('should correctly round the result of multiplication', () => {
@@ -167,8 +243,8 @@ describe('SwapKitNumber', () => {
167
243
 
168
244
  // The exact result of 1.23 * 4.56 is 5.6088
169
245
  // If we round it to 2 decimal places, we should get 5.61
170
- expect(result.value).toBe('5.61');
171
- expect(result.bigIntValue).toBe(560880000n);
246
+ expect(result.getValue('string')).toBe('5.61');
247
+ expect(result.getValue('bigint')).toBe(560880000n);
172
248
 
173
249
  const skNumber3 = new SwapKitNumber({ decimal: 2, value: 1.23 });
174
250
  const skNumber4 = new SwapKitNumber(-1.234567891);
@@ -177,8 +253,8 @@ describe('SwapKitNumber', () => {
177
253
 
178
254
  // The exact result of 1.23 * -1.234567891 is -1,518518505
179
255
  // If we round it to 2 decimal places, we should get 5.61
180
- expect(result2.value).toBe('-1.52');
181
- expect(result2.bigIntValue).toBe(-1518518505n);
256
+ expect(result2.getValue('string')).toBe('-1.52');
257
+ expect(result2.getValue('bigint')).toBe(-1518518505n);
182
258
  });
183
259
  });
184
260
 
@@ -189,38 +265,38 @@ describe('SwapKitNumber', () => {
189
265
  const skNumber3 = new SwapKitNumber(0.5);
190
266
  const result = skNumber1.div(skNumber2, skNumber3);
191
267
 
192
- expect(result.value).toBe('4');
193
- expect(result.bigIntValue).toBe(400000000n);
268
+ expect(result.getValue('string')).toBe('4');
269
+ expect(result.getValue('bigint')).toBe(400000000n);
194
270
 
195
271
  const skNumber4 = new SwapKitNumber(10.12);
196
272
  const result2 = skNumber4.div(0.0001);
197
273
 
198
- expect(result2.value).toBe('101200');
199
- expect(result2.bigIntValue).toBe(10120000000000n);
274
+ expect(result2.getValue('string')).toBe('101200');
275
+ expect(result2.getValue('bigint')).toBe(10120000000000n);
200
276
  });
201
277
 
202
278
  test('divides different type numbers correctly', () => {
203
279
  const skNumber1 = new SwapKitNumber(20);
204
280
  const result = skNumber1.div(5, '0.5');
205
281
 
206
- expect(result.value).toBe('8');
207
- expect(result.bigIntValue).toBe(800000000n);
282
+ expect(result.getValue('string')).toBe('8');
283
+ expect(result.getValue('bigint')).toBe(800000000n);
208
284
  });
209
285
 
210
286
  test('divides different type numbers correctly when decimal is set', () => {
211
287
  const skNumber1 = new SwapKitNumber({ value: '1.2', decimal: 2 });
212
288
  const result = skNumber1.div(0.001);
213
289
 
214
- expect(result.value).toBe('1200');
215
- expect(result.bigIntValue).toBe(120000000000n);
290
+ expect(result.getValue('string')).toBe('1200');
291
+ expect(result.getValue('bigint')).toBe(120000000000n);
216
292
  });
217
293
 
218
294
  test('divides smaller number by larger number', () => {
219
295
  const skNumber1 = new SwapKitNumber(1);
220
296
  const result = skNumber1.div(2);
221
297
 
222
- expect(result.value).toBe('0.5');
223
- expect(result.bigIntValue).toBe(50000000n);
298
+ expect(result.getValue('string')).toBe('0.5');
299
+ expect(result.getValue('bigint')).toBe(50000000n);
224
300
  });
225
301
 
226
302
  test('divides a number with 18 decimals by a negative number with less decimals', () => {
@@ -230,8 +306,8 @@ describe('SwapKitNumber', () => {
230
306
  const result = skNumber1.div(skNumber2);
231
307
 
232
308
  // The exact result of 1.000000000000000010 / -2 is -0.500000000000000005
233
- expect(result.value).toBe('-0.500000000000000005');
234
- expect(result.bigIntValue).toBe(-500000000000000005n);
309
+ expect(result.getValue('string')).toBe('-0.500000000000000005');
310
+ expect(result.getValue('bigint')).toBe(-500000000000000005n);
235
311
  });
236
312
 
237
313
  test('divides a number with 2 decimals by a negative number with more decimals', () => {
@@ -241,8 +317,8 @@ describe('SwapKitNumber', () => {
241
317
  const result = skNumber1.div(skNumber2);
242
318
 
243
319
  // The exact result of 2 / -0.000005 is -400000
244
- expect(result.value).toBe('-400000');
245
- expect(result.bigIntValue).toBe(-40000000000000n);
320
+ expect(result.getValue('string')).toBe('-400000');
321
+ expect(result.getValue('bigint')).toBe(-40000000000000n);
246
322
  });
247
323
  });
248
324
 
@@ -252,8 +328,8 @@ describe('SwapKitNumber', () => {
252
328
  const skNumber2 = new SwapKitNumber({ value: 987_654_321_000, decimal: 18 });
253
329
 
254
330
  const result = skNumber1.mul(skNumber2);
255
- expect(result.value).toBe('987654321000000987654321000');
256
- expect(result.bigIntValue).toBe(987654321000000987654321000000000000000000000n);
331
+ expect(result.getValue('string')).toBe('987654321000000987654321000');
332
+ expect(result.getValue('bigint')).toBe(987654321000000987654321000000000000000000000n);
257
333
  });
258
334
 
259
335
  test('divide huge numbers', () => {
@@ -261,8 +337,8 @@ describe('SwapKitNumber', () => {
261
337
  const skNumber2 = new SwapKitNumber({ value: 987_654_321_000, decimal: 18 });
262
338
 
263
339
  const result = skNumber1.div(skNumber2);
264
- expect(result.value).toBe('1012.4999999873447625');
265
- expect(result.bigIntValue).toBe(1012499999987344762500n);
340
+ expect(result.getValue('string')).toBe('1012.4999999873447625');
341
+ expect(result.getValue('bigint')).toBe(1012499999987344762500n);
266
342
  });
267
343
  });
268
344
 
@@ -59,6 +59,46 @@ const createAssetValue = async (assetString: string, value: number | string = 0)
59
59
  };
60
60
 
61
61
  export class AssetValue extends BigIntArithmetics {
62
+ address?: string;
63
+ chain: Chain;
64
+ isSynthetic = false;
65
+ isGasAsset = false;
66
+ symbol: string;
67
+ ticker: string;
68
+ type: ReturnType<typeof getAssetType>;
69
+
70
+ constructor(params: AssetValueParams) {
71
+ super(
72
+ params.value instanceof BigIntArithmetics
73
+ ? params.value
74
+ : { decimal: params.decimal, value: params.value },
75
+ );
76
+
77
+ const identifier =
78
+ 'identifier' in params ? params.identifier : `${params.chain}.${params.symbol}`;
79
+ const assetInfo = getAssetInfo(identifier);
80
+
81
+ this.type = getAssetType(assetInfo);
82
+ this.chain = assetInfo.chain;
83
+ this.ticker = assetInfo.ticker;
84
+ this.symbol = assetInfo.symbol;
85
+ this.address = assetInfo.address;
86
+ this.isSynthetic = assetInfo.isSynthetic;
87
+ this.isGasAsset = assetInfo.isGasAsset;
88
+ }
89
+
90
+ get assetValue() {
91
+ return `${this.getValue('string')} ${this.ticker}`;
92
+ }
93
+
94
+ toString() {
95
+ return `${this.chain}.${this.symbol}`;
96
+ }
97
+
98
+ eq({ chain, symbol }: { chain: Chain; symbol: string }) {
99
+ return this.chain === chain && this.symbol === symbol;
100
+ }
101
+
62
102
  static async fromString(assetString: string, value: number | string = 0) {
63
103
  return createAssetValue(assetString, value);
64
104
  }
@@ -149,46 +189,6 @@ export class AssetValue extends BigIntArithmetics {
149
189
  },
150
190
  );
151
191
  }
152
-
153
- address?: string;
154
- chain: Chain;
155
- isSynthetic = false;
156
- isGasAsset = false;
157
- symbol: string;
158
- ticker: string;
159
- type: ReturnType<typeof getAssetType>;
160
-
161
- constructor(params: AssetValueParams) {
162
- super(
163
- params.value instanceof BigIntArithmetics
164
- ? params.value
165
- : { decimal: params.decimal, value: params.value },
166
- );
167
-
168
- const identifier =
169
- 'identifier' in params ? params.identifier : `${params.chain}.${params.symbol}`;
170
- const assetInfo = getAssetInfo(identifier);
171
-
172
- this.type = getAssetType(assetInfo);
173
- this.chain = assetInfo.chain;
174
- this.ticker = assetInfo.ticker;
175
- this.symbol = assetInfo.symbol;
176
- this.address = assetInfo.address;
177
- this.isSynthetic = assetInfo.isSynthetic;
178
- this.isGasAsset = assetInfo.isGasAsset;
179
- }
180
-
181
- get assetValue() {
182
- return `${this.value} ${this.ticker}`;
183
- }
184
-
185
- toString() {
186
- return `${this.chain}.${this.symbol}`;
187
- }
188
-
189
- eq({ chain, symbol }: { chain: Chain; symbol: string }) {
190
- return this.chain === chain && this.symbol === symbol;
191
- }
192
192
  }
193
193
 
194
194
  export const getMinAmountByChain = (chain: Chain) => {