tek-wallet 0.0.516 → 0.0.518
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.
|
@@ -103,6 +103,8 @@ var Fees_1 = __importDefault(require("../Fees"));
|
|
|
103
103
|
var get_est_fee_service_1 = __importDefault(require("../../../services/axios/get-est-fee-service"));
|
|
104
104
|
var type_1 = require("../../../services/axios/get-activities-service/type");
|
|
105
105
|
var Activities_1 = __importDefault(require("../Activities"));
|
|
106
|
+
var validate_wallet_address_service_1 = __importDefault(require("../../../services/axios/validate-wallet-address-service"));
|
|
107
|
+
var type_2 = require("../../../services/axios/validate-wallet-address-service/type");
|
|
106
108
|
var SendExternalTokenError;
|
|
107
109
|
(function (SendExternalTokenError) {
|
|
108
110
|
SendExternalTokenError["TOKEN_NOT_FOUND"] = "Token not found";
|
|
@@ -118,12 +120,13 @@ var SendExternalToken = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
118
120
|
var withdrawTokens = (0, useWithdrawData_1.default)().withdrawTokens;
|
|
119
121
|
var isAuthenticated = (0, useWalletData_1.default)().isAuthenticated;
|
|
120
122
|
var confirmLayoutDrawerRef = (0, react_1.useRef)(null);
|
|
121
|
-
var _b = (0, react_1.useState)(undefined),
|
|
122
|
-
var _c = (0, react_1.useState)(undefined),
|
|
123
|
-
var _d = (0, react_1.useState)(
|
|
124
|
-
var _e = (0, react_1.useState)(
|
|
125
|
-
var _f = (0, react_1.useState)(
|
|
126
|
-
var _g = (0, react_1.useState)(
|
|
123
|
+
var _b = (0, react_1.useState)(undefined), error = _b[0], setError = _b[1];
|
|
124
|
+
var _c = (0, react_1.useState)(undefined), errorAmount = _c[0], setErrorAmount = _c[1];
|
|
125
|
+
var _d = (0, react_1.useState)(Button_1.BUTTON_STATUS.ENABLED), buttonStatus = _d[0], setButtonStatus = _d[1];
|
|
126
|
+
var _e = (0, react_1.useState)(undefined), errorAddress = _e[0], setErrorAddress = _e[1];
|
|
127
|
+
var _f = (0, react_1.useState)(false), isValidatingAddress = _f[0], setIsValidatingAddress = _f[1];
|
|
128
|
+
var _g = (0, react_1.useState)(props.initFeeData), estimateFee = _g[0], setEstimateFee = _g[1];
|
|
129
|
+
var _h = (0, react_1.useState)(false), isLoadingEstimateFee = _h[0], setIsLoadingEstimateFee = _h[1];
|
|
127
130
|
var activitiesRef = (0, react_1.useRef)(null);
|
|
128
131
|
var amount = props.sendExternalData.amount;
|
|
129
132
|
var network = props.sendExternalData.network;
|
|
@@ -135,7 +138,7 @@ var SendExternalToken = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
135
138
|
return __generator(this, function (_a) {
|
|
136
139
|
switch (_a.label) {
|
|
137
140
|
case 0:
|
|
138
|
-
if (!tokenSlug
|
|
141
|
+
if (!tokenSlug)
|
|
139
142
|
return [2 /*return*/];
|
|
140
143
|
setIsLoadingEstimateFee(true);
|
|
141
144
|
return [4 /*yield*/, (0, get_est_fee_service_1.default)({
|
|
@@ -150,32 +153,76 @@ var SendExternalToken = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
150
153
|
return [2 /*return*/];
|
|
151
154
|
}
|
|
152
155
|
});
|
|
153
|
-
}); }, [amount, tokenSlug
|
|
154
|
-
var
|
|
155
|
-
|
|
156
|
-
|
|
156
|
+
}); }, [amount, tokenSlug]);
|
|
157
|
+
var token = (0, react_1.useMemo)(function () {
|
|
158
|
+
return withdrawTokens === null || withdrawTokens === void 0 ? void 0 : withdrawTokens.find(function (token) { return token.slug === tokenSlug; });
|
|
159
|
+
}, [tokenSlug, withdrawTokens]);
|
|
160
|
+
var validateAmount = (0, react_1.useCallback)(function () {
|
|
157
161
|
if (!token) {
|
|
158
162
|
setError(SendExternalTokenError.TOKEN_NOT_FOUND);
|
|
159
|
-
return;
|
|
163
|
+
return false;
|
|
160
164
|
}
|
|
161
|
-
if (+
|
|
165
|
+
if (+amount > token.max_value) {
|
|
162
166
|
setError(SendExternalTokenError.MAX_AMOUNT);
|
|
163
167
|
setErrorAmount(token.max_value);
|
|
164
|
-
return;
|
|
168
|
+
return false;
|
|
165
169
|
}
|
|
166
|
-
if (+
|
|
170
|
+
if (+amount < token.min_value) {
|
|
167
171
|
setError(SendExternalTokenError.MIN_AMOUNT);
|
|
168
172
|
setErrorAmount(token.min_value);
|
|
169
|
-
return;
|
|
173
|
+
return false;
|
|
170
174
|
}
|
|
171
|
-
if (+
|
|
175
|
+
if (+amount > +token.balance) {
|
|
172
176
|
setError(SendExternalTokenError.NOT_ENOUGH_BALANCE);
|
|
173
177
|
setErrorAmount(token.balance);
|
|
174
|
-
return;
|
|
178
|
+
return false;
|
|
175
179
|
}
|
|
176
180
|
setError(undefined);
|
|
177
181
|
setErrorAmount(undefined);
|
|
178
|
-
|
|
182
|
+
return true;
|
|
183
|
+
}, [amount, tokenSlug, withdrawTokens]);
|
|
184
|
+
var validateAddress = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
185
|
+
var message;
|
|
186
|
+
return __generator(this, function (_a) {
|
|
187
|
+
switch (_a.label) {
|
|
188
|
+
case 0:
|
|
189
|
+
setIsValidatingAddress(true);
|
|
190
|
+
return [4 /*yield*/, (0, validate_wallet_address_service_1.default)({
|
|
191
|
+
address: toAddress,
|
|
192
|
+
network: network === null || network === void 0 ? void 0 : network.slug,
|
|
193
|
+
})];
|
|
194
|
+
case 1:
|
|
195
|
+
message = (_a.sent()).message;
|
|
196
|
+
setIsValidatingAddress(false);
|
|
197
|
+
if (message !== type_2.ValidateWalletAddressResultMessage.EXTERNAL_WALLET) {
|
|
198
|
+
setErrorAddress(message);
|
|
199
|
+
return [2 /*return*/, false];
|
|
200
|
+
}
|
|
201
|
+
setErrorAddress(undefined);
|
|
202
|
+
return [2 /*return*/, true];
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}); }, [toAddress, network]);
|
|
206
|
+
var validateAll = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
207
|
+
var isAmountValid, isAddressValid;
|
|
208
|
+
return __generator(this, function (_a) {
|
|
209
|
+
switch (_a.label) {
|
|
210
|
+
case 0:
|
|
211
|
+
isAmountValid = validateAmount();
|
|
212
|
+
if (!isAmountValid)
|
|
213
|
+
return [2 /*return*/, false];
|
|
214
|
+
return [4 /*yield*/, validateAddress()];
|
|
215
|
+
case 1:
|
|
216
|
+
isAddressValid = _a.sent();
|
|
217
|
+
if (!isAddressValid)
|
|
218
|
+
return [2 /*return*/, false];
|
|
219
|
+
return [4 /*yield*/, getEstimateFee()];
|
|
220
|
+
case 2:
|
|
221
|
+
_a.sent();
|
|
222
|
+
return [2 /*return*/];
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}); }, [validateAmount, validateAddress, getEstimateFee]);
|
|
179
226
|
var handleSendExternalToken = function (passcode) { return __awaiter(void 0, void 0, void 0, function () {
|
|
180
227
|
var response, err_1;
|
|
181
228
|
var _a, _b;
|
|
@@ -217,6 +264,7 @@ var SendExternalToken = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
217
264
|
if (!isAuthenticated)
|
|
218
265
|
throw new Error("Please connect your wallet");
|
|
219
266
|
(_a = confirmLayoutDrawerRef.current) === null || _a === void 0 ? void 0 : _a.open();
|
|
267
|
+
validateAll();
|
|
220
268
|
};
|
|
221
269
|
var handleClose = function () {
|
|
222
270
|
var _a;
|
|
@@ -233,18 +281,12 @@ var SendExternalToken = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
233
281
|
return undefined;
|
|
234
282
|
return +amount - +(estimateFee === null || estimateFee === void 0 ? void 0 : estimateFee.feeInCurrency);
|
|
235
283
|
}, [estimateFee, amount]);
|
|
236
|
-
(0,
|
|
237
|
-
getEstimateFee();
|
|
238
|
-
}, [getEstimateFee]);
|
|
239
|
-
(0, react_1.useEffect)(function () {
|
|
240
|
-
validateAmount(props.sendExternalData);
|
|
241
|
-
}, [validateAmount, props.sendExternalData]);
|
|
242
|
-
return ((0, jsx_runtime_1.jsx)(RequireConnect_1.default, { children: (0, jsx_runtime_1.jsxs)(ConfirmLayout_1.default, { ref: confirmLayoutDrawerRef, action: transactionSlug, trigger: props.children, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g12 }), children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign({}, theme.mixins.paper), children: [(0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Recipient address", value: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
|
|
284
|
+
return ((0, jsx_runtime_1.jsx)(RequireConnect_1.default, { children: (0, jsx_runtime_1.jsxs)(ConfirmLayout_1.default, { onOpen: validateAll, ref: confirmLayoutDrawerRef, action: transactionSlug, trigger: props.children, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g12 }), children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign({}, theme.mixins.paper), children: [(0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Recipient address", value: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
|
|
243
285
|
wordBreak: "break-all",
|
|
244
|
-
}, children: toAddress }) }), (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Network", value: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g6, ml: "auto" }), children: [(0, jsx_runtime_1.jsx)(Icon_1.default, { width: 20, src: network === null || network === void 0 ? void 0 : network.icon }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: network === null || network === void 0 ? void 0 : network.name })] }) }), (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Amount", value: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: amount, unit: " ".concat(token === null || token === void 0 ? void 0 : token.name) }) }), !!memo && (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Memo", value: memo }), ((_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), amount: +amount })), (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Receive amount estimated", value: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
|
|
286
|
+
}, children: toAddress }), valueDescription: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.validationError), children: errorAddress }) }), (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Network", value: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g6, ml: "auto" }), children: [(0, jsx_runtime_1.jsx)(Icon_1.default, { width: 20, src: network === null || network === void 0 ? void 0 : network.icon }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: network === null || network === void 0 ? void 0 : network.name })] }) }), (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Amount", value: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: amount, unit: " ".concat(token === null || token === void 0 ? void 0 : token.name) }) }), !!memo && (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Memo", value: memo }), ((_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), amount: +amount })), (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: "Receive amount estimated", value: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
|
|
245
287
|
fontWeight: theme.typography.fontWeight600,
|
|
246
288
|
fontSize: theme.typography.fontSize16,
|
|
247
|
-
}, children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: estimateReceive, unit: " ".concat(token === null || token === void 0 ? void 0 : token.name) }) }) }), !!error && ((0, jsx_runtime_1.jsxs)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.validationError), { mt: theme.mixins.gaps.g6 }), children: [error, " ", !!errorAmount && (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: errorAmount, unit: " ".concat(token === null || token === void 0 ? void 0 : token.name) })] }))] }), (0, jsx_runtime_1.jsx)(ConfirmByPasscode_1.default, { action: transactionSlug, onConfirmSuccess: handleSendExternalToken, children: (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { status: !!error || isLoadingEstimateFee ? Button_1.BUTTON_STATUS.DISABLED : buttonStatus, sx: { width: "100%" }, children: "Confirm" }) })] }), (0, jsx_runtime_1.jsx)(Activities_1.default, { ref: activitiesRef })] }) }));
|
|
289
|
+
}, children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: estimateReceive, unit: " ".concat(token === null || token === void 0 ? void 0 : token.name) }) }) }), !!error && ((0, jsx_runtime_1.jsxs)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.validationError), { mt: theme.mixins.gaps.g6 }), children: [error, " ", !!errorAmount && (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: errorAmount, unit: " ".concat(token === null || token === void 0 ? void 0 : token.name) })] }))] }), (0, jsx_runtime_1.jsx)(ConfirmByPasscode_1.default, { action: transactionSlug, onConfirmSuccess: handleSendExternalToken, children: (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { status: !!error || isLoadingEstimateFee || isValidatingAddress ? Button_1.BUTTON_STATUS.DISABLED : buttonStatus, sx: { width: "100%" }, children: "Confirm" }) })] }), (0, jsx_runtime_1.jsx)(Activities_1.default, { ref: activitiesRef })] }) }));
|
|
248
290
|
});
|
|
249
291
|
SendExternalToken.displayName = "SendExternalToken";
|
|
250
292
|
exports.default = SendExternalToken;
|
|
@@ -116,7 +116,7 @@ var Formatter_1 = __importDefault(require("../Formatter"));
|
|
|
116
116
|
var get_est_fee_service_1 = __importDefault(require("../../../services/axios/get-est-fee-service"));
|
|
117
117
|
var Fees_1 = __importDefault(require("../Fees"));
|
|
118
118
|
var type_1 = require("../../../services/axios/get-activities-service/type");
|
|
119
|
-
|
|
119
|
+
var SendExternalToken_1 = __importDefault(require("../SendExternalToken"));
|
|
120
120
|
var SendInternalToken_1 = __importDefault(require("../SendInternalToken"));
|
|
121
121
|
var createDebounce_1 = __importDefault(require("../../../utils/createDebounce"));
|
|
122
122
|
var type_2 = require("../../../services/axios/validate-wallet-address-service/type");
|
|
@@ -587,28 +587,21 @@ var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
587
587
|
placeholder: "Enter memo",
|
|
588
588
|
value: memo,
|
|
589
589
|
onChange: handleChangeMemo,
|
|
590
|
-
} })] })), !!((_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), amount: +amount })), estimateReceive !== undefined && !amountError && ((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: "Receive amount estimated" }), (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 }) })] })), selectedMethod === SendMethods.TRANSFER_EXTERNAL && (
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
!recipientAddress ||
|
|
606
|
-
!amount ||
|
|
607
|
-
!selectedToken ||
|
|
608
|
-
isLoadingEstimateFee ||
|
|
609
|
-
isValidatingAddress
|
|
610
|
-
? Button_1.BUTTON_STATUS.DISABLED
|
|
611
|
-
: Button_1.BUTTON_STATUS.ENABLED, children: "Continue" })), selectedMethod === SendMethods.TRANSFER_INTERNAL && ((0, jsx_runtime_1.jsx)(SendInternalToken_1.default, { initFeeData: estimateFee, sendInternalData: {
|
|
590
|
+
} })] })), !!((_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), amount: +amount })), estimateReceive !== undefined && !amountError && ((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: "Receive amount estimated" }), (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 }) })] })), selectedMethod === SendMethods.TRANSFER_EXTERNAL && ((0, jsx_runtime_1.jsx)(SendExternalToken_1.default, { initFeeData: estimateFee, sendExternalData: {
|
|
591
|
+
amount: "".concat(amount),
|
|
592
|
+
currency_slug: (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.slug) || "",
|
|
593
|
+
to_address: recipientAddress || "",
|
|
594
|
+
network: selectedNetwork,
|
|
595
|
+
memo: memo || "",
|
|
596
|
+
}, onSuccess: close, children: (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { sx: { width: "100%" }, status: !!amountError ||
|
|
597
|
+
!!recipientAddressError ||
|
|
598
|
+
!recipientAddress ||
|
|
599
|
+
!amount ||
|
|
600
|
+
!selectedToken ||
|
|
601
|
+
isLoadingEstimateFee ||
|
|
602
|
+
isValidatingAddress
|
|
603
|
+
? Button_1.BUTTON_STATUS.DISABLED
|
|
604
|
+
: Button_1.BUTTON_STATUS.ENABLED, children: "Continue" }) })), selectedMethod === SendMethods.TRANSFER_INTERNAL && ((0, jsx_runtime_1.jsx)(SendInternalToken_1.default, { initFeeData: estimateFee, sendInternalData: {
|
|
612
605
|
amount: "".concat(amount),
|
|
613
606
|
currency_slug: (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.slug) || "",
|
|
614
607
|
to_address: recipientAddress || "",
|