thirdweb 5.61.7-nightly-da9f1964e4ae74ed5d33666788e2d16e4d56614d-20241015000333 → 5.63.0-nightly-3a141e742c19eeeecf031a3014cb476ee69d4c0c-20241016000332

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 (264) hide show
  1. package/dist/cjs/exports/extensions/erc1155.js +3 -1
  2. package/dist/cjs/exports/extensions/erc1155.js.map +1 -1
  3. package/dist/cjs/extensions/erc1155/write/mintToBatch.js +79 -0
  4. package/dist/cjs/extensions/erc1155/write/mintToBatch.js.map +1 -0
  5. package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +15 -4
  6. package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
  7. package/dist/cjs/react/core/utils/walletIcon.js +4 -0
  8. package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
  9. package/dist/cjs/react/native/ui/components/WalletImage.js +5 -2
  10. package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -1
  11. package/dist/cjs/react/native/ui/connect/ConnectModal.js +6 -6
  12. package/dist/cjs/react/native/ui/connect/ConnectModal.js.map +1 -1
  13. package/dist/cjs/react/native/ui/connect/ConnectedButton.js +2 -2
  14. package/dist/cjs/react/native/ui/connect/ConnectedButton.js.map +1 -1
  15. package/dist/cjs/react/native/ui/connect/ConnectedModal.js +3 -3
  16. package/dist/cjs/react/native/ui/connect/ConnectedModal.js.map +1 -1
  17. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +1 -0
  18. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  19. package/dist/cjs/react/native/ui/connect/ReceiveScreen.js +2 -2
  20. package/dist/cjs/react/native/ui/connect/ReceiveScreen.js.map +1 -1
  21. package/dist/cjs/react/native/ui/icons/svgs.js +20 -1
  22. package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
  23. package/dist/cjs/react/web/wallets/in-app/WalletAuth.js +8 -0
  24. package/dist/cjs/react/web/wallets/in-app/WalletAuth.js.map +1 -1
  25. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +2 -0
  26. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  27. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js +11 -16
  28. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  29. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js +7 -0
  30. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  31. package/dist/cjs/react/web/wallets/shared/SocialLogin.js +9 -12
  32. package/dist/cjs/react/web/wallets/shared/SocialLogin.js.map +1 -1
  33. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +1 -0
  34. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  35. package/dist/cjs/version.js +1 -1
  36. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/generate-wallet.enclave.js +2 -2
  37. package/dist/cjs/wallets/in-app/core/actions/generate-wallet.enclave.js.map +1 -0
  38. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/get-enclave-user-status.js +2 -2
  39. package/dist/cjs/wallets/in-app/core/actions/get-enclave-user-status.js.map +1 -0
  40. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/sign-message.enclave.js +6 -5
  41. package/dist/cjs/wallets/in-app/core/actions/sign-message.enclave.js.map +1 -0
  42. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/sign-transaction.enclave.js +6 -5
  43. package/dist/cjs/wallets/in-app/core/actions/sign-transaction.enclave.js.map +1 -0
  44. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/sign-typed-data.enclave.js +6 -5
  45. package/dist/cjs/wallets/in-app/core/actions/sign-typed-data.enclave.js.map +1 -0
  46. package/dist/cjs/wallets/in-app/core/authentication/client-scoped-storage.js +9 -2
  47. package/dist/cjs/wallets/in-app/core/authentication/client-scoped-storage.js.map +1 -1
  48. package/dist/cjs/wallets/in-app/core/authentication/guest.js +1 -1
  49. package/dist/cjs/wallets/in-app/core/authentication/guest.js.map +1 -1
  50. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +4 -8
  51. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  52. package/dist/cjs/wallets/in-app/native/auth/passkeys.js +1 -1
  53. package/dist/cjs/wallets/in-app/native/auth/passkeys.js.map +1 -1
  54. package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js +14 -0
  55. package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
  56. package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js +3 -2
  57. package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
  58. package/dist/cjs/wallets/in-app/native/helpers/constants.js +2 -1
  59. package/dist/cjs/wallets/in-app/native/helpers/constants.js.map +1 -1
  60. package/dist/cjs/wallets/in-app/native/helpers/wallet/migration.js +133 -0
  61. package/dist/cjs/wallets/in-app/native/helpers/wallet/migration.js.map +1 -0
  62. package/dist/cjs/wallets/in-app/native/helpers/wallet/retrieval.js +2 -0
  63. package/dist/cjs/wallets/in-app/native/helpers/wallet/retrieval.js.map +1 -1
  64. package/dist/cjs/wallets/in-app/native/native-connector.js +50 -28
  65. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  66. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +2 -2
  67. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  68. package/dist/cjs/wallets/in-app/web/lib/auth/passkeys.js +1 -1
  69. package/dist/cjs/wallets/in-app/web/lib/auth/passkeys.js.map +1 -1
  70. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +15 -13
  71. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  72. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js +1 -1
  73. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js.map +1 -1
  74. package/dist/cjs/wallets/types.js +1 -0
  75. package/dist/cjs/wallets/types.js.map +1 -1
  76. package/dist/esm/exports/extensions/erc1155.js +1 -0
  77. package/dist/esm/exports/extensions/erc1155.js.map +1 -1
  78. package/dist/esm/extensions/erc1155/write/mintToBatch.js +76 -0
  79. package/dist/esm/extensions/erc1155/write/mintToBatch.js.map +1 -0
  80. package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +15 -4
  81. package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
  82. package/dist/esm/react/core/utils/walletIcon.js +4 -0
  83. package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
  84. package/dist/esm/react/native/ui/components/WalletImage.js +6 -3
  85. package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -1
  86. package/dist/esm/react/native/ui/connect/ConnectModal.js +6 -6
  87. package/dist/esm/react/native/ui/connect/ConnectModal.js.map +1 -1
  88. package/dist/esm/react/native/ui/connect/ConnectedButton.js +2 -2
  89. package/dist/esm/react/native/ui/connect/ConnectedButton.js.map +1 -1
  90. package/dist/esm/react/native/ui/connect/ConnectedModal.js +3 -3
  91. package/dist/esm/react/native/ui/connect/ConnectedModal.js.map +1 -1
  92. package/dist/esm/react/native/ui/connect/InAppWalletUI.js +2 -1
  93. package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  94. package/dist/esm/react/native/ui/connect/ReceiveScreen.js +2 -2
  95. package/dist/esm/react/native/ui/connect/ReceiveScreen.js.map +1 -1
  96. package/dist/esm/react/native/ui/icons/svgs.js +19 -0
  97. package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
  98. package/dist/esm/react/web/wallets/in-app/WalletAuth.js +8 -0
  99. package/dist/esm/react/web/wallets/in-app/WalletAuth.js.map +1 -1
  100. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +2 -0
  101. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  102. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js +12 -17
  103. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  104. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js +7 -0
  105. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  106. package/dist/esm/react/web/wallets/shared/SocialLogin.js +9 -12
  107. package/dist/esm/react/web/wallets/shared/SocialLogin.js.map +1 -1
  108. package/dist/esm/react/web/wallets/shared/oauthSignIn.js +1 -0
  109. package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  110. package/dist/esm/version.js +1 -1
  111. package/dist/esm/wallets/in-app/{web/lib → core}/actions/generate-wallet.enclave.js +2 -2
  112. package/dist/esm/wallets/in-app/core/actions/generate-wallet.enclave.js.map +1 -0
  113. package/dist/esm/wallets/in-app/{web/lib → core}/actions/get-enclave-user-status.js +2 -2
  114. package/dist/esm/wallets/in-app/core/actions/get-enclave-user-status.js.map +1 -0
  115. package/dist/esm/wallets/in-app/{web/lib → core}/actions/sign-message.enclave.js +6 -5
  116. package/dist/esm/wallets/in-app/core/actions/sign-message.enclave.js.map +1 -0
  117. package/dist/esm/wallets/in-app/{web/lib → core}/actions/sign-transaction.enclave.js +6 -5
  118. package/dist/esm/wallets/in-app/core/actions/sign-transaction.enclave.js.map +1 -0
  119. package/dist/esm/wallets/in-app/{web/lib → core}/actions/sign-typed-data.enclave.js +6 -5
  120. package/dist/esm/wallets/in-app/core/actions/sign-typed-data.enclave.js.map +1 -0
  121. package/dist/esm/wallets/in-app/core/authentication/client-scoped-storage.js +9 -2
  122. package/dist/esm/wallets/in-app/core/authentication/client-scoped-storage.js.map +1 -1
  123. package/dist/esm/wallets/in-app/core/authentication/guest.js +1 -1
  124. package/dist/esm/wallets/in-app/core/authentication/guest.js.map +1 -1
  125. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +4 -8
  126. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  127. package/dist/esm/wallets/in-app/native/auth/passkeys.js +1 -1
  128. package/dist/esm/wallets/in-app/native/auth/passkeys.js.map +1 -1
  129. package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js +14 -0
  130. package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
  131. package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js +3 -2
  132. package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
  133. package/dist/esm/wallets/in-app/native/helpers/constants.js +1 -0
  134. package/dist/esm/wallets/in-app/native/helpers/constants.js.map +1 -1
  135. package/dist/esm/wallets/in-app/native/helpers/wallet/migration.js +130 -0
  136. package/dist/esm/wallets/in-app/native/helpers/wallet/migration.js.map +1 -0
  137. package/dist/esm/wallets/in-app/native/helpers/wallet/retrieval.js +2 -2
  138. package/dist/esm/wallets/in-app/native/helpers/wallet/retrieval.js.map +1 -1
  139. package/dist/esm/wallets/in-app/native/native-connector.js +50 -28
  140. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  141. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +2 -2
  142. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  143. package/dist/esm/wallets/in-app/web/lib/auth/passkeys.js +1 -1
  144. package/dist/esm/wallets/in-app/web/lib/auth/passkeys.js.map +1 -1
  145. package/dist/esm/wallets/in-app/web/lib/web-connector.js +15 -13
  146. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  147. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js +1 -1
  148. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js.map +1 -1
  149. package/dist/esm/wallets/types.js +1 -0
  150. package/dist/esm/wallets/types.js.map +1 -1
  151. package/dist/types/exports/extensions/erc1155.d.ts +1 -0
  152. package/dist/types/exports/extensions/erc1155.d.ts.map +1 -1
  153. package/dist/types/extensions/erc1155/write/mintToBatch.d.ts +72 -0
  154. package/dist/types/extensions/erc1155/write/mintToBatch.d.ts.map +1 -0
  155. package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts.map +1 -1
  156. package/dist/types/react/core/utils/walletIcon.d.ts +2 -1
  157. package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
  158. package/dist/types/react/native/ui/components/WalletImage.d.ts +2 -0
  159. package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
  160. package/dist/types/react/native/ui/connect/ConnectModal.d.ts.map +1 -1
  161. package/dist/types/react/native/ui/connect/ConnectedButton.d.ts.map +1 -1
  162. package/dist/types/react/native/ui/connect/ConnectedModal.d.ts.map +1 -1
  163. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
  164. package/dist/types/react/native/ui/connect/ReceiveScreen.d.ts +2 -0
  165. package/dist/types/react/native/ui/connect/ReceiveScreen.d.ts.map +1 -1
  166. package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
  167. package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
  168. package/dist/types/react/web/wallets/in-app/WalletAuth.d.ts.map +1 -1
  169. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  170. package/dist/types/react/web/wallets/shared/OTPLoginUI.d.ts.map +1 -1
  171. package/dist/types/react/web/wallets/shared/SocialLogin.d.ts.map +1 -1
  172. package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
  173. package/dist/types/version.d.ts +1 -1
  174. package/dist/types/wallets/in-app/core/actions/generate-wallet.enclave.d.ts +13 -0
  175. package/dist/types/wallets/in-app/core/actions/generate-wallet.enclave.d.ts.map +1 -0
  176. package/dist/types/wallets/in-app/core/actions/get-enclave-user-status.d.ts +14 -0
  177. package/dist/types/wallets/in-app/core/actions/get-enclave-user-status.d.ts.map +1 -0
  178. package/dist/types/wallets/in-app/core/actions/sign-message.enclave.d.ts +17 -0
  179. package/dist/types/wallets/in-app/core/actions/sign-message.enclave.d.ts.map +1 -0
  180. package/dist/types/wallets/in-app/core/actions/sign-transaction.enclave.d.ts +9 -0
  181. package/dist/types/wallets/in-app/core/actions/sign-transaction.enclave.d.ts.map +1 -0
  182. package/dist/types/wallets/in-app/{web/lib → core}/actions/sign-typed-data.enclave.d.ts +3 -5
  183. package/dist/types/wallets/in-app/core/actions/sign-typed-data.enclave.d.ts.map +1 -0
  184. package/dist/types/wallets/in-app/core/authentication/client-scoped-storage.d.ts +4 -3
  185. package/dist/types/wallets/in-app/core/authentication/client-scoped-storage.d.ts.map +1 -1
  186. package/dist/types/wallets/in-app/core/authentication/types.d.ts +1 -1
  187. package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
  188. package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts +6 -7
  189. package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts.map +1 -1
  190. package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts.map +1 -1
  191. package/dist/types/wallets/in-app/native/helpers/constants.d.ts +1 -0
  192. package/dist/types/wallets/in-app/native/helpers/constants.d.ts.map +1 -1
  193. package/dist/types/wallets/in-app/native/helpers/wallet/migration.d.ts +17 -0
  194. package/dist/types/wallets/in-app/native/helpers/wallet/migration.d.ts.map +1 -0
  195. package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts +27 -0
  196. package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts.map +1 -1
  197. package/dist/types/wallets/in-app/native/native-connector.d.ts +2 -2
  198. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  199. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -1
  200. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +1 -1
  201. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  202. package/dist/types/wallets/types.d.ts +2 -2
  203. package/dist/types/wallets/types.d.ts.map +1 -1
  204. package/package.json +5 -1
  205. package/src/exports/extensions/erc1155.ts +5 -0
  206. package/src/extensions/erc1155/write/mintToBatch.test.ts +74 -0
  207. package/src/extensions/erc1155/write/mintToBatch.ts +117 -0
  208. package/src/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.test.ts +75 -80
  209. package/src/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.ts +18 -4
  210. package/src/react/core/utils/walletIcon.ts +5 -0
  211. package/src/react/native/ui/components/WalletImage.tsx +8 -2
  212. package/src/react/native/ui/connect/ConnectModal.tsx +19 -2
  213. package/src/react/native/ui/connect/ConnectedButton.tsx +8 -2
  214. package/src/react/native/ui/connect/ConnectedModal.tsx +9 -2
  215. package/src/react/native/ui/connect/InAppWalletUI.tsx +2 -0
  216. package/src/react/native/ui/connect/ReceiveScreen.tsx +5 -2
  217. package/src/react/native/ui/icons/svgs.ts +20 -0
  218. package/src/react/web/wallets/in-app/WalletAuth.tsx +8 -0
  219. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +2 -0
  220. package/src/react/web/wallets/shared/OTPLoginUI.tsx +12 -18
  221. package/src/react/web/wallets/shared/PassKeyLogin.tsx +7 -0
  222. package/src/react/web/wallets/shared/SocialLogin.tsx +9 -12
  223. package/src/react/web/wallets/shared/oauthSignIn.ts +1 -0
  224. package/src/version.ts +1 -1
  225. package/src/wallets/in-app/{web/lib → core}/actions/generate-wallet.enclave.ts +6 -8
  226. package/src/wallets/in-app/{web/lib → core}/actions/get-enclave-user-status.ts +5 -5
  227. package/src/wallets/in-app/{web/lib → core}/actions/sign-message.enclave.ts +7 -9
  228. package/src/wallets/in-app/{web/lib → core}/actions/sign-transaction.enclave.ts +8 -10
  229. package/src/wallets/in-app/{web/lib → core}/actions/sign-typed-data.enclave.ts +7 -9
  230. package/src/wallets/in-app/core/authentication/client-scoped-storage.ts +6 -4
  231. package/src/wallets/in-app/core/authentication/guest.ts +1 -1
  232. package/src/wallets/in-app/core/authentication/types.ts +1 -0
  233. package/src/wallets/in-app/core/wallet/enclave-wallet.ts +11 -17
  234. package/src/wallets/in-app/native/auth/passkeys.ts +1 -1
  235. package/src/wallets/in-app/native/helpers/api/fetchers.ts +14 -0
  236. package/src/wallets/in-app/native/helpers/auth/middleware.ts +3 -2
  237. package/src/wallets/in-app/native/helpers/constants.ts +2 -0
  238. package/src/wallets/in-app/native/helpers/wallet/migration.ts +185 -0
  239. package/src/wallets/in-app/native/helpers/wallet/retrieval.ts +2 -2
  240. package/src/wallets/in-app/native/native-connector.ts +62 -28
  241. package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +2 -2
  242. package/src/wallets/in-app/web/lib/auth/passkeys.ts +1 -1
  243. package/src/wallets/in-app/web/lib/web-connector.ts +15 -13
  244. package/src/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.ts +1 -1
  245. package/src/wallets/types.ts +1 -0
  246. package/dist/cjs/wallets/in-app/web/lib/actions/generate-wallet.enclave.js.map +0 -1
  247. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +0 -1
  248. package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +0 -1
  249. package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +0 -1
  250. package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +0 -1
  251. package/dist/esm/wallets/in-app/web/lib/actions/generate-wallet.enclave.js.map +0 -1
  252. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +0 -1
  253. package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +0 -1
  254. package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +0 -1
  255. package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +0 -1
  256. package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts +0 -15
  257. package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts.map +0 -1
  258. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts +0 -14
  259. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts.map +0 -1
  260. package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts +0 -19
  261. package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts.map +0 -1
  262. package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts +0 -11
  263. package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts.map +0 -1
  264. package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts.map +0 -1
@@ -0,0 +1,185 @@
1
+ import { GenerateDataKeyCommand, KMSClient } from "@aws-sdk/client-kms";
2
+ import { fromCognitoIdentity } from "@aws-sdk/credential-providers";
3
+ import QuickCrypto from "react-native-quick-crypto";
4
+ import type { ThirdwebClient } from "../../../../../client/client.js";
5
+ import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
6
+ import { stringToBytes } from "../../../../../utils/encoding/to-bytes.js";
7
+ import { randomBytesBuffer } from "../../../../../utils/random.js";
8
+ import {
9
+ concatUint8Arrays,
10
+ uint8ArrayToBase64,
11
+ } from "../../../../../utils/uint8-array.js";
12
+ import { privateKeyToAccount } from "../../../../private-key.js";
13
+ import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
14
+ import type { AuthStoredTokenWithCookieReturnType } from "../../../core/authentication/types.js";
15
+ import type { UserWallet } from "../../../core/wallet/enclave-wallet.js";
16
+ import { authFetchEmbeddedWalletUser } from "../api/fetchers.js";
17
+ import { postAuth } from "../auth/middleware.js";
18
+ import {
19
+ AWS_REGION,
20
+ ENCLAVE_KMS_KEY_ARN,
21
+ ROUTE_AUTH_COGNITO_ID_TOKEN_V2,
22
+ } from "../constants.js";
23
+ import { getShares, getWalletPrivateKeyFromShares } from "./retrieval.js";
24
+
25
+ /**
26
+ * Migrate a sharded wallet to an enclave wallet.
27
+ *
28
+ * @param args - The arguments for the migration process.
29
+ * @returns The migrated user wallet.
30
+ */
31
+ export async function migrateToEnclaveWallet(args: {
32
+ client: ThirdwebClient;
33
+ storage: ClientScopedStorage;
34
+ storedToken: AuthStoredTokenWithCookieReturnType["storedToken"];
35
+ encryptionKey?: string;
36
+ }): Promise<UserWallet> {
37
+ // setup sharded wallet first, so we have the shares available
38
+ await postAuth({
39
+ storedToken: args.storedToken,
40
+ client: args.client,
41
+ storage: args.storage,
42
+ encryptionKey: args.encryptionKey,
43
+ });
44
+
45
+ const { authShare, deviceShare } = await getShares({
46
+ client: args.client,
47
+ authShare: { toRetrieve: true },
48
+ deviceShare: { toRetrieve: true },
49
+ recoveryShare: { toRetrieve: false },
50
+ storage: args.storage,
51
+ });
52
+
53
+ // construct the sharded wallet
54
+ const privateKey = await getWalletPrivateKeyFromShares([
55
+ authShare,
56
+ deviceShare,
57
+ ]);
58
+ const account = privateKeyToAccount({
59
+ client: args.client,
60
+ privateKey,
61
+ });
62
+ const address = account.address;
63
+
64
+ // get cognito identity
65
+ const idTokenResponse = await authFetchEmbeddedWalletUser({
66
+ client: args.client,
67
+ url: ROUTE_AUTH_COGNITO_ID_TOKEN_V2,
68
+ props: {
69
+ method: "GET",
70
+ },
71
+ storage: args.storage,
72
+ });
73
+ if (!idTokenResponse.ok) {
74
+ throw new Error(
75
+ `Failed to fetch id token from Cognito: ${JSON.stringify(
76
+ await idTokenResponse.json(),
77
+ null,
78
+ 2,
79
+ )}`,
80
+ );
81
+ }
82
+ const idTokenResult = await idTokenResponse.json();
83
+ const { token, identityId } = idTokenResult;
84
+
85
+ const cognitoIdentity = fromCognitoIdentity({
86
+ clientConfig: {
87
+ region: AWS_REGION,
88
+ },
89
+ identityId,
90
+ logins: {
91
+ "cognito-identity.amazonaws.com": token,
92
+ },
93
+ });
94
+
95
+ // get kms key
96
+ const kmsClient = new KMSClient({
97
+ region: AWS_REGION,
98
+ credentials: cognitoIdentity,
99
+ });
100
+ const generateDataKeyCommand = new GenerateDataKeyCommand({
101
+ KeyId: ENCLAVE_KMS_KEY_ARN,
102
+ KeySpec: "AES_256",
103
+ });
104
+ const encryptedKeyResult = await kmsClient.send(generateDataKeyCommand);
105
+ const plaintextKeyBlob = encryptedKeyResult.Plaintext;
106
+ const cipherTextBlob = encryptedKeyResult.CiphertextBlob;
107
+ if (!plaintextKeyBlob || !cipherTextBlob) {
108
+ throw new Error("No migration key found. Please try again.");
109
+ }
110
+
111
+ // encrypt private key
112
+ const iv = randomBytesBuffer(16);
113
+ // @ts-ignore - default import buils but ts doesn't like it
114
+ const key = await QuickCrypto.subtle.importKey(
115
+ "raw",
116
+ plaintextKeyBlob,
117
+ "AES-CBC",
118
+ false,
119
+ ["encrypt", "decrypt"],
120
+ );
121
+
122
+ // @ts-ignore - default import buils but ts doesn't like it
123
+ const encryptedPrivateKey = await QuickCrypto.subtle.encrypt(
124
+ {
125
+ name: "AES-CBC",
126
+ iv,
127
+ },
128
+ key,
129
+ stringToBytes(privateKey),
130
+ );
131
+
132
+ const encryptedData = concatUint8Arrays([
133
+ iv,
134
+ new Uint8Array(encryptedPrivateKey),
135
+ ]);
136
+
137
+ const ivB64 = uint8ArrayToBase64(iv);
138
+ const cipherTextB64 = uint8ArrayToBase64(cipherTextBlob);
139
+ const encryptedPrivateKeyB64 = uint8ArrayToBase64(encryptedData);
140
+
141
+ // execute migration
142
+ const result = await executeMigration({
143
+ client: args.client,
144
+ storage: args.storage,
145
+ address,
146
+ kmsCiphertextB64: cipherTextB64,
147
+ encryptedPrivateKeyB64: encryptedPrivateKeyB64,
148
+ ivB64,
149
+ });
150
+
151
+ return result;
152
+ }
153
+
154
+ async function executeMigration(args: {
155
+ client: ThirdwebClient;
156
+ storage: ClientScopedStorage;
157
+ address: string;
158
+ kmsCiphertextB64: string;
159
+ encryptedPrivateKeyB64: string;
160
+ ivB64: string;
161
+ }): Promise<UserWallet> {
162
+ const migrationResponse = await authFetchEmbeddedWalletUser({
163
+ client: args.client,
164
+ url: `${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/migrate`,
165
+ props: {
166
+ method: "POST",
167
+ body: JSON.stringify({
168
+ address: args.address,
169
+ kmsCiphertextB64: args.kmsCiphertextB64,
170
+ encryptedPrivateKeyB64: args.encryptedPrivateKeyB64,
171
+ ivB64: args.ivB64,
172
+ }),
173
+ },
174
+ storage: args.storage,
175
+ });
176
+ if (!migrationResponse.ok) {
177
+ throw new Error(
178
+ `Failed to migrate to enclave wallet: ${JSON.stringify(
179
+ await migrationResponse.json(),
180
+ )}`,
181
+ );
182
+ }
183
+ const migrationResult = (await migrationResponse.json()) as UserWallet;
184
+ return migrationResult;
185
+ }
@@ -40,7 +40,7 @@ export async function getExistingUserAccount(args: {
40
40
  });
41
41
  }
42
42
 
43
- async function getWalletPrivateKeyFromShares(shares: string[]) {
43
+ export async function getWalletPrivateKeyFromShares(shares: string[]) {
44
44
  const { secrets } = await import("./sss.js");
45
45
  let privateKeyHex = secrets.combine(shares, 0);
46
46
  if (!isHex(privateKeyHex)) {
@@ -86,7 +86,7 @@ async function getAccountFromShares(args: {
86
86
  * @returns The requested shares
87
87
  * @throws if attempting to get deviceShare when it's not present
88
88
  */
89
- async function getShares<
89
+ export async function getShares<
90
90
  A extends boolean,
91
91
  D extends boolean,
92
92
  R extends boolean,
@@ -2,6 +2,7 @@ import type { ThirdwebClient } from "../../../client/client.js";
2
2
  import { stringify } from "../../../utils/json.js";
3
3
  import { nativeLocalStorage } from "../../../utils/storage/nativeStorage.js";
4
4
  import type { Account } from "../../interfaces/wallet.js";
5
+ import { getUserStatus } from "../core/actions/get-enclave-user-status.js";
5
6
  import { authEndpoint } from "../core/authentication/authEndpoint.js";
6
7
  import { ClientScopedStorage } from "../core/authentication/client-scoped-storage.js";
7
8
  import { guestAuthenticate } from "../core/authentication/guest.js";
@@ -29,7 +30,6 @@ import type { InAppConnector } from "../core/interfaces/connector.js";
29
30
  import { EnclaveWallet } from "../core/wallet/enclave-wallet.js";
30
31
  import type { Ecosystem } from "../core/wallet/types.js";
31
32
  import type { IWebWallet } from "../core/wallet/web-wallet.js";
32
- import { getUserStatus } from "../web/lib/actions/get-enclave-user-status.js";
33
33
  import { sendOtp, verifyOtp } from "../web/lib/auth/otp.js";
34
34
  import { deleteActiveAccount, socialAuth } from "./auth/native-auth.js";
35
35
  import { logoutUser } from "./helpers/auth/logout.js";
@@ -44,60 +44,95 @@ type NativeConnectorOptions = {
44
44
  export class InAppNativeConnector implements InAppConnector {
45
45
  private client: ThirdwebClient;
46
46
  private ecosystem?: Ecosystem;
47
+ private storage: ClientScopedStorage;
47
48
  private passkeyDomain?: string;
48
- private localStorage: ClientScopedStorage;
49
49
  private wallet?: IWebWallet;
50
50
 
51
51
  constructor(options: NativeConnectorOptions) {
52
52
  this.client = options.client;
53
- this.ecosystem = options.ecosystem;
54
53
  this.passkeyDomain = options.passkeyDomain;
55
- this.localStorage = new ClientScopedStorage({
54
+ this.ecosystem = options.ecosystem;
55
+ this.storage = new ClientScopedStorage({
56
56
  storage: nativeLocalStorage,
57
57
  clientId: this.client.clientId,
58
- ecosystemId: this.ecosystem?.id,
58
+ ecosystem: options.ecosystem,
59
59
  });
60
60
  }
61
61
 
62
- async initializeWallet(authToken?: string) {
63
- const storedAuthToken = await this.localStorage.getAuthCookie();
64
- if (!authToken && storedAuthToken === null) {
62
+ async initializeWallet(
63
+ authResult?: AuthStoredTokenWithCookieReturnType,
64
+ encryptionKey?: string,
65
+ ) {
66
+ const storedAuthToken = await this.storage.getAuthCookie();
67
+ if (!authResult && storedAuthToken === null) {
65
68
  throw new Error(
66
69
  "No auth token provided and no stored auth token found to initialize the wallet",
67
70
  );
68
71
  }
69
72
  const user = await getUserStatus({
70
- authToken: authToken || (storedAuthToken as string),
73
+ authToken:
74
+ authResult?.storedToken.cookieString || (storedAuthToken as string),
71
75
  client: this.client,
72
- ecosystem: this.ecosystem,
76
+ ecosystem: this.storage.ecosystem,
73
77
  });
74
78
  if (!user) {
75
79
  throw new Error("Cannot initialize wallet, no user logged in");
76
80
  }
77
- const wallet = user.wallets[0];
78
- // TODO (enclaves): Migration to enclave wallet if sharded
81
+ let wallet = user.wallets[0];
82
+
83
+ // TODO (enclaves): Migration to enclave wallet for in-app wallets as well
84
+ if (
85
+ authResult &&
86
+ this.storage.ecosystem &&
87
+ wallet &&
88
+ wallet.type === "sharded"
89
+ ) {
90
+ const { migrateToEnclaveWallet } = await import(
91
+ "./helpers/wallet/migration.js"
92
+ );
93
+ wallet = await migrateToEnclaveWallet({
94
+ client: this.client,
95
+ storage: this.storage,
96
+ storedToken: authResult.storedToken,
97
+ encryptionKey,
98
+ });
99
+ }
100
+
101
+ if (authResult && this.ecosystem && !wallet) {
102
+ // new ecosystem user, generate enclave wallet
103
+ // TODO (enclaves): same flow for in-app wallets
104
+ const { generateWallet } = await import(
105
+ "../core/actions/generate-wallet.enclave.js"
106
+ );
107
+ wallet = await generateWallet({
108
+ authToken: authResult.storedToken.cookieString,
109
+ client: this.client,
110
+ ecosystem: this.ecosystem,
111
+ });
112
+ }
113
+
79
114
  if (wallet && wallet.type === "enclave") {
80
115
  this.wallet = new EnclaveWallet({
81
116
  client: this.client,
82
117
  ecosystem: this.ecosystem,
83
118
  address: wallet.address,
84
- storage: this.localStorage,
119
+ storage: this.storage,
85
120
  });
86
121
  } else {
87
122
  this.wallet = new ShardedWallet({
88
123
  client: this.client,
89
- storage: this.localStorage,
124
+ storage: this.storage,
90
125
  });
91
126
  }
92
127
  }
93
128
 
94
129
  async getUser(): Promise<GetUser> {
95
130
  if (!this.wallet) {
96
- const localAuthToken = await this.localStorage.getAuthCookie();
131
+ const localAuthToken = await this.storage.getAuthCookie();
97
132
  if (!localAuthToken) {
98
133
  return { status: "Logged Out" };
99
134
  }
100
- await this.initializeWallet(localAuthToken);
135
+ await this.initializeWallet();
101
136
  }
102
137
  if (!this.wallet) {
103
138
  throw new Error("Wallet not initialized");
@@ -164,13 +199,13 @@ export class InAppNativeConnector implements InAppConnector {
164
199
  return customJwt({
165
200
  jwt: params.jwt,
166
201
  client: this.client,
167
- storage: this.localStorage,
202
+ storage: this.storage,
168
203
  });
169
204
  case "auth_endpoint":
170
205
  return authEndpoint({
171
206
  payload: params.payload,
172
207
  client: this.client,
173
- storage: this.localStorage,
208
+ storage: this.storage,
174
209
  });
175
210
  default:
176
211
  throw new Error(`Unsupported authentication type: ${strategy}`);
@@ -185,17 +220,16 @@ export class InAppNativeConnector implements InAppConnector {
185
220
  client: this.client,
186
221
  ecosystem: this.ecosystem,
187
222
  });
188
- await this.initializeWallet(authResult.storedToken.cookieString);
189
- if (!this.wallet) {
190
- throw new Error("Wallet not initialized");
191
- }
192
223
  const encryptionKey =
193
224
  params.strategy === "jwt"
194
225
  ? params.encryptionKey
195
226
  : params.strategy === "auth_endpoint"
196
227
  ? params.encryptionKey
197
228
  : undefined;
198
-
229
+ await this.initializeWallet(authResult, encryptionKey);
230
+ if (!this.wallet) {
231
+ throw new Error("Wallet not initialized");
232
+ }
199
233
  await this.wallet.postWalletSetUp({
200
234
  ...authResult,
201
235
  encryptionKey,
@@ -226,7 +260,7 @@ export class InAppNativeConnector implements InAppConnector {
226
260
  storeLastUsedPasskey = true,
227
261
  } = args;
228
262
  const domain = this.passkeyDomain;
229
- const storage = this.localStorage;
263
+ const storage = this.storage;
230
264
  if (!domain) {
231
265
  throw new Error(
232
266
  "Passkey domain is required for native platforms. Please pass it in the 'auth' options when creating the inAppWallet().",
@@ -278,14 +312,14 @@ export class InAppNativeConnector implements InAppConnector {
278
312
  async deleteActiveAccount() {
279
313
  return deleteActiveAccount({
280
314
  client: this.client,
281
- storage: this.localStorage,
315
+ storage: this.storage,
282
316
  });
283
317
  }
284
318
 
285
319
  logout(): Promise<LogoutReturnType> {
286
320
  return logoutUser({
287
321
  client: this.client,
288
- storage: this.localStorage,
322
+ storage: this.storage,
289
323
  });
290
324
  }
291
325
 
@@ -294,7 +328,7 @@ export class InAppNativeConnector implements InAppConnector {
294
328
  return await linkAccount({
295
329
  client: args.client,
296
330
  tokenToLink: storedToken.cookieString,
297
- storage: this.localStorage,
331
+ storage: this.storage,
298
332
  ecosystem: args.ecosystem || this.ecosystem,
299
333
  });
300
334
  }
@@ -303,7 +337,7 @@ export class InAppNativeConnector implements InAppConnector {
303
337
  return getLinkedProfilesInternal({
304
338
  client: this.client,
305
339
  ecosystem: this.ecosystem,
306
- storage: this.localStorage,
340
+ storage: this.storage,
307
341
  });
308
342
  }
309
343
  }
@@ -1,4 +1,6 @@
1
1
  import type { ThirdwebClient } from "../../../../../client/client.js";
2
+ import { generateWallet } from "../../../core/actions/generate-wallet.enclave.js";
3
+ import { getUserStatus } from "../../../core/actions/get-enclave-user-status.js";
2
4
  import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
3
5
  import type {
4
6
  AuthAndWalletRpcReturnType,
@@ -10,8 +12,6 @@ import type {
10
12
  import type { Ecosystem } from "../../../core/wallet/types.js";
11
13
  import type { ClientIdWithQuerierType } from "../../types.js";
12
14
  import type { InAppWalletIframeCommunicator } from "../../utils/iFrameCommunication/InAppWalletIframeCommunicator.js";
13
- import { generateWallet } from "../actions/generate-wallet.enclave.js";
14
- import { getUserStatus } from "../actions/get-enclave-user-status.js";
15
15
  import { BaseLogin } from "./base-login.js";
16
16
 
17
17
  export type AuthQuerierTypes = {
@@ -86,7 +86,7 @@ export async function hasStoredPasskey(
86
86
  const storage = new ClientScopedStorage({
87
87
  storage: webLocalStorage, // TODO (passkey) react native variant of this fn
88
88
  clientId: client.clientId,
89
- ecosystemId: ecosystemId,
89
+ ecosystem: ecosystemId ? { id: ecosystemId } : undefined,
90
90
  });
91
91
  const credId = await storage.getPasskeyCredentialId();
92
92
  return !!credId;
@@ -3,6 +3,7 @@ import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
3
3
  import { webLocalStorage } from "../../../../utils/storage/webStorage.js";
4
4
  import type { SocialAuthOption } from "../../../../wallets/types.js";
5
5
  import type { Account } from "../../../interfaces/wallet.js";
6
+ import { getUserStatus } from "../../core/actions/get-enclave-user-status.js";
6
7
  import { ClientScopedStorage } from "../../core/authentication/client-scoped-storage.js";
7
8
  import { guestAuthenticate } from "../../core/authentication/guest.js";
8
9
  import {
@@ -28,7 +29,6 @@ import type { InAppConnector } from "../../core/interfaces/connector.js";
28
29
  import { EnclaveWallet } from "../../core/wallet/enclave-wallet.js";
29
30
  import type { Ecosystem } from "../../core/wallet/types.js";
30
31
  import type { IWebWallet } from "../../core/wallet/web-wallet.js";
31
- import { getUserStatus } from "../lib/actions/get-enclave-user-status.js";
32
32
  import type { InAppWalletConstructorType } from "../types.js";
33
33
  import { InAppWalletIframeCommunicator } from "../utils/iFrameCommunication/InAppWalletIframeCommunicator.js";
34
34
  import { Auth, type AuthQuerierTypes } from "./auth/iframe-auth.js";
@@ -43,7 +43,7 @@ export class InAppWebConnector implements InAppConnector {
43
43
  private client: ThirdwebClient;
44
44
  private ecosystem?: Ecosystem;
45
45
  private querier: InAppWalletIframeCommunicator<AuthQuerierTypes>;
46
- private localStorage: ClientScopedStorage;
46
+ private storage: ClientScopedStorage;
47
47
 
48
48
  private wallet?: IWebWallet;
49
49
  /**
@@ -79,10 +79,10 @@ export class InAppWebConnector implements InAppConnector {
79
79
  this.client = client;
80
80
  this.ecosystem = ecosystem;
81
81
  this.passkeyDomain = passkeyDomain;
82
- this.localStorage = new ClientScopedStorage({
82
+ this.storage = new ClientScopedStorage({
83
83
  storage: webLocalStorage,
84
84
  clientId: client.clientId,
85
- ecosystemId: ecosystem?.id,
85
+ ecosystem: ecosystem,
86
86
  });
87
87
  this.querier = new InAppWalletIframeCommunicator({
88
88
  clientId: client.clientId,
@@ -94,7 +94,7 @@ export class InAppWebConnector implements InAppConnector {
94
94
  client,
95
95
  querier: this.querier,
96
96
  baseUrl,
97
- localStorage: this.localStorage,
97
+ localStorage: this.storage,
98
98
  ecosystem,
99
99
  onAuthSuccess: async (authResult) => {
100
100
  onAuthSuccess?.(authResult);
@@ -162,7 +162,7 @@ export class InAppWebConnector implements InAppConnector {
162
162
  }
163
163
 
164
164
  async initializeWallet(authToken?: string) {
165
- const storedAuthToken = await this.localStorage.getAuthCookie();
165
+ const storedAuthToken = await this.storage.getAuthCookie();
166
166
  if (!authToken && storedAuthToken === null) {
167
167
  throw new Error(
168
168
  "No auth token provided and no stored auth token found to initialize the wallet",
@@ -183,12 +183,12 @@ export class InAppWebConnector implements InAppConnector {
183
183
  );
184
184
  }
185
185
 
186
- if (user.wallets[0].type === "enclave") {
186
+ if (user.wallets[0]?.type === "enclave") {
187
187
  this.wallet = new EnclaveWallet({
188
188
  client: this.client,
189
189
  ecosystem: this.ecosystem,
190
190
  address: user.wallets[0].address,
191
- storage: this.localStorage,
191
+ storage: this.storage,
192
192
  });
193
193
  return;
194
194
  }
@@ -197,7 +197,7 @@ export class InAppWebConnector implements InAppConnector {
197
197
  client: this.client,
198
198
  ecosystem: this.ecosystem,
199
199
  querier: this.querier,
200
- localStorage: this.localStorage,
200
+ localStorage: this.storage,
201
201
  });
202
202
  }
203
203
 
@@ -227,7 +227,7 @@ export class InAppWebConnector implements InAppConnector {
227
227
  async getUser(): Promise<GetUser> {
228
228
  // If we don't have a wallet yet we'll create one
229
229
  if (!this.wallet) {
230
- const localAuthToken = await this.localStorage.getAuthCookie();
230
+ const localAuthToken = await this.storage.getAuthCookie();
231
231
  if (!localAuthToken) {
232
232
  return { status: "Logged Out" };
233
233
  }
@@ -318,6 +318,7 @@ export class InAppWebConnector implements InAppConnector {
318
318
  case "facebook":
319
319
  case "google":
320
320
  case "telegram":
321
+ case "twitch":
321
322
  case "farcaster":
322
323
  case "line":
323
324
  case "x":
@@ -393,6 +394,7 @@ export class InAppWebConnector implements InAppConnector {
393
394
  case "x":
394
395
  case "guest":
395
396
  case "coinbase":
397
+ case "twitch":
396
398
  case "discord": {
397
399
  const authToken = await this.authenticate(args);
398
400
  return await this.auth.loginWithAuthToken(authToken);
@@ -413,7 +415,7 @@ export class InAppWebConnector implements InAppConnector {
413
415
  const { PasskeyWebClient } = await import("./auth/passkeys.js");
414
416
  const { passkeyName, storeLastUsedPasskey = true } = args;
415
417
  const passkeyClient = new PasskeyWebClient();
416
- const storage = this.localStorage;
418
+ const storage = this.storage;
417
419
  if (args.type === "sign-up") {
418
420
  return registerPasskey({
419
421
  client: this.client,
@@ -444,7 +446,7 @@ export class InAppWebConnector implements InAppConnector {
444
446
  return await linkAccount({
445
447
  client: args.client,
446
448
  tokenToLink: storedToken.cookieString,
447
- storage: this.localStorage,
449
+ storage: this.storage,
448
450
  ecosystem: args.ecosystem || this.ecosystem,
449
451
  });
450
452
  }
@@ -453,7 +455,7 @@ export class InAppWebConnector implements InAppConnector {
453
455
  return getLinkedProfilesInternal({
454
456
  client: this.client,
455
457
  ecosystem: this.ecosystem,
456
- storage: this.localStorage,
458
+ storage: this.storage,
457
459
  });
458
460
  }
459
461
  }
@@ -47,7 +47,7 @@ export class InAppWalletIframeCommunicator<
47
47
  const localStorage = new ClientScopedStorage({
48
48
  storage: webLocalStorage,
49
49
  clientId: this.clientId,
50
- ecosystemId: this.ecosystem?.id,
50
+ ecosystem: this.ecosystem,
51
51
  });
52
52
 
53
53
  return {
@@ -29,6 +29,7 @@ export const socialAuthOptions = [
29
29
  "coinbase",
30
30
  "farcaster",
31
31
  "telegram",
32
+ "twitch",
32
33
  ] as const;
33
34
  export type SocialAuthOption = (typeof socialAuthOptions)[number];
34
35
  export type OAuthOption = SocialAuthOption | "guest";
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-wallet.enclave.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/generate-wallet.enclave.ts"],"names":[],"mappings":";;AASA,wCAkCC;AA1CD,gEAAqE;AACrE,4DAA+D;AAG/D;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,EACnC,SAAS,EACT,MAAM,EACN,SAAS,GAKV;IACC,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,IAAA,+BAAkB,EAAC,aAAa,CAAC,iCAAiC,EACrE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKxC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-enclave-user-status.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts"],"names":[],"mappings":";;AAWA,sCAgCC;AA1CD,gEAAqE;AACrE,4DAA+D;AAI/D;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,EAClC,SAAS,EACT,MAAM,EACN,SAAS,GAKV;IACC,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,IAAA,+BAAkB,EAAC,aAAa,CAAC,0BAA0B,EAC9D;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,4EAA4E;YAC5E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAe,CAAC;AAC/C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign-message.enclave.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/sign-message.enclave.ts"],"names":[],"mappings":";;AAOA,kCAmDC;AAzDD,gEAAqE;AACrE,4DAA+D;AAC/D,0DAAyD;AAIlD,KAAK,UAAU,WAAW,CAAC,EAChC,MAAM,EACN,SAAS,EACT,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAC3B,OAAO,GASR;IACC,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,IAAA,+BAAkB,EAAC,aAAa,CAAC,qCAAqC,EACzE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;QACD,IAAI,EAAE,IAAA,mBAAS,EAAC;YACd,cAAc,EAAE;gBACd,OAAO;gBACP,KAAK;aACN;SACF,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAM3C,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign-transaction.enclave.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/sign-transaction.enclave.ts"],"names":[],"mappings":";;AAQA,0CA6CC;AApDD,gEAAqE;AAErE,4DAA+D;AAC/D,0DAAyD;AAIlD,KAAK,UAAU,eAAe,CAAC,EACpC,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,GAMR;IACC,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,IAAA,+BAAkB,EAAC,aAAa,CAAC,yCAAyC,EAC7E;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;QACD,IAAI,EAAE,IAAA,mBAAS,EAAC;YACd,kBAAkB,EAAE,OAAO;SAC5B,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAM/C,CAAC;IACF,OAAO,iBAAiB,CAAC,SAAgB,CAAC;AAC5C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign-typed-data.enclave.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/sign-typed-data.enclave.ts"],"names":[],"mappings":";;AASA,sCAgDC;AAtDD,gEAAqE;AACrE,4DAA+D;AAC/D,0DAAyD;AAIlD,KAAK,UAAU,aAAa,CAGjC,EACA,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,GAMR;IACC,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,IAAA,+BAAkB,EAAC,aAAa,CAAC,wCAAwC,EAC5E;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;QACD,IAAI,EAAE,IAAA,mBAAS,EAAC;YACd,GAAG,OAAO;SACX,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAM7C,CAAC;IACF,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-wallet.enclave.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/generate-wallet.enclave.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,SAAS,EACT,MAAM,EACN,SAAS,GAKV;IACC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,kBAAkB,CAAC,aAAa,CAAC,iCAAiC,EACrE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKxC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-enclave-user-status.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,SAAS,EACT,MAAM,EACN,SAAS,GAKV;IACC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,kBAAkB,CAAC,aAAa,CAAC,0BAA0B,EAC9D;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,4EAA4E;YAC5E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAe,CAAC;AAC/C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign-message.enclave.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/sign-message.enclave.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAIzD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAChC,MAAM,EACN,SAAS,EACT,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAC3B,OAAO,GASR;IACC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,kBAAkB,CAAC,aAAa,CAAC,qCAAqC,EACzE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;QACD,IAAI,EAAE,SAAS,CAAC;YACd,cAAc,EAAE;gBACd,OAAO;gBACP,KAAK;aACN;SACF,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAM3C,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign-transaction.enclave.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/sign-transaction.enclave.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAIzD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,GAMR;IACC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,kBAAkB,CAAC,aAAa,CAAC,yCAAyC,EAC7E;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;QACD,IAAI,EAAE,SAAS,CAAC;YACd,kBAAkB,EAAE,OAAO;SAC5B,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAM/C,CAAC;IACF,OAAO,iBAAiB,CAAC,SAAgB,CAAC;AAC5C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign-typed-data.enclave.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/sign-typed-data.enclave.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAIzD,MAAM,CAAC,KAAK,UAAU,aAAa,CAGjC,EACA,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,GAMR;IACC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,kBAAkB,CAAC,aAAa,CAAC,wCAAwC,EAC5E;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;QACD,IAAI,EAAE,SAAS,CAAC;YACd,GAAG,OAAO;SACX,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAM7C,CAAC;IACF,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { ThirdwebClient } from "../../../../../client/client.js";
2
- import type { Ecosystem } from "../../../core/wallet/types.js";
3
- /**
4
- * Generate a new enclave wallet using an auth token
5
- * @internal
6
- */
7
- export declare function generateWallet({ authToken, client, ecosystem, }: {
8
- client: ThirdwebClient;
9
- ecosystem: Ecosystem;
10
- authToken: string;
11
- }): Promise<{
12
- address: string;
13
- type: "enclave";
14
- }>;
15
- //# sourceMappingURL=generate-wallet.enclave.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-wallet.enclave.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/actions/generate-wallet.enclave.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;;GAGG;AACH,wBAAsB,cAAc,CAAC,EACnC,SAAS,EACT,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;aAoBc,MAAM;UACT,SAAS;GAKpB"}