thirdweb 5.53.0 → 5.54.0-nightly-c3800d6c0765a9a0b69ac0a4a390d20cec932419-20240912000413

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 (445) hide show
  1. package/dist/cjs/analytics/track.js +18 -0
  2. package/dist/cjs/analytics/track.js.map +1 -1
  3. package/dist/cjs/chains/chain-definitions/polygon.js +1 -1
  4. package/dist/cjs/chains/chain-definitions/polygon.js.map +1 -1
  5. package/dist/cjs/contract/deployment/deploy-deterministic.js +19 -0
  6. package/dist/cjs/contract/deployment/deploy-deterministic.js.map +1 -1
  7. package/dist/cjs/contract/deployment/deploy-via-autofactory.js +3 -1
  8. package/dist/cjs/contract/deployment/deploy-via-autofactory.js.map +1 -1
  9. package/dist/cjs/contract/deployment/deploy-with-abi.js +50 -6
  10. package/dist/cjs/contract/deployment/deploy-with-abi.js.map +1 -1
  11. package/dist/cjs/contract/deployment/utils/bootstrap.js +23 -8
  12. package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
  13. package/dist/cjs/contract/deployment/utils/clone-factory.js +1 -2
  14. package/dist/cjs/contract/deployment/utils/clone-factory.js.map +1 -1
  15. package/dist/cjs/contract/deployment/utils/infra.js +38 -2
  16. package/dist/cjs/contract/deployment/utils/infra.js.map +1 -1
  17. package/dist/cjs/contract/deployment/zksync/zkDeployContract.js +7 -1
  18. package/dist/cjs/contract/deployment/zksync/zkDeployContract.js.map +1 -1
  19. package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js +2 -1
  20. package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -1
  21. package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js +5 -4
  22. package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js.map +1 -1
  23. package/dist/cjs/exports/contract.js +4 -1
  24. package/dist/cjs/exports/contract.js.map +1 -1
  25. package/dist/cjs/exports/deploys.js +8 -3
  26. package/dist/cjs/exports/deploys.js.map +1 -1
  27. package/dist/cjs/exports/extensions/erc721.js +4 -2
  28. package/dist/cjs/exports/extensions/erc721.js.map +1 -1
  29. package/dist/cjs/exports/utils.js +3 -1
  30. package/dist/cjs/exports/utils.js.map +1 -1
  31. package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +14 -16
  32. package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
  33. package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +19 -0
  34. package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
  35. package/dist/cjs/extensions/erc721/lazyMinting/write/reveal.js +3 -20
  36. package/dist/cjs/extensions/erc721/lazyMinting/write/reveal.js.map +1 -1
  37. package/dist/cjs/extensions/erc721/write/updateTokenURI.js +3 -0
  38. package/dist/cjs/extensions/erc721/write/updateTokenURI.js.map +1 -1
  39. package/dist/cjs/extensions/marketplace/offers/write/makeOffer.js +0 -1
  40. package/dist/cjs/extensions/marketplace/offers/write/makeOffer.js.map +1 -1
  41. package/dist/cjs/extensions/modules/common/getOrDeployModule.js +2 -4
  42. package/dist/cjs/extensions/modules/common/getOrDeployModule.js.map +1 -1
  43. package/dist/cjs/extensions/modules/common/installPublishedModule.js +1 -1
  44. package/dist/cjs/extensions/modules/common/installPublishedModule.js.map +1 -1
  45. package/dist/cjs/extensions/modules/common/uninstallPublishedModule.js +1 -2
  46. package/dist/cjs/extensions/modules/common/uninstallPublishedModule.js.map +1 -1
  47. package/dist/cjs/extensions/prebuilts/deploy-erc1155.js +0 -1
  48. package/dist/cjs/extensions/prebuilts/deploy-erc1155.js.map +1 -1
  49. package/dist/cjs/extensions/prebuilts/deploy-erc20.js +0 -1
  50. package/dist/cjs/extensions/prebuilts/deploy-erc20.js.map +1 -1
  51. package/dist/cjs/extensions/prebuilts/deploy-erc721.js +0 -1
  52. package/dist/cjs/extensions/prebuilts/deploy-erc721.js.map +1 -1
  53. package/dist/cjs/extensions/prebuilts/deploy-marketplace.js +5 -7
  54. package/dist/cjs/extensions/prebuilts/deploy-marketplace.js.map +1 -1
  55. package/dist/cjs/extensions/prebuilts/deploy-modular.js +32 -27
  56. package/dist/cjs/extensions/prebuilts/deploy-modular.js.map +1 -1
  57. package/dist/cjs/extensions/prebuilts/deploy-published.js +121 -35
  58. package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
  59. package/dist/cjs/extensions/prebuilts/deploy-split.js +0 -1
  60. package/dist/cjs/extensions/prebuilts/deploy-split.js.map +1 -1
  61. package/dist/cjs/extensions/prebuilts/deploy-vote.js +0 -1
  62. package/dist/cjs/extensions/prebuilts/deploy-vote.js.map +1 -1
  63. package/dist/cjs/extensions/prebuilts/get-required-transactions.js +66 -0
  64. package/dist/cjs/extensions/prebuilts/get-required-transactions.js.map +1 -0
  65. package/dist/cjs/react/core/hooks/others/useProfiles.js +1 -1
  66. package/dist/cjs/react/core/social/useSocialProfiles.js +2 -0
  67. package/dist/cjs/react/core/social/useSocialProfiles.js.map +1 -1
  68. package/dist/cjs/react/core/utils/walletIcon.js +5 -1
  69. package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
  70. package/dist/cjs/react/native/ui/components/Address.js +1 -3
  71. package/dist/cjs/react/native/ui/components/Address.js.map +1 -1
  72. package/dist/cjs/react/native/ui/components/WalletImage.js +2 -0
  73. package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -1
  74. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +1 -0
  75. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  76. package/dist/cjs/react/native/ui/icons/svgs.js +2 -1
  77. package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
  78. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +7 -0
  79. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  80. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +20 -3
  81. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  82. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +7 -0
  83. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
  84. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +7 -0
  85. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
  86. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +7 -0
  87. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
  88. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +49 -0
  89. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  90. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +20 -0
  91. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  92. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
  93. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  94. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +1 -0
  95. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  96. package/dist/cjs/social/profiles.js +2 -1
  97. package/dist/cjs/social/profiles.js.map +1 -1
  98. package/dist/cjs/utils/abi/normalizeFunctionParams.js +24 -0
  99. package/dist/cjs/utils/abi/normalizeFunctionParams.js.map +1 -0
  100. package/dist/cjs/utils/any-evm/compute-published-contract-address.js +14 -6
  101. package/dist/cjs/utils/any-evm/compute-published-contract-address.js.map +1 -1
  102. package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js +17 -5
  103. package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
  104. package/dist/cjs/utils/any-evm/deploy-metadata.js +0 -19
  105. package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
  106. package/dist/cjs/utils/caching/lru.js +15 -14
  107. package/dist/cjs/utils/caching/lru.js.map +1 -1
  108. package/dist/cjs/utils/domains.js +1 -1
  109. package/dist/cjs/utils/domains.js.map +1 -1
  110. package/dist/cjs/utils/ipfs.js +2 -0
  111. package/dist/cjs/utils/ipfs.js.map +1 -1
  112. package/dist/cjs/version.js +1 -1
  113. package/dist/cjs/version.js.map +1 -1
  114. package/dist/cjs/wallets/in-app/core/authentication/types.js +1 -0
  115. package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
  116. package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-calls.js +3 -13
  117. package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +1 -1
  118. package/dist/cjs/wallets/in-app/native/native-connector.js +2 -0
  119. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  120. package/dist/cjs/wallets/in-app/web/in-app.js +2 -0
  121. package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
  122. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +2 -0
  123. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  124. package/dist/cjs/wallets/types.js +1 -0
  125. package/dist/cjs/wallets/types.js.map +1 -1
  126. package/dist/esm/analytics/track.js +17 -0
  127. package/dist/esm/analytics/track.js.map +1 -1
  128. package/dist/esm/chains/chain-definitions/polygon.js +1 -1
  129. package/dist/esm/chains/chain-definitions/polygon.js.map +1 -1
  130. package/dist/esm/contract/deployment/deploy-deterministic.js +19 -1
  131. package/dist/esm/contract/deployment/deploy-deterministic.js.map +1 -1
  132. package/dist/esm/contract/deployment/deploy-via-autofactory.js +3 -1
  133. package/dist/esm/contract/deployment/deploy-via-autofactory.js.map +1 -1
  134. package/dist/esm/contract/deployment/deploy-with-abi.js +50 -6
  135. package/dist/esm/contract/deployment/deploy-with-abi.js.map +1 -1
  136. package/dist/esm/contract/deployment/utils/bootstrap.js +23 -9
  137. package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
  138. package/dist/esm/contract/deployment/utils/clone-factory.js +1 -2
  139. package/dist/esm/contract/deployment/utils/clone-factory.js.map +1 -1
  140. package/dist/esm/contract/deployment/utils/infra.js +38 -4
  141. package/dist/esm/contract/deployment/utils/infra.js.map +1 -1
  142. package/dist/esm/contract/deployment/zksync/zkDeployContract.js +7 -1
  143. package/dist/esm/contract/deployment/zksync/zkDeployContract.js.map +1 -1
  144. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js +2 -1
  145. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -1
  146. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js +5 -4
  147. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js.map +1 -1
  148. package/dist/esm/exports/contract.js +2 -0
  149. package/dist/esm/exports/contract.js.map +1 -1
  150. package/dist/esm/exports/deploys.js +4 -2
  151. package/dist/esm/exports/deploys.js.map +1 -1
  152. package/dist/esm/exports/extensions/erc721.js +3 -3
  153. package/dist/esm/exports/extensions/erc721.js.map +1 -1
  154. package/dist/esm/exports/utils.js +1 -0
  155. package/dist/esm/exports/utils.js.map +1 -1
  156. package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +13 -15
  157. package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
  158. package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +21 -3
  159. package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
  160. package/dist/esm/extensions/erc721/lazyMinting/write/reveal.js +1 -20
  161. package/dist/esm/extensions/erc721/lazyMinting/write/reveal.js.map +1 -1
  162. package/dist/esm/extensions/erc721/write/updateTokenURI.js +3 -0
  163. package/dist/esm/extensions/erc721/write/updateTokenURI.js.map +1 -1
  164. package/dist/esm/extensions/marketplace/offers/write/makeOffer.js +0 -1
  165. package/dist/esm/extensions/marketplace/offers/write/makeOffer.js.map +1 -1
  166. package/dist/esm/extensions/modules/common/getOrDeployModule.js +2 -4
  167. package/dist/esm/extensions/modules/common/getOrDeployModule.js.map +1 -1
  168. package/dist/esm/extensions/modules/common/installPublishedModule.js +1 -1
  169. package/dist/esm/extensions/modules/common/installPublishedModule.js.map +1 -1
  170. package/dist/esm/extensions/modules/common/uninstallPublishedModule.js +1 -2
  171. package/dist/esm/extensions/modules/common/uninstallPublishedModule.js.map +1 -1
  172. package/dist/esm/extensions/prebuilts/deploy-erc1155.js +0 -1
  173. package/dist/esm/extensions/prebuilts/deploy-erc1155.js.map +1 -1
  174. package/dist/esm/extensions/prebuilts/deploy-erc20.js +0 -1
  175. package/dist/esm/extensions/prebuilts/deploy-erc20.js.map +1 -1
  176. package/dist/esm/extensions/prebuilts/deploy-erc721.js +0 -1
  177. package/dist/esm/extensions/prebuilts/deploy-erc721.js.map +1 -1
  178. package/dist/esm/extensions/prebuilts/deploy-marketplace.js +5 -7
  179. package/dist/esm/extensions/prebuilts/deploy-marketplace.js.map +1 -1
  180. package/dist/esm/extensions/prebuilts/deploy-modular.js +33 -28
  181. package/dist/esm/extensions/prebuilts/deploy-modular.js.map +1 -1
  182. package/dist/esm/extensions/prebuilts/deploy-published.js +121 -35
  183. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  184. package/dist/esm/extensions/prebuilts/deploy-split.js +0 -1
  185. package/dist/esm/extensions/prebuilts/deploy-split.js.map +1 -1
  186. package/dist/esm/extensions/prebuilts/deploy-vote.js +0 -1
  187. package/dist/esm/extensions/prebuilts/deploy-vote.js.map +1 -1
  188. package/dist/esm/extensions/prebuilts/get-required-transactions.js +63 -0
  189. package/dist/esm/extensions/prebuilts/get-required-transactions.js.map +1 -0
  190. package/dist/esm/react/core/hooks/others/useProfiles.js +1 -1
  191. package/dist/esm/react/core/social/useSocialProfiles.js +2 -0
  192. package/dist/esm/react/core/social/useSocialProfiles.js.map +1 -1
  193. package/dist/esm/react/core/utils/walletIcon.js +4 -0
  194. package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
  195. package/dist/esm/react/native/ui/components/Address.js +1 -3
  196. package/dist/esm/react/native/ui/components/Address.js.map +1 -1
  197. package/dist/esm/react/native/ui/components/WalletImage.js +3 -1
  198. package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -1
  199. package/dist/esm/react/native/ui/connect/InAppWalletUI.js +2 -1
  200. package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  201. package/dist/esm/react/native/ui/icons/svgs.js +1 -0
  202. package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
  203. package/dist/esm/react/web/ui/ConnectWallet/Details.js +7 -0
  204. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  205. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +20 -3
  206. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  207. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +7 -0
  208. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
  209. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +7 -0
  210. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
  211. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +7 -0
  212. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
  213. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +49 -0
  214. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  215. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +20 -0
  216. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  217. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
  218. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  219. package/dist/esm/react/web/wallets/shared/oauthSignIn.js +1 -0
  220. package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  221. package/dist/esm/social/profiles.js +2 -1
  222. package/dist/esm/social/profiles.js.map +1 -1
  223. package/dist/esm/utils/abi/normalizeFunctionParams.js +21 -0
  224. package/dist/esm/utils/abi/normalizeFunctionParams.js.map +1 -0
  225. package/dist/esm/utils/any-evm/compute-published-contract-address.js +15 -7
  226. package/dist/esm/utils/any-evm/compute-published-contract-address.js.map +1 -1
  227. package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js +16 -5
  228. package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
  229. package/dist/esm/utils/any-evm/deploy-metadata.js +0 -19
  230. package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
  231. package/dist/esm/utils/caching/lru.js +15 -14
  232. package/dist/esm/utils/caching/lru.js.map +1 -1
  233. package/dist/esm/utils/domains.js +1 -1
  234. package/dist/esm/utils/domains.js.map +1 -1
  235. package/dist/esm/utils/ipfs.js +2 -0
  236. package/dist/esm/utils/ipfs.js.map +1 -1
  237. package/dist/esm/version.js +1 -1
  238. package/dist/esm/version.js.map +1 -1
  239. package/dist/esm/wallets/in-app/core/authentication/types.js +1 -0
  240. package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
  241. package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-calls.js +3 -13
  242. package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +1 -1
  243. package/dist/esm/wallets/in-app/native/native-connector.js +2 -0
  244. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  245. package/dist/esm/wallets/in-app/web/in-app.js +2 -0
  246. package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
  247. package/dist/esm/wallets/in-app/web/lib/web-connector.js +2 -0
  248. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  249. package/dist/esm/wallets/types.js +1 -0
  250. package/dist/esm/wallets/types.js.map +1 -1
  251. package/dist/types/analytics/track.d.ts +15 -0
  252. package/dist/types/analytics/track.d.ts.map +1 -1
  253. package/dist/types/contract/actions/compiler-metadata.d.ts +2 -2
  254. package/dist/types/contract/actions/compiler-metadata.d.ts.map +1 -1
  255. package/dist/types/contract/actions/get-compiler-metadata.d.ts +1 -1
  256. package/dist/types/contract/actions/get-compiler-metadata.d.ts.map +1 -1
  257. package/dist/types/contract/deployment/deploy-deterministic.d.ts +12 -1
  258. package/dist/types/contract/deployment/deploy-deterministic.d.ts.map +1 -1
  259. package/dist/types/contract/deployment/deploy-via-autofactory.d.ts.map +1 -1
  260. package/dist/types/contract/deployment/deploy-with-abi.d.ts +33 -10
  261. package/dist/types/contract/deployment/deploy-with-abi.d.ts.map +1 -1
  262. package/dist/types/contract/deployment/utils/bootstrap.d.ts +8 -3
  263. package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
  264. package/dist/types/contract/deployment/utils/clone-factory.d.ts.map +1 -1
  265. package/dist/types/contract/deployment/utils/infra.d.ts +24 -1
  266. package/dist/types/contract/deployment/utils/infra.d.ts.map +1 -1
  267. package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts +2 -1
  268. package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts.map +1 -1
  269. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts +1 -1
  270. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts.map +1 -1
  271. package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts.map +1 -1
  272. package/dist/types/contract/verification/source-files.d.ts +2 -2
  273. package/dist/types/contract/verification/source-files.d.ts.map +1 -1
  274. package/dist/types/exports/contract.d.ts +1 -0
  275. package/dist/types/exports/contract.d.ts.map +1 -1
  276. package/dist/types/exports/deploys.d.ts +4 -2
  277. package/dist/types/exports/deploys.d.ts.map +1 -1
  278. package/dist/types/exports/extensions/erc721.d.ts +3 -3
  279. package/dist/types/exports/extensions/erc721.d.ts.map +1 -1
  280. package/dist/types/exports/utils.d.ts +1 -0
  281. package/dist/types/exports/utils.d.ts.map +1 -1
  282. package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts +1 -1
  283. package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts.map +1 -1
  284. package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts +12 -0
  285. package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts.map +1 -1
  286. package/dist/types/extensions/erc721/lazyMinting/write/reveal.d.ts +1 -0
  287. package/dist/types/extensions/erc721/lazyMinting/write/reveal.d.ts.map +1 -1
  288. package/dist/types/extensions/erc721/write/updateTokenURI.d.ts +3 -0
  289. package/dist/types/extensions/erc721/write/updateTokenURI.d.ts.map +1 -1
  290. package/dist/types/extensions/marketplace/offers/write/makeOffer.d.ts.map +1 -1
  291. package/dist/types/extensions/modules/common/getOrDeployModule.d.ts +0 -2
  292. package/dist/types/extensions/modules/common/getOrDeployModule.d.ts.map +1 -1
  293. package/dist/types/extensions/modules/common/installPublishedModule.d.ts +1 -1
  294. package/dist/types/extensions/modules/common/installPublishedModule.d.ts.map +1 -1
  295. package/dist/types/extensions/modules/common/uninstallPublishedModule.d.ts +0 -1
  296. package/dist/types/extensions/modules/common/uninstallPublishedModule.d.ts.map +1 -1
  297. package/dist/types/extensions/prebuilts/deploy-erc1155.d.ts.map +1 -1
  298. package/dist/types/extensions/prebuilts/deploy-erc20.d.ts.map +1 -1
  299. package/dist/types/extensions/prebuilts/deploy-erc721.d.ts.map +1 -1
  300. package/dist/types/extensions/prebuilts/deploy-marketplace.d.ts.map +1 -1
  301. package/dist/types/extensions/prebuilts/deploy-modular.d.ts +1 -0
  302. package/dist/types/extensions/prebuilts/deploy-modular.d.ts.map +1 -1
  303. package/dist/types/extensions/prebuilts/deploy-published.d.ts +50 -3
  304. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  305. package/dist/types/extensions/prebuilts/deploy-split.d.ts.map +1 -1
  306. package/dist/types/extensions/prebuilts/deploy-vote.d.ts.map +1 -1
  307. package/dist/types/extensions/prebuilts/get-required-transactions.d.ts +26 -0
  308. package/dist/types/extensions/prebuilts/get-required-transactions.d.ts.map +1 -0
  309. package/dist/types/react/core/hooks/others/useProfiles.d.ts +1 -1
  310. package/dist/types/react/core/social/useSocialProfiles.d.ts +2 -0
  311. package/dist/types/react/core/social/useSocialProfiles.d.ts.map +1 -1
  312. package/dist/types/react/core/utils/storage.d.ts +1 -1
  313. package/dist/types/react/core/utils/storage.d.ts.map +1 -1
  314. package/dist/types/react/core/utils/walletIcon.d.ts +3 -1
  315. package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
  316. package/dist/types/react/native/ui/components/Address.d.ts.map +1 -1
  317. package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
  318. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
  319. package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
  320. package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
  321. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  322. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  323. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.d.ts.map +1 -1
  324. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.d.ts.map +1 -1
  325. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.d.ts.map +1 -1
  326. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  327. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -1
  328. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  329. package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
  330. package/dist/types/social/profiles.d.ts +2 -1
  331. package/dist/types/social/profiles.d.ts.map +1 -1
  332. package/dist/types/utils/abi/normalizeFunctionParams.d.ts +3 -0
  333. package/dist/types/utils/abi/normalizeFunctionParams.d.ts.map +1 -0
  334. package/dist/types/utils/any-evm/compute-published-contract-address.d.ts +2 -6
  335. package/dist/types/utils/any-evm/compute-published-contract-address.d.ts.map +1 -1
  336. package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts +17 -2
  337. package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts.map +1 -1
  338. package/dist/types/utils/any-evm/deploy-metadata.d.ts +3 -6
  339. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  340. package/dist/types/utils/caching/lru.d.ts +4 -13
  341. package/dist/types/utils/caching/lru.d.ts.map +1 -1
  342. package/dist/types/utils/ipfs.d.ts +1 -1
  343. package/dist/types/utils/ipfs.d.ts.map +1 -1
  344. package/dist/types/version.d.ts +1 -1
  345. package/dist/types/version.d.ts.map +1 -1
  346. package/dist/types/wallets/in-app/core/authentication/types.d.ts +1 -0
  347. package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
  348. package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-calls.d.ts.map +1 -1
  349. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  350. package/dist/types/wallets/in-app/web/in-app.d.ts +2 -0
  351. package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
  352. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  353. package/dist/types/wallets/types.d.ts +2 -2
  354. package/dist/types/wallets/types.d.ts.map +1 -1
  355. package/package.json +17 -22
  356. package/src/analytics/track.ts +29 -0
  357. package/src/chains/chain-definitions/polygon.ts +1 -1
  358. package/src/contract/actions/compiler-metadata.ts +2 -2
  359. package/src/contract/deployment/deploy-deterministic.test.ts +16 -5
  360. package/src/contract/deployment/deploy-deterministic.ts +35 -2
  361. package/src/contract/deployment/deploy-via-autofactory.test.ts +0 -2
  362. package/src/contract/deployment/deploy-via-autofactory.ts +3 -0
  363. package/src/contract/deployment/deploy-with-abi.ts +63 -24
  364. package/src/contract/deployment/publisher.test.ts +2 -2
  365. package/src/contract/deployment/utils/bootstrap.test.ts +3 -2
  366. package/src/contract/deployment/utils/bootstrap.ts +36 -12
  367. package/src/contract/deployment/utils/clone-factory.ts +1 -2
  368. package/src/contract/deployment/utils/infra.ts +61 -5
  369. package/src/contract/deployment/zksync/zkDeployContract.ts +13 -2
  370. package/src/contract/deployment/zksync/zkDeployDeterministic.ts +4 -3
  371. package/src/contract/deployment/zksync/zkDeployProxy.ts +5 -4
  372. package/src/contract/verification/source-files.ts +2 -2
  373. package/src/exports/contract.ts +6 -0
  374. package/src/exports/deploys.ts +14 -5
  375. package/src/exports/extensions/erc721.ts +3 -1
  376. package/src/exports/utils.ts +2 -0
  377. package/src/extensions/airdrop/write/airdropERC1155WithSignature.test.ts +4 -1
  378. package/src/extensions/airdrop/write/airdropERC20WithSignature.test.ts +4 -1
  379. package/src/extensions/airdrop/write/airdropERC721WithSignature.test.ts +4 -1
  380. package/src/extensions/airdrop/write/claimERC1155.test.ts +4 -1
  381. package/src/extensions/airdrop/write/claimERC20.test.ts +4 -1
  382. package/src/extensions/airdrop/write/claimERC721.test.ts +4 -1
  383. package/src/extensions/erc1155/write/updateTokenURI.test.ts +54 -0
  384. package/src/extensions/erc20/write/getApprovalForTransaction.test.ts +112 -0
  385. package/src/extensions/erc20/write/transferFrom.test.ts +104 -0
  386. package/src/extensions/erc4337/account/permissions.test.ts +4 -1
  387. package/src/extensions/erc721/drops/write/updateMetadata.test.ts +29 -0
  388. package/src/extensions/erc721/lazyMinting/read/getBatchesToReveal.ts +15 -15
  389. package/src/extensions/erc721/lazyMinting/write/createAndReveal.test.ts +84 -0
  390. package/src/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.ts +33 -3
  391. package/src/extensions/erc721/lazyMinting/write/reveal.test.ts +1 -45
  392. package/src/extensions/erc721/lazyMinting/write/reveal.ts +2 -23
  393. package/src/extensions/erc721/write/updateTokenURI.test.ts +56 -0
  394. package/src/extensions/erc721/write/updateTokenURI.ts +3 -0
  395. package/src/extensions/marketplace/offers/offers.test.ts +0 -1
  396. package/src/extensions/marketplace/offers/write/makeOffer.ts +0 -1
  397. package/src/extensions/modules/common/getOrDeployModule.ts +2 -7
  398. package/src/extensions/modules/common/installPublishedModule.ts +2 -2
  399. package/src/extensions/modules/common/uninstallPublishedModule.ts +1 -9
  400. package/src/extensions/prebuilts/deploy-erc1155.ts +0 -1
  401. package/src/extensions/prebuilts/deploy-erc20.ts +0 -1
  402. package/src/extensions/prebuilts/deploy-erc721.ts +0 -1
  403. package/src/extensions/prebuilts/deploy-marketplace.ts +6 -8
  404. package/src/extensions/prebuilts/deploy-modular-core.test.ts +63 -2
  405. package/src/extensions/prebuilts/deploy-modular.ts +50 -38
  406. package/src/extensions/prebuilts/deploy-published.test.ts +61 -4
  407. package/src/extensions/prebuilts/deploy-published.ts +208 -55
  408. package/src/extensions/prebuilts/deploy-split.ts +0 -1
  409. package/src/extensions/prebuilts/deploy-vote.ts +0 -1
  410. package/src/extensions/prebuilts/get-required-transactions.test.ts +61 -0
  411. package/src/extensions/prebuilts/get-required-transactions.ts +110 -0
  412. package/src/react/core/hooks/others/useProfiles.ts +1 -1
  413. package/src/react/core/social/useSocialProfiles.ts +2 -0
  414. package/src/react/core/utils/walletIcon.ts +5 -0
  415. package/src/react/native/ui/components/Address.tsx +1 -3
  416. package/src/react/native/ui/components/WalletImage.tsx +3 -0
  417. package/src/react/native/ui/connect/InAppWalletUI.tsx +2 -0
  418. package/src/react/native/ui/icons/svgs.ts +2 -0
  419. package/src/react/web/ui/ConnectWallet/Details.tsx +7 -0
  420. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +31 -3
  421. package/src/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.tsx +7 -0
  422. package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +7 -0
  423. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.tsx +7 -0
  424. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +53 -0
  425. package/src/react/web/ui/TransactionButton/TransactionModal.tsx +21 -0
  426. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +1 -0
  427. package/src/react/web/wallets/shared/oauthSignIn.ts +1 -0
  428. package/src/social/profiles.ts +2 -1
  429. package/src/transaction/actions/zksync/send-eip712-transaction.test.ts +13 -13
  430. package/src/utils/abi/normalizeFunctionParams.ts +29 -0
  431. package/src/utils/any-evm/compute-published-contract-address.ts +17 -12
  432. package/src/utils/any-evm/compute-published-contract-deploy-info.ts +31 -12
  433. package/src/utils/any-evm/deploy-metadata.ts +9 -34
  434. package/src/utils/bytecode/resolveImplementation.test.ts +7 -5
  435. package/src/utils/caching/lru.test.ts +38 -0
  436. package/src/utils/caching/lru.ts +18 -14
  437. package/src/utils/domains.ts +1 -1
  438. package/src/utils/ipfs.ts +3 -1
  439. package/src/version.ts +1 -1
  440. package/src/wallets/in-app/core/authentication/types.ts +1 -0
  441. package/src/wallets/in-app/core/eip5972/in-app-wallet-calls.ts +3 -14
  442. package/src/wallets/in-app/native/native-connector.ts +2 -0
  443. package/src/wallets/in-app/web/in-app.ts +2 -0
  444. package/src/wallets/in-app/web/lib/web-connector.ts +2 -0
  445. package/src/wallets/types.ts +1 -0
@@ -49,23 +49,23 @@ export async function getBatchesToReveal(
49
49
  const countRangeArray = Array.from(Array(Number(count)).keys());
50
50
  const uriIndices = await Promise.all(
51
51
  countRangeArray.map(async (batchId) => {
52
- try {
53
- return await GetBatchIdAtIndex.getBatchIdAtIndex({
52
+ const promiseAll = await Promise.allSettled([
53
+ GetBatchIdAtIndex.getBatchIdAtIndex({
54
54
  contract: options.contract,
55
55
  index: BigInt(batchId),
56
- });
57
- } catch {
58
- try {
59
- return await BaseURIIndicies.baseURIIndices({
60
- contract: options.contract,
61
- index: BigInt(batchId),
62
- });
63
- } catch {
64
- throw new Error(
65
- "Contract does not have `getBatchIdAtIndex` or `baseURIIndices`, which are required for `getBatchesToReveal`",
66
- );
67
- }
56
+ }),
57
+ BaseURIIndicies.baseURIIndices({
58
+ contract: options.contract,
59
+ index: BigInt(batchId),
60
+ }),
61
+ ]);
62
+ const result = promiseAll.find((result) => result.status === "fulfilled");
63
+ if (!result) {
64
+ throw new Error(
65
+ "Contract does not have `getBatchIdAtIndex` or `baseURIIndices`, which are required for `getBatchesToReveal`",
66
+ );
68
67
  }
68
+ return result.value;
69
69
  }),
70
70
  );
71
71
 
@@ -131,7 +131,7 @@ export async function getBatchesToReveal(
131
131
  * const supported = isGetBatchesToRevealSupported(["0x..."]);
132
132
  * ```
133
133
  */
134
- export function isGetBaseURICountSupported(availableSelectors: string[]) {
134
+ export function isGetBatchesToRevealSupported(availableSelectors: string[]) {
135
135
  return [
136
136
  GetBaseURICount.isGetBaseURICountSupported(availableSelectors),
137
137
  GetBatchIdAtIndex.isGetBatchIdAtIndexSupported(availableSelectors),
@@ -0,0 +1,84 @@
1
+ import { beforeAll, describe, it } from "vitest";
2
+ import { expect } from "vitest";
3
+ import { ANVIL_CHAIN } from "../../../../../test/src/chains.js";
4
+ import { TEST_CLIENT } from "../../../../../test/src/test-clients.js";
5
+ import { TEST_ACCOUNT_A } from "../../../../../test/src/test-wallets.js";
6
+ import {
7
+ type ThirdwebContract,
8
+ getContract,
9
+ } from "../../../../contract/contract.js";
10
+ import { sendAndConfirmTransaction } from "../../../../transaction/actions/send-and-confirm-transaction.js";
11
+ import { deployERC721Contract } from "../../../prebuilts/deploy-erc721.js";
12
+ import { getNFT } from "../../read/getNFT.js";
13
+ import { createDelayedRevealBatch } from "./createDelayedRevealBatch.js";
14
+ import { reveal } from "./reveal.js";
15
+
16
+ const placeholderNFT = {
17
+ name: "Hidden NFT",
18
+ description: "Will be revealed next week!",
19
+ };
20
+
21
+ const realNFTs = [
22
+ {
23
+ name: "Common NFT #1",
24
+ description: "Common NFT, one of many.",
25
+ },
26
+ {
27
+ name: "Super Rare NFT #2",
28
+ description: "You got a Super Rare NFT!",
29
+ },
30
+ ];
31
+
32
+ describe("createAndReveal", () => {
33
+ let contract: ThirdwebContract;
34
+ beforeAll(async () => {
35
+ const address = await deployERC721Contract({
36
+ client: TEST_CLIENT,
37
+ chain: ANVIL_CHAIN,
38
+ account: TEST_ACCOUNT_A,
39
+ type: "DropERC721",
40
+ params: {
41
+ name: "Test NFT",
42
+ description: "Test NFT Description",
43
+ contractURI: "",
44
+ },
45
+ });
46
+ contract = getContract({
47
+ chain: ANVIL_CHAIN,
48
+ address,
49
+ client: TEST_CLIENT,
50
+ });
51
+ });
52
+
53
+ it("should create and reveal a batch", async () => {
54
+ const tx = createDelayedRevealBatch({
55
+ contract,
56
+ metadata: realNFTs,
57
+ password: "password",
58
+ placeholderMetadata: placeholderNFT,
59
+ });
60
+ await sendAndConfirmTransaction({
61
+ transaction: tx,
62
+ account: TEST_ACCOUNT_A,
63
+ });
64
+ const nft = await getNFT({
65
+ contract,
66
+ tokenId: 0n,
67
+ });
68
+ expect(nft.metadata.name).toBe(placeholderNFT.name);
69
+ const revealTx = reveal({
70
+ contract,
71
+ batchId: 0n,
72
+ password: "password",
73
+ });
74
+ await sendAndConfirmTransaction({
75
+ transaction: revealTx,
76
+ account: TEST_ACCOUNT_A,
77
+ });
78
+ const nftAfterReveal = await getNFT({
79
+ contract,
80
+ tokenId: 0n,
81
+ });
82
+ expect(nftAfterReveal.metadata.name).toBe(realNFTs[0]?.name);
83
+ });
84
+ });
@@ -6,9 +6,18 @@ import { toHex } from "../../../../utils/encoding/hex.js";
6
6
  import { keccak256 } from "../../../../utils/hashing/keccak256.js";
7
7
  import { getBaseUriFromBatch } from "../../../../utils/ipfs.js";
8
8
  import type { NFTInput } from "../../../../utils/nft/parseNft.js";
9
- import { getBaseURICount } from "../../__generated__/IBatchMintMetadata/read/getBaseURICount.js";
10
- import { encryptDecrypt } from "../../__generated__/IDelayedReveal/read/encryptDecrypt.js";
11
- import { lazyMint as generatedLazyMint } from "../../__generated__/ILazyMint/write/lazyMint.js";
9
+ import {
10
+ getBaseURICount,
11
+ isGetBaseURICountSupported,
12
+ } from "../../__generated__/IBatchMintMetadata/read/getBaseURICount.js";
13
+ import {
14
+ encryptDecrypt,
15
+ isEncryptDecryptSupported,
16
+ } from "../../__generated__/IDelayedReveal/read/encryptDecrypt.js";
17
+ import {
18
+ lazyMint as generatedLazyMint,
19
+ isLazyMintSupported,
20
+ } from "../../__generated__/ILazyMint/write/lazyMint.js";
12
21
  import { hashDelayedRevealPassword } from "../helpers/hashDelayedRevealBatch.js";
13
22
 
14
23
  /**
@@ -123,3 +132,24 @@ export function createDelayedRevealBatch(
123
132
  },
124
133
  });
125
134
  }
135
+
136
+ /**
137
+ * Checks if the `createDelayedRevealBatch` method is supported by the given contract.
138
+ * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
139
+ * @returns A boolean indicating if the `createDelayedRevealBatch` method is supported.
140
+ * @extension ERC721
141
+ * @example
142
+ * ```ts
143
+ * import { isCreateDelayedRevealBatchSupported } from "thirdweb/extensions/erc721";
144
+ * const supported = isCreateDelayedRevealBatchSupported(["0x..."]);
145
+ * ```
146
+ */
147
+ export function isCreateDelayedRevealBatchSupported(
148
+ availableSelectors: string[],
149
+ ) {
150
+ return [
151
+ isGetBaseURICountSupported(availableSelectors),
152
+ isEncryptDecryptSupported(availableSelectors),
153
+ isLazyMintSupported(availableSelectors),
154
+ ].every(Boolean);
155
+ }
@@ -1,4 +1,4 @@
1
- import { beforeAll, describe, expect, it, vi } from "vitest";
1
+ import { beforeAll, describe, expect, it } from "vitest";
2
2
  import { ANVIL_CHAIN } from "../../../../../test/src/chains.js";
3
3
  import { TEST_CLIENT } from "../../../../../test/src/test-clients.js";
4
4
  import {
@@ -7,14 +7,6 @@ import {
7
7
  } from "../../../../contract/contract.js";
8
8
  import { reveal } from "./reveal.js";
9
9
 
10
- const mocks = vi.hoisted(() => ({
11
- simulateTransaction: vi.fn(),
12
- }));
13
-
14
- vi.mock("../../../../transaction/actions/simulate.js", () => ({
15
- simulateTransaction: mocks.simulateTransaction,
16
- }));
17
-
18
10
  describe("reveal", () => {
19
11
  let contract: ThirdwebContract;
20
12
  beforeAll(() => {
@@ -34,40 +26,4 @@ describe("reveal", () => {
34
26
 
35
27
  expect(() => reveal(options)).toThrowError("Password is required");
36
28
  });
37
-
38
- it("should successfully prepare a reveal transaction", async () => {
39
- const options = {
40
- contract,
41
- batchId: 1n,
42
- password: "securepassword",
43
- };
44
-
45
- mocks.simulateTransaction.mockResolvedValue(
46
- "ipfs://correctly_decrypted_uri/",
47
- );
48
-
49
- const tx = reveal(options);
50
- if (typeof tx.data === "function") {
51
- await tx.data();
52
- }
53
-
54
- expect(mocks.simulateTransaction).toHaveBeenCalled();
55
- });
56
-
57
- it("should throw an error if the decrypted URI is invalid", async () => {
58
- const options = {
59
- contract,
60
- batchId: 1n,
61
- password: "securepassword",
62
- };
63
-
64
- mocks.simulateTransaction.mockResolvedValue("invalid_uri");
65
-
66
- const tx = reveal(options);
67
- if (typeof tx.data === "function") {
68
- expect(tx.data()).rejects.toThrow("Invalid reveal password");
69
- } else {
70
- throw new Error("Something went wrong");
71
- }
72
- });
73
29
  });
@@ -1,8 +1,9 @@
1
- import { simulateTransaction } from "../../../../transaction/actions/simulate.js";
2
1
  import type { BaseTransactionOptions } from "../../../../transaction/types.js";
3
2
  import { reveal as generatedReveal } from "../../__generated__/IDelayedReveal/write/reveal.js";
4
3
  import { hashDelayedRevealPassword } from "../helpers/hashDelayedRevealBatch.js";
5
4
 
5
+ export { isRevealSupported } from "../../__generated__/IDelayedReveal/write/reveal.js";
6
+
6
7
  /**
7
8
  * @extension ERC721
8
9
  */
@@ -44,28 +45,6 @@ export function reveal(options: BaseTransactionOptions<RevealParams>) {
44
45
  options.password,
45
46
  options.contract,
46
47
  );
47
-
48
- const transaction = generatedReveal({
49
- contract: options.contract,
50
- asyncParams: async () => ({
51
- identifier: options.batchId,
52
- key,
53
- }),
54
- });
55
-
56
- let decryptedUri: string;
57
- try {
58
- decryptedUri = await simulateTransaction({
59
- transaction,
60
- });
61
- } catch (error) {
62
- throw new Error("Reveal failed", { cause: error });
63
- }
64
-
65
- if (!decryptedUri.includes("://") || decryptedUri.slice(-1) !== "/") {
66
- throw new Error("Invalid reveal password");
67
- }
68
-
69
48
  return {
70
49
  identifier: options.batchId,
71
50
  key,
@@ -0,0 +1,56 @@
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_A } from "~test/test-wallets.js";
6
+ import { getContract } from "../../../contract/contract.js";
7
+ import { deployERC721Contract } from "../../../extensions/prebuilts/deploy-erc721.js";
8
+ import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
9
+ import { getNFT } from "../read/getNFT.js";
10
+ import { mintTo } from "./mintTo.js";
11
+ import { updateTokenURI } from "./updateTokenURI.js";
12
+
13
+ const client = TEST_CLIENT;
14
+ const chain = ANVIL_CHAIN;
15
+ const account = TEST_ACCOUNT_A;
16
+
17
+ describe.runIf(process.env.TW_SECRET_KEY)(
18
+ "NFTCollection: Update token uri",
19
+ () => {
20
+ it("should update token uri", async () => {
21
+ const address = await deployERC721Contract({
22
+ client,
23
+ chain,
24
+ account,
25
+ type: "TokenERC721",
26
+ params: {
27
+ name: "NFT collection",
28
+ contractURI: TEST_CONTRACT_URI,
29
+ },
30
+ });
31
+ const contract = getContract({
32
+ address,
33
+ client,
34
+ chain,
35
+ });
36
+ await sendAndConfirmTransaction({
37
+ transaction: mintTo({
38
+ contract,
39
+ nft: { name: "Test1" },
40
+ to: account.address,
41
+ }),
42
+ account,
43
+ });
44
+ await sendAndConfirmTransaction({
45
+ transaction: updateTokenURI({
46
+ contract,
47
+ newMetadata: { name: "Test1 Updated" },
48
+ tokenId: 0n,
49
+ }),
50
+ account,
51
+ });
52
+ const nft = await getNFT({ contract, tokenId: 0n });
53
+ expect(nft.metadata.name).toBe("Test1 Updated");
54
+ });
55
+ },
56
+ );
@@ -50,6 +50,9 @@ export function updateTokenURI(
50
50
  });
51
51
  }
52
52
 
53
+ /**
54
+ * @internal
55
+ */
53
56
  export async function getUpdateTokenParams(
54
57
  options: BaseTransactionOptions<UpdateTokenURIParams>,
55
58
  ): Promise<SetTokenURIParams> {
@@ -92,7 +92,6 @@ describe.skip("Marketplace: Offers", () => {
92
92
  WETH9 = (await getDeployedInfraContract({
93
93
  chain: ANVIL_CHAIN,
94
94
  contractId: "WETH9",
95
- constructorParams: [],
96
95
  client: TEST_CLIENT,
97
96
  }))!;
98
97
 
@@ -103,7 +103,6 @@ export function makeOffer(options: BaseTransactionOptions<MakeOfferParams>) {
103
103
  const WETH9 = await getDeployedInfraContract({
104
104
  chain: options.contract.chain,
105
105
  client: options.contract.client,
106
- constructorParams: [],
107
106
  contractId: "WETH9",
108
107
  });
109
108
 
@@ -10,17 +10,14 @@ export const getOrDeployModule = async (options: {
10
10
  account: Account;
11
11
  contractId: string;
12
12
  publisher?: string;
13
- constructorParams?: unknown[];
14
13
  }) => {
15
- const { client, chain, account, contractId, publisher, constructorParams } =
16
- options;
14
+ const { client, chain, account, contractId, publisher } = options;
17
15
  const contract = await getOrDeployInfraContract({
18
16
  client,
19
17
  chain,
20
18
  account,
21
19
  contractId,
22
20
  publisher,
23
- constructorParams: constructorParams ?? [],
24
21
  });
25
22
  return contract;
26
23
  };
@@ -30,14 +27,12 @@ export const getDeployedModule = (options: {
30
27
  chain: Chain;
31
28
  contractId: string;
32
29
  publisher?: string;
33
- constructorParams?: unknown[];
34
30
  }) => {
35
- const { client, chain, contractId, publisher, constructorParams } = options;
31
+ const { client, chain, contractId, publisher } = options;
36
32
  return getDeployedInfraContract({
37
33
  client,
38
34
  chain,
39
35
  contractId,
40
36
  publisher,
41
- constructorParams: constructorParams ?? [],
42
37
  });
43
38
  };
@@ -12,7 +12,7 @@ export type InstallPublishedModuleOptions = {
12
12
  moduleName: string;
13
13
  publisher?: string;
14
14
  version?: string;
15
- constructorParams?: unknown[];
15
+ constructorParams?: Record<string, unknown>;
16
16
  moduleData?: `0x${string}`;
17
17
  };
18
18
 
@@ -53,7 +53,7 @@ export function installPublishedModule(options: InstallPublishedModuleOptions) {
53
53
  client: contract.client,
54
54
  account,
55
55
  contractId: moduleName,
56
- constructorParams: constructorParams || [],
56
+ constructorParams,
57
57
  publisher,
58
58
  });
59
59
  return {
@@ -10,7 +10,6 @@ export type UninstallPublishedModuleOptions = {
10
10
  moduleName: string;
11
11
  publisherAddress?: string;
12
12
  version?: string;
13
- constructorParams?: unknown[];
14
13
  moduleData?: `0x${string}`;
15
14
  };
16
15
 
@@ -35,13 +34,7 @@ export type UninstallPublishedModuleOptions = {
35
34
  export function uninstallPublishedModule(
36
35
  options: UninstallPublishedModuleOptions,
37
36
  ) {
38
- const {
39
- contract,
40
- moduleName,
41
- publisherAddress,
42
- constructorParams,
43
- moduleData,
44
- } = options;
37
+ const { contract, moduleName, publisherAddress, moduleData } = options;
45
38
 
46
39
  return uninstallModule({
47
40
  contract,
@@ -50,7 +43,6 @@ export function uninstallPublishedModule(
50
43
  chain: contract.chain,
51
44
  client: contract.client,
52
45
  contractId: moduleName,
53
- constructorParams: constructorParams || [],
54
46
  publisher: publisherAddress,
55
47
  });
56
48
  return {
@@ -75,7 +75,6 @@ export async function deployERC1155Contract(
75
75
  client,
76
76
  account,
77
77
  contractId: type,
78
- constructorParams: [],
79
78
  });
80
79
  const initializeTransaction = await getInitializeTransaction({
81
80
  client,
@@ -69,7 +69,6 @@ export async function deployERC20Contract(options: DeployERC20ContractOptions) {
69
69
  client,
70
70
  account,
71
71
  contractId: type,
72
- constructorParams: [],
73
72
  publisher,
74
73
  });
75
74
  const initializeTransaction = await getInitializeTransaction({
@@ -80,7 +80,6 @@ export async function deployERC721Contract(
80
80
  client,
81
81
  account,
82
82
  contractId: type,
83
- constructorParams: [],
84
83
  });
85
84
 
86
85
  const initializeTransaction = await getInitializeTransaction({
@@ -51,14 +51,13 @@ export async function deployMarketplaceContract(
51
51
  client,
52
52
  account,
53
53
  contractId: "WETH9",
54
- constructorParams: [],
55
54
  });
56
55
  const direct = await getOrDeployInfraForPublishedContract({
57
56
  chain,
58
57
  client,
59
58
  account,
60
59
  contractId: "DirectListingsLogic",
61
- constructorParams: [WETH.address],
60
+ constructorParams: { _nativeTokenWrapper: WETH.address },
62
61
  });
63
62
 
64
63
  const english = await getOrDeployInfraForPublishedContract({
@@ -66,7 +65,7 @@ export async function deployMarketplaceContract(
66
65
  client,
67
66
  account,
68
67
  contractId: "EnglishAuctionsLogic",
69
- constructorParams: [WETH.address],
68
+ constructorParams: { _nativeTokenWrapper: WETH.address },
70
69
  });
71
70
 
72
71
  const offers = await getOrDeployInfraForPublishedContract({
@@ -74,7 +73,6 @@ export async function deployMarketplaceContract(
74
73
  client,
75
74
  account,
76
75
  contractId: "OffersLogic",
77
- constructorParams: [],
78
76
  });
79
77
 
80
78
  const [directFunctions, englishFunctions, offersFunctions] =
@@ -96,8 +94,8 @@ export async function deployMarketplaceContract(
96
94
  client,
97
95
  account,
98
96
  contractId: "MarketplaceV3",
99
- constructorParams: [
100
- {
97
+ constructorParams: {
98
+ _marketplaceV3Params: {
101
99
  extensions: [
102
100
  {
103
101
  metadata: {
@@ -126,8 +124,8 @@ export async function deployMarketplaceContract(
126
124
  ],
127
125
  royaltyEngineAddress: getRoyaltyEngineV1ByChainId(chain.id),
128
126
  nativeTokenWrapper: WETH.address,
129
- },
130
- ] as MarketplaceConstructorParams,
127
+ } as MarketplaceConstructorParams[number],
128
+ },
131
129
  });
132
130
 
133
131
  const initializeTransaction = await getInitializeTransaction({
@@ -4,6 +4,7 @@ import { TEST_CLIENT } from "../../../test/src/test-clients.js";
4
4
  import { TEST_ACCOUNT_A } from "../../../test/src/test-wallets.js";
5
5
  import { ZERO_ADDRESS } from "../../constants/addresses.js";
6
6
  import { getContract } from "../../contract/contract.js";
7
+ import { fetchPublishedContractMetadata } from "../../contract/deployment/publisher.js";
7
8
  import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
8
9
  import * as ERC20Claimable from "../modules/ClaimableERC20/index.js";
9
10
  import { getInstalledModules } from "../modules/__generated__/IModularCore/read/getInstalledModules.js";
@@ -11,7 +12,10 @@ import { installPublishedModule } from "../modules/common/installPublishedModule
11
12
  import { uninstallModuleByProxy } from "../modules/common/uninstallModuleByProxy.js";
12
13
  import { uninstallPublishedModule } from "../modules/common/uninstallPublishedModule.js";
13
14
  import { deployModularContract } from "./deploy-modular.js";
14
- import { deployPublishedContract } from "./deploy-published.js";
15
+ import {
16
+ deployContractfromDeployMetadata,
17
+ deployPublishedContract,
18
+ } from "./deploy-published.js";
15
19
 
16
20
  describe.runIf(process.env.TW_SECRET_KEY)(
17
21
  "deployModularCore",
@@ -27,7 +31,9 @@ describe.runIf(process.env.TW_SECRET_KEY)(
27
31
  chain: ANVIL_CHAIN,
28
32
  account: TEST_ACCOUNT_A,
29
33
  contractId: "DemoCore",
30
- contractParams: [TEST_ACCOUNT_A.address, [], ["0x"]],
34
+ contractParams: {
35
+ _owner: TEST_ACCOUNT_A.address,
36
+ },
31
37
  publisher: "0xFD78F7E2dF2B8c3D5bff0413c96f3237500898B3",
32
38
  });
33
39
  }, 120000);
@@ -161,5 +167,60 @@ describe.runIf(process.env.TW_SECRET_KEY)(
161
167
  });
162
168
  expect(installedModules.length).toBe(1);
163
169
  });
170
+
171
+ it("should deploy a modular contract with dynamic modules", async () => {
172
+ const modules = await Promise.all([
173
+ fetchPublishedContractMetadata({
174
+ client: TEST_CLIENT,
175
+ contractId: "ClaimableERC721",
176
+ }).then((m) => ({
177
+ deployMetadata: m,
178
+ initializeParams: {
179
+ primarySaleRecipient: TEST_ACCOUNT_A.address,
180
+ },
181
+ })),
182
+ fetchPublishedContractMetadata({
183
+ client: TEST_CLIENT,
184
+ contractId: "BatchMetadataERC721",
185
+ }).then((m) => ({
186
+ deployMetadata: m,
187
+ })),
188
+ fetchPublishedContractMetadata({
189
+ client: TEST_CLIENT,
190
+ contractId: "RoyaltyERC721",
191
+ }).then((m) => ({
192
+ deployMetadata: m,
193
+ initializeParams: {
194
+ royaltyRecipient: TEST_ACCOUNT_A.address,
195
+ royaltyBps: 10000,
196
+ transferValidator: ZERO_ADDRESS,
197
+ },
198
+ })),
199
+ ]);
200
+ const address = await deployContractfromDeployMetadata({
201
+ chain: ANVIL_CHAIN,
202
+ client: TEST_CLIENT,
203
+ account: TEST_ACCOUNT_A,
204
+ deployMetadata: await fetchPublishedContractMetadata({
205
+ client: TEST_CLIENT,
206
+ contractId: "ERC721CoreInitializable",
207
+ }),
208
+ initializeParams: {
209
+ owner: TEST_ACCOUNT_A.address,
210
+ name: "TestModularDynamic",
211
+ symbol: "TT",
212
+ contractURI: "",
213
+ },
214
+ modules,
215
+ });
216
+ const installedModules = await getInstalledModules({
217
+ contract: getContract({
218
+ client: TEST_CLIENT,
219
+ chain: ANVIL_CHAIN,
220
+ address,
221
+ }),
222
+ });
223
+ expect(installedModules.length).toBe(3);
224
+ });
164
225
  },
165
226
  );