thirdweb 5.44.1 → 5.45.0-nightly-bbb4f1c53f982b1f9de00fb30efbf2c77f155e96-20240809000532

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 (588) hide show
  1. package/dist/cjs/adapters/ethers5.js +3 -2
  2. package/dist/cjs/adapters/ethers5.js.map +1 -1
  3. package/dist/cjs/adapters/wallet-adapter.js +3 -0
  4. package/dist/cjs/adapters/wallet-adapter.js.map +1 -1
  5. package/dist/cjs/auth/constants.js +1 -2
  6. package/dist/cjs/auth/constants.js.map +1 -1
  7. package/dist/cjs/auth/verify-hash.js +1 -1
  8. package/dist/cjs/auth/verify-hash.js.map +1 -1
  9. package/dist/cjs/chains/chain-definitions/abstract-testnet.js +20 -0
  10. package/dist/cjs/chains/chain-definitions/abstract-testnet.js.map +1 -0
  11. package/dist/cjs/chains/chain-definitions/fraxtal-testnet.js +20 -0
  12. package/dist/cjs/chains/chain-definitions/fraxtal-testnet.js.map +1 -0
  13. package/dist/cjs/chains/chain-definitions/mode-testnet.js +20 -0
  14. package/dist/cjs/chains/chain-definitions/mode-testnet.js.map +1 -0
  15. package/dist/cjs/chains/utils.js +7 -0
  16. package/dist/cjs/chains/utils.js.map +1 -1
  17. package/dist/cjs/exports/chains.js +3 -1
  18. package/dist/cjs/exports/chains.js.map +1 -1
  19. package/dist/cjs/exports/react.js +4 -2
  20. package/dist/cjs/exports/react.js.map +1 -1
  21. package/dist/cjs/exports/wallets/in-app.js +2 -2
  22. package/dist/cjs/exports/wallets/in-app.js.map +1 -1
  23. package/dist/cjs/exports/wallets.js +4 -1
  24. package/dist/cjs/exports/wallets.js.map +1 -1
  25. package/dist/cjs/react/core/hooks/others/useProfiles.js +36 -0
  26. package/dist/cjs/react/core/hooks/others/useProfiles.js.map +1 -0
  27. package/dist/cjs/react/core/utils/{socialIcons.js → walletIcon.js} +26 -1
  28. package/dist/cjs/react/core/utils/walletIcon.js.map +1 -0
  29. package/dist/cjs/react/native/ui/components/TokenIcon.js +2 -2
  30. package/dist/cjs/react/native/ui/components/TokenIcon.js.map +1 -1
  31. package/dist/cjs/react/native/ui/connect/ConnectButton.js +13 -8
  32. package/dist/cjs/react/native/ui/connect/ConnectButton.js.map +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +13 -8
  34. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  35. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +22 -5
  36. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  37. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js +2 -2
  38. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js.map +1 -1
  39. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +13 -8
  40. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  41. package/dist/cjs/react/web/ui/ConnectWallet/Modal/screen.js +1 -1
  42. package/dist/cjs/react/web/ui/ConnectWallet/Modal/screen.js.map +1 -1
  43. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js +2 -2
  44. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
  45. package/dist/cjs/react/web/ui/ConnectWallet/icons/AddUserIcon.js +12 -0
  46. package/dist/cjs/react/web/ui/ConnectWallet/icons/AddUserIcon.js.map +1 -0
  47. package/dist/cjs/react/web/ui/ConnectWallet/icons/MultiUserIcon.js +12 -0
  48. package/dist/cjs/react/web/ui/ConnectWallet/icons/MultiUserIcon.js.map +1 -0
  49. package/dist/cjs/react/web/ui/ConnectWallet/locale/de.js +6 -0
  50. package/dist/cjs/react/web/ui/ConnectWallet/locale/de.js.map +1 -1
  51. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js +6 -0
  52. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  53. package/dist/cjs/react/web/ui/ConnectWallet/locale/es.js +6 -0
  54. package/dist/cjs/react/web/ui/ConnectWallet/locale/es.js.map +1 -1
  55. package/dist/cjs/react/web/ui/ConnectWallet/locale/fr.js +6 -0
  56. package/dist/cjs/react/web/ui/ConnectWallet/locale/fr.js.map +1 -1
  57. package/dist/cjs/react/web/ui/ConnectWallet/locale/ja.js +6 -0
  58. package/dist/cjs/react/web/ui/ConnectWallet/locale/ja.js.map +1 -1
  59. package/dist/cjs/react/web/ui/ConnectWallet/locale/kr.js +6 -0
  60. package/dist/cjs/react/web/ui/ConnectWallet/locale/kr.js.map +1 -1
  61. package/dist/cjs/react/web/ui/ConnectWallet/locale/tl.js +6 -0
  62. package/dist/cjs/react/web/ui/ConnectWallet/locale/tl.js.map +1 -1
  63. package/dist/cjs/react/web/ui/ConnectWallet/locale/vi.js +6 -0
  64. package/dist/cjs/react/web/ui/ConnectWallet/locale/vi.js.map +1 -1
  65. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +3 -1
  66. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  67. package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js +42 -0
  68. package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -0
  69. package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js +58 -0
  70. package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js.map +1 -0
  71. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +8 -5
  72. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
  73. package/dist/cjs/react/web/ui/PayEmbed.js +13 -8
  74. package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
  75. package/dist/cjs/react/web/ui/components/Spinner.js +1 -1
  76. package/dist/cjs/react/web/ui/components/Spinner.js.map +1 -1
  77. package/dist/cjs/react/web/ui/components/TokenIcon.js +2 -2
  78. package/dist/cjs/react/web/ui/components/TokenIcon.js.map +1 -1
  79. package/dist/cjs/react/web/ui/components/WalletImage.js +6 -32
  80. package/dist/cjs/react/web/ui/components/WalletImage.js.map +1 -1
  81. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js +8 -4
  82. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js.map +1 -1
  83. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletFormUI.js +1 -1
  84. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletFormUI.js.map +1 -1
  85. package/dist/cjs/react/web/wallets/in-app/InAppWalletConnectUI.js +8 -4
  86. package/dist/cjs/react/web/wallets/in-app/InAppWalletConnectUI.js.map +1 -1
  87. package/dist/cjs/react/web/wallets/in-app/InAppWalletFormUI.js +5 -5
  88. package/dist/cjs/react/web/wallets/in-app/InAppWalletFormUI.js.map +1 -1
  89. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +22 -16
  90. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  91. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js +36 -49
  92. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  93. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js +47 -20
  94. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  95. package/dist/cjs/react/web/wallets/shared/SocialLogin.js +33 -13
  96. package/dist/cjs/react/web/wallets/shared/SocialLogin.js.map +1 -1
  97. package/dist/cjs/react/web/wallets/shared/locale/en.js +1 -1
  98. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +1 -1
  99. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  100. package/dist/cjs/reactive/store.js +3 -0
  101. package/dist/cjs/reactive/store.js.map +1 -1
  102. package/dist/cjs/transaction/serialize-transaction.js +20 -142
  103. package/dist/cjs/transaction/serialize-transaction.js.map +1 -1
  104. package/dist/cjs/version.js +1 -1
  105. package/dist/cjs/version.js.map +1 -1
  106. package/dist/cjs/wallets/coinbase/coinbase-wallet.js +8 -1
  107. package/dist/cjs/wallets/coinbase/coinbase-wallet.js.map +1 -1
  108. package/dist/cjs/wallets/create-wallet.js +8 -1
  109. package/dist/cjs/wallets/create-wallet.js.map +1 -1
  110. package/dist/cjs/wallets/in-app/core/authentication/getLoginPath.js +14 -3
  111. package/dist/cjs/wallets/in-app/core/authentication/getLoginPath.js.map +1 -1
  112. package/dist/cjs/wallets/in-app/core/authentication/linkAccount.js +67 -0
  113. package/dist/cjs/wallets/in-app/core/authentication/linkAccount.js.map +1 -0
  114. package/dist/cjs/wallets/in-app/core/authentication/siwe.js +47 -0
  115. package/dist/cjs/wallets/in-app/core/authentication/siwe.js.map +1 -0
  116. package/dist/cjs/wallets/in-app/core/authentication/{type.js → types.js} +1 -1
  117. package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -0
  118. package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js +8 -1
  119. package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js.map +1 -1
  120. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +47 -1
  121. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  122. package/dist/cjs/wallets/in-app/core/wallet/index.js +3 -3
  123. package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
  124. package/dist/cjs/wallets/in-app/core/wallet/profiles.js +60 -0
  125. package/dist/cjs/wallets/in-app/core/wallet/profiles.js.map +1 -0
  126. package/dist/cjs/wallets/in-app/native/auth/index.js +3 -3
  127. package/dist/cjs/wallets/in-app/native/auth/index.js.map +1 -1
  128. package/dist/cjs/wallets/in-app/native/auth/native-auth.js +47 -112
  129. package/dist/cjs/wallets/in-app/native/auth/native-auth.js.map +1 -1
  130. package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js +5 -5
  131. package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
  132. package/dist/cjs/wallets/in-app/native/native-connector.js +76 -36
  133. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  134. package/dist/cjs/wallets/in-app/web/lib/auth/abstract-login.js +0 -2
  135. package/dist/cjs/wallets/in-app/web/lib/auth/abstract-login.js.map +1 -1
  136. package/dist/cjs/wallets/in-app/web/lib/auth/base-login.js +49 -148
  137. package/dist/cjs/wallets/in-app/web/lib/auth/base-login.js.map +1 -1
  138. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +26 -12
  139. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  140. package/dist/cjs/wallets/in-app/web/lib/auth/index.js +3 -3
  141. package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
  142. package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js +2 -2
  143. package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
  144. package/dist/cjs/wallets/in-app/web/lib/auth/otp.js +89 -0
  145. package/dist/cjs/wallets/in-app/web/lib/auth/otp.js.map +1 -0
  146. package/dist/cjs/wallets/in-app/web/lib/in-app-account.js +7 -7
  147. package/dist/cjs/wallets/in-app/web/lib/in-app-account.js.map +1 -1
  148. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +89 -30
  149. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  150. package/dist/cjs/wallets/manager/index.js +41 -5
  151. package/dist/cjs/wallets/manager/index.js.map +1 -1
  152. package/dist/cjs/wallets/native/create-wallet.js +8 -1
  153. package/dist/cjs/wallets/native/create-wallet.js.map +1 -1
  154. package/dist/cjs/wallets/smart/lib/utils.js +4 -1
  155. package/dist/cjs/wallets/smart/lib/utils.js.map +1 -1
  156. package/dist/cjs/wallets/smart/smart-wallet.js +8 -1
  157. package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
  158. package/dist/esm/adapters/ethers5.js +3 -2
  159. package/dist/esm/adapters/ethers5.js.map +1 -1
  160. package/dist/esm/adapters/wallet-adapter.js +3 -0
  161. package/dist/esm/adapters/wallet-adapter.js.map +1 -1
  162. package/dist/esm/auth/constants.js +0 -1
  163. package/dist/esm/auth/constants.js.map +1 -1
  164. package/dist/esm/auth/verify-hash.js +2 -2
  165. package/dist/esm/auth/verify-hash.js.map +1 -1
  166. package/dist/esm/chains/chain-definitions/abstract-testnet.js +17 -0
  167. package/dist/esm/chains/chain-definitions/abstract-testnet.js.map +1 -0
  168. package/dist/esm/chains/chain-definitions/fraxtal-testnet.js +17 -0
  169. package/dist/esm/chains/chain-definitions/fraxtal-testnet.js.map +1 -0
  170. package/dist/esm/chains/chain-definitions/mode-testnet.js +17 -0
  171. package/dist/esm/chains/chain-definitions/mode-testnet.js.map +1 -0
  172. package/dist/esm/chains/utils.js +6 -0
  173. package/dist/esm/chains/utils.js.map +1 -1
  174. package/dist/esm/exports/chains.js +1 -0
  175. package/dist/esm/exports/chains.js.map +1 -1
  176. package/dist/esm/exports/react.js +1 -0
  177. package/dist/esm/exports/react.js.map +1 -1
  178. package/dist/esm/exports/wallets/embedded.js +1 -1
  179. package/dist/esm/exports/wallets/embedded.js.map +1 -1
  180. package/dist/esm/exports/wallets/in-app.js +2 -2
  181. package/dist/esm/exports/wallets/in-app.js.map +1 -1
  182. package/dist/esm/exports/wallets/in-app.native.js +1 -1
  183. package/dist/esm/exports/wallets/in-app.native.js.map +1 -1
  184. package/dist/esm/exports/wallets.js +1 -0
  185. package/dist/esm/exports/wallets.js.map +1 -1
  186. package/dist/esm/react/core/hooks/others/useProfiles.js +33 -0
  187. package/dist/esm/react/core/hooks/others/useProfiles.js.map +1 -0
  188. package/dist/esm/react/core/utils/{socialIcons.js → walletIcon.js} +25 -1
  189. package/dist/esm/react/core/utils/walletIcon.js.map +1 -0
  190. package/dist/esm/react/native/ui/components/TokenIcon.js +1 -1
  191. package/dist/esm/react/native/ui/components/TokenIcon.js.map +1 -1
  192. package/dist/esm/react/native/ui/connect/ConnectButton.js +14 -9
  193. package/dist/esm/react/native/ui/connect/ConnectButton.js.map +1 -1
  194. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +13 -8
  195. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  196. package/dist/esm/react/web/ui/ConnectWallet/Details.js +22 -5
  197. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  198. package/dist/esm/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js +1 -1
  199. package/dist/esm/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js.map +1 -1
  200. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +13 -8
  201. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  202. package/dist/esm/react/web/ui/ConnectWallet/Modal/screen.js +1 -1
  203. package/dist/esm/react/web/ui/ConnectWallet/Modal/screen.js.map +1 -1
  204. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js +1 -1
  205. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
  206. package/dist/esm/react/web/ui/ConnectWallet/icons/AddUserIcon.js +8 -0
  207. package/dist/esm/react/web/ui/ConnectWallet/icons/AddUserIcon.js.map +1 -0
  208. package/dist/esm/react/web/ui/ConnectWallet/icons/MultiUserIcon.js +8 -0
  209. package/dist/esm/react/web/ui/ConnectWallet/icons/MultiUserIcon.js.map +1 -0
  210. package/dist/esm/react/web/ui/ConnectWallet/locale/de.js +6 -0
  211. package/dist/esm/react/web/ui/ConnectWallet/locale/de.js.map +1 -1
  212. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js +6 -0
  213. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  214. package/dist/esm/react/web/ui/ConnectWallet/locale/es.js +6 -0
  215. package/dist/esm/react/web/ui/ConnectWallet/locale/es.js.map +1 -1
  216. package/dist/esm/react/web/ui/ConnectWallet/locale/fr.js +6 -0
  217. package/dist/esm/react/web/ui/ConnectWallet/locale/fr.js.map +1 -1
  218. package/dist/esm/react/web/ui/ConnectWallet/locale/ja.js +6 -0
  219. package/dist/esm/react/web/ui/ConnectWallet/locale/ja.js.map +1 -1
  220. package/dist/esm/react/web/ui/ConnectWallet/locale/kr.js +6 -0
  221. package/dist/esm/react/web/ui/ConnectWallet/locale/kr.js.map +1 -1
  222. package/dist/esm/react/web/ui/ConnectWallet/locale/tl.js +6 -0
  223. package/dist/esm/react/web/ui/ConnectWallet/locale/tl.js.map +1 -1
  224. package/dist/esm/react/web/ui/ConnectWallet/locale/vi.js +6 -0
  225. package/dist/esm/react/web/ui/ConnectWallet/locale/vi.js.map +1 -1
  226. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +3 -1
  227. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  228. package/dist/esm/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js +39 -0
  229. package/dist/esm/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -0
  230. package/dist/esm/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js +55 -0
  231. package/dist/esm/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js.map +1 -0
  232. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +8 -5
  233. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
  234. package/dist/esm/react/web/ui/PayEmbed.js +14 -9
  235. package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
  236. package/dist/esm/react/web/ui/components/Spinner.js +1 -1
  237. package/dist/esm/react/web/ui/components/Spinner.js.map +1 -1
  238. package/dist/esm/react/web/ui/components/TokenIcon.js +1 -1
  239. package/dist/esm/react/web/ui/components/TokenIcon.js.map +1 -1
  240. package/dist/esm/react/web/ui/components/WalletImage.js +4 -30
  241. package/dist/esm/react/web/ui/components/WalletImage.js.map +1 -1
  242. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js +8 -4
  243. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js.map +1 -1
  244. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletFormUI.js +2 -2
  245. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletFormUI.js.map +1 -1
  246. package/dist/esm/react/web/wallets/in-app/InAppWalletConnectUI.js +8 -4
  247. package/dist/esm/react/web/wallets/in-app/InAppWalletConnectUI.js.map +1 -1
  248. package/dist/esm/react/web/wallets/in-app/InAppWalletFormUI.js +5 -5
  249. package/dist/esm/react/web/wallets/in-app/InAppWalletFormUI.js.map +1 -1
  250. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +18 -12
  251. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  252. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js +36 -49
  253. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  254. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js +47 -20
  255. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  256. package/dist/esm/react/web/wallets/shared/SocialLogin.js +33 -13
  257. package/dist/esm/react/web/wallets/shared/SocialLogin.js.map +1 -1
  258. package/dist/esm/react/web/wallets/shared/locale/en.js +1 -1
  259. package/dist/esm/react/web/wallets/shared/oauthSignIn.js +2 -2
  260. package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  261. package/dist/esm/reactive/store.js +3 -0
  262. package/dist/esm/reactive/store.js.map +1 -1
  263. package/dist/esm/transaction/serialize-transaction.js +21 -142
  264. package/dist/esm/transaction/serialize-transaction.js.map +1 -1
  265. package/dist/esm/version.js +1 -1
  266. package/dist/esm/version.js.map +1 -1
  267. package/dist/esm/wallets/coinbase/coinbase-wallet.js +8 -1
  268. package/dist/esm/wallets/coinbase/coinbase-wallet.js.map +1 -1
  269. package/dist/esm/wallets/create-wallet.js +8 -1
  270. package/dist/esm/wallets/create-wallet.js.map +1 -1
  271. package/dist/esm/wallets/in-app/core/authentication/getLoginPath.js +11 -1
  272. package/dist/esm/wallets/in-app/core/authentication/getLoginPath.js.map +1 -1
  273. package/dist/esm/wallets/in-app/core/authentication/linkAccount.js +63 -0
  274. package/dist/esm/wallets/in-app/core/authentication/linkAccount.js.map +1 -0
  275. package/dist/esm/wallets/in-app/core/authentication/siwe.js +44 -0
  276. package/dist/esm/wallets/in-app/core/authentication/siwe.js.map +1 -0
  277. package/dist/esm/wallets/in-app/core/authentication/{type.js → types.js} +1 -1
  278. package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -0
  279. package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js +8 -1
  280. package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js.map +1 -1
  281. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +47 -1
  282. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  283. package/dist/esm/wallets/in-app/core/wallet/index.js +2 -2
  284. package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
  285. package/dist/esm/wallets/in-app/core/wallet/profiles.js +56 -0
  286. package/dist/esm/wallets/in-app/core/wallet/profiles.js.map +1 -0
  287. package/dist/esm/wallets/in-app/native/auth/index.js +2 -2
  288. package/dist/esm/wallets/in-app/native/auth/index.js.map +1 -1
  289. package/dist/esm/wallets/in-app/native/auth/native-auth.js +47 -112
  290. package/dist/esm/wallets/in-app/native/auth/native-auth.js.map +1 -1
  291. package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js +1 -1
  292. package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
  293. package/dist/esm/wallets/in-app/native/native-connector.js +67 -27
  294. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  295. package/dist/esm/wallets/in-app/web/lib/auth/abstract-login.js +0 -2
  296. package/dist/esm/wallets/in-app/web/lib/auth/abstract-login.js.map +1 -1
  297. package/dist/esm/wallets/in-app/web/lib/auth/base-login.js +49 -148
  298. package/dist/esm/wallets/in-app/web/lib/auth/base-login.js.map +1 -1
  299. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +26 -12
  300. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  301. package/dist/esm/wallets/in-app/web/lib/auth/index.js +2 -2
  302. package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
  303. package/dist/esm/wallets/in-app/web/lib/auth/oauth.js +3 -3
  304. package/dist/esm/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
  305. package/dist/esm/wallets/in-app/web/lib/auth/otp.js +84 -0
  306. package/dist/esm/wallets/in-app/web/lib/auth/otp.js.map +1 -0
  307. package/dist/esm/wallets/in-app/web/lib/in-app-account.js +1 -1
  308. package/dist/esm/wallets/in-app/web/lib/in-app-account.js.map +1 -1
  309. package/dist/esm/wallets/in-app/web/lib/web-connector.js +88 -29
  310. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  311. package/dist/esm/wallets/manager/index.js +41 -5
  312. package/dist/esm/wallets/manager/index.js.map +1 -1
  313. package/dist/esm/wallets/native/create-wallet.js +8 -1
  314. package/dist/esm/wallets/native/create-wallet.js.map +1 -1
  315. package/dist/esm/wallets/smart/lib/utils.js +4 -1
  316. package/dist/esm/wallets/smart/lib/utils.js.map +1 -1
  317. package/dist/esm/wallets/smart/smart-wallet.js +8 -1
  318. package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
  319. package/dist/types/adapters/ethers5.d.ts +1 -1
  320. package/dist/types/adapters/ethers5.d.ts.map +1 -1
  321. package/dist/types/adapters/wallet-adapter.d.ts.map +1 -1
  322. package/dist/types/auth/constants.d.ts +0 -1
  323. package/dist/types/auth/constants.d.ts.map +1 -1
  324. package/dist/types/auth/verify-hash.d.ts.map +1 -1
  325. package/dist/types/chains/chain-definitions/abstract-testnet.d.ts +7 -0
  326. package/dist/types/chains/chain-definitions/abstract-testnet.d.ts.map +1 -0
  327. package/dist/types/chains/chain-definitions/fraxtal-testnet.d.ts +7 -0
  328. package/dist/types/chains/chain-definitions/fraxtal-testnet.d.ts.map +1 -0
  329. package/dist/types/chains/chain-definitions/mode-testnet.d.ts +7 -0
  330. package/dist/types/chains/chain-definitions/mode-testnet.d.ts.map +1 -0
  331. package/dist/types/chains/utils.d.ts +6 -0
  332. package/dist/types/chains/utils.d.ts.map +1 -1
  333. package/dist/types/exports/chains.d.ts +1 -0
  334. package/dist/types/exports/chains.d.ts.map +1 -1
  335. package/dist/types/exports/react.d.ts +1 -0
  336. package/dist/types/exports/react.d.ts.map +1 -1
  337. package/dist/types/exports/wallets/embedded.d.ts +1 -1
  338. package/dist/types/exports/wallets/embedded.d.ts.map +1 -1
  339. package/dist/types/exports/wallets/in-app.d.ts +2 -2
  340. package/dist/types/exports/wallets/in-app.d.ts.map +1 -1
  341. package/dist/types/exports/wallets/in-app.native.d.ts +1 -1
  342. package/dist/types/exports/wallets/in-app.native.d.ts.map +1 -1
  343. package/dist/types/exports/wallets.d.ts +1 -0
  344. package/dist/types/exports/wallets.d.ts.map +1 -1
  345. package/dist/types/react/core/hooks/others/useProfiles.d.ts +23 -0
  346. package/dist/types/react/core/hooks/others/useProfiles.d.ts.map +1 -0
  347. package/dist/types/react/core/providers/connection-manager.d.ts +3 -0
  348. package/dist/types/react/core/providers/connection-manager.d.ts.map +1 -1
  349. package/dist/types/react/core/utils/storage.d.ts +2 -2
  350. package/dist/types/react/core/utils/storage.d.ts.map +1 -1
  351. package/dist/types/react/core/utils/{socialIcons.d.ts → walletIcon.d.ts} +2 -1
  352. package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -0
  353. package/dist/types/react/native/ui/connect/ConnectButton.d.ts.map +1 -1
  354. package/dist/types/react/native/ui/connect/ConnectModal.d.ts +1 -1
  355. package/dist/types/react/native/ui/connect/ConnectModal.d.ts.map +1 -1
  356. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts +1 -1
  357. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
  358. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
  359. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  360. package/dist/types/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.d.ts.map +1 -1
  361. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
  362. package/dist/types/react/web/ui/ConnectWallet/icons/AddUserIcon.d.ts +6 -0
  363. package/dist/types/react/web/ui/ConnectWallet/icons/AddUserIcon.d.ts.map +1 -0
  364. package/dist/types/react/web/ui/ConnectWallet/icons/MultiUserIcon.d.ts +6 -0
  365. package/dist/types/react/web/ui/ConnectWallet/icons/MultiUserIcon.d.ts.map +1 -0
  366. package/dist/types/react/web/ui/ConnectWallet/locale/de.d.ts.map +1 -1
  367. package/dist/types/react/web/ui/ConnectWallet/locale/en.d.ts.map +1 -1
  368. package/dist/types/react/web/ui/ConnectWallet/locale/es.d.ts.map +1 -1
  369. package/dist/types/react/web/ui/ConnectWallet/locale/fr.d.ts.map +1 -1
  370. package/dist/types/react/web/ui/ConnectWallet/locale/ja.d.ts.map +1 -1
  371. package/dist/types/react/web/ui/ConnectWallet/locale/kr.d.ts.map +1 -1
  372. package/dist/types/react/web/ui/ConnectWallet/locale/tl.d.ts.map +1 -1
  373. package/dist/types/react/web/ui/ConnectWallet/locale/types.d.ts +6 -0
  374. package/dist/types/react/web/ui/ConnectWallet/locale/types.d.ts.map +1 -1
  375. package/dist/types/react/web/ui/ConnectWallet/locale/vi.d.ts.map +1 -1
  376. package/dist/types/react/web/ui/ConnectWallet/screens/LinkProfileScreen.d.ts +11 -0
  377. package/dist/types/react/web/ui/ConnectWallet/screens/LinkProfileScreen.d.ts.map +1 -0
  378. package/dist/types/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.d.ts +13 -0
  379. package/dist/types/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.d.ts.map +1 -0
  380. package/dist/types/react/web/ui/ConnectWallet/screens/ManageWalletScreen.d.ts.map +1 -1
  381. package/dist/types/react/web/ui/ConnectWallet/screens/types.d.ts +1 -1
  382. package/dist/types/react/web/ui/ConnectWallet/screens/types.d.ts.map +1 -1
  383. package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
  384. package/dist/types/react/web/ui/components/WalletImage.d.ts.map +1 -1
  385. package/dist/types/react/web/wallets/ecosystem/EcosystemWalletConnectUI.d.ts +1 -0
  386. package/dist/types/react/web/wallets/ecosystem/EcosystemWalletConnectUI.d.ts.map +1 -1
  387. package/dist/types/react/web/wallets/ecosystem/EcosystemWalletFormUI.d.ts +1 -0
  388. package/dist/types/react/web/wallets/ecosystem/EcosystemWalletFormUI.d.ts.map +1 -1
  389. package/dist/types/react/web/wallets/in-app/InAppWalletConnectUI.d.ts +2 -1
  390. package/dist/types/react/web/wallets/in-app/InAppWalletConnectUI.d.ts.map +1 -1
  391. package/dist/types/react/web/wallets/in-app/InAppWalletFormUI.d.ts +2 -1
  392. package/dist/types/react/web/wallets/in-app/InAppWalletFormUI.d.ts.map +1 -1
  393. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts +3 -1
  394. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  395. package/dist/types/react/web/wallets/shared/OTPLoginUI.d.ts +1 -0
  396. package/dist/types/react/web/wallets/shared/OTPLoginUI.d.ts.map +1 -1
  397. package/dist/types/react/web/wallets/shared/PassKeyLogin.d.ts +4 -1
  398. package/dist/types/react/web/wallets/shared/PassKeyLogin.d.ts.map +1 -1
  399. package/dist/types/react/web/wallets/shared/SocialLogin.d.ts +3 -0
  400. package/dist/types/react/web/wallets/shared/SocialLogin.d.ts.map +1 -1
  401. package/dist/types/reactive/store.d.ts.map +1 -1
  402. package/dist/types/transaction/serialize-transaction.d.ts +8 -8
  403. package/dist/types/transaction/serialize-transaction.d.ts.map +1 -1
  404. package/dist/types/utils/any-evm/keyless-transaction.d.ts +1 -1
  405. package/dist/types/version.d.ts +1 -1
  406. package/dist/types/version.d.ts.map +1 -1
  407. package/dist/types/wallets/coinbase/coinbase-wallet.d.ts.map +1 -1
  408. package/dist/types/wallets/create-wallet.d.ts.map +1 -1
  409. package/dist/types/wallets/ecosystem/types.d.ts +2 -8
  410. package/dist/types/wallets/ecosystem/types.d.ts.map +1 -1
  411. package/dist/types/wallets/in-app/core/authentication/getLoginPath.d.ts +8 -3
  412. package/dist/types/wallets/in-app/core/authentication/getLoginPath.d.ts.map +1 -1
  413. package/dist/types/wallets/in-app/core/authentication/linkAccount.d.ts +24 -0
  414. package/dist/types/wallets/in-app/core/authentication/linkAccount.d.ts.map +1 -0
  415. package/dist/types/wallets/in-app/core/authentication/siwe.d.ts +14 -0
  416. package/dist/types/wallets/in-app/core/authentication/siwe.d.ts.map +1 -0
  417. package/dist/types/wallets/in-app/core/authentication/{type.d.ts → types.d.ts} +17 -2
  418. package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -0
  419. package/dist/types/wallets/in-app/core/interfaces/connector.d.ts +4 -3
  420. package/dist/types/wallets/in-app/core/interfaces/connector.d.ts.map +1 -1
  421. package/dist/types/wallets/in-app/core/wallet/ecosystem-core.d.ts.map +1 -1
  422. package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
  423. package/dist/types/wallets/in-app/core/wallet/profiles.d.ts +48 -0
  424. package/dist/types/wallets/in-app/core/wallet/profiles.d.ts.map +1 -0
  425. package/dist/types/wallets/in-app/core/wallet/types.d.ts +1 -1
  426. package/dist/types/wallets/in-app/core/wallet/types.d.ts.map +1 -1
  427. package/dist/types/wallets/in-app/native/auth/index.d.ts +3 -3
  428. package/dist/types/wallets/in-app/native/auth/index.d.ts.map +1 -1
  429. package/dist/types/wallets/in-app/native/auth/native-auth.d.ts +7 -13
  430. package/dist/types/wallets/in-app/native/auth/native-auth.d.ts.map +1 -1
  431. package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts +1 -1
  432. package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts.map +1 -1
  433. package/dist/types/wallets/in-app/native/helpers/auth/logout.d.ts +1 -1
  434. package/dist/types/wallets/in-app/native/helpers/auth/logout.d.ts.map +1 -1
  435. package/dist/types/wallets/in-app/native/helpers/auth/middleware.d.ts +3 -3
  436. package/dist/types/wallets/in-app/native/helpers/auth/middleware.d.ts.map +1 -1
  437. package/dist/types/wallets/in-app/native/helpers/storage/local.d.ts +1 -1
  438. package/dist/types/wallets/in-app/native/helpers/storage/local.d.ts.map +1 -1
  439. package/dist/types/wallets/in-app/native/helpers/types.d.ts +1 -1
  440. package/dist/types/wallets/in-app/native/helpers/types.d.ts.map +1 -1
  441. package/dist/types/wallets/in-app/native/helpers/wallet/creation.d.ts +1 -1
  442. package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts +1 -1
  443. package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts.map +1 -1
  444. package/dist/types/wallets/in-app/native/native-connector.d.ts +6 -4
  445. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  446. package/dist/types/wallets/in-app/web/lib/auth/abstract-login.d.ts +4 -12
  447. package/dist/types/wallets/in-app/web/lib/auth/abstract-login.d.ts.map +1 -1
  448. package/dist/types/wallets/in-app/web/lib/auth/base-login.d.ts +12 -15
  449. package/dist/types/wallets/in-app/web/lib/auth/base-login.d.ts.map +1 -1
  450. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts +11 -9
  451. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -1
  452. package/dist/types/wallets/in-app/web/lib/auth/index.d.ts +4 -4
  453. package/dist/types/wallets/in-app/web/lib/auth/index.d.ts.map +1 -1
  454. package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts +1 -1
  455. package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts.map +1 -1
  456. package/dist/types/wallets/in-app/web/lib/auth/otp.d.ts +15 -0
  457. package/dist/types/wallets/in-app/web/lib/auth/otp.d.ts.map +1 -0
  458. package/dist/types/wallets/in-app/web/lib/auth/passkeys.d.ts +1 -1
  459. package/dist/types/wallets/in-app/web/lib/auth/passkeys.d.ts.map +1 -1
  460. package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts +1 -1
  461. package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts.map +1 -1
  462. package/dist/types/wallets/in-app/web/lib/in-app-account.d.ts +1 -1
  463. package/dist/types/wallets/in-app/web/lib/in-app-account.d.ts.map +1 -1
  464. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +11 -4
  465. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  466. package/dist/types/wallets/in-app/web/types.d.ts +1 -1
  467. package/dist/types/wallets/in-app/web/types.d.ts.map +1 -1
  468. package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
  469. package/dist/types/wallets/manager/index.d.ts +1 -0
  470. package/dist/types/wallets/manager/index.d.ts.map +1 -1
  471. package/dist/types/wallets/native/create-wallet.d.ts.map +1 -1
  472. package/dist/types/wallets/smart/lib/utils.d.ts.map +1 -1
  473. package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -1
  474. package/dist/types/wallets/types.d.ts +1 -1
  475. package/dist/types/wallets/types.d.ts.map +1 -1
  476. package/package.json +3 -3
  477. package/src/adapters/ethers5.ts +4 -2
  478. package/src/adapters/wallet-adapter.ts +3 -0
  479. package/src/auth/constants.ts +0 -3
  480. package/src/auth/verify-hash.ts +7 -5
  481. package/src/chains/chain-definitions/abstract-testnet.ts +17 -0
  482. package/src/chains/chain-definitions/fraxtal-testnet.ts +17 -0
  483. package/src/chains/chain-definitions/mode-testnet.ts +17 -0
  484. package/src/chains/utils.ts +7 -0
  485. package/src/exports/chains.ts +1 -0
  486. package/src/exports/react.ts +1 -0
  487. package/src/exports/wallets/embedded.ts +1 -1
  488. package/src/exports/wallets/in-app.native.ts +1 -1
  489. package/src/exports/wallets/in-app.ts +2 -2
  490. package/src/exports/wallets.ts +5 -0
  491. package/src/extensions/marketplace/direct-listings/direct-listings.test.ts +334 -337
  492. package/src/extensions/marketplace/english-auctions/english-auctions.test.ts +231 -236
  493. package/src/extensions/marketplace/offers/offers.test.ts +1 -1
  494. package/src/extensions/prebuilts/deploy-modular-core.test.ts +1 -1
  495. package/src/react/core/hooks/others/useProfiles.ts +36 -0
  496. package/src/react/core/utils/storage.ts +1 -1
  497. package/src/react/core/utils/{socialIcons.ts → walletIcon.ts} +25 -0
  498. package/src/react/native/ui/components/TokenIcon.tsx +1 -1
  499. package/src/react/native/ui/connect/ConnectButton.tsx +14 -9
  500. package/src/react/native/ui/connect/ConnectModal.tsx +1 -1
  501. package/src/react/native/ui/connect/InAppWalletUI.tsx +1 -1
  502. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +13 -8
  503. package/src/react/web/ui/ConnectWallet/Details.tsx +45 -11
  504. package/src/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.tsx +3 -1
  505. package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +13 -8
  506. package/src/react/web/ui/ConnectWallet/Modal/screen.tsx +1 -1
  507. package/src/react/web/ui/ConnectWallet/WalletSelector.tsx +1 -1
  508. package/src/react/web/ui/ConnectWallet/icons/AddUserIcon.tsx +25 -0
  509. package/src/react/web/ui/ConnectWallet/icons/MultiUserIcon.tsx +25 -0
  510. package/src/react/web/ui/ConnectWallet/locale/de.ts +6 -0
  511. package/src/react/web/ui/ConnectWallet/locale/en.ts +6 -0
  512. package/src/react/web/ui/ConnectWallet/locale/es.ts +6 -0
  513. package/src/react/web/ui/ConnectWallet/locale/fr.ts +6 -0
  514. package/src/react/web/ui/ConnectWallet/locale/ja.ts +6 -0
  515. package/src/react/web/ui/ConnectWallet/locale/kr.ts +6 -0
  516. package/src/react/web/ui/ConnectWallet/locale/tl.ts +6 -1
  517. package/src/react/web/ui/ConnectWallet/locale/types.ts +6 -0
  518. package/src/react/web/ui/ConnectWallet/locale/vi.ts +6 -0
  519. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +5 -1
  520. package/src/react/web/ui/ConnectWallet/screens/LinkProfileScreen.tsx +88 -0
  521. package/src/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.tsx +119 -0
  522. package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.tsx +20 -4
  523. package/src/react/web/ui/ConnectWallet/screens/types.ts +3 -1
  524. package/src/react/web/ui/PayEmbed.tsx +14 -9
  525. package/src/react/web/ui/components/Spinner.tsx +1 -1
  526. package/src/react/web/ui/components/TokenIcon.tsx +1 -1
  527. package/src/react/web/ui/components/WalletImage.tsx +7 -41
  528. package/src/react/web/wallets/ecosystem/EcosystemWalletConnectUI.tsx +16 -4
  529. package/src/react/web/wallets/ecosystem/EcosystemWalletFormUI.tsx +14 -6
  530. package/src/react/web/wallets/in-app/InAppWalletConnectUI.tsx +17 -5
  531. package/src/react/web/wallets/in-app/InAppWalletFormUI.tsx +13 -12
  532. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +20 -15
  533. package/src/react/web/wallets/shared/OTPLoginUI.tsx +49 -54
  534. package/src/react/web/wallets/shared/PassKeyLogin.tsx +59 -20
  535. package/src/react/web/wallets/shared/SocialLogin.tsx +46 -14
  536. package/src/react/web/wallets/shared/locale/en.ts +1 -1
  537. package/src/react/web/wallets/shared/oauthSignIn.ts +2 -2
  538. package/src/reactive/store.ts +3 -0
  539. package/src/transaction/serialize-transaction.test.ts +13 -9
  540. package/src/transaction/serialize-transaction.ts +31 -258
  541. package/src/version.ts +1 -1
  542. package/src/wallets/coinbase/coinbase-wallet.ts +9 -1
  543. package/src/wallets/create-wallet.ts +9 -1
  544. package/src/wallets/ecosystem/types.ts +2 -10
  545. package/src/wallets/in-app/core/authentication/getLoginPath.ts +22 -3
  546. package/src/wallets/in-app/core/authentication/linkAccount.ts +96 -0
  547. package/src/wallets/in-app/core/authentication/siwe.ts +63 -0
  548. package/src/wallets/in-app/core/authentication/{type.ts → types.ts} +18 -1
  549. package/src/wallets/in-app/core/interfaces/connector.ts +14 -5
  550. package/src/wallets/in-app/core/wallet/ecosystem-core.ts +10 -1
  551. package/src/wallets/in-app/core/wallet/in-app-core.ts +68 -3
  552. package/src/wallets/in-app/core/wallet/index.ts +2 -2
  553. package/src/wallets/in-app/core/wallet/profiles.ts +74 -0
  554. package/src/wallets/in-app/core/wallet/types.ts +1 -1
  555. package/src/wallets/in-app/native/auth/index.ts +2 -2
  556. package/src/wallets/in-app/native/auth/native-auth.ts +70 -183
  557. package/src/wallets/in-app/native/helpers/api/fetchers.ts +1 -1
  558. package/src/wallets/in-app/native/helpers/auth/logout.ts +1 -1
  559. package/src/wallets/in-app/native/helpers/auth/middleware.ts +1 -1
  560. package/src/wallets/in-app/native/helpers/storage/local.ts +1 -1
  561. package/src/wallets/in-app/native/helpers/types.ts +1 -1
  562. package/src/wallets/in-app/native/helpers/wallet/creation.ts +1 -1
  563. package/src/wallets/in-app/native/helpers/wallet/retrieval.ts +1 -1
  564. package/src/wallets/in-app/native/native-connector.ts +96 -35
  565. package/src/wallets/in-app/web/lib/auth/abstract-login.ts +4 -14
  566. package/src/wallets/in-app/web/lib/auth/base-login.ts +75 -177
  567. package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +37 -18
  568. package/src/wallets/in-app/web/lib/auth/index.ts +2 -2
  569. package/src/wallets/in-app/web/lib/auth/oauth.ts +4 -4
  570. package/src/wallets/in-app/web/lib/auth/otp.ts +114 -0
  571. package/src/wallets/in-app/web/lib/auth/passkeys.ts +1 -1
  572. package/src/wallets/in-app/web/lib/get-url-token.ts +1 -1
  573. package/src/wallets/in-app/web/lib/in-app-account.ts +1 -1
  574. package/src/wallets/in-app/web/lib/web-connector.ts +93 -37
  575. package/src/wallets/in-app/web/types.ts +1 -1
  576. package/src/wallets/interfaces/wallet.ts +1 -0
  577. package/src/wallets/manager/index.ts +51 -5
  578. package/src/wallets/native/create-wallet.ts +9 -1
  579. package/src/wallets/smart/lib/utils.ts +6 -1
  580. package/src/wallets/smart/smart-wallet-integration.test.ts +3 -3
  581. package/src/wallets/smart/smart-wallet.ts +9 -1
  582. package/src/wallets/types.ts +6 -1
  583. package/dist/cjs/react/core/utils/socialIcons.js.map +0 -1
  584. package/dist/cjs/wallets/in-app/core/authentication/type.js.map +0 -1
  585. package/dist/esm/react/core/utils/socialIcons.js.map +0 -1
  586. package/dist/esm/wallets/in-app/core/authentication/type.js.map +0 -1
  587. package/dist/types/react/core/utils/socialIcons.d.ts.map +0 -1
  588. package/dist/types/wallets/in-app/core/authentication/type.d.ts.map +0 -1
@@ -0,0 +1,119 @@
1
+ "use client";
2
+ import type { ThirdwebClient } from "../../../../../client/client.js";
3
+ import { shortenAddress } from "../../../../../utils/address.js";
4
+ import type { Profile } from "../../../../../wallets/in-app/core/authentication/types.js";
5
+ import { fontSize, iconSize } from "../../../../core/design-system/index.js";
6
+ import { useProfiles } from "../../../../core/hooks/others/useProfiles.js";
7
+ import { getWalletIcon } from "../../../../core/utils/walletIcon.js";
8
+ import { LoadingScreen } from "../../../wallets/shared/LoadingScreen.js";
9
+ import { Img } from "../../components/Img.js";
10
+ import { Spacer } from "../../components/Spacer.js";
11
+ import { Container, Line, ModalHeader } from "../../components/basic.js";
12
+ import { Text } from "../../components/text.js";
13
+ import { MenuButton } from "../MenuButton.js";
14
+ import { AddUserIcon } from "../icons/AddUserIcon.js";
15
+ import type { ConnectLocale } from "../locale/types.js";
16
+ import type { WalletDetailsModalScreen } from "./types.js";
17
+
18
+ function getProfileDisplayName(profile: Profile) {
19
+ switch (true) {
20
+ case profile.type === "email" && profile.details.email !== undefined:
21
+ return profile.details.email;
22
+ case profile.type === "google" && profile.details.email !== undefined:
23
+ return profile.details.email;
24
+ case profile.type === "phone" && profile.details.phone !== undefined:
25
+ return profile.details.phone;
26
+ case profile.details.address !== undefined:
27
+ return shortenAddress(profile.details.address, 6);
28
+ case (profile.type as string) === "cognito" &&
29
+ profile.details.email !== undefined:
30
+ return profile.details.email;
31
+ default:
32
+ return profile.type.slice(0, 1).toUpperCase() + profile.type.slice(1);
33
+ }
34
+ }
35
+
36
+ /**
37
+ * @internal
38
+ */
39
+ export function LinkedProfilesScreen(props: {
40
+ onBack: () => void;
41
+ setScreen: (screen: WalletDetailsModalScreen) => void;
42
+ locale: ConnectLocale;
43
+ client: ThirdwebClient;
44
+ }) {
45
+ const { data: connectedProfiles, isLoading } = useProfiles();
46
+
47
+ if (isLoading) {
48
+ return <LoadingScreen />;
49
+ }
50
+
51
+ return (
52
+ <Container
53
+ style={{
54
+ minHeight: "300px",
55
+ }}
56
+ >
57
+ <Container p="lg">
58
+ <ModalHeader
59
+ title={props.locale.manageWallet.linkedProfiles}
60
+ onBack={props.onBack}
61
+ />
62
+ </Container>
63
+ <Line />
64
+ {isLoading ? (
65
+ <LoadingScreen />
66
+ ) : (
67
+ <Container
68
+ scrollY
69
+ style={{
70
+ height: "300px",
71
+ }}
72
+ >
73
+ <Spacer y="md" />
74
+ <Container px="sm">
75
+ <MenuButton
76
+ onClick={() => {
77
+ props.setScreen("link-profile");
78
+ }}
79
+ style={{
80
+ fontSize: fontSize.sm,
81
+ }}
82
+ >
83
+ <AddUserIcon size={iconSize.md} />
84
+ <Text color="primaryText">
85
+ {props.locale.manageWallet.linkProfile}
86
+ </Text>
87
+ </MenuButton>
88
+ <Spacer y="xs" />
89
+ {connectedProfiles?.map((profile) => (
90
+ <MenuButton
91
+ key={`${profile.type}-${getProfileDisplayName(profile)}`}
92
+ onClick={() => {
93
+ props.setScreen("linked-profiles");
94
+ }}
95
+ style={{
96
+ fontSize: fontSize.sm,
97
+ cursor: "default",
98
+ }}
99
+ disabled // disabled until we have more data to show on a dedicated profile screen
100
+ >
101
+ <Img
102
+ src={getWalletIcon(profile.type)}
103
+ width={iconSize.md}
104
+ height={iconSize.md}
105
+ loading="eager"
106
+ client={props.client}
107
+ />
108
+ <Text color="primaryText">
109
+ {getProfileDisplayName(profile)}
110
+ </Text>
111
+ </MenuButton>
112
+ ))}
113
+ </Container>
114
+ <Spacer y="md" />
115
+ </Container>
116
+ )}
117
+ </Container>
118
+ );
119
+ }
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
  import { ShuffleIcon } from "@radix-ui/react-icons";
3
3
  import type { ThirdwebClient } from "../../../../../client/client.js";
4
- import { isEcosystemWallet } from "../../../../../wallets/ecosystem/is-ecosystem-wallet.js";
5
4
  import { isInAppWallet } from "../../../../../wallets/in-app/core/wallet/index.js";
6
5
  import { injectedProvider } from "../../../../../wallets/injected/mipdStore.js";
7
6
  import { fontSize, iconSize } from "../../../../core/design-system/index.js";
@@ -11,6 +10,7 @@ import { Container, Line, ModalHeader } from "../../components/basic.js";
11
10
  import { Text } from "../../components/text.js";
12
11
  import { MenuButton } from "../MenuButton.js";
13
12
  import { KeyIcon } from "../icons/KeyIcon.js";
13
+ import { MultiUserIcon } from "../icons/MultiUserIcon.js";
14
14
  import { WalletConnectIcon } from "../icons/WalletConnectIcon.js";
15
15
  import type { ConnectLocale } from "../locale/types.js";
16
16
  import type { WalletDetailsModalScreen } from "./types.js";
@@ -55,6 +55,23 @@ export function ManageWalletScreen(props: {
55
55
  connectLocale={props.locale}
56
56
  />
57
57
 
58
+ {/* Multi-auth */}
59
+ {activeWallet?.id === "inApp" && (
60
+ <MenuButton
61
+ onClick={() => {
62
+ props.setScreen("linked-profiles");
63
+ }}
64
+ style={{
65
+ fontSize: fontSize.sm,
66
+ }}
67
+ >
68
+ <MultiUserIcon size={iconSize.md} />
69
+ <Text color="primaryText">
70
+ {props.locale.manageWallet.linkedProfiles}
71
+ </Text>
72
+ </MenuButton>
73
+ )}
74
+
58
75
  {/* Wallet Connect Receiver */}
59
76
  <MenuButton
60
77
  onClick={() => {
@@ -72,9 +89,8 @@ export function ManageWalletScreen(props: {
72
89
 
73
90
  {/* Private Key Export (if enabled) */}
74
91
  {activeWallet &&
75
- ((isInAppWallet(activeWallet) &&
76
- !activeWallet.getConfig()?.hidePrivateKeyExport) ||
77
- isEcosystemWallet(activeWallet)) && (
92
+ isInAppWallet(activeWallet) &&
93
+ !activeWallet.getConfig()?.hidePrivateKeyExport && (
78
94
  <MenuButton
79
95
  onClick={() => {
80
96
  props.setScreen("private-key");
@@ -73,4 +73,6 @@ export type WalletDetailsModalScreen =
73
73
  | "private-key"
74
74
  | "manage-wallet"
75
75
  | "wallet-connect-receiver"
76
- | "wallet-manager";
76
+ | "wallet-manager"
77
+ | "link-profile"
78
+ | "linked-profiles";
@@ -1,8 +1,7 @@
1
1
  "use client";
2
2
 
3
- import { useState } from "react";
3
+ import { useEffect, useState } from "react";
4
4
  import type { Chain } from "../../../chains/types.js";
5
- import { cacheChains } from "../../../chains/utils.js";
6
5
  import type { ThirdwebClient } from "../../../client/client.js";
7
6
  import type { Wallet } from "../../../wallets/interfaces/wallet.js";
8
7
  import type { SmartWalletOptions } from "../../../wallets/smart/types.js";
@@ -14,6 +13,7 @@ import type {
14
13
  ConnectButton_connectModalOptions,
15
14
  PayUIOptions,
16
15
  } from "../../core/hooks/connection/ConnectButtonProps.js";
16
+ import { useConnectionManager } from "../../core/providers/connection-manager.js";
17
17
  import type { SupportedTokens } from "../../core/utils/defaultTokens.js";
18
18
  import { EmbedContainer } from "./ConnectWallet/Modal/ConnectEmbed.js";
19
19
  import { useConnectLocale } from "./ConnectWallet/locale/getConnectLocale.js";
@@ -156,15 +156,20 @@ export function PayEmbed(props: PayEmbedProps) {
156
156
  const localeQuery = useConnectLocale(props.locale || "en_US");
157
157
  const [screen, setScreen] = useState<"buy" | "execute-tx">("buy");
158
158
  const theme = props.theme || "dark";
159
+ const connectionManager = useConnectionManager();
159
160
 
160
- // to update cached chains ASAP, we skip using useEffect - this does not trigger a re-render so it's fine
161
- if (props.connectOptions?.chains) {
162
- cacheChains(props.connectOptions?.chains);
163
- }
161
+ // Add props.chain and props.chains to defined chains store
162
+ useEffect(() => {
163
+ if (props.connectOptions?.chain) {
164
+ connectionManager.defineChains([props.connectOptions?.chain]);
165
+ }
166
+ }, [props.connectOptions?.chain, connectionManager]);
164
167
 
165
- if (props.connectOptions?.chain) {
166
- cacheChains([props.connectOptions?.chain]);
167
- }
168
+ useEffect(() => {
169
+ if (props.connectOptions?.chains) {
170
+ connectionManager.defineChains(props.connectOptions?.chains);
171
+ }
172
+ }, [props.connectOptions?.chains, connectionManager]);
168
173
 
169
174
  let content = null;
170
175
  const metadata =
@@ -27,7 +27,7 @@ export const Spinner: React.FC<{
27
27
  r="20"
28
28
  fill="none"
29
29
  stroke={theme.colors[props.color]}
30
- strokeWidth="4"
30
+ strokeWidth={Number(iconSize[props.size]) > 64 ? "2" : "4"}
31
31
  />
32
32
  </Svg>
33
33
  );
@@ -5,7 +5,7 @@ import type { ThirdwebClient } from "../../../../client/client.js";
5
5
  import { NATIVE_TOKEN_ADDRESS } from "../../../../constants/addresses.js";
6
6
  import { iconSize } from "../../../core/design-system/index.js";
7
7
  import { useChainIconUrl } from "../../../core/hooks/others/useChainQuery.js";
8
- import { genericTokenIcon } from "../../../core/utils/socialIcons.js";
8
+ import { genericTokenIcon } from "../../../core/utils/walletIcon.js";
9
9
  import {
10
10
  type NativeToken,
11
11
  isNativeToken,
@@ -8,20 +8,12 @@ import { getStoredActiveWalletId } from "../../../../wallets/manager/index.js";
8
8
  import type { WalletId } from "../../../../wallets/wallet-types.js";
9
9
  import { radius } from "../../../core/design-system/index.js";
10
10
  import { useActiveWallet } from "../../../core/hooks/wallets/useActiveWallet.js";
11
- import {
12
- appleIconUri,
13
- discordIconUri,
14
- emailIcon,
15
- facebookIconUri,
16
- farcasterIconUri,
17
- genericWalletIcon,
18
- googleIconUri,
19
- passkeyIcon,
20
- phoneIcon,
21
- telegramIconUri,
22
- } from "../../../core/utils/socialIcons.js";
23
11
  import { getLastAuthProvider } from "../../../core/utils/storage.js";
24
12
  import { useWalletImage } from "../../../core/utils/wallet.js";
13
+ import {
14
+ genericWalletIcon,
15
+ getWalletIcon,
16
+ } from "../../../core/utils/walletIcon.js";
25
17
  import { Img } from "./Img.js";
26
18
 
27
19
  /**
@@ -57,35 +49,9 @@ export function WalletImage(props: {
57
49
  ) {
58
50
  // when showing an active wallet icon - check last auth provider and override the IAW icon
59
51
  const lastAuthProvider = await getLastAuthProvider(storage);
60
- switch (lastAuthProvider) {
61
- case "google":
62
- image = googleIconUri;
63
- break;
64
- case "apple":
65
- image = appleIconUri;
66
- break;
67
- case "facebook":
68
- image = facebookIconUri;
69
- break;
70
- case "phone":
71
- image = phoneIcon;
72
- break;
73
- case "email":
74
- image = emailIcon;
75
- break;
76
- case "passkey":
77
- image = passkeyIcon;
78
- break;
79
- case "discord":
80
- image = discordIconUri;
81
- break;
82
- case "farcaster":
83
- image = farcasterIconUri;
84
- break;
85
- case "telegram":
86
- image = telegramIconUri;
87
- break;
88
- }
52
+ image = lastAuthProvider
53
+ ? getWalletIcon(lastAuthProvider)
54
+ : genericWalletIcon;
89
55
  } else {
90
56
  const mipdImage = getInstalledWalletProviders().find(
91
57
  (x) => x.info.rdns === activeEOAId,
@@ -35,6 +35,7 @@ function EcosystemWalletConnectUI(props: {
35
35
  termsOfServiceUrl?: string;
36
36
  privacyPolicyUrl?: string;
37
37
  };
38
+ isLinking?: boolean;
38
39
  }) {
39
40
  const data = useSelectionData();
40
41
  const setSelectionData = useSetSelectionData();
@@ -53,6 +54,11 @@ function EcosystemWalletConnectUI(props: {
53
54
  setSelectionData({});
54
55
  };
55
56
 
57
+ const done = () => {
58
+ props.done();
59
+ setSelectionData({});
60
+ };
61
+
56
62
  const otpUserInfo = state?.emailLogin
57
63
  ? { email: state.emailLogin }
58
64
  : state?.phoneLogin
@@ -64,12 +70,13 @@ function EcosystemWalletConnectUI(props: {
64
70
  <OTPLoginUI
65
71
  userInfo={otpUserInfo}
66
72
  locale={locale}
67
- done={props.done}
73
+ done={done}
68
74
  goBack={goBackToMain}
69
75
  wallet={props.wallet}
70
76
  chain={props.chain}
71
77
  client={props.client}
72
78
  size={props.size}
79
+ isLinking={props.isLinking}
73
80
  />
74
81
  );
75
82
  }
@@ -77,12 +84,14 @@ function EcosystemWalletConnectUI(props: {
77
84
  if (state?.passkeyLogin) {
78
85
  return (
79
86
  <PassKeyLogin
87
+ locale={props.connectLocale}
80
88
  wallet={props.wallet}
81
- done={props.done}
89
+ done={done}
82
90
  onBack={goBackToMain}
83
91
  chain={props.chain}
84
92
  client={props.client}
85
93
  size={props.size}
94
+ isLinking={props.isLinking}
86
95
  />
87
96
  );
88
97
  }
@@ -92,13 +101,15 @@ function EcosystemWalletConnectUI(props: {
92
101
  <SocialLogin
93
102
  socialAuth={state.socialLogin.type}
94
103
  locale={locale}
95
- done={props.done}
104
+ done={done}
96
105
  goBack={goBackToMain}
97
106
  wallet={props.wallet}
98
107
  state={state}
99
108
  chain={props.chain}
100
109
  client={props.client}
101
110
  size={props.size}
111
+ connectLocale={props.connectLocale}
112
+ isLinking={props.isLinking}
102
113
  />
103
114
  );
104
115
  }
@@ -107,7 +118,7 @@ function EcosystemWalletConnectUI(props: {
107
118
  <EcosystemWalletFormUIScreen
108
119
  select={() => {}}
109
120
  locale={locale}
110
- done={props.done}
121
+ done={done}
111
122
  goBack={props.goBack}
112
123
  wallet={props.wallet}
113
124
  chain={props.chain}
@@ -115,6 +126,7 @@ function EcosystemWalletConnectUI(props: {
115
126
  size={props.size}
116
127
  connectLocale={props.connectLocale}
117
128
  meta={props.meta}
129
+ isLinking={props.isLinking}
118
130
  />
119
131
  );
120
132
  }
@@ -8,7 +8,7 @@ import { useScreenContext } from "../../ui/ConnectWallet/Modal/screen.js";
8
8
  import { PoweredByThirdweb } from "../../ui/ConnectWallet/PoweredByTW.js";
9
9
  import type { ConnectLocale } from "../../ui/ConnectWallet/locale/types.js";
10
10
  import { Spacer } from "../../ui/components/Spacer.js";
11
- import { Container } from "../../ui/components/basic.js";
11
+ import { Container, ModalHeader } from "../../ui/components/basic.js";
12
12
  import { ConnectWalletSocialOptions } from "../shared/ConnectWalletSocialOptions.js";
13
13
  import type { InAppWalletLocale } from "../shared/locale/types.js";
14
14
  import { EcosystemWalletHeader } from "./EcosystemWalletHeader.js";
@@ -30,6 +30,7 @@ export type EcosystemWalletFormUIProps = {
30
30
  client: ThirdwebClient;
31
31
  chain: Chain | undefined;
32
32
  connectLocale: ConnectLocale;
33
+ isLinking?: boolean;
33
34
  };
34
35
 
35
36
  /**
@@ -54,11 +55,18 @@ export function EcosystemWalletFormUIScreen(props: EcosystemWalletFormUIProps) {
54
55
  minHeight: "250px",
55
56
  }}
56
57
  >
57
- <EcosystemWalletHeader
58
- client={props.client}
59
- onBack={isCompact ? onBack : undefined}
60
- wallet={props.wallet}
61
- />
58
+ {props.isLinking ? (
59
+ <ModalHeader
60
+ title={props.connectLocale.manageWallet.linkProfile}
61
+ onBack={onBack}
62
+ />
63
+ ) : (
64
+ <EcosystemWalletHeader
65
+ client={props.client}
66
+ onBack={isCompact ? onBack : undefined}
67
+ wallet={props.wallet}
68
+ />
69
+ )}
62
70
  <Spacer y="lg" />
63
71
 
64
72
  <Container
@@ -25,7 +25,7 @@ function InAppWalletConnectUI(props: {
25
25
  done: () => void;
26
26
  goBack?: () => void;
27
27
  size: "compact" | "wide";
28
- meta: {
28
+ meta?: {
29
29
  title?: string;
30
30
  titleIconUrl?: string;
31
31
  showThirdwebBranding?: boolean;
@@ -35,6 +35,7 @@ function InAppWalletConnectUI(props: {
35
35
  client: ThirdwebClient;
36
36
  chain: Chain | undefined;
37
37
  connectLocale: ConnectLocale;
38
+ isLinking?: boolean;
38
39
  }) {
39
40
  const data = useSelectionData();
40
41
  const setSelectionData = useSetSelectionData();
@@ -56,6 +57,11 @@ function InAppWalletConnectUI(props: {
56
57
  }
57
58
  : props.goBack;
58
59
 
60
+ const done = () => {
61
+ props.done();
62
+ setSelectionData({});
63
+ };
64
+
59
65
  const otpUserInfo = state?.emailLogin
60
66
  ? { email: state.emailLogin }
61
67
  : state?.phoneLogin
@@ -67,12 +73,13 @@ function InAppWalletConnectUI(props: {
67
73
  <OTPLoginUI
68
74
  userInfo={otpUserInfo}
69
75
  locale={locale}
70
- done={props.done}
76
+ done={done}
71
77
  goBack={goBackToMain}
72
78
  wallet={props.wallet}
73
79
  chain={props.chain}
74
80
  client={props.client}
75
81
  size={props.size}
82
+ isLinking={props.isLinking}
76
83
  />
77
84
  );
78
85
  }
@@ -80,12 +87,14 @@ function InAppWalletConnectUI(props: {
80
87
  if (state?.passkeyLogin) {
81
88
  return (
82
89
  <PassKeyLogin
90
+ locale={props.connectLocale}
83
91
  wallet={props.wallet}
84
- done={props.done}
92
+ done={done}
85
93
  onBack={goBackToMain}
86
94
  chain={props.chain}
87
95
  client={props.client}
88
96
  size={props.size}
97
+ isLinking={props.isLinking}
89
98
  />
90
99
  );
91
100
  }
@@ -95,13 +104,15 @@ function InAppWalletConnectUI(props: {
95
104
  <SocialLogin
96
105
  socialAuth={state.socialLogin.type}
97
106
  locale={locale}
98
- done={props.done}
107
+ done={done}
99
108
  goBack={goBackToMain}
100
109
  wallet={props.wallet}
101
110
  state={state}
102
111
  chain={props.chain}
103
112
  client={props.client}
104
113
  size={props.size}
114
+ connectLocale={props.connectLocale}
115
+ isLinking={props.isLinking}
105
116
  />
106
117
  );
107
118
  }
@@ -111,13 +122,14 @@ function InAppWalletConnectUI(props: {
111
122
  select={() => {}}
112
123
  connectLocale={props.connectLocale}
113
124
  inAppWalletLocale={locale}
114
- done={props.done}
125
+ done={done}
115
126
  goBack={props.goBack}
116
127
  wallet={props.wallet}
117
128
  client={props.client}
118
129
  meta={props.meta}
119
130
  size={props.size}
120
131
  chain={props.chain}
132
+ isLinking={props.isLinking}
121
133
  />
122
134
  );
123
135
  }
@@ -22,7 +22,7 @@ export type InAppWalletFormUIProps = {
22
22
  wallet: Wallet<"inApp">;
23
23
  goBack?: () => void;
24
24
  size: "compact" | "wide";
25
- meta: {
25
+ meta?: {
26
26
  title?: string;
27
27
  titleIconUrl?: string;
28
28
  showThirdwebBranding?: boolean;
@@ -31,6 +31,7 @@ export type InAppWalletFormUIProps = {
31
31
  };
32
32
  client: ThirdwebClient;
33
33
  chain: Chain | undefined;
34
+ isLinking?: boolean;
34
35
  };
35
36
 
36
37
  /**
@@ -43,7 +44,7 @@ export function InAppWalletFormUIScreen(props: InAppWalletFormUIProps) {
43
44
  const isInitialScreen =
44
45
  screen === props.wallet && initialScreen === props.wallet;
45
46
 
46
- const onBack = isInitialScreen ? undefined : props.goBack;
47
+ const onBack = isInitialScreen && !props.isLinking ? undefined : props.goBack;
47
48
 
48
49
  return (
49
50
  <Container
@@ -60,19 +61,19 @@ export function InAppWalletFormUIScreen(props: InAppWalletFormUIProps) {
60
61
  <>
61
62
  <ModalHeader
62
63
  onBack={onBack}
63
- leftAligned={true}
64
+ leftAligned={!props.isLinking}
64
65
  title={
65
66
  <>
66
- {!props.meta.titleIconUrl ? null : (
67
+ {!props.meta?.titleIconUrl ? null : (
67
68
  <Img
68
- src={props.meta.titleIconUrl}
69
+ src={props.meta?.titleIconUrl}
69
70
  width={iconSize.md}
70
71
  height={iconSize.md}
71
72
  client={props.client}
72
73
  />
73
74
  )}
74
75
  <ModalTitle>
75
- {props.meta.title ??
76
+ {props.meta?.title ??
76
77
  props.inAppWalletLocale.emailLoginScreen.title}
77
78
  </ModalTitle>
78
79
  </>
@@ -97,18 +98,18 @@ export function InAppWalletFormUIScreen(props: InAppWalletFormUIProps) {
97
98
  </Container>
98
99
 
99
100
  {isCompact &&
100
- (props.meta.showThirdwebBranding !== false ||
101
- props.meta.termsOfServiceUrl ||
102
- props.meta.privacyPolicyUrl) && <Spacer y="xl" />}
101
+ (props.meta?.showThirdwebBranding !== false ||
102
+ props.meta?.termsOfServiceUrl ||
103
+ props.meta?.privacyPolicyUrl) && <Spacer y="xl" />}
103
104
 
104
105
  <Container flex="column" gap="lg">
105
106
  <TOS
106
- termsOfServiceUrl={props.meta.termsOfServiceUrl}
107
- privacyPolicyUrl={props.meta.privacyPolicyUrl}
107
+ termsOfServiceUrl={props.meta?.termsOfServiceUrl}
108
+ privacyPolicyUrl={props.meta?.privacyPolicyUrl}
108
109
  locale={props.connectLocale.agreement}
109
110
  />
110
111
 
111
- {props.meta.showThirdwebBranding !== false && <PoweredByThirdweb />}
112
+ {props.meta?.showThirdwebBranding !== false && <PoweredByThirdweb />}
112
113
  </Container>
113
114
  </Container>
114
115
  );
@@ -7,6 +7,8 @@ import type { ThirdwebClient } from "../../../../client/client.js";
7
7
  import { webLocalStorage } from "../../../../utils/storage/webStorage.js";
8
8
  import { getEcosystemWalletAuthOptions } from "../../../../wallets/ecosystem/get-ecosystem-wallet-auth-options.js";
9
9
  import { isEcosystemWallet } from "../../../../wallets/ecosystem/is-ecosystem-wallet.js";
10
+ import type { Profile } from "../../../../wallets/in-app/core/authentication/types.js";
11
+ import { linkProfile } from "../../../../wallets/in-app/core/wallet/profiles.js";
10
12
  import { loginWithOauthRedirect } from "../../../../wallets/in-app/web/lib/auth/oauth.js";
11
13
  import type { Account, Wallet } from "../../../../wallets/interfaces/wallet.js";
12
14
  import {
@@ -21,13 +23,13 @@ import {
21
23
  iconSize,
22
24
  spacing,
23
25
  } from "../../../core/design-system/index.js";
26
+ import { setLastAuthProvider } from "../../../core/utils/storage.js";
24
27
  import {
25
28
  emailIcon,
26
29
  passkeyIcon,
27
30
  phoneIcon,
28
31
  socialIcons,
29
- } from "../../../core/utils/socialIcons.js";
30
- import { setLastAuthProvider } from "../../../core/utils/storage.js";
32
+ } from "../../../core/utils/walletIcon.js";
31
33
  import { useSetSelectionData } from "../../providers/wallet-ui-states-provider.js";
32
34
  import { WalletTypeRowButton } from "../../ui/ConnectWallet/WalletTypeRowButton.js";
33
35
  import { Img } from "../../ui/components/Img.js";
@@ -47,7 +49,7 @@ export type ConnectWalletSelectUIState =
47
49
  phoneLogin?: string;
48
50
  socialLogin?: {
49
51
  type: SocialAuthOption;
50
- connectionPromise: Promise<Account>;
52
+ connectionPromise: Promise<Account | Profile[]>;
51
53
  };
52
54
  passkeyLogin?: boolean;
53
55
  };
@@ -70,6 +72,7 @@ export type ConnectWalletSocialOptionsProps = {
70
72
  chain: Chain | undefined;
71
73
  client: ThirdwebClient;
72
74
  size: "compact" | "wide";
75
+ isLinking?: boolean;
73
76
  };
74
77
 
75
78
  /**
@@ -171,7 +174,8 @@ export const ConnectWalletSocialOptions = (
171
174
  if (
172
175
  walletConfig &&
173
176
  "auth" in walletConfig &&
174
- walletConfig?.auth?.mode === "redirect"
177
+ walletConfig?.auth?.mode === "redirect" &&
178
+ !props.isLinking // We do not support redirects for linking
175
179
  ) {
176
180
  return loginWithOauthRedirect({
177
181
  authOption: strategy,
@@ -200,17 +204,18 @@ export const ConnectWalletSocialOptions = (
200
204
  },
201
205
  };
202
206
 
203
- const connectPromise = isEcosystemWallet(wallet)
204
- ? wallet.connect({
205
- ...connectOptions,
206
- ecosystem: {
207
- id: wallet.id,
208
- partnerId: wallet.getConfig()?.partnerId,
209
- },
210
- })
211
- : wallet.connect(connectOptions);
212
-
213
- await setLastAuthProvider(strategy, webLocalStorage);
207
+ const connectPromise = (() => {
208
+ if (props.isLinking) {
209
+ if (wallet.id !== "inApp") {
210
+ throw new Error("Only in-app wallets support multi-auth");
211
+ }
212
+ return linkProfile(wallet, connectOptions);
213
+ } else {
214
+ const connectPromise = wallet.connect(connectOptions);
215
+ setLastAuthProvider(strategy, webLocalStorage);
216
+ return connectPromise;
217
+ }
218
+ })();
214
219
 
215
220
  setData({
216
221
  socialLogin: {