@rhinestone/deposit-modal 0.19.0 → 0.20.0

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.
Files changed (83) hide show
  1. package/README.md +151 -61
  2. package/dist/BankOnrampStep-JG32OCM2.mjs +435 -0
  3. package/dist/BankOnrampStep-NPGXAA7U.cjs +435 -0
  4. package/dist/{DepositModalReown-XBNY6QCI.mjs → DepositModalReown-3FGTPER6.mjs} +6 -5
  5. package/dist/{DepositModalReown-UITYXJ6W.cjs → DepositModalReown-ALVWADG7.cjs} +21 -20
  6. package/dist/WithdrawModal-5YWFJSYY.cjs +12 -0
  7. package/dist/WithdrawModal-LL4Z5WZP.mjs +12 -0
  8. package/dist/{bearer-transport-CVHNBgoV.d.cts → bearer-transport-DZyeDG64.d.cts} +5 -1
  9. package/dist/{bearer-transport-CVHNBgoV.d.ts → bearer-transport-DZyeDG64.d.ts} +5 -1
  10. package/dist/{caip-BMi-9t09.d.cts → caip-nwFFL46o.d.cts} +2 -2
  11. package/dist/{caip-BMi-9t09.d.ts → caip-nwFFL46o.d.ts} +2 -2
  12. package/dist/{chunk-NITKDXHR.mjs → chunk-247GJH57.mjs} +480 -272
  13. package/dist/{chunk-FTWKAJGN.mjs → chunk-2FOPO4N5.mjs} +1 -1
  14. package/dist/{chunk-5NWLS5BQ.mjs → chunk-32ERBFMO.mjs} +1432 -961
  15. package/dist/chunk-5QUWEFD4.mjs +19 -0
  16. package/dist/chunk-6CTJFR3T.mjs +113 -0
  17. package/dist/{chunk-X6N2XPTO.mjs → chunk-B2LZQIGB.mjs} +1 -1
  18. package/dist/{chunk-EG4H7OMC.cjs → chunk-BTEG2VNZ.cjs} +171 -130
  19. package/dist/{chunk-HMUGY66O.cjs → chunk-CXRH5MKO.cjs} +1502 -1031
  20. package/dist/chunk-E7IMWVMN.mjs +346 -0
  21. package/dist/{chunk-PYOC6K24.cjs → chunk-EKFXUF5A.cjs} +1 -1
  22. package/dist/chunk-FKJ6EJHH.cjs +346 -0
  23. package/dist/chunk-FMUSY563.cjs +19 -0
  24. package/dist/{chunk-LVCD6RHF.cjs → chunk-FVJKUTHF.cjs} +2 -2
  25. package/dist/chunk-G264OM23.cjs +224 -0
  26. package/dist/{chunk-BIL4ENC3.mjs → chunk-HP7S7AD6.mjs} +73 -32
  27. package/dist/{chunk-ISLVD5HQ.cjs → chunk-OPT5EW6L.cjs} +10 -5
  28. package/dist/chunk-PYRXOP2Y.cjs +113 -0
  29. package/dist/{chunk-ZGHVJ2XM.mjs → chunk-XBJCZYBX.mjs} +8 -3
  30. package/dist/chunk-YY4ZOAH5.mjs +224 -0
  31. package/dist/{chunk-OCWSMLOP.cjs → chunk-Z4RBTNKX.cjs} +980 -772
  32. package/dist/compliance.cjs +4 -7
  33. package/dist/compliance.d.cts +26 -3
  34. package/dist/compliance.d.ts +26 -3
  35. package/dist/compliance.mjs +6 -9
  36. package/dist/constants-BQDxVNgr.d.cts +29 -0
  37. package/dist/constants-DjGQW5N5.d.ts +29 -0
  38. package/dist/constants.cjs +3 -37
  39. package/dist/constants.d.cts +4 -20
  40. package/dist/constants.d.ts +4 -20
  41. package/dist/constants.mjs +4 -38
  42. package/dist/deposit.cjs +7 -6
  43. package/dist/deposit.d.cts +5 -3
  44. package/dist/deposit.d.ts +5 -3
  45. package/dist/deposit.mjs +6 -5
  46. package/dist/embed.cjs +21 -20
  47. package/dist/embed.d.cts +3 -2
  48. package/dist/embed.d.ts +3 -2
  49. package/dist/embed.mjs +7 -6
  50. package/dist/index.cjs +8 -35
  51. package/dist/index.d.cts +5 -3
  52. package/dist/index.d.ts +5 -3
  53. package/dist/index.mjs +9 -36
  54. package/dist/onramp.cjs +4 -33
  55. package/dist/onramp.d.cts +51 -33
  56. package/dist/onramp.d.ts +51 -33
  57. package/dist/onramp.mjs +5 -34
  58. package/dist/polymarket.cjs +6 -6
  59. package/dist/polymarket.mjs +2 -2
  60. package/dist/ramp-types-HYWd7CW0.d.cts +108 -0
  61. package/dist/ramp-types-HYWd7CW0.d.ts +108 -0
  62. package/dist/styles.css +255 -0
  63. package/dist/{types-BShYNpvO.d.cts → types-BxSrazbq.d.ts} +20 -2
  64. package/dist/{types-BOxa1DE-.d.ts → types-CixUBhrM.d.cts} +20 -2
  65. package/dist/withdraw.cjs +6 -5
  66. package/dist/withdraw.d.cts +4 -3
  67. package/dist/withdraw.d.ts +4 -3
  68. package/dist/withdraw.mjs +5 -4
  69. package/package.json +9 -17
  70. package/dist/WithdrawModal-DY6A55OA.mjs +0 -11
  71. package/dist/WithdrawModal-V42OK7L3.cjs +0 -11
  72. package/dist/chunk-ADEWTBSN.cjs +0 -19
  73. package/dist/chunk-EAGMY3QE.mjs +0 -962
  74. package/dist/chunk-OY5N3E6L.cjs +0 -962
  75. package/dist/chunk-PP4QE32S.mjs +0 -19
  76. package/dist/constants-BT4ctuHo.d.cts +0 -64
  77. package/dist/constants-D21ZdNOP.d.ts +0 -64
  78. package/dist/offramp.cjs +0 -25
  79. package/dist/offramp.d.cts +0 -28
  80. package/dist/offramp.d.ts +0 -28
  81. package/dist/offramp.mjs +0 -25
  82. package/dist/ramp-types-C6aUz4SZ.d.cts +0 -43
  83. package/dist/ramp-types-C6aUz4SZ.d.ts +0 -43
@@ -0,0 +1,113 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkOPT5EW6Lcjs = require('./chunk-OPT5EW6L.cjs');
4
+
5
+ // src/core/ramp-utils.ts
6
+ function rampQuery(value) {
7
+ return new URLSearchParams(
8
+ Object.entries(value).filter(([, value2]) => value2 !== void 0).map(([key, value2]) => [key, String(value2)])
9
+ ).toString();
10
+ }
11
+ function rampResourceId(value) {
12
+ if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(
13
+ value
14
+ )) {
15
+ throw new Error("Invalid ramp resource ID");
16
+ }
17
+ return value;
18
+ }
19
+
20
+ // src/core/onramp-service.ts
21
+ var RAIL_TYPES = ["BankAch", "BankFedwire", "BankSwift", "BankSepa"];
22
+ var text = (value) => typeof value === "string" && value.length > 0;
23
+ var decimal = (value) => text(value) && /^\+?(?:\d+(?:\.\d*)?|\.\d+)$/.test(value);
24
+ var optionalText = (value) => value === void 0 ? void 0 : text(value) ? value : false;
25
+ function projectBankDetails(input) {
26
+ if (typeof input !== "object" || input === null) return null;
27
+ const d = input;
28
+ if (d.schemaVersion !== 1 || !text(d.capturedAt) || !Number.isFinite(Date.parse(d.capturedAt))) return null;
29
+ if (d.currency !== "USD" && d.currency !== "EUR") return null;
30
+ if (!text(d.accountHolderName)) return null;
31
+ const bankName = optionalText(d.bankName);
32
+ const reference = optionalText(d.reference);
33
+ if (bankName === false || reference === false) return null;
34
+ let bankAddress;
35
+ if (d.bankAddress !== void 0) {
36
+ if (typeof d.bankAddress !== "object" || d.bankAddress === null) return null;
37
+ const a = d.bankAddress;
38
+ const street2 = optionalText(a.street2);
39
+ if (![a.street, a.city, a.postCode, a.state, a.country].every(text) || street2 === false) return null;
40
+ bankAddress = {
41
+ street: a.street,
42
+ city: a.city,
43
+ postCode: a.postCode,
44
+ state: a.state,
45
+ country: a.country,
46
+ ...street2 !== void 0 ? { street2 } : {}
47
+ };
48
+ }
49
+ if (!Array.isArray(d.rails) || d.rails.length === 0) return null;
50
+ const rails = [];
51
+ for (const r of d.rails) {
52
+ if (typeof r !== "object" || r === null) return null;
53
+ const type = RAIL_TYPES.find((t) => t === r.type);
54
+ if (!type || !text(r.accountNumber) || !text(r.bankCode)) return null;
55
+ if (typeof r.fee !== "object" || r.fee === null) return null;
56
+ const f = r.fee;
57
+ if (f.currency !== d.currency || !decimal(f.base) || !decimal(f.percent) || !decimal(f.minimum)) return null;
58
+ if (Number(f.percent) > 100) return null;
59
+ rails.push({
60
+ type,
61
+ accountNumber: r.accountNumber,
62
+ bankCode: r.bankCode,
63
+ fee: { currency: d.currency, base: f.base, percent: f.percent, minimum: f.minimum }
64
+ });
65
+ }
66
+ if (new Set(rails.map((rail) => rail.type)).size !== rails.length) return null;
67
+ return {
68
+ schemaVersion: 1,
69
+ capturedAt: d.capturedAt,
70
+ currency: d.currency,
71
+ accountHolderName: d.accountHolderName,
72
+ ...bankName !== void 0 ? { bankName } : {},
73
+ ...bankAddress ? { bankAddress } : {},
74
+ ...reference !== void 0 ? { reference } : {},
75
+ rails
76
+ };
77
+ }
78
+ function createOnrampService(options) {
79
+ const request = _chunkOPT5EW6Lcjs.createBearerTransport.call(void 0, options);
80
+ return {
81
+ // Named fields only, never a spread: this client is Noah's, whatever a
82
+ // caller passes.
83
+ getOptions: ({ currency } = {}) => request(
84
+ `/onramp/options?${rampQuery({ provider: "noah", currency })}`
85
+ ),
86
+ createAccount: ({ currency, optionId }) => request("/onramp/accounts", {
87
+ provider: "noah",
88
+ currency,
89
+ optionId
90
+ }),
91
+ listAccounts: (page = {}) => request(`/onramp/accounts?${rampQuery(page)}`),
92
+ getAccount: (id) => request(`/onramp/accounts/${rampResourceId(id)}`),
93
+ getAccountDetails: async (id) => {
94
+ const result = await request(
95
+ `/onramp/accounts/${rampResourceId(id)}/details`
96
+ );
97
+ const bankDetails = result ? projectBankDetails(result.bankDetails) : null;
98
+ if (!bankDetails) throw new Error("Invalid bank details response");
99
+ return { bankDetails };
100
+ },
101
+ /**
102
+ * The customer's Noah orders, newest first. Filtered on the server, before
103
+ * `limit`, so another provider's orders can never crowd one out of a page.
104
+ */
105
+ listOrders: ({ cursor, limit } = {}) => request(
106
+ `/onramp/orders?${rampQuery({ provider: "noah", cursor, limit })}`
107
+ )
108
+ };
109
+ }
110
+
111
+
112
+
113
+ exports.createOnrampService = createOnrampService;
@@ -1,14 +1,15 @@
1
1
  import {
2
2
  serviceHeaders
3
- } from "./chunk-X6N2XPTO.mjs";
3
+ } from "./chunk-B2LZQIGB.mjs";
4
4
 
5
5
  // src/core/bearer-transport.ts
6
6
  var ScopedRequestError = class extends Error {
7
- constructor(status) {
7
+ constructor(status, code) {
8
8
  super(
9
9
  status === 404 ? "Route unavailable; upgrade the proxy before using this API" : `Scoped request failed (${status})`
10
10
  );
11
11
  this.status = status;
12
+ this.code = code;
12
13
  }
13
14
  };
14
15
  function createBearerTransport(options) {
@@ -30,7 +31,11 @@ function createBearerTransport(options) {
30
31
  cache: "no-store",
31
32
  redirect: "error"
32
33
  });
33
- if (!response.ok) throw new ScopedRequestError(response.status);
34
+ if (!response.ok) {
35
+ const body2 = await response.json().catch(() => null);
36
+ const code = typeof body2?.code === "string" && /^[A-Z_]{1,64}$/.test(body2.code) ? body2.code : void 0;
37
+ throw new ScopedRequestError(response.status, code);
38
+ }
34
39
  return response.json();
35
40
  };
36
41
  }
@@ -0,0 +1,224 @@
1
+ // src/components/ui/Icons.tsx
2
+ import {
3
+ Wallet,
4
+ ExternalLink,
5
+ Coins,
6
+ Check,
7
+ ChevronRight,
8
+ ChevronLeft,
9
+ ChevronDown,
10
+ X,
11
+ HandCoins,
12
+ History,
13
+ Info,
14
+ Copy,
15
+ ArrowRight,
16
+ ArrowUpRight,
17
+ AlertTriangle,
18
+ CircleArrowOutUpLeft,
19
+ CreditCard,
20
+ Landmark,
21
+ Unplug
22
+ } from "lucide-react";
23
+ import { jsx, jsxs } from "react/jsx-runtime";
24
+ var WalletIcon = Wallet;
25
+ var ExternalLinkIcon = ExternalLink;
26
+ var CheckIcon = Check;
27
+ function TransferCryptoIcon() {
28
+ return /* @__PURE__ */ jsx(
29
+ "svg",
30
+ {
31
+ width: "24",
32
+ height: "24",
33
+ viewBox: "8 8 24 24",
34
+ fill: "none",
35
+ xmlns: "http://www.w3.org/2000/svg",
36
+ "aria-hidden": "true",
37
+ children: /* @__PURE__ */ jsx(
38
+ "path",
39
+ {
40
+ d: "M26.08 18.37C27.03 18.72 27.87 19.30 28.53 20.07C29.19 20.83 29.65 21.75 29.86 22.73C30.07 23.72 30.03 24.74 29.74 25.71C29.45 26.68 28.92 27.55 28.20 28.26C27.48 28.97 26.59 29.49 25.62 29.76C24.65 30.04 23.63 30.06 22.64 29.83C21.66 29.61 20.75 29.14 20.00 28.47C19.24 27.80 18.67 26.95 18.33 26.00M15 14H16V18M24.70 21.87L25.40 22.58L22.58 25.40M22 16C22 19.31 19.31 22 16 22C12.68 22 10 19.31 10 16C10 12.68 12.68 10 16 10C19.31 10 22 12.68 22 16Z",
41
+ stroke: "currentColor",
42
+ strokeWidth: "2",
43
+ strokeLinecap: "round",
44
+ strokeLinejoin: "round"
45
+ }
46
+ )
47
+ }
48
+ );
49
+ }
50
+ var ChevronRightIcon = ChevronRight;
51
+ var ChevronLeftIcon = ChevronLeft;
52
+ var ChevronDownIcon = ChevronDown;
53
+ var CloseIcon = X;
54
+ var HandCoinsIcon = HandCoins;
55
+ var CoinsIcon = Coins;
56
+ var HistoryIcon = History;
57
+ var InfoIcon = Info;
58
+ var CopyIcon = Copy;
59
+ var ArrowUpRightIcon = ArrowUpRight;
60
+ var AlertTriangleIcon = AlertTriangle;
61
+ var CircleArrowOutUpLeftIcon = CircleArrowOutUpLeft;
62
+ var CardIcon = CreditCard;
63
+ var BankIcon = Landmark;
64
+ var UnplugIcon = Unplug;
65
+ function MigrateAssetsIcon() {
66
+ return /* @__PURE__ */ jsx(
67
+ "svg",
68
+ {
69
+ width: "24",
70
+ height: "24",
71
+ viewBox: "0 0 24 24",
72
+ fill: "none",
73
+ xmlns: "http://www.w3.org/2000/svg",
74
+ "aria-hidden": "true",
75
+ children: /* @__PURE__ */ jsxs(
76
+ "g",
77
+ {
78
+ stroke: "currentColor",
79
+ strokeWidth: "2",
80
+ strokeLinecap: "round",
81
+ strokeLinejoin: "round",
82
+ children: [
83
+ /* @__PURE__ */ jsx(
84
+ "path",
85
+ {
86
+ d: "M19 4.344V3C19 2.46957 18.7893 1.96086 18.4142 1.58579C18.0391 1.21071 17.5304 1 17 1H3C2.46957 1 1.96086 1.21071 1.58579 1.58579C1.21071 1.96086 1 2.46957 1 3V17C1 17.5304 1.21071 18.0391 1.58579 18.4142C1.96086 18.7893 2.46957 19 3 19H17C17.5304 19 18.0391 18.7893 18.4142 18.4142C18.7893 18.0391 19 17.5304 19 17V15.656",
87
+ transform: "translate(2 2)"
88
+ }
89
+ ),
90
+ /* @__PURE__ */ jsx("path", { d: "M1 1H12", transform: "translate(9 11)" }),
91
+ /* @__PURE__ */ jsx("path", { d: "M1 9L5 5L1 1", transform: "translate(16 7)" })
92
+ ]
93
+ }
94
+ )
95
+ }
96
+ );
97
+ }
98
+ function AppleIcon() {
99
+ return /* @__PURE__ */ jsxs(
100
+ "svg",
101
+ {
102
+ width: "24",
103
+ height: "24",
104
+ viewBox: "0 0 24 24",
105
+ fill: "none",
106
+ xmlns: "http://www.w3.org/2000/svg",
107
+ "aria-hidden": "true",
108
+ children: [
109
+ /* @__PURE__ */ jsx(
110
+ "path",
111
+ {
112
+ d: "M16.36 1.43c0 1.14-.49 2.27-1.18 3.08-.74.9-1.99 1.57-2.98 1.57-.12 0-.23-.02-.3-.03-.01-.06-.04-.22-.04-.39 0-1.15.57-2.27 1.2-2.98.8-.94 2.15-1.64 3.25-1.68.03.13.05.28.05.43z",
113
+ stroke: "currentColor",
114
+ strokeWidth: "1.6",
115
+ strokeLinejoin: "round"
116
+ }
117
+ ),
118
+ /* @__PURE__ */ jsx(
119
+ "path",
120
+ {
121
+ d: "M20.93 17.14c-.03.07-.46 1.58-1.52 3.12-.94 1.34-1.94 2.71-3.43 2.71-1.51 0-1.9-.88-3.63-.88-1.7 0-2.3.91-3.67.91-1.38 0-2.33-1.26-3.43-2.8-1.29-1.82-2.32-4.63-2.32-7.28 0-4.28 2.8-6.55 5.55-6.55 1.45 0 2.68.95 3.6.95.86 0 2.22-1.01 3.9-1.01.61 0 2.89.06 4.37 2.19-.13.09-2.38 1.37-2.38 4.19 0 3.26 2.85 4.42 2.96 4.45z",
122
+ stroke: "currentColor",
123
+ strokeWidth: "1.6",
124
+ strokeLinejoin: "round"
125
+ }
126
+ )
127
+ ]
128
+ }
129
+ );
130
+ }
131
+
132
+ // src/components/ui/BodyHeader.tsx
133
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
134
+ function BodyHeader({
135
+ icon,
136
+ title,
137
+ subtitle,
138
+ variant = "default",
139
+ aside
140
+ }) {
141
+ const iconClasses = [
142
+ "rs-body-header-icon",
143
+ variant === "success" ? "rs-body-header-icon--success" : "",
144
+ variant === "error" ? "rs-body-header-icon--error" : ""
145
+ ].filter(Boolean).join(" ");
146
+ return /* @__PURE__ */ jsxs2("div", { className: "rs-body-header", children: [
147
+ /* @__PURE__ */ jsx2("div", { className: iconClasses, children: icon }),
148
+ /* @__PURE__ */ jsxs2("div", { className: "rs-body-header-main", children: [
149
+ /* @__PURE__ */ jsxs2("div", { className: "rs-body-header-text", children: [
150
+ /* @__PURE__ */ jsx2("h2", { className: "rs-body-header-title", children: title }),
151
+ subtitle && /* @__PURE__ */ jsx2("p", { className: "rs-body-header-subtitle", children: subtitle })
152
+ ] }),
153
+ aside && /* @__PURE__ */ jsx2("div", { className: "rs-body-header-aside", children: aside })
154
+ ] })
155
+ ] });
156
+ }
157
+ BodyHeader.displayName = "BodyHeader";
158
+
159
+ // src/components/ui/Spinner.tsx
160
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
161
+ function Spinner({ className }) {
162
+ return /* @__PURE__ */ jsxs3(
163
+ "svg",
164
+ {
165
+ className: `rs-spinner ${className || ""}`,
166
+ fill: "none",
167
+ viewBox: "0 0 20 21",
168
+ children: [
169
+ /* @__PURE__ */ jsx3(
170
+ "path",
171
+ {
172
+ d: "M10 0.5C8.02 0.5 6.08 1.08 4.44 2.18C2.79 3.28 1.51 4.84 0.76 6.67C0.00 8.50 -0.19 10.51 0.19 12.45C0.57 14.39 1.53 16.17 2.92 17.57C4.32 18.96 6.10 19.92 8.04 20.30C9.98 20.69 11.99 20.49 13.82 19.73C15.65 18.98 17.21 17.70 18.31 16.05C19.41 14.41 20 12.47 20 10.5C20 7.84 18.94 5.30 17.07 3.42C15.19 1.55 12.65 0.5 10 0.5ZM10 17.77C8.56 17.77 7.15 17.34 5.95 16.54C4.76 15.74 3.83 14.61 3.28 13.28C2.73 11.95 2.58 10.49 2.86 9.08C3.14 7.67 3.84 6.37 4.85 5.35C5.87 4.34 7.17 3.64 8.58 3.36C9.99 3.08 11.45 3.23 12.78 3.78C14.11 4.33 15.24 5.26 16.04 6.45C16.84 7.65 17.27 9.06 17.27 10.5C17.27 12.42 16.50 14.27 15.14 15.64C13.77 17.00 11.92 17.77 10 17.77Z",
173
+ fill: "currentColor",
174
+ opacity: 0.3
175
+ }
176
+ ),
177
+ /* @__PURE__ */ jsx3(
178
+ "path",
179
+ {
180
+ d: "M10 3.22C11.74 3.22 13.42 3.84 14.75 4.95C16.08 6.07 16.96 7.61 17.25 9.31C17.30 9.64 17.46 9.94 17.71 10.15C17.96 10.37 18.28 10.49 18.62 10.5C18.82 10.50 19.01 10.45 19.20 10.37C19.38 10.29 19.54 10.16 19.67 10.01C19.80 9.86 19.89 9.68 19.95 9.49C20.00 9.30 20.01 9.10 19.98 8.90C19.59 6.56 18.38 4.42 16.55 2.88C14.72 1.34 12.40 0.5 10 0.5C7.59 0.5 5.27 1.34 3.44 2.88C1.61 4.42 0.40 6.56 0.01 8.90C-0.01 9.10 -0.00 9.30 0.04 9.49C0.10 9.68 0.19 9.86 0.32 10.01C0.45 10.16 0.61 10.29 0.79 10.37C0.98 10.45 1.17 10.50 1.37 10.5C1.71 10.49 2.03 10.37 2.28 10.15C2.53 9.94 2.69 9.64 2.74 9.31C3.03 7.61 3.91 6.07 5.24 4.95C6.57 3.84 8.25 3.22 10 3.22Z",
181
+ fill: "currentColor"
182
+ }
183
+ )
184
+ ]
185
+ }
186
+ );
187
+ }
188
+
189
+ // src/core/useLatestRef.ts
190
+ import { useEffect, useRef } from "react";
191
+ function useLatestRef(value) {
192
+ const ref = useRef(value);
193
+ useEffect(() => {
194
+ ref.current = value;
195
+ }, [value]);
196
+ return ref;
197
+ }
198
+
199
+ export {
200
+ WalletIcon,
201
+ ExternalLinkIcon,
202
+ CheckIcon,
203
+ TransferCryptoIcon,
204
+ ChevronRightIcon,
205
+ ChevronLeftIcon,
206
+ ChevronDownIcon,
207
+ CloseIcon,
208
+ HandCoinsIcon,
209
+ CoinsIcon,
210
+ HistoryIcon,
211
+ InfoIcon,
212
+ CopyIcon,
213
+ ArrowUpRightIcon,
214
+ AlertTriangleIcon,
215
+ CircleArrowOutUpLeftIcon,
216
+ CardIcon,
217
+ BankIcon,
218
+ UnplugIcon,
219
+ MigrateAssetsIcon,
220
+ AppleIcon,
221
+ BodyHeader,
222
+ Spinner,
223
+ useLatestRef
224
+ };