thirdweb 5.88.4 → 5.88.5-nightly-0574eac02c832c382972fd545df79c36e11796e1-20250217000342
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.
- package/dist/cjs/adapters/eip1193/to-eip1193.js +16 -0
- package/dist/cjs/adapters/eip1193/to-eip1193.js.map +1 -1
- package/dist/cjs/contract/deployment/deploy-via-autofactory.js +33 -9
- package/dist/cjs/contract/deployment/deploy-via-autofactory.js.map +1 -1
- package/dist/cjs/exports/contract.js +3 -1
- package/dist/cjs/exports/contract.js.map +1 -1
- package/dist/cjs/exports/modules.js +3 -1
- package/dist/cjs/exports/modules.js.map +1 -1
- package/dist/cjs/extensions/modules/common/installPublishedModule.js +4 -1
- package/dist/cjs/extensions/modules/common/installPublishedModule.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-published.js +14 -2
- package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/cjs/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js +33 -0
- package/dist/cjs/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js.map +1 -0
- package/dist/cjs/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js +152 -0
- package/dist/cjs/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +66 -56
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +3 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +13 -13
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +6 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +3 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js +2 -26
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +6 -12
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js +198 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +3 -3
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/components/buttons.js +11 -0
- package/dist/cjs/react/web/ui/components/buttons.js.map +1 -1
- package/dist/cjs/react/web/ui/components/token/TokenRow.js +36 -0
- package/dist/cjs/react/web/ui/components/token/TokenRow.js.map +1 -0
- package/dist/cjs/utils/abi/normalizeFunctionParams.js +6 -2
- package/dist/cjs/utils/abi/normalizeFunctionParams.js.map +1 -1
- package/dist/cjs/utils/ens/namehash.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/adapters/eip1193/to-eip1193.js +16 -0
- package/dist/esm/adapters/eip1193/to-eip1193.js.map +1 -1
- package/dist/esm/contract/deployment/deploy-via-autofactory.js +33 -9
- package/dist/esm/contract/deployment/deploy-via-autofactory.js.map +1 -1
- package/dist/esm/exports/contract.js +1 -0
- package/dist/esm/exports/contract.js.map +1 -1
- package/dist/esm/exports/modules.js +1 -0
- package/dist/esm/exports/modules.js.map +1 -1
- package/dist/esm/extensions/modules/common/installPublishedModule.js +4 -1
- package/dist/esm/extensions/modules/common/installPublishedModule.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-published.js +14 -2
- package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js +30 -0
- package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.js.map +1 -0
- package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js +145 -0
- package/dist/esm/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +68 -58
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +3 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +13 -13
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +6 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +3 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js +3 -27
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +6 -12
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js +194 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
- package/dist/esm/react/web/ui/components/buttons.js +11 -0
- package/dist/esm/react/web/ui/components/buttons.js.map +1 -1
- package/dist/esm/react/web/ui/components/token/TokenRow.js +33 -0
- package/dist/esm/react/web/ui/components/token/TokenRow.js.map +1 -0
- package/dist/esm/utils/abi/normalizeFunctionParams.js +6 -2
- package/dist/esm/utils/abi/normalizeFunctionParams.js.map +1 -1
- package/dist/esm/utils/ens/namehash.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/adapters/eip1193/to-eip1193.d.ts.map +1 -1
- package/dist/types/contract/deployment/deploy-via-autofactory.d.ts +8 -2
- package/dist/types/contract/deployment/deploy-via-autofactory.d.ts.map +1 -1
- package/dist/types/exports/contract.d.ts +1 -0
- package/dist/types/exports/contract.d.ts.map +1 -1
- package/dist/types/exports/modules.d.ts +1 -0
- package/dist/types/exports/modules.d.ts.map +1 -1
- package/dist/types/extensions/modules/common/installPublishedModule.d.ts +1 -0
- package/dist/types/extensions/modules/common/installPublishedModule.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-published.d.ts +2 -0
- package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
- package/dist/types/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.d.ts +70 -0
- package/dist/types/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.d.ts.map +1 -0
- package/dist/types/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.d.ts +100 -0
- package/dist/types/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/{PaymentSelectionScreen.d.ts → TokenSelectorScreen.d.ts} +19 -14
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/token/TokenRow.d.ts +14 -0
- package/dist/types/react/web/ui/components/token/TokenRow.d.ts.map +1 -0
- package/dist/types/utils/abi/normalizeFunctionParams.d.ts.map +1 -1
- package/dist/types/utils/ens/namehash.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/eip1193/to-eip1193.ts +18 -0
- package/src/contract/deployment/deploy-via-autofactory.test.ts +166 -0
- package/src/contract/deployment/deploy-via-autofactory.ts +50 -10
- package/src/exports/contract.ts +1 -0
- package/src/exports/modules.ts +1 -0
- package/src/extensions/modules/common/installPublishedModule.ts +5 -0
- package/src/extensions/prebuilts/deploy-published.ts +18 -2
- package/src/extensions/thirdweb/__generated__/IContractFactory/events/ProxyDeployedV2.ts +55 -0
- package/src/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementationV2.ts +184 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +132 -86
- package/src/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.tsx +6 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.tsx +67 -66
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.tsx +7 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +3 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.tsx +9 -75
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx +3 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +13 -41
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.tsx +59 -53
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.tsx +437 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +1 -1
- package/src/react/web/ui/components/buttons.tsx +12 -0
- package/src/react/web/ui/components/token/TokenRow.tsx +111 -0
- package/src/utils/abi/normalizeFunctionParams.test.ts +26 -1
- package/src/utils/abi/normalizeFunctionParams.ts +9 -4
- package/src/utils/ens/namehash.ts +4 -1
- package/src/version.ts +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +0 -85
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +0 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js +0 -142
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +0 -81
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js +0 -139
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.js.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts +0 -22
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.d.ts.map +0 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.tsx +0 -220
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PaymentSelectionScreen.tsx +0 -263
@@ -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
|
-
|
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
|
-
|
18
|
-
|
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(
|
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.
|
1
|
+
export const version = "5.88.5-nightly-0574eac02c832c382972fd545df79c36e11796e1-20250217000342";
|
@@ -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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"}
|