@rango-dev/widget-embedded 0.12.1-next.24 → 0.12.1-next.26
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/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
- package/dist/components/NoRoutes/NoRoutes.helper.d.ts.map +1 -1
- package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
- package/dist/components/RouteErrors/RouteErrorsModal.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/dist/pages/Home.d.ts.map +1 -1
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/utils/time.d.ts +2 -2
- package/dist/utils/time.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +34 -13
- package/src/components/ConfirmWalletsModal/WalletList.tsx +41 -9
- package/src/components/NoRoutes/NoRoutes.helper.ts +4 -2
- package/src/components/NotificationContent/NotificationContent.tsx +2 -1
- package/src/components/RouteErrors/RouteErrorsModal.tsx +6 -5
- package/src/components/Slippage/Slippage.tsx +1 -1
- package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +5 -5
- package/src/components/SwapDetails/SwapDetails.tsx +28 -11
- package/src/components/SwapsGroup/SwapsGroup.tsx +3 -2
- package/src/pages/ConfirmSwapPage.tsx +7 -7
- package/src/pages/HistoryPage.tsx +1 -1
- package/src/pages/Home.tsx +16 -7
- package/src/pages/LanguagePage.tsx +1 -1
- package/src/pages/SettingsPage.tsx +1 -1
- package/src/pages/ThemePage.tsx +1 -1
- package/src/utils/swap.ts +67 -27
- package/src/utils/time.ts +69 -36
package/src/utils/swap.ts
CHANGED
|
@@ -16,6 +16,7 @@ import type {
|
|
|
16
16
|
Token,
|
|
17
17
|
} from 'rango-sdk';
|
|
18
18
|
|
|
19
|
+
import { i18n } from '@lingui/core';
|
|
19
20
|
import { PendingSwapNetworkStatus } from '@rango-dev/queue-manager-rango-preset';
|
|
20
21
|
import BigNumber from 'bignumber.js';
|
|
21
22
|
|
|
@@ -118,34 +119,62 @@ export function LimitErrorMessage(bestRoute: BestRouteResponse | null): {
|
|
|
118
119
|
let fromAmountRangeError = '';
|
|
119
120
|
let recommendation = '';
|
|
120
121
|
if (!isExclusive && !!minimum && minimum.gt(swap.fromAmount)) {
|
|
121
|
-
fromAmountRangeError =
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
fromAmountRangeError = i18n.t({
|
|
123
|
+
id: 'requiredEqualMin',
|
|
124
|
+
message: 'Required: >= {min} {symbol}',
|
|
125
|
+
values: {
|
|
126
|
+
min: numberToString(
|
|
127
|
+
minimum,
|
|
128
|
+
TOKEN_AMOUNT_MIN_DECIMALS,
|
|
129
|
+
TOKEN_AMOUNT_MAX_DECIMALS
|
|
130
|
+
),
|
|
131
|
+
symbol: swap.from.symbol,
|
|
132
|
+
},
|
|
133
|
+
});
|
|
126
134
|
recommendation = errorMessages.bridgeLimitErrors.increaseAmount;
|
|
127
135
|
} else if (isExclusive && !!minimum && minimum.gte(swap.fromAmount)) {
|
|
128
|
-
fromAmountRangeError =
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
136
|
+
fromAmountRangeError = i18n.t({
|
|
137
|
+
id: 'requiredMin',
|
|
138
|
+
message: 'Required: > {min} {symbol}',
|
|
139
|
+
values: {
|
|
140
|
+
min: numberToString(
|
|
141
|
+
minimum,
|
|
142
|
+
TOKEN_AMOUNT_MIN_DECIMALS,
|
|
143
|
+
TOKEN_AMOUNT_MAX_DECIMALS
|
|
144
|
+
),
|
|
145
|
+
symbol: swap.from.symbol,
|
|
146
|
+
},
|
|
147
|
+
});
|
|
133
148
|
recommendation = errorMessages.bridgeLimitErrors.increaseAmount;
|
|
134
149
|
}
|
|
135
150
|
|
|
136
151
|
if (!isExclusive && !!maximum && maximum.lt(swap.fromAmount)) {
|
|
137
|
-
fromAmountRangeError =
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
152
|
+
fromAmountRangeError = i18n.t({
|
|
153
|
+
id: 'requiredEqualMax',
|
|
154
|
+
message: 'Required: <= {max} {symbol}',
|
|
155
|
+
values: {
|
|
156
|
+
max: numberToString(
|
|
157
|
+
maximum,
|
|
158
|
+
TOKEN_AMOUNT_MIN_DECIMALS,
|
|
159
|
+
TOKEN_AMOUNT_MAX_DECIMALS
|
|
160
|
+
),
|
|
161
|
+
symbol: swap.from.symbol,
|
|
162
|
+
},
|
|
163
|
+
});
|
|
142
164
|
recommendation = errorMessages.bridgeLimitErrors.decreaseAmount;
|
|
143
165
|
} else if (isExclusive && !!maximum && maximum.lte(swap.fromAmount)) {
|
|
144
|
-
fromAmountRangeError =
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
166
|
+
fromAmountRangeError = i18n.t({
|
|
167
|
+
id: 'requiredMax',
|
|
168
|
+
message: 'Required: < {max} {symbol}',
|
|
169
|
+
values: {
|
|
170
|
+
max: numberToString(
|
|
171
|
+
maximum,
|
|
172
|
+
TOKEN_AMOUNT_MIN_DECIMALS,
|
|
173
|
+
TOKEN_AMOUNT_MAX_DECIMALS
|
|
174
|
+
),
|
|
175
|
+
symbol: swap.from.symbol,
|
|
176
|
+
},
|
|
177
|
+
});
|
|
149
178
|
recommendation = errorMessages.bridgeLimitErrors.decreaseAmount;
|
|
150
179
|
}
|
|
151
180
|
|
|
@@ -570,15 +599,25 @@ export function getBalanceWarnings(
|
|
|
570
599
|
);
|
|
571
600
|
let reason = '';
|
|
572
601
|
if (asset.reason === 'FEE') {
|
|
573
|
-
reason = ' for network fee';
|
|
602
|
+
reason = i18n.t(' for network fee');
|
|
574
603
|
}
|
|
575
604
|
if (asset.reason === 'INPUT_ASSET') {
|
|
576
|
-
reason = ' for swap';
|
|
605
|
+
reason = i18n.t(' for swap');
|
|
577
606
|
}
|
|
578
607
|
if (asset.reason === 'FEE_AND_INPUT_ASSET') {
|
|
579
|
-
reason = ' for input and network fee';
|
|
608
|
+
reason = i18n.t(' for input and network fee');
|
|
580
609
|
}
|
|
581
|
-
const warningMessage =
|
|
610
|
+
const warningMessage = i18n.t({
|
|
611
|
+
id: 'balanceWarningMessage',
|
|
612
|
+
message: `Needs ≈ {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.`,
|
|
613
|
+
values: {
|
|
614
|
+
requiredAmount,
|
|
615
|
+
symbol,
|
|
616
|
+
reason,
|
|
617
|
+
currentAmount,
|
|
618
|
+
blockchain: asset.asset.blockchain,
|
|
619
|
+
},
|
|
620
|
+
});
|
|
582
621
|
return warningMessage;
|
|
583
622
|
});
|
|
584
623
|
}
|
|
@@ -626,13 +665,14 @@ export function getSwapMessages(
|
|
|
626
665
|
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
627
666
|
switch (currentStep?.networkStatus) {
|
|
628
667
|
case PendingSwapNetworkStatus.WaitingForConnectingWallet:
|
|
629
|
-
message = message || 'Waiting for connecting wallet';
|
|
668
|
+
message = message || i18n.t('Waiting for connecting wallet');
|
|
630
669
|
break;
|
|
631
670
|
case PendingSwapNetworkStatus.WaitingForQueue:
|
|
632
|
-
message =
|
|
671
|
+
message =
|
|
672
|
+
message || i18n.t('Waiting for other running tasks to be finished');
|
|
633
673
|
break;
|
|
634
674
|
case PendingSwapNetworkStatus.WaitingForNetworkChange:
|
|
635
|
-
message = message || 'Waiting for changing wallet network';
|
|
675
|
+
message = message || i18n.t('Waiting for changing wallet network');
|
|
636
676
|
break;
|
|
637
677
|
default:
|
|
638
678
|
message = message || '';
|
package/src/utils/time.ts
CHANGED
|
@@ -1,46 +1,79 @@
|
|
|
1
|
-
import { PendingSwap } from '@rango-dev/queue-manager-rango-preset';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
import type { PendingSwap } from '@rango-dev/queue-manager-rango-preset';
|
|
2
|
+
|
|
3
|
+
import { i18n } from '@lingui/core';
|
|
4
|
+
|
|
5
|
+
const MILLISECOND_PER_SECOND = 1000;
|
|
6
|
+
const SECONDS_PER_YEAR = 31536000;
|
|
7
|
+
const SECONDS_PER_MONTH = 2592000;
|
|
8
|
+
const SECONDS_PER_DAY = 86400;
|
|
9
|
+
const SECONDS_PER_HOUR = 3600;
|
|
10
|
+
const SECONDS_PER_MINUTE = 60;
|
|
11
|
+
|
|
12
|
+
export function timeSince(millisecond: number): string {
|
|
13
|
+
const seconds = Math.floor(
|
|
14
|
+
(Date.now() - millisecond) / MILLISECOND_PER_SECOND
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
const intervals = [
|
|
18
|
+
{
|
|
19
|
+
turningPoint: SECONDS_PER_YEAR,
|
|
20
|
+
label: i18n.t('year'),
|
|
21
|
+
pluralLabel: i18n.t('years'),
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
turningPoint: SECONDS_PER_MONTH,
|
|
25
|
+
label: i18n.t('month'),
|
|
26
|
+
pluralLabel: i18n.t('months'),
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
turningPoint: SECONDS_PER_DAY,
|
|
30
|
+
label: i18n.t('day'),
|
|
31
|
+
pluralLabel: i18n.t('days'),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
turningPoint: SECONDS_PER_HOUR,
|
|
35
|
+
label: i18n.t('hour'),
|
|
36
|
+
pluralLabel: i18n.t('hours'),
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
turningPoint: SECONDS_PER_MINUTE,
|
|
40
|
+
label: i18n.t('minute'),
|
|
41
|
+
pluralLabel: i18n.t('minutes'),
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
|
|
45
|
+
const sortedIntervals = intervals.sort(
|
|
46
|
+
(a, b) => b.turningPoint - a.turningPoint
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
for (const interval of sortedIntervals) {
|
|
50
|
+
const { turningPoint, label, pluralLabel } = interval;
|
|
51
|
+
const intervalCount = Math.floor(seconds / turningPoint);
|
|
52
|
+
if (intervalCount > 1) {
|
|
53
|
+
return `${intervalCount} ${pluralLabel}`;
|
|
54
|
+
}
|
|
55
|
+
if (intervalCount === 1) {
|
|
56
|
+
return `${intervalCount} ${label}`;
|
|
32
57
|
}
|
|
33
58
|
}
|
|
34
59
|
|
|
35
|
-
if (
|
|
36
|
-
|
|
60
|
+
if (seconds > 1) {
|
|
61
|
+
return `${seconds} ${i18n.t('seconds')}`;
|
|
37
62
|
}
|
|
38
63
|
|
|
39
|
-
return
|
|
64
|
+
return `${seconds} ${i18n.t('second')}`;
|
|
40
65
|
}
|
|
41
66
|
|
|
42
67
|
export function getSwapDate(pendingSwap: PendingSwap) {
|
|
43
68
|
return pendingSwap.finishTime
|
|
44
|
-
?
|
|
45
|
-
|
|
69
|
+
? i18n.t({
|
|
70
|
+
id: 'timeAgo',
|
|
71
|
+
message: '{time} ago',
|
|
72
|
+
values: { time: timeSince(parseInt(pendingSwap.finishTime)) },
|
|
73
|
+
})
|
|
74
|
+
: i18n.t({
|
|
75
|
+
id: 'timeAgo',
|
|
76
|
+
message: '{time} ago',
|
|
77
|
+
values: { time: timeSince(parseInt(pendingSwap.creationTime)) },
|
|
78
|
+
});
|
|
46
79
|
}
|