thirdweb 5.88.5-nightly-0574eac02c832c382972fd545df79c36e11796e1-20250217000342 → 5.88.6-nightly-b182302f590e75c9881cebd0ca1cc8b1425d50b8-20250218000338

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 (141) hide show
  1. package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js +5 -1
  2. package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -1
  3. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +53 -71
  4. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  5. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +2 -2
  6. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
  7. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +1 -1
  8. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
  9. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +1 -1
  10. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
  11. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +4 -14
  12. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  13. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +2 -32
  14. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  15. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +9 -3
  16. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  17. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +15 -8
  18. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
  19. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.js +39 -0
  20. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.js.map +1 -0
  21. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js +58 -53
  22. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js.map +1 -1
  23. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +3 -10
  24. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +35 -0
  26. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -0
  27. package/dist/cjs/react/web/ui/ConnectWallet/screens/TokenSelector.js +1 -2
  28. package/dist/cjs/react/web/ui/ConnectWallet/screens/TokenSelector.js.map +1 -1
  29. package/dist/cjs/react/web/ui/ConnectWallet/screens/nativeToken.js +4 -2
  30. package/dist/cjs/react/web/ui/ConnectWallet/screens/nativeToken.js.map +1 -1
  31. package/dist/cjs/react/web/ui/components/token/TokenRow.js +11 -4
  32. package/dist/cjs/react/web/ui/components/token/TokenRow.js.map +1 -1
  33. package/dist/cjs/utils/any-evm/compute-deployment-address.js +4 -1
  34. package/dist/cjs/utils/any-evm/compute-deployment-address.js.map +1 -1
  35. package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js +1 -0
  36. package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
  37. package/dist/cjs/utils/any-evm/get-init-bytecode-with-salt.js +3 -1
  38. package/dist/cjs/utils/any-evm/get-init-bytecode-with-salt.js.map +1 -1
  39. package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js +6 -1
  40. package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -1
  41. package/dist/cjs/version.js +1 -1
  42. package/dist/cjs/wallets/connection/autoConnect.js +3 -4
  43. package/dist/cjs/wallets/connection/autoConnect.js.map +1 -1
  44. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js +6 -2
  45. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -1
  46. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +55 -73
  47. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  48. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +1 -1
  49. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
  50. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +1 -1
  51. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
  52. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +1 -1
  53. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
  54. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +4 -14
  55. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  56. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +4 -34
  57. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  58. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +9 -3
  59. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  60. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +15 -8
  61. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
  62. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.js +36 -0
  63. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.js.map +1 -0
  64. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js +59 -53
  65. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.js.map +1 -1
  66. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +4 -11
  67. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  68. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +32 -0
  69. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -0
  70. package/dist/esm/react/web/ui/ConnectWallet/screens/TokenSelector.js +1 -2
  71. package/dist/esm/react/web/ui/ConnectWallet/screens/TokenSelector.js.map +1 -1
  72. package/dist/esm/react/web/ui/ConnectWallet/screens/nativeToken.js +4 -2
  73. package/dist/esm/react/web/ui/ConnectWallet/screens/nativeToken.js.map +1 -1
  74. package/dist/esm/react/web/ui/components/token/TokenRow.js +11 -4
  75. package/dist/esm/react/web/ui/components/token/TokenRow.js.map +1 -1
  76. package/dist/esm/utils/any-evm/compute-deployment-address.js +4 -1
  77. package/dist/esm/utils/any-evm/compute-deployment-address.js.map +1 -1
  78. package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js +1 -0
  79. package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
  80. package/dist/esm/utils/any-evm/get-init-bytecode-with-salt.js +4 -2
  81. package/dist/esm/utils/any-evm/get-init-bytecode-with-salt.js.map +1 -1
  82. package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js +6 -1
  83. package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -1
  84. package/dist/esm/version.js +1 -1
  85. package/dist/esm/wallets/connection/autoConnect.js +2 -2
  86. package/dist/esm/wallets/connection/autoConnect.js.map +1 -1
  87. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts.map +1 -1
  88. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  89. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.d.ts.map +1 -1
  90. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +2 -2
  91. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  92. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  93. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts +2 -2
  94. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts.map +1 -1
  95. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts +2 -2
  96. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts.map +1 -1
  97. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.d.ts +15 -0
  98. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.d.ts.map +1 -0
  99. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.d.ts +2 -16
  100. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.d.ts.map +1 -1
  101. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
  102. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts +9 -0
  103. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts.map +1 -0
  104. package/dist/types/react/web/ui/ConnectWallet/screens/TokenSelector.d.ts.map +1 -1
  105. package/dist/types/react/web/ui/ConnectWallet/screens/nativeToken.d.ts +1 -1
  106. package/dist/types/react/web/ui/ConnectWallet/screens/nativeToken.d.ts.map +1 -1
  107. package/dist/types/react/web/ui/components/token/TokenRow.d.ts +2 -2
  108. package/dist/types/react/web/ui/components/token/TokenRow.d.ts.map +1 -1
  109. package/dist/types/utils/any-evm/compute-deployment-address.d.ts.map +1 -1
  110. package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts +3 -0
  111. package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts.map +1 -1
  112. package/dist/types/utils/any-evm/get-init-bytecode-with-salt.d.ts.map +1 -1
  113. package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts +1 -1
  114. package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts.map +1 -1
  115. package/dist/types/version.d.ts +1 -1
  116. package/dist/types/wallets/connection/autoConnect.d.ts +2 -2
  117. package/dist/types/wallets/connection/autoConnect.d.ts.map +1 -1
  118. package/package.json +1 -1
  119. package/src/contract/deployment/deploy-deterministic.test.ts +45 -2
  120. package/src/contract/deployment/zksync/zkDeployDeterministic.ts +10 -2
  121. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +70 -157
  122. package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +1 -1
  123. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.tsx +1 -0
  124. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.tsx +1 -1
  125. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +4 -18
  126. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +20 -161
  127. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +25 -14
  128. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.tsx +58 -34
  129. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.tsx +134 -0
  130. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TokenSelectorScreen.tsx +134 -128
  131. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +18 -48
  132. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.tsx +70 -0
  133. package/src/react/web/ui/ConnectWallet/screens/TokenSelector.tsx +1 -3
  134. package/src/react/web/ui/ConnectWallet/screens/nativeToken.ts +5 -3
  135. package/src/react/web/ui/components/token/TokenRow.tsx +38 -14
  136. package/src/utils/any-evm/compute-deployment-address.ts +4 -1
  137. package/src/utils/any-evm/compute-published-contract-deploy-info.ts +1 -0
  138. package/src/utils/any-evm/get-init-bytecode-with-salt.ts +5 -2
  139. package/src/utils/any-evm/zksync/computeDeploymentAddress.ts +6 -2
  140. package/src/version.ts +1 -1
  141. package/src/wallets/connection/autoConnect.ts +3 -3
@@ -42,8 +42,8 @@ export function SwapScreenContent(props: {
42
42
  tokenAmount: string;
43
43
  toToken: ERC20OrNativeToken;
44
44
  toChain: Chain;
45
- fromChain: Chain;
46
- fromToken: ERC20OrNativeToken;
45
+ fromChain: Chain | undefined;
46
+ fromToken: ERC20OrNativeToken | undefined;
47
47
  showFromTokenSelector: () => void;
48
48
  payer: PayerInfo;
49
49
  client: ThirdwebClient;
@@ -81,42 +81,50 @@ export function SwapScreenContent(props: {
81
81
  "fees" | "receiver" | "payer"
82
82
  >("fees");
83
83
 
84
- const fromTokenBalanceQuery = useWalletBalance({
85
- address: payer.account.address,
86
- chain: fromChain,
87
- tokenAddress: isNativeToken(fromToken) ? undefined : fromToken.address,
88
- client,
89
- });
84
+ const fromTokenBalanceQuery = useWalletBalance(
85
+ {
86
+ address: payer.account.address,
87
+ chain: fromChain,
88
+ tokenAddress: isNativeToken(fromToken) ? undefined : fromToken?.address,
89
+ client,
90
+ },
91
+ {
92
+ enabled: !!fromChain && !!fromToken,
93
+ },
94
+ );
90
95
 
91
96
  const fromTokenId = isNativeToken(fromToken)
92
97
  ? NATIVE_TOKEN_ADDRESS
93
- : fromToken.address.toLowerCase();
98
+ : fromToken?.address?.toLowerCase();
94
99
  const toTokenId = isNativeToken(toToken)
95
100
  ? NATIVE_TOKEN_ADDRESS
96
101
  : toToken.address.toLowerCase();
97
102
  const swapRequired =
98
103
  !!tokenAmount &&
99
- !(fromChain.id === toChain.id && fromTokenId === toTokenId);
100
- const quoteParams: GetBuyWithCryptoQuoteParams | undefined = swapRequired
101
- ? {
102
- // wallets
103
- fromAddress: payer.account.address,
104
- toAddress: receiverAddress,
105
- // from
106
- fromChainId: fromChain.id,
107
- fromTokenAddress: isNativeToken(fromToken)
108
- ? NATIVE_TOKEN_ADDRESS
109
- : fromToken.address,
110
- // to
111
- toChainId: toChain.id,
112
- toTokenAddress: isNativeToken(toToken)
113
- ? NATIVE_TOKEN_ADDRESS
114
- : toToken.address,
115
- toAmount: tokenAmount,
116
- client,
117
- purchaseData: payOptions.purchaseData,
118
- }
119
- : undefined;
104
+ !!fromChain &&
105
+ !!fromTokenId &&
106
+ !(fromChain?.id === toChain.id && fromTokenId === toTokenId);
107
+ const quoteParams: GetBuyWithCryptoQuoteParams | undefined =
108
+ fromChain && fromToken && swapRequired
109
+ ? {
110
+ // wallets
111
+ fromAddress: payer.account.address,
112
+ toAddress: receiverAddress,
113
+ // from
114
+ fromChainId: fromChain.id,
115
+ fromTokenAddress: isNativeToken(fromToken)
116
+ ? NATIVE_TOKEN_ADDRESS
117
+ : fromToken.address,
118
+ // to
119
+ toChainId: toChain.id,
120
+ toTokenAddress: isNativeToken(toToken)
121
+ ? NATIVE_TOKEN_ADDRESS
122
+ : toToken.address,
123
+ toAmount: tokenAmount,
124
+ client,
125
+ purchaseData: payOptions.purchaseData,
126
+ }
127
+ : undefined;
120
128
 
121
129
  const quoteQuery = useBuyWithCryptoQuote(quoteParams, {
122
130
  // refetch every 30 seconds
@@ -159,11 +167,13 @@ export function SwapScreenContent(props: {
159
167
  Number(fromTokenBalanceQuery.data.displayValue) < Number(sourceTokenAmount);
160
168
 
161
169
  const disableContinue =
170
+ !fromChain ||
171
+ !fromToken ||
162
172
  (swapRequired && !quoteQuery.data) ||
163
173
  isNotEnoughBalance ||
164
174
  allowanceQuery.isLoading;
165
175
  const switchChainRequired =
166
- props.payer.wallet.getChain()?.id !== fromChain.id;
176
+ props.payer.wallet.getChain()?.id !== fromChain?.id;
167
177
 
168
178
  const errorMsg =
169
179
  !quoteQuery.isLoading && quoteQuery.error
@@ -240,6 +250,19 @@ export function SwapScreenContent(props: {
240
250
 
241
251
  {/* Quote info */}
242
252
  <Container flex="column" gap="sm">
253
+ <Container flex="row" gap="xxs" center="y">
254
+ <Text size="sm">Pay with</Text>
255
+ {fromToken && fromChain ? (
256
+ <TokenSymbol
257
+ token={fromToken}
258
+ chain={fromChain}
259
+ size="sm"
260
+ color="secondaryText"
261
+ />
262
+ ) : (
263
+ "crypto"
264
+ )}
265
+ </Container>
243
266
  <div>
244
267
  <PayWithCryptoQuoteInfo
245
268
  value={sourceTokenAmount || ""}
@@ -252,7 +275,7 @@ export function SwapScreenContent(props: {
252
275
  swapRequired={swapRequired}
253
276
  onSelectToken={props.showFromTokenSelector}
254
277
  />
255
- {swapRequired && (
278
+ {swapRequired && fromChain && fromToken && (
256
279
  <EstimatedTimeAndFees
257
280
  quoteIsLoading={quoteQuery.isLoading}
258
281
  estimatedSeconds={
@@ -288,7 +311,7 @@ export function SwapScreenContent(props: {
288
311
  {!errorMsg && isNotEnoughBalance && (
289
312
  <div>
290
313
  <Text color="danger" size="xs" center multiline>
291
- Not enough funds.
314
+ Insufficient funds
292
315
  </Text>
293
316
  </div>
294
317
  )}
@@ -317,9 +340,10 @@ export function SwapScreenContent(props: {
317
340
  fullWidth
318
341
  onClick={() => props.showFromTokenSelector()}
319
342
  >
320
- Select another token
343
+ Pay with another token
321
344
  </Button>
322
345
  ) : switchChainRequired &&
346
+ fromChain &&
323
347
  !quoteQuery.isLoading &&
324
348
  !allowanceQuery.isLoading &&
325
349
  !isNotEnoughBalance &&
@@ -0,0 +1,134 @@
1
+ import { ChevronDownIcon } from "@radix-ui/react-icons";
2
+ import type { Chain } from "../../../../../../../chains/types.js";
3
+ import type { ThirdwebClient } from "../../../../../../../client/client.js";
4
+ import { useCustomTheme } from "../../../../../../core/design-system/CustomThemeProvider.js";
5
+ import {
6
+ iconSize,
7
+ radius,
8
+ } from "../../../../../../core/design-system/index.js";
9
+ import { Container } from "../../../../components/basic.js";
10
+ import { TokenRow } from "../../../../components/token/TokenRow.js";
11
+ import type { ERC20OrNativeToken } from "../../nativeToken.js";
12
+ import { WalletRow } from "./WalletRow.js";
13
+
14
+ export function SwapSummary(props: {
15
+ sender: string;
16
+ receiver: string;
17
+ client: ThirdwebClient;
18
+ fromToken: ERC20OrNativeToken;
19
+ fromChain: Chain;
20
+ toToken: ERC20OrNativeToken;
21
+ toChain: Chain;
22
+ fromAmount: string;
23
+ toAmount: string;
24
+ }) {
25
+ const theme = useCustomTheme();
26
+ const isDifferentRecipient =
27
+ props.receiver.toLowerCase() !== props.sender.toLowerCase();
28
+ return (
29
+ <Container>
30
+ {/* Sell */}
31
+ <Container
32
+ bg="tertiaryBg"
33
+ flex="column"
34
+ style={{
35
+ borderRadius: radius.lg,
36
+ border: `1px solid ${theme.colors.borderColor}`,
37
+ }}
38
+ >
39
+ {isDifferentRecipient && (
40
+ <Container
41
+ flex="row"
42
+ gap="sm"
43
+ p="sm"
44
+ style={{
45
+ borderBottom: `1px solid ${theme.colors.borderColor}`,
46
+ }}
47
+ >
48
+ <WalletRow
49
+ address={props.sender}
50
+ client={props.client}
51
+ iconSize="md"
52
+ textSize="sm"
53
+ />
54
+ </Container>
55
+ )}
56
+ <TokenRow
57
+ token={props.fromToken}
58
+ chain={props.fromChain}
59
+ client={props.client}
60
+ isLoading={false}
61
+ value={props.fromAmount}
62
+ freezeChainAndToken={true}
63
+ onSelectToken={() => {}}
64
+ style={{
65
+ background: "transparent",
66
+ borderRadius: 0,
67
+ border: "none",
68
+ }}
69
+ />
70
+ </Container>
71
+ {/* Connector Icon */}
72
+ <Container flex="row" center="both" py="xxs">
73
+ <Container flex="column" center="both">
74
+ <ChevronDownIcon
75
+ width={iconSize.md}
76
+ height={iconSize.md}
77
+ style={{
78
+ color: theme.colors.secondaryIconColor,
79
+ }}
80
+ />
81
+ <ChevronDownIcon
82
+ width={iconSize.md}
83
+ height={iconSize.md}
84
+ style={{
85
+ color: theme.colors.secondaryIconColor,
86
+ marginTop: "-17px",
87
+ }}
88
+ />
89
+ </Container>
90
+ </Container>
91
+ {/* Buy */}
92
+ <Container
93
+ flex="column"
94
+ bg="tertiaryBg"
95
+ style={{
96
+ borderRadius: radius.lg,
97
+ border: `1px solid ${theme.colors.borderColor}`,
98
+ }}
99
+ >
100
+ {isDifferentRecipient && (
101
+ <Container
102
+ flex="row"
103
+ gap="sm"
104
+ p="sm"
105
+ style={{
106
+ borderBottom: `1px solid ${theme.colors.borderColor}`,
107
+ }}
108
+ >
109
+ <WalletRow
110
+ address={props.receiver}
111
+ client={props.client}
112
+ iconSize="md"
113
+ textSize="sm"
114
+ />
115
+ </Container>
116
+ )}
117
+ <TokenRow
118
+ token={props.toToken}
119
+ chain={props.toChain}
120
+ client={props.client}
121
+ isLoading={false}
122
+ value={props.toAmount}
123
+ freezeChainAndToken={true}
124
+ onSelectToken={() => {}}
125
+ style={{
126
+ background: "transparent",
127
+ borderRadius: 0,
128
+ border: "none",
129
+ }}
130
+ />
131
+ </Container>
132
+ </Container>
133
+ );
134
+ }