thirdweb 5.40.1-nightly-b128530355f0dc47d897bd2ef7c3823752ea9b6c-20240727000321 → 5.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/cjs/exports/extensions/erc20.js +3 -1
  2. package/dist/cjs/exports/extensions/erc20.js.map +1 -1
  3. package/dist/cjs/extensions/erc20/write/getApprovalForTransaction.js +38 -0
  4. package/dist/cjs/extensions/erc20/write/getApprovalForTransaction.js.map +1 -1
  5. package/dist/cjs/react/core/utils/socialIcons.js +3 -1
  6. package/dist/cjs/react/core/utils/socialIcons.js.map +1 -1
  7. package/dist/cjs/react/native/ui/components/WalletImage.js +2 -0
  8. package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -1
  9. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +3 -1
  10. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  11. package/dist/cjs/react/native/ui/icons/svgs.js +7 -1
  12. package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
  13. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +5 -5
  14. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  15. package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js +12 -1
  16. package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
  17. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +4 -3
  18. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +1 -1
  19. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewAssets.js +37 -0
  20. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewAssets.js.map +1 -0
  21. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewNFTs.js +21 -18
  22. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewNFTs.js.map +1 -1
  23. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewTokens.js +12 -9
  24. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewTokens.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletTransactionHistory.js +3 -2
  26. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletTransactionHistory.js.map +1 -1
  27. package/dist/cjs/react/web/ui/components/Tabs.js +5 -3
  28. package/dist/cjs/react/web/ui/components/Tabs.js.map +1 -1
  29. package/dist/cjs/react/web/ui/components/WalletImage.js +3 -0
  30. package/dist/cjs/react/web/ui/components/WalletImage.js.map +1 -1
  31. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
  32. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  33. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +2 -1
  34. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  35. package/dist/cjs/transaction/actions/send-and-confirm-transaction.js +1 -1
  36. package/dist/cjs/version.js +1 -1
  37. package/dist/cjs/version.js.map +1 -1
  38. package/dist/cjs/wallets/in-app/core/authentication/getLoginPath.js +11 -5
  39. package/dist/cjs/wallets/in-app/core/authentication/getLoginPath.js.map +1 -1
  40. package/dist/cjs/wallets/in-app/core/authentication/type.js +1 -0
  41. package/dist/cjs/wallets/in-app/core/authentication/type.js.map +1 -1
  42. package/dist/cjs/wallets/in-app/native/auth/native-auth.js +5 -1
  43. package/dist/cjs/wallets/in-app/native/auth/native-auth.js.map +1 -1
  44. package/dist/cjs/wallets/in-app/native/native-connector.js +1 -0
  45. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  46. package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js +7 -17
  47. package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
  48. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +1 -0
  49. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  50. package/dist/cjs/wallets/types.js +1 -0
  51. package/dist/cjs/wallets/types.js.map +1 -1
  52. package/dist/esm/exports/extensions/erc20.js +1 -0
  53. package/dist/esm/exports/extensions/erc20.js.map +1 -1
  54. package/dist/esm/extensions/erc20/write/getApprovalForTransaction.js +38 -0
  55. package/dist/esm/extensions/erc20/write/getApprovalForTransaction.js.map +1 -1
  56. package/dist/esm/react/core/utils/socialIcons.js +2 -0
  57. package/dist/esm/react/core/utils/socialIcons.js.map +1 -1
  58. package/dist/esm/react/native/ui/components/WalletImage.js +3 -1
  59. package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -1
  60. package/dist/esm/react/native/ui/connect/InAppWalletUI.js +4 -2
  61. package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  62. package/dist/esm/react/native/ui/icons/svgs.js +6 -0
  63. package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
  64. package/dist/esm/react/web/ui/ConnectWallet/Details.js +5 -5
  65. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  66. package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js +12 -1
  67. package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
  68. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +4 -3
  69. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +1 -1
  70. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewAssets.js +34 -0
  71. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewAssets.js.map +1 -0
  72. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewNFTs.js +21 -19
  73. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewNFTs.js.map +1 -1
  74. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewTokens.js +12 -10
  75. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewTokens.js.map +1 -1
  76. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletTransactionHistory.js +3 -2
  77. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletTransactionHistory.js.map +1 -1
  78. package/dist/esm/react/web/ui/components/Tabs.js +5 -3
  79. package/dist/esm/react/web/ui/components/Tabs.js.map +1 -1
  80. package/dist/esm/react/web/ui/components/WalletImage.js +4 -1
  81. package/dist/esm/react/web/ui/components/WalletImage.js.map +1 -1
  82. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
  83. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  84. package/dist/esm/react/web/wallets/shared/oauthSignIn.js +2 -1
  85. package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  86. package/dist/esm/transaction/actions/send-and-confirm-transaction.js +1 -1
  87. package/dist/esm/version.js +1 -1
  88. package/dist/esm/version.js.map +1 -1
  89. package/dist/esm/wallets/in-app/core/authentication/getLoginPath.js +11 -5
  90. package/dist/esm/wallets/in-app/core/authentication/getLoginPath.js.map +1 -1
  91. package/dist/esm/wallets/in-app/core/authentication/type.js +1 -0
  92. package/dist/esm/wallets/in-app/core/authentication/type.js.map +1 -1
  93. package/dist/esm/wallets/in-app/native/auth/native-auth.js +5 -1
  94. package/dist/esm/wallets/in-app/native/auth/native-auth.js.map +1 -1
  95. package/dist/esm/wallets/in-app/native/native-connector.js +1 -0
  96. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  97. package/dist/esm/wallets/in-app/web/lib/auth/oauth.js +6 -15
  98. package/dist/esm/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
  99. package/dist/esm/wallets/in-app/web/lib/web-connector.js +1 -0
  100. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  101. package/dist/esm/wallets/types.js +1 -0
  102. package/dist/esm/wallets/types.js.map +1 -1
  103. package/dist/types/exports/extensions/erc20.d.ts +1 -0
  104. package/dist/types/exports/extensions/erc20.d.ts.map +1 -1
  105. package/dist/types/extensions/erc20/write/getApprovalForTransaction.d.ts +44 -0
  106. package/dist/types/extensions/erc20/write/getApprovalForTransaction.d.ts.map +1 -1
  107. package/dist/types/react/core/utils/socialIcons.d.ts +2 -0
  108. package/dist/types/react/core/utils/socialIcons.d.ts.map +1 -1
  109. package/dist/types/react/core/utils/storage.d.ts +1 -1
  110. package/dist/types/react/core/utils/storage.d.ts.map +1 -1
  111. package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
  112. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
  113. package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
  114. package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
  115. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  116. package/dist/types/react/web/ui/ConnectWallet/TransactionsScreen.d.ts.map +1 -1
  117. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.d.ts.map +1 -1
  118. package/dist/types/react/web/ui/ConnectWallet/screens/{ViewFunds.d.ts → ViewAssets.d.ts} +4 -2
  119. package/dist/types/react/web/ui/ConnectWallet/screens/ViewAssets.d.ts.map +1 -0
  120. package/dist/types/react/web/ui/ConnectWallet/screens/ViewNFTs.d.ts +6 -0
  121. package/dist/types/react/web/ui/ConnectWallet/screens/ViewNFTs.d.ts.map +1 -1
  122. package/dist/types/react/web/ui/ConnectWallet/screens/ViewTokens.d.ts +5 -0
  123. package/dist/types/react/web/ui/ConnectWallet/screens/ViewTokens.d.ts.map +1 -1
  124. package/dist/types/react/web/ui/ConnectWallet/screens/WalletTransactionHistory.d.ts.map +1 -1
  125. package/dist/types/react/web/ui/ConnectWallet/screens/types.d.ts +1 -1
  126. package/dist/types/react/web/ui/ConnectWallet/screens/types.d.ts.map +1 -1
  127. package/dist/types/react/web/ui/components/Tabs.d.ts +5 -1
  128. package/dist/types/react/web/ui/components/Tabs.d.ts.map +1 -1
  129. package/dist/types/react/web/ui/components/WalletImage.d.ts.map +1 -1
  130. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  131. package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
  132. package/dist/types/transaction/actions/send-and-confirm-transaction.d.ts +1 -1
  133. package/dist/types/version.d.ts +1 -1
  134. package/dist/types/version.d.ts.map +1 -1
  135. package/dist/types/wallets/in-app/core/authentication/getLoginPath.d.ts +6 -1
  136. package/dist/types/wallets/in-app/core/authentication/getLoginPath.d.ts.map +1 -1
  137. package/dist/types/wallets/in-app/core/authentication/type.d.ts +2 -1
  138. package/dist/types/wallets/in-app/core/authentication/type.d.ts.map +1 -1
  139. package/dist/types/wallets/in-app/native/auth/native-auth.d.ts.map +1 -1
  140. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  141. package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts +0 -1
  142. package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts.map +1 -1
  143. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  144. package/dist/types/wallets/types.d.ts +1 -1
  145. package/dist/types/wallets/types.d.ts.map +1 -1
  146. package/package.json +1 -1
  147. package/src/exports/extensions/erc20.ts +5 -0
  148. package/src/extensions/erc20/write/getApprovalForTransaction.ts +44 -0
  149. package/src/react/core/utils/socialIcons.ts +3 -0
  150. package/src/react/native/ui/components/WalletImage.tsx +3 -0
  151. package/src/react/native/ui/connect/InAppWalletUI.tsx +8 -3
  152. package/src/react/native/ui/icons/svgs.ts +7 -0
  153. package/src/react/web/ui/ConnectWallet/Details.tsx +5 -4
  154. package/src/react/web/ui/ConnectWallet/TransactionsScreen.tsx +20 -1
  155. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.tsx +25 -22
  156. package/src/react/web/ui/ConnectWallet/screens/ViewAssets.tsx +104 -0
  157. package/src/react/web/ui/ConnectWallet/screens/ViewNFTs.tsx +63 -52
  158. package/src/react/web/ui/ConnectWallet/screens/ViewTokens.tsx +38 -29
  159. package/src/react/web/ui/ConnectWallet/screens/WalletTransactionHistory.tsx +8 -2
  160. package/src/react/web/ui/ConnectWallet/screens/types.ts +1 -1
  161. package/src/react/web/ui/components/Tabs.tsx +11 -6
  162. package/src/react/web/ui/components/WalletImage.tsx +4 -0
  163. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +1 -0
  164. package/src/react/web/wallets/shared/oauthSignIn.ts +2 -1
  165. package/src/transaction/actions/send-and-confirm-transaction.ts +1 -1
  166. package/src/version.ts +1 -1
  167. package/src/wallets/in-app/core/authentication/getLoginPath.ts +22 -9
  168. package/src/wallets/in-app/core/authentication/type.ts +1 -0
  169. package/src/wallets/in-app/native/auth/native-auth.ts +5 -1
  170. package/src/wallets/in-app/native/native-connector.ts +1 -0
  171. package/src/wallets/in-app/web/lib/auth/oauth.ts +6 -24
  172. package/src/wallets/in-app/web/lib/web-connector.ts +1 -0
  173. package/src/wallets/types.ts +1 -0
  174. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewFunds.js +0 -31
  175. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewFunds.js.map +0 -1
  176. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewFunds.js +0 -28
  177. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewFunds.js.map +0 -1
  178. package/dist/types/react/web/ui/ConnectWallet/screens/ViewFunds.d.ts.map +0 -1
  179. package/src/react/web/ui/ConnectWallet/screens/ViewFunds.tsx +0 -76
@@ -67,7 +67,7 @@ export type WalletDetailsModalScreen =
67
67
  | "buy"
68
68
  | "network-switcher"
69
69
  | "transactions"
70
- | "view-funds"
70
+ | "view-assets"
71
71
  | "view-tokens"
72
72
  | "view-nfts"
73
73
  | "private-key"
@@ -1,3 +1,4 @@
1
+ import type React from "react";
1
2
  import { useCustomTheme } from "../../../core/design-system/CustomThemeProvider.js";
2
3
  import { radius, spacing } from "../../../core/design-system/index.js";
3
4
  import { Text } from "../components/text.js";
@@ -13,7 +14,7 @@ export default function Tabs({
13
14
  }: {
14
15
  selected: string;
15
16
  onSelect: (selected: string) => void;
16
- options: string[];
17
+ options: { label: React.ReactNode; value: string }[];
17
18
  children: React.ReactNode;
18
19
  }) {
19
20
  const theme = useCustomTheme();
@@ -30,8 +31,8 @@ export default function Tabs({
30
31
  <Button
31
32
  variant="accent"
32
33
  type="button"
33
- key={option}
34
- onClick={() => onSelect(option)}
34
+ key={option.value}
35
+ onClick={() => onSelect(option.value)}
35
36
  style={{
36
37
  flex: 1,
37
38
  paddingBlock: spacing.sm,
@@ -41,15 +42,19 @@ export default function Tabs({
41
42
  position: "relative",
42
43
  borderRadius: radius.md,
43
44
  backgroundColor:
44
- option === selected ? theme.colors.modalBg : "transparent",
45
+ option.value === selected
46
+ ? theme.colors.modalBg
47
+ : "transparent",
45
48
  }}
46
49
  >
47
50
  <Text
48
- color={option === selected ? "primaryText" : "secondaryText"}
51
+ color={
52
+ option.value === selected ? "primaryText" : "secondaryText"
53
+ }
49
54
  style={{ textAlign: "center" }}
50
55
  size="sm"
51
56
  >
52
- {option}
57
+ {option.label}
53
58
  </Text>
54
59
  </Button>
55
60
  ))}
@@ -13,6 +13,7 @@ import {
13
13
  discordIconUri,
14
14
  emailIcon,
15
15
  facebookIconUri,
16
+ farcasterIconUri,
16
17
  genericWalletIcon,
17
18
  googleIconUri,
18
19
  passkeyIcon,
@@ -77,6 +78,9 @@ export function WalletImage(props: {
77
78
  case "discord":
78
79
  image = discordIconUri;
79
80
  break;
81
+ case "farcaster":
82
+ image = farcasterIconUri;
83
+ break;
80
84
  }
81
85
  } else {
82
86
  const mipdImage = getInstalledWalletProviders().find(
@@ -91,6 +91,7 @@ export const ConnectWalletSocialOptions = (
91
91
  facebook: locale.signInWithFacebook,
92
92
  apple: locale.signInWithApple,
93
93
  discord: locale.signInWithDiscord,
94
+ farcaster: "Farcaster",
94
95
  };
95
96
 
96
97
  const { data: ecosystemAuthOptions, isLoading } = useQuery({
@@ -33,8 +33,9 @@ function getOauthLoginPath(
33
33
  case "apple":
34
34
  case "facebook":
35
35
  case "google":
36
+ case "farcaster":
36
37
  case "discord":
37
- return getSocialAuthLoginPath(authOption, client, ecosystem);
38
+ return getSocialAuthLoginPath({ authOption, client, ecosystem });
38
39
  default:
39
40
  return "";
40
41
  }
@@ -16,7 +16,7 @@ import { waitForReceipt } from "./wait-for-tx-receipt.js";
16
16
  * import { sendAndConfirmTransaction } from "thirdweb";
17
17
  *
18
18
  * const transactionReceipt = await sendAndConfirmTransaction({
19
- * wallet,
19
+ * account,
20
20
  * transaction
21
21
  * });
22
22
  * ```
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.40.1-nightly-b128530355f0dc47d897bd2ef7c3823752ea9b6c-20240727000321";
1
+ export const version = "5.41.0";
@@ -3,17 +3,30 @@ import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
3
3
  import type { SocialAuthOption } from "../../../../wallets/types.js";
4
4
  import type { Ecosystem } from "../../web/types.js";
5
5
 
6
- export const getSocialAuthLoginPath = (
7
- authOption: SocialAuthOption,
8
- client: ThirdwebClient,
9
- ecosystem?: Ecosystem,
10
- ) => {
11
- const baseUrl = `${getThirdwebBaseUrl("inAppWallet")}/api/2024-05-05/login/${authOption}?clientId=${client.clientId}`;
6
+ export const getSocialAuthLoginPath = ({
7
+ authOption,
8
+ client,
9
+ ecosystem,
10
+ mode = "popup",
11
+ }: {
12
+ authOption: SocialAuthOption;
13
+ client: ThirdwebClient;
14
+ ecosystem?: Ecosystem;
15
+ mode?: "popup" | "redirect";
16
+ }) => {
17
+ let baseUrl = `${getThirdwebBaseUrl("inAppWallet")}/api/2024-05-05/login/${authOption}?clientId=${client.clientId}`;
12
18
  if (ecosystem?.partnerId) {
13
- return `${baseUrl}&ecosystemId=${ecosystem.id}&ecosystemPartnerId=${ecosystem.partnerId}`;
19
+ baseUrl = `${baseUrl}&ecosystemId=${ecosystem.id}&ecosystemPartnerId=${ecosystem.partnerId}`;
20
+ } else if (ecosystem) {
21
+ baseUrl = `${baseUrl}&ecosystemId=${ecosystem.id}`;
14
22
  }
15
- if (ecosystem) {
16
- return `${baseUrl}&ecosystemId=${ecosystem.id}`;
23
+
24
+ if (mode === "redirect") {
25
+ const redirectUrl = new URL(window.location.href);
26
+ redirectUrl.searchParams.set("walletId", ecosystem?.id || "inApp");
27
+ redirectUrl.searchParams.set("authProvider", authOption);
28
+ baseUrl = `${baseUrl}&redirectUrl=${encodeURIComponent(redirectUrl.toString())}`;
17
29
  }
30
+
18
31
  return baseUrl;
19
32
  };
@@ -62,6 +62,7 @@ export enum AuthProvider {
62
62
  APPLE = "Apple",
63
63
  PASSKEY = "Passkey",
64
64
  DISCORD = "Discord",
65
+ FARCASTER = "Farcaster",
65
66
  }
66
67
 
67
68
  export type OauthOption = {
@@ -208,7 +208,11 @@ export async function socialLogin(
208
208
  auth: OauthOption,
209
209
  client: ThirdwebClient,
210
210
  ): Promise<AuthStoredTokenWithCookieReturnType> {
211
- const loginUrl = `${getSocialAuthLoginPath(auth.strategy, client)}&redirectUrl=${encodeURIComponent(auth.redirectUrl)}`;
211
+ const loginUrl = getSocialAuthLoginPath({
212
+ authOption: auth.strategy,
213
+ client,
214
+ mode: "popup",
215
+ });
212
216
 
213
217
  const result = await WebBrowser.openAuthSessionAsync(
214
218
  loginUrl,
@@ -109,6 +109,7 @@ export class InAppNativeConnector implements InAppConnector {
109
109
  case "google":
110
110
  case "facebook":
111
111
  case "discord":
112
+ case "farcaster":
112
113
  case "apple": {
113
114
  const ExpoLinking = require("expo-linking");
114
115
  const redirectUrl =
@@ -2,6 +2,7 @@ import type { ThirdwebClient } from "../../../../../client/client.js";
2
2
  import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
3
3
  import type { AuthStoredTokenWithCookieReturnType } from "../../../../../wallets/in-app/core/authentication/type.js";
4
4
  import type { SocialAuthOption } from "../../../../../wallets/types.js";
5
+ import { getSocialAuthLoginPath } from "../../../core/authentication/getLoginPath.js";
5
6
  import type { Ecosystem } from "../../types.js";
6
7
  import { DEFAULT_POP_UP_SIZE } from "./constants.js";
7
8
 
@@ -25,30 +26,15 @@ const closeWindow = ({
25
26
  }
26
27
  };
27
28
 
28
- export const getSocialAuthLoginPath = (
29
- authOption: SocialAuthOption,
30
- client: ThirdwebClient,
31
- ecosystem?: Ecosystem,
32
- ) => {
33
- const baseUrl = `${getThirdwebBaseUrl("inAppWallet")}/api/2024-05-05/login/${authOption}?clientId=${client.clientId}`;
34
- if (ecosystem?.partnerId) {
35
- return `${baseUrl}&ecosystemId=${ecosystem.id}&ecosystemPartnerId=${ecosystem.partnerId}`;
36
- }
37
- if (ecosystem) {
38
- return `${baseUrl}&ecosystemId=${ecosystem.id}`;
39
- }
40
- return baseUrl;
41
- };
42
-
43
29
  export const loginWithOauthRedirect = (options: {
44
30
  authOption: SocialAuthOption;
45
31
  client: ThirdwebClient;
46
32
  ecosystem?: Ecosystem;
47
33
  }): void => {
48
- const redirectUrl = new URL(window.location.href);
49
- redirectUrl.searchParams.set("walletId", options.ecosystem?.id || "inApp");
50
- redirectUrl.searchParams.set("authProvider", options.authOption);
51
- const loginUrl = `${getSocialAuthLoginPath(options.authOption, options.client, options.ecosystem)}&redirectUrl=${encodeURIComponent(redirectUrl.toString())}`;
34
+ const loginUrl = getSocialAuthLoginPath({
35
+ ...options,
36
+ mode: "redirect",
37
+ });
52
38
  window.location.href = loginUrl;
53
39
  };
54
40
 
@@ -63,11 +49,7 @@ export const loginWithOauth = async (options: {
63
49
  let isWindowOpenedByFn = false;
64
50
  if (!win) {
65
51
  win = window.open(
66
- getSocialAuthLoginPath(
67
- options.authOption,
68
- options.client,
69
- options.ecosystem,
70
- ),
52
+ getSocialAuthLoginPath({ ...options, mode: "popup" }),
71
53
  `Login to ${options.authOption}`,
72
54
  DEFAULT_POP_UP_SIZE,
73
55
  );
@@ -222,6 +222,7 @@ export class InAppWebConnector implements InAppConnector {
222
222
  case "apple":
223
223
  case "facebook":
224
224
  case "google":
225
+ case "farcaster":
225
226
  case "discord": {
226
227
  const authToken = await loginWithOauth({
227
228
  authOption: strategy,
@@ -24,6 +24,7 @@ export const socialAuthOptions = [
24
24
  "apple",
25
25
  "facebook",
26
26
  "discord",
27
+ "farcaster",
27
28
  ] as const;
28
29
  export type SocialAuthOption = (typeof socialAuthOptions)[number];
29
30
 
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ViewFunds = ViewFunds;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const index_js_1 = require("../../../../core/design-system/index.js");
6
- const Spacer_js_1 = require("../../components/Spacer.js");
7
- const basic_js_1 = require("../../components/basic.js");
8
- const text_js_1 = require("../../components/text.js");
9
- const MenuButton_js_1 = require("../MenuButton.js");
10
- const CoinsIcon_js_1 = require("../icons/CoinsIcon.js");
11
- const ImageIcon_js_1 = require("../icons/ImageIcon.js");
12
- /**
13
- * @internal
14
- */
15
- function ViewFunds(props) {
16
- const { connectLocale } = props;
17
- return ((0, jsx_runtime_1.jsxs)(basic_js_1.Container, { style: {
18
- minHeight: "300px",
19
- }, children: [(0, jsx_runtime_1.jsx)(basic_js_1.Container, { p: "lg", children: (0, jsx_runtime_1.jsx)(basic_js_1.ModalHeader, { title: connectLocale.viewFunds.title, onBack: props.onBack }) }), (0, jsx_runtime_1.jsx)(basic_js_1.Line, {}), (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { px: "sm", scrollY: true, style: {
20
- maxHeight: "500px",
21
- }, children: [(0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "md" }), (0, jsx_runtime_1.jsxs)(MenuButton_js_1.MenuButton, { onClick: () => {
22
- props.setScreen("view-tokens");
23
- }, style: {
24
- fontSize: index_js_1.fontSize.sm,
25
- }, children: [(0, jsx_runtime_1.jsx)(CoinsIcon_js_1.CoinsIcon, { size: index_js_1.iconSize.md }), (0, jsx_runtime_1.jsx)(text_js_1.Text, { color: "primaryText", children: connectLocale.viewFunds.viewTokens })] }), (0, jsx_runtime_1.jsxs)(MenuButton_js_1.MenuButton, { onClick: () => {
26
- props.setScreen("view-nfts");
27
- }, style: {
28
- fontSize: index_js_1.fontSize.sm,
29
- }, children: [(0, jsx_runtime_1.jsx)(ImageIcon_js_1.ImageIcon, { size: index_js_1.iconSize.md }), (0, jsx_runtime_1.jsx)(text_js_1.Text, { color: "primaryText", children: connectLocale.viewFunds.viewNFTs })] }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "lg" })] })] }));
30
- }
31
- //# sourceMappingURL=ViewFunds.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewFunds.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/ConnectWallet/screens/ViewFunds.tsx"],"names":[],"mappings":";;AAkBA,8BAyDC;;AA1ED,sEAA6E;AAK7E,0DAAoD;AACpD,wDAAyE;AACzE,sDAAgD;AAChD,oDAA8C;AAC9C,wDAAkD;AAClD,wDAAkD;AAIlD;;GAEG;AACH,SAAgB,SAAS,CAAC,KAOzB;IACC,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAChC,OAAO,CACL,wBAAC,oBAAS,IACR,KAAK,EAAE;YACL,SAAS,EAAE,OAAO;SACnB,aAED,uBAAC,oBAAS,IAAC,CAAC,EAAC,IAAI,YACf,uBAAC,sBAAW,IACV,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,EACpC,MAAM,EAAE,KAAK,CAAC,MAAM,GACpB,GACQ,EACZ,uBAAC,eAAI,KAAG,EACR,wBAAC,oBAAS,IACR,EAAE,EAAC,IAAI,EACP,OAAO,QACP,KAAK,EAAE;oBACL,SAAS,EAAE,OAAO;iBACnB,aAED,uBAAC,kBAAM,IAAC,CAAC,EAAC,IAAI,GAAG,EAEjB,wBAAC,0BAAU,IACT,OAAO,EAAE,GAAG,EAAE;4BACZ,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;wBACjC,CAAC,EACD,KAAK,EAAE;4BACL,QAAQ,EAAE,mBAAQ,CAAC,EAAE;yBACtB,aAED,uBAAC,wBAAS,IAAC,IAAI,EAAE,mBAAQ,CAAC,EAAE,GAAI,EAChC,uBAAC,cAAI,IAAC,KAAK,EAAC,aAAa,YAAE,aAAa,CAAC,SAAS,CAAC,UAAU,GAAQ,IAC1D,EACb,wBAAC,0BAAU,IACT,OAAO,EAAE,GAAG,EAAE;4BACZ,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;wBAC/B,CAAC,EACD,KAAK,EAAE;4BACL,QAAQ,EAAE,mBAAQ,CAAC,EAAE;yBACtB,aAED,uBAAC,wBAAS,IAAC,IAAI,EAAE,mBAAQ,CAAC,EAAE,GAAI,EAChC,uBAAC,cAAI,IAAC,KAAK,EAAC,aAAa,YAAE,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAQ,IACxD,EACb,uBAAC,kBAAM,IAAC,CAAC,EAAC,IAAI,GAAG,IACP,IACF,CACb,CAAC;AACJ,CAAC"}
@@ -1,28 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { fontSize, iconSize } from "../../../../core/design-system/index.js";
3
- import { Spacer } from "../../components/Spacer.js";
4
- import { Container, Line, ModalHeader } from "../../components/basic.js";
5
- import { Text } from "../../components/text.js";
6
- import { MenuButton } from "../MenuButton.js";
7
- import { CoinsIcon } from "../icons/CoinsIcon.js";
8
- import { ImageIcon } from "../icons/ImageIcon.js";
9
- /**
10
- * @internal
11
- */
12
- export function ViewFunds(props) {
13
- const { connectLocale } = props;
14
- return (_jsxs(Container, { style: {
15
- minHeight: "300px",
16
- }, children: [_jsx(Container, { p: "lg", children: _jsx(ModalHeader, { title: connectLocale.viewFunds.title, onBack: props.onBack }) }), _jsx(Line, {}), _jsxs(Container, { px: "sm", scrollY: true, style: {
17
- maxHeight: "500px",
18
- }, children: [_jsx(Spacer, { y: "md" }), _jsxs(MenuButton, { onClick: () => {
19
- props.setScreen("view-tokens");
20
- }, style: {
21
- fontSize: fontSize.sm,
22
- }, children: [_jsx(CoinsIcon, { size: iconSize.md }), _jsx(Text, { color: "primaryText", children: connectLocale.viewFunds.viewTokens })] }), _jsxs(MenuButton, { onClick: () => {
23
- props.setScreen("view-nfts");
24
- }, style: {
25
- fontSize: fontSize.sm,
26
- }, children: [_jsx(ImageIcon, { size: iconSize.md }), _jsx(Text, { color: "primaryText", children: connectLocale.viewFunds.viewNFTs })] }), _jsx(Spacer, { y: "lg" })] })] }));
27
- }
28
- //# sourceMappingURL=ViewFunds.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewFunds.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/ConnectWallet/screens/ViewFunds.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAK7E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAOzB;IACC,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAChC,OAAO,CACL,MAAC,SAAS,IACR,KAAK,EAAE;YACL,SAAS,EAAE,OAAO;SACnB,aAED,KAAC,SAAS,IAAC,CAAC,EAAC,IAAI,YACf,KAAC,WAAW,IACV,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,EACpC,MAAM,EAAE,KAAK,CAAC,MAAM,GACpB,GACQ,EACZ,KAAC,IAAI,KAAG,EACR,MAAC,SAAS,IACR,EAAE,EAAC,IAAI,EACP,OAAO,QACP,KAAK,EAAE;oBACL,SAAS,EAAE,OAAO;iBACnB,aAED,KAAC,MAAM,IAAC,CAAC,EAAC,IAAI,GAAG,EAEjB,MAAC,UAAU,IACT,OAAO,EAAE,GAAG,EAAE;4BACZ,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;wBACjC,CAAC,EACD,KAAK,EAAE;4BACL,QAAQ,EAAE,QAAQ,CAAC,EAAE;yBACtB,aAED,KAAC,SAAS,IAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,GAAI,EAChC,KAAC,IAAI,IAAC,KAAK,EAAC,aAAa,YAAE,aAAa,CAAC,SAAS,CAAC,UAAU,GAAQ,IAC1D,EACb,MAAC,UAAU,IACT,OAAO,EAAE,GAAG,EAAE;4BACZ,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;wBAC/B,CAAC,EACD,KAAK,EAAE;4BACL,QAAQ,EAAE,QAAQ,CAAC,EAAE;yBACtB,aAED,KAAC,SAAS,IAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,GAAI,EAChC,KAAC,IAAI,IAAC,KAAK,EAAC,aAAa,YAAE,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAQ,IACxD,EACb,KAAC,MAAM,IAAC,CAAC,EAAC,IAAI,GAAG,IACP,IACF,CACb,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewFunds.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/ConnectWallet/screens/ViewFunds.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EAChB,MAAM,yCAAyC,CAAC;AAOjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACtD,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;CAC9B,8CAkDA"}
@@ -1,76 +0,0 @@
1
- import type { ThirdwebClient } from "../../../../../client/client.js";
2
- import { fontSize, iconSize } from "../../../../core/design-system/index.js";
3
- import type {
4
- SupportedNFTs,
5
- SupportedTokens,
6
- } from "../../../../core/utils/defaultTokens.js";
7
- import { Spacer } from "../../components/Spacer.js";
8
- import { Container, Line, ModalHeader } from "../../components/basic.js";
9
- import { Text } from "../../components/text.js";
10
- import { MenuButton } from "../MenuButton.js";
11
- import { CoinsIcon } from "../icons/CoinsIcon.js";
12
- import { ImageIcon } from "../icons/ImageIcon.js";
13
- import type { ConnectLocale } from "../locale/types.js";
14
- import type { WalletDetailsModalScreen } from "./types.js";
15
-
16
- /**
17
- * @internal
18
- */
19
- export function ViewFunds(props: {
20
- supportedTokens?: SupportedTokens;
21
- supportedNFTs?: SupportedNFTs;
22
- onBack: () => void;
23
- setScreen: (screen: WalletDetailsModalScreen) => void;
24
- client: ThirdwebClient;
25
- connectLocale: ConnectLocale;
26
- }) {
27
- const { connectLocale } = props;
28
- return (
29
- <Container
30
- style={{
31
- minHeight: "300px",
32
- }}
33
- >
34
- <Container p="lg">
35
- <ModalHeader
36
- title={connectLocale.viewFunds.title}
37
- onBack={props.onBack}
38
- />
39
- </Container>
40
- <Line />
41
- <Container
42
- px="sm"
43
- scrollY
44
- style={{
45
- maxHeight: "500px",
46
- }}
47
- >
48
- <Spacer y="md" />
49
-
50
- <MenuButton
51
- onClick={() => {
52
- props.setScreen("view-tokens");
53
- }}
54
- style={{
55
- fontSize: fontSize.sm,
56
- }}
57
- >
58
- <CoinsIcon size={iconSize.md} />
59
- <Text color="primaryText">{connectLocale.viewFunds.viewTokens}</Text>
60
- </MenuButton>
61
- <MenuButton
62
- onClick={() => {
63
- props.setScreen("view-nfts");
64
- }}
65
- style={{
66
- fontSize: fontSize.sm,
67
- }}
68
- >
69
- <ImageIcon size={iconSize.md} />
70
- <Text color="primaryText">{connectLocale.viewFunds.viewNFTs}</Text>
71
- </MenuButton>
72
- <Spacer y="lg" />
73
- </Container>
74
- </Container>
75
- );
76
- }