tek-wallet 0.0.209 → 0.0.211

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.
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ interface SafeSvgRendererProps {
3
+ svgString: string;
4
+ className?: string;
5
+ width?: number | string;
6
+ height?: number | string;
7
+ }
8
+ declare const SafeSvgRenderer: React.FC<SafeSvgRendererProps>;
9
+ export default SafeSvgRenderer;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var jsx_runtime_1 = require("react/jsx-runtime");
7
+ var dompurify_1 = __importDefault(require("dompurify"));
8
+ var SafeSvgRenderer = function (_a) {
9
+ var svgString = _a.svgString, className = _a.className, _b = _a.width, width = _b === void 0 ? "100%" : _b, _c = _a.height, height = _c === void 0 ? "100%" : _c;
10
+ // Sanitize the SVG string using DOMPurify
11
+ var sanitizedSvg = dompurify_1.default.sanitize(svgString, {
12
+ USE_PROFILES: { svg: true, svgFilters: true },
13
+ ADD_TAGS: ["use"],
14
+ ADD_ATTR: ["xlink:href"],
15
+ });
16
+ return ((0, jsx_runtime_1.jsx)("div", { className: className, style: { width: width, height: height }, dangerouslySetInnerHTML: { __html: sanitizedSvg } }));
17
+ };
18
+ exports.default = SafeSvgRenderer;
@@ -39,6 +39,7 @@ var useDepositData_1 = __importDefault(require("../../../hooks/useDepositData"))
39
39
  var RequireConnect_1 = __importDefault(require("../RequireConnect"));
40
40
  var WaitingData_1 = __importDefault(require("../WaitingData"));
41
41
  var EmptyData_1 = __importDefault(require("../EmptyData"));
42
+ var SafeSvgRenderer_1 = __importDefault(require("../SafeSvgRenderer"));
42
43
  var DepositStep;
43
44
  (function (DepositStep) {
44
45
  DepositStep[DepositStep["SELECT_TOKEN"] = 1] = "SELECT_TOKEN";
@@ -149,7 +150,8 @@ var DepositFunction = (0, react_1.forwardRef)(function (props, ref) {
149
150
  display: "flex",
150
151
  flexDirection: "column",
151
152
  gap: theme.mixins.gaps.g16,
152
- }, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({ width: "100%" }, theme.mixins.column), { gap: theme.mixins.gaps.g12, backgroundColor: theme.palette.background.black24, borderRadius: theme.mixins.theBorderRadius.r16, padding: theme.mixins.customPadding.p16, alignItems: "flex-start", backdropFilter: "blur(10px)" }), id: "share-deposit-info", children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
153
+ }, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({ width: "100%" }, theme.mixins.column), { gap: theme.mixins.gaps.g12, backgroundColor: theme.palette.background.black24, borderRadius: theme.mixins.theBorderRadius.r16, padding: theme.mixins.customPadding.p16, alignItems: "flex-start", backdropFilter: "blur(10px)" }), id: "share-deposit-info", children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, color: "text.white", alignSelf: "center" }), children: (0, jsx_runtime_1.jsxs)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: ["Deposit ", selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name] }) }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
154
+ position: "relative",
153
155
  width: "fit-content",
154
156
  height: "fit-content",
155
157
  alignSelf: "center",
@@ -157,9 +159,9 @@ var DepositFunction = (0, react_1.forwardRef)(function (props, ref) {
157
159
  overflow: "hidden",
158
160
  backgroundColor: theme.palette.background.white,
159
161
  backdropFilter: "blur(10px)",
160
- }, children: (0, jsx_runtime_1.jsx)(QRCode_1.default, { value: qrCodeValue, title: "Deposit ".concat(selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name), logo: (0, getIcon_1.default)("ton"), bgColor: "transparent" }) }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, color: "text.white" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: "Network" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { component: "button", sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g2, cursor: "pointer", transition: "transform 0.3s ease-in-out", "&:active": {
162
+ }, children: [(0, jsx_runtime_1.jsx)(QRCode_1.default, { value: qrCodeValue, title: "Deposit ".concat(selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name), logo: (0, getIcon_1.default)("ton"), bgColor: "transparent" }), (0, jsx_runtime_1.jsx)(SafeSvgRenderer_1.default, { svgString: (0, getIcon_1.default)("ton"), width: 100, height: 100, sx: __assign({}, theme.mixins.center) })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, color: "text.white" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: "Network" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { component: "button", sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g2, cursor: "pointer", transition: "transform 0.3s ease-in-out", "&:active": {
161
163
  transform: "translateX(0.5rem)",
162
- } }), onClick: handleBack, children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.name }), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("right_arrow"), width: 10 })] })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, color: "text.white" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: "Address" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { wordBreak: "break-all" }), children: (0, jsx_runtime_1.jsx)(CopyTextComponent_1.default, { value: addressByNetwork || "", children: addressByNetwork }) })] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, backgroundColor: theme.palette.background.white16, borderRadius: theme.mixins.theBorderRadius.r12, padding: theme.mixins.customPadding.p8 }), children: (0, jsx_runtime_1.jsxs)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: ["Deposit", " ", (0, jsx_runtime_1.jsxs)("strong", { style: { color: theme.palette.text.white }, children: ["min ", selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.min_value, " ", selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name] }), " ", "and", " ", (0, jsx_runtime_1.jsx)("strong", { style: { color: theme.palette.text.white }, children: "select the correct network" }), ", or you will lose your assets."] }) })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g12, justifyContent: "center" }), children: [(0, jsx_runtime_1.jsx)(CopyTextComponent_1.default, { value: qrCodeValue, children: (0, jsx_runtime_1.jsxs)(Button_1.default.Secondary, { className: "gap-1.5 flex items-center", children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
164
+ } }), onClick: handleBack, children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.name }), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("right_arrow"), width: 10 })] })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, color: "text.white" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: "Address" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { wordBreak: "break-all" }), children: (0, jsx_runtime_1.jsx)(CopyTextComponent_1.default, { value: addressByNetwork || "", children: addressByNetwork }) })] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, backgroundColor: theme.palette.background.white16, borderRadius: theme.mixins.theBorderRadius.r12, padding: theme.mixins.customPadding.p8 }), children: (0, jsx_runtime_1.jsxs)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: ["Deposit", " ", (0, jsx_runtime_1.jsxs)("strong", { style: { color: theme.palette.text.white }, children: ["min ", selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.min_value, " ", selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name] }), " ", "and", " ", (0, jsx_runtime_1.jsx)("strong", { style: { color: theme.palette.text.white }, children: "select the correct network" }), ", or you will lose your assets."] }) })] }), (0, jsx_runtime_1.jsx)(Button_1.default, { children: "Set amount" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g12, justifyContent: "center" }), children: [(0, jsx_runtime_1.jsx)(CopyTextComponent_1.default, { value: qrCodeValue, children: (0, jsx_runtime_1.jsxs)(Button_1.default.Secondary, { className: "gap-1.5 flex items-center", children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
163
165
  fontSize: theme.typography.fontSize12,
164
166
  fontWeight: theme.typography.fontWeight400,
165
167
  leading: "typography.leading150",
@@ -1,7 +1,9 @@
1
1
  import { ConfirmLayoutProps } from "../ConfirmLayout";
2
2
  import { LockData } from "./type";
3
+ import { LockTokenResponse } from "../../../services/axios/lock-token-service/type";
3
4
  interface LockTokenProps extends Omit<ConfirmLayoutProps, "action"> {
4
5
  lockData: LockData;
6
+ onLockSuccess?: (data: LockTokenResponse) => any;
5
7
  }
6
8
  export interface LockTokenRef {
7
9
  open: () => void;
@@ -145,9 +145,9 @@ var LockToken = (0, react_1.forwardRef)(function (props, ref) {
145
145
  }, [lockTokens, (_a = props.lockData) === null || _a === void 0 ? void 0 : _a.amount, (_b = props.lockData) === null || _b === void 0 ? void 0 : _b.tokenSlug]);
146
146
  var handleLockToken = function (passcode) { return __awaiter(void 0, void 0, void 0, function () {
147
147
  var response;
148
- var _a;
149
- return __generator(this, function (_b) {
150
- switch (_b.label) {
148
+ var _a, _b;
149
+ return __generator(this, function (_c) {
150
+ switch (_c.label) {
151
151
  case 0:
152
152
  console.warn("🚀 ~ handleLockToken ~ lockData:", props.lockData, passcode);
153
153
  setButtonStatus(Button_1.BUTTON_STATUS.LOADING);
@@ -161,10 +161,11 @@ var LockToken = (0, react_1.forwardRef)(function (props, ref) {
161
161
  ],
162
162
  })];
163
163
  case 1:
164
- response = _b.sent();
164
+ response = _c.sent();
165
165
  console.warn("🚀 ~ handleLockToken ~ response:", response);
166
166
  if (response.success) {
167
167
  (_a = confirmByPasscodeDrawerRef.current) === null || _a === void 0 ? void 0 : _a.close();
168
+ (_b = props.onLockSuccess) === null || _b === void 0 ? void 0 : _b.call(props, response);
168
169
  }
169
170
  else {
170
171
  setError(LockTokenError.FAILED);
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { GeneralProps } from "../../../types/ui";
3
+ interface SafeSvgRendererProps extends GeneralProps {
4
+ svgString: string;
5
+ width?: number | string;
6
+ height?: number | string;
7
+ }
8
+ declare const SafeSvgRenderer: React.FC<SafeSvgRendererProps>;
9
+ export default SafeSvgRenderer;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var jsx_runtime_1 = require("react/jsx-runtime");
18
+ var dompurify_1 = __importDefault(require("dompurify"));
19
+ var material_1 = require("@mui/material");
20
+ var SafeSvgRenderer = function (_a) {
21
+ var svgString = _a.svgString, _b = _a.width, width = _b === void 0 ? "100%" : _b, _c = _a.height, height = _c === void 0 ? "100%" : _c, sx = _a.sx;
22
+ var sanitizedSvg = dompurify_1.default.sanitize(svgString, {
23
+ USE_PROFILES: { svg: true, svgFilters: true },
24
+ ADD_TAGS: ["use"],
25
+ ADD_ATTR: ["xlink:href"],
26
+ });
27
+ return ((0, jsx_runtime_1.jsx)(material_1.Box, { component: "div", sx: __assign({ width: width, height: height }, sx), dangerouslySetInnerHTML: { __html: sanitizedSvg } }));
28
+ };
29
+ exports.default = SafeSvgRenderer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tek-wallet",
3
- "version": "0.0.209",
3
+ "version": "0.0.211",
4
4
  "description": "A custom React provider with TypeScript support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,6 +34,7 @@
34
34
  "axios": "^1.8.4",
35
35
  "clsx": "^2.1.1",
36
36
  "date-fns": "^4.1.0",
37
+ "dompurify": "^3.2.5",
37
38
  "framer-motion": "^12.7.4",
38
39
  "highcharts": "^12.2.0",
39
40
  "highcharts-react-official": "^3.2.1",