thirdweb 5.83.2-nightly-332536bdee05b6fb3b36d33761381826279b48f6-20250113000321 → 5.84.0-nightly-0fdfb8aa778a344aa847503f668e48feb5f72548-20250115000312

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 (263) hide show
  1. package/dist/cjs/auth/is-erc6492-signature.js +2 -2
  2. package/dist/cjs/auth/is-erc6492-signature.js.map +1 -1
  3. package/dist/cjs/auth/parse-erc6492-signature.js +10 -4
  4. package/dist/cjs/auth/parse-erc6492-signature.js.map +1 -1
  5. package/dist/cjs/auth/verify-hash.js +12 -11
  6. package/dist/cjs/auth/verify-hash.js.map +1 -1
  7. package/dist/cjs/auth/verify-signature.js +13 -5
  8. package/dist/cjs/auth/verify-signature.js.map +1 -1
  9. package/dist/cjs/auth/verify-typed-data.js +2 -2
  10. package/dist/cjs/auth/verify-typed-data.js.map +1 -1
  11. package/dist/cjs/contract/deployment/utils/create-2-factory.js +4 -3
  12. package/dist/cjs/contract/deployment/utils/create-2-factory.js.map +1 -1
  13. package/dist/cjs/contract/verification/constructor-params.js +5 -12
  14. package/dist/cjs/contract/verification/constructor-params.js.map +1 -1
  15. package/dist/cjs/exports/utils.js +9 -6
  16. package/dist/cjs/exports/utils.js.map +1 -1
  17. package/dist/cjs/exports/wallets.js +3 -1
  18. package/dist/cjs/exports/wallets.js.map +1 -1
  19. package/dist/cjs/extensions/ens/resolve-l2-name.js +10 -3
  20. package/dist/cjs/extensions/ens/resolve-l2-name.js.map +1 -1
  21. package/dist/cjs/extensions/erc1155/read/getNFTs.js +2 -2
  22. package/dist/cjs/extensions/erc1155/read/getNFTs.js.map +1 -1
  23. package/dist/cjs/extensions/erc1155/write/mintTo.js +2 -2
  24. package/dist/cjs/extensions/erc1155/write/mintTo.js.map +1 -1
  25. package/dist/cjs/extensions/erc1155/write/mintToBatch.js +2 -2
  26. package/dist/cjs/extensions/erc1155/write/mintToBatch.js.map +1 -1
  27. package/dist/cjs/extensions/erc1155/write/sigMint.js +2 -2
  28. package/dist/cjs/extensions/erc1155/write/sigMint.js.map +1 -1
  29. package/dist/cjs/extensions/modules/ClaimableERC1155/setClaimConditions.js +3 -2
  30. package/dist/cjs/extensions/modules/ClaimableERC1155/setClaimConditions.js.map +1 -1
  31. package/dist/cjs/extensions/modules/MintableERC1155/mintWithRole.js +2 -2
  32. package/dist/cjs/extensions/modules/MintableERC1155/mintWithRole.js.map +1 -1
  33. package/dist/cjs/extensions/modules/MintableERC1155/mintWithSignature.js +2 -2
  34. package/dist/cjs/extensions/modules/MintableERC1155/mintWithSignature.js.map +1 -1
  35. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js +10 -131
  36. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  37. package/dist/cjs/react/core/hooks/wallets/useSendToken.js +2 -1
  38. package/dist/cjs/react/core/hooks/wallets/useSendToken.js.map +1 -1
  39. package/dist/cjs/react/native/hooks/wallets/useAutoConnect.js.map +1 -1
  40. package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js +1 -1
  41. package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
  42. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +3 -1
  43. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  44. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +2 -1
  45. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  46. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js +1 -1
  47. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js.map +1 -1
  48. package/dist/cjs/react/web/ui/ConnectWallet/useConnectModal.js +1 -1
  49. package/dist/cjs/react/web/ui/ConnectWallet/useConnectModal.js.map +1 -1
  50. package/dist/cjs/react/web/wallets/in-app/WalletAuth.js +1 -1
  51. package/dist/cjs/react/web/wallets/in-app/WalletAuth.js.map +1 -1
  52. package/dist/cjs/utils/abi/encodeAbiParameters.js +10 -11
  53. package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  54. package/dist/cjs/utils/ens/isValidENSName.js +50 -0
  55. package/dist/cjs/utils/ens/isValidENSName.js.map +1 -0
  56. package/dist/cjs/utils/extensions/drops/convert-quantity.js +2 -2
  57. package/dist/cjs/utils/extensions/drops/convert-quantity.js.map +1 -1
  58. package/dist/cjs/utils/extensions/drops/get-multicall-set-claim-claim-conditon-transactions.js +3 -3
  59. package/dist/cjs/utils/extensions/drops/get-multicall-set-claim-claim-conditon-transactions.js.map +1 -1
  60. package/dist/cjs/utils/timeoutPromise.js.map +1 -0
  61. package/dist/cjs/version.js +1 -1
  62. package/dist/cjs/wallets/connection/autoConnect.js +54 -0
  63. package/dist/cjs/wallets/connection/autoConnect.js.map +1 -0
  64. package/dist/cjs/wallets/connection/autoConnectCore.js +135 -0
  65. package/dist/cjs/wallets/connection/autoConnectCore.js.map +1 -0
  66. package/dist/cjs/wallets/connection/types.js.map +1 -0
  67. package/dist/cjs/{react/web/wallets → wallets}/defaultWallets.js +2 -2
  68. package/dist/cjs/wallets/defaultWallets.js.map +1 -0
  69. package/dist/cjs/wallets/in-app/web/lib/get-url-token.js +1 -1
  70. package/dist/cjs/wallets/in-app/web/lib/get-url-token.js.map +1 -1
  71. package/dist/esm/auth/is-erc6492-signature.js +2 -2
  72. package/dist/esm/auth/is-erc6492-signature.js.map +1 -1
  73. package/dist/esm/auth/parse-erc6492-signature.js +10 -4
  74. package/dist/esm/auth/parse-erc6492-signature.js.map +1 -1
  75. package/dist/esm/auth/verify-hash.js +12 -11
  76. package/dist/esm/auth/verify-hash.js.map +1 -1
  77. package/dist/esm/auth/verify-signature.js +13 -5
  78. package/dist/esm/auth/verify-signature.js.map +1 -1
  79. package/dist/esm/auth/verify-typed-data.js +2 -2
  80. package/dist/esm/auth/verify-typed-data.js.map +1 -1
  81. package/dist/esm/contract/deployment/utils/create-2-factory.js +4 -3
  82. package/dist/esm/contract/deployment/utils/create-2-factory.js.map +1 -1
  83. package/dist/esm/contract/verification/constructor-params.js +5 -12
  84. package/dist/esm/contract/verification/constructor-params.js.map +1 -1
  85. package/dist/esm/exports/utils.js +3 -1
  86. package/dist/esm/exports/utils.js.map +1 -1
  87. package/dist/esm/exports/wallets.js +1 -0
  88. package/dist/esm/exports/wallets.js.map +1 -1
  89. package/dist/esm/extensions/ens/resolve-l2-name.js +11 -4
  90. package/dist/esm/extensions/ens/resolve-l2-name.js.map +1 -1
  91. package/dist/esm/extensions/erc1155/read/getNFTs.js +1 -1
  92. package/dist/esm/extensions/erc1155/read/getNFTs.js.map +1 -1
  93. package/dist/esm/extensions/erc1155/write/mintTo.js +1 -1
  94. package/dist/esm/extensions/erc1155/write/mintTo.js.map +1 -1
  95. package/dist/esm/extensions/erc1155/write/mintToBatch.js +1 -1
  96. package/dist/esm/extensions/erc1155/write/mintToBatch.js.map +1 -1
  97. package/dist/esm/extensions/erc1155/write/sigMint.js +1 -1
  98. package/dist/esm/extensions/erc1155/write/sigMint.js.map +1 -1
  99. package/dist/esm/extensions/modules/ClaimableERC1155/setClaimConditions.js +2 -1
  100. package/dist/esm/extensions/modules/ClaimableERC1155/setClaimConditions.js.map +1 -1
  101. package/dist/esm/extensions/modules/MintableERC1155/mintWithRole.js +1 -1
  102. package/dist/esm/extensions/modules/MintableERC1155/mintWithRole.js.map +1 -1
  103. package/dist/esm/extensions/modules/MintableERC1155/mintWithSignature.js +1 -1
  104. package/dist/esm/extensions/modules/MintableERC1155/mintWithSignature.js.map +1 -1
  105. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js +10 -130
  106. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  107. package/dist/esm/react/core/hooks/wallets/useSendToken.js +2 -1
  108. package/dist/esm/react/core/hooks/wallets/useSendToken.js.map +1 -1
  109. package/dist/esm/react/native/hooks/wallets/useAutoConnect.js.map +1 -1
  110. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js +1 -1
  111. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
  112. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +3 -1
  113. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  114. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +2 -1
  115. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  116. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js +1 -1
  117. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js.map +1 -1
  118. package/dist/esm/react/web/ui/ConnectWallet/useConnectModal.js +1 -1
  119. package/dist/esm/react/web/ui/ConnectWallet/useConnectModal.js.map +1 -1
  120. package/dist/esm/react/web/wallets/in-app/WalletAuth.js +1 -1
  121. package/dist/esm/react/web/wallets/in-app/WalletAuth.js.map +1 -1
  122. package/dist/esm/utils/abi/encodeAbiParameters.js +10 -11
  123. package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
  124. package/dist/esm/utils/ens/isValidENSName.js +47 -0
  125. package/dist/esm/utils/ens/isValidENSName.js.map +1 -0
  126. package/dist/esm/utils/extensions/drops/convert-quantity.js +1 -1
  127. package/dist/esm/utils/extensions/drops/convert-quantity.js.map +1 -1
  128. package/dist/esm/utils/extensions/drops/get-multicall-set-claim-claim-conditon-transactions.js +1 -1
  129. package/dist/esm/utils/extensions/drops/get-multicall-set-claim-claim-conditon-transactions.js.map +1 -1
  130. package/dist/esm/utils/timeoutPromise.js.map +1 -0
  131. package/dist/esm/version.js +1 -1
  132. package/dist/esm/wallets/connection/autoConnect.js +50 -0
  133. package/dist/esm/wallets/connection/autoConnect.js.map +1 -0
  134. package/dist/esm/wallets/connection/autoConnectCore.js +130 -0
  135. package/dist/esm/wallets/connection/autoConnectCore.js.map +1 -0
  136. package/dist/esm/wallets/connection/types.js.map +1 -0
  137. package/dist/esm/{react/web/wallets → wallets}/defaultWallets.js +2 -2
  138. package/dist/esm/wallets/defaultWallets.js.map +1 -0
  139. package/dist/esm/wallets/in-app/web/lib/get-url-token.js +1 -1
  140. package/dist/esm/wallets/in-app/web/lib/get-url-token.js.map +1 -1
  141. package/dist/types/auth/parse-erc6492-signature.d.ts.map +1 -1
  142. package/dist/types/auth/verify-hash.d.ts +2 -2
  143. package/dist/types/auth/verify-hash.d.ts.map +1 -1
  144. package/dist/types/auth/verify-signature.d.ts +6 -3
  145. package/dist/types/auth/verify-signature.d.ts.map +1 -1
  146. package/dist/types/auth/verify-typed-data.d.ts +5 -4
  147. package/dist/types/auth/verify-typed-data.d.ts.map +1 -1
  148. package/dist/types/contract/deployment/utils/create-2-factory.d.ts.map +1 -1
  149. package/dist/types/contract/verification/constructor-params.d.ts +2 -2
  150. package/dist/types/contract/verification/constructor-params.d.ts.map +1 -1
  151. package/dist/types/event/types.d.ts +3 -2
  152. package/dist/types/event/types.d.ts.map +1 -1
  153. package/dist/types/exports/react.d.ts +1 -1
  154. package/dist/types/exports/react.d.ts.map +1 -1
  155. package/dist/types/exports/react.native.d.ts +1 -1
  156. package/dist/types/exports/react.native.d.ts.map +1 -1
  157. package/dist/types/exports/utils.d.ts +2 -1
  158. package/dist/types/exports/utils.d.ts.map +1 -1
  159. package/dist/types/exports/wallets.d.ts +2 -0
  160. package/dist/types/exports/wallets.d.ts.map +1 -1
  161. package/dist/types/extensions/ens/resolve-l2-name.d.ts.map +1 -1
  162. package/dist/types/extensions/erc1155/write/mintTo.d.ts +1 -1
  163. package/dist/types/extensions/erc1155/write/mintTo.d.ts.map +1 -1
  164. package/dist/types/extensions/erc1155/write/mintToBatch.d.ts +1 -1
  165. package/dist/types/extensions/erc1155/write/mintToBatch.d.ts.map +1 -1
  166. package/dist/types/extensions/modules/ClaimableERC1155/setClaimConditions.d.ts.map +1 -1
  167. package/dist/types/extensions/modules/MintableERC1155/mintWithRole.d.ts +1 -1
  168. package/dist/types/extensions/modules/MintableERC1155/mintWithRole.d.ts.map +1 -1
  169. package/dist/types/extensions/modules/MintableERC1155/mintWithSignature.d.ts +1 -1
  170. package/dist/types/extensions/modules/MintableERC1155/mintWithSignature.d.ts.map +1 -1
  171. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts +1 -13
  172. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  173. package/dist/types/react/core/hooks/wallets/useSendToken.d.ts.map +1 -1
  174. package/dist/types/react/native/hooks/wallets/useAutoConnect.d.ts +1 -1
  175. package/dist/types/react/native/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  176. package/dist/types/react/native/ui/AutoConnect/AutoConnect.d.ts +1 -1
  177. package/dist/types/react/web/hooks/wallets/useAutoConnect.d.ts +1 -1
  178. package/dist/types/react/web/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  179. package/dist/types/react/web/ui/AutoConnect/AutoConnect.d.ts +1 -1
  180. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts +2 -0
  181. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
  182. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts +1 -0
  183. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
  184. package/dist/types/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.d.ts.map +1 -1
  185. package/dist/types/react/web/ui/ConnectWallet/useConnectModal.d.ts.map +1 -1
  186. package/dist/types/react/web/wallets/in-app/WalletAuth.d.ts.map +1 -1
  187. package/dist/types/utils/ens/isValidENSName.d.ts +14 -0
  188. package/dist/types/utils/ens/isValidENSName.d.ts.map +1 -0
  189. package/dist/types/utils/timeoutPromise.d.ts.map +1 -0
  190. package/dist/types/version.d.ts +1 -1
  191. package/dist/types/wallets/connection/autoConnect.d.ts +27 -0
  192. package/dist/types/wallets/connection/autoConnect.d.ts.map +1 -0
  193. package/dist/types/wallets/connection/autoConnectCore.d.ts +32 -0
  194. package/dist/types/wallets/connection/autoConnectCore.d.ts.map +1 -0
  195. package/dist/types/{react/core/hooks → wallets}/connection/types.d.ts +5 -5
  196. package/dist/types/wallets/connection/types.d.ts.map +1 -0
  197. package/dist/types/wallets/defaultWallets.d.ts +11 -0
  198. package/dist/types/wallets/defaultWallets.d.ts.map +1 -0
  199. package/package.json +1 -1
  200. package/src/auth/is-erc6492-signature.ts +2 -2
  201. package/src/auth/parse-erc6492-signature.ts +10 -4
  202. package/src/auth/verify-hash.ts +16 -20
  203. package/src/auth/verify-signature.test.ts +48 -2
  204. package/src/auth/verify-signature.ts +24 -7
  205. package/src/auth/verify-typed-data.ts +9 -7
  206. package/src/contract/deployment/utils/create-2-factory.ts +4 -3
  207. package/src/contract/verification/constructor-params.ts +8 -15
  208. package/src/event/types.ts +6 -5
  209. package/src/exports/react.native.ts +1 -1
  210. package/src/exports/react.ts +1 -1
  211. package/src/exports/utils.ts +4 -1
  212. package/src/exports/wallets.ts +2 -0
  213. package/src/extensions/ens/resolve-l2-name.ts +21 -5
  214. package/src/extensions/erc1155/read/getNFTs.ts +1 -1
  215. package/src/extensions/erc1155/write/mintTo.ts +1 -1
  216. package/src/extensions/erc1155/write/mintToBatch.ts +1 -1
  217. package/src/extensions/erc1155/write/sigMint.ts +1 -1
  218. package/src/extensions/modules/ClaimableERC1155/setClaimConditions.ts +2 -1
  219. package/src/extensions/modules/MintableERC1155/mintWithRole.ts +1 -1
  220. package/src/extensions/modules/MintableERC1155/mintWithSignature.ts +1 -1
  221. package/src/react/core/hooks/wallets/useAutoConnect.ts +12 -158
  222. package/src/react/core/hooks/wallets/useAutoConnectCore.test.tsx +1 -31
  223. package/src/react/core/hooks/wallets/useSendToken.ts +2 -1
  224. package/src/react/native/hooks/wallets/useAutoConnect.ts +1 -1
  225. package/src/react/native/ui/AutoConnect/AutoConnect.tsx +1 -1
  226. package/src/react/web/hooks/wallets/useAutoConnect.ts +2 -2
  227. package/src/react/web/ui/AutoConnect/AutoConnect.tsx +1 -1
  228. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +3 -1
  229. package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +2 -1
  230. package/src/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.tsx +1 -1
  231. package/src/react/web/ui/ConnectWallet/useConnectModal.tsx +1 -1
  232. package/src/react/web/wallets/in-app/WalletAuth.tsx +1 -1
  233. package/src/utils/abi/encodeAbiParameters.ts +15 -11
  234. package/src/utils/ens/isValidENSName.test.ts +39 -0
  235. package/src/utils/ens/isValidENSName.ts +54 -0
  236. package/src/utils/extensions/drops/convert-quantity.ts +1 -1
  237. package/src/utils/extensions/drops/get-multicall-set-claim-claim-conditon-transactions.ts +1 -1
  238. package/src/version.ts +1 -1
  239. package/src/wallets/connection/autoConnect.test.ts +67 -0
  240. package/src/wallets/connection/autoConnect.ts +58 -0
  241. package/src/wallets/connection/autoConnectCore.test.ts +403 -0
  242. package/src/wallets/connection/autoConnectCore.ts +184 -0
  243. package/src/{react/core/hooks → wallets}/connection/types.ts +5 -5
  244. package/src/{react/web/wallets → wallets}/defaultWallets.ts +5 -10
  245. package/src/wallets/in-app/web/lib/get-url-token.ts +1 -1
  246. package/src/wallets/smart/smart-wallet-integration.test.ts +1 -0
  247. package/dist/cjs/react/core/hooks/connection/types.js.map +0 -1
  248. package/dist/cjs/react/core/utils/timeoutPromise.js.map +0 -1
  249. package/dist/cjs/react/web/wallets/defaultWallets.js.map +0 -1
  250. package/dist/esm/react/core/hooks/connection/types.js.map +0 -1
  251. package/dist/esm/react/core/utils/timeoutPromise.js.map +0 -1
  252. package/dist/esm/react/web/wallets/defaultWallets.js.map +0 -1
  253. package/dist/types/react/core/hooks/connection/types.d.ts.map +0 -1
  254. package/dist/types/react/core/utils/timeoutPromise.d.ts.map +0 -1
  255. package/dist/types/react/web/wallets/defaultWallets.d.ts +0 -11
  256. package/dist/types/react/web/wallets/defaultWallets.d.ts.map +0 -1
  257. /package/dist/cjs/{react/core/utils → utils}/timeoutPromise.js +0 -0
  258. /package/dist/cjs/{react/core/hooks → wallets}/connection/types.js +0 -0
  259. /package/dist/esm/{react/core/utils → utils}/timeoutPromise.js +0 -0
  260. /package/dist/esm/{react/core/hooks → wallets}/connection/types.js +0 -0
  261. /package/dist/types/{react/core/utils → utils}/timeoutPromise.d.ts +0 -0
  262. /package/src/{react/core/utils → utils}/timeoutPromise.test.ts +0 -0
  263. /package/src/{react/core/utils → utils}/timeoutPromise.ts +0 -0
@@ -0,0 +1,184 @@
1
+ import type { Chain } from "../../chains/types.js";
2
+ import type { ThirdwebClient } from "../../client/client.js";
3
+ import type { AsyncStorage } from "../../utils/storage/AsyncStorage.js";
4
+ import { timeoutPromise } from "../../utils/timeoutPromise.js";
5
+ import { isEcosystemWallet } from "../ecosystem/is-ecosystem-wallet.js";
6
+ import { ClientScopedStorage } from "../in-app/core/authentication/client-scoped-storage.js";
7
+ import type {
8
+ AuthArgsType,
9
+ AuthStoredTokenWithCookieReturnType,
10
+ } from "../in-app/core/authentication/types.js";
11
+ import { getUrlToken } from "../in-app/web/lib/get-url-token.js";
12
+ import type { Wallet } from "../interfaces/wallet.js";
13
+ import {
14
+ type ConnectionManager,
15
+ getLastConnectedChain,
16
+ getStoredActiveWalletId,
17
+ getStoredConnectedWalletIds,
18
+ } from "../manager/index.js";
19
+ import type { WalletId } from "../wallet-types.js";
20
+ import type { AutoConnectProps } from "./types.js";
21
+
22
+ /**
23
+ * @internal
24
+ */
25
+ export const autoConnectCore = async ({
26
+ storage,
27
+ props,
28
+ createWalletFn,
29
+ manager,
30
+ connectOverride,
31
+ getInstalledWallets,
32
+ setLastAuthProvider,
33
+ }: {
34
+ storage: AsyncStorage;
35
+ props: AutoConnectProps & { wallets: Wallet[] };
36
+ createWalletFn: (id: WalletId) => Wallet;
37
+ manager: ConnectionManager;
38
+ connectOverride?: (
39
+ walletOrFn: Wallet | (() => Promise<Wallet>),
40
+ ) => Promise<Wallet | null>;
41
+ getInstalledWallets?: () => Wallet[];
42
+ setLastAuthProvider?: (
43
+ authProvider: AuthArgsType["strategy"],
44
+ storage: AsyncStorage,
45
+ ) => Promise<void>;
46
+ }): Promise<boolean> => {
47
+ const { wallets, onConnect } = props;
48
+ const timeout = props.timeout ?? 15000;
49
+
50
+ let autoConnected = false;
51
+ manager.isAutoConnecting.setValue(true);
52
+
53
+ let [lastConnectedWalletIds, lastActiveWalletId] = await Promise.all([
54
+ getStoredConnectedWalletIds(storage),
55
+ getStoredActiveWalletId(storage),
56
+ ]);
57
+
58
+ const { authResult, walletId, authProvider, authCookie } = getUrlToken();
59
+ const wallet = wallets.find((w) => w.id === walletId);
60
+
61
+ // If an auth cookie is found and this site supports the wallet, we'll set the auth cookie in the client storage
62
+ if (authCookie && wallet) {
63
+ const clientStorage = new ClientScopedStorage({
64
+ storage,
65
+ clientId: props.client.clientId,
66
+ ecosystem: isEcosystemWallet(wallet)
67
+ ? {
68
+ id: wallet.id,
69
+ partnerId: wallet.getConfig()?.partnerId,
70
+ }
71
+ : undefined,
72
+ });
73
+ await clientStorage.saveAuthCookie(authCookie);
74
+ }
75
+
76
+ if (walletId) {
77
+ lastActiveWalletId = walletId;
78
+ lastConnectedWalletIds = lastConnectedWalletIds?.includes(walletId)
79
+ ? lastConnectedWalletIds
80
+ : [walletId, ...(lastConnectedWalletIds || [])];
81
+ }
82
+ if (authProvider) {
83
+ await setLastAuthProvider?.(authProvider, storage);
84
+ }
85
+
86
+ // if no wallets were last connected or we didn't receive an auth token
87
+ if (!lastConnectedWalletIds) {
88
+ return autoConnected;
89
+ }
90
+
91
+ // this flow can actually be used for a first connection in the case of a redirect
92
+ // in that case, we default to the passed chain to connect to
93
+ const lastConnectedChain =
94
+ (await getLastConnectedChain(storage)) || props.chain;
95
+ const availableWallets = [...wallets, ...(getInstalledWallets?.() ?? [])];
96
+ const activeWallet =
97
+ lastActiveWalletId &&
98
+ (availableWallets.find((w) => w.id === lastActiveWalletId) ||
99
+ createWalletFn(lastActiveWalletId));
100
+
101
+ if (activeWallet) {
102
+ manager.activeWalletConnectionStatusStore.setValue("connecting"); // only set connecting status if we are connecting the last active EOA
103
+ await timeoutPromise(
104
+ handleWalletConnection({
105
+ wallet: activeWallet,
106
+ client: props.client,
107
+ lastConnectedChain,
108
+ authResult,
109
+ }),
110
+ {
111
+ ms: timeout,
112
+ message: `AutoConnect timeout: ${timeout}ms limit exceeded.`,
113
+ },
114
+ ).catch((err) => {
115
+ console.warn(err.message);
116
+ if (props.onTimeout) {
117
+ props.onTimeout();
118
+ }
119
+ });
120
+
121
+ try {
122
+ // connected wallet could be activeWallet or smart wallet
123
+ const connectedWallet = await (connectOverride
124
+ ? connectOverride(activeWallet)
125
+ : manager.connect(activeWallet, {
126
+ client: props.client,
127
+ accountAbstraction: props.accountAbstraction,
128
+ }));
129
+ if (connectedWallet) {
130
+ autoConnected = true;
131
+ try {
132
+ onConnect?.(connectedWallet);
133
+ } catch {
134
+ // ignore
135
+ }
136
+ } else {
137
+ manager.activeWalletConnectionStatusStore.setValue("disconnected");
138
+ }
139
+ } catch (e) {
140
+ if (e instanceof Error) {
141
+ console.warn("Error auto connecting wallet:", e.message);
142
+ }
143
+ manager.activeWalletConnectionStatusStore.setValue("disconnected");
144
+ }
145
+ } else {
146
+ manager.activeWalletConnectionStatusStore.setValue("disconnected");
147
+ }
148
+
149
+ // then connect wallets that were last connected but were not set as active
150
+ const otherWallets = availableWallets.filter(
151
+ (w) => w.id !== lastActiveWalletId && lastConnectedWalletIds.includes(w.id),
152
+ );
153
+ for (const wallet of otherWallets) {
154
+ try {
155
+ await handleWalletConnection({
156
+ wallet,
157
+ client: props.client,
158
+ lastConnectedChain,
159
+ authResult,
160
+ });
161
+ manager.addConnectedWallet(wallet);
162
+ } catch {
163
+ // no-op
164
+ }
165
+ }
166
+ manager.isAutoConnecting.setValue(false);
167
+ return autoConnected; // useQuery needs a return value
168
+ };
169
+
170
+ /**
171
+ * @internal
172
+ */
173
+ export async function handleWalletConnection(props: {
174
+ wallet: Wallet;
175
+ client: ThirdwebClient;
176
+ authResult: AuthStoredTokenWithCookieReturnType | undefined;
177
+ lastConnectedChain: Chain | undefined;
178
+ }) {
179
+ return props.wallet.autoConnect({
180
+ client: props.client,
181
+ chain: props.lastConnectedChain,
182
+ authResult: props.authResult,
183
+ });
184
+ }
@@ -1,8 +1,8 @@
1
- import type { Chain } from "../../../../chains/types.js";
2
- import type { ThirdwebClient } from "../../../../client/client.js";
3
- import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
4
- import type { SmartWalletOptions } from "../../../../wallets/smart/types.js";
5
- import type { AppMetadata } from "../../../../wallets/types.js";
1
+ import type { Chain } from "../../chains/types.js";
2
+ import type { ThirdwebClient } from "../../client/client.js";
3
+ import type { Wallet } from "../../wallets/interfaces/wallet.js";
4
+ import type { SmartWalletOptions } from "../../wallets/smart/types.js";
5
+ import type { AppMetadata } from "../../wallets/types.js";
6
6
 
7
7
  export type AutoConnectProps = {
8
8
  /**
@@ -1,13 +1,8 @@
1
- import type { Chain } from "../../../chains/types.js";
2
- import {
3
- COINBASE,
4
- METAMASK,
5
- RAINBOW,
6
- ZERION,
7
- } from "../../../wallets/constants.js";
8
- import { createWallet } from "../../../wallets/create-wallet.js";
9
- import type { Wallet } from "../../../wallets/interfaces/wallet.js";
10
- import type { AppMetadata } from "../../../wallets/types.js";
1
+ import type { Chain } from "../chains/types.js";
2
+ import { COINBASE, METAMASK, RAINBOW, ZERION } from "./constants.js";
3
+ import { createWallet } from "./create-wallet.js";
4
+ import type { Wallet } from "./interfaces/wallet.js";
5
+ import type { AppMetadata } from "./types.js";
11
6
 
12
7
  /**
13
8
  * @internal
@@ -11,7 +11,7 @@ export function getUrlToken(): {
11
11
  authProvider?: AuthOption;
12
12
  authCookie?: string;
13
13
  } {
14
- if (!window?.location) {
14
+ if (typeof window === "undefined") {
15
15
  // Not in web
16
16
  return {};
17
17
  }
@@ -180,6 +180,7 @@ describe.runIf(process.env.TW_SECRET_KEY).sequential(
180
180
  account: smartAccount,
181
181
  });
182
182
  expect(tx.transactionHash).toHaveLength(66);
183
+ await sleep(1000);
183
184
  const isDeployed = await isContractDeployed(accountContract);
184
185
  expect(isDeployed).toEqual(true);
185
186
  const balance = await balanceOf({
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/connection/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeoutPromise.js","sourceRoot":"","sources":["../../../../../src/react/core/utils/timeoutPromise.ts"],"names":[],"mappings":";;AAIA,wCAoBC;AAxBD;;;GAGG;AACH,SAAgB,cAAc,CAC5B,OAAmB,EACnB,MAAuC;IAEvC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEd,OAAO,CAAC,IAAI,CACV,CAAC,GAAG,EAAE,EAAE;YACN,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultWallets.js","sourceRoot":"","sources":["../../../../../src/react/web/wallets/defaultWallets.ts"],"names":[],"mappings":";;AAcA,8CAeC;AA5BD,gEAKuC;AACvC,wEAAiE;AAIjE;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAGjC;IACC,OAAO;QACL,IAAA,+BAAY,EAAC,OAAO,CAAC;QACrB,IAAA,+BAAY,EAAC,uBAAQ,CAAC;QACtB,IAAA,+BAAY,EAAC,uBAAQ,EAAE;YACrB,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC;QACF,IAAA,+BAAY,EAAC,sBAAO,CAAC;QACrB,IAAA,+BAAY,EAAC,UAAU,CAAC;QACxB,IAAA,+BAAY,EAAC,qBAAM,CAAC;KACrB,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/connection/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeoutPromise.js","sourceRoot":"","sources":["../../../../../src/react/core/utils/timeoutPromise.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAmB,EACnB,MAAuC;IAEvC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEd,OAAO,CAAC,IAAI,CACV,CAAC,GAAG,EAAE,EAAE;YACN,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultWallets.js","sourceRoot":"","sources":["../../../../../src/react/web/wallets/defaultWallets.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,GACP,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAIjE;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAGjC;IACC,OAAO;QACL,YAAY,CAAC,OAAO,CAAC;QACrB,YAAY,CAAC,QAAQ,CAAC;QACtB,YAAY,CAAC,QAAQ,EAAE;YACrB,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC;QACF,YAAY,CAAC,OAAO,CAAC;QACrB,YAAY,CAAC,UAAU,CAAC;QACxB,YAAY,CAAC,MAAM,CAAC;KACrB,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/connection/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;;;;;;;;;;;OAcG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeoutPromise.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/utils/timeoutPromise.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,cAkBxC"}
@@ -1,11 +0,0 @@
1
- import type { Chain } from "../../../chains/types.js";
2
- import type { Wallet } from "../../../wallets/interfaces/wallet.js";
3
- import type { AppMetadata } from "../../../wallets/types.js";
4
- /**
5
- * @internal
6
- */
7
- export declare function getDefaultWallets(options?: {
8
- appMetadata?: AppMetadata;
9
- chains?: Chain[];
10
- }): Wallet[];
11
- //# sourceMappingURL=defaultWallets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultWallets.d.ts","sourceRoot":"","sources":["../../../../../src/react/web/wallets/defaultWallets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAQtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB,GAAG,MAAM,EAAE,CAYX"}