thirdweb 5.61.6 → 5.62.0

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 (234) 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/native/ui/components/WalletImage.js +3 -2
  8. package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -1
  9. package/dist/cjs/react/native/ui/connect/ConnectModal.js +6 -6
  10. package/dist/cjs/react/native/ui/connect/ConnectModal.js.map +1 -1
  11. package/dist/cjs/react/native/ui/connect/ConnectedButton.js +2 -2
  12. package/dist/cjs/react/native/ui/connect/ConnectedButton.js.map +1 -1
  13. package/dist/cjs/react/native/ui/connect/ConnectedModal.js +3 -3
  14. package/dist/cjs/react/native/ui/connect/ConnectedModal.js.map +1 -1
  15. package/dist/cjs/react/native/ui/connect/ReceiveScreen.js +2 -2
  16. package/dist/cjs/react/native/ui/connect/ReceiveScreen.js.map +1 -1
  17. package/dist/cjs/react/web/wallets/in-app/WalletAuth.js +8 -0
  18. package/dist/cjs/react/web/wallets/in-app/WalletAuth.js.map +1 -1
  19. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
  20. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  21. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js +11 -16
  22. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  23. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js +7 -0
  24. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  25. package/dist/cjs/react/web/wallets/shared/SocialLogin.js +9 -12
  26. package/dist/cjs/react/web/wallets/shared/SocialLogin.js.map +1 -1
  27. package/dist/cjs/version.js +1 -1
  28. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/generate-wallet.enclave.js +2 -2
  29. package/dist/cjs/wallets/in-app/core/actions/generate-wallet.enclave.js.map +1 -0
  30. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/get-enclave-user-status.js +2 -2
  31. package/dist/cjs/wallets/in-app/core/actions/get-enclave-user-status.js.map +1 -0
  32. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/sign-message.enclave.js +6 -5
  33. package/dist/cjs/wallets/in-app/core/actions/sign-message.enclave.js.map +1 -0
  34. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/sign-transaction.enclave.js +6 -5
  35. package/dist/cjs/wallets/in-app/core/actions/sign-transaction.enclave.js.map +1 -0
  36. package/dist/cjs/wallets/in-app/{web/lib → core}/actions/sign-typed-data.enclave.js +6 -5
  37. package/dist/cjs/wallets/in-app/core/actions/sign-typed-data.enclave.js.map +1 -0
  38. package/dist/cjs/wallets/in-app/core/authentication/client-scoped-storage.js +9 -2
  39. package/dist/cjs/wallets/in-app/core/authentication/client-scoped-storage.js.map +1 -1
  40. package/dist/cjs/wallets/in-app/core/authentication/guest.js +1 -1
  41. package/dist/cjs/wallets/in-app/core/authentication/guest.js.map +1 -1
  42. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +4 -8
  43. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  44. package/dist/cjs/wallets/in-app/native/auth/passkeys.js +1 -1
  45. package/dist/cjs/wallets/in-app/native/auth/passkeys.js.map +1 -1
  46. package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js +14 -0
  47. package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
  48. package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js +3 -2
  49. package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
  50. package/dist/cjs/wallets/in-app/native/helpers/constants.js +2 -1
  51. package/dist/cjs/wallets/in-app/native/helpers/constants.js.map +1 -1
  52. package/dist/cjs/wallets/in-app/native/helpers/wallet/migration.js +133 -0
  53. package/dist/cjs/wallets/in-app/native/helpers/wallet/migration.js.map +1 -0
  54. package/dist/cjs/wallets/in-app/native/helpers/wallet/retrieval.js +2 -0
  55. package/dist/cjs/wallets/in-app/native/helpers/wallet/retrieval.js.map +1 -1
  56. package/dist/cjs/wallets/in-app/native/native-connector.js +50 -28
  57. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  58. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +2 -2
  59. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  60. package/dist/cjs/wallets/in-app/web/lib/auth/passkeys.js +1 -1
  61. package/dist/cjs/wallets/in-app/web/lib/auth/passkeys.js.map +1 -1
  62. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +13 -13
  63. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  64. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js +1 -1
  65. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js.map +1 -1
  66. package/dist/esm/exports/extensions/erc1155.js +1 -0
  67. package/dist/esm/exports/extensions/erc1155.js.map +1 -1
  68. package/dist/esm/extensions/erc1155/write/mintToBatch.js +76 -0
  69. package/dist/esm/extensions/erc1155/write/mintToBatch.js.map +1 -0
  70. package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +15 -4
  71. package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
  72. package/dist/esm/react/native/ui/components/WalletImage.js +3 -2
  73. package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -1
  74. package/dist/esm/react/native/ui/connect/ConnectModal.js +6 -6
  75. package/dist/esm/react/native/ui/connect/ConnectModal.js.map +1 -1
  76. package/dist/esm/react/native/ui/connect/ConnectedButton.js +2 -2
  77. package/dist/esm/react/native/ui/connect/ConnectedButton.js.map +1 -1
  78. package/dist/esm/react/native/ui/connect/ConnectedModal.js +3 -3
  79. package/dist/esm/react/native/ui/connect/ConnectedModal.js.map +1 -1
  80. package/dist/esm/react/native/ui/connect/ReceiveScreen.js +2 -2
  81. package/dist/esm/react/native/ui/connect/ReceiveScreen.js.map +1 -1
  82. package/dist/esm/react/web/wallets/in-app/WalletAuth.js +8 -0
  83. package/dist/esm/react/web/wallets/in-app/WalletAuth.js.map +1 -1
  84. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
  85. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  86. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js +12 -17
  87. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  88. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js +7 -0
  89. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  90. package/dist/esm/react/web/wallets/shared/SocialLogin.js +9 -12
  91. package/dist/esm/react/web/wallets/shared/SocialLogin.js.map +1 -1
  92. package/dist/esm/version.js +1 -1
  93. package/dist/esm/wallets/in-app/{web/lib → core}/actions/generate-wallet.enclave.js +2 -2
  94. package/dist/esm/wallets/in-app/core/actions/generate-wallet.enclave.js.map +1 -0
  95. package/dist/esm/wallets/in-app/{web/lib → core}/actions/get-enclave-user-status.js +2 -2
  96. package/dist/esm/wallets/in-app/core/actions/get-enclave-user-status.js.map +1 -0
  97. package/dist/esm/wallets/in-app/{web/lib → core}/actions/sign-message.enclave.js +6 -5
  98. package/dist/esm/wallets/in-app/core/actions/sign-message.enclave.js.map +1 -0
  99. package/dist/esm/wallets/in-app/{web/lib → core}/actions/sign-transaction.enclave.js +6 -5
  100. package/dist/esm/wallets/in-app/core/actions/sign-transaction.enclave.js.map +1 -0
  101. package/dist/esm/wallets/in-app/{web/lib → core}/actions/sign-typed-data.enclave.js +6 -5
  102. package/dist/esm/wallets/in-app/core/actions/sign-typed-data.enclave.js.map +1 -0
  103. package/dist/esm/wallets/in-app/core/authentication/client-scoped-storage.js +9 -2
  104. package/dist/esm/wallets/in-app/core/authentication/client-scoped-storage.js.map +1 -1
  105. package/dist/esm/wallets/in-app/core/authentication/guest.js +1 -1
  106. package/dist/esm/wallets/in-app/core/authentication/guest.js.map +1 -1
  107. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +4 -8
  108. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  109. package/dist/esm/wallets/in-app/native/auth/passkeys.js +1 -1
  110. package/dist/esm/wallets/in-app/native/auth/passkeys.js.map +1 -1
  111. package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js +14 -0
  112. package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
  113. package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js +3 -2
  114. package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
  115. package/dist/esm/wallets/in-app/native/helpers/constants.js +1 -0
  116. package/dist/esm/wallets/in-app/native/helpers/constants.js.map +1 -1
  117. package/dist/esm/wallets/in-app/native/helpers/wallet/migration.js +130 -0
  118. package/dist/esm/wallets/in-app/native/helpers/wallet/migration.js.map +1 -0
  119. package/dist/esm/wallets/in-app/native/helpers/wallet/retrieval.js +2 -2
  120. package/dist/esm/wallets/in-app/native/helpers/wallet/retrieval.js.map +1 -1
  121. package/dist/esm/wallets/in-app/native/native-connector.js +50 -28
  122. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  123. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +2 -2
  124. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  125. package/dist/esm/wallets/in-app/web/lib/auth/passkeys.js +1 -1
  126. package/dist/esm/wallets/in-app/web/lib/auth/passkeys.js.map +1 -1
  127. package/dist/esm/wallets/in-app/web/lib/web-connector.js +13 -13
  128. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  129. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js +1 -1
  130. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js.map +1 -1
  131. package/dist/types/exports/extensions/erc1155.d.ts +1 -0
  132. package/dist/types/exports/extensions/erc1155.d.ts.map +1 -1
  133. package/dist/types/extensions/erc1155/write/mintToBatch.d.ts +72 -0
  134. package/dist/types/extensions/erc1155/write/mintToBatch.d.ts.map +1 -0
  135. package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts.map +1 -1
  136. package/dist/types/react/native/ui/components/WalletImage.d.ts +2 -0
  137. package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
  138. package/dist/types/react/native/ui/connect/ConnectModal.d.ts.map +1 -1
  139. package/dist/types/react/native/ui/connect/ConnectedButton.d.ts.map +1 -1
  140. package/dist/types/react/native/ui/connect/ConnectedModal.d.ts.map +1 -1
  141. package/dist/types/react/native/ui/connect/ReceiveScreen.d.ts +2 -0
  142. package/dist/types/react/native/ui/connect/ReceiveScreen.d.ts.map +1 -1
  143. package/dist/types/react/web/wallets/in-app/WalletAuth.d.ts.map +1 -1
  144. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  145. package/dist/types/react/web/wallets/shared/OTPLoginUI.d.ts.map +1 -1
  146. package/dist/types/react/web/wallets/shared/SocialLogin.d.ts.map +1 -1
  147. package/dist/types/version.d.ts +1 -1
  148. package/dist/types/wallets/in-app/core/actions/generate-wallet.enclave.d.ts +13 -0
  149. package/dist/types/wallets/in-app/core/actions/generate-wallet.enclave.d.ts.map +1 -0
  150. package/dist/types/wallets/in-app/core/actions/get-enclave-user-status.d.ts +14 -0
  151. package/dist/types/wallets/in-app/core/actions/get-enclave-user-status.d.ts.map +1 -0
  152. package/dist/types/wallets/in-app/core/actions/sign-message.enclave.d.ts +17 -0
  153. package/dist/types/wallets/in-app/core/actions/sign-message.enclave.d.ts.map +1 -0
  154. package/dist/types/wallets/in-app/core/actions/sign-transaction.enclave.d.ts +9 -0
  155. package/dist/types/wallets/in-app/core/actions/sign-transaction.enclave.d.ts.map +1 -0
  156. package/dist/types/wallets/in-app/{web/lib → core}/actions/sign-typed-data.enclave.d.ts +3 -5
  157. package/dist/types/wallets/in-app/core/actions/sign-typed-data.enclave.d.ts.map +1 -0
  158. package/dist/types/wallets/in-app/core/authentication/client-scoped-storage.d.ts +4 -3
  159. package/dist/types/wallets/in-app/core/authentication/client-scoped-storage.d.ts.map +1 -1
  160. package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts +6 -7
  161. package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts.map +1 -1
  162. package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts.map +1 -1
  163. package/dist/types/wallets/in-app/native/helpers/constants.d.ts +1 -0
  164. package/dist/types/wallets/in-app/native/helpers/constants.d.ts.map +1 -1
  165. package/dist/types/wallets/in-app/native/helpers/wallet/migration.d.ts +17 -0
  166. package/dist/types/wallets/in-app/native/helpers/wallet/migration.d.ts.map +1 -0
  167. package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts +27 -0
  168. package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts.map +1 -1
  169. package/dist/types/wallets/in-app/native/native-connector.d.ts +2 -2
  170. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  171. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -1
  172. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +1 -1
  173. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  174. package/package.json +32 -28
  175. package/src/exports/extensions/erc1155.ts +5 -0
  176. package/src/extensions/erc1155/read/getNFTs.test.ts +44 -0
  177. package/src/extensions/erc1155/write/lazyMint.test.ts +35 -0
  178. package/src/extensions/erc1155/write/mintAdditionalSupplyTo.test.ts +38 -0
  179. package/src/extensions/erc1155/write/mintTo.test.ts +43 -0
  180. package/src/extensions/erc1155/write/mintToBatch.test.ts +74 -0
  181. package/src/extensions/erc1155/write/mintToBatch.ts +117 -0
  182. package/src/extensions/erc20/read/isERC20.test.ts +1 -1
  183. package/src/extensions/erc20/write/transferBatch.test.ts +1 -1
  184. package/src/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.test.ts +75 -80
  185. package/src/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.ts +18 -4
  186. package/src/react/native/ui/components/WalletImage.tsx +5 -2
  187. package/src/react/native/ui/connect/ConnectModal.tsx +19 -2
  188. package/src/react/native/ui/connect/ConnectedButton.tsx +8 -2
  189. package/src/react/native/ui/connect/ConnectedModal.tsx +9 -2
  190. package/src/react/native/ui/connect/ReceiveScreen.tsx +5 -2
  191. package/src/react/web/wallets/in-app/WalletAuth.tsx +8 -0
  192. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +1 -0
  193. package/src/react/web/wallets/shared/OTPLoginUI.tsx +12 -18
  194. package/src/react/web/wallets/shared/PassKeyLogin.tsx +7 -0
  195. package/src/react/web/wallets/shared/SocialLogin.tsx +9 -12
  196. package/src/version.ts +1 -1
  197. package/src/wallets/in-app/{web/lib → core}/actions/generate-wallet.enclave.ts +6 -8
  198. package/src/wallets/in-app/{web/lib → core}/actions/get-enclave-user-status.ts +5 -5
  199. package/src/wallets/in-app/{web/lib → core}/actions/sign-message.enclave.ts +7 -9
  200. package/src/wallets/in-app/{web/lib → core}/actions/sign-transaction.enclave.ts +8 -10
  201. package/src/wallets/in-app/{web/lib → core}/actions/sign-typed-data.enclave.ts +7 -9
  202. package/src/wallets/in-app/core/authentication/client-scoped-storage.ts +6 -4
  203. package/src/wallets/in-app/core/authentication/guest.ts +1 -1
  204. package/src/wallets/in-app/core/wallet/enclave-wallet.ts +11 -17
  205. package/src/wallets/in-app/native/auth/passkeys.ts +1 -1
  206. package/src/wallets/in-app/native/helpers/api/fetchers.ts +14 -0
  207. package/src/wallets/in-app/native/helpers/auth/middleware.ts +3 -2
  208. package/src/wallets/in-app/native/helpers/constants.ts +2 -0
  209. package/src/wallets/in-app/native/helpers/wallet/migration.ts +185 -0
  210. package/src/wallets/in-app/native/helpers/wallet/retrieval.ts +2 -2
  211. package/src/wallets/in-app/native/native-connector.ts +62 -28
  212. package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +2 -2
  213. package/src/wallets/in-app/web/lib/auth/passkeys.ts +1 -1
  214. package/src/wallets/in-app/web/lib/web-connector.ts +13 -13
  215. package/src/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.ts +1 -1
  216. package/dist/cjs/wallets/in-app/web/lib/actions/generate-wallet.enclave.js.map +0 -1
  217. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +0 -1
  218. package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +0 -1
  219. package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +0 -1
  220. package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +0 -1
  221. package/dist/esm/wallets/in-app/web/lib/actions/generate-wallet.enclave.js.map +0 -1
  222. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +0 -1
  223. package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +0 -1
  224. package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +0 -1
  225. package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +0 -1
  226. package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts +0 -15
  227. package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts.map +0 -1
  228. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts +0 -14
  229. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts.map +0 -1
  230. package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts +0 -19
  231. package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts.map +0 -1
  232. package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts +0 -11
  233. package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts.map +0 -1
  234. package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts.map +0 -1
@@ -0,0 +1,17 @@
1
+ import type { ThirdwebClient } from "../../../../../client/client.js";
2
+ import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
3
+ import type { AuthStoredTokenWithCookieReturnType } from "../../../core/authentication/types.js";
4
+ import type { UserWallet } from "../../../core/wallet/enclave-wallet.js";
5
+ /**
6
+ * Migrate a sharded wallet to an enclave wallet.
7
+ *
8
+ * @param args - The arguments for the migration process.
9
+ * @returns The migrated user wallet.
10
+ */
11
+ export declare function migrateToEnclaveWallet(args: {
12
+ client: ThirdwebClient;
13
+ storage: ClientScopedStorage;
14
+ storedToken: AuthStoredTokenWithCookieReturnType["storedToken"];
15
+ encryptionKey?: string;
16
+ }): Promise<UserWallet>;
17
+ //# sourceMappingURL=migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/native/helpers/wallet/migration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAStE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAUzE;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,EAAE,mCAAmC,CAAC,aAAa,CAAC,CAAC;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,UAAU,CAAC,CAoHtB"}
@@ -10,6 +10,33 @@ export declare function getExistingUserAccount(args: {
10
10
  client: ThirdwebClient;
11
11
  storage: ClientScopedStorage;
12
12
  }): Promise<Account>;
13
+ export declare function getWalletPrivateKeyFromShares(shares: string[]): Promise<string>;
14
+ /**
15
+ *
16
+ * @param deviceShare - retrieves the current share associated with the user's device.
17
+ * @returns The requested shares
18
+ * @throws if attempting to get deviceShare when it's not present
19
+ */
20
+ export declare function getShares<A extends boolean, D extends boolean, R extends boolean>({ client, authShare, deviceShare, recoveryShare, storage, }: {
21
+ client: ThirdwebClient;
22
+ authShare: {
23
+ toRetrieve: A;
24
+ };
25
+ recoveryShare: R extends true ? {
26
+ toRetrieve: R;
27
+ recoveryCode: string;
28
+ } : {
29
+ toRetrieve: R;
30
+ };
31
+ deviceShare: {
32
+ toRetrieve: D;
33
+ };
34
+ storage: ClientScopedStorage;
35
+ }): Promise<{
36
+ authShare: A extends true ? string : undefined;
37
+ recoveryShare: R extends true ? string : undefined;
38
+ deviceShare: D extends true ? string : undefined;
39
+ }>;
13
40
  export declare function setUpShareForNewDevice({ recoveryCode, client, storage, }: {
14
41
  recoveryCode: string;
15
42
  client: ThirdwebClient;
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/native/helpers/wallet/retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAWtF;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;CAC9B,oBAaA;AAkKD,wBAAsB,sBAAsB,CAAC,EAC3C,YAAY,EACZ,MAAM,EACN,OAAO,GACR,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;CAC9B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA8BpC"}
1
+ {"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/native/helpers/wallet/retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAWtF;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;CAC9B,oBAaA;AAED,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,mBAYnE;AA4BD;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,EACA,MAAM,EACN,SAAS,EACT,WAAW,EACX,aAAa,EACb,OAAO,GACR,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE;QAAE,UAAU,EAAE,CAAC,CAAA;KAAE,CAAC;IAC7B,aAAa,EAAE,CAAC,SAAS,IAAI,GACzB;QACE,UAAU,EAAE,CAAC,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,GACD;QACE,UAAU,EAAE,CAAC,CAAC;KACf,CAAC;IACN,WAAW,EAAE;QAAE,UAAU,EAAE,CAAC,CAAA;KAAE,CAAC;IAC/B,OAAO,EAAE,mBAAmB,CAAC;CAC9B,GAAG,OAAO,CAAC;IACV,SAAS,EAAE,CAAC,SAAS,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/C,aAAa,EAAE,CAAC,SAAS,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACnD,WAAW,EAAE,CAAC,SAAS,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;CAClD,CAAC,CA6ED;AAUD,wBAAsB,sBAAsB,CAAC,EAC3C,YAAY,EACZ,MAAM,EACN,OAAO,GACR,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;CAC9B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA8BpC"}
@@ -11,11 +11,11 @@ type NativeConnectorOptions = {
11
11
  export declare class InAppNativeConnector implements InAppConnector {
12
12
  private client;
13
13
  private ecosystem?;
14
+ private storage;
14
15
  private passkeyDomain?;
15
- private localStorage;
16
16
  private wallet?;
17
17
  constructor(options: NativeConnectorOptions);
18
- initializeWallet(authToken?: string): Promise<void>;
18
+ initializeWallet(authResult?: AuthStoredTokenWithCookieReturnType, encryptionKey?: string): Promise<void>;
19
19
  getUser(): Promise<GetUser>;
20
20
  getAccount(): Promise<Account>;
21
21
  preAuthenticate(args: MultiStepAuthProviderType): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"native-connector.d.ts","sourceRoot":"","sources":["../../../../../src/wallets/in-app/native/native-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAc1D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,mCAAmC,EACnC,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAQzD,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,MAAM,CAAC,CAAa;gBAEhB,OAAO,EAAE,sBAAsB;IAWrC,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM;IAgCnC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAcjC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAO9B,eAAe,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,YAAY,CAChB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,mCAAmC,CAAC;IAwDzC,OAAO,CACX,MAAM,EAAE,qBAAqB,GAAG,sBAAsB,GACrD,OAAO,CAAC,mBAAmB,CAAC;YAgCjB,WAAW;IAgEnB,mBAAmB;IAOzB,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAO7B,WAAW,CAAC,IAAI,EAAE,YAAY;IAU9B,WAAW;CAOlB"}
1
+ {"version":3,"file":"native-connector.d.ts","sourceRoot":"","sources":["../../../../../src/wallets/in-app/native/native-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAe1D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,mCAAmC,EACnC,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOzD,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAC,CAAa;gBAEhB,OAAO,EAAE,sBAAsB;IAWrC,gBAAgB,CACpB,UAAU,CAAC,EAAE,mCAAmC,EAChD,aAAa,CAAC,EAAE,MAAM;IAiElB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAcjC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAO9B,eAAe,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,YAAY,CAChB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,mCAAmC,CAAC;IAwDzC,OAAO,CACX,MAAM,EAAE,qBAAqB,GAAG,sBAAsB,GACrD,OAAO,CAAC,mBAAmB,CAAC;YA+BjB,WAAW;IAgEnB,mBAAmB;IAOzB,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAO7B,WAAW,CAAC,IAAI,EAAE,YAAY;IAU9B,WAAW;CAOlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"iframe-auth.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/auth/iframe-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iframe-auth.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/auth/iframe-auth.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export declare class InAppWebConnector implements InAppConnector {
11
11
  private client;
12
12
  private ecosystem?;
13
13
  private querier;
14
- private localStorage;
14
+ private storage;
15
15
  private wallet?;
16
16
  /**
17
17
  * Used to manage the Auth state of the user.
@@ -1 +1 @@
1
- {"version":3,"file":"web-connector.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/web-connector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAY7D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,mCAAmC,EACnC,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAKzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAyB,MAAM,uBAAuB,CAAC;AAKpE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAkD;IACjE,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B,OAAO,CAAC,qBAAqB;IAO7B;;;;OAIG;gBACS,EACV,MAAM,EACN,aAAa,EACb,SAAS,EACT,aAAa,GACd,EAAE,0BAA0B;IA4FvB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM;IAwCzC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAOxB,eAAe,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,wBAAwB,CACtB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,EACtC,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAUD,kBAAkB,CAAC,UAAU,EAAE,mCAAmC;IAIxE;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mCAAmC,CAAC;IAwE/C;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mBAAmB,CAAC;IAiDzB,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAI3B,WAAW;IAgCnB,WAAW,CAAC,IAAI,EAAE,YAAY;IAU9B,WAAW;CAOlB"}
1
+ {"version":3,"file":"web-connector.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/web-connector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAa7D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,mCAAmC,EACnC,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAyB,MAAM,uBAAuB,CAAC;AAKpE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAkD;IACjE,OAAO,CAAC,OAAO,CAAsB;IAErC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B,OAAO,CAAC,qBAAqB;IAO7B;;;;OAIG;gBACS,EACV,MAAM,EACN,aAAa,EACb,SAAS,EACT,aAAa,GACd,EAAE,0BAA0B;IA4FvB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM;IAwCzC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAOxB,eAAe,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,wBAAwB,CACtB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,EACtC,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAUD,kBAAkB,CAAC,UAAU,EAAE,mCAAmC;IAIxE;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mCAAmC,CAAC;IAwE/C;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mBAAmB,CAAC;IAiDzB,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAI3B,WAAW;IAgCnB,WAAW,CAAC,IAAI,EAAE,YAAY;IAU9B,WAAW;CAOlB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thirdweb",
3
- "version": "5.61.6",
3
+ "version": "5.62.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/thirdweb-dev/js.git#main"
@@ -203,22 +203,22 @@
203
203
  "@emotion/react": "11.13.3",
204
204
  "@emotion/styled": "11.13.0",
205
205
  "@google/model-viewer": "2.1.1",
206
- "@noble/curves": "1.4.0",
207
- "@noble/hashes": "1.4.0",
206
+ "@noble/curves": "1.6.0",
207
+ "@noble/hashes": "1.5.0",
208
208
  "@passwordless-id/webauthn": "^1.6.1",
209
- "@radix-ui/react-dialog": "1.1.1",
209
+ "@radix-ui/react-dialog": "1.1.2",
210
210
  "@radix-ui/react-focus-scope": "1.1.0",
211
211
  "@radix-ui/react-icons": "1.3.0",
212
- "@radix-ui/react-tooltip": "1.1.2",
213
- "@tanstack/react-query": "5.56.2",
214
- "@walletconnect/ethereum-provider": "2.16.3",
215
- "@walletconnect/sign-client": "2.16.3",
216
- "abitype": "1.0.5",
212
+ "@radix-ui/react-tooltip": "1.1.3",
213
+ "@tanstack/react-query": "5.59.13",
214
+ "@walletconnect/ethereum-provider": "2.17.1",
215
+ "@walletconnect/sign-client": "2.17.1",
216
+ "abitype": "1.0.6",
217
217
  "fuse.js": "7.0.0",
218
218
  "input-otp": "^1.2.4",
219
219
  "mipd": "0.0.7",
220
220
  "uqr": "0.1.2",
221
- "viem": "2.21.16"
221
+ "viem": "2.21.25"
222
222
  },
223
223
  "peerDependencies": {
224
224
  "@aws-sdk/client-lambda": "^3",
@@ -270,6 +270,9 @@
270
270
  "@aws-sdk/client-lambda": {
271
271
  "optional": true
272
272
  },
273
+ "@aws-sdk/client-kms": {
274
+ "optional": true
275
+ },
273
276
  "@aws-sdk/credential-providers": {
274
277
  "optional": true
275
278
  },
@@ -287,31 +290,32 @@
287
290
  "node": ">=18"
288
291
  },
289
292
  "devDependencies": {
290
- "@aws-sdk/client-lambda": "3.659.0",
291
- "@aws-sdk/credential-providers": "3.658.1",
292
- "@biomejs/biome": "1.9.2",
293
+ "@aws-sdk/client-kms": "3.670.0",
294
+ "@aws-sdk/client-lambda": "3.670.0",
295
+ "@aws-sdk/credential-providers": "3.670.0",
296
+ "@biomejs/biome": "1.9.3",
293
297
  "@chromatic-com/storybook": "2.0.2",
294
298
  "@codspeed/vitest-plugin": "3.1.1",
295
299
  "@coinbase/wallet-mobile-sdk": "1.1.2",
296
300
  "@mobile-wallet-protocol/client": "0.0.3",
297
301
  "@react-native-async-storage/async-storage": "1.24.0",
298
302
  "@size-limit/preset-big-lib": "11.1.6",
299
- "@storybook/addon-essentials": "8.3.4",
303
+ "@storybook/addon-essentials": "8.3.5",
300
304
  "@storybook/addon-interactions": "8.3.5",
301
- "@storybook/addon-links": "8.3.4",
302
- "@storybook/addon-onboarding": "8.3.4",
303
- "@storybook/react": "8.3.4",
304
- "@storybook/react-vite": "8.3.4",
305
+ "@storybook/addon-links": "8.3.5",
306
+ "@storybook/addon-onboarding": "8.3.5",
307
+ "@storybook/react": "8.3.5",
308
+ "@storybook/react-vite": "8.3.5",
305
309
  "@storybook/test": "8.3.5",
306
310
  "@testing-library/jest-dom": "^6.4.7",
307
311
  "@testing-library/react": "^16.0.0",
308
312
  "@testing-library/user-event": "^14.5.2",
309
313
  "@types/cross-spawn": "^6.0.6",
310
- "@types/react": "^18.3.10",
314
+ "@types/react": "^18.3.11",
311
315
  "@viem/anvil": "0.0.10",
312
316
  "@vitejs/plugin-react": "^4.3.2",
313
- "@vitest/coverage-v8": "2.1.1",
314
- "@vitest/ui": "2.1.1",
317
+ "@vitest/coverage-v8": "2.1.3",
318
+ "@vitest/ui": "2.1.3",
315
319
  "cross-spawn": "7.0.3",
316
320
  "dotenv-mono": "^1.3.14",
317
321
  "ethers5": "npm:ethers@5",
@@ -319,8 +323,8 @@
319
323
  "expo-linking": "6.3.1",
320
324
  "expo-web-browser": "13.0.3",
321
325
  "happy-dom": "^15.7.4",
322
- "knip": "^5.30.6",
323
- "msw": "^2.4.9",
326
+ "knip": "^5.33.3",
327
+ "msw": "^2.4.11",
324
328
  "prettier": "^3.3.2",
325
329
  "react": "18.3.1",
326
330
  "react-native": "0.75.3",
@@ -331,11 +335,11 @@
331
335
  "rimraf": "6.0.1",
332
336
  "sharp": "^0.33.5",
333
337
  "size-limit": "11.1.6",
334
- "storybook": "8.3.4",
335
- "typedoc": "0.26.7",
336
- "typescript": "5.6.2",
337
- "vite": "5.4.8",
338
- "vitest": "2.1.1"
338
+ "storybook": "8.3.5",
339
+ "typedoc": "0.26.9",
340
+ "typescript": "5.6.3",
341
+ "vite": "5.4.9",
342
+ "vitest": "2.1.3"
339
343
  },
340
344
  "scripts": {
341
345
  "bench:compare": "bun run ./benchmarks/run.ts",
@@ -198,3 +198,8 @@ export {
198
198
 
199
199
  // Zora 1155 contract
200
200
  export { nextTokenId } from "../../extensions/erc1155/__generated__/Zora1155/read/nextTokenId.js";
201
+
202
+ export {
203
+ mintToBatch,
204
+ type MintToBatchParams,
205
+ } from "../../extensions/erc1155/write/mintToBatch.js";
@@ -0,0 +1,44 @@
1
+ import { type Abi, toFunctionSelector } from "viem";
2
+ import { describe, expect, it } from "vitest";
3
+ import { ANVIL_CHAIN } from "~test/chains.js";
4
+ import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
5
+ import { TEST_CLIENT } from "~test/test-clients.js";
6
+ import { DROP1155_CONTRACT } from "~test/test-contracts.js";
7
+ import { TEST_ACCOUNT_C } from "~test/test-wallets.js";
8
+ import { resolveContractAbi } from "../../../contract/actions/resolve-abi.js";
9
+ import { getContract } from "../../../contract/contract.js";
10
+ import { deployERC1155Contract } from "../../../extensions/prebuilts/deploy-erc1155.js";
11
+ import { isGetNFTsSupported } from "./getNFTs.js";
12
+
13
+ describe.runIf(process.env.TW_SECRET_KEY)("ERC1155 getNFTs", () => {
14
+ it("isGetNFTsSupported should work with our Edition Drop contracts", async () => {
15
+ const abi = await resolveContractAbi<Abi>(DROP1155_CONTRACT);
16
+ const selectors = abi
17
+ .filter((f) => f.type === "function")
18
+ .map((f) => toFunctionSelector(f));
19
+ expect(isGetNFTsSupported(selectors)).toBe(true);
20
+ });
21
+
22
+ it("isGetNFTsSupported should work with our Edition contracts", async () => {
23
+ const contract = getContract({
24
+ address: await deployERC1155Contract({
25
+ chain: ANVIL_CHAIN,
26
+ client: TEST_CLIENT,
27
+ params: {
28
+ name: "",
29
+ contractURI: TEST_CONTRACT_URI,
30
+ },
31
+ type: "TokenERC1155",
32
+ account: TEST_ACCOUNT_C,
33
+ }),
34
+ chain: ANVIL_CHAIN,
35
+ client: TEST_CLIENT,
36
+ });
37
+
38
+ const abi = await resolveContractAbi<Abi>(contract);
39
+ const selectors = abi
40
+ .filter((f) => f.type === "function")
41
+ .map((f) => toFunctionSelector(f));
42
+ expect(isGetNFTsSupported(selectors)).toBe(true);
43
+ });
44
+ });
@@ -0,0 +1,35 @@
1
+ import { type Abi, toFunctionSelector } from "viem";
2
+ import { describe, expect, it } from "vitest";
3
+ import { ANVIL_CHAIN } from "~test/chains.js";
4
+ import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
5
+ import { TEST_CLIENT } from "~test/test-clients.js";
6
+ import { TEST_ACCOUNT_C } from "~test/test-wallets.js";
7
+ import { resolveContractAbi } from "../../../contract/actions/resolve-abi.js";
8
+ import { getContract } from "../../../contract/contract.js";
9
+ import { deployERC1155Contract } from "../../../extensions/prebuilts/deploy-erc1155.js";
10
+ import { isLazyMintSupported } from "./lazyMint.js";
11
+
12
+ describe.runIf(process.env.TW_SECRET_KEY)("erc1155: lazyMint", () => {
13
+ it("`isLazyMintSupported` should work with our Edition Drop contracts", async () => {
14
+ const contract = getContract({
15
+ address: await deployERC1155Contract({
16
+ chain: ANVIL_CHAIN,
17
+ client: TEST_CLIENT,
18
+ params: {
19
+ name: "",
20
+ contractURI: TEST_CONTRACT_URI,
21
+ },
22
+ type: "DropERC1155",
23
+ account: TEST_ACCOUNT_C,
24
+ }),
25
+ chain: ANVIL_CHAIN,
26
+ client: TEST_CLIENT,
27
+ });
28
+
29
+ const abi = await resolveContractAbi<Abi>(contract);
30
+ const selectors = abi
31
+ .filter((f) => f.type === "function")
32
+ .map((f) => toFunctionSelector(f));
33
+ expect(isLazyMintSupported(selectors)).toBe(true);
34
+ });
35
+ });
@@ -0,0 +1,38 @@
1
+ import { type Abi, toFunctionSelector } from "viem";
2
+ import { describe, expect, it } from "vitest";
3
+ import { ANVIL_CHAIN } from "~test/chains.js";
4
+ import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
5
+ import { TEST_CLIENT } from "~test/test-clients.js";
6
+ import { TEST_ACCOUNT_C } from "~test/test-wallets.js";
7
+ import { resolveContractAbi } from "../../../contract/actions/resolve-abi.js";
8
+ import { getContract } from "../../../contract/contract.js";
9
+ import { deployERC1155Contract } from "../../../extensions/prebuilts/deploy-erc1155.js";
10
+ import { isMintAdditionalSupplyToSupported } from "./mintAdditionalSupplyTo.js";
11
+
12
+ describe.runIf(process.env.TW_SECRET_KEY)(
13
+ "erc1155: mintAdditionalSupplyTo",
14
+ () => {
15
+ it("`isMintAdditionalSupplyToSupported` should work with our Edition contracts", async () => {
16
+ const contract = getContract({
17
+ address: await deployERC1155Contract({
18
+ chain: ANVIL_CHAIN,
19
+ client: TEST_CLIENT,
20
+ params: {
21
+ name: "",
22
+ contractURI: TEST_CONTRACT_URI,
23
+ },
24
+ type: "TokenERC1155",
25
+ account: TEST_ACCOUNT_C,
26
+ }),
27
+ chain: ANVIL_CHAIN,
28
+ client: TEST_CLIENT,
29
+ });
30
+
31
+ const abi = await resolveContractAbi<Abi>(contract);
32
+ const selectors = abi
33
+ .filter((f) => f.type === "function")
34
+ .map((f) => toFunctionSelector(f));
35
+ expect(isMintAdditionalSupplyToSupported(selectors)).toBe(true);
36
+ });
37
+ },
38
+ );
@@ -0,0 +1,43 @@
1
+ import {} from "viem";
2
+ import { describe, expect, it } from "vitest";
3
+ import { ANVIL_CHAIN } from "~test/chains.js";
4
+ import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
5
+ import { TEST_CLIENT } from "~test/test-clients.js";
6
+ import { TEST_ACCOUNT_C } from "~test/test-wallets.js";
7
+ import { getContract } from "../../../contract/contract.js";
8
+ import { deployERC1155Contract } from "../../../extensions/prebuilts/deploy-erc1155.js";
9
+ import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
10
+ import { uri } from "../__generated__/IERC1155/read/uri.js";
11
+ import { mintTo } from "./mintTo.js";
12
+
13
+ describe.runIf(process.env.TW_SECRET_KEY)("erc1155: mintTo", () => {
14
+ it("should mint with `nft` being declared as a string", async () => {
15
+ const contract = getContract({
16
+ address: await deployERC1155Contract({
17
+ chain: ANVIL_CHAIN,
18
+ client: TEST_CLIENT,
19
+ params: {
20
+ name: "",
21
+ contractURI: TEST_CONTRACT_URI,
22
+ },
23
+ type: "TokenERC1155",
24
+ account: TEST_ACCOUNT_C,
25
+ }),
26
+ chain: ANVIL_CHAIN,
27
+ client: TEST_CLIENT,
28
+ });
29
+
30
+ await sendAndConfirmTransaction({
31
+ transaction: mintTo({
32
+ contract,
33
+ nft: TEST_CONTRACT_URI,
34
+ to: TEST_ACCOUNT_C.address,
35
+ supply: 1n,
36
+ }),
37
+ account: TEST_ACCOUNT_C,
38
+ });
39
+
40
+ const tokenUri = await uri({ contract, tokenId: 0n });
41
+ expect(tokenUri).toBe(TEST_CONTRACT_URI);
42
+ });
43
+ });
@@ -0,0 +1,74 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { ANVIL_CHAIN } from "~test/chains.js";
3
+ import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
4
+ import { TEST_CLIENT } from "~test/test-clients.js";
5
+ import { TEST_ACCOUNT_C } from "~test/test-wallets.js";
6
+ import { getContract } from "../../../contract/contract.js";
7
+ import { deployERC1155Contract } from "../../../extensions/prebuilts/deploy-erc1155.js";
8
+ import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
9
+ import { getNFTs } from "../read/getNFTs.js";
10
+ import { mintToBatch } from "./mintToBatch.js";
11
+
12
+ const chain = ANVIL_CHAIN;
13
+ const client = TEST_CLIENT;
14
+ const account = TEST_ACCOUNT_C;
15
+
16
+ describe("ERC1155 Edition: mintToBatch", () => {
17
+ it("should mint multiple tokens in one tx", async () => {
18
+ const contract = getContract({
19
+ chain,
20
+ client,
21
+ address: await deployERC1155Contract({
22
+ chain,
23
+ client,
24
+ account,
25
+ type: "TokenERC1155",
26
+ params: {
27
+ name: "edition",
28
+ contractURI: TEST_CONTRACT_URI,
29
+ },
30
+ }),
31
+ });
32
+
33
+ await sendAndConfirmTransaction({
34
+ account,
35
+ transaction: mintToBatch({
36
+ contract,
37
+ to: account.address,
38
+ nfts: [
39
+ { metadata: { name: "token 0" }, supply: 1n },
40
+ { metadata: { name: "token 1" }, supply: 2n },
41
+ { metadata: { name: "token 2" }, supply: 3n },
42
+ ],
43
+ }),
44
+ });
45
+
46
+ const nfts = await getNFTs({ contract });
47
+ expect(nfts).toStrictEqual([
48
+ {
49
+ metadata: { name: "token 0" },
50
+ owner: null,
51
+ id: 0n,
52
+ tokenURI: "ipfs://QmPZ6LpGqMuFbHKTXrNW1NRNLHf1nrxS4dtoFqdZZTKvPX/0",
53
+ type: "ERC1155",
54
+ supply: 1n,
55
+ },
56
+ {
57
+ metadata: { name: "token 1" },
58
+ owner: null,
59
+ id: 1n,
60
+ tokenURI: "ipfs://QmRFPyc3yEYxR4pQxwyTQWTine51TxWCoD6nzJWR3eX45b/0",
61
+ type: "ERC1155",
62
+ supply: 2n,
63
+ },
64
+ {
65
+ metadata: { name: "token 2" },
66
+ owner: null,
67
+ id: 2n,
68
+ tokenURI: "ipfs://QmesQiRLHCgqWZM2GFCs7Nb7rr2S72hU1BVQc7xiTyKZtT/0",
69
+ type: "ERC1155",
70
+ supply: 3n,
71
+ },
72
+ ]);
73
+ });
74
+ });
@@ -0,0 +1,117 @@
1
+ import { maxUint256 } from "viem";
2
+ import { multicall } from "../../../extensions/common/__generated__/IMulticall/write/multicall.js";
3
+ import { upload } from "../../../storage/upload.js";
4
+ import type {
5
+ BaseTransactionOptions,
6
+ WithOverrides,
7
+ } from "../../../transaction/types.js";
8
+ import type { NFTInput } from "../../../utils/nft/parseNft.js";
9
+ import { encodeMintTo } from "../__generated__/IMintableERC1155/write/mintTo.js";
10
+
11
+ /**
12
+ * @extension ERC1155
13
+ */
14
+ export type MintToBatchParams = WithOverrides<{
15
+ /**
16
+ * The wallet that the NFTs will be minted to
17
+ */
18
+ to: string;
19
+ /**
20
+ * An array of NFT metadata & supply to mint
21
+ * @example
22
+ * ```ts
23
+ * const nfts = [
24
+ * {
25
+ * metadata: { name: "token 0" },
26
+ * supply: 1n,
27
+ * },
28
+ * {
29
+ * metadata: { name: "token 1" },
30
+ * supply: 10n,
31
+ * },
32
+ * ]
33
+ * ```
34
+ */
35
+ nfts: Array<{
36
+ supply: bigint;
37
+ metadata: NFTInput | string;
38
+ }>;
39
+ }>;
40
+
41
+ /**
42
+ * This extension batches multiple `mintTo` extensions into one single multicall.
43
+ * Keep in mind that there is a limit of how many NFTs you can mint per transaction.
44
+ * This limit varies depends on the network that you are transacting on.
45
+ *
46
+ * You are recommended to experiment with the number to figure out the best number for your chain of choice.
47
+ * @param options - the transaction options
48
+ * @returns A promise that resolves to the transaction result.
49
+ * @extension ERC1155
50
+ * @example
51
+ * ```ts
52
+ * import { mintBatchTo } from "thirdweb/extension/erc1155";
53
+ *
54
+ * const transaction = mintToBatch({
55
+ * contract: editionContract,
56
+ * to: "0x...",
57
+ * nfts: [
58
+ * {
59
+ * metadata: {
60
+ * name: "Token #0",
61
+ * image: "...",
62
+ * attributes: [],
63
+ * },
64
+ * supply: 100n,
65
+ * },
66
+ * {
67
+ * metadata: {
68
+ * name: "Token #1",
69
+ * image: "...",
70
+ * attributes: [],
71
+ * },
72
+ * supply: 111n,
73
+ * },
74
+ * ],
75
+ * });
76
+ *
77
+ * await sendTransaction({ transaction, account });
78
+ * ```
79
+ */
80
+ export function mintToBatch(
81
+ options: BaseTransactionOptions<MintToBatchParams>,
82
+ ) {
83
+ return multicall({
84
+ contract: options.contract,
85
+ asyncParams: async () => {
86
+ const uris = await Promise.all(
87
+ options.nfts.map((item) => {
88
+ if (typeof item.metadata === "string") {
89
+ return item.metadata;
90
+ }
91
+ return upload({
92
+ client: options.contract.client,
93
+ files: [item.metadata],
94
+ });
95
+ }),
96
+ );
97
+
98
+ const data = uris.map((uri, index) => {
99
+ const item = options.nfts[index];
100
+ if (!item) {
101
+ // Should not happen
102
+ throw new Error("Index mismatch");
103
+ }
104
+ return encodeMintTo({
105
+ to: options.to,
106
+ // maxUint256 is used to indicate that this is a NEW token!
107
+ tokenId: maxUint256,
108
+ uri,
109
+ amount: item.supply,
110
+ });
111
+ });
112
+
113
+ return { data };
114
+ },
115
+ overrides: options.overrides,
116
+ });
117
+ }
@@ -8,7 +8,7 @@ import {
8
8
  import { resolveContractAbi } from "../../../contract/actions/resolve-abi.js";
9
9
  import { isERC20 } from "./isERC20.js";
10
10
 
11
- describe("isERC20", () => {
11
+ describe.runIf(process.env.TW_SECRET_KEY)("isERC20", () => {
12
12
  it("should detect USDT as a valid erc20 contract", async () => {
13
13
  const abi = await resolveContractAbi<Abi>(USDT_CONTRACT);
14
14
  const selectors = abi
@@ -19,7 +19,7 @@ const chain = ANVIL_CHAIN;
19
19
  const client = TEST_CLIENT;
20
20
  const account = TEST_ACCOUNT_A;
21
21
 
22
- describe("erc20: transferBatch", () => {
22
+ describe.runIf(process.env.TW_SECRET_KEY)("erc20: transferBatch", () => {
23
23
  it("should transfer tokens to multiple recipients", async () => {
24
24
  const address = await deployERC20Contract({
25
25
  type: "TokenERC20",