thirdweb 5.50.1-nightly-b407bc9fd8379bf304ffb963f8cb8e64493914b5-20240904000351 → 5.50.1

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 (331) hide show
  1. package/dist/cjs/contract/deployment/deploy-via-autofactory.js +11 -0
  2. package/dist/cjs/contract/deployment/deploy-via-autofactory.js.map +1 -1
  3. package/dist/cjs/contract/deployment/publisher.js +3 -0
  4. package/dist/cjs/contract/deployment/publisher.js.map +1 -1
  5. package/dist/cjs/contract/deployment/utils/bootstrap.js +41 -1
  6. package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
  7. package/dist/cjs/contract/deployment/zksync/zkDeployContract.js +43 -0
  8. package/dist/cjs/contract/deployment/zksync/zkDeployContract.js.map +1 -0
  9. package/dist/cjs/contract/deployment/zksync/zkDeployCreate2Factory.js +55 -0
  10. package/dist/cjs/contract/deployment/zksync/zkDeployCreate2Factory.js.map +1 -0
  11. package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js +86 -0
  12. package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -0
  13. package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js +41 -0
  14. package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js.map +1 -0
  15. package/dist/cjs/exports/extensions/erc4337.js +16 -1
  16. package/dist/cjs/exports/extensions/erc4337.js.map +1 -1
  17. package/dist/cjs/exports/extensions/permissions.js +11 -3
  18. package/dist/cjs/exports/extensions/permissions.js.map +1 -1
  19. package/dist/cjs/exports/extensions/thirdweb.js +9 -2
  20. package/dist/cjs/exports/extensions/thirdweb.js.map +1 -1
  21. package/dist/cjs/extensions/erc4337/account/addAdmin.js +16 -0
  22. package/dist/cjs/extensions/erc4337/account/addAdmin.js.map +1 -1
  23. package/dist/cjs/extensions/erc4337/account/addSessionKey.js +16 -0
  24. package/dist/cjs/extensions/erc4337/account/addSessionKey.js.map +1 -1
  25. package/dist/cjs/extensions/erc4337/account/removeAdmin.js +16 -0
  26. package/dist/cjs/extensions/erc4337/account/removeAdmin.js.map +1 -1
  27. package/dist/cjs/extensions/erc4337/account/removeSessionKey.js +16 -0
  28. package/dist/cjs/extensions/erc4337/account/removeSessionKey.js.map +1 -1
  29. package/dist/cjs/extensions/permissions/read/getAllMembers.js +18 -0
  30. package/dist/cjs/extensions/permissions/read/getAllMembers.js.map +1 -1
  31. package/dist/cjs/extensions/permissions/read/getRoleAdmin.js +3 -0
  32. package/dist/cjs/extensions/permissions/read/getRoleAdmin.js.map +1 -1
  33. package/dist/cjs/extensions/permissions/read/getRoleMember.js +3 -0
  34. package/dist/cjs/extensions/permissions/read/getRoleMember.js.map +1 -1
  35. package/dist/cjs/extensions/permissions/read/getRoleMemberCount.js +3 -0
  36. package/dist/cjs/extensions/permissions/read/getRoleMemberCount.js.map +1 -1
  37. package/dist/cjs/extensions/permissions/read/hasRole.js +3 -0
  38. package/dist/cjs/extensions/permissions/read/hasRole.js.map +1 -1
  39. package/dist/cjs/extensions/permissions/write/{grant.js → grantRole.js} +4 -1
  40. package/dist/cjs/extensions/permissions/write/grantRole.js.map +1 -0
  41. package/dist/cjs/extensions/permissions/write/renounceRole.js +3 -0
  42. package/dist/cjs/extensions/permissions/write/renounceRole.js.map +1 -1
  43. package/dist/cjs/extensions/permissions/write/revokeRole.js +3 -0
  44. package/dist/cjs/extensions/permissions/write/revokeRole.js.map +1 -1
  45. package/dist/cjs/extensions/prebuilts/deploy-published.js +39 -13
  46. package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
  47. package/dist/cjs/extensions/thirdweb/read/contractType.js +49 -0
  48. package/dist/cjs/extensions/thirdweb/read/contractType.js.map +1 -0
  49. package/dist/cjs/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js +33 -0
  50. package/dist/cjs/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js.map +1 -0
  51. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +6 -5
  52. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  53. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +3 -0
  54. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  55. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +37 -30
  56. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  57. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +22 -17
  58. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  59. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +44 -25
  60. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  61. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +13 -2
  62. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  63. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +2 -2
  64. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
  65. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +16 -11
  66. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  67. package/dist/cjs/stories/ConnectButton/hideButtons.stories.js +74 -0
  68. package/dist/cjs/stories/ConnectButton/hideButtons.stories.js.map +1 -0
  69. package/dist/cjs/stories/{ConnectButton.stories.js → ConnectButton/themes.stories.js} +4 -5
  70. package/dist/cjs/stories/ConnectButton/themes.stories.js.map +1 -0
  71. package/dist/cjs/transaction/actions/send-transaction.js +8 -0
  72. package/dist/cjs/transaction/actions/send-transaction.js.map +1 -1
  73. package/dist/cjs/transaction/actions/zksync/getEip721Domain.js +4 -3
  74. package/dist/cjs/transaction/actions/zksync/getEip721Domain.js.map +1 -1
  75. package/dist/cjs/transaction/extract-error.js +4 -2
  76. package/dist/cjs/transaction/extract-error.js.map +1 -1
  77. package/dist/cjs/utils/abi/encodeAbiParameters.js +1 -1
  78. package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  79. package/dist/cjs/utils/any-evm/deploy-metadata.js +9 -2
  80. package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
  81. package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js +15 -0
  82. package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -0
  83. package/dist/cjs/utils/any-evm/zksync/constants.js +43 -0
  84. package/dist/cjs/utils/any-evm/zksync/constants.js.map +1 -0
  85. package/dist/cjs/utils/any-evm/zksync/create2Address.js +21 -0
  86. package/dist/cjs/utils/any-evm/zksync/create2Address.js.map +1 -0
  87. package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js +10 -0
  88. package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js.map +1 -0
  89. package/dist/cjs/version.js +1 -1
  90. package/dist/cjs/version.js.map +1 -1
  91. package/dist/cjs/wallets/smart/index.js +2 -2
  92. package/dist/cjs/wallets/smart/index.js.map +1 -1
  93. package/dist/cjs/wallets/smart/lib/utils.js +0 -7
  94. package/dist/cjs/wallets/smart/lib/utils.js.map +1 -1
  95. package/dist/esm/contract/deployment/deploy-via-autofactory.js +11 -0
  96. package/dist/esm/contract/deployment/deploy-via-autofactory.js.map +1 -1
  97. package/dist/esm/contract/deployment/publisher.js +3 -0
  98. package/dist/esm/contract/deployment/publisher.js.map +1 -1
  99. package/dist/esm/contract/deployment/utils/bootstrap.js +41 -1
  100. package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
  101. package/dist/esm/contract/deployment/zksync/zkDeployContract.js +40 -0
  102. package/dist/esm/contract/deployment/zksync/zkDeployContract.js.map +1 -0
  103. package/dist/esm/contract/deployment/zksync/zkDeployCreate2Factory.js +52 -0
  104. package/dist/esm/contract/deployment/zksync/zkDeployCreate2Factory.js.map +1 -0
  105. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js +83 -0
  106. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -0
  107. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js +38 -0
  108. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js.map +1 -0
  109. package/dist/esm/exports/extensions/erc4337.js +14 -13
  110. package/dist/esm/exports/extensions/erc4337.js.map +1 -1
  111. package/dist/esm/exports/extensions/permissions.js +8 -8
  112. package/dist/esm/exports/extensions/permissions.js.map +1 -1
  113. package/dist/esm/exports/extensions/thirdweb.js +5 -0
  114. package/dist/esm/exports/extensions/thirdweb.js.map +1 -1
  115. package/dist/esm/extensions/erc4337/account/addAdmin.js +16 -1
  116. package/dist/esm/extensions/erc4337/account/addAdmin.js.map +1 -1
  117. package/dist/esm/extensions/erc4337/account/addSessionKey.js +16 -1
  118. package/dist/esm/extensions/erc4337/account/addSessionKey.js.map +1 -1
  119. package/dist/esm/extensions/erc4337/account/removeAdmin.js +16 -1
  120. package/dist/esm/extensions/erc4337/account/removeAdmin.js.map +1 -1
  121. package/dist/esm/extensions/erc4337/account/removeSessionKey.js +16 -1
  122. package/dist/esm/extensions/erc4337/account/removeSessionKey.js.map +1 -1
  123. package/dist/esm/extensions/permissions/read/getAllMembers.js +19 -2
  124. package/dist/esm/extensions/permissions/read/getAllMembers.js.map +1 -1
  125. package/dist/esm/extensions/permissions/read/getRoleAdmin.js +1 -0
  126. package/dist/esm/extensions/permissions/read/getRoleAdmin.js.map +1 -1
  127. package/dist/esm/extensions/permissions/read/getRoleMember.js +1 -0
  128. package/dist/esm/extensions/permissions/read/getRoleMember.js.map +1 -1
  129. package/dist/esm/extensions/permissions/read/getRoleMemberCount.js +1 -0
  130. package/dist/esm/extensions/permissions/read/getRoleMemberCount.js.map +1 -1
  131. package/dist/esm/extensions/permissions/read/hasRole.js +1 -0
  132. package/dist/esm/extensions/permissions/read/hasRole.js.map +1 -1
  133. package/dist/esm/extensions/permissions/write/{grant.js → grantRole.js} +2 -1
  134. package/dist/esm/extensions/permissions/write/grantRole.js.map +1 -0
  135. package/dist/esm/extensions/permissions/write/renounceRole.js +1 -0
  136. package/dist/esm/extensions/permissions/write/renounceRole.js.map +1 -1
  137. package/dist/esm/extensions/permissions/write/revokeRole.js +1 -0
  138. package/dist/esm/extensions/permissions/write/revokeRole.js.map +1 -1
  139. package/dist/esm/extensions/prebuilts/deploy-published.js +39 -13
  140. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  141. package/dist/esm/extensions/thirdweb/read/contractType.js +45 -0
  142. package/dist/esm/extensions/thirdweb/read/contractType.js.map +1 -0
  143. package/dist/esm/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js +30 -0
  144. package/dist/esm/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js.map +1 -0
  145. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +6 -5
  146. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  147. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +3 -0
  148. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  149. package/dist/esm/react/web/ui/ConnectWallet/Details.js +37 -30
  150. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  151. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +23 -18
  152. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  153. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +41 -24
  154. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  155. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +12 -2
  156. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  157. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +2 -2
  158. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
  159. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +17 -12
  160. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  161. package/dist/esm/stories/ConnectButton/hideButtons.stories.js +71 -0
  162. package/dist/esm/stories/ConnectButton/hideButtons.stories.js.map +1 -0
  163. package/dist/esm/stories/{ConnectButton.stories.js → ConnectButton/themes.stories.js} +4 -5
  164. package/dist/esm/stories/ConnectButton/themes.stories.js.map +1 -0
  165. package/dist/esm/transaction/actions/send-transaction.js +8 -0
  166. package/dist/esm/transaction/actions/send-transaction.js.map +1 -1
  167. package/dist/esm/transaction/actions/zksync/getEip721Domain.js +4 -3
  168. package/dist/esm/transaction/actions/zksync/getEip721Domain.js.map +1 -1
  169. package/dist/esm/transaction/extract-error.js +4 -2
  170. package/dist/esm/transaction/extract-error.js.map +1 -1
  171. package/dist/esm/utils/abi/encodeAbiParameters.js +1 -1
  172. package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
  173. package/dist/esm/utils/any-evm/deploy-metadata.js +9 -2
  174. package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
  175. package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js +12 -0
  176. package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -0
  177. package/dist/esm/utils/any-evm/zksync/constants.js +40 -0
  178. package/dist/esm/utils/any-evm/zksync/constants.js.map +1 -0
  179. package/dist/esm/utils/any-evm/zksync/create2Address.js +18 -0
  180. package/dist/esm/utils/any-evm/zksync/create2Address.js.map +1 -0
  181. package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js +7 -0
  182. package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js.map +1 -0
  183. package/dist/esm/version.js +1 -1
  184. package/dist/esm/version.js.map +1 -1
  185. package/dist/esm/wallets/smart/index.js +2 -2
  186. package/dist/esm/wallets/smart/index.js.map +1 -1
  187. package/dist/esm/wallets/smart/lib/utils.js +0 -6
  188. package/dist/esm/wallets/smart/lib/utils.js.map +1 -1
  189. package/dist/types/contract/deployment/deploy-via-autofactory.d.ts.map +1 -1
  190. package/dist/types/contract/deployment/publisher.d.ts.map +1 -1
  191. package/dist/types/contract/deployment/utils/bootstrap.d.ts +4 -2
  192. package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
  193. package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts +12 -0
  194. package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts.map +1 -0
  195. package/dist/types/contract/deployment/zksync/zkDeployCreate2Factory.d.ts +6 -0
  196. package/dist/types/contract/deployment/zksync/zkDeployCreate2Factory.d.ts.map +1 -0
  197. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts +13 -0
  198. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts.map +1 -0
  199. package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts +12 -0
  200. package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts.map +1 -0
  201. package/dist/types/exports/extensions/erc4337.d.ts +14 -13
  202. package/dist/types/exports/extensions/erc4337.d.ts.map +1 -1
  203. package/dist/types/exports/extensions/permissions.d.ts +8 -8
  204. package/dist/types/exports/extensions/permissions.d.ts.map +1 -1
  205. package/dist/types/exports/extensions/thirdweb.d.ts +1 -0
  206. package/dist/types/exports/extensions/thirdweb.d.ts.map +1 -1
  207. package/dist/types/extensions/erc4337/account/addAdmin.d.ts +13 -0
  208. package/dist/types/extensions/erc4337/account/addAdmin.d.ts.map +1 -1
  209. package/dist/types/extensions/erc4337/account/addSessionKey.d.ts +13 -0
  210. package/dist/types/extensions/erc4337/account/addSessionKey.d.ts.map +1 -1
  211. package/dist/types/extensions/erc4337/account/removeAdmin.d.ts +13 -0
  212. package/dist/types/extensions/erc4337/account/removeAdmin.d.ts.map +1 -1
  213. package/dist/types/extensions/erc4337/account/removeSessionKey.d.ts +13 -0
  214. package/dist/types/extensions/erc4337/account/removeSessionKey.d.ts.map +1 -1
  215. package/dist/types/extensions/permissions/read/getAllMembers.d.ts +13 -0
  216. package/dist/types/extensions/permissions/read/getAllMembers.d.ts.map +1 -1
  217. package/dist/types/extensions/permissions/read/getRoleAdmin.d.ts +1 -0
  218. package/dist/types/extensions/permissions/read/getRoleAdmin.d.ts.map +1 -1
  219. package/dist/types/extensions/permissions/read/getRoleMember.d.ts +1 -0
  220. package/dist/types/extensions/permissions/read/getRoleMember.d.ts.map +1 -1
  221. package/dist/types/extensions/permissions/read/getRoleMemberCount.d.ts +1 -0
  222. package/dist/types/extensions/permissions/read/getRoleMemberCount.d.ts.map +1 -1
  223. package/dist/types/extensions/permissions/read/hasRole.d.ts +1 -0
  224. package/dist/types/extensions/permissions/read/hasRole.d.ts.map +1 -1
  225. package/dist/types/extensions/permissions/write/{grant.d.ts → grantRole.d.ts} +2 -1
  226. package/dist/types/extensions/permissions/write/grantRole.d.ts.map +1 -0
  227. package/dist/types/extensions/permissions/write/renounceRole.d.ts +1 -0
  228. package/dist/types/extensions/permissions/write/renounceRole.d.ts.map +1 -1
  229. package/dist/types/extensions/permissions/write/revokeRole.d.ts +1 -0
  230. package/dist/types/extensions/permissions/write/revokeRole.d.ts.map +1 -1
  231. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  232. package/dist/types/extensions/thirdweb/read/contractType.d.ts +31 -0
  233. package/dist/types/extensions/thirdweb/read/contractType.d.ts.map +1 -0
  234. package/dist/types/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.d.ts +61 -0
  235. package/dist/types/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.d.ts.map +1 -0
  236. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +18 -0
  237. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
  238. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +6 -5
  239. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  240. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +3 -0
  241. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  242. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  243. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +28 -7
  244. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  245. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts +6 -0
  246. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  247. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts +0 -1
  248. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts.map +1 -1
  249. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
  250. package/dist/types/stories/ConnectButton/hideButtons.stories.d.ts +23 -0
  251. package/dist/types/stories/ConnectButton/hideButtons.stories.d.ts.map +1 -0
  252. package/dist/types/stories/{ConnectButton.stories.d.ts → ConnectButton/themes.stories.d.ts} +3 -4
  253. package/dist/types/stories/ConnectButton/themes.stories.d.ts.map +1 -0
  254. package/dist/types/transaction/actions/send-transaction.d.ts.map +1 -1
  255. package/dist/types/transaction/actions/zksync/getEip721Domain.d.ts.map +1 -1
  256. package/dist/types/transaction/extract-error.d.ts.map +1 -1
  257. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  258. package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts +11 -0
  259. package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts.map +1 -0
  260. package/dist/types/utils/any-evm/zksync/constants.d.ts +29 -0
  261. package/dist/types/utils/any-evm/zksync/constants.d.ts.map +1 -0
  262. package/dist/types/utils/any-evm/zksync/create2Address.d.ts +9 -0
  263. package/dist/types/utils/any-evm/zksync/create2Address.d.ts.map +1 -0
  264. package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts +3 -0
  265. package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts.map +1 -0
  266. package/dist/types/utils/domains.d.ts +1 -1
  267. package/dist/types/version.d.ts +1 -1
  268. package/dist/types/version.d.ts.map +1 -1
  269. package/dist/types/wallets/smart/index.d.ts.map +1 -1
  270. package/dist/types/wallets/smart/lib/utils.d.ts +0 -2
  271. package/dist/types/wallets/smart/lib/utils.d.ts.map +1 -1
  272. package/package.json +1 -1
  273. package/src/contract/deployment/deploy-via-autofactory.ts +13 -0
  274. package/src/contract/deployment/publisher.ts +5 -0
  275. package/src/contract/deployment/utils/bootstrap.ts +56 -3
  276. package/src/contract/deployment/zksync/zkDeployContract.ts +52 -0
  277. package/src/contract/deployment/zksync/zkDeployCreate2Factory.ts +65 -0
  278. package/src/contract/deployment/zksync/zkDeployDeterministic.ts +106 -0
  279. package/src/contract/deployment/zksync/zkDeployProxy.ts +55 -0
  280. package/src/exports/extensions/erc4337.ts +35 -7
  281. package/src/exports/extensions/permissions.ts +9 -1
  282. package/src/exports/extensions/thirdweb.ts +10 -0
  283. package/src/extensions/erc4337/account/addAdmin.ts +20 -1
  284. package/src/extensions/erc4337/account/addSessionKey.ts +20 -1
  285. package/src/extensions/erc4337/account/removeAdmin.ts +20 -1
  286. package/src/extensions/erc4337/account/removeSessionKey.ts +20 -1
  287. package/src/extensions/permissions/permissions.test.ts +1 -1
  288. package/src/extensions/permissions/read/getAllMembers.ts +30 -2
  289. package/src/extensions/permissions/read/getRoleAdmin.ts +2 -0
  290. package/src/extensions/permissions/read/getRoleMember.ts +2 -0
  291. package/src/extensions/permissions/read/getRoleMemberCount.ts +2 -0
  292. package/src/extensions/permissions/read/hasRole.ts +2 -0
  293. package/src/extensions/permissions/write/{grant.ts → grantRole.ts} +2 -0
  294. package/src/extensions/permissions/write/renounceRole.ts +2 -0
  295. package/src/extensions/permissions/write/revokeRole.ts +2 -0
  296. package/src/extensions/prebuilts/deploy-published.ts +58 -26
  297. package/src/extensions/thirdweb/read/contractType.ts +46 -0
  298. package/src/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.ts +55 -0
  299. package/src/react/core/hooks/connection/ConnectButtonProps.ts +21 -0
  300. package/src/react/web/hooks/transaction/useSendTransaction.tsx +6 -5
  301. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +3 -0
  302. package/src/react/web/ui/ConnectWallet/Details.tsx +108 -73
  303. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +37 -29
  304. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +73 -33
  305. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +37 -2
  306. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.tsx +5 -10
  307. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +27 -20
  308. package/src/stories/ConnectButton/hideButtons.stories.tsx +83 -0
  309. package/src/stories/{ConnectButton.stories.ts → ConnectButton/themes.stories.tsx} +3 -4
  310. package/src/transaction/actions/send-transaction.ts +11 -0
  311. package/src/transaction/actions/to-serializable-transaction.test.ts +3 -4
  312. package/src/transaction/actions/zksync/getEip721Domain.ts +4 -2
  313. package/src/transaction/actions/zksync/send-eip712-transaction.test.ts +27 -2
  314. package/src/transaction/extract-error.ts +7 -2
  315. package/src/utils/abi/encode-abi-parameters.test.ts +1 -1
  316. package/src/utils/abi/encodeAbiParameters.ts +1 -1
  317. package/src/utils/any-evm/deploy-metadata.ts +11 -2
  318. package/src/utils/any-evm/zksync/computeDeploymentAddress.ts +24 -0
  319. package/src/utils/any-evm/zksync/constants.ts +49 -0
  320. package/src/utils/any-evm/zksync/create2Address.ts +26 -0
  321. package/src/utils/any-evm/zksync/isZkSyncChain.ts +10 -0
  322. package/src/utils/domains.ts +1 -1
  323. package/src/version.ts +1 -1
  324. package/src/wallets/smart/index.ts +2 -3
  325. package/src/wallets/smart/lib/utils.ts +0 -10
  326. package/dist/cjs/extensions/permissions/write/grant.js.map +0 -1
  327. package/dist/cjs/stories/ConnectButton.stories.js.map +0 -1
  328. package/dist/esm/extensions/permissions/write/grant.js.map +0 -1
  329. package/dist/esm/stories/ConnectButton.stories.js.map +0 -1
  330. package/dist/types/extensions/permissions/write/grant.d.ts.map +0 -1
  331. package/dist/types/stories/ConnectButton.stories.d.ts.map +0 -1
@@ -6,24 +6,29 @@
6
6
  export {
7
7
  hasRole,
8
8
  type HasRoleParams,
9
+ isHasRoleSupported,
9
10
  } from "../../extensions/permissions/read/hasRole.js";
10
11
  export {
11
12
  getRoleAdmin,
12
13
  type GetRoleAdminParams,
14
+ isGetRoleAdminSupported,
13
15
  } from "../../extensions/permissions/read/getRoleAdmin.js";
14
16
 
15
17
  // WRITE
16
18
  export {
17
19
  grantRole,
18
20
  type GrantRoleParams,
19
- } from "../../extensions/permissions/write/grant.js";
21
+ isGrantRoleSupported,
22
+ } from "../../extensions/permissions/write/grantRole.js";
20
23
  export {
21
24
  revokeRole,
22
25
  type RevokeRoleParams,
26
+ isRevokeRoleSupported,
23
27
  } from "../../extensions/permissions/write/revokeRole.js";
24
28
  export {
25
29
  renounceRole,
26
30
  type RenounceRoleParams,
31
+ isRenounceRoleSupported,
27
32
  } from "../../extensions/permissions/write/renounceRole.js";
28
33
 
29
34
  // EVENTS
@@ -48,14 +53,17 @@ export {
48
53
  export {
49
54
  getRoleMember,
50
55
  type GetRoleMemberParams,
56
+ isGetRoleMemberSupported,
51
57
  } from "../../extensions/permissions/read/getRoleMember.js";
52
58
  export {
53
59
  getRoleMemberCount,
54
60
  type GetRoleMemberCountParams,
61
+ isGetRoleMemberCountSupported,
55
62
  } from "../../extensions/permissions/read/getRoleMemberCount.js";
56
63
  export {
57
64
  getAllRoleMembers,
58
65
  type GetAllRoleMembersParams,
66
+ isGetAllRoleMembersSupported,
59
67
  } from "../../extensions/permissions/read/getAllMembers.js";
60
68
 
61
69
  // --------------------------------------------------------
@@ -1,3 +1,13 @@
1
+ // --------------------------------------------------------
2
+ // Generic
3
+ // --------------------------------------------------------
4
+
5
+ // Read
6
+ export {
7
+ contractType,
8
+ isContractTypeSupported,
9
+ } from "../../extensions/thirdweb/read/contractType.js";
10
+
1
11
  // --------------------------------------------------------
2
12
  // Publisher contract
3
13
  // --------------------------------------------------------
@@ -1,6 +1,9 @@
1
1
  import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
2
  import type { Account } from "../../../wallets/interfaces/wallet.js";
3
- import { setPermissionsForSigner } from "../__generated__/IAccountPermissions/write/setPermissionsForSigner.js";
3
+ import {
4
+ isSetPermissionsForSignerSupported,
5
+ setPermissionsForSigner,
6
+ } from "../__generated__/IAccountPermissions/write/setPermissionsForSigner.js";
4
7
  import { defaultPermissionsForAdmin, signPermissionRequest } from "./common.js";
5
8
 
6
9
  /**
@@ -53,3 +56,19 @@ export function addAdmin(options: BaseTransactionOptions<AddAdminOptions>) {
53
56
  },
54
57
  });
55
58
  }
59
+
60
+ /**
61
+ * Checks if the `isAddAdminSupported` method is supported by the given contract.
62
+ * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
63
+ * @returns A boolean indicating if the `isAddAdminSupported` method is supported.
64
+ * @extension ERC4337
65
+ * @example
66
+ * ```ts
67
+ * import { isAddAdminSupported } from "thirdweb/extensions/erc4337";
68
+ *
69
+ * const supported = isAddAdminSupported(["0x..."]);
70
+ * ```
71
+ */
72
+ export function isAddAdminSupported(availableSelectors: string[]) {
73
+ return isSetPermissionsForSignerSupported(availableSelectors);
74
+ }
@@ -1,6 +1,9 @@
1
1
  import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
2
  import type { Account } from "../../../wallets/interfaces/wallet.js";
3
- import { setPermissionsForSigner } from "../__generated__/IAccountPermissions/write/setPermissionsForSigner.js";
3
+ import {
4
+ isSetPermissionsForSignerSupported,
5
+ setPermissionsForSigner,
6
+ } from "../__generated__/IAccountPermissions/write/setPermissionsForSigner.js";
4
7
  import { signPermissionRequest, toContractPermissions } from "./common.js";
5
8
  import type { AccountPermissions } from "./types.js";
6
9
 
@@ -67,3 +70,19 @@ export function addSessionKey(
67
70
  },
68
71
  });
69
72
  }
73
+
74
+ /**
75
+ * Checks if the `isAddSessionKeySupported` method is supported by the given contract.
76
+ * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
77
+ * @returns A boolean indicating if the `isAddSessionKeySupported` method is supported.
78
+ * @extension ERC4337
79
+ * @example
80
+ * ```ts
81
+ * import { isAddSessionKeySupported } from "thirdweb/extensions/erc4337";
82
+ *
83
+ * const supported = isAddSessionKeySupported(["0x..."]);
84
+ * ```
85
+ */
86
+ export function isAddSessionKeySupported(availableSelectors: string[]) {
87
+ return isSetPermissionsForSignerSupported(availableSelectors);
88
+ }
@@ -1,6 +1,9 @@
1
1
  import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
2
  import type { Account } from "../../../wallets/interfaces/wallet.js";
3
- import { setPermissionsForSigner } from "../__generated__/IAccountPermissions/write/setPermissionsForSigner.js";
3
+ import {
4
+ isSetPermissionsForSignerSupported,
5
+ setPermissionsForSigner,
6
+ } from "../__generated__/IAccountPermissions/write/setPermissionsForSigner.js";
4
7
  import { defaultPermissionsForAdmin, signPermissionRequest } from "./common.js";
5
8
 
6
9
  /**
@@ -58,3 +61,19 @@ export function removeAdmin(
58
61
  },
59
62
  });
60
63
  }
64
+
65
+ /**
66
+ * Checks if the `isRemoveAdminSupported` method is supported by the given contract.
67
+ * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
68
+ * @returns A boolean indicating if the `isRemoveAdminSupported` method is supported.
69
+ * @extension ERC4337
70
+ * @example
71
+ * ```ts
72
+ * import { isRemoveAdminSupported } from "thirdweb/extensions/erc4337";
73
+ *
74
+ * const supported = isRemoveAdminSupported(["0x..."]);
75
+ * ```
76
+ */
77
+ export function isRemoveAdminSupported(availableSelectors: string[]) {
78
+ return isSetPermissionsForSignerSupported(availableSelectors);
79
+ }
@@ -1,6 +1,9 @@
1
1
  import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
2
  import type { Account } from "../../../wallets/interfaces/wallet.js";
3
- import { setPermissionsForSigner } from "../__generated__/IAccountPermissions/write/setPermissionsForSigner.js";
3
+ import {
4
+ isSetPermissionsForSignerSupported,
5
+ setPermissionsForSigner,
6
+ } from "../__generated__/IAccountPermissions/write/setPermissionsForSigner.js";
4
7
  import { signPermissionRequest, toContractPermissions } from "./common.js";
5
8
 
6
9
  /**
@@ -60,3 +63,19 @@ export function removeSessionKey(
60
63
  },
61
64
  });
62
65
  }
66
+
67
+ /**
68
+ * Checks if the `isRemoveSessionKeySupported` method is supported by the given contract.
69
+ * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
70
+ * @returns A boolean indicating if the `isRemoveSessionKeySupported` method is supported.
71
+ * @extension ERC4337
72
+ * @example
73
+ * ```ts
74
+ * import { isRemoveSessionKeySupported } from "thirdweb/extensions/erc4337";
75
+ *
76
+ * const supported = isRemoveSessionKeySupported(["0x..."]);
77
+ * ```
78
+ */
79
+ export function isRemoveSessionKeySupported(availableSelectors: string[]) {
80
+ return isSetPermissionsForSignerSupported(availableSelectors);
81
+ }
@@ -10,7 +10,7 @@ import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-co
10
10
  import { deployERC20Contract } from "../prebuilts/deploy-erc20.js";
11
11
  import { getAllRoleMembers } from "./read/getAllMembers.js";
12
12
  import { hasRole } from "./read/hasRole.js";
13
- import { grantRole } from "./write/grant.js";
13
+ import { grantRole } from "./write/grantRole.js";
14
14
  import { revokeRole } from "./write/revokeRole.js";
15
15
 
16
16
  describe.runIf(process.env.TW_SECRET_KEY)("Permissions", () => {
@@ -1,6 +1,12 @@
1
1
  import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
- import { getRoleMember } from "../__generated__/IPermissionsEnumerable/read/getRoleMember.js";
3
- import { getRoleMemberCount } from "../__generated__/IPermissionsEnumerable/read/getRoleMemberCount.js";
2
+ import {
3
+ getRoleMember,
4
+ isGetRoleMemberSupported,
5
+ } from "../__generated__/IPermissionsEnumerable/read/getRoleMember.js";
6
+ import {
7
+ getRoleMemberCount,
8
+ isGetRoleMemberCountSupported,
9
+ } from "../__generated__/IPermissionsEnumerable/read/getRoleMemberCount.js";
4
10
  import { type RoleInput, getRoleHash } from "../utils.js";
5
11
 
6
12
  /**
@@ -47,3 +53,25 @@ export async function getAllRoleMembers(
47
53
 
48
54
  return Promise.all(promises);
49
55
  }
56
+
57
+ /**
58
+ * Checks if the `getAllRoleMembers` method is supported by the given contract.
59
+ * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
60
+ * @returns A boolean indicating if the `getAllRoleMembers` method is supported.
61
+ * @extension PERMISSIONS
62
+ * @example
63
+ * ```ts
64
+ * import { isGetAllRoleMembersSupported } from "thirdweb/extensions/permissions";
65
+ *
66
+ * const supported = isGetAllRoleMembersSupported(["0x..."]);
67
+ * ```
68
+ */
69
+ export function isGetAllRoleMembersSupported(
70
+ availableSelectors: string[],
71
+ ): boolean {
72
+ // both need to be supported to get all members
73
+ return (
74
+ isGetRoleMemberSupported(availableSelectors) &&
75
+ isGetRoleMemberCountSupported(availableSelectors)
76
+ );
77
+ }
@@ -2,6 +2,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
2
  import { getRoleAdmin as generatedGetRoleAdmin } from "../__generated__/IPermissions/read/getRoleAdmin.js";
3
3
  import { type RoleInput, getRoleHash } from "../utils.js";
4
4
 
5
+ export { isGetRoleAdminSupported } from "../__generated__/IPermissions/read/getRoleAdmin.js";
6
+
5
7
  /**
6
8
  * @extension PERMISSIONS
7
9
  */
@@ -2,6 +2,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
2
  import { getRoleMember as generatedGetRoleMember } from "../__generated__/IPermissionsEnumerable/read/getRoleMember.js";
3
3
  import { type RoleInput, getRoleHash } from "../utils.js";
4
4
 
5
+ export { isGetRoleMemberSupported } from "../__generated__/IPermissionsEnumerable/read/getRoleMember.js";
6
+
5
7
  /**
6
8
  * @extension PERMISSIONS
7
9
  */
@@ -2,6 +2,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
2
  import { getRoleMemberCount as generatedGetRoleMemberCount } from "../__generated__/IPermissionsEnumerable/read/getRoleMemberCount.js";
3
3
  import { type RoleInput, getRoleHash } from "../utils.js";
4
4
 
5
+ export { isGetRoleMemberCountSupported } from "../__generated__/IPermissionsEnumerable/read/getRoleMemberCount.js";
6
+
5
7
  /**
6
8
  * @extension PERMISSIONS
7
9
  */
@@ -2,6 +2,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
2
  import { hasRole as hasRoleGenerated } from "../__generated__/IPermissions/read/hasRole.js";
3
3
  import { type RoleInput, getRoleHash } from "../utils.js";
4
4
 
5
+ export { isHasRoleSupported } from "../__generated__/IPermissions/read/hasRole.js";
6
+
5
7
  /**
6
8
  * @extension PERMISSIONS
7
9
  */
@@ -3,6 +3,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
3
3
  import { grantRole as generatedGrantRole } from "../__generated__/IPermissions/write/grantRole.js";
4
4
  import { type RoleInput, getRoleHash } from "../utils.js";
5
5
 
6
+ export { isGrantRoleSupported } from "../__generated__/IPermissions/write/grantRole.js";
7
+
6
8
  /**
7
9
  * @extension PERMISSIONS
8
10
  */
@@ -3,6 +3,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
3
3
  import { renounceRole as generatedRenounceRole } from "../__generated__/IPermissions/write/renounceRole.js";
4
4
  import { type RoleInput, getRoleHash } from "../utils.js";
5
5
 
6
+ export { isRenounceRoleSupported } from "../__generated__/IPermissions/write/renounceRole.js";
7
+
6
8
  /**
7
9
  * @extension PERMISSIONS
8
10
  */
@@ -3,6 +3,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
3
3
  import { revokeRole as generatedRevokeRole } from "../__generated__/IPermissions/write/revokeRole.js";
4
4
  import { type RoleInput, getRoleHash } from "../utils.js";
5
5
 
6
+ export { isRevokeRoleSupported } from "../__generated__/IPermissions/write/revokeRole.js";
7
+
6
8
  /**
7
9
  * @extension PERMISSIONS
8
10
  */
@@ -1,12 +1,15 @@
1
- import type { AbiConstructor } from "abitype";
1
+ import type { AbiConstructor, AbiFunction } from "abitype";
2
2
  import type { Chain } from "../../chains/types.js";
3
3
  import type { ThirdwebClient } from "../../client/client.js";
4
4
  import { getContract } from "../../contract/contract.js";
5
5
  import { fetchPublishedContractMetadata } from "../../contract/deployment/publisher.js";
6
+ import { zkDeployContract } from "../../contract/deployment/zksync/zkDeployContract.js";
6
7
  import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
7
8
  import { simulateTransaction } from "../../transaction/actions/simulate.js";
8
9
  import { prepareContractCall } from "../../transaction/prepare-contract-call.js";
9
10
  import { resolveMethod } from "../../transaction/resolve-method.js";
11
+ import type { CompilerMetadata } from "../../utils/any-evm/deploy-metadata.js";
12
+ import { isZkSyncChain } from "../../utils/any-evm/zksync/isZkSyncChain.js";
10
13
  import type { Account } from "../../wallets/interfaces/wallet.js";
11
14
 
12
15
  /**
@@ -58,26 +61,19 @@ export async function deployPublishedContract(
58
61
  const { compilerMetadata, extendedMetadata } =
59
62
  await fetchPublishedContractMetadata({
60
63
  client,
61
- contractId,
64
+ contractId: isZkSyncChain(chain) ? `${contractId}_ZkSync` : contractId,
62
65
  publisher,
63
66
  version,
64
67
  });
65
68
 
66
69
  switch (extendedMetadata?.deployType) {
67
70
  case "standard": {
68
- const { deployContract } = await import(
69
- "../../contract/deployment/deploy-with-abi.js"
70
- );
71
- return deployContract({
71
+ return directDeploy({
72
72
  account,
73
73
  client,
74
74
  chain,
75
- bytecode: compilerMetadata.bytecode,
76
- constructorAbi:
77
- (compilerMetadata.abi.find(
78
- (i) => i.type === "constructor",
79
- ) as AbiConstructor) || [],
80
- constructorParams: contractParams,
75
+ compilerMetadata,
76
+ contractParams,
81
77
  });
82
78
  }
83
79
  case "autoFactory": {
@@ -97,16 +93,23 @@ export async function deployPublishedContract(
97
93
  constructorParams: implementationConstructorParams || [],
98
94
  publisher,
99
95
  });
96
+ const initializeFunction = compilerMetadata.abi.find(
97
+ (i) =>
98
+ i.type === "function" &&
99
+ i.name ===
100
+ (extendedMetadata.factoryDeploymentData
101
+ ?.implementationInitializerFunction || "initialize"),
102
+ ) as AbiFunction;
103
+ if (!initializeFunction) {
104
+ throw new Error(`Could not find initialize function for ${contractId}`);
105
+ }
100
106
  const initializeTransaction = prepareContractCall({
101
107
  contract: getContract({
102
108
  client,
103
109
  chain,
104
110
  address: implementationContract.address,
105
111
  }),
106
- method: resolveMethod(
107
- extendedMetadata.factoryDeploymentData
108
- ?.implementationInitializerFunction || "initialize",
109
- ),
112
+ method: initializeFunction,
110
113
  params: contractParams,
111
114
  });
112
115
 
@@ -154,19 +157,12 @@ export async function deployPublishedContract(
154
157
  }
155
158
  case undefined: {
156
159
  // Default to standard deployment if none was specified
157
- const { deployContract } = await import(
158
- "../../contract/deployment/deploy-with-abi.js"
159
- );
160
- return deployContract({
160
+ return directDeploy({
161
161
  account,
162
162
  client,
163
163
  chain,
164
- bytecode: compilerMetadata.bytecode,
165
- constructorAbi:
166
- (compilerMetadata.abi.find(
167
- (i) => i.type === "constructor",
168
- ) as AbiConstructor) || [],
169
- constructorParams: contractParams,
164
+ compilerMetadata,
165
+ contractParams,
170
166
  });
171
167
  }
172
168
  default:
@@ -176,3 +172,39 @@ export async function deployPublishedContract(
176
172
  );
177
173
  }
178
174
  }
175
+
176
+ async function directDeploy(options: {
177
+ account: Account;
178
+ client: ThirdwebClient;
179
+ chain: Chain;
180
+ compilerMetadata: CompilerMetadata;
181
+ contractParams: unknown[];
182
+ }) {
183
+ const { account, client, chain, compilerMetadata, contractParams } = options;
184
+
185
+ if (isZkSyncChain(chain)) {
186
+ return zkDeployContract({
187
+ account,
188
+ client,
189
+ chain,
190
+ bytecode: compilerMetadata.bytecode,
191
+ abi: compilerMetadata.abi,
192
+ params: contractParams,
193
+ });
194
+ }
195
+
196
+ const { deployContract } = await import(
197
+ "../../contract/deployment/deploy-with-abi.js"
198
+ );
199
+ return deployContract({
200
+ account,
201
+ client,
202
+ chain,
203
+ bytecode: compilerMetadata.bytecode,
204
+ constructorAbi:
205
+ (compilerMetadata.abi.find(
206
+ (i) => i.type === "constructor",
207
+ ) as AbiConstructor) || [],
208
+ constructorParams: contractParams,
209
+ });
210
+ }
@@ -0,0 +1,46 @@
1
+ import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
+ import { hexToString } from "../../../utils/encoding/hex.js";
3
+ import * as ContractTypeGenerated from "../__generated__/IThirdwebContract/read/contractType.js";
4
+
5
+ /**
6
+ * Checks if the `contractType` method is supported by the given contract.
7
+ * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
8
+ * @returns A boolean indicating if the `contractType` method is supported.
9
+ * @extension THIRDWEB
10
+ * @example
11
+ * ```ts
12
+ * import { isContractTypeSupported } from "thirdweb/extensions/thirdweb";
13
+ *
14
+ * const supported = isContractTypeSupported(["0x..."]);
15
+ * ```
16
+ */
17
+ export function isContractTypeSupported(availableSelectors: string[]) {
18
+ return ContractTypeGenerated.isContractTypeSupported(availableSelectors);
19
+ }
20
+
21
+ /**
22
+ * Calls the "contractType" function on the contract.
23
+ * @param options - The options for the contractType function.
24
+ * @returns The parsed result of the function call.
25
+ * @extension THIRDWEB
26
+ * @example
27
+ * ```ts
28
+ * import { contractType } from "thirdweb/extensions/thirdweb";
29
+ *
30
+ * const result = await contractType({
31
+ * contract,
32
+ * });
33
+ *
34
+ * ```
35
+ */
36
+ export async function contractType(options: BaseTransactionOptions) {
37
+ try {
38
+ const rawContractType = await ContractTypeGenerated.contractType(options);
39
+ const utf8 = hexToString(rawContractType);
40
+ // biome-ignore lint/suspicious/noControlCharactersInRegex: required here
41
+ return utf8.replace(/\x00/g, "") || "custom";
42
+ } catch {
43
+ // backwards compat, if this fails for any reason we assume it's a custom contract
44
+ return "custom";
45
+ }
46
+ }
@@ -0,0 +1,55 @@
1
+ import { prepareEvent } from "../../../../../event/prepare-event.js";
2
+ import type { AbiParameterToPrimitiveType } from "abitype";
3
+
4
+ /**
5
+ * Represents the filters for the "ContractDeployed" event.
6
+ */
7
+ export type ContractDeployedEventFilters = Partial<{
8
+ deployerAddress: AbiParameterToPrimitiveType<{
9
+ type: "address";
10
+ name: "deployerAddress";
11
+ indexed: true;
12
+ }>;
13
+ bytecodeHash: AbiParameterToPrimitiveType<{
14
+ type: "bytes32";
15
+ name: "bytecodeHash";
16
+ indexed: true;
17
+ }>;
18
+ contractAddress: AbiParameterToPrimitiveType<{
19
+ type: "address";
20
+ name: "contractAddress";
21
+ indexed: true;
22
+ }>;
23
+ }>;
24
+
25
+ /**
26
+ * Creates an event object for the ContractDeployed event.
27
+ * @param filters - Optional filters to apply to the event.
28
+ * @returns The prepared event object.
29
+ * @extension ZKSYNC
30
+ * @example
31
+ * ```ts
32
+ * import { getContractEvents } from "thirdweb";
33
+ * import { contractDeployedEvent } from "thirdweb/extensions/zksync";
34
+ *
35
+ * const events = await getContractEvents({
36
+ * contract,
37
+ * events: [
38
+ * contractDeployedEvent({
39
+ * deployerAddress: ...,
40
+ * bytecodeHash: ...,
41
+ * contractAddress: ...,
42
+ * })
43
+ * ],
44
+ * });
45
+ * ```
46
+ */
47
+ export function contractDeployedEvent(
48
+ filters: ContractDeployedEventFilters = {},
49
+ ) {
50
+ return prepareEvent({
51
+ signature:
52
+ "event ContractDeployed(address indexed deployerAddress, bytes32 indexed bytecodeHash, address indexed contractAddress)",
53
+ filters,
54
+ });
55
+ }
@@ -288,6 +288,27 @@ export type ConnectButton_detailsModalOptions = {
288
288
  * Use custom avatar URL for the connected wallet image in the `ConnectButton` Details Modal, overriding ENS avatar or Blobbie icon.
289
289
  */
290
290
  connectedAccountAvatarUrl?: string;
291
+
292
+ /**
293
+ * Hide the "Send Funds" button in the `ConnectButton` Details Modal.
294
+ *
295
+ * By default the "Send Funds" button is shown.
296
+ */
297
+ hideSendFunds?: boolean;
298
+
299
+ /**
300
+ * Hide the "Receive Funds" button in the `ConnectButton` Details Modal.
301
+ *
302
+ * By default the "Receive Funds" button is shown.
303
+ */
304
+ hideReceiveFunds?: boolean;
305
+
306
+ /**
307
+ * Hide the "Buy Funds" button in the `ConnectButton` Details Modal.
308
+ *
309
+ * By default the "Buy Funds" button is shown.
310
+ */
311
+ hideBuyFunds?: boolean;
291
312
  };
292
313
 
293
314
  /**
@@ -19,7 +19,7 @@ import { TransactionModal } from "../../ui/TransactionButton/TransactionModal.js
19
19
  * Refer to [`SendTransactionConfig`](https://portal.thirdweb.com/references/typescript/v5/SendTransactionConfig) for more details.
20
20
  * @example
21
21
  *
22
- * ### Using a prepared contract call
22
+ * ### Sending a prepared contract call
23
23
  *
24
24
  * ```tsx
25
25
  * import { useSendTransaction } from "thirdweb/react";
@@ -83,11 +83,12 @@ import { TransactionModal } from "../../ui/TransactionButton/TransactionModal.js
83
83
  * const { mutate: sendTx, data: transactionResult } = useSendTransaction();
84
84
  *
85
85
  * const onClick = () => {
86
+ * // Send 0.1 SepoliaETH to an address
86
87
  * const transaction = prepareTransaction({
87
- * contract,
88
- * to: "0x...",
89
- * value: toWei("0.1"),
90
- * }),
88
+ * to: "0x...",
89
+ * value: toWei("0.1"),
90
+ * chain: sepolia,
91
+ * client: thirdwebClient,
91
92
  * });
92
93
  * sendTx(transaction);
93
94
  * };
@@ -544,6 +544,9 @@ function ConnectButtonInner(
544
544
  showAllWallets: props.showAllWallets,
545
545
  walletConnect: props.walletConnect,
546
546
  wallets: props.wallets,
547
+ hideReceiveFunds: props.detailsModal?.hideReceiveFunds,
548
+ hideSendFunds: props.detailsModal?.hideSendFunds,
549
+ hideBuyFunds: props.detailsModal?.hideBuyFunds,
547
550
  }}
548
551
  />
549
552
  );