thirdweb 5.88.3 → 5.88.5-nightly-52cbcd2d57abf4d69ee417fe98fca815e19f2f34-20250216000400

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 (196) hide show
  1. package/dist/cjs/contract/deployment/deploy-via-autofactory.js +33 -9
  2. package/dist/cjs/contract/deployment/deploy-via-autofactory.js.map +1 -1
  3. package/dist/cjs/exports/contract.js +3 -1
  4. package/dist/cjs/exports/contract.js.map +1 -1
  5. package/dist/cjs/exports/modules.js +3 -1
  6. package/dist/cjs/exports/modules.js.map +1 -1
  7. package/dist/cjs/extensions/modules/common/installPublishedModule.js +4 -1
  8. package/dist/cjs/extensions/modules/common/installPublishedModule.js.map +1 -1
  9. package/dist/cjs/extensions/prebuilts/deploy-published.js +14 -2
  10. package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
  11. package/dist/cjs/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js +33 -0
  12. package/dist/cjs/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js.map +1 -0
  13. package/dist/cjs/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js +152 -0
  14. package/dist/cjs/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js.map +1 -0
  15. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +66 -56
  16. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  17. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +3 -1
  18. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js.map +1 -1
  19. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +2 -2
  20. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
  21. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +13 -13
  22. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
  23. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +6 -0
  24. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +3 -1
  26. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  27. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js +2 -26
  28. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js.map +1 -1
  29. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +1 -1
  30. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
  31. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +6 -12
  32. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +2 -2
  34. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
  35. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js +198 -0
  36. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js.map +1 -0
  37. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +3 -3
  38. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  39. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js +1 -1
  40. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  41. package/dist/cjs/react/web/ui/components/buttons.js +11 -0
  42. package/dist/cjs/react/web/ui/components/buttons.js.map +1 -1
  43. package/dist/cjs/react/web/ui/components/token/TokenRow.js +36 -0
  44. package/dist/cjs/react/web/ui/components/token/TokenRow.js.map +1 -0
  45. package/dist/cjs/utils/abi/normalizeFunctionParams.js +6 -2
  46. package/dist/cjs/utils/abi/normalizeFunctionParams.js.map +1 -1
  47. package/dist/cjs/utils/ens/namehash.js.map +1 -1
  48. package/dist/cjs/version.js +1 -1
  49. package/dist/cjs/version.js.map +1 -1
  50. package/dist/cjs/wallets/in-app/core/wallet/index.js +1 -1
  51. package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
  52. package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js +7 -4
  53. package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
  54. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +2 -2
  55. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  56. package/dist/esm/contract/deployment/deploy-via-autofactory.js +33 -9
  57. package/dist/esm/contract/deployment/deploy-via-autofactory.js.map +1 -1
  58. package/dist/esm/exports/contract.js +1 -0
  59. package/dist/esm/exports/contract.js.map +1 -1
  60. package/dist/esm/exports/modules.js +1 -0
  61. package/dist/esm/exports/modules.js.map +1 -1
  62. package/dist/esm/extensions/modules/common/installPublishedModule.js +4 -1
  63. package/dist/esm/extensions/modules/common/installPublishedModule.js.map +1 -1
  64. package/dist/esm/extensions/prebuilts/deploy-published.js +14 -2
  65. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  66. package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js +30 -0
  67. package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js.map +1 -0
  68. package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js +145 -0
  69. package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js.map +1 -0
  70. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +68 -58
  71. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  72. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +3 -1
  73. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js.map +1 -1
  74. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +1 -1
  75. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
  76. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +13 -13
  77. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
  78. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +6 -0
  79. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
  80. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +3 -1
  81. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  82. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js +3 -27
  83. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js.map +1 -1
  84. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +1 -1
  85. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
  86. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +6 -12
  87. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  88. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +2 -2
  89. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
  90. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js +194 -0
  91. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js.map +1 -0
  92. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +1 -1
  93. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  94. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +1 -1
  95. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  96. package/dist/esm/react/web/ui/components/buttons.js +11 -0
  97. package/dist/esm/react/web/ui/components/buttons.js.map +1 -1
  98. package/dist/esm/react/web/ui/components/token/TokenRow.js +33 -0
  99. package/dist/esm/react/web/ui/components/token/TokenRow.js.map +1 -0
  100. package/dist/esm/utils/abi/normalizeFunctionParams.js +6 -2
  101. package/dist/esm/utils/abi/normalizeFunctionParams.js.map +1 -1
  102. package/dist/esm/utils/ens/namehash.js.map +1 -1
  103. package/dist/esm/version.js +1 -1
  104. package/dist/esm/version.js.map +1 -1
  105. package/dist/esm/wallets/in-app/core/wallet/index.js +1 -1
  106. package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
  107. package/dist/esm/wallets/in-app/web/lib/auth/oauth.js +5 -2
  108. package/dist/esm/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
  109. package/dist/esm/wallets/in-app/web/lib/web-connector.js +2 -2
  110. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  111. package/dist/types/contract/deployment/deploy-via-autofactory.d.ts +8 -2
  112. package/dist/types/contract/deployment/deploy-via-autofactory.d.ts.map +1 -1
  113. package/dist/types/exports/contract.d.ts +1 -0
  114. package/dist/types/exports/contract.d.ts.map +1 -1
  115. package/dist/types/exports/modules.d.ts +1 -0
  116. package/dist/types/exports/modules.d.ts.map +1 -1
  117. package/dist/types/extensions/modules/common/installPublishedModule.d.ts +1 -0
  118. package/dist/types/extensions/modules/common/installPublishedModule.d.ts.map +1 -1
  119. package/dist/types/extensions/prebuilts/deploy-published.d.ts +2 -0
  120. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  121. package/dist/types/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.d.ts +70 -0
  122. package/dist/types/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.d.ts.map +1 -0
  123. package/dist/types/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.d.ts +100 -0
  124. package/dist/types/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.d.ts.map +1 -0
  125. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  126. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.d.ts.map +1 -1
  127. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.d.ts.map +1 -1
  128. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts +1 -0
  129. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts.map +1 -1
  130. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  131. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.d.ts.map +1 -1
  132. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.d.ts.map +1 -1
  133. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts +1 -0
  134. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts.map +1 -1
  135. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts.map +1 -1
  136. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/{PaymentSelectionScreen.d.ts → TokenSelectorScreen.d.ts} +19 -14
  137. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.d.ts.map +1 -0
  138. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
  139. package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
  140. package/dist/types/react/web/ui/components/token/TokenRow.d.ts +14 -0
  141. package/dist/types/react/web/ui/components/token/TokenRow.d.ts.map +1 -0
  142. package/dist/types/utils/abi/normalizeFunctionParams.d.ts.map +1 -1
  143. package/dist/types/utils/ens/namehash.d.ts.map +1 -1
  144. package/dist/types/version.d.ts +1 -1
  145. package/dist/types/version.d.ts.map +1 -1
  146. package/dist/types/wallets/in-app/core/interfaces/connector.d.ts +1 -1
  147. package/dist/types/wallets/in-app/core/interfaces/connector.d.ts.map +1 -1
  148. package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts +2 -2
  149. package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts.map +1 -1
  150. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +1 -1
  151. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  152. package/package.json +1 -1
  153. package/src/contract/deployment/deploy-via-autofactory.test.ts +166 -0
  154. package/src/contract/deployment/deploy-via-autofactory.ts +50 -10
  155. package/src/exports/contract.ts +1 -0
  156. package/src/exports/modules.ts +1 -0
  157. package/src/extensions/modules/common/installPublishedModule.ts +5 -0
  158. package/src/extensions/prebuilts/deploy-published.ts +18 -2
  159. package/src/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.ts +55 -0
  160. package/src/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.ts +184 -0
  161. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +132 -86
  162. package/src/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.tsx +6 -1
  163. package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +1 -1
  164. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.tsx +67 -66
  165. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.tsx +7 -0
  166. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +3 -1
  167. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.tsx +9 -75
  168. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx +3 -1
  169. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +13 -41
  170. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.tsx +59 -53
  171. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.tsx +437 -0
  172. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +1 -1
  173. package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +1 -1
  174. package/src/react/web/ui/components/buttons.tsx +12 -0
  175. package/src/react/web/ui/components/token/TokenRow.tsx +111 -0
  176. package/src/utils/abi/normalizeFunctionParams.test.ts +26 -1
  177. package/src/utils/abi/normalizeFunctionParams.ts +9 -4
  178. package/src/utils/ens/namehash.ts +4 -1
  179. package/src/version.ts +1 -1
  180. package/src/wallets/in-app/core/interfaces/connector.ts +1 -1
  181. package/src/wallets/in-app/core/wallet/index.ts +1 -1
  182. package/src/wallets/in-app/web/lib/auth/oauth.ts +6 -3
  183. package/src/wallets/in-app/web/lib/web-connector.ts +3 -3
  184. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +0 -85
  185. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +0 -1
  186. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js +0 -142
  187. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js.map +0 -1
  188. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +0 -81
  189. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +0 -1
  190. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js +0 -139
  191. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js.map +0 -1
  192. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts +0 -22
  193. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts.map +0 -1
  194. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.d.ts.map +0 -1
  195. package/src/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.tsx +0 -220
  196. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.tsx +0 -263
@@ -1,81 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import styled from "@emotion/styled";
3
- import { ChevronRightIcon } from "@radix-ui/react-icons";
4
- import { useState } from "react";
5
- import { shortenAddress } from "../../../../../../utils/address.js";
6
- import { useCustomTheme } from "../../../../../core/design-system/CustomThemeProvider.js";
7
- import { iconSize, radius, spacing, } from "../../../../../core/design-system/index.js";
8
- import { useChainName } from "../../../../../core/hooks/others/useChainQuery.js";
9
- import { useEnsAvatar, useEnsName } from "../../../../../core/utils/wallet.js";
10
- import { Img } from "../../../components/Img.js";
11
- import { TokenIcon } from "../../../components/TokenIcon.js";
12
- import { WalletImage } from "../../../components/WalletImage.js";
13
- import { Container } from "../../../components/basic.js";
14
- import { Button } from "../../../components/buttons.js";
15
- import { Text } from "../../../components/text.js";
16
- import { Blobbie } from "../../Blobbie.js";
17
- import { formatTokenBalance } from "../formatTokenBalance.js";
18
- import { FiatValue } from "./swap/FiatValue.js";
19
- export function WalletRowWithBalances(props) {
20
- const theme = useCustomTheme();
21
- const [showAll, setShowAll] = useState(false);
22
- const maxDisplayedBalances = 3;
23
- const displayedBalances = showAll
24
- ? props.balances
25
- : props.balances.slice(0, maxDisplayedBalances);
26
- return (_jsxs(Container, { bg: "tertiaryBg", style: {
27
- borderRadius: radius.lg,
28
- border: `1px solid ${theme.colors.borderColor}`,
29
- }, children: [_jsx(Container, { style: { padding: spacing.sm }, children: _jsx(WalletRow, { ...props }) }), _jsx("div", { style: { borderTop: `1px solid ${theme.colors.borderColor}` } }), _jsx(Container, { flex: "column", children: props.balances.length > 0 ? (_jsxs(_Fragment, { children: [displayedBalances.map((b) => (_jsx(TokenBalanceRow, { client: props.client, onClick: () => props.onClick(props.wallet, b.token, b.chain), tokenBalance: b, wallet: props.wallet }, `${b.token.address}-${b.chain.id}`))), props.balances.length > maxDisplayedBalances && (_jsx(StyledButton, { variant: "secondary", onClick: () => setShowAll(!showAll), style: {
30
- justifyContent: "start",
31
- }, children: _jsx(Text, { size: "xs", children: showAll ? "Show less" : "Show more" }) }))] })) : (_jsx(Container, { style: { padding: spacing.sm }, children: _jsx(Text, { size: "sm", color: "secondaryText", children: "Not enough funds" }) })) })] }));
32
- }
33
- function TokenBalanceRow(props) {
34
- const { tokenBalance, wallet, onClick, client } = props;
35
- const chainInfo = useChainName(tokenBalance.chain);
36
- return (_jsxs(StyledButton, { onClick: () => onClick(tokenBalance.token, wallet), variant: "secondary", children: [_jsxs(Container, { flex: "row", center: "y", gap: "md", children: [_jsx(TokenIcon, { token: tokenBalance.token, chain: tokenBalance.chain, size: "md", client: client }), _jsxs(Container, { flex: "column", gap: "3xs", children: [_jsx(Text, { size: "xs", color: "primaryText", children: tokenBalance.token.symbol }), chainInfo && _jsx(Text, { size: "xs", children: chainInfo.name })] })] }), _jsxs(Container, { flex: "row", center: "y", gap: "3xs", color: "secondaryText", children: [_jsxs(Container, { flex: "column", color: "secondaryText", gap: "3xs", style: {
37
- justifyContent: "flex-end",
38
- alignItems: "flex-end",
39
- }, children: [_jsx(Text, { size: "xs", color: "primaryText", children: formatTokenBalance(tokenBalance.balance, true, 2) }), _jsx(FiatValue, { tokenAmount: tokenBalance.balance.displayValue, token: tokenBalance.token, chain: tokenBalance.chain, client: client, size: "xs" })] }), _jsx(ChevronRightIcon, { width: iconSize.md, height: iconSize.md })] })] }));
40
- }
41
- export function WalletRow(props) {
42
- const { client, address } = props;
43
- const walletId = props.walletId;
44
- const theme = useCustomTheme();
45
- const ensNameQuery = useEnsName({
46
- client,
47
- address,
48
- });
49
- const addressOrENS = ensNameQuery.data || shortenAddress(address);
50
- const ensAvatarQuery = useEnsAvatar({
51
- client,
52
- ensName: ensNameQuery.data,
53
- });
54
- return (_jsxs(Container, { flex: "row", center: "y", gap: "sm", color: "secondaryText", children: [ensAvatarQuery.data ? (_jsx(Img, { src: ensAvatarQuery.data, width: props.iconSize ? iconSize[props.iconSize] : iconSize.md, height: props.iconSize ? iconSize[props.iconSize] : iconSize.md, style: {
55
- borderRadius: radius.sm,
56
- overflow: "hidden",
57
- border: `1px solid ${theme.colors.borderColor}`,
58
- }, client: props.client })) : walletId ? (_jsx(WalletImage, { id: walletId, size: props.iconSize || iconSize.md, client: props.client })) : (_jsx(Container, { style: {
59
- width: iconSize.md,
60
- height: iconSize.md,
61
- borderRadius: radius.sm,
62
- overflow: "hidden",
63
- border: `1px solid ${theme.colors.borderColor}`,
64
- }, children: _jsx(Blobbie, { address: props.address, size: Number(iconSize.md) }) })), _jsx(Text, { size: props.textSize || "sm", color: "primaryText", children: addressOrENS || shortenAddress(props.address) })] }));
65
- }
66
- const StyledButton = /* @__PURE__ */ styled(Button)((_) => {
67
- const theme = useCustomTheme();
68
- return {
69
- background: theme.colors.tertiaryBg,
70
- justifyContent: "space-between",
71
- flexDirection: "row",
72
- padding: spacing.sm,
73
- gap: spacing.sm,
74
- "&:hover": {
75
- background: theme.colors.secondaryButtonBg,
76
- transform: "scale(1.01)",
77
- },
78
- transition: "background 200ms ease, transform 150ms ease",
79
- };
80
- });
81
- //# sourceMappingURL=WalletSelectorButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WalletSelectorButton.js","sourceRoot":"","sources":["../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.tsx"],"names":[],"mappings":"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"}
@@ -1,139 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { IdCardIcon } from "@radix-ui/react-icons";
3
- import { useQuery } from "@tanstack/react-query";
4
- import { getCachedChain } from "../../../../../../../chains/utils.js";
5
- import { NATIVE_TOKEN_ADDRESS } from "../../../../../../../constants/addresses.js";
6
- import { getWalletBalance, } from "../../../../../../../wallets/utils/getWalletBalance.js";
7
- import { useCustomTheme } from "../../../../../../core/design-system/CustomThemeProvider.js";
8
- import { iconSize, radius, spacing, } from "../../../../../../core/design-system/index.js";
9
- import { useChainMetadata } from "../../../../../../core/hooks/others/useChainQuery.js";
10
- import { useActiveAccount } from "../../../../../../core/hooks/wallets/useActiveAccount.js";
11
- import { useConnectedWallets } from "../../../../../../core/hooks/wallets/useConnectedWallets.js";
12
- import { LoadingScreen } from "../../../../../wallets/shared/LoadingScreen.js";
13
- import { Spacer } from "../../../../components/Spacer.js";
14
- import { Container } from "../../../../components/basic.js";
15
- import { Button } from "../../../../components/buttons.js";
16
- import { Text } from "../../../../components/text.js";
17
- import { OutlineWalletIcon } from "../../../icons/OutlineWalletIcon.js";
18
- import { isNativeToken } from "../../nativeToken.js";
19
- import { WalletRowWithBalances } from "../WalletSelectorButton.js";
20
- export function PaymentSelectionScreen(props) {
21
- const theme = useCustomTheme();
22
- const connectedWallets = useConnectedWallets();
23
- // if all wallets are connected and showAll wallets is disabled, hide the connect button
24
- const hideConnectButton = !props.showAllWallets &&
25
- props.wallets?.every((w) => connectedWallets.includes(w));
26
- const chainInfo = useChainMetadata(props.toChain);
27
- const activeAccount = useActiveAccount();
28
- const walletsAndBalances = useQuery({
29
- queryKey: [
30
- "wallets-and-balances",
31
- connectedWallets.map((w) => w.getAccount()?.address),
32
- props.sourceSupportedTokens,
33
- props.toChain.id,
34
- props.toToken,
35
- props.tokenAmount,
36
- props.mode,
37
- activeAccount?.address,
38
- ],
39
- queryFn: async () => {
40
- // in parallel, get the balances of all the wallets on each of the sourceSupportedTokens
41
- const walletBalanceMap = new Map();
42
- const balancePromises = connectedWallets.flatMap((wallet) => {
43
- const account = wallet.getAccount();
44
- if (!account)
45
- return [];
46
- walletBalanceMap.set(wallet, []);
47
- // inject the destination token too since it can be used as well to pay/transfer
48
- const toToken = isNativeToken(props.toToken)
49
- ? {
50
- address: NATIVE_TOKEN_ADDRESS,
51
- name: chainInfo.data?.nativeCurrency.name || "",
52
- symbol: chainInfo.data?.nativeCurrency.symbol || "",
53
- icon: chainInfo.data?.icon?.url,
54
- }
55
- : props.toToken;
56
- const tokens = {
57
- ...props.sourceSupportedTokens,
58
- [props.toChain.id]: [
59
- toToken,
60
- ...(props.sourceSupportedTokens?.[props.toChain.id] || []),
61
- ],
62
- };
63
- return Object.entries(tokens).flatMap(([chainId, tokens]) => {
64
- return tokens.map(async (token) => {
65
- try {
66
- const chain = getCachedChain(Number(chainId));
67
- const balance = await getWalletBalance({
68
- address: account.address,
69
- chain,
70
- tokenAddress: isNativeToken(token) ? undefined : token.address,
71
- client: props.client,
72
- });
73
- // show the token if:
74
- // - its not the destination token and balance is greater than 0
75
- // - its the destination token and balance is greater than the token amount AND we the account is not the default account in fund_wallet mode
76
- const shouldInclude = token.address === toToken.address &&
77
- chain.id === props.toChain.id
78
- ? props.mode === "fund_wallet" &&
79
- account.address === activeAccount?.address
80
- ? false
81
- : Number(balance.displayValue) > Number(props.tokenAmount)
82
- : balance.value > 0n;
83
- if (shouldInclude) {
84
- const existingBalances = walletBalanceMap.get(wallet) || [];
85
- existingBalances.push({ balance, chain, token });
86
- existingBalances.sort((a, b) => {
87
- if (a.chain.id === props.toChain.id &&
88
- a.token.address === toToken.address)
89
- return -1;
90
- if (b.chain.id === props.toChain.id &&
91
- b.token.address === toToken.address)
92
- return 1;
93
- if (a.chain.id === props.toChain.id)
94
- return -1;
95
- if (b.chain.id === props.toChain.id)
96
- return 1;
97
- return a.chain.id > b.chain.id ? 1 : -1;
98
- });
99
- }
100
- }
101
- catch (error) {
102
- console.error(`Failed to fetch balance for wallet ${wallet.id} on chain ${chainId} for token ${token.symbol}:`, error);
103
- }
104
- });
105
- });
106
- });
107
- await Promise.all(balancePromises);
108
- return walletBalanceMap;
109
- },
110
- enabled: !!props.sourceSupportedTokens && !!chainInfo.data,
111
- });
112
- if (walletsAndBalances.isLoading || !walletsAndBalances.data) {
113
- return _jsx(LoadingScreen, {});
114
- }
115
- const filteredWallets = Array.from(walletsAndBalances.data?.entries() || [])
116
- .filter(([w]) => !props.hiddenWallets?.includes(w.id))
117
- .filter(([, balances]) => {
118
- const hasEnoughBalance = balances.some((b) => b.balance.value > 0);
119
- return hasEnoughBalance;
120
- });
121
- return (_jsxs(Container, { children: [_jsxs(Container, { flex: "column", gap: "xs", children: [filteredWallets.length === 0 && (_jsx(Container, { flex: "column", gap: "xs", py: "md", children: _jsx(Text, { size: "xs", color: "secondaryText", center: true, children: _jsx("i", { children: "Insufficient funds in connected wallets" }) }) })), filteredWallets.map(([w, balances]) => {
122
- const address = w.getAccount()?.address;
123
- if (!address)
124
- return null;
125
- return (_jsx(WalletRowWithBalances, { wallet: w, balances: balances, client: props.client, address: address, onClick: props.onSelect }, w.id));
126
- }), !hideConnectButton && (_jsx(Button, { variant: "secondary", fullWidth: true, onClick: props.onConnect, gap: "xs", bg: "tertiaryBg", style: {
127
- borderRadius: radius.lg,
128
- border: `1px solid ${theme.colors.borderColor}`,
129
- padding: spacing.sm,
130
- }, children: _jsxs(Container, { flex: "row", gap: "sm", center: "y", expand: true, color: "secondaryIconColor", children: [_jsx(OutlineWalletIcon, { size: iconSize.md }), _jsx(Text, { size: "sm", color: "primaryText", children: "Pay with another wallet" })] }) })), props.payWithFiatEnabled && (_jsx(Button, { variant: "secondary", fullWidth: true, gap: "xs", bg: "tertiaryBg", onClick: props.onSelectFiat, style: {
131
- borderRadius: radius.lg,
132
- border: `1px solid ${theme.colors.borderColor}`,
133
- padding: spacing.sm,
134
- }, children: _jsxs(Container, { flex: "row", gap: "sm", center: "y", expand: true, color: "secondaryIconColor", children: [_jsx(IdCardIcon, { style: {
135
- width: iconSize.md,
136
- height: iconSize.md,
137
- } }), _jsx(Text, { size: "sm", color: "primaryText", children: "Pay with credit card" })] }) }))] }), _jsx(Spacer, { y: "sm" })] }));
138
- }
139
- //# sourceMappingURL=PaymentSelectionScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaymentSelectionScreen.js","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.tsx"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import type { Chain } from "../../../../../../chains/types.js";
2
- import type { ThirdwebClient } from "../../../../../../client/client.js";
3
- import type { Wallet } from "../../../../../../wallets/interfaces/wallet.js";
4
- import type { WalletId } from "../../../../../../wallets/wallet-types.js";
5
- import { type fontSize, iconSize } from "../../../../../core/design-system/index.js";
6
- import type { TokenInfo } from "../../../../../core/utils/defaultTokens.js";
7
- import type { TokenBalance } from "./swap/PaymentSelectionScreen.js";
8
- export declare function WalletRowWithBalances(props: {
9
- client: ThirdwebClient;
10
- address: string;
11
- wallet: Wallet;
12
- balances: TokenBalance[];
13
- onClick: (wallet: Wallet, token: TokenInfo, chain: Chain) => void;
14
- }): import("react/jsx-runtime.js").JSX.Element;
15
- export declare function WalletRow(props: {
16
- client: ThirdwebClient;
17
- address: string;
18
- iconSize?: keyof typeof iconSize;
19
- textSize?: keyof typeof fontSize;
20
- walletId?: WalletId;
21
- }): import("react/jsx-runtime.js").JSX.Element;
22
- //# sourceMappingURL=WalletSelectorButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WalletSelectorButton.d.ts","sourceRoot":"","sources":["../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gDAAgD,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAE1E,OAAO,EACL,KAAK,QAAQ,EACb,QAAQ,EAGT,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAW5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACnE,8CAsDA;AAwDD,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,OAAO,QAAQ,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,OAAO,QAAQ,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,8CAoDA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaymentSelectionScreen.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAC;AAChF,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAC;AAO7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAIlG,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACV,MAAM,+CAA+C,CAAC;AAOvD,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,sBAAsB,CAAC;AAG9E,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,qBAAqB,EAAE,eAAe,GAAG,SAAS,CAAC;IACnD,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,kBAAkB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACnE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;CAC7B,8CA8MA"}
@@ -1,220 +0,0 @@
1
- import styled from "@emotion/styled";
2
- import { ChevronRightIcon } from "@radix-ui/react-icons";
3
- import { useState } from "react";
4
- import type { Chain } from "../../../../../../chains/types.js";
5
- import type { ThirdwebClient } from "../../../../../../client/client.js";
6
- import { shortenAddress } from "../../../../../../utils/address.js";
7
- import type { Wallet } from "../../../../../../wallets/interfaces/wallet.js";
8
- import type { WalletId } from "../../../../../../wallets/wallet-types.js";
9
- import { useCustomTheme } from "../../../../../core/design-system/CustomThemeProvider.js";
10
- import {
11
- type fontSize,
12
- iconSize,
13
- radius,
14
- spacing,
15
- } from "../../../../../core/design-system/index.js";
16
- import { useChainName } from "../../../../../core/hooks/others/useChainQuery.js";
17
- import type { TokenInfo } from "../../../../../core/utils/defaultTokens.js";
18
- import { useEnsAvatar, useEnsName } from "../../../../../core/utils/wallet.js";
19
- import { Img } from "../../../components/Img.js";
20
- import { TokenIcon } from "../../../components/TokenIcon.js";
21
- import { WalletImage } from "../../../components/WalletImage.js";
22
- import { Container } from "../../../components/basic.js";
23
- import { Button } from "../../../components/buttons.js";
24
- import { Text } from "../../../components/text.js";
25
- import { Blobbie } from "../../Blobbie.js";
26
- import { formatTokenBalance } from "../formatTokenBalance.js";
27
- import { FiatValue } from "./swap/FiatValue.js";
28
- import type { TokenBalance } from "./swap/PaymentSelectionScreen.js";
29
-
30
- export function WalletRowWithBalances(props: {
31
- client: ThirdwebClient;
32
- address: string;
33
- wallet: Wallet;
34
- balances: TokenBalance[];
35
- onClick: (wallet: Wallet, token: TokenInfo, chain: Chain) => void;
36
- }) {
37
- const theme = useCustomTheme();
38
- const [showAll, setShowAll] = useState(false);
39
- const maxDisplayedBalances = 3;
40
- const displayedBalances = showAll
41
- ? props.balances
42
- : props.balances.slice(0, maxDisplayedBalances);
43
-
44
- return (
45
- <Container
46
- bg="tertiaryBg"
47
- style={{
48
- borderRadius: radius.lg,
49
- border: `1px solid ${theme.colors.borderColor}`,
50
- }}
51
- >
52
- <Container style={{ padding: spacing.sm }}>
53
- <WalletRow {...props} />
54
- </Container>
55
- <div style={{ borderTop: `1px solid ${theme.colors.borderColor}` }} />
56
- <Container flex="column">
57
- {props.balances.length > 0 ? (
58
- <>
59
- {displayedBalances.map((b) => (
60
- <TokenBalanceRow
61
- client={props.client}
62
- onClick={() => props.onClick(props.wallet, b.token, b.chain)}
63
- key={`${b.token.address}-${b.chain.id}`}
64
- tokenBalance={b}
65
- wallet={props.wallet}
66
- />
67
- ))}
68
- {props.balances.length > maxDisplayedBalances && (
69
- <StyledButton
70
- variant="secondary"
71
- onClick={() => setShowAll(!showAll)}
72
- style={{
73
- justifyContent: "start",
74
- }}
75
- >
76
- <Text size="xs">{showAll ? "Show less" : "Show more"}</Text>
77
- </StyledButton>
78
- )}
79
- </>
80
- ) : (
81
- <Container style={{ padding: spacing.sm }}>
82
- <Text size="sm" color="secondaryText">
83
- Not enough funds
84
- </Text>
85
- </Container>
86
- )}
87
- </Container>
88
- </Container>
89
- );
90
- }
91
-
92
- function TokenBalanceRow(props: {
93
- client: ThirdwebClient;
94
- tokenBalance: TokenBalance;
95
- wallet: Wallet;
96
- onClick: (token: TokenInfo, wallet: Wallet) => void;
97
- }) {
98
- const { tokenBalance, wallet, onClick, client } = props;
99
- const chainInfo = useChainName(tokenBalance.chain);
100
- return (
101
- <StyledButton
102
- onClick={() => onClick(tokenBalance.token, wallet)}
103
- variant="secondary"
104
- >
105
- <Container flex="row" center="y" gap="md">
106
- <TokenIcon
107
- token={tokenBalance.token}
108
- chain={tokenBalance.chain}
109
- size="md"
110
- client={client}
111
- />
112
- <Container flex="column" gap="3xs">
113
- <Text size="xs" color="primaryText">
114
- {tokenBalance.token.symbol}
115
- </Text>
116
- {chainInfo && <Text size="xs">{chainInfo.name}</Text>}
117
- </Container>
118
- </Container>
119
- <Container flex="row" center="y" gap="3xs" color="secondaryText">
120
- <Container
121
- flex="column"
122
- color="secondaryText"
123
- gap="3xs"
124
- style={{
125
- justifyContent: "flex-end",
126
- alignItems: "flex-end",
127
- }}
128
- >
129
- <Text size="xs" color="primaryText">
130
- {formatTokenBalance(tokenBalance.balance, true, 2)}
131
- </Text>
132
- <FiatValue
133
- tokenAmount={tokenBalance.balance.displayValue}
134
- token={tokenBalance.token}
135
- chain={tokenBalance.chain}
136
- client={client}
137
- size="xs"
138
- />
139
- </Container>
140
- <ChevronRightIcon width={iconSize.md} height={iconSize.md} />
141
- </Container>
142
- </StyledButton>
143
- );
144
- }
145
-
146
- export function WalletRow(props: {
147
- client: ThirdwebClient;
148
- address: string;
149
- iconSize?: keyof typeof iconSize;
150
- textSize?: keyof typeof fontSize;
151
- walletId?: WalletId;
152
- }) {
153
- const { client, address } = props;
154
- const walletId = props.walletId;
155
- const theme = useCustomTheme();
156
- const ensNameQuery = useEnsName({
157
- client,
158
- address,
159
- });
160
- const addressOrENS = ensNameQuery.data || shortenAddress(address);
161
- const ensAvatarQuery = useEnsAvatar({
162
- client,
163
- ensName: ensNameQuery.data,
164
- });
165
- return (
166
- <Container flex="row" center="y" gap="sm" color="secondaryText">
167
- {ensAvatarQuery.data ? (
168
- <Img
169
- src={ensAvatarQuery.data}
170
- width={props.iconSize ? iconSize[props.iconSize] : iconSize.md}
171
- height={props.iconSize ? iconSize[props.iconSize] : iconSize.md}
172
- style={{
173
- borderRadius: radius.sm,
174
- overflow: "hidden",
175
- border: `1px solid ${theme.colors.borderColor}`,
176
- }}
177
- client={props.client}
178
- />
179
- ) : walletId ? (
180
- <WalletImage
181
- id={walletId}
182
- size={props.iconSize || iconSize.md}
183
- client={props.client}
184
- />
185
- ) : (
186
- <Container
187
- style={{
188
- width: iconSize.md,
189
- height: iconSize.md,
190
- borderRadius: radius.sm,
191
- overflow: "hidden",
192
- border: `1px solid ${theme.colors.borderColor}`,
193
- }}
194
- >
195
- <Blobbie address={props.address} size={Number(iconSize.md)} />
196
- </Container>
197
- )}
198
-
199
- <Text size={props.textSize || "sm"} color="primaryText">
200
- {addressOrENS || shortenAddress(props.address)}
201
- </Text>
202
- </Container>
203
- );
204
- }
205
-
206
- const StyledButton = /* @__PURE__ */ styled(Button)((_) => {
207
- const theme = useCustomTheme();
208
- return {
209
- background: theme.colors.tertiaryBg,
210
- justifyContent: "space-between",
211
- flexDirection: "row",
212
- padding: spacing.sm,
213
- gap: spacing.sm,
214
- "&:hover": {
215
- background: theme.colors.secondaryButtonBg,
216
- transform: "scale(1.01)",
217
- },
218
- transition: "background 200ms ease, transform 150ms ease",
219
- };
220
- });