tek-wallet 0.0.388 → 0.0.390
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,6 +1,8 @@
|
|
|
1
1
|
import { AccordionProps } from "@mui/material";
|
|
2
2
|
export interface FeesProps extends Omit<AccordionProps, "children"> {
|
|
3
3
|
feesData: string;
|
|
4
|
+
onEnoughBalanceToPayFee?: () => void;
|
|
5
|
+
onNotEnoughBalanceToPayFee?: () => void;
|
|
4
6
|
}
|
|
5
7
|
declare function Fees(props: FeesProps): import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export default Fees;
|
|
@@ -33,11 +33,40 @@ var Text_1 = __importDefault(require("../Text"));
|
|
|
33
33
|
var Formatter_1 = __importDefault(require("../Formatter"));
|
|
34
34
|
var jsx_runtime_2 = require("react/jsx-runtime");
|
|
35
35
|
var parsePropsData_1 = __importDefault(require("../../../utils/parsePropsData"));
|
|
36
|
+
var useWalletData_1 = __importDefault(require("../../../hooks/useWalletData"));
|
|
37
|
+
var react_1 = require("react");
|
|
38
|
+
var ReceiveFunction_1 = __importDefault(require("../ReceiveFunction"));
|
|
36
39
|
function Fees(props) {
|
|
37
40
|
var _a, _b;
|
|
38
41
|
var sx = props.sx, rest = __rest(props, ["sx"]);
|
|
39
42
|
var theme = (0, material_1.useTheme)();
|
|
40
43
|
var feesData = (0, parsePropsData_1.default)(props === null || props === void 0 ? void 0 : props.feesData);
|
|
44
|
+
var tokens = (0, useWalletData_1.default)().tokens;
|
|
45
|
+
var isEnoughBalanceToPayFee = (0, react_1.useMemo)(function () {
|
|
46
|
+
// const tokensFee: FeeDetail[] = [];
|
|
47
|
+
// feesData?.feeDetail?.forEach((fee) => {
|
|
48
|
+
// const index = tokensFee?.findIndex(
|
|
49
|
+
// (token) => token.currencySlug === fee?.currencySlug
|
|
50
|
+
// );
|
|
51
|
+
// if (index === -1) {
|
|
52
|
+
// tokensFee.push(fee);
|
|
53
|
+
// } else {
|
|
54
|
+
// if (+tokensFee[index]?.feeFixed < fee?.feeInCurrency) {
|
|
55
|
+
// tokensFee[index] = { ...fee, isEnoughBalance: false };
|
|
56
|
+
// }
|
|
57
|
+
// }
|
|
58
|
+
// });
|
|
59
|
+
// for (let i = 0; i < length; i++) {
|
|
60
|
+
// const fee = feesData?.feeDetail[i] as FeeDetail;
|
|
61
|
+
// const token = tokens?.find(
|
|
62
|
+
// (token) => token.currency_slug === fee?.currencySlug
|
|
63
|
+
// );
|
|
64
|
+
// if (!token || +token?.current_value < (fee?.feeInCurrency ?? 0)) {
|
|
65
|
+
// tokensFee.push({ ...fee, isEnoughBalance: false });
|
|
66
|
+
// }
|
|
67
|
+
// }
|
|
68
|
+
return true;
|
|
69
|
+
}, [tokens]);
|
|
41
70
|
return ((0, jsx_runtime_1.jsxs)(material_1.Accordion, __assign({ defaultExpanded: true }, rest, { sx: __assign({ "&.MuiAccordion-root": {
|
|
42
71
|
backgroundColor: "transparent",
|
|
43
72
|
margin: 0,
|
|
@@ -56,20 +85,22 @@ function Fees(props) {
|
|
|
56
85
|
}, "& .MuiAccordionDetails-root": {
|
|
57
86
|
paddingLeft: theme.mixins.customPadding.p12,
|
|
58
87
|
paddingRight: theme.mixins.customPadding.p12,
|
|
59
|
-
} }, sx), children: [(0, jsx_runtime_1.jsx)(material_1.AccordionSummary, { expandIcon: (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("arrow_down"), width: 20 }), children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { width: "100%" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.fieldTitle), children: "Total fees" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { ml: "auto" }), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: 1000 }) })] }) }), (0, jsx_runtime_1.jsx)(material_1.AccordionDetails, { children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { alignItems: "stretch" }), children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { width: "fit-content", gap: theme.mixins.gaps.g8, alignItems: "center" }), children: (_a = feesData === null || feesData === void 0 ? void 0 : feesData.feeDetail) === null || _a === void 0 ? void 0 : _a.map(function (item, index) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
88
|
+
} }, sx), children: [(0, jsx_runtime_1.jsx)(material_1.AccordionSummary, { expandIcon: (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("arrow_down"), width: 20 }), children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { width: "100%" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.fieldTitle), children: "Total fees" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { ml: "auto" }), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: 1000 }) })] }) }), (0, jsx_runtime_1.jsx)(material_1.AccordionDetails, { children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { alignItems: "stretch" }), children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { width: "fit-content", gap: theme.mixins.gaps.g8, alignItems: "center" }), children: (_a = feesData === null || feesData === void 0 ? void 0 : feesData.feeDetail) === null || _a === void 0 ? void 0 : _a.map(function (item, index) {
|
|
89
|
+
var _a;
|
|
90
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_2.Fragment, { children: [index !== 0 && ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
|
|
91
|
+
borderRight: "1px dashed ".concat(theme.palette.border.white24),
|
|
92
|
+
flex: 1,
|
|
93
|
+
} })), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("timeline_dot"), width: 16 })] }, (_a = item.feeType) === null || _a === void 0 ? void 0 : _a.name));
|
|
94
|
+
}) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { flex: 1, gap: theme.mixins.gaps.g8 }), children: (_b = feesData === null || feesData === void 0 ? void 0 : feesData.feeDetail) === null || _b === void 0 ? void 0 : _b.map(function (item) {
|
|
95
|
+
var _a, _b;
|
|
96
|
+
return ((0, jsx_runtime_1.jsx)(FeeDetail, { feeName: (_a = item.feeType) === null || _a === void 0 ? void 0 : _a.name, feeInCurrency: item.feeInCurrency, feeInUSD: item.feeInUSD, currencyName: "USDT" }, (_b = item.feeType) === null || _b === void 0 ? void 0 : _b.name));
|
|
97
|
+
}) })] }), isEnoughBalanceToPayFee && ((0, jsx_runtime_1.jsxs)(Text_1.default, { sx: __assign({}, theme.mixins.validationError), children: ["You don't have enough balance to pay the fee, please ", " ", (0, jsx_runtime_1.jsxs)(ReceiveFunction_1.default, { children: [" ", (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
|
|
98
|
+
textDecoration: "underline",
|
|
99
|
+
}, children: "Topup more" })] }), " ", "to continue"] }))] }) })] })));
|
|
69
100
|
}
|
|
70
101
|
exports.default = Fees;
|
|
71
102
|
var FeeDetail = function (_a) {
|
|
72
103
|
var feeName = _a.feeName, feeInCurrency = _a.feeInCurrency, feeInUSD = _a.feeInUSD, currencyName = _a.currencyName;
|
|
73
104
|
var theme = (0, material_1.useTheme)();
|
|
74
|
-
return ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g4 }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.fieldTitle), { whiteSpace: "nowrap" }), children: feeName }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { flex: 1, width: "fit-content", alignItems: "flex-end" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: feeInCurrency, unit: " ".concat(currencyName) }) }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: feeInUSD, start: "~ $" }) })] })] }));
|
|
105
|
+
return ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g4 }), children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4 }), children: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.fieldTitle), { whiteSpace: "nowrap" }), children: feeName }) }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { flex: 1, width: "fit-content", alignItems: "flex-end" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: feeInCurrency, unit: " ".concat(currencyName) }) }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: feeInUSD, start: "~ $" }) })] })] }));
|
|
75
106
|
};
|
|
@@ -144,33 +144,32 @@ var AmountError;
|
|
|
144
144
|
AmountError["MIN_LIMIT"] = "The minimum amount is";
|
|
145
145
|
})(AmountError || (exports.AmountError = AmountError = {}));
|
|
146
146
|
var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
|
|
147
|
-
var
|
|
148
|
-
console.warn("🚀 ~ swiperKey:", swiperKey);
|
|
147
|
+
var _a;
|
|
149
148
|
var drawerRef = (0, react_1.useRef)(null);
|
|
150
149
|
var swiperRef = (0, react_1.useRef)(null);
|
|
151
150
|
var theme = (0, material_1.useTheme)();
|
|
152
|
-
var
|
|
153
|
-
var
|
|
154
|
-
var
|
|
151
|
+
var _b = (0, react_1.useState)(WithdrawStep.SELECT_METHOD), currentStep = _b[0], setCurrentStep = _b[1];
|
|
152
|
+
var _c = (0, react_1.useState)(), selectedToken = _c[0], setSelectedToken = _c[1];
|
|
153
|
+
var _d = (0, react_1.useState)(), selectedNetwork = _d[0], setSelectedNetwork = _d[1];
|
|
155
154
|
var isAuthenticated = (0, useWalletData_1.default)().isAuthenticated;
|
|
156
|
-
var
|
|
157
|
-
var
|
|
158
|
-
var
|
|
159
|
-
var
|
|
160
|
-
var
|
|
161
|
-
var
|
|
162
|
-
var
|
|
163
|
-
var
|
|
155
|
+
var _e = (0, useWithdrawData_1.default)(), withdrawTokens = _e.withdrawTokens, updateWithdrawToken = _e.updateWithdrawToken, updateSendInternalToken = _e.updateSendInternalToken, sendInternalTokens = _e.sendInternalTokens;
|
|
156
|
+
var _f = (0, react_1.useState)(), infoDialogContent = _f[0], setInfoDialogContent = _f[1];
|
|
157
|
+
var _g = (0, react_1.useState)(""), amount = _g[0], setAmount = _g[1];
|
|
158
|
+
var _h = (0, react_1.useState)(undefined), memo = _h[0], setMemo = _h[1];
|
|
159
|
+
var _j = (0, react_1.useState)(undefined), recipientAddress = _j[0], setRecipientAddress = _j[1];
|
|
160
|
+
var _k = (0, react_1.useState)(), amountErrorMessage = _k[0], setAmountErrorMessage = _k[1];
|
|
161
|
+
var _l = (0, react_1.useState)(true), hiddenError = _l[0], setHiddenError = _l[1];
|
|
162
|
+
var _m = (0, react_1.useState)(), amountError = _m[0], setAmountError = _m[1];
|
|
164
163
|
var scannerAllQrCodeRef = (0, react_1.useRef)(null);
|
|
165
164
|
var scannerAddressQrCodeRef = (0, react_1.useRef)(null);
|
|
166
165
|
var backDropRef = (0, react_1.useRef)(null);
|
|
167
166
|
var suggestUseTransferInternalDialogRef = (0, react_1.useRef)(null);
|
|
168
167
|
var suggestUseTransferExternalDialogRef = (0, react_1.useRef)(null);
|
|
169
|
-
var
|
|
170
|
-
var
|
|
171
|
-
var
|
|
172
|
-
var
|
|
173
|
-
var
|
|
168
|
+
var _o = (0, react_1.useState)(), selectedMethod = _o[0], setSelectedMethod = _o[1];
|
|
169
|
+
var _p = (0, react_1.useState)(), sendInfoGet = _p[0], setSendInfoGet = _p[1];
|
|
170
|
+
var _q = (0, react_1.useState)(false), isLoadingEstimateFee = _q[0], setIsLoadingEstimateFee = _q[1];
|
|
171
|
+
var _r = (0, react_1.useState)(), estimateFee = _r[0], setEstimateFee = _r[1];
|
|
172
|
+
var _s = (0, react_1.useState)(), recipientAddressError = _s[0], setRecipientAddressError = _s[1];
|
|
174
173
|
var onlyChangeAddress = (0, react_1.useRef)(false);
|
|
175
174
|
var withdrawToken = (0, react_1.useMemo)(function () {
|
|
176
175
|
return selectedMethod === SendMethods.TRANSFER_EXTERNAL
|
|
@@ -194,6 +193,10 @@ var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
194
193
|
return undefined;
|
|
195
194
|
return +amount - +(estimateFee === null || estimateFee === void 0 ? void 0 : estimateFee.feeInCurrency);
|
|
196
195
|
}, [estimateFee, amount]);
|
|
196
|
+
var swiperKey = (0, react_1.useMemo)(function () {
|
|
197
|
+
var _a;
|
|
198
|
+
return "".concat((_a = estimateFee === null || estimateFee === void 0 ? void 0 : estimateFee.feeDetail) === null || _a === void 0 ? void 0 : _a.length, "-").concat(amountError, "-").concat(recipientAddressError);
|
|
199
|
+
}, [estimateFee, amountError, recipientAddressError]);
|
|
197
200
|
var clearValues = function () {
|
|
198
201
|
setSelectedToken(undefined);
|
|
199
202
|
setSelectedNetwork(undefined);
|
|
@@ -611,7 +614,7 @@ var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
611
614
|
placeholder: "Enter memo",
|
|
612
615
|
value: memo,
|
|
613
616
|
onChange: handleChangeMemo,
|
|
614
|
-
} })] })), (0, jsx_runtime_1.jsx)(Fees_1.default, { feesData: JSON.stringify(estimateFee) }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign({}, theme.mixins.row), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.fieldTitle), children: "Estimate receive" }), (0, jsx_runtime_1.jsx)(
|
|
617
|
+
} })] })), ((_a = estimateFee === null || estimateFee === void 0 ? void 0 : estimateFee.feeDetail) === null || _a === void 0 ? void 0 : _a.length) && !!amount && ((0, jsx_runtime_1.jsx)(Fees_1.default, { feesData: JSON.stringify(estimateFee) })), estimateReceive !== undefined && ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign({}, theme.mixins.row), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.fieldTitle), children: "Estimate receive" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { ml: "auto" }), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: estimateReceive }) })] })), (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { sx: { width: "100%" }, onClick: handleSend, status: !!amountError ||
|
|
615
618
|
!!recipientAddressError ||
|
|
616
619
|
!recipientAddress ||
|
|
617
620
|
!amount ||
|
|
@@ -22,8 +22,16 @@ export interface FeeDetail {
|
|
|
22
22
|
feeInUSD: number;
|
|
23
23
|
feeInCurrency: number;
|
|
24
24
|
feePercent: number;
|
|
25
|
+
currency: Currency;
|
|
25
26
|
feeFixed: number;
|
|
26
27
|
}
|
|
28
|
+
export interface Currency {
|
|
29
|
+
id: number;
|
|
30
|
+
slug: string;
|
|
31
|
+
full_name: string;
|
|
32
|
+
icon: string;
|
|
33
|
+
link: string;
|
|
34
|
+
}
|
|
27
35
|
export interface FeeType {
|
|
28
36
|
name: string;
|
|
29
37
|
slug: string;
|