thirdweb 5.88.4 → 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 (174) 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/esm/contract/deployment/deploy-via-autofactory.js +33 -9
  51. package/dist/esm/contract/deployment/deploy-via-autofactory.js.map +1 -1
  52. package/dist/esm/exports/contract.js +1 -0
  53. package/dist/esm/exports/contract.js.map +1 -1
  54. package/dist/esm/exports/modules.js +1 -0
  55. package/dist/esm/exports/modules.js.map +1 -1
  56. package/dist/esm/extensions/modules/common/installPublishedModule.js +4 -1
  57. package/dist/esm/extensions/modules/common/installPublishedModule.js.map +1 -1
  58. package/dist/esm/extensions/prebuilts/deploy-published.js +14 -2
  59. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  60. package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js +30 -0
  61. package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js.map +1 -0
  62. package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js +145 -0
  63. package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js.map +1 -0
  64. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +68 -58
  65. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  66. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +3 -1
  67. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js.map +1 -1
  68. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +1 -1
  69. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
  70. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +13 -13
  71. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
  72. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +6 -0
  73. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
  74. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +3 -1
  75. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  76. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js +3 -27
  77. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js.map +1 -1
  78. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +1 -1
  79. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
  80. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +6 -12
  81. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  82. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +2 -2
  83. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
  84. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js +194 -0
  85. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js.map +1 -0
  86. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +1 -1
  87. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  88. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +1 -1
  89. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  90. package/dist/esm/react/web/ui/components/buttons.js +11 -0
  91. package/dist/esm/react/web/ui/components/buttons.js.map +1 -1
  92. package/dist/esm/react/web/ui/components/token/TokenRow.js +33 -0
  93. package/dist/esm/react/web/ui/components/token/TokenRow.js.map +1 -0
  94. package/dist/esm/utils/abi/normalizeFunctionParams.js +6 -2
  95. package/dist/esm/utils/abi/normalizeFunctionParams.js.map +1 -1
  96. package/dist/esm/utils/ens/namehash.js.map +1 -1
  97. package/dist/esm/version.js +1 -1
  98. package/dist/esm/version.js.map +1 -1
  99. package/dist/types/contract/deployment/deploy-via-autofactory.d.ts +8 -2
  100. package/dist/types/contract/deployment/deploy-via-autofactory.d.ts.map +1 -1
  101. package/dist/types/exports/contract.d.ts +1 -0
  102. package/dist/types/exports/contract.d.ts.map +1 -1
  103. package/dist/types/exports/modules.d.ts +1 -0
  104. package/dist/types/exports/modules.d.ts.map +1 -1
  105. package/dist/types/extensions/modules/common/installPublishedModule.d.ts +1 -0
  106. package/dist/types/extensions/modules/common/installPublishedModule.d.ts.map +1 -1
  107. package/dist/types/extensions/prebuilts/deploy-published.d.ts +2 -0
  108. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  109. package/dist/types/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.d.ts +70 -0
  110. package/dist/types/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.d.ts.map +1 -0
  111. package/dist/types/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.d.ts +100 -0
  112. package/dist/types/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.d.ts.map +1 -0
  113. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  114. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.d.ts.map +1 -1
  115. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.d.ts.map +1 -1
  116. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts +1 -0
  117. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts.map +1 -1
  118. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  119. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.d.ts.map +1 -1
  120. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.d.ts.map +1 -1
  121. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts +1 -0
  122. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts.map +1 -1
  123. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts.map +1 -1
  124. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/{PaymentSelectionScreen.d.ts → TokenSelectorScreen.d.ts} +19 -14
  125. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.d.ts.map +1 -0
  126. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
  127. package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
  128. package/dist/types/react/web/ui/components/token/TokenRow.d.ts +14 -0
  129. package/dist/types/react/web/ui/components/token/TokenRow.d.ts.map +1 -0
  130. package/dist/types/utils/abi/normalizeFunctionParams.d.ts.map +1 -1
  131. package/dist/types/utils/ens/namehash.d.ts.map +1 -1
  132. package/dist/types/version.d.ts +1 -1
  133. package/dist/types/version.d.ts.map +1 -1
  134. package/package.json +1 -1
  135. package/src/contract/deployment/deploy-via-autofactory.test.ts +166 -0
  136. package/src/contract/deployment/deploy-via-autofactory.ts +50 -10
  137. package/src/exports/contract.ts +1 -0
  138. package/src/exports/modules.ts +1 -0
  139. package/src/extensions/modules/common/installPublishedModule.ts +5 -0
  140. package/src/extensions/prebuilts/deploy-published.ts +18 -2
  141. package/src/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.ts +55 -0
  142. package/src/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.ts +184 -0
  143. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +132 -86
  144. package/src/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.tsx +6 -1
  145. package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +1 -1
  146. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.tsx +67 -66
  147. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.tsx +7 -0
  148. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +3 -1
  149. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.tsx +9 -75
  150. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx +3 -1
  151. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +13 -41
  152. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.tsx +59 -53
  153. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.tsx +437 -0
  154. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +1 -1
  155. package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +1 -1
  156. package/src/react/web/ui/components/buttons.tsx +12 -0
  157. package/src/react/web/ui/components/token/TokenRow.tsx +111 -0
  158. package/src/utils/abi/normalizeFunctionParams.test.ts +26 -1
  159. package/src/utils/abi/normalizeFunctionParams.ts +9 -4
  160. package/src/utils/ens/namehash.ts +4 -1
  161. package/src/version.ts +1 -1
  162. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +0 -85
  163. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +0 -1
  164. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js +0 -142
  165. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js.map +0 -1
  166. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +0 -81
  167. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +0 -1
  168. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js +0 -139
  169. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js.map +0 -1
  170. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts +0 -22
  171. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts.map +0 -1
  172. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.d.ts.map +0 -1
  173. package/src/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.tsx +0 -220
  174. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.tsx +0 -263
@@ -69,7 +69,7 @@ export const SignatureScreen: React.FC<{
69
69
  }
70
70
  }, [onDone, siweAuth]);
71
71
 
72
- if (!wallet) {
72
+ if (!wallet || siweAuth.isLoading) {
73
73
  return <LoadingScreen data-testid="loading-screen" />;
74
74
  }
75
75
 
@@ -93,6 +93,7 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
93
93
  border: `1px solid ${theme.colors.borderColor}`,
94
94
  "&:hover": {
95
95
  borderColor: theme.colors.accentText,
96
+ transform: "scale(1.01)",
96
97
  },
97
98
  '&[aria-selected="true"]': {
98
99
  borderColor: theme.colors.accentText,
@@ -105,6 +106,15 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
105
106
  border: "1px solid transparent",
106
107
  "&:hover": {
107
108
  borderColor: theme.colors.accentText,
109
+ transform: "scale(1.01)",
110
+ },
111
+ };
112
+ }
113
+
114
+ if (props.variant === "accent") {
115
+ return {
116
+ "&:hover": {
117
+ transform: "scale(1.01)",
108
118
  },
109
119
  };
110
120
  }
@@ -113,6 +123,7 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
113
123
  return {
114
124
  "&:hover": {
115
125
  background: theme.colors.secondaryButtonHoverBg,
126
+ transform: "scale(1.01)",
116
127
  },
117
128
  };
118
129
  }
@@ -122,6 +133,7 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
122
133
  padding: 0,
123
134
  "&:hover": {
124
135
  color: theme.colors.primaryText,
136
+ transform: "scale(1.01)",
125
137
  },
126
138
  };
127
139
  }
@@ -0,0 +1,111 @@
1
+ import styled from "@emotion/styled";
2
+ import { ChevronDownIcon } from "@radix-ui/react-icons";
3
+ import type { Chain } from "../../../../../chains/types.js";
4
+ import type { ThirdwebClient } from "../../../../../client/client.js";
5
+ import { formatNumber } from "../../../../../utils/formatNumber.js";
6
+ import { useCustomTheme } from "../../../../core/design-system/CustomThemeProvider.js";
7
+ import {
8
+ fontSize,
9
+ iconSize,
10
+ spacing,
11
+ } from "../../../../core/design-system/index.js";
12
+ import { useChainName } from "../../../../core/hooks/others/useChainQuery.js";
13
+ import type { ERC20OrNativeToken } from "../../ConnectWallet/screens/nativeToken.js";
14
+ import { Skeleton } from "../Skeleton.js";
15
+ import { TokenIcon } from "../TokenIcon.js";
16
+ import { Container } from "../basic.js";
17
+ import { Button } from "../buttons.js";
18
+ import { Text } from "../text.js";
19
+ import { TokenSymbol } from "./TokenSymbol.js";
20
+
21
+ export function TokenRow(props: {
22
+ token: ERC20OrNativeToken;
23
+ chain: Chain;
24
+ client: ThirdwebClient;
25
+ onSelectToken: () => void;
26
+ freezeChainAndToken?: boolean;
27
+ value?: string;
28
+ isLoading?: boolean;
29
+ style?: React.CSSProperties;
30
+ }) {
31
+ const { name } = useChainName(props.chain);
32
+ return (
33
+ <TokenButton
34
+ variant="secondary"
35
+ fullWidth
36
+ style={{
37
+ fontSize: fontSize.sm,
38
+ ...props.style,
39
+ }}
40
+ gap="xxs"
41
+ onClick={props.onSelectToken}
42
+ disabled={props.freezeChainAndToken}
43
+ >
44
+ <Container flex="row" center="y" gap="sm">
45
+ <TokenIcon
46
+ token={props.token}
47
+ chain={props.chain}
48
+ size="md"
49
+ client={props.client}
50
+ />
51
+
52
+ <Container
53
+ flex="column"
54
+ style={{
55
+ gap: "4px",
56
+ }}
57
+ >
58
+ {/* Token Symbol */}
59
+ <Container flex="column" gap="3xs">
60
+ {props.isLoading ? (
61
+ <Skeleton
62
+ width="120px"
63
+ height={fontSize.md}
64
+ color="borderColor"
65
+ />
66
+ ) : props.value ? (
67
+ <Container flex="row" gap="xxs" center="y" color="primaryText">
68
+ <Text
69
+ size="md"
70
+ color={props.value ? "primaryText" : "secondaryText"}
71
+ >
72
+ {formatNumber(Number(props.value), 6) || ""}
73
+ </Text>
74
+ <TokenSymbol
75
+ token={props.token}
76
+ chain={props.chain}
77
+ size="sm"
78
+ />
79
+ </Container>
80
+ ) : (
81
+ <TokenSymbol token={props.token} chain={props.chain} size="sm" />
82
+ )}
83
+ </Container>
84
+
85
+ {/* Network Name */}
86
+ {name ? (
87
+ <Text size="xs" color="secondaryText">
88
+ {name}
89
+ </Text>
90
+ ) : (
91
+ <Skeleton width="90px" height={fontSize.xs} />
92
+ )}
93
+ </Container>
94
+ </Container>
95
+ <Container color="primaryText">
96
+ <ChevronDownIcon width={iconSize.sm} height={iconSize.sm} />
97
+ </Container>
98
+ </TokenButton>
99
+ );
100
+ }
101
+
102
+ const TokenButton = /* @__PURE__ */ styled(Button)(() => {
103
+ const theme = useCustomTheme();
104
+ return {
105
+ background: theme.colors.tertiaryBg,
106
+ border: `1px solid ${theme.colors.borderColor}`,
107
+ justifyContent: "space-between",
108
+ transition: "background 0.3s",
109
+ padding: spacing.sm,
110
+ };
111
+ });
@@ -56,7 +56,7 @@ describe("normalizeFunctionParams", () => {
56
56
  });
57
57
 
58
58
  it("should throw an error if a parameter name is missing", () => {
59
- const abiFunction: AbiFunction = {
59
+ let abiFunction: AbiFunction = {
60
60
  inputs: [{ name: undefined, type: "uint256" }],
61
61
  type: "function",
62
62
  stateMutability: "pure",
@@ -67,6 +67,31 @@ describe("normalizeFunctionParams", () => {
67
67
  expect(() => normalizeFunctionParams(abiFunction, {})).toThrow(
68
68
  "Missing named parameter for test at index 0",
69
69
  );
70
+
71
+ abiFunction = {
72
+ inputs: [{ name: "", type: "uint256" }],
73
+ type: "function",
74
+ stateMutability: "pure",
75
+ name: "test",
76
+ outputs: [],
77
+ };
78
+
79
+ expect(() => normalizeFunctionParams(abiFunction, {})).toThrow(
80
+ "Missing named parameter for test at index 0",
81
+ );
82
+
83
+ abiFunction = {
84
+ inputs: [{ name: undefined, type: "uint256" }],
85
+ type: "function",
86
+ stateMutability: "pure",
87
+ name: "test",
88
+ outputs: [],
89
+ };
90
+
91
+ const normalized = normalizeFunctionParams(abiFunction, { "*": 123 });
92
+
93
+ expect(normalized.length).to.eq(1);
94
+ expect(normalized[0]).to.eq(123);
70
95
  });
71
96
 
72
97
  it("should throw an error if a parameter value is missing", () => {
@@ -13,10 +13,15 @@ export function normalizeFunctionParams(
13
13
  abiFunction.inputs.map((i) => i.type),
14
14
  abiFunction.inputs.map((input, index) => {
15
15
  const value = input.name;
16
- if (value === undefined) {
17
- throw new Error(
18
- `Missing named parameter for ${"name" in abiFunction ? abiFunction.name : "constructor"} at index ${index}`,
19
- );
16
+ if (value === undefined || value.length === 0) {
17
+ // TODO: Handle multiple unnamed params
18
+ if (!params["*"]) {
19
+ throw new Error(
20
+ `Missing named parameter for ${"name" in abiFunction ? abiFunction.name : "constructor"} at index ${index}`,
21
+ );
22
+ }
23
+
24
+ return params["*"];
20
25
  }
21
26
  const valueWithoutUnderscore = value.replace(/^_+/, "");
22
27
  const normalizedValue =
@@ -20,7 +20,10 @@ export function namehash(name: string) {
20
20
  const hashed = hashFromEncodedLabel
21
21
  ? toBytes(hashFromEncodedLabel)
22
22
  : keccak256(stringToBytes(item), "bytes");
23
- result = keccak256(concat([result, hashed]), "bytes");
23
+ result = keccak256(
24
+ concat([result, hashed]),
25
+ "bytes",
26
+ ) as Uint8Array<ArrayBuffer>;
24
27
  }
25
28
 
26
29
  return bytesToHex(result);
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.88.4";
1
+ export const version = "5.88.5-nightly-52cbcd2d57abf4d69ee417fe98fca815e19f2f34-20250216000400";
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WalletRowWithBalances = WalletRowWithBalances;
4
- exports.WalletRow = WalletRow;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- const styled_1 = require("@emotion/styled");
7
- const react_icons_1 = require("@radix-ui/react-icons");
8
- const react_1 = require("react");
9
- const address_js_1 = require("../../../../../../utils/address.js");
10
- const CustomThemeProvider_js_1 = require("../../../../../core/design-system/CustomThemeProvider.js");
11
- const index_js_1 = require("../../../../../core/design-system/index.js");
12
- const useChainQuery_js_1 = require("../../../../../core/hooks/others/useChainQuery.js");
13
- const wallet_js_1 = require("../../../../../core/utils/wallet.js");
14
- const Img_js_1 = require("../../../components/Img.js");
15
- const TokenIcon_js_1 = require("../../../components/TokenIcon.js");
16
- const WalletImage_js_1 = require("../../../components/WalletImage.js");
17
- const basic_js_1 = require("../../../components/basic.js");
18
- const buttons_js_1 = require("../../../components/buttons.js");
19
- const text_js_1 = require("../../../components/text.js");
20
- const Blobbie_js_1 = require("../../Blobbie.js");
21
- const formatTokenBalance_js_1 = require("../formatTokenBalance.js");
22
- const FiatValue_js_1 = require("./swap/FiatValue.js");
23
- function WalletRowWithBalances(props) {
24
- const theme = (0, CustomThemeProvider_js_1.useCustomTheme)();
25
- const [showAll, setShowAll] = (0, react_1.useState)(false);
26
- const maxDisplayedBalances = 3;
27
- const displayedBalances = showAll
28
- ? props.balances
29
- : props.balances.slice(0, maxDisplayedBalances);
30
- return ((0, jsx_runtime_1.jsxs)(basic_js_1.Container, { bg: "tertiaryBg", style: {
31
- borderRadius: index_js_1.radius.lg,
32
- border: `1px solid ${theme.colors.borderColor}`,
33
- }, children: [(0, jsx_runtime_1.jsx)(basic_js_1.Container, { style: { padding: index_js_1.spacing.sm }, children: (0, jsx_runtime_1.jsx)(WalletRow, { ...props }) }), (0, jsx_runtime_1.jsx)("div", { style: { borderTop: `1px solid ${theme.colors.borderColor}` } }), (0, jsx_runtime_1.jsx)(basic_js_1.Container, { flex: "column", children: props.balances.length > 0 ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [displayedBalances.map((b) => ((0, jsx_runtime_1.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 && ((0, jsx_runtime_1.jsx)(StyledButton, { variant: "secondary", onClick: () => setShowAll(!showAll), style: {
34
- justifyContent: "start",
35
- }, children: (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "xs", children: showAll ? "Show less" : "Show more" }) }))] })) : ((0, jsx_runtime_1.jsx)(basic_js_1.Container, { style: { padding: index_js_1.spacing.sm }, children: (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "sm", color: "secondaryText", children: "Not enough funds" }) })) })] }));
36
- }
37
- function TokenBalanceRow(props) {
38
- const { tokenBalance, wallet, onClick, client } = props;
39
- const chainInfo = (0, useChainQuery_js_1.useChainName)(tokenBalance.chain);
40
- return ((0, jsx_runtime_1.jsxs)(StyledButton, { onClick: () => onClick(tokenBalance.token, wallet), variant: "secondary", children: [(0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", center: "y", gap: "md", children: [(0, jsx_runtime_1.jsx)(TokenIcon_js_1.TokenIcon, { token: tokenBalance.token, chain: tokenBalance.chain, size: "md", client: client }), (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "column", gap: "3xs", children: [(0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "xs", color: "primaryText", children: tokenBalance.token.symbol }), chainInfo && (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "xs", children: chainInfo.name })] })] }), (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", center: "y", gap: "3xs", color: "secondaryText", children: [(0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "column", color: "secondaryText", gap: "3xs", style: {
41
- justifyContent: "flex-end",
42
- alignItems: "flex-end",
43
- }, children: [(0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "xs", color: "primaryText", children: (0, formatTokenBalance_js_1.formatTokenBalance)(tokenBalance.balance, true, 2) }), (0, jsx_runtime_1.jsx)(FiatValue_js_1.FiatValue, { tokenAmount: tokenBalance.balance.displayValue, token: tokenBalance.token, chain: tokenBalance.chain, client: client, size: "xs" })] }), (0, jsx_runtime_1.jsx)(react_icons_1.ChevronRightIcon, { width: index_js_1.iconSize.md, height: index_js_1.iconSize.md })] })] }));
44
- }
45
- function WalletRow(props) {
46
- const { client, address } = props;
47
- const walletId = props.walletId;
48
- const theme = (0, CustomThemeProvider_js_1.useCustomTheme)();
49
- const ensNameQuery = (0, wallet_js_1.useEnsName)({
50
- client,
51
- address,
52
- });
53
- const addressOrENS = ensNameQuery.data || (0, address_js_1.shortenAddress)(address);
54
- const ensAvatarQuery = (0, wallet_js_1.useEnsAvatar)({
55
- client,
56
- ensName: ensNameQuery.data,
57
- });
58
- return ((0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", center: "y", gap: "sm", color: "secondaryText", children: [ensAvatarQuery.data ? ((0, jsx_runtime_1.jsx)(Img_js_1.Img, { src: ensAvatarQuery.data, width: props.iconSize ? index_js_1.iconSize[props.iconSize] : index_js_1.iconSize.md, height: props.iconSize ? index_js_1.iconSize[props.iconSize] : index_js_1.iconSize.md, style: {
59
- borderRadius: index_js_1.radius.sm,
60
- overflow: "hidden",
61
- border: `1px solid ${theme.colors.borderColor}`,
62
- }, client: props.client })) : walletId ? ((0, jsx_runtime_1.jsx)(WalletImage_js_1.WalletImage, { id: walletId, size: props.iconSize || index_js_1.iconSize.md, client: props.client })) : ((0, jsx_runtime_1.jsx)(basic_js_1.Container, { style: {
63
- width: index_js_1.iconSize.md,
64
- height: index_js_1.iconSize.md,
65
- borderRadius: index_js_1.radius.sm,
66
- overflow: "hidden",
67
- border: `1px solid ${theme.colors.borderColor}`,
68
- }, children: (0, jsx_runtime_1.jsx)(Blobbie_js_1.Blobbie, { address: props.address, size: Number(index_js_1.iconSize.md) }) })), (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: props.textSize || "sm", color: "primaryText", children: addressOrENS || (0, address_js_1.shortenAddress)(props.address) })] }));
69
- }
70
- const StyledButton = /* @__PURE__ */ (0, styled_1.default)(buttons_js_1.Button)((_) => {
71
- const theme = (0, CustomThemeProvider_js_1.useCustomTheme)();
72
- return {
73
- background: theme.colors.tertiaryBg,
74
- justifyContent: "space-between",
75
- flexDirection: "row",
76
- padding: index_js_1.spacing.sm,
77
- gap: index_js_1.spacing.sm,
78
- "&:hover": {
79
- background: theme.colors.secondaryButtonBg,
80
- transform: "scale(1.01)",
81
- },
82
- transition: "background 200ms ease, transform 150ms ease",
83
- };
84
- });
85
- //# 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,142 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PaymentSelectionScreen = PaymentSelectionScreen;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_icons_1 = require("@radix-ui/react-icons");
6
- const react_query_1 = require("@tanstack/react-query");
7
- const utils_js_1 = require("../../../../../../../chains/utils.js");
8
- const addresses_js_1 = require("../../../../../../../constants/addresses.js");
9
- const getWalletBalance_js_1 = require("../../../../../../../wallets/utils/getWalletBalance.js");
10
- const CustomThemeProvider_js_1 = require("../../../../../../core/design-system/CustomThemeProvider.js");
11
- const index_js_1 = require("../../../../../../core/design-system/index.js");
12
- const useChainQuery_js_1 = require("../../../../../../core/hooks/others/useChainQuery.js");
13
- const useActiveAccount_js_1 = require("../../../../../../core/hooks/wallets/useActiveAccount.js");
14
- const useConnectedWallets_js_1 = require("../../../../../../core/hooks/wallets/useConnectedWallets.js");
15
- const LoadingScreen_js_1 = require("../../../../../wallets/shared/LoadingScreen.js");
16
- const Spacer_js_1 = require("../../../../components/Spacer.js");
17
- const basic_js_1 = require("../../../../components/basic.js");
18
- const buttons_js_1 = require("../../../../components/buttons.js");
19
- const text_js_1 = require("../../../../components/text.js");
20
- const OutlineWalletIcon_js_1 = require("../../../icons/OutlineWalletIcon.js");
21
- const nativeToken_js_1 = require("../../nativeToken.js");
22
- const WalletSelectorButton_js_1 = require("../WalletSelectorButton.js");
23
- function PaymentSelectionScreen(props) {
24
- const theme = (0, CustomThemeProvider_js_1.useCustomTheme)();
25
- const connectedWallets = (0, useConnectedWallets_js_1.useConnectedWallets)();
26
- // if all wallets are connected and showAll wallets is disabled, hide the connect button
27
- const hideConnectButton = !props.showAllWallets &&
28
- props.wallets?.every((w) => connectedWallets.includes(w));
29
- const chainInfo = (0, useChainQuery_js_1.useChainMetadata)(props.toChain);
30
- const activeAccount = (0, useActiveAccount_js_1.useActiveAccount)();
31
- const walletsAndBalances = (0, react_query_1.useQuery)({
32
- queryKey: [
33
- "wallets-and-balances",
34
- connectedWallets.map((w) => w.getAccount()?.address),
35
- props.sourceSupportedTokens,
36
- props.toChain.id,
37
- props.toToken,
38
- props.tokenAmount,
39
- props.mode,
40
- activeAccount?.address,
41
- ],
42
- queryFn: async () => {
43
- // in parallel, get the balances of all the wallets on each of the sourceSupportedTokens
44
- const walletBalanceMap = new Map();
45
- const balancePromises = connectedWallets.flatMap((wallet) => {
46
- const account = wallet.getAccount();
47
- if (!account)
48
- return [];
49
- walletBalanceMap.set(wallet, []);
50
- // inject the destination token too since it can be used as well to pay/transfer
51
- const toToken = (0, nativeToken_js_1.isNativeToken)(props.toToken)
52
- ? {
53
- address: addresses_js_1.NATIVE_TOKEN_ADDRESS,
54
- name: chainInfo.data?.nativeCurrency.name || "",
55
- symbol: chainInfo.data?.nativeCurrency.symbol || "",
56
- icon: chainInfo.data?.icon?.url,
57
- }
58
- : props.toToken;
59
- const tokens = {
60
- ...props.sourceSupportedTokens,
61
- [props.toChain.id]: [
62
- toToken,
63
- ...(props.sourceSupportedTokens?.[props.toChain.id] || []),
64
- ],
65
- };
66
- return Object.entries(tokens).flatMap(([chainId, tokens]) => {
67
- return tokens.map(async (token) => {
68
- try {
69
- const chain = (0, utils_js_1.getCachedChain)(Number(chainId));
70
- const balance = await (0, getWalletBalance_js_1.getWalletBalance)({
71
- address: account.address,
72
- chain,
73
- tokenAddress: (0, nativeToken_js_1.isNativeToken)(token) ? undefined : token.address,
74
- client: props.client,
75
- });
76
- // show the token if:
77
- // - its not the destination token and balance is greater than 0
78
- // - 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
79
- const shouldInclude = token.address === toToken.address &&
80
- chain.id === props.toChain.id
81
- ? props.mode === "fund_wallet" &&
82
- account.address === activeAccount?.address
83
- ? false
84
- : Number(balance.displayValue) > Number(props.tokenAmount)
85
- : balance.value > 0n;
86
- if (shouldInclude) {
87
- const existingBalances = walletBalanceMap.get(wallet) || [];
88
- existingBalances.push({ balance, chain, token });
89
- existingBalances.sort((a, b) => {
90
- if (a.chain.id === props.toChain.id &&
91
- a.token.address === toToken.address)
92
- return -1;
93
- if (b.chain.id === props.toChain.id &&
94
- b.token.address === toToken.address)
95
- return 1;
96
- if (a.chain.id === props.toChain.id)
97
- return -1;
98
- if (b.chain.id === props.toChain.id)
99
- return 1;
100
- return a.chain.id > b.chain.id ? 1 : -1;
101
- });
102
- }
103
- }
104
- catch (error) {
105
- console.error(`Failed to fetch balance for wallet ${wallet.id} on chain ${chainId} for token ${token.symbol}:`, error);
106
- }
107
- });
108
- });
109
- });
110
- await Promise.all(balancePromises);
111
- return walletBalanceMap;
112
- },
113
- enabled: !!props.sourceSupportedTokens && !!chainInfo.data,
114
- });
115
- if (walletsAndBalances.isLoading || !walletsAndBalances.data) {
116
- return (0, jsx_runtime_1.jsx)(LoadingScreen_js_1.LoadingScreen, {});
117
- }
118
- const filteredWallets = Array.from(walletsAndBalances.data?.entries() || [])
119
- .filter(([w]) => !props.hiddenWallets?.includes(w.id))
120
- .filter(([, balances]) => {
121
- const hasEnoughBalance = balances.some((b) => b.balance.value > 0);
122
- return hasEnoughBalance;
123
- });
124
- return ((0, jsx_runtime_1.jsxs)(basic_js_1.Container, { children: [(0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "column", gap: "xs", children: [filteredWallets.length === 0 && ((0, jsx_runtime_1.jsx)(basic_js_1.Container, { flex: "column", gap: "xs", py: "md", children: (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "xs", color: "secondaryText", center: true, children: (0, jsx_runtime_1.jsx)("i", { children: "Insufficient funds in connected wallets" }) }) })), filteredWallets.map(([w, balances]) => {
125
- const address = w.getAccount()?.address;
126
- if (!address)
127
- return null;
128
- return ((0, jsx_runtime_1.jsx)(WalletSelectorButton_js_1.WalletRowWithBalances, { wallet: w, balances: balances, client: props.client, address: address, onClick: props.onSelect }, w.id));
129
- }), !hideConnectButton && ((0, jsx_runtime_1.jsx)(buttons_js_1.Button, { variant: "secondary", fullWidth: true, onClick: props.onConnect, gap: "xs", bg: "tertiaryBg", style: {
130
- borderRadius: index_js_1.radius.lg,
131
- border: `1px solid ${theme.colors.borderColor}`,
132
- padding: index_js_1.spacing.sm,
133
- }, children: (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", gap: "sm", center: "y", expand: true, color: "secondaryIconColor", children: [(0, jsx_runtime_1.jsx)(OutlineWalletIcon_js_1.OutlineWalletIcon, { size: index_js_1.iconSize.md }), (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "sm", color: "primaryText", children: "Pay with another wallet" })] }) })), props.payWithFiatEnabled && ((0, jsx_runtime_1.jsx)(buttons_js_1.Button, { variant: "secondary", fullWidth: true, gap: "xs", bg: "tertiaryBg", onClick: props.onSelectFiat, style: {
134
- borderRadius: index_js_1.radius.lg,
135
- border: `1px solid ${theme.colors.borderColor}`,
136
- padding: index_js_1.spacing.sm,
137
- }, children: (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", gap: "sm", center: "y", expand: true, color: "secondaryIconColor", children: [(0, jsx_runtime_1.jsx)(react_icons_1.IdCardIcon, { style: {
138
- width: index_js_1.iconSize.md,
139
- height: index_js_1.iconSize.md,
140
- } }), (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "sm", color: "primaryText", children: "Pay with credit card" })] }) }))] }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "sm" })] }));
141
- }
142
- //# 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,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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"}