thirdweb 5.29.2 → 5.29.3-nightly-476b6cc271b0891fa01fb09ca509c564b850ccfa-20240614185219

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 (192) hide show
  1. package/dist/cjs/exports/react-native/wallets/in-app.js +17 -0
  2. package/dist/cjs/exports/react-native/wallets/in-app.js.map +1 -0
  3. package/dist/cjs/exports/react-native/wallets.js +36 -0
  4. package/dist/cjs/exports/react-native/wallets.js.map +1 -0
  5. package/dist/cjs/exports/wallets/embedded.js +4 -4
  6. package/dist/cjs/exports/wallets/embedded.js.map +1 -1
  7. package/dist/cjs/exports/wallets/in-app.js +4 -3
  8. package/dist/cjs/exports/wallets/in-app.js.map +1 -1
  9. package/dist/cjs/exports/wallets/smart.js +2 -2
  10. package/dist/cjs/exports/wallets/smart.js.map +1 -1
  11. package/dist/cjs/exports/wallets.js +8 -5
  12. package/dist/cjs/exports/wallets.js.map +1 -1
  13. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +1 -1
  14. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  15. package/dist/cjs/react/web/wallets/in-app/InAppWalletOTPLoginUI.js +1 -1
  16. package/dist/cjs/react/web/wallets/in-app/InAppWalletOTPLoginUI.js.map +1 -1
  17. package/dist/cjs/version.js +1 -1
  18. package/dist/cjs/version.js.map +1 -1
  19. package/dist/cjs/wallets/coinbase/coinbase-wallet.js +87 -0
  20. package/dist/cjs/wallets/coinbase/coinbase-wallet.js.map +1 -0
  21. package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js +17 -2
  22. package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js.map +1 -1
  23. package/dist/cjs/wallets/coinbase/coinbaseSDKWallet.js +12 -20
  24. package/dist/cjs/wallets/coinbase/coinbaseSDKWallet.js.map +1 -1
  25. package/dist/cjs/wallets/create-wallet.js +12 -300
  26. package/dist/cjs/wallets/create-wallet.js.map +1 -1
  27. package/dist/cjs/wallets/in-app/core/authentication/type.js +6 -1
  28. package/dist/cjs/wallets/in-app/core/authentication/type.js.map +1 -1
  29. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +100 -0
  30. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -0
  31. package/dist/cjs/wallets/in-app/core/wallet/index.js +15 -7
  32. package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
  33. package/dist/cjs/wallets/in-app/{core/authentication → native/auth}/index.js +15 -42
  34. package/dist/cjs/wallets/in-app/native/auth/index.js.map +1 -0
  35. package/dist/cjs/wallets/in-app/native/{auth.js → auth/native-auth.js} +9 -9
  36. package/dist/cjs/wallets/in-app/native/auth/native-auth.js.map +1 -0
  37. package/dist/cjs/wallets/in-app/native/in-app.js +69 -0
  38. package/dist/cjs/wallets/in-app/native/in-app.js.map +1 -0
  39. package/dist/cjs/wallets/in-app/native/native-connector.js +9 -10
  40. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  41. package/dist/cjs/wallets/in-app/web/in-app.js +69 -0
  42. package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -0
  43. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +219 -0
  44. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -0
  45. package/dist/cjs/wallets/in-app/web/lib/auth/index.js +121 -208
  46. package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
  47. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +3 -4
  48. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  49. package/dist/cjs/wallets/manager/index.js +2 -2
  50. package/dist/cjs/wallets/manager/index.js.map +1 -1
  51. package/dist/cjs/wallets/native/create-wallet.js +174 -0
  52. package/dist/cjs/wallets/native/create-wallet.js.map +1 -0
  53. package/dist/cjs/wallets/smart/smart-wallet.js +103 -0
  54. package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -0
  55. package/dist/esm/exports/react-native/wallets/in-app.js +9 -0
  56. package/dist/esm/exports/react-native/wallets/in-app.js.map +1 -0
  57. package/dist/esm/exports/react-native/wallets.js +23 -0
  58. package/dist/esm/exports/react-native/wallets.js.map +1 -0
  59. package/dist/esm/exports/wallets/embedded.js +3 -2
  60. package/dist/esm/exports/wallets/embedded.js.map +1 -1
  61. package/dist/esm/exports/wallets/in-app.js +4 -2
  62. package/dist/esm/exports/wallets/in-app.js.map +1 -1
  63. package/dist/esm/exports/wallets/smart.js +1 -1
  64. package/dist/esm/exports/wallets/smart.js.map +1 -1
  65. package/dist/esm/exports/wallets.js +5 -2
  66. package/dist/esm/exports/wallets.js.map +1 -1
  67. package/dist/esm/react/web/ui/ConnectWallet/Details.js +1 -1
  68. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  69. package/dist/esm/react/web/wallets/in-app/InAppWalletOTPLoginUI.js +1 -1
  70. package/dist/esm/react/web/wallets/in-app/InAppWalletOTPLoginUI.js.map +1 -1
  71. package/dist/esm/version.js +1 -1
  72. package/dist/esm/version.js.map +1 -1
  73. package/dist/esm/wallets/coinbase/coinbase-wallet.js +83 -0
  74. package/dist/esm/wallets/coinbase/coinbase-wallet.js.map +1 -0
  75. package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js +16 -1
  76. package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js.map +1 -1
  77. package/dist/esm/wallets/coinbase/coinbaseSDKWallet.js +10 -19
  78. package/dist/esm/wallets/coinbase/coinbaseSDKWallet.js.map +1 -1
  79. package/dist/esm/wallets/create-wallet.js +9 -295
  80. package/dist/esm/wallets/create-wallet.js.map +1 -1
  81. package/dist/esm/wallets/in-app/core/authentication/type.js +5 -0
  82. package/dist/esm/wallets/in-app/core/authentication/type.js.map +1 -1
  83. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +95 -0
  84. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -0
  85. package/dist/esm/wallets/in-app/core/wallet/index.js +15 -7
  86. package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
  87. package/dist/esm/wallets/in-app/{core/authentication → native/auth}/index.js +14 -40
  88. package/dist/esm/wallets/in-app/native/auth/index.js.map +1 -0
  89. package/dist/esm/wallets/in-app/native/{auth.js → auth/native-auth.js} +9 -9
  90. package/dist/esm/wallets/in-app/native/auth/native-auth.js.map +1 -0
  91. package/dist/esm/wallets/in-app/native/in-app.js +65 -0
  92. package/dist/esm/wallets/in-app/native/in-app.js.map +1 -0
  93. package/dist/esm/wallets/in-app/native/native-connector.js +2 -3
  94. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  95. package/dist/esm/wallets/in-app/web/in-app.js +65 -0
  96. package/dist/esm/wallets/in-app/web/in-app.js.map +1 -0
  97. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +215 -0
  98. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -0
  99. package/dist/esm/wallets/in-app/web/lib/auth/index.js +115 -206
  100. package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
  101. package/dist/esm/wallets/in-app/web/lib/web-connector.js +2 -3
  102. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  103. package/dist/esm/wallets/manager/index.js +1 -1
  104. package/dist/esm/wallets/manager/index.js.map +1 -1
  105. package/dist/esm/wallets/native/create-wallet.js +169 -0
  106. package/dist/esm/wallets/native/create-wallet.js.map +1 -0
  107. package/dist/esm/wallets/smart/smart-wallet.js +99 -0
  108. package/dist/esm/wallets/smart/smart-wallet.js.map +1 -0
  109. package/dist/types/exports/react-native/wallets/in-app.d.ts +5 -0
  110. package/dist/types/exports/react-native/wallets/in-app.d.ts.map +1 -0
  111. package/dist/types/exports/react-native/wallets.d.ts +47 -0
  112. package/dist/types/exports/react-native/wallets.d.ts.map +1 -0
  113. package/dist/types/exports/wallets/embedded.d.ts +3 -2
  114. package/dist/types/exports/wallets/embedded.d.ts.map +1 -1
  115. package/dist/types/exports/wallets/in-app.d.ts +3 -2
  116. package/dist/types/exports/wallets/in-app.d.ts.map +1 -1
  117. package/dist/types/exports/wallets/smart.d.ts +1 -1
  118. package/dist/types/exports/wallets/smart.d.ts.map +1 -1
  119. package/dist/types/exports/wallets.d.ts +4 -2
  120. package/dist/types/exports/wallets.d.ts.map +1 -1
  121. package/dist/types/version.d.ts +1 -1
  122. package/dist/types/version.d.ts.map +1 -1
  123. package/dist/types/wallets/coinbase/coinbase-wallet.d.ts +15 -0
  124. package/dist/types/wallets/coinbase/coinbase-wallet.d.ts.map +1 -0
  125. package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts +7 -7
  126. package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts.map +1 -1
  127. package/dist/types/wallets/coinbase/coinbaseSDKWallet.d.ts +6 -2
  128. package/dist/types/wallets/coinbase/coinbaseSDKWallet.d.ts.map +1 -1
  129. package/dist/types/wallets/create-wallet.d.ts +0 -74
  130. package/dist/types/wallets/create-wallet.d.ts.map +1 -1
  131. package/dist/types/wallets/in-app/core/authentication/type.d.ts +4 -0
  132. package/dist/types/wallets/in-app/core/authentication/type.d.ts.map +1 -1
  133. package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts +16 -0
  134. package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -0
  135. package/dist/types/wallets/in-app/core/wallet/index.d.ts +3 -2
  136. package/dist/types/wallets/in-app/core/wallet/index.d.ts.map +1 -1
  137. package/dist/types/wallets/in-app/{core/authentication → native/auth}/index.d.ts +3 -12
  138. package/dist/types/wallets/in-app/native/auth/index.d.ts.map +1 -0
  139. package/dist/types/wallets/in-app/native/{auth.d.ts → auth/native-auth.d.ts} +3 -3
  140. package/dist/types/wallets/in-app/native/auth/native-auth.d.ts.map +1 -0
  141. package/dist/types/wallets/in-app/native/in-app.d.ts +56 -0
  142. package/dist/types/wallets/in-app/native/in-app.d.ts.map +1 -0
  143. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  144. package/dist/types/wallets/in-app/web/in-app.d.ts +56 -0
  145. package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -0
  146. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts +141 -0
  147. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -0
  148. package/dist/types/wallets/in-app/web/lib/auth/index.d.ts +78 -137
  149. package/dist/types/wallets/in-app/web/lib/auth/index.d.ts.map +1 -1
  150. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +1 -1
  151. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  152. package/dist/types/wallets/manager/index.d.ts.map +1 -1
  153. package/dist/types/wallets/native/create-wallet.d.ts +36 -0
  154. package/dist/types/wallets/native/create-wallet.d.ts.map +1 -0
  155. package/dist/types/wallets/smart/smart-wallet.d.ts +24 -0
  156. package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -0
  157. package/package.json +3 -1
  158. package/src/exports/react-native/wallets/in-app.ts +18 -0
  159. package/src/exports/react-native/wallets.ts +102 -0
  160. package/src/exports/wallets/embedded.ts +4 -3
  161. package/src/exports/wallets/in-app.ts +6 -3
  162. package/src/exports/wallets/smart.ts +1 -1
  163. package/src/exports/wallets.ts +7 -3
  164. package/src/react/web/ui/ConnectWallet/Details.tsx +1 -1
  165. package/src/react/web/wallets/in-app/InAppWalletOTPLoginUI.tsx +1 -1
  166. package/src/version.ts +1 -1
  167. package/src/wallets/coinbase/coinbase-wallet.ts +108 -0
  168. package/src/wallets/coinbase/coinbaseMobileSDK.ts +23 -1
  169. package/src/wallets/coinbase/coinbaseSDKWallet.ts +10 -21
  170. package/src/wallets/create-wallet.ts +9 -359
  171. package/src/wallets/in-app/core/authentication/type.ts +13 -0
  172. package/src/wallets/in-app/core/wallet/in-app-core.ts +134 -0
  173. package/src/wallets/in-app/core/wallet/index.ts +17 -6
  174. package/src/wallets/in-app/{core/authentication → native/auth}/index.ts +15 -57
  175. package/src/wallets/in-app/native/{auth.ts → auth/native-auth.ts} +10 -10
  176. package/src/wallets/in-app/native/in-app.ts +70 -0
  177. package/src/wallets/in-app/native/native-connector.ts +2 -2
  178. package/src/wallets/in-app/web/in-app.ts +70 -0
  179. package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +266 -0
  180. package/src/wallets/in-app/web/lib/auth/index.ts +124 -249
  181. package/src/wallets/in-app/web/lib/web-connector.ts +2 -2
  182. package/src/wallets/manager/index.ts +1 -1
  183. package/src/wallets/native/create-wallet.ts +224 -0
  184. package/src/wallets/smart/smart-wallet-integration.test.ts +1 -1
  185. package/src/wallets/smart/smart-wallet-zksync.test.ts +1 -1
  186. package/src/wallets/smart/smart-wallet.ts +123 -0
  187. package/dist/cjs/wallets/in-app/core/authentication/index.js.map +0 -1
  188. package/dist/cjs/wallets/in-app/native/auth.js.map +0 -1
  189. package/dist/esm/wallets/in-app/core/authentication/index.js.map +0 -1
  190. package/dist/esm/wallets/in-app/native/auth.js.map +0 -1
  191. package/dist/types/wallets/in-app/core/authentication/index.d.ts.map +0 -1
  192. package/dist/types/wallets/in-app/native/auth.d.ts.map +0 -1
@@ -0,0 +1,18 @@
1
+ // --- KEEEP IN SYNC with exports/wallets/in-app.ts ---
2
+
3
+ export { inAppWallet } from "../../../wallets/in-app/native/in-app.js";
4
+
5
+ export {
6
+ preAuthenticate,
7
+ authenticate,
8
+ getUserEmail,
9
+ getUserPhoneNumber,
10
+ } from "../../../wallets/in-app/native/auth/index.js";
11
+
12
+ export { type GetAuthenticatedUserParams } from "../../../wallets/in-app/core/authentication/type.js";
13
+
14
+ // NOT SUPPORTED (yet)
15
+
16
+ export const hasStoredPasskey = () => {
17
+ throw new Error("Not supported in native");
18
+ };
@@ -0,0 +1,102 @@
1
+ // --- KEEEP IN SYNC with exports/wallets.ts ---
2
+
3
+ export {
4
+ createWallet,
5
+ walletConnect,
6
+ } from "../../wallets/native/create-wallet.js";
7
+ export { inAppWallet } from "../../wallets/in-app/native/in-app.js";
8
+ export { smartWallet } from "../../wallets/smart/smart-wallet.js";
9
+
10
+ export type { Wallet, Account } from "../../wallets/interfaces/wallet.js";
11
+ export type { ConnectionStatus } from "../../wallets/manager/index.js";
12
+
13
+ // utils
14
+ export {
15
+ getWalletBalance,
16
+ type GetWalletBalanceOptions,
17
+ } from "../../wallets/utils/getWalletBalance.js";
18
+ export {
19
+ generateAccount,
20
+ type GenerateAccountOptions,
21
+ } from "../../wallets/utils/generateAccount.js";
22
+
23
+ // private-key
24
+ export {
25
+ privateKeyToAccount,
26
+ /**
27
+ * @internal
28
+ * @deprecated - use {@link privateKeyToAccount} instead
29
+ */
30
+ privateKeyToAccount as privateKeyAccount,
31
+ type PrivateKeyToAccountOptions,
32
+ /**
33
+ * @internal
34
+ * @deprecated - use {@link PrivateKeyToAccountOptions} instead
35
+ */
36
+ type PrivateKeyToAccountOptions as PrivateKeyAccountOptions,
37
+ } from "../../wallets/private-key.js";
38
+
39
+ export type {
40
+ WalletId,
41
+ WalletAutoConnectionOption,
42
+ WalletCreationOptions,
43
+ WalletConnectionOption,
44
+ CreateWalletArgs,
45
+ } from "../../wallets/wallet-types.js";
46
+
47
+ export type {
48
+ WCSupportedWalletIds,
49
+ InjectedSupportedWalletIds,
50
+ } from "../../wallets/__generated__/wallet-ids.js";
51
+
52
+ export type {
53
+ WCConnectOptions,
54
+ WCAutoConnectOptions,
55
+ } from "../../wallets/wallet-connect/types.js";
56
+
57
+ export type {
58
+ SmartWalletConnectionOptions,
59
+ SmartWalletOptions,
60
+ } from "../../wallets/smart/types.js";
61
+
62
+ export type {
63
+ InAppWalletAuth,
64
+ /**
65
+ * @deprecated use InAppWalletAuth instead
66
+ */
67
+ InAppWalletAuth as EmbeddedWalletAuth,
68
+ InAppWalletAutoConnectOptions,
69
+ /**
70
+ * @deprecated use InAppWalletAutoConnectOptions instead
71
+ */
72
+ InAppWalletAutoConnectOptions as EmbeddedWalletAutoConnectOptions,
73
+ InAppWalletConnectionOptions,
74
+ /**
75
+ * @deprecated use InAppWalletConnectionOptions instead
76
+ */
77
+ InAppWalletConnectionOptions as EmbeddedWalletConnectionOptions,
78
+ InAppWalletSocialAuth,
79
+ /**
80
+ * @deprecated use InAppWalletSocialAuth instead
81
+ */
82
+ InAppWalletSocialAuth as EmbeddedWalletSocialAuth,
83
+ } from "../../wallets/in-app/core/wallet/types.js";
84
+
85
+ export type { CoinbaseSDKWalletConnectionOptions } from "../../wallets/coinbase/coinbaseSDKWallet.js";
86
+
87
+ export type {
88
+ WalletEmitter,
89
+ WalletEmitterEvents,
90
+ } from "../../wallets/wallet-emitter.js";
91
+
92
+ export { getAllWalletsList } from "../../wallets/getAllWalletsList.js";
93
+ export { getWalletInfo } from "../../wallets/__generated__/getWalletInfo.js";
94
+ export { type WalletInfo } from "../../wallets/wallet-info.js";
95
+
96
+ export { createWalletAdapter } from "../../adapters/wallet-adapter.js";
97
+
98
+ // NOT SUPPORTED
99
+
100
+ export const injectedProvider = () => {
101
+ throw new Error("Not supported in native");
102
+ };
@@ -4,11 +4,12 @@ export {
4
4
  * @deprecated use inAppWallet instead
5
5
  */
6
6
  inAppWallet as embeddedWallet,
7
- } from "../../wallets/create-wallet.js";
7
+ } from "../../wallets/in-app/web/in-app.js";
8
8
 
9
9
  export {
10
10
  preAuthenticate,
11
11
  authenticate,
12
12
  getUserEmail,
13
- type GetAuthenticatedUserParams,
14
- } from "../../wallets/in-app/core/authentication/index.js";
13
+ } from "../../wallets/in-app/web/lib/auth/index.js";
14
+
15
+ export { type GetAuthenticatedUserParams } from "../../wallets/in-app/core/authentication/type.js";
@@ -1,12 +1,15 @@
1
- export { inAppWallet } from "../../wallets/create-wallet.js";
1
+ // --- KEEEP IN SYNC with exports/react-native/wallets/in-app ---
2
+
3
+ export { inAppWallet } from "../../wallets/in-app/web/in-app.js";
2
4
 
3
5
  export {
4
6
  preAuthenticate,
5
7
  authenticate,
6
8
  getUserEmail,
7
9
  getUserPhoneNumber,
8
- type GetAuthenticatedUserParams,
9
- } from "../../wallets/in-app/core/authentication/index.js";
10
+ } from "../../wallets/in-app/web/lib/auth/index.js";
11
+
12
+ export { type GetAuthenticatedUserParams } from "../../wallets/in-app/core/authentication/type.js";
10
13
 
11
14
  export { hasStoredPasskey } from "../../wallets/in-app/web/lib/auth/passkeys.js";
12
15
 
@@ -1,4 +1,4 @@
1
- export { smartWallet } from "../../wallets/create-wallet.js";
1
+ export { smartWallet } from "../../wallets/smart/smart-wallet.js";
2
2
 
3
3
  export type {
4
4
  SmartWalletConnectionOptions,
@@ -1,13 +1,17 @@
1
+ // --- KEEEP IN SYNC with exports/react-native/wallets.ts ---
2
+
1
3
  export {
2
4
  createWallet,
3
- smartWallet,
5
+ walletConnect,
6
+ } from "../wallets/create-wallet.js";
7
+ export {
4
8
  inAppWallet,
5
9
  /**
6
10
  * @deprecated use inAppWallet instead
7
11
  */
8
12
  inAppWallet as embeddedWallet,
9
- walletConnect,
10
- } from "../wallets/create-wallet.js";
13
+ } from "../wallets/in-app/web/in-app.js";
14
+ export { smartWallet } from "../wallets/smart/smart-wallet.js";
11
15
 
12
16
  export type { Wallet, Account } from "../wallets/interfaces/wallet.js";
13
17
  export type { ConnectionStatus } from "../wallets/manager/index.js";
@@ -916,7 +916,7 @@ function InAppWalletUserInfo(props: {
916
916
  queryKey: ["in-app-wallet-user", client, account?.address],
917
917
  queryFn: async () => {
918
918
  const { getUserEmail, getUserPhoneNumber } = await import(
919
- "../../../../wallets/in-app/core/authentication/index.js"
919
+ "../../../../wallets/in-app/web/lib/auth/index.js"
920
920
  );
921
921
 
922
922
  const [email, phone] = await Promise.all([
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { useCallback, useEffect, useRef, useState } from "react";
3
- import { preAuthenticate } from "../../../../wallets/in-app/core/authentication/index.js";
4
3
  import type { SendEmailOtpReturnType } from "../../../../wallets/in-app/core/authentication/type.js";
4
+ import { preAuthenticate } from "../../../../wallets/in-app/web/lib/auth/index.js";
5
5
  import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
6
6
  import { useCustomTheme } from "../../../core/design-system/CustomThemeProvider.js";
7
7
  import { fontSize } from "../../../core/design-system/index.js";
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.29.2";
1
+ export const version = "5.29.3-nightly-476b6cc271b0891fa01fb09ca509c564b850ccfa-20240614185219";
@@ -0,0 +1,108 @@
1
+ /**
2
+ * internal helper functions
3
+ */
4
+
5
+ import type { ProviderInterface } from "@coinbase/wallet-sdk";
6
+ import { trackConnect } from "../../analytics/track.js";
7
+ import type { Chain } from "../../chains/types.js";
8
+ import { COINBASE } from "../constants.js";
9
+ import type { Account, Wallet } from "../interfaces/wallet.js";
10
+ import { createWalletEmitter } from "../wallet-emitter.js";
11
+ import type { CreateWalletArgs } from "../wallet-types.js";
12
+
13
+ /**
14
+ * @internal
15
+ */
16
+ export function coinbaseWalletSDK(args: {
17
+ createOptions?: CreateWalletArgs<typeof COINBASE>[1];
18
+ providerFactory: () => Promise<ProviderInterface>;
19
+ }): Wallet<typeof COINBASE> {
20
+ const { createOptions } = args;
21
+ const emitter = createWalletEmitter<typeof COINBASE>();
22
+ let account: Account | undefined = undefined;
23
+ let chain: Chain | undefined = undefined;
24
+
25
+ function reset() {
26
+ account = undefined;
27
+ chain = undefined;
28
+ }
29
+
30
+ let handleDisconnect = async () => {};
31
+
32
+ let handleSwitchChain = async (newChain: Chain) => {
33
+ chain = newChain;
34
+ };
35
+
36
+ const unsubscribeChainChanged = emitter.subscribe(
37
+ "chainChanged",
38
+ (newChain) => {
39
+ chain = newChain;
40
+ },
41
+ );
42
+
43
+ const unsubscribeDisconnect = emitter.subscribe("disconnect", () => {
44
+ reset();
45
+ unsubscribeChainChanged();
46
+ unsubscribeDisconnect();
47
+ });
48
+
49
+ emitter.subscribe("accountChanged", (_account) => {
50
+ account = _account;
51
+ });
52
+
53
+ return {
54
+ id: COINBASE,
55
+ subscribe: emitter.subscribe,
56
+ getChain: () => chain,
57
+ getConfig: () => createOptions,
58
+ getAccount: () => account,
59
+ autoConnect: async (options) => {
60
+ const { autoConnectCoinbaseWalletSDK } = await import(
61
+ "./coinbaseSDKWallet.js"
62
+ );
63
+ const provider = await args.providerFactory();
64
+ const [connectedAccount, connectedChain, doDisconnect, doSwitchChain] =
65
+ await autoConnectCoinbaseWalletSDK(options, emitter, provider);
66
+ // set the states
67
+ account = connectedAccount;
68
+ chain = connectedChain;
69
+ handleDisconnect = doDisconnect;
70
+ handleSwitchChain = doSwitchChain;
71
+ trackConnect({
72
+ client: options.client,
73
+ walletType: COINBASE,
74
+ walletAddress: account.address,
75
+ });
76
+ // return account
77
+ return account;
78
+ },
79
+ connect: async (options) => {
80
+ const { connectCoinbaseWalletSDK } = await import(
81
+ "./coinbaseSDKWallet.js"
82
+ );
83
+ const provider = await args.providerFactory();
84
+ const [connectedAccount, connectedChain, doDisconnect, doSwitchChain] =
85
+ await connectCoinbaseWalletSDK(options, emitter, provider);
86
+
87
+ // set the states
88
+ account = connectedAccount;
89
+ chain = connectedChain;
90
+ handleDisconnect = doDisconnect;
91
+ handleSwitchChain = doSwitchChain;
92
+ trackConnect({
93
+ client: options.client,
94
+ walletType: COINBASE,
95
+ walletAddress: account.address,
96
+ });
97
+ // return account
98
+ return account;
99
+ },
100
+ disconnect: async () => {
101
+ reset();
102
+ await handleDisconnect();
103
+ },
104
+ switchChain: async (newChain) => {
105
+ await handleSwitchChain(newChain);
106
+ },
107
+ };
108
+ }
@@ -1,7 +1,29 @@
1
1
  import { configure } from "@coinbase/wallet-mobile-sdk";
2
+ import type { ProviderInterface } from "@coinbase/wallet-sdk";
2
3
  import type { Chain } from "../../chains/types.js";
4
+ import type { COINBASE } from "../constants.js";
5
+ import type { CreateWalletArgs } from "../wallet-types.js";
3
6
 
4
- export async function initMobileProvider(args: {
7
+ let _provider: ProviderInterface | undefined;
8
+
9
+ /**
10
+ * @internal
11
+ */
12
+ export async function getCoinbaseMobileProvider(
13
+ options?: CreateWalletArgs<typeof COINBASE>[1],
14
+ ): Promise<ProviderInterface> {
15
+ if (!_provider) {
16
+ const mobileProvider: ProviderInterface = (await initMobileProvider({
17
+ chain: options?.chains ? options.chains[0] : undefined,
18
+ ...options?.mobileConfig,
19
+ })) as unknown as ProviderInterface;
20
+ _provider = mobileProvider;
21
+ return mobileProvider;
22
+ }
23
+ return _provider;
24
+ }
25
+
26
+ async function initMobileProvider(args: {
5
27
  chain?: Chain;
6
28
  callbackURL?: string;
7
29
  hostURL?: string;
@@ -26,7 +26,6 @@ import {
26
26
  stringToHex,
27
27
  uint8ArrayToHex,
28
28
  } from "../../utils/encoding/hex.js";
29
- import { isReactNative } from "../../utils/platform.js";
30
29
  import { parseTypedData } from "../../utils/signatures/helpers/parseTypedData.js";
31
30
  import { COINBASE } from "../constants.js";
32
31
  import type {
@@ -128,20 +127,13 @@ export type CoinbaseSDKWalletConnectionOptions = {
128
127
  // this should be ok since all the creation options are provided at build time
129
128
  let _provider: ProviderInterface | undefined;
130
129
 
131
- async function getCoinbaseProvider(
130
+ /**
131
+ * @internal
132
+ */
133
+ export async function getCoinbaseWebProvider(
132
134
  options?: CreateWalletArgs<typeof COINBASE>[1],
133
135
  ): Promise<ProviderInterface> {
134
136
  if (!_provider) {
135
- if (isReactNative()) {
136
- const { initMobileProvider } = require("./coinbaseMobileSDK.js");
137
- const mobileProvider = initMobileProvider({
138
- chain: options?.chains ? options.chains[0] : undefined,
139
- ...options?.mobileConfig,
140
- });
141
- _provider = mobileProvider;
142
- return mobileProvider;
143
- }
144
-
145
137
  const client = new CoinbaseWalletSDK({
146
138
  appName: options?.appMetadata?.name || getDefaultAppMetadata().name,
147
139
  appChainIds: options?.chains
@@ -186,7 +178,7 @@ export async function coinbaseSDKWalletGetCapabilities(args: {
186
178
  }
187
179
 
188
180
  const config = wallet.getConfig();
189
- const provider = await getCoinbaseProvider(config);
181
+ const provider = await getCoinbaseWebProvider(config);
190
182
  try {
191
183
  return (await provider.request({
192
184
  method: "wallet_getCapabilities",
@@ -212,7 +204,7 @@ export async function coinbaseSDKWalletSendCalls(args: {
212
204
  const { wallet, params } = args;
213
205
 
214
206
  const config = wallet.getConfig();
215
- const provider = await getCoinbaseProvider(config);
207
+ const provider = await getCoinbaseWebProvider(config);
216
208
 
217
209
  try {
218
210
  return (await provider.request({
@@ -238,7 +230,7 @@ export async function coinbaseSDKWalletShowCallsStatus(args: {
238
230
  }) {
239
231
  const { wallet, bundleId } = args;
240
232
 
241
- const provider = await getCoinbaseProvider(wallet.getConfig());
233
+ const provider = await getCoinbaseWebProvider(wallet.getConfig());
242
234
 
243
235
  try {
244
236
  return await provider.request({
@@ -265,7 +257,7 @@ export async function coinbaseSDKWalletGetCallsStatus(args: {
265
257
  const { wallet, bundleId } = args;
266
258
 
267
259
  const config = wallet.getConfig();
268
- const provider = await getCoinbaseProvider(config);
260
+ const provider = await getCoinbaseWebProvider(config);
269
261
 
270
262
  return provider.request({
271
263
  method: "wallet_getCallsStatus",
@@ -402,10 +394,9 @@ function onConnect(
402
394
  */
403
395
  export async function connectCoinbaseWalletSDK(
404
396
  options: WalletConnectionOption<typeof COINBASE>,
405
- createOptions: CreateWalletArgs<typeof COINBASE>[1],
406
397
  emitter: WalletEmitter<typeof COINBASE>,
398
+ provider: ProviderInterface,
407
399
  ): Promise<ReturnType<typeof onConnect>> {
408
- const provider = await getCoinbaseProvider(createOptions);
409
400
  const accounts = (await provider.request({
410
401
  method: "eth_requestAccounts",
411
402
  })) as string[];
@@ -443,11 +434,9 @@ export async function connectCoinbaseWalletSDK(
443
434
  */
444
435
  export async function autoConnectCoinbaseWalletSDK(
445
436
  options: WalletConnectionOption<typeof COINBASE>,
446
- createOptions: CreateWalletArgs<typeof COINBASE>[1],
447
437
  emitter: WalletEmitter<typeof COINBASE>,
438
+ provider: ProviderInterface,
448
439
  ): Promise<ReturnType<typeof onConnect>> {
449
- const provider = await getCoinbaseProvider(createOptions);
450
-
451
440
  // connected accounts
452
441
  const addresses = (await provider.request({
453
442
  method: "eth_accounts",