@aurora-is-near/intents-swap-widget 3.24.1 → 3.25.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 (99) hide show
  1. package/dist/{config-DMLDiA0V.js → config-6S9JcYY_.js} +319 -318
  2. package/dist/config-6S9JcYY_.js.map +1 -0
  3. package/dist/config.d.ts +10 -0
  4. package/dist/config.js +1 -1
  5. package/dist/errors.js +1 -1
  6. package/dist/ext/alchemy/index.js +1 -1
  7. package/dist/ext/index.js +1 -1
  8. package/dist/features/BalanceRpcLoader/TokenBalanceLoader.js +1 -1
  9. package/dist/features/BalanceRpcLoader/index.js +1 -1
  10. package/dist/features/BalanceRpcLoader/useTokenBalanceRpc.js +1 -1
  11. package/dist/features/ChainsDropdown/index.js +1 -1
  12. package/dist/features/ChainsSelector/index.js +1 -1
  13. package/dist/features/DepositMethodSwitcher.js +1 -1
  14. package/dist/features/ErrorBoundary.js +1 -1
  15. package/dist/features/ExternalDeposit.js +1 -1
  16. package/dist/features/SendAddress/index.js +1 -1
  17. package/dist/features/SendAddress/useNotification.js +1 -1
  18. package/dist/features/SubmitButton/index.js +1 -1
  19. package/dist/features/SuccessScreen/index.js +1 -1
  20. package/dist/features/SuccessScreen/useSummaryItemsCount.js +1 -1
  21. package/dist/features/SwapDirectionSwitcher.js +1 -1
  22. package/dist/features/SwapQuote/SwapQuote.js +1 -1
  23. package/dist/features/SwapQuote/index.js +1 -1
  24. package/dist/features/TokenInput/TokenInput.js +1 -1
  25. package/dist/features/TokenInput/TokenInputEmpty.js +1 -1
  26. package/dist/features/TokenInput/TokenInputSource.js +1 -1
  27. package/dist/features/TokenInput/TokenInputTarget.js +1 -1
  28. package/dist/features/TokenInput/WalletBalance.js +1 -1
  29. package/dist/features/TokenInput/hooks/index.js +1 -1
  30. package/dist/features/TokenInput/hooks/useTokenInputBalance.js +1 -1
  31. package/dist/features/TokenInput/index.js +1 -1
  32. package/dist/features/TokensList/TokenItem.js +1 -1
  33. package/dist/features/TokensList/TokensList.js +1 -1
  34. package/dist/features/TokensList/index.js +1 -1
  35. package/dist/features/TokensModal.js +1 -1
  36. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js +1 -1
  37. package/dist/features/WalletCompatibilityCheck/index.js +1 -1
  38. package/dist/features/index.js +1 -1
  39. package/dist/hooks/index.js +1 -1
  40. package/dist/hooks/useAllTokens.js +1 -1
  41. package/dist/hooks/useChains.js +1 -1
  42. package/dist/hooks/useCompatibilityCheck.js +1 -1
  43. package/dist/hooks/useDefaultToken.js +1 -1
  44. package/dist/hooks/useExternalDepositStatus/index.js +1 -1
  45. package/dist/hooks/useExternalDepositStatus/usePoaExternalDepositStatus.js +1 -1
  46. package/dist/hooks/useIntentsBalance.js +1 -1
  47. package/dist/hooks/useIsCompatibilityCheckRequired.js +1 -1
  48. package/dist/hooks/useMakeDepositAddress.js +1 -1
  49. package/dist/hooks/useMakeIntentsTransfer.js +1 -1
  50. package/dist/hooks/useMakeNEARFtTransferCall.js +1 -1
  51. package/dist/hooks/useMakeQuote.js +1 -1
  52. package/dist/hooks/useMakeQuoteTransfer.js +1 -1
  53. package/dist/hooks/useMakeTransfer.js +1 -1
  54. package/dist/hooks/useMergedBalance.js +1 -1
  55. package/dist/hooks/useSwitchChain.js +1 -1
  56. package/dist/hooks/useTheme.js +1 -1
  57. package/dist/hooks/useTokenInputPair.js +1 -1
  58. package/dist/hooks/useTokens.js +1 -1
  59. package/dist/hooks/useTokensFiltered.js +1 -1
  60. package/dist/hooks/useTokensIntentsUnique.js +1 -1
  61. package/dist/index.js +1 -1
  62. package/dist/machine/effects/index.js +1 -1
  63. package/dist/machine/effects/useAlchemyBalanceEffect.js +1 -1
  64. package/dist/machine/effects/useBalancesUpdateEffect.js +1 -1
  65. package/dist/machine/effects/useMakeQuoteEffect.js +1 -1
  66. package/dist/machine/effects/useSelectedTokensEffect.js +1 -1
  67. package/dist/machine/effects/useSetTokenBalanceEffect.js +1 -1
  68. package/dist/machine/effects/useSetTokenIntentsTargetEffect.js +1 -1
  69. package/dist/machine/effects/useWalletConnEffect.js +1 -1
  70. package/dist/machine/events/index.js +1 -1
  71. package/dist/machine/events/tokenSelect.js +1 -1
  72. package/dist/machine/events/validateInputAndMoveTo.js +1 -1
  73. package/dist/machine/events/validateInputs.js +1 -1
  74. package/dist/machine/index.js +1 -1
  75. package/dist/machine/snap.js +1 -1
  76. package/dist/machine/subscriptions/checkers/isSendAddressAsConnected.js +1 -1
  77. package/dist/machine/subscriptions/index.js +1 -1
  78. package/dist/theme/ThemeProvider.js +1 -1
  79. package/dist/types/config.d.ts +2 -1
  80. package/dist/utils/intents/signers/near.js +1 -1
  81. package/dist/utils/intents/signers/privy.js +1 -1
  82. package/dist/utils/near/getNearNep141StorageBalance.js +1 -1
  83. package/dist/widgets/Widget/WidgetContent.js +1 -1
  84. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js +81 -77
  85. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js.map +1 -1
  86. package/dist/widgets/WidgetDeposit/WidgetDepositSkeleton.js +1 -1
  87. package/dist/widgets/WidgetSwap/WidgetSwapContent.js +101 -90
  88. package/dist/widgets/WidgetSwap/WidgetSwapContent.js.map +1 -1
  89. package/dist/widgets/WidgetSwap/WidgetSwapSkeleton.js +1 -1
  90. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js +97 -90
  91. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js.map +1 -1
  92. package/dist/widgets/WidgetWithdraw/WidgetWithdrawSkeleton.js +1 -1
  93. package/package.json +1 -1
  94. package/src/machine/effects/useSelectedTokensEffect.ts +8 -2
  95. package/src/types/config.ts +2 -1
  96. package/src/widgets/WidgetDeposit/WidgetDepositContent.tsx +19 -9
  97. package/src/widgets/WidgetSwap/WidgetSwapContent.tsx +24 -19
  98. package/src/widgets/WidgetWithdraw/WidgetWithdrawContent.tsx +22 -7
  99. package/dist/config-DMLDiA0V.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import { jsx as t, jsxs as _ } from "react/jsx-runtime";
2
- import { useState as b, useEffect as w } from "react";
3
- import { useTokenModal as D } from "../../hooks/useTokenModal.js";
4
- import { WidgetSwapSkeleton as T } from "./WidgetSwapSkeleton.js";
5
- import { useTypedTranslation as F } from "../../localisation.js";
6
- import { b as N, u as O, y as Q, n as j, c as q, p as y, o as U, S as K } from "../../config-DMLDiA0V.js";
1
+ import { jsx as t, jsxs as S } from "react/jsx-runtime";
2
+ import { useState as b, useEffect as T, useMemo as N } from "react";
3
+ import { useTokenModal as O } from "../../hooks/useTokenModal.js";
4
+ import { WidgetSwapSkeleton as y } from "./WidgetSwapSkeleton.js";
5
+ import { useTypedTranslation as Q } from "../../localisation.js";
6
+ import { b as j, u as q, y as U, n as K, c as P, p as C, o as z, S as G } from "../../config-6S9JcYY_.js";
7
7
  import "@tanstack/react-query";
8
8
  import "@headlessui/react";
9
9
  import "@material-symbols-svg/react-rounded/icons/chevron-left";
@@ -11,19 +11,19 @@ import "framer-motion";
11
11
  import "../../features/ChainsDropdown/ChainItem.js";
12
12
  import "../../utils/cn.js";
13
13
  import "../../constants/chains.js";
14
- import { notReachable as r } from "../../utils/notReachable.js";
15
- import { SendAddress as P } from "../../features/SendAddress/index.js";
16
- import { SuccessScreen as z } from "../../features/SuccessScreen/index.js";
17
- import { TokensModal as G } from "../../features/TokensModal.js";
18
- import { SwapDirectionSwitcher as H } from "../../features/SwapDirectionSwitcher.js";
14
+ import { notReachable as s } from "../../utils/notReachable.js";
15
+ import { SendAddress as H } from "../../features/SendAddress/index.js";
16
+ import { SuccessScreen as J } from "../../features/SuccessScreen/index.js";
17
+ import { TokensModal as L } from "../../features/TokensModal.js";
18
+ import { SwapDirectionSwitcher as V } from "../../features/SwapDirectionSwitcher.js";
19
19
  import "qrcode.react";
20
20
  import "@defuse-protocol/one-click-sdk-typescript";
21
21
  import "@material-symbols-svg/react-rounded/icons/progress-activity";
22
- import { isDebug as J } from "../../utils/checkers/isDebug.js";
22
+ import { isDebug as X } from "../../utils/checkers/isDebug.js";
23
23
  import "viem";
24
24
  import "ethers";
25
25
  import "../../machine/machine.js";
26
- import { fireEvent as C } from "../../machine/events/utils/fireEvent.js";
26
+ import { fireEvent as x } from "../../machine/events/utils/fireEvent.js";
27
27
  import "zod";
28
28
  import "../../utils/near/rpc.js";
29
29
  import "../../index-DEq3oXQF.js";
@@ -35,14 +35,14 @@ import "../../index-xuotMAFm.js";
35
35
  import "axios";
36
36
  import "../../network.js";
37
37
  import "viem/chains";
38
- import { useTokenInputPair as L } from "../../hooks/useTokenInputPair.js";
39
- import { useIsCompatibilityCheckRequired as V } from "../../hooks/useIsCompatibilityCheckRequired.js";
38
+ import { useTokenInputPair as Y } from "../../hooks/useTokenInputPair.js";
39
+ import { useIsCompatibilityCheckRequired as Z } from "../../hooks/useIsCompatibilityCheckRequired.js";
40
40
  import "browser-or-node";
41
41
  import "@material-symbols-svg/react-rounded/icons/close";
42
42
  import "@material-symbols-svg/react-rounded/icons/emergency";
43
43
  import "@material-symbols-svg/react-rounded/icons/error";
44
44
  import "@material-symbols-svg/react-rounded/icons/verified";
45
- import { BlockingError as X } from "../../components/BlockingError.js";
45
+ import { BlockingError as $ } from "../../components/BlockingError.js";
46
46
  import "copy-text-to-clipboard";
47
47
  import "@material-symbols-svg/react-rounded/icons/content-copy";
48
48
  import "@material-symbols-svg/react-rounded/icons/arrow-downward";
@@ -53,37 +53,35 @@ import "@material-symbols-svg/react-rounded/icons/check-circle";
53
53
  import "../../components/ChainShortcut.js";
54
54
  import "@material-symbols-svg/react-rounded/icons/qr-code";
55
55
  import "@material-symbols-svg/react-rounded/icons/wallet";
56
- import { WalletCompatibilityCheck as Y } from "../../features/WalletCompatibilityCheck/index.js";
57
- const Z = (i, c) => ({
58
- intents: i ? c ? "with-balance" : "all" : "none",
59
- external: c ? "wallet-supported" : "all"
60
- }), tt = ({
61
- providers: i,
62
- makeTransfer: c,
63
- onMsg: p,
64
- isLoading: x
56
+ import { WalletCompatibilityCheck as ee } from "../../features/WalletCompatibilityCheck/index.js";
57
+ const rt = ({
58
+ providers: k,
59
+ makeTransfer: A,
60
+ onMsg: c,
61
+ isLoading: I
65
62
  }) => {
66
- const { ctx: o } = N(), { isDirectNearTokenWithdrawal: I } = O(), {
67
- enableAccountAbstraction: d,
68
- alchemyApiKey: v,
69
- refetchQuoteInterval: A,
70
- intentsAccountType: M,
71
- onWalletSignout: W
72
- } = Q(), { t: s } = F(), { status: f, refetch: B } = j(), { tokenModalOpen: n, updateTokenModalState: l } = D({ onMsg: p }), { onChangeAmount: h, onChangeToken: u, lastChangedInput: m } = L(), a = V(), [E, k] = b(
63
+ const { ctx: o } = j(), { isDirectNearTokenWithdrawal: v } = q(), {
64
+ chainsFilter: l,
65
+ enableAccountAbstraction: p,
66
+ alchemyApiKey: M,
67
+ refetchQuoteInterval: W,
68
+ intentsAccountType: B,
69
+ onWalletSignout: E
70
+ } = U(), { t: n } = Q(), { status: f, refetch: R } = K(), { tokenModalOpen: r, updateTokenModalState: i } = O({ onMsg: c }), { onChangeAmount: h, onChangeToken: u, lastChangedInput: m } = Y(), a = Z(), [F, d] = b(
73
71
  a
74
72
  );
75
- w(() => {
76
- a && k(a);
73
+ T(() => {
74
+ a && d(a);
77
75
  }, [a]);
78
- const [g, S] = b();
79
- w(() => {
80
- C("reset", { clearWalletAddress: !0 });
76
+ const [g, w] = b();
77
+ T(() => {
78
+ x("reset", { clearWalletAddress: !0 });
81
79
  }, []);
82
- const R = () => {
83
- C("reset", { clearWalletAddress: !1, keepSelectedTokens: !0 });
80
+ const D = () => {
81
+ x("reset", { clearWalletAddress: !1, keepSelectedTokens: !0 });
84
82
  };
85
- if (q({
86
- debug: J(),
83
+ P({
84
+ debug: X(),
87
85
  listenTo: [
88
86
  "checkWalletConnection",
89
87
  "setSourceTokenBalance",
@@ -93,46 +91,62 @@ const Z = (i, c) => ({
93
91
  {
94
92
  message: void 0,
95
93
  type: m === "target" ? "exact_out" : "exact_in",
96
- refetchQuoteInterval: A
94
+ refetchQuoteInterval: W
97
95
  }
98
96
  ],
99
- ["setBalancesUsingAlchemyExt", { alchemyApiKey: v }]
97
+ ["setBalancesUsingAlchemyExt", { alchemyApiKey: M }]
100
98
  ]
101
- }), x || f !== "error" && !o.sourceToken)
102
- return /* @__PURE__ */ t(T, {});
103
- if (a && E)
99
+ });
100
+ const _ = N(() => {
101
+ if (l)
102
+ return l;
103
+ const e = o.walletAddress ? "with-balance" : "all";
104
+ return {
105
+ source: {
106
+ intents: p ? e : "none",
107
+ external: o.walletAddress ? "wallet-supported" : "all"
108
+ },
109
+ target: {
110
+ intents: p ? "all" : "none",
111
+ external: "all"
112
+ }
113
+ };
114
+ }, [l, p, o.walletAddress]);
115
+ if (I || f !== "error" && !o.sourceToken)
116
+ return /* @__PURE__ */ t(y, {});
117
+ if (a && F)
104
118
  return /* @__PURE__ */ t(
105
- Y,
119
+ ee,
106
120
  {
107
- providers: i,
121
+ providers: k,
108
122
  onMsg: (e) => {
109
123
  switch (e.type) {
110
124
  case "on_sign_out":
111
- W?.(M), k(!1);
125
+ E?.(B), d(!1);
112
126
  break;
113
127
  case "on_close":
114
- k(!1);
128
+ d(!1);
115
129
  break;
116
130
  default:
117
- r(e.type);
131
+ s(e.type);
118
132
  }
119
133
  }
120
134
  }
121
135
  );
122
136
  if (o.state === "transfer_success" && g)
123
137
  return /* @__PURE__ */ t(
124
- z,
138
+ J,
125
139
  {
126
140
  showTargetToken: !0,
127
- title: s("transfer.success.swap.title", "Swap successful"),
141
+ title: n("transfer.success.swap.title", "Swap successful"),
128
142
  ...g,
129
143
  onMsg: (e) => {
130
144
  switch (e.type) {
131
145
  case "on_dismiss_success":
132
- S(void 0), R();
146
+ w(void 0), D();
133
147
  break;
134
148
  default:
135
- r(e.type);
149
+ s(e.type);
136
150
  }
137
151
  }
138
152
  }
@@ -140,47 +154,44 @@ const Z = (i, c) => ({
140
154
  switch (f) {
141
155
  case "error":
142
156
  return /* @__PURE__ */ t(
143
- X,
157
+ $,
144
158
  {
145
159
  message: "Couldn't load tokens list.",
146
- onClickRetry: B
160
+ onClickRetry: R
147
161
  }
148
162
  );
149
163
  case "success":
150
- return n !== "none" ? /* @__PURE__ */ t(
151
- G,
164
+ return r !== "none" ? /* @__PURE__ */ t(
165
+ L,
152
166
  {
153
167
  showBalances: !0,
154
168
  showChainsSelector: !0,
155
- variant: n,
156
- groupTokens: n === "source",
157
- chainsFilter: n === "source" ? Z(!!d, o.walletAddress) : {
158
- intents: d ? "all" : "none",
159
- external: "all"
160
- },
169
+ variant: r,
170
+ groupTokens: r === "source",
171
+ chainsFilter: r === "source" ? _.source : _.target,
161
172
  onMsg: (e) => {
162
173
  switch (e.type) {
163
174
  case "on_select_token":
164
- u(n, e.token), l("none"), p?.({
175
+ u(r, e.token), i("none"), c?.({
165
176
  type: e.type,
166
177
  token: e.token,
167
- variant: n
178
+ variant: r
168
179
  });
169
180
  break;
170
181
  case "on_dismiss_tokens_modal":
171
- l("none");
182
+ i("none");
172
183
  break;
173
184
  default:
174
- r(e);
185
+ s(e);
175
186
  }
176
187
  }
177
188
  }
178
- ) : /* @__PURE__ */ _("div", { className: "gap-sw-2xl flex flex-col", children: [
179
- /* @__PURE__ */ _("div", { className: "gap-[10px] relative flex flex-col", children: [
189
+ ) : /* @__PURE__ */ S("div", { className: "gap-sw-2xl flex flex-col", children: [
190
+ /* @__PURE__ */ S("div", { className: "gap-[10px] relative flex flex-col", children: [
180
191
  /* @__PURE__ */ t(
181
- y.Source,
192
+ C.Source,
182
193
  {
183
- heading: s("tokenInput.heading.source.swap", "Sell"),
194
+ heading: n("tokenInput.heading.source.swap", "Sell"),
184
195
  isChanging: m === "source",
185
196
  onMsg: (e) => {
186
197
  switch (e.type) {
@@ -191,19 +202,19 @@ const Z = (i, c) => ({
191
202
  h("source", e.amount);
192
203
  break;
193
204
  case "on_click_select_token":
194
- l("source");
205
+ i("source");
195
206
  break;
196
207
  default:
197
- r(e);
208
+ s(e);
198
209
  }
199
210
  }
200
211
  }
201
212
  ),
202
- /* @__PURE__ */ t(H, {}),
213
+ /* @__PURE__ */ t(V, {}),
203
214
  /* @__PURE__ */ t(
204
- y.Target,
215
+ C.Target,
205
216
  {
206
- heading: s("tokenInput.heading.target.swap", "Buy"),
217
+ heading: n("tokenInput.heading.target.swap", "Buy"),
207
218
  isChanging: m === "target",
208
219
  onMsg: (e) => {
209
220
  switch (e.type) {
@@ -214,47 +225,47 @@ const Z = (i, c) => ({
214
225
  h("target", e.amount);
215
226
  break;
216
227
  case "on_click_select_token":
217
- l("target");
228
+ i("target");
218
229
  break;
219
230
  default:
220
- r(e);
231
+ s(e);
221
232
  }
222
233
  }
223
234
  }
224
235
  )
225
236
  ] }),
226
237
  !!o.walletAddress && o.targetToken && !o.targetToken.isIntent && /* @__PURE__ */ t(
227
- P,
238
+ H,
228
239
  {
229
240
  onMsg: (e) => {
230
241
  switch (e.type) {
231
242
  case "on_change_send_address":
232
243
  break;
233
244
  default:
234
- r(e.type, { throwError: !1 });
245
+ s(e.type, { throwError: !1 });
235
246
  }
236
247
  }
237
248
  }
238
249
  ),
239
- !I && /* @__PURE__ */ t(U, {}),
250
+ !v && /* @__PURE__ */ t(z, {}),
240
251
  /* @__PURE__ */ t(
241
- K,
252
+ G,
242
253
  {
243
- providers: i,
244
- makeTransfer: c,
245
- label: o.sourceToken?.isIntent && o.targetToken?.isIntent ? s("submit.active.swap", "Swap") : s("submit.active.intentsSwap", "Swap & send"),
254
+ providers: k,
255
+ makeTransfer: A,
256
+ label: o.sourceToken?.isIntent && o.targetToken?.isIntent ? n("submit.active.swap", "Swap") : n("submit.active.intentsSwap", "Swap & send"),
246
257
  onSuccess: (e) => {
247
- S(e), p?.({ type: "on_transfer_success" });
258
+ w(e), c?.({ type: "on_transfer_success" });
248
259
  }
249
260
  }
250
261
  )
251
262
  ] });
252
263
  case "pending":
253
264
  default:
254
- return /* @__PURE__ */ t(T, {});
265
+ return /* @__PURE__ */ t(y, {});
255
266
  }
256
267
  };
257
268
  export {
258
- tt as WidgetSwapContent
269
+ rt as WidgetSwapContent
259
270
  };
260
271
  //# sourceMappingURL=WidgetSwapContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetSwapContent.js","sources":["../../../src/widgets/WidgetSwap/WidgetSwapContent.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { WidgetSwapSkeleton } from './WidgetSwapSkeleton';\nimport { useTypedTranslation } from '../../localisation';\nimport {\n SendAddress,\n SubmitButton,\n SuccessScreen,\n SwapDirectionSwitcher,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { BlockingError } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { ChainsFilter, Token, TransferResult } from '@/types';\n\nexport type Msg =\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean }\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_transfer_success' };\n\nexport type Props = CommonWidgetProps<Msg>;\n\nconst getSourceTokens = (\n enableAccountAbstraction: boolean,\n walletAddress?: string,\n): ChainsFilter => {\n const enabledIntentsFilter = walletAddress ? 'with-balance' : 'all';\n\n return {\n intents: enableAccountAbstraction ? enabledIntentsFilter : 'none',\n external: walletAddress ? 'wallet-supported' : 'all',\n };\n};\n\nexport const WidgetSwapContent = ({\n providers,\n makeTransfer,\n onMsg,\n isLoading,\n}: Props) => {\n const { ctx } = useUnsafeSnapshot();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n enableAccountAbstraction,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { t } = useTypedTranslation();\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n const { onChangeAmount, onChangeToken, lastChangedInput } =\n useTokenInputPair();\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(\n isCompatibilityCheckRequired,\n );\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(isCompatibilityCheckRequired);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n }, []);\n\n const onBackToSwap = () => {\n fireEvent('reset', { clearWalletAddress: false, keepSelectedTokens: true });\n };\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n ['setDefaultSelectedTokens', { skipIntents: false }],\n [\n 'makeQuote',\n {\n message: undefined,\n type: lastChangedInput === 'target' ? 'exact_out' : 'exact_in',\n refetchQuoteInterval,\n },\n ],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetSwapSkeleton />;\n }\n\n if (isCompatibilityCheckRequired && isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n showTargetToken\n title={t('transfer.success.swap.title', 'Swap successful')}\n {...transferResult}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n onBackToSwap();\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n showChainsSelector\n variant={tokenModalOpen}\n groupTokens={tokenModalOpen === 'source'}\n chainsFilter={\n tokenModalOpen === 'source'\n ? getSourceTokens(!!enableAccountAbstraction, ctx.walletAddress)\n : {\n intents: enableAccountAbstraction ? 'all' : 'none',\n external: 'all',\n }\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl flex flex-col\">\n <div className=\"gap-[10px] relative flex flex-col\">\n <TokenInput.Source\n heading={t('tokenInput.heading.source.swap', 'Sell')}\n isChanging={lastChangedInput === 'source'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n\n <SwapDirectionSwitcher />\n\n <TokenInput.Target\n heading={t('tokenInput.heading.target.swap', 'Buy')}\n isChanging={lastChangedInput === 'target'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('target', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('target', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('target');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </div>\n\n {!!ctx.walletAddress &&\n ctx.targetToken &&\n !ctx.targetToken.isIntent && (\n <SendAddress\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_change_send_address':\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={\n ctx.sourceToken?.isIntent && ctx.targetToken?.isIntent\n ? t('submit.active.swap', 'Swap')\n : t('submit.active.intentsSwap', 'Swap & send')\n }\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetSwapSkeleton />;\n }\n};\n"],"names":["getSourceTokens","enableAccountAbstraction","walletAddress","WidgetSwapContent","providers","makeTransfer","onMsg","isLoading","ctx","useUnsafeSnapshot","isDirectNearTokenWithdrawal","useComputedSnapshot","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","t","useTypedTranslation","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","onChangeAmount","onChangeToken","lastChangedInput","useTokenInputPair","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","fireEvent","onBackToSwap","useStoreSideEffects","isDebug","WidgetSwapSkeleton","jsx","WalletCompatibilityCheck","msg","notReachable","SuccessScreen","BlockingError","TokensModal","jsxs","TokenInput","SwapDirectionSwitcher","SendAddress","SwapQuote","SubmitButton","transfer"],"mappings":"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"}
1
+ {"version":3,"file":"WidgetSwapContent.js","sources":["../../../src/widgets/WidgetSwap/WidgetSwapContent.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { WidgetSwapSkeleton } from './WidgetSwapSkeleton';\nimport { useTypedTranslation } from '../../localisation';\nimport {\n SendAddress,\n SubmitButton,\n SuccessScreen,\n SwapDirectionSwitcher,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { BlockingError } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { ChainsFilters, Token, TransferResult } from '@/types';\n\nexport type Msg =\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean }\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_transfer_success' };\n\nexport type Props = CommonWidgetProps<Msg>;\n\nexport const WidgetSwapContent = ({\n providers,\n makeTransfer,\n onMsg,\n isLoading,\n}: Props) => {\n const { ctx } = useUnsafeSnapshot();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n chainsFilter: customChainsFilter,\n enableAccountAbstraction,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { t } = useTypedTranslation();\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n const { onChangeAmount, onChangeToken, lastChangedInput } =\n useTokenInputPair();\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(\n isCompatibilityCheckRequired,\n );\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(isCompatibilityCheckRequired);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n }, []);\n\n const onBackToSwap = () => {\n fireEvent('reset', { clearWalletAddress: false, keepSelectedTokens: true });\n };\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n ['setDefaultSelectedTokens', { skipIntents: false }],\n [\n 'makeQuote',\n {\n message: undefined,\n type: lastChangedInput === 'target' ? 'exact_out' : 'exact_in',\n refetchQuoteInterval,\n },\n ],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n const chainsFilters = useMemo((): ChainsFilters => {\n if (customChainsFilter) {\n return customChainsFilter;\n }\n\n const enabledIntentsFilter = ctx.walletAddress ? 'with-balance' : 'all';\n\n return {\n source: {\n intents: enableAccountAbstraction ? enabledIntentsFilter : 'none',\n external: ctx.walletAddress ? 'wallet-supported' : 'all',\n },\n target: {\n intents: enableAccountAbstraction ? 'all' : 'none',\n external: 'all',\n },\n };\n }, [customChainsFilter, enableAccountAbstraction, ctx.walletAddress]);\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetSwapSkeleton />;\n }\n\n if (isCompatibilityCheckRequired && isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n showTargetToken\n title={t('transfer.success.swap.title', 'Swap successful')}\n {...transferResult}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n onBackToSwap();\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n showChainsSelector\n variant={tokenModalOpen}\n groupTokens={tokenModalOpen === 'source'}\n chainsFilter={\n tokenModalOpen === 'source'\n ? chainsFilters.source\n : chainsFilters.target\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl flex flex-col\">\n <div className=\"gap-[10px] relative flex flex-col\">\n <TokenInput.Source\n heading={t('tokenInput.heading.source.swap', 'Sell')}\n isChanging={lastChangedInput === 'source'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n\n <SwapDirectionSwitcher />\n\n <TokenInput.Target\n heading={t('tokenInput.heading.target.swap', 'Buy')}\n isChanging={lastChangedInput === 'target'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('target', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('target', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('target');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </div>\n\n {!!ctx.walletAddress &&\n ctx.targetToken &&\n !ctx.targetToken.isIntent && (\n <SendAddress\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_change_send_address':\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={\n ctx.sourceToken?.isIntent && ctx.targetToken?.isIntent\n ? t('submit.active.swap', 'Swap')\n : t('submit.active.intentsSwap', 'Swap & send')\n }\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetSwapSkeleton />;\n }\n};\n"],"names":["WidgetSwapContent","providers","makeTransfer","onMsg","isLoading","ctx","useUnsafeSnapshot","isDirectNearTokenWithdrawal","useComputedSnapshot","customChainsFilter","enableAccountAbstraction","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","t","useTypedTranslation","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","onChangeAmount","onChangeToken","lastChangedInput","useTokenInputPair","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","fireEvent","onBackToSwap","useStoreSideEffects","isDebug","chainsFilters","useMemo","enabledIntentsFilter","WidgetSwapSkeleton","jsx","WalletCompatibilityCheck","msg","notReachable","SuccessScreen","BlockingError","TokensModal","jsxs","TokenInput","SwapDirectionSwitcher","SendAddress","SwapQuote","SubmitButton","transfer"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as a, jsx as l } from "react/jsx-runtime";
2
2
  import o from "clsx";
3
3
  import { SkeletonBox as s } from "../../components/SkeletonBox.js";
4
- import { y as i } from "../../config-DMLDiA0V.js";
4
+ import { y as i } from "../../config-6S9JcYY_.js";
5
5
  const m = () => {
6
6
  const { hideTokenInputHeadings: e } = i();
7
7
  return /* @__PURE__ */ a("div", { className: "w-full gap-sw-lg relative flex flex-col", children: [