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
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
+ import { useCallback, useEffect, useRef, useState } from "react";
3
3
  import type { Chain } from "../../../../chains/types.js";
4
4
  import type { ThirdwebClient } from "../../../../client/client.js";
5
5
  import { webLocalStorage } from "../../../../utils/storage/webStorage.js";
@@ -9,7 +9,6 @@ import {
9
9
  preAuthenticate,
10
10
  } from "../../../../wallets/in-app/web/lib/auth/index.js";
11
11
  import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
12
- import type { EcosystemWalletId } from "../../../../wallets/wallet-types.js";
13
12
  import { useCustomTheme } from "../../../core/design-system/CustomThemeProvider.js";
14
13
  import { fontSize } from "../../../core/design-system/index.js";
15
14
  import { setLastAuthProvider } from "../../../core/utils/storage.js";
@@ -54,7 +53,12 @@ export function OTPLoginUI(props: {
54
53
  const [verifyStatus, setVerifyStatus] = useState<VerificationStatus>("idle");
55
54
  const [error, setError] = useState<string | undefined>();
56
55
  const [accountStatus, setAccountStatus] = useState<AccountStatus>("sending");
57
- const isEcosystem = useMemo(() => isEcosystemWallet(wallet.id), [wallet.id]);
56
+ const ecosystem = isEcosystemWallet(wallet)
57
+ ? {
58
+ id: wallet.id,
59
+ partnerId: wallet.getConfig()?.partnerId,
60
+ }
61
+ : undefined;
58
62
 
59
63
  const [screen] = useState<ScreenToShow>("base");
60
64
 
@@ -66,13 +70,7 @@ export function OTPLoginUI(props: {
66
70
  try {
67
71
  if ("email" in userInfo) {
68
72
  await preAuthenticate({
69
- ecosystem: isEcosystem
70
- ? {
71
- id: wallet.id as EcosystemWalletId,
72
- partnerId: (wallet as Wallet<EcosystemWalletId>).getConfig()
73
- ?.partnerId,
74
- }
75
- : undefined,
73
+ ecosystem,
76
74
  email: userInfo.email,
77
75
  strategy: "email",
78
76
  client: props.client,
@@ -80,13 +78,7 @@ export function OTPLoginUI(props: {
80
78
  setAccountStatus("sent");
81
79
  } else if ("phone" in userInfo) {
82
80
  await preAuthenticate({
83
- ecosystem: isEcosystem
84
- ? {
85
- id: wallet.id as EcosystemWalletId,
86
- partnerId: (wallet as Wallet<EcosystemWalletId>).getConfig()
87
- ?.partnerId,
88
- }
89
- : undefined,
81
+ ecosystem,
90
82
  phoneNumber: userInfo.phone,
91
83
  strategy: "phone",
92
84
  client: props.client,
@@ -100,7 +92,7 @@ export function OTPLoginUI(props: {
100
92
  setVerifyStatus("idle");
101
93
  setAccountStatus("error");
102
94
  }
103
- }, [props.client, userInfo, wallet, isEcosystem]);
95
+ }, [props.client, userInfo, ecosystem]);
104
96
 
105
97
  async function connect(otp: string) {
106
98
  if ("email" in userInfo) {
@@ -133,6 +125,7 @@ export function OTPLoginUI(props: {
133
125
  strategy: "email",
134
126
  email: userInfo.email,
135
127
  verificationCode: otp,
128
+ ecosystem,
136
129
  });
137
130
  } else if ("phone" in userInfo) {
138
131
  await linkProfile({
@@ -140,6 +133,7 @@ export function OTPLoginUI(props: {
140
133
  strategy: "phone",
141
134
  phoneNumber: userInfo.phone,
142
135
  verificationCode: otp,
136
+ ecosystem,
143
137
  });
144
138
  }
145
139
  }
@@ -211,6 +211,12 @@ function SignupScreen(props: {
211
211
  const { wallet, done, client, chain } = props;
212
212
  const [error, setError] = useState<string | undefined>();
213
213
  const [status, setStatus] = useState<"loading" | "error">("loading");
214
+ const ecosystem = isEcosystemWallet(wallet)
215
+ ? {
216
+ id: wallet.id,
217
+ partnerId: wallet.getConfig()?.partnerId,
218
+ }
219
+ : undefined;
214
220
 
215
221
  async function signup() {
216
222
  setStatus("loading");
@@ -220,6 +226,7 @@ function SignupScreen(props: {
220
226
  client,
221
227
  strategy: "passkey",
222
228
  type: "sign-up",
229
+ ecosystem,
223
230
  });
224
231
  } else {
225
232
  await wallet.connect({
@@ -39,6 +39,12 @@ export function SocialLogin(props: {
39
39
  const ewLocale = props.locale;
40
40
  const locale = ewLocale.socialLoginScreen;
41
41
  const themeObj = useCustomTheme();
42
+ const ecosystem = isEcosystemWallet(props.wallet)
43
+ ? {
44
+ id: props.wallet.id,
45
+ partnerId: props.wallet.getConfig()?.partnerId,
46
+ }
47
+ : undefined;
42
48
 
43
49
  const [authError, setAuthError] = useState<string | undefined>(undefined);
44
50
  const { done, wallet } = props;
@@ -62,12 +68,7 @@ export function SocialLogin(props: {
62
68
  return loginWithOauthRedirect({
63
69
  authOption: props.socialAuth,
64
70
  client: props.client,
65
- ecosystem: isEcosystemWallet(wallet)
66
- ? {
67
- id: wallet.id,
68
- partnerId: wallet.getConfig()?.partnerId,
69
- }
70
- : undefined,
71
+ ecosystem,
71
72
  redirectUrl: walletConfig?.auth?.redirectUrl,
72
73
  mode: walletConfig?.auth?.mode,
73
74
  });
@@ -78,12 +79,7 @@ export function SocialLogin(props: {
78
79
  authOption: props.socialAuth,
79
80
  themeObj,
80
81
  client: props.client,
81
- ecosystem: isEcosystemWallet(wallet)
82
- ? {
83
- id: wallet.id,
84
- partnerId: wallet.getConfig()?.partnerId,
85
- }
86
- : undefined,
82
+ ecosystem,
87
83
  });
88
84
 
89
85
  if (!socialWindow) {
@@ -99,6 +95,7 @@ export function SocialLogin(props: {
99
95
  closeOpenedWindow: (openedWindow) => {
100
96
  openedWindow.close();
101
97
  },
98
+ ecosystem,
102
99
  }).catch((e) => {
103
100
  setAuthError(e.message);
104
101
  throw e;
@@ -38,6 +38,7 @@ function getOauthLoginPath(
38
38
  case "google":
39
39
  case "farcaster":
40
40
  case "telegram":
41
+ case "twitch":
41
42
  case "line":
42
43
  case "x":
43
44
  case "guest":
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.61.7-nightly-da9f1964e4ae74ed5d33666788e2d16e4d56614d-20241015000333";
1
+ export const version = "5.63.0-nightly-3a141e742c19eeeecf031a3014cb476ee69d4c0c-20241016000332";
@@ -1,7 +1,8 @@
1
- import type { ThirdwebClient } from "../../../../../client/client.js";
2
- import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
3
- import { getClientFetch } from "../../../../../utils/fetch.js";
4
- import type { Ecosystem } from "../../../core/wallet/types.js";
1
+ import type { ThirdwebClient } from "../../../../client/client.js";
2
+ import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
3
+ import { getClientFetch } from "../../../../utils/fetch.js";
4
+ import type { UserWallet } from "../wallet/enclave-wallet.js";
5
+ import type { Ecosystem } from "../wallet/types.js";
5
6
 
6
7
  /**
7
8
  * Generate a new enclave wallet using an auth token
@@ -34,10 +35,7 @@ export async function generateWallet({
34
35
  }
35
36
 
36
37
  const { wallet } = (await response.json()) as {
37
- wallet: {
38
- address: string;
39
- type: "enclave";
40
- };
38
+ wallet: UserWallet;
41
39
  };
42
40
 
43
41
  return wallet;
@@ -1,8 +1,8 @@
1
- import type { ThirdwebClient } from "../../../../../client/client.js";
2
- import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
3
- import { getClientFetch } from "../../../../../utils/fetch.js";
4
- import type { UserStatus } from "../../../core/wallet/enclave-wallet.js";
5
- import type { Ecosystem } from "../../../core/wallet/types.js";
1
+ import type { ThirdwebClient } from "../../../../client/client.js";
2
+ import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
3
+ import { getClientFetch } from "../../../../utils/fetch.js";
4
+ import type { UserStatus } from "../wallet/enclave-wallet.js";
5
+ import type { Ecosystem } from "../wallet/types.js";
6
6
 
7
7
  /**
8
8
  * Gets the user's status from the backend.
@@ -1,26 +1,24 @@
1
- import type { ThirdwebClient } from "../../../../../client/client.js";
2
- import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
3
- import { getClientFetch } from "../../../../../utils/fetch.js";
4
- import { stringify } from "../../../../../utils/json.js";
5
- import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
6
- import type { Ecosystem } from "../../../core/wallet/types.js";
1
+ import type { ThirdwebClient } from "../../../../client/client.js";
2
+ import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
3
+ import { getClientFetch } from "../../../../utils/fetch.js";
4
+ import { stringify } from "../../../../utils/json.js";
5
+ import type { ClientScopedStorage } from "../authentication/client-scoped-storage.js";
7
6
 
8
7
  export async function signMessage({
9
8
  client,
10
- ecosystem,
11
9
  payload: { message, isRaw },
12
10
  storage,
13
11
  }: {
14
12
  client: ThirdwebClient;
15
- ecosystem?: Ecosystem;
16
13
  payload: {
17
14
  message: string;
18
15
  isRaw: boolean;
19
16
  };
20
17
  storage: ClientScopedStorage;
21
18
  }) {
22
- const clientFetch = getClientFetch(client, ecosystem);
23
19
  const authToken = await storage.getAuthCookie();
20
+ const ecosystem = storage.ecosystem;
21
+ const clientFetch = getClientFetch(client, ecosystem);
24
22
 
25
23
  if (!authToken) {
26
24
  throw new Error("No auth token found when signing message");
@@ -1,24 +1,22 @@
1
- import type { ThirdwebClient } from "../../../../../client/client.js";
2
- import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
3
- import type { Hex } from "../../../../../utils/encoding/hex.js";
4
- import { getClientFetch } from "../../../../../utils/fetch.js";
5
- import { stringify } from "../../../../../utils/json.js";
6
- import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
7
- import type { Ecosystem } from "../../../core/wallet/types.js";
1
+ import type { ThirdwebClient } from "../../../../client/client.js";
2
+ import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
3
+ import type { Hex } from "../../../../utils/encoding/hex.js";
4
+ import { getClientFetch } from "../../../../utils/fetch.js";
5
+ import { stringify } from "../../../../utils/json.js";
6
+ import type { ClientScopedStorage } from "../authentication/client-scoped-storage.js";
8
7
 
9
8
  export async function signTransaction({
10
9
  client,
11
- ecosystem,
12
10
  payload,
13
11
  storage,
14
12
  }: {
15
13
  client: ThirdwebClient;
16
- ecosystem?: Ecosystem;
17
14
  payload: Record<string, Hex | number | undefined>;
18
15
  storage: ClientScopedStorage;
19
16
  }) {
20
- const clientFetch = getClientFetch(client, ecosystem);
21
17
  const authToken = await storage.getAuthCookie();
18
+ const ecosystem = storage.ecosystem;
19
+ const clientFetch = getClientFetch(client, ecosystem);
22
20
 
23
21
  if (!authToken) {
24
22
  throw new Error("No auth token found when signing transaction");
@@ -1,28 +1,26 @@
1
1
  import type { TypedData } from "abitype";
2
2
  import type { TypedDataDefinition } from "viem";
3
- import type { ThirdwebClient } from "../../../../../client/client.js";
4
- import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
5
- import { getClientFetch } from "../../../../../utils/fetch.js";
6
- import { stringify } from "../../../../../utils/json.js";
7
- import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
8
- import type { Ecosystem } from "../../../core/wallet/types.js";
3
+ import type { ThirdwebClient } from "../../../../client/client.js";
4
+ import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
5
+ import { getClientFetch } from "../../../../utils/fetch.js";
6
+ import { stringify } from "../../../../utils/json.js";
7
+ import type { ClientScopedStorage } from "../authentication/client-scoped-storage.js";
9
8
 
10
9
  export async function signTypedData<
11
10
  const typedData extends TypedData | Record<string, unknown>,
12
11
  primaryType extends keyof typedData | "EIP712Domain" = keyof typedData,
13
12
  >({
14
13
  client,
15
- ecosystem,
16
14
  payload,
17
15
  storage,
18
16
  }: {
19
17
  client: ThirdwebClient;
20
- ecosystem?: Ecosystem;
21
18
  payload: TypedDataDefinition<typedData, primaryType>;
22
19
  storage: ClientScopedStorage;
23
20
  }) {
24
- const clientFetch = getClientFetch(client, ecosystem);
25
21
  const authToken = await storage.getAuthCookie();
22
+ const ecosystem = storage.ecosystem;
23
+ const clientFetch = getClientFetch(client, ecosystem);
26
24
 
27
25
  if (!authToken) {
28
26
  throw new Error("No auth token found when signing typed data");
@@ -1,5 +1,4 @@
1
1
  import type { AsyncStorage } from "../../../../utils/storage/AsyncStorage.js";
2
- import type { EcosystemWalletId } from "../../../wallet-types.js";
3
2
  import {
4
3
  AUTH_TOKEN_LOCAL_STORAGE_NAME,
5
4
  DEVICE_SHARE_LOCAL_STORAGE_NAME,
@@ -8,6 +7,7 @@ import {
8
7
  WALLET_CONNECT_SESSIONS_LOCAL_STORAGE_NAME,
9
8
  WALLET_USER_ID_LOCAL_STORAGE_NAME,
10
9
  } from "../constants/settings.js";
10
+ import type { Ecosystem } from "../wallet/types.js";
11
11
 
12
12
  const data = new Map<string, string>();
13
13
 
@@ -17,20 +17,22 @@ const data = new Map<string, string>();
17
17
  export class ClientScopedStorage {
18
18
  protected key: string;
19
19
  protected storage: AsyncStorage | null;
20
+ public ecosystem?: Ecosystem;
20
21
  /**
21
22
  * @internal
22
23
  */
23
24
  constructor({
24
25
  storage,
25
26
  clientId,
26
- ecosystemId,
27
+ ecosystem,
27
28
  }: {
28
29
  storage: AsyncStorage | null;
29
30
  clientId: string;
30
- ecosystemId?: EcosystemWalletId;
31
+ ecosystem?: Ecosystem;
31
32
  }) {
32
33
  this.storage = storage;
33
- this.key = getLocalStorageKey(clientId, ecosystemId);
34
+ this.key = getLocalStorageKey(clientId, ecosystem?.id);
35
+ this.ecosystem = ecosystem;
34
36
  }
35
37
 
36
38
  protected async getItem(key: string): Promise<string | null> {
@@ -19,7 +19,7 @@ export async function guestAuthenticate(args: {
19
19
  const storage = new ClientScopedStorage({
20
20
  storage: args.storage,
21
21
  clientId: args.client.clientId,
22
- ecosystemId: args.ecosystem?.id,
22
+ ecosystem: args.ecosystem,
23
23
  });
24
24
 
25
25
  let sessionId = await storage.getGuestSessionId();
@@ -100,6 +100,7 @@ export type AuthProvider =
100
100
  | "Coinbase"
101
101
  | "X"
102
102
  | "Line"
103
+ | "Twitch"
103
104
  | "Farcaster"
104
105
  | "Telegram";
105
106
 
@@ -11,10 +11,10 @@ import type {
11
11
  Account,
12
12
  SendTransactionOption,
13
13
  } from "../../../interfaces/wallet.js";
14
- import { getUserStatus } from "../../web/lib/actions/get-enclave-user-status.js";
15
- import { signMessage as signEnclaveMessage } from "../../web/lib/actions/sign-message.enclave.js";
16
- import { signTransaction as signEnclaveTransaction } from "../../web/lib/actions/sign-transaction.enclave.js";
17
- import { signTypedData as signEnclaveTypedData } from "../../web/lib/actions/sign-typed-data.enclave.js";
14
+ import { getUserStatus } from "../actions/get-enclave-user-status.js";
15
+ import { signMessage as signEnclaveMessage } from "../actions/sign-message.enclave.js";
16
+ import { signTransaction as signEnclaveTransaction } from "../actions/sign-transaction.enclave.js";
17
+ import { signTypedData as signEnclaveTypedData } from "../actions/sign-typed-data.enclave.js";
18
18
  import type { ClientScopedStorage } from "../authentication/client-scoped-storage.js";
19
19
  import type {
20
20
  AuthDetails,
@@ -33,18 +33,16 @@ export type UserStatus = {
33
33
  | { address: string; [key: string]: string }
34
34
  | { id: string; [key: string]: string };
35
35
  }[];
36
- wallets:
37
- | [
38
- {
39
- address: string;
40
- createdAt: string;
41
- type: "sharded" | "enclave";
42
- },
43
- ]
44
- | [];
36
+ wallets: UserWallet[];
45
37
  id: string;
46
38
  };
47
39
 
40
+ export type UserWallet = {
41
+ address: string;
42
+ createdAt: string;
43
+ type: "sharded" | "enclave";
44
+ };
45
+
48
46
  export class EnclaveWallet implements IWebWallet {
49
47
  private client: ThirdwebClient;
50
48
  private ecosystem?: Ecosystem;
@@ -130,7 +128,6 @@ export class EnclaveWallet implements IWebWallet {
130
128
  */
131
129
  async getAccount(): Promise<Account> {
132
130
  const client = this.client;
133
- const ecosystem = this.ecosystem;
134
131
  const storage = this.localStorage;
135
132
 
136
133
  const _signTransaction = async (tx: SendTransactionOption) => {
@@ -171,7 +168,6 @@ export class EnclaveWallet implements IWebWallet {
171
168
 
172
169
  return signEnclaveTransaction({
173
170
  client,
174
- ecosystem,
175
171
  storage,
176
172
  payload: transaction,
177
173
  });
@@ -218,7 +214,6 @@ export class EnclaveWallet implements IWebWallet {
218
214
 
219
215
  const { signature } = await signEnclaveMessage({
220
216
  client,
221
- ecosystem,
222
217
  payload: messagePayload,
223
218
  storage,
224
219
  });
@@ -228,7 +223,6 @@ export class EnclaveWallet implements IWebWallet {
228
223
  const parsedTypedData = parseTypedData(_typedData);
229
224
  const { signature } = await signEnclaveTypedData({
230
225
  client,
231
- ecosystem,
232
226
  payload: parsedTypedData,
233
227
  storage,
234
228
  });
@@ -125,7 +125,7 @@ export async function hasStoredPasskey(
125
125
  const storage = new ClientScopedStorage({
126
126
  storage: nativeLocalStorage,
127
127
  clientId: client.clientId,
128
- ecosystemId: ecosystemId,
128
+ ecosystem: ecosystemId ? { id: ecosystemId } : undefined,
129
129
  });
130
130
  const credId = await storage.getPasskeyCredentialId();
131
131
  return !!credId;
@@ -14,6 +14,8 @@ import { createErrorMessage } from "../errors.js";
14
14
 
15
15
  const EMBEDDED_WALLET_TOKEN_HEADER = "embedded-wallet-token";
16
16
  const PAPER_CLIENT_ID_HEADER = "x-thirdweb-client-id";
17
+ const ECOSYSTEM_ID_HEADER = "x-ecosystem-id";
18
+ const ECOSYSTEM_PARTNER_ID_HEADER = "x-ecosystem-partner-id";
17
19
 
18
20
  let sessionNonce: Hex | undefined = undefined;
19
21
 
@@ -63,6 +65,12 @@ export async function authFetchEmbeddedWalletUser(args: {
63
65
  authTokenClient || ""
64
66
  }`,
65
67
  [PAPER_CLIENT_ID_HEADER]: client.clientId,
68
+ ...(storage.ecosystem
69
+ ? {
70
+ [ECOSYSTEM_ID_HEADER]: storage.ecosystem.id,
71
+ [ECOSYSTEM_PARTNER_ID_HEADER]: storage.ecosystem?.partnerId,
72
+ }
73
+ : {}),
66
74
  ...getSessionHeaders(),
67
75
  }
68
76
  : {
@@ -70,6 +78,12 @@ export async function authFetchEmbeddedWalletUser(args: {
70
78
  authTokenClient || ""
71
79
  }`,
72
80
  [PAPER_CLIENT_ID_HEADER]: client.clientId,
81
+ ...(storage.ecosystem
82
+ ? {
83
+ [ECOSYSTEM_ID_HEADER]: storage.ecosystem.id,
84
+ [ECOSYSTEM_PARTNER_ID_HEADER]: storage.ecosystem?.partnerId,
85
+ }
86
+ : {}),
73
87
  ...getSessionHeaders(),
74
88
  };
75
89
 
@@ -102,10 +102,11 @@ async function getRecoveryCode(args: {
102
102
  }
103
103
  try {
104
104
  return await getCognitoRecoveryPasswordV2({ client, storage });
105
- } catch {
105
+ } catch (err) {
106
+ console.error("Error recovering wallet", err);
106
107
  return await getCognitoRecoveryPasswordV1({ client, storage }).catch(
107
108
  () => {
108
- throw new Error("Something went wrong getting cognito recovery code");
109
+ throw new Error("Something went wrong while recovering wallet");
109
110
  },
110
111
  );
111
112
  }
@@ -22,6 +22,8 @@ export const GENERATE_RECOVERY_PASSWORD_LAMBDA_FUNCTION_V1 =
22
22
  "arn:aws:lambda:us-west-2:324457261097:function:recovery-share-password-GenerateRecoverySharePassw-bbE5ZbVAToil";
23
23
  export const GENERATE_RECOVERY_PASSWORD_LAMBDA_FUNCTION_V2 =
24
24
  "arn:aws:lambda:us-west-2:324457261097:function:lambda-thirdweb-auth-enc-key-prod-ThirdwebAuthEncKeyFunction";
25
+ export const ENCLAVE_KMS_KEY_ARN =
26
+ "arn:aws:kms:us-west-2:324457261097:key/8b2a8cd5-9b22-4ea0-a6bc-463824a78f20";
25
27
 
26
28
  // TODO allow overriding domain
27
29
  const DOMAIN_URL_2023 = getThirdwebBaseUrl("inAppWallet");