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
@@ -0,0 +1,29 @@
1
+ import type { AbiConstructor, AbiFunction } from "abitype";
2
+
3
+ export function normalizeFunctionParams(
4
+ abiFunction: AbiFunction | AbiConstructor | undefined,
5
+ params: Record<string, unknown> = {},
6
+ ): unknown[] {
7
+ if (!abiFunction) {
8
+ return [];
9
+ }
10
+ if (abiFunction.inputs?.length !== Object.keys(params).length) {
11
+ throw new Error(
12
+ `Expected ${abiFunction.inputs?.length || 0} parameters, but got ${Object.keys(params).length}`,
13
+ );
14
+ }
15
+ return abiFunction.inputs.map((input, index) => {
16
+ const value = input.name;
17
+ if (value === undefined) {
18
+ throw new Error(
19
+ `Missing named parameter for ${"name" in abiFunction ? abiFunction.name : "constructor"} at index ${index}`,
20
+ );
21
+ }
22
+ const valueWithoutUnderscore = value.replace(/^_+/, "");
23
+ const normalizedValue = params[value] ?? params[valueWithoutUnderscore]; // handle _name, _symbol, etc passed without underscore in the keys
24
+ if (normalizedValue === undefined) {
25
+ throw new Error(`Missing value for parameter ${value} at index ${index}`);
26
+ }
27
+ return normalizedValue;
28
+ });
29
+ }
@@ -1,10 +1,8 @@
1
1
  import type { Chain } from "../../chains/types.js";
2
2
  import type { ThirdwebClient } from "../../client/client.js";
3
+ import { fetchPublishedContractMetadata } from "../../contract/deployment/publisher.js";
3
4
  import { computeDeploymentAddress } from "./compute-deployment-address.js";
4
- import {
5
- computeDeploymentInfoFromContractId,
6
- computeDeploymentInfoFromMetadata,
7
- } from "./compute-published-contract-deploy-info.js";
5
+ import { computeDeploymentInfoFromMetadata } from "./compute-published-contract-deploy-info.js";
8
6
  import type { FetchDeployMetadataResult } from "./deploy-metadata.js";
9
7
 
10
8
  /**
@@ -20,10 +18,6 @@ import type { FetchDeployMetadataResult } from "./deploy-metadata.js";
20
18
  * ```ts
21
19
  * import { computePublishedContractAddress } from "thirdweb/deploys";
22
20
  *
23
- * const contractMetadata = await fetchPublishedContractMetadata({
24
- * client,
25
- * chain,
26
- * });
27
21
  * const address = await computePublishedContractAddress({
28
22
  * client,
29
23
  * chain,
@@ -38,13 +32,24 @@ export async function computePublishedContractAddress(args: {
38
32
  client: ThirdwebClient;
39
33
  chain: Chain;
40
34
  contractId: string;
41
- constructorParams: unknown[];
35
+ constructorParams?: Record<string, unknown>;
42
36
  publisher?: string;
43
37
  version?: string;
44
38
  salt?: string;
45
39
  }): Promise<string> {
46
- const info = await computeDeploymentInfoFromContractId(args);
47
- return computeDeploymentAddress(info);
40
+ const contractMetadata = await fetchPublishedContractMetadata({
41
+ client: args.client,
42
+ contractId: args.contractId,
43
+ publisher: args.publisher,
44
+ version: args.version,
45
+ });
46
+ return computeContractAddress({
47
+ client: args.client,
48
+ chain: args.chain,
49
+ contractMetadata,
50
+ constructorParams: args.constructorParams,
51
+ salt: args.salt,
52
+ });
48
53
  }
49
54
 
50
55
  /**
@@ -54,7 +59,7 @@ export async function computeContractAddress(args: {
54
59
  client: ThirdwebClient;
55
60
  chain: Chain;
56
61
  contractMetadata: FetchDeployMetadataResult;
57
- constructorParams: unknown[];
62
+ constructorParams?: Record<string, unknown>;
58
63
  salt?: string;
59
64
  }): Promise<string> {
60
65
  const info = await computeDeploymentInfoFromMetadata(args);
@@ -1,9 +1,12 @@
1
- import type { AbiConstructor } from "abitype";
1
+ import type { Abi, AbiConstructor } from "abitype";
2
2
  import type { Chain } from "../../chains/types.js";
3
3
  import type { ThirdwebClient } from "../../client/client.js";
4
4
  import { fetchPublishedContractMetadata } from "../../contract/deployment/publisher.js";
5
5
  import { computeCreate2FactoryAddress } from "../../contract/deployment/utils/create-2-factory.js";
6
6
  import { encodeAbiParameters } from "../abi/encodeAbiParameters.js";
7
+ import { normalizeFunctionParams } from "../abi/normalizeFunctionParams.js";
8
+ import { ensureBytecodePrefix } from "../bytecode/prefix.js";
9
+ import type { Hex } from "../encoding/hex.js";
7
10
  import type { FetchDeployMetadataResult } from "./deploy-metadata.js";
8
11
  import { getInitBytecodeWithSalt } from "./get-init-bytecode-with-salt.js";
9
12
 
@@ -14,7 +17,7 @@ export async function computeDeploymentInfoFromContractId(args: {
14
17
  client: ThirdwebClient;
15
18
  chain: Chain;
16
19
  contractId: string;
17
- constructorParams: unknown[];
20
+ constructorParams?: Record<string, unknown>;
18
21
  publisher?: string;
19
22
  version?: string;
20
23
  salt?: string;
@@ -42,23 +45,39 @@ export async function computeDeploymentInfoFromMetadata(args: {
42
45
  client: ThirdwebClient;
43
46
  chain: Chain;
44
47
  contractMetadata: FetchDeployMetadataResult;
45
- constructorParams: unknown[];
48
+ constructorParams?: Record<string, unknown>;
46
49
  salt?: string;
47
50
  }) {
48
- const { client, chain, contractMetadata, constructorParams, salt } = args;
49
- const { compilerMetadata } = contractMetadata;
51
+ return computeDeploymentInfoFromBytecode({
52
+ client: args.client,
53
+ chain: args.chain,
54
+ abi: args.contractMetadata.abi,
55
+ bytecode: args.contractMetadata.bytecode,
56
+ constructorParams: args.constructorParams,
57
+ salt: args.salt,
58
+ });
59
+ }
60
+
61
+ export async function computeDeploymentInfoFromBytecode(args: {
62
+ client: ThirdwebClient;
63
+ chain: Chain;
64
+ abi: Abi;
65
+ bytecode: Hex;
66
+ constructorParams?: Record<string, unknown>;
67
+ salt?: string;
68
+ }) {
69
+ const { client, chain, constructorParams, salt } = args;
50
70
  const create2FactoryAddress = await computeCreate2FactoryAddress({
51
71
  client,
52
72
  chain,
53
73
  });
54
- const bytecode = compilerMetadata.bytecode;
55
- const constructorAbi =
56
- (compilerMetadata.abi.find(
57
- (abi) => abi.type === "constructor",
58
- ) as AbiConstructor) || [];
74
+ const bytecode = ensureBytecodePrefix(args.bytecode);
75
+ const constructorAbi = args.abi.find((abi) => abi.type === "constructor") as
76
+ | AbiConstructor
77
+ | undefined;
59
78
  const encodedArgs = encodeAbiParameters(
60
- constructorAbi.inputs ?? [],
61
- constructorParams,
79
+ constructorAbi?.inputs ?? [],
80
+ normalizeFunctionParams(constructorAbi, constructorParams),
62
81
  );
63
82
  const initBytecodeWithsalt = getInitBytecodeWithSalt({
64
83
  bytecode,
@@ -10,10 +10,8 @@ export type FetchDeployMetadataOptions = {
10
10
  client: ThirdwebClient;
11
11
  };
12
12
 
13
- export type FetchDeployMetadataResult = {
14
- compilerMetadata: CompilerMetadata;
15
- extendedMetadata: ExtendedMetadata | undefined;
16
- };
13
+ export type FetchDeployMetadataResult = Partial<ExtendedMetadata> &
14
+ CompilerMetadata;
17
15
 
18
16
  /**
19
17
  * Fetches the deployment metadata.
@@ -24,31 +22,6 @@ export type FetchDeployMetadataResult = {
24
22
  export async function fetchDeployMetadata(
25
23
  options: FetchDeployMetadataOptions,
26
24
  ): Promise<FetchDeployMetadataResult> {
27
- const [compilerMetadata, extendedMetadata] = await Promise.all([
28
- fetchCompilerMetadata(options),
29
- fetchExtendedMetadata(options).catch(() => undefined),
30
- ]);
31
- return { compilerMetadata, extendedMetadata };
32
- }
33
-
34
- // helpers
35
- /**
36
- * Fetches the published metadata.
37
- * @param options - The options for fetching the published metadata.
38
- * @internal
39
- */
40
- async function fetchExtendedMetadata(
41
- options: FetchDeployMetadataOptions,
42
- ): Promise<ExtendedMetadata> {
43
- return download({
44
- uri: options.uri,
45
- client: options.client,
46
- }).then((r) => r.json());
47
- }
48
-
49
- async function fetchCompilerMetadata(
50
- options: FetchDeployMetadataOptions,
51
- ): Promise<CompilerMetadata> {
52
25
  const rawMeta: RawCompilerMetadata = await download({
53
26
  uri: options.uri,
54
27
  client: options.client,
@@ -144,11 +117,13 @@ export type ExtendedMetadata = {
144
117
  publisherAddress: string;
145
118
  }[]
146
119
  | undefined;
147
- defaultModules?: {
148
- moduleName: string;
149
- moduleVersion: string;
150
- publisherAddress: string;
151
- }[];
120
+ defaultModules?:
121
+ | Array<{
122
+ moduleName: string;
123
+ moduleVersion: string;
124
+ publisherAddress: string;
125
+ }>
126
+ | undefined;
152
127
  publisher?: string | undefined;
153
128
  audit?: string | undefined;
154
129
  logo?: string | undefined;
@@ -1,4 +1,4 @@
1
- import type { AbiConstructor } from "abitype";
1
+ import type { Abi } from "abitype";
2
2
  import { describe, expect, it } from "vitest";
3
3
  import {
4
4
  DUMMY_BYTECODE,
@@ -46,8 +46,7 @@ describe("Resolve implementation", async () => {
46
46
  chain: ANVIL_CHAIN,
47
47
  account: TEST_ACCOUNT_A,
48
48
  bytecode: DUMMY_BYTECODE,
49
- constructorAbi: {} as AbiConstructor,
50
- constructorParams: [],
49
+ abi: [],
51
50
  });
52
51
 
53
52
  const proxyAddress = await deployContract({
@@ -55,8 +54,11 @@ describe("Resolve implementation", async () => {
55
54
  chain: ANVIL_CHAIN,
56
55
  account: TEST_ACCOUNT_A,
57
56
  bytecode: ERC1967_PROXY_BYTECODE,
58
- constructorAbi: ERC1967_PROXY_CONSTRUCTOR_ABI as AbiConstructor,
59
- constructorParams: [implementationAddress, ""],
57
+ abi: ERC1967_PROXY_CONSTRUCTOR_ABI as Abi,
58
+ constructorParams: {
59
+ logic: implementationAddress,
60
+ data: "",
61
+ },
60
62
  });
61
63
 
62
64
  const proxy = getContract({
@@ -0,0 +1,38 @@
1
+ import { expect, test } from "vitest";
2
+ import { LruMap } from "./lru.js";
3
+
4
+ test("default", () => {
5
+ const cache = new LruMap(5);
6
+ cache.set("a", 1);
7
+ cache.set("b", 2);
8
+ cache.set("c", 3);
9
+ cache.set("d", 4);
10
+ cache.set("e", 5);
11
+ cache.set("f", 6);
12
+ cache.set("g", 7);
13
+ expect(cache.size).toBe(5);
14
+ expect(cache.has("a")).toBe(false);
15
+ expect(cache.has("b")).toBe(false);
16
+ expect(cache.get("c")).toBe(3);
17
+ expect(cache.get("d")).toBe(4);
18
+ expect(cache.get("e")).toBe(5);
19
+ expect(cache.get("f")).toBe(6);
20
+ expect(cache.get("g")).toBe(7);
21
+ });
22
+
23
+ test("update touched keys", () => {
24
+ const cache = new LruMap(5);
25
+ cache.set("a", 1);
26
+ cache.set("b", 2);
27
+ cache.set("c", 3);
28
+ cache.set("d", 4);
29
+ cache.set("e", 5);
30
+ expect(cache.size).toBe(5);
31
+ cache.get("a");
32
+ cache.set("f", 6);
33
+ cache.set("g", 7);
34
+ expect(cache.has("a")).toBe(true);
35
+ expect(cache.has("b")).toBe(false);
36
+ expect(cache.has("c")).toBe(false);
37
+ expect(cache.has("d")).toBe(true);
38
+ });
@@ -1,30 +1,34 @@
1
1
  /**
2
- * Represents a Least Recently Used (LRU) Map.
3
- * Extends the built-in Map class.
2
+ * Map with a LRU (Least recently used) policy.
3
+ *
4
+ * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU
4
5
  */
5
6
  export class LruMap<value = unknown> extends Map<string, value> {
6
7
  maxSize: number;
7
8
 
8
- /**
9
- *
10
- * @param size
11
- * @internal
12
- */
13
9
  constructor(size: number) {
14
10
  super();
15
11
  this.maxSize = size;
16
12
  }
17
13
 
18
- /**
19
- *
20
- * @param key
21
- * @param value
22
- * @internal
23
- */
14
+ override get(key: string) {
15
+ const value = super.get(key);
16
+
17
+ if (super.has(key) && value !== undefined) {
18
+ this.delete(key);
19
+ super.set(key, value);
20
+ }
21
+
22
+ return value;
23
+ }
24
+
24
25
  override set(key: string, value: value) {
25
26
  super.set(key, value);
26
27
  if (this.maxSize && this.size > this.maxSize) {
27
- this.delete(this.keys().next().value);
28
+ const firstKey = this.keys().next().value;
29
+ if (firstKey) {
30
+ this.delete(firstKey);
31
+ }
28
32
  }
29
33
  return this;
30
34
  }
@@ -32,8 +32,8 @@ type DomainOverrides = {
32
32
  };
33
33
 
34
34
  export const DEFAULT_RPC_URL = "rpc.thirdweb.com";
35
- const DEFAULT_IN_APP_WALLET_URL = "embedded-wallet.thirdweb.com";
36
35
  const DEFAULT_SOCIAL_URL = "social.thirdweb.com";
36
+ const DEFAULT_IN_APP_WALLET_URL = "embedded-wallet.thirdweb.com";
37
37
  const DEFAULT_PAY_URL = "pay.thirdweb.com";
38
38
  const DEFAULT_STORAGE_URL = "storage.thirdweb.com";
39
39
  const DEFAULT_BUNDLER_URL = "bundler.thirdweb.com";
package/src/utils/ipfs.ts CHANGED
@@ -107,7 +107,9 @@ export async function uploadOrExtractURIs<
107
107
  * @throws If the batch contains URIs with different base URIs or if no base URI is found.
108
108
  * @internal
109
109
  */
110
- export function getBaseUriFromBatch(uris: string[]): string {
110
+ export function getBaseUriFromBatch(uris: string | string[]): string {
111
+ // biome-ignore lint/style/noParameterAssign: lemme do my stuff
112
+ uris = Array.isArray(uris) ? uris : [uris];
111
113
  const [base, ...rest] = uris.map((uri) => {
112
114
  // remove query parameters
113
115
  // biome-ignore lint/style/noParameterAssign: lemme do my stuff
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.53.0";
1
+ export const version = "5.54.0-nightly-c3800d6c0765a9a0b69ac0a4a390d20cec932419-20240912000413";
@@ -76,6 +76,7 @@ export enum AuthProvider {
76
76
  APPLE = "Apple",
77
77
  PASSKEY = "Passkey",
78
78
  DISCORD = "Discord",
79
+ LINE = "Line",
79
80
  FARCASTER = "Farcaster",
80
81
  TELEGRAM = "Telegram",
81
82
  }
@@ -3,6 +3,7 @@ import { eth_getTransactionReceipt } from "../../../../rpc/actions/eth_getTransa
3
3
  import { getRpcClient } from "../../../../rpc/rpc.js";
4
4
  import { sendAndConfirmTransaction } from "../../../../transaction/actions/send-and-confirm-transaction.js";
5
5
  import { sendBatchTransaction } from "../../../../transaction/actions/send-batch-transaction.js";
6
+ import { LruMap } from "../../../../utils/caching/lru.js";
6
7
  import type { Hex } from "../../../../utils/encoding/hex.js";
7
8
  import { randomBytesHex } from "../../../../utils/random.js";
8
9
  import type { PreparedSendCall } from "../../../eip5792/send-calls.js";
@@ -13,19 +14,7 @@ import type {
13
14
  } from "../../../eip5792/types.js";
14
15
  import type { Account, Wallet } from "../../../interfaces/wallet.js";
15
16
 
16
- const bundlesToTransactions = new Map<string, Hex[]>();
17
- const MAX_BUNDLE_ENTRIES = 1000;
18
-
19
- /**
20
- * @internal
21
- */
22
- function setBundleId(bundleId: Hex, hashes: Hex[]) {
23
- if (bundlesToTransactions.size >= MAX_BUNDLE_ENTRIES) {
24
- const lru = bundlesToTransactions.keys().next().value;
25
- bundlesToTransactions.delete(lru);
26
- }
27
- bundlesToTransactions.set(bundleId, hashes);
28
- }
17
+ const bundlesToTransactions = new LruMap<Hex[]>(1000);
29
18
 
30
19
  /**
31
20
  * @internal
@@ -45,7 +34,7 @@ export async function inAppWalletSendCalls(args: {
45
34
  transactions: calls,
46
35
  });
47
36
  hashes.push(receipt.transactionHash);
48
- setBundleId(bundleId, hashes);
37
+ bundlesToTransactions.set(bundleId, hashes);
49
38
  } else {
50
39
  for (const tx of calls) {
51
40
  const receipt = await sendAndConfirmTransaction({
@@ -109,6 +109,7 @@ export class InAppNativeConnector implements InAppConnector {
109
109
  case "google":
110
110
  case "facebook":
111
111
  case "discord":
112
+ case "line":
112
113
  case "apple": {
113
114
  const ExpoLinking = require("expo-linking");
114
115
  const redirectUrl =
@@ -144,6 +145,7 @@ export class InAppNativeConnector implements InAppConnector {
144
145
  case "google":
145
146
  case "facebook":
146
147
  case "discord":
148
+ case "line":
147
149
  case "farcaster":
148
150
  case "telegram":
149
151
  case "apple": {
@@ -14,6 +14,8 @@ import { createInAppWallet } from "../core/wallet/in-app-core.js";
14
14
  * - Apple
15
15
  * - Facebook
16
16
  * - Discord
17
+ * - Telegram
18
+ * - LINE
17
19
  * - Farcaster
18
20
  *
19
21
  * Can also be configured to use Account Abstraction to directly connect to a ERC4337 smart account based on those authentication methods.
@@ -215,6 +215,7 @@ export class InAppWebConnector implements InAppConnector {
215
215
  case "google":
216
216
  case "telegram":
217
217
  case "farcaster":
218
+ case "line":
218
219
  case "discord": {
219
220
  return loginWithOauth({
220
221
  authOption: strategy,
@@ -275,6 +276,7 @@ export class InAppWebConnector implements InAppConnector {
275
276
  case "google":
276
277
  case "farcaster":
277
278
  case "telegram":
279
+ case "line":
278
280
  case "discord": {
279
281
  const authToken = await this.authenticate(args);
280
282
  return this.auth.loginWithAuthToken(authToken);
@@ -24,6 +24,7 @@ export const socialAuthOptions = [
24
24
  "apple",
25
25
  "facebook",
26
26
  "discord",
27
+ "line",
27
28
  "farcaster",
28
29
  "telegram",
29
30
  ] as const;