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
@@ -1,10 +1,17 @@
1
+ import type { Chain } from "../../../chains/types.js";
2
+ import type { ThirdwebClient } from "../../../client/client.js";
1
3
  import { prepareTransaction } from "../../../transaction/prepare-transaction.js";
2
- import { computePublishedContractAddress } from "../../../utils/any-evm/compute-published-contract-address.js";
3
- import { computeDeploymentInfoFromContractId } from "../../../utils/any-evm/compute-published-contract-deploy-info.js";
4
+ import { computeContractAddress } from "../../../utils/any-evm/compute-published-contract-address.js";
5
+ import {
6
+ computeDeploymentInfoFromContractId,
7
+ computeDeploymentInfoFromMetadata,
8
+ } from "../../../utils/any-evm/compute-published-contract-deploy-info.js";
9
+ import type { FetchDeployMetadataResult } from "../../../utils/any-evm/deploy-metadata.js";
4
10
  import { isContractDeployed } from "../../../utils/bytecode/is-contract-deployed.js";
5
11
  import type { Prettify } from "../../../utils/type-utils.js";
6
12
  import type { ClientAndChain } from "../../../utils/types.js";
7
13
  import { type ThirdwebContract, getContract } from "../../contract.js";
14
+ import { fetchPublishedContractMetadata } from "../publisher.js";
8
15
  import { computeCreate2FactoryAddress } from "./create-2-factory.js";
9
16
 
10
17
  export type InfraContractId =
@@ -17,7 +24,7 @@ export type InfraContractId =
17
24
  export type GetDeployedInfraParams = Prettify<
18
25
  ClientAndChain & {
19
26
  contractId: InfraContractId;
20
- constructorParams: unknown[];
27
+ constructorParams?: Record<string, unknown>;
21
28
  publisher?: string;
22
29
  version?: string;
23
30
  }
@@ -29,9 +36,31 @@ export type GetDeployedInfraParams = Prettify<
29
36
  export async function getDeployedInfraContract(
30
37
  options: GetDeployedInfraParams,
31
38
  ): Promise<ThirdwebContract | null> {
32
- const address = await computePublishedContractAddress({
33
- ...options,
39
+ const contractMetadata = await fetchPublishedContractMetadata({
40
+ client: options.client,
41
+ contractId: options.contractId,
42
+ publisher: options.publisher,
43
+ version: options.version,
44
+ });
45
+ return getDeployedInfraContractFromMetadata({
46
+ client: options.client,
47
+ chain: options.chain,
48
+ contractMetadata,
49
+ constructorParams: options.constructorParams,
34
50
  });
51
+ }
52
+
53
+ /**
54
+ * @internal
55
+ */
56
+ export async function getDeployedInfraContractFromMetadata(options: {
57
+ client: ThirdwebClient;
58
+ chain: Chain;
59
+ contractMetadata: FetchDeployMetadataResult;
60
+ constructorParams?: Record<string, unknown>;
61
+ salt?: string;
62
+ }): Promise<ThirdwebContract | null> {
63
+ const address = await computeContractAddress(options);
35
64
  const factory = getContract({
36
65
  ...options,
37
66
  address,
@@ -64,3 +93,30 @@ export function prepareInfraContractDeployTransaction(
64
93
  },
65
94
  });
66
95
  }
96
+
97
+ /**
98
+ * @internal
99
+ */
100
+ export function prepareInfraContractDeployTransactionFromMetadata(options: {
101
+ client: ThirdwebClient;
102
+ chain: Chain;
103
+ contractMetadata: FetchDeployMetadataResult;
104
+ constructorParams?: Record<string, unknown>;
105
+ salt?: string;
106
+ }) {
107
+ const { client, chain } = options;
108
+ return prepareTransaction({
109
+ client,
110
+ chain,
111
+ to: () =>
112
+ computeCreate2FactoryAddress({
113
+ client,
114
+ chain,
115
+ }),
116
+ data: async () => {
117
+ const infraContractInfo =
118
+ await computeDeploymentInfoFromMetadata(options);
119
+ return infraContractInfo.initBytecodeWithsalt;
120
+ },
121
+ });
122
+ }
@@ -4,9 +4,11 @@ import { parseEventLogs } from "../../../event/actions/parse-logs.js";
4
4
  import { contractDeployedEvent } from "../../../extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js";
5
5
  import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
6
6
  import { prepareTransaction } from "../../../transaction/prepare-transaction.js";
7
+ import { normalizeFunctionParams } from "../../../utils/abi/normalizeFunctionParams.js";
7
8
  import { CONTRACT_DEPLOYER_ADDRESS } from "../../../utils/any-evm/zksync/constants.js";
8
9
  import type { Hex } from "../../../utils/encoding/hex.js";
9
10
  import type { ClientAndChainAndAccount } from "../../../utils/types.js";
11
+ import { zkDeployContractDeterministic } from "./zkDeployDeterministic.js";
10
12
 
11
13
  /**
12
14
  * @internal
@@ -15,14 +17,23 @@ export async function zkDeployContract(
15
17
  options: ClientAndChainAndAccount & {
16
18
  abi: Abi;
17
19
  bytecode: Hex;
18
- params?: unknown[];
20
+ params?: Record<string, unknown>;
21
+ salt?: string;
19
22
  },
20
23
  ) {
24
+ if (options.salt !== undefined) {
25
+ // if a salt is provided, use the deterministic deployer
26
+ return zkDeployContractDeterministic(options);
27
+ }
28
+
21
29
  const data = encodeDeployData({
22
30
  abi: options.abi,
23
31
  bytecode: options.bytecode,
24
32
  deploymentType: "create",
25
- args: options.params,
33
+ args: normalizeFunctionParams(
34
+ options.abi.find((abi) => abi.type === "constructor"),
35
+ options.params,
36
+ ),
26
37
  });
27
38
 
28
39
  const receipt = await sendAndConfirmTransaction({
@@ -1,9 +1,10 @@
1
- import { type Abi, parseAbi } from "abitype";
1
+ import { type Abi, type AbiConstructor, parseAbi } from "abitype";
2
2
  import { hashBytecode } from "viem/zksync";
3
3
  import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
4
4
  import { prepareContractCall } from "../../../transaction/prepare-contract-call.js";
5
5
  import { readContract } from "../../../transaction/read-contract.js";
6
6
  import { encodeAbiParameters } from "../../../utils/abi/encodeAbiParameters.js";
7
+ import { normalizeFunctionParams } from "../../../utils/abi/normalizeFunctionParams.js";
7
8
  import { keccakId } from "../../../utils/any-evm/keccak-id.js";
8
9
  import { computeDeploymentAddress } from "../../../utils/any-evm/zksync/computeDeploymentAddress.js";
9
10
  import {
@@ -25,7 +26,7 @@ export async function zkDeployContractDeterministic(
25
26
  options: ClientAndChainAndAccount & {
26
27
  abi: Abi;
27
28
  bytecode: Hex;
28
- params: unknown[];
29
+ params?: Record<string, unknown>;
29
30
  salt?: string;
30
31
  },
31
32
  ) {
@@ -34,7 +35,7 @@ export async function zkDeployContractDeterministic(
34
35
  ) || { inputs: [] };
35
36
  const encodedArgs = encodeAbiParameters(
36
37
  constructorAbi.inputs,
37
- options.params || [],
38
+ normalizeFunctionParams(constructorAbi as AbiConstructor, options.params),
38
39
  );
39
40
  const create2FactoryAddress = await zkDeployCreate2Factory({
40
41
  client: options.client,
@@ -44,10 +44,11 @@ export async function zkDeployProxy(
44
44
  account: options.account,
45
45
  abi: twProxyAbi,
46
46
  bytecode: twProxyBytecode,
47
- params: [
48
- implementationAddress,
49
- await encode(options.initializeTransaction),
50
- ],
47
+ params: {
48
+ _logic: implementationAddress,
49
+ _data: await encode(options.initializeTransaction),
50
+ },
51
+ salt: options.salt,
51
52
  });
52
53
 
53
54
  // return address of proxy
@@ -1,10 +1,10 @@
1
1
  import type { ThirdwebClient } from "../../client/client.js";
2
2
  import { download } from "../../storage/download.js";
3
- import type { PublishedMetadata } from "../actions/compiler-metadata.js";
3
+ import type { CompilerMetadata } from "../actions/compiler-metadata.js";
4
4
 
5
5
  type FetchSourceFilesFromMetadataOptions = {
6
6
  client: ThirdwebClient;
7
- publishedMetadata: PublishedMetadata;
7
+ publishedMetadata: CompilerMetadata;
8
8
  };
9
9
 
10
10
  type ContractSource = {
@@ -28,6 +28,12 @@ export {
28
28
  fetchDeployBytecodeFromPublishedContractMetadata,
29
29
  } from "../contract/deployment/publisher.js";
30
30
 
31
+ // contract metadata
32
+ export {
33
+ fetchDeployMetadata,
34
+ type FetchDeployMetadataResult,
35
+ } from "../utils/any-evm/deploy-metadata.js";
36
+
31
37
  // deployment - TODO: these end up looking more like extensions -> should they be?
32
38
  export {
33
39
  prepareDirectDeployTransaction,
@@ -19,9 +19,22 @@ export {
19
19
  deployERC1155Contract,
20
20
  } from "../extensions/prebuilts/deploy-erc1155.js";
21
21
 
22
+ export {
23
+ deploySplitContract,
24
+ type SplitContractParams,
25
+ type DeploySplitContractOptions,
26
+ } from "../extensions/prebuilts/deploy-split.js";
27
+
28
+ export {
29
+ deployMarketplaceContract,
30
+ type MarketplaceContractParams,
31
+ } from "../extensions/prebuilts/deploy-marketplace.js";
32
+
22
33
  export {
23
34
  deployPublishedContract,
24
35
  type DeployPublishedContractOptions,
36
+ deployContractfromDeployMetadata,
37
+ type DeployContractfromDeployMetadataOptions,
25
38
  } from "../extensions/prebuilts/deploy-published.js";
26
39
 
27
40
  export { prepareDirectDeployTransaction } from "../contract/deployment/deploy-with-abi.js";
@@ -33,8 +46,4 @@ export {
33
46
  type PrepareDirectDeployTransactionOptions,
34
47
  } from "../contract/deployment/deploy-with-abi.js";
35
48
  export { computePublishedContractAddress } from "../utils/any-evm/compute-published-contract-address.js";
36
- export {
37
- deploySplitContract,
38
- type SplitContractParams,
39
- type DeploySplitContractOptions,
40
- } from "../extensions/prebuilts/deploy-split.js";
49
+ export { getRequiredTransactionCount } from "../extensions/prebuilts/get-required-transactions.js";
@@ -191,15 +191,17 @@ export {
191
191
  export {
192
192
  type CreateDelayedRevealBatchParams,
193
193
  createDelayedRevealBatch,
194
+ isCreateDelayedRevealBatchSupported,
194
195
  } from "../../extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js";
195
196
  export {
196
197
  type RevealParams,
197
198
  reveal,
199
+ isRevealSupported,
198
200
  } from "../../extensions/erc721/lazyMinting/write/reveal.js";
199
201
  export {
200
202
  type BatchToReveal,
201
203
  getBatchesToReveal,
202
- isGetBaseURICountSupported,
204
+ isGetBatchesToRevealSupported,
203
205
  } from "../../extensions/erc721/lazyMinting/read/getBatchesToReveal.js";
204
206
  export {
205
207
  updateMetadata,
@@ -181,3 +181,5 @@ export { parseAbiParams } from "../utils/contract/parse-abi-params.js";
181
181
  // bigint
182
182
  // ------------------------------------------------
183
183
  export { max, min } from "../utils/bigint.js";
184
+
185
+ export { toFunctionSelector } from "viem";
@@ -39,7 +39,10 @@ describe
39
39
  chain: ANVIL_CHAIN,
40
40
  client: TEST_CLIENT,
41
41
  contractId: "Airdrop",
42
- contractParams: [TEST_ACCOUNT_A.address, ""],
42
+ contractParams: {
43
+ defaultAdmin: TEST_ACCOUNT_A.address,
44
+ contractURI: "",
45
+ },
43
46
  }),
44
47
  chain: ANVIL_CHAIN,
45
48
  client: TEST_CLIENT,
@@ -37,7 +37,10 @@ describe
37
37
  chain: ANVIL_CHAIN,
38
38
  client: TEST_CLIENT,
39
39
  contractId: "Airdrop",
40
- contractParams: [TEST_ACCOUNT_A.address, ""],
40
+ contractParams: {
41
+ defaultAdmin: TEST_ACCOUNT_A.address,
42
+ contractURI: "",
43
+ },
41
44
  }),
42
45
  chain: ANVIL_CHAIN,
43
46
  client: TEST_CLIENT,
@@ -39,7 +39,10 @@ describe.runIf(process.env.TW_SECRET_KEY)(
39
39
  chain: ANVIL_CHAIN,
40
40
  client: TEST_CLIENT,
41
41
  contractId: "Airdrop",
42
- contractParams: [TEST_ACCOUNT_A.address, ""],
42
+ contractParams: {
43
+ defaultAdmin: TEST_ACCOUNT_A.address,
44
+ contractURI: "",
45
+ },
43
46
  }),
44
47
  chain: ANVIL_CHAIN,
45
48
  client: TEST_CLIENT,
@@ -38,7 +38,10 @@ describe.runIf(process.env.TW_SECRET_KEY).skip("claimERC1155", () => {
38
38
  client: TEST_CLIENT,
39
39
  contractId: "Airdrop",
40
40
  publisher: "0xFD78F7E2dF2B8c3D5bff0413c96f3237500898B3",
41
- contractParams: [TEST_ACCOUNT_A.address, ""],
41
+ contractParams: {
42
+ defaultAdmin: TEST_ACCOUNT_A.address,
43
+ contractURI: "",
44
+ },
42
45
  }),
43
46
  chain: ANVIL_CHAIN,
44
47
  client: TEST_CLIENT,
@@ -36,7 +36,10 @@ describe.runIf(process.env.TW_SECRET_KEY).skip("claimERC20", () => {
36
36
  client: TEST_CLIENT,
37
37
  contractId: "Airdrop",
38
38
  publisher: "0xFD78F7E2dF2B8c3D5bff0413c96f3237500898B3",
39
- contractParams: [TEST_ACCOUNT_A.address, ""],
39
+ contractParams: {
40
+ defaultAdmin: TEST_ACCOUNT_A.address,
41
+ contractURI: "",
42
+ },
40
43
  }),
41
44
  chain: ANVIL_CHAIN,
42
45
  client: TEST_CLIENT,
@@ -38,7 +38,10 @@ describe.runIf(process.env.TW_SECRET_KEY).skip("claimERC721", () => {
38
38
  client: TEST_CLIENT,
39
39
  contractId: "Airdrop",
40
40
  publisher: "0xFD78F7E2dF2B8c3D5bff0413c96f3237500898B3",
41
- contractParams: [TEST_ACCOUNT_A.address, ""],
41
+ contractParams: {
42
+ defaultAdmin: TEST_ACCOUNT_A.address,
43
+ contractURI: "",
44
+ },
42
45
  }),
43
46
  chain: ANVIL_CHAIN,
44
47
  client: TEST_CLIENT,
@@ -0,0 +1,54 @@
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 { deployERC1155Contract } from "../../../extensions/prebuilts/deploy-erc1155.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)("Edition: Update token uri", () => {
18
+ it("should update token uri", async () => {
19
+ const address = await deployERC1155Contract({
20
+ client,
21
+ chain,
22
+ account,
23
+ type: "TokenERC1155",
24
+ params: {
25
+ name: "Edition",
26
+ contractURI: TEST_CONTRACT_URI,
27
+ },
28
+ });
29
+ const contract = getContract({
30
+ address,
31
+ client,
32
+ chain,
33
+ });
34
+ await sendAndConfirmTransaction({
35
+ transaction: mintTo({
36
+ contract,
37
+ nft: { name: "Test1" },
38
+ to: account.address,
39
+ supply: 1n,
40
+ }),
41
+ account,
42
+ });
43
+ await sendAndConfirmTransaction({
44
+ transaction: updateTokenURI({
45
+ contract,
46
+ newMetadata: { name: "Test1 Updated" },
47
+ tokenId: 0n,
48
+ }),
49
+ account,
50
+ });
51
+ const nft = await getNFT({ contract, tokenId: 0n });
52
+ expect(nft.metadata.name).toBe("Test1 Updated");
53
+ });
54
+ });
@@ -0,0 +1,112 @@
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, TEST_ACCOUNT_B } from "~test/test-wallets.js";
6
+ import { getContract } from "../../../contract/contract.js";
7
+ import { lazyMint } from "../../../extensions/erc721/write/lazyMint.js";
8
+ import { deployERC20Contract } from "../../../extensions/prebuilts/deploy-erc20.js";
9
+ import { deployERC721Contract } from "../../../extensions/prebuilts/deploy-erc721.js";
10
+ import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
11
+ import { claimTo } from "../../erc721/drops/write/claimTo.js";
12
+ import { setClaimConditions } from "../../erc721/drops/write/setClaimConditions.js";
13
+ import { getApprovalForTransaction } from "./getApprovalForTransaction.js";
14
+
15
+ const chain = ANVIL_CHAIN;
16
+ const client = TEST_CLIENT;
17
+ const account = TEST_ACCOUNT_A;
18
+
19
+ describe.runIf(process.env.TW_SECRET_KEY)(
20
+ "erc20: getApporvalForTransaction",
21
+ () => {
22
+ it("should return an approval tx", async () => {
23
+ const currencyAddress = await deployERC20Contract({
24
+ chain,
25
+ client,
26
+ account,
27
+ type: "TokenERC20",
28
+ params: { name: "erc20token", contractURI: TEST_CONTRACT_URI },
29
+ });
30
+ const contract = getContract({
31
+ address: await deployERC721Contract({
32
+ client,
33
+ chain,
34
+ account,
35
+ type: "DropERC721",
36
+ params: { name: "", contractURI: TEST_CONTRACT_URI },
37
+ }),
38
+ chain,
39
+ client,
40
+ });
41
+ await sendAndConfirmTransaction({
42
+ transaction: lazyMint({ contract, nfts: [{ name: "token 0" }] }),
43
+ account,
44
+ });
45
+ await sendAndConfirmTransaction({
46
+ transaction: setClaimConditions({
47
+ contract,
48
+ phases: [
49
+ {
50
+ maxClaimableSupply: 100n,
51
+ maxClaimablePerWallet: 1n,
52
+ currencyAddress,
53
+ price: 1,
54
+ startTime: new Date(),
55
+ },
56
+ ],
57
+ }),
58
+ account,
59
+ });
60
+ const approveTx = await getApprovalForTransaction({
61
+ transaction: claimTo({
62
+ contract,
63
+ to: TEST_ACCOUNT_B.address,
64
+ quantity: 1n,
65
+ }),
66
+ account,
67
+ });
68
+ expect(approveTx?.to).toBe(currencyAddress);
69
+ });
70
+
71
+ it("should return NULL", async () => {
72
+ const contract = getContract({
73
+ address: await deployERC721Contract({
74
+ client,
75
+ chain,
76
+ account,
77
+ type: "DropERC721",
78
+ params: { name: "", contractURI: TEST_CONTRACT_URI },
79
+ }),
80
+ chain,
81
+ client,
82
+ });
83
+ await sendAndConfirmTransaction({
84
+ transaction: lazyMint({ contract, nfts: [{ name: "token 0" }] }),
85
+ account,
86
+ });
87
+ await sendAndConfirmTransaction({
88
+ transaction: setClaimConditions({
89
+ contract,
90
+ phases: [
91
+ {
92
+ maxClaimableSupply: 100n,
93
+ maxClaimablePerWallet: 1n,
94
+ price: 1,
95
+ startTime: new Date(),
96
+ },
97
+ ],
98
+ }),
99
+ account,
100
+ });
101
+ const approveTx = await getApprovalForTransaction({
102
+ transaction: claimTo({
103
+ contract,
104
+ to: TEST_ACCOUNT_B.address,
105
+ quantity: 1n,
106
+ }),
107
+ account,
108
+ });
109
+ expect(approveTx).toBe(null);
110
+ });
111
+ },
112
+ );
@@ -0,0 +1,104 @@
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, TEST_ACCOUNT_B } from "~test/test-wallets.js";
6
+ import { getContract } from "../../../contract/contract.js";
7
+ import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
8
+ import { deployERC20Contract } from "../../prebuilts/deploy-erc20.js";
9
+ import { balanceOf } from "../__generated__/IERC20/read/balanceOf.js";
10
+ import { approve } from "./approve.js";
11
+ import { mintTo } from "./mintTo.js";
12
+ import { transferFrom } from "./transferFrom.js";
13
+
14
+ const chain = ANVIL_CHAIN;
15
+ const client = TEST_CLIENT;
16
+ const account = TEST_ACCOUNT_A;
17
+
18
+ describe.runIf(process.env.TW_SECRET_KEY)("ERC20 transferFrom", () => {
19
+ it("should work with `amount`", async () => {
20
+ const contract = getContract({
21
+ address: await deployERC20Contract({
22
+ chain,
23
+ client,
24
+ account,
25
+ params: {
26
+ name: "erc20token",
27
+ contractURI: TEST_CONTRACT_URI,
28
+ },
29
+ type: "TokenERC20",
30
+ }),
31
+ client,
32
+ chain,
33
+ });
34
+
35
+ await sendAndConfirmTransaction({
36
+ transaction: mintTo({ contract, to: account.address, amount: 1000 }),
37
+ account,
38
+ });
39
+
40
+ await sendAndConfirmTransaction({
41
+ transaction: approve({ contract, amount: 999, spender: account.address }),
42
+ account,
43
+ });
44
+
45
+ await sendAndConfirmTransaction({
46
+ transaction: transferFrom({
47
+ contract,
48
+ amount: 999,
49
+ to: TEST_ACCOUNT_B.address,
50
+ from: account.address,
51
+ }),
52
+ account,
53
+ });
54
+
55
+ const balance = await balanceOf({
56
+ contract,
57
+ address: TEST_ACCOUNT_B.address,
58
+ });
59
+ expect(balance).toBe(999n * 10n ** 18n);
60
+ });
61
+
62
+ it("should work with `amountWei`", async () => {
63
+ const contract = getContract({
64
+ address: await deployERC20Contract({
65
+ chain,
66
+ client,
67
+ account,
68
+ params: {
69
+ name: "erc20token",
70
+ contractURI: TEST_CONTRACT_URI,
71
+ },
72
+ type: "TokenERC20",
73
+ }),
74
+ client,
75
+ chain,
76
+ });
77
+
78
+ await sendAndConfirmTransaction({
79
+ transaction: mintTo({ contract, to: account.address, amount: 1000 }),
80
+ account,
81
+ });
82
+
83
+ await sendAndConfirmTransaction({
84
+ transaction: approve({ contract, amount: 999, spender: account.address }),
85
+ account,
86
+ });
87
+
88
+ await sendAndConfirmTransaction({
89
+ transaction: transferFrom({
90
+ contract,
91
+ amountWei: 999n * 10n ** 18n,
92
+ to: TEST_ACCOUNT_B.address,
93
+ from: account.address,
94
+ }),
95
+ account,
96
+ });
97
+
98
+ const balance = await balanceOf({
99
+ contract,
100
+ address: TEST_ACCOUNT_B.address,
101
+ });
102
+ expect(balance).toBe(999n * 10n ** 18n);
103
+ });
104
+ });
@@ -34,7 +34,10 @@ describe.runIf(process.env.TW_SECRET_KEY)("Account Permissions", () => {
34
34
  chain: ANVIL_CHAIN,
35
35
  client: TEST_CLIENT,
36
36
  contractId: "AccountFactory",
37
- constructorParams: [TEST_ACCOUNT_A.address, ENTRYPOINT_ADDRESS_v0_6],
37
+ constructorParams: {
38
+ defaultAdmin: TEST_ACCOUNT_A.address,
39
+ entrypoint: ENTRYPOINT_ADDRESS_v0_6,
40
+ },
38
41
  });
39
42
  const transaction = createAccount({
40
43
  contract: accountFactoryContract,
@@ -53,4 +53,33 @@ describe.runIf(process.env.TW_SECRET_KEY)("updateMetadata ERC721", () => {
53
53
  expect(nfts[1]?.metadata.name).toBe("token 1 - updated");
54
54
  expect(nfts[2]?.metadata.name).toBe("token 2");
55
55
  });
56
+
57
+ it("should throw if no nft uploaded", async () => {
58
+ const address = await deployERC721Contract({
59
+ client,
60
+ chain,
61
+ account,
62
+ type: "DropERC721",
63
+ params: {
64
+ name: "NFT Drop",
65
+ contractURI: TEST_CONTRACT_URI,
66
+ },
67
+ });
68
+ const contract = getContract({
69
+ address,
70
+ client,
71
+ chain,
72
+ });
73
+ const updateTx = updateMetadata({
74
+ contract,
75
+ targetTokenId: 0n,
76
+ newMetadata: { name: "token 1 - updated" },
77
+ client,
78
+ });
79
+ await expect(
80
+ sendAndConfirmTransaction({ transaction: updateTx, account }),
81
+ ).rejects.toThrowError(
82
+ "No base URI set. Please set a base URI before updating metadata",
83
+ );
84
+ });
56
85
  });