thirdweb 5.50.0 → 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 (337) 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/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js +8 -4
  68. package/dist/cjs/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js.map +1 -1
  69. package/dist/cjs/stories/ConnectButton/hideButtons.stories.js +74 -0
  70. package/dist/cjs/stories/ConnectButton/hideButtons.stories.js.map +1 -0
  71. package/dist/cjs/stories/{ConnectButton.stories.js → ConnectButton/themes.stories.js} +4 -5
  72. package/dist/cjs/stories/ConnectButton/themes.stories.js.map +1 -0
  73. package/dist/cjs/transaction/actions/send-transaction.js +8 -0
  74. package/dist/cjs/transaction/actions/send-transaction.js.map +1 -1
  75. package/dist/cjs/transaction/actions/zksync/getEip721Domain.js +4 -3
  76. package/dist/cjs/transaction/actions/zksync/getEip721Domain.js.map +1 -1
  77. package/dist/cjs/transaction/extract-error.js +4 -2
  78. package/dist/cjs/transaction/extract-error.js.map +1 -1
  79. package/dist/cjs/utils/abi/encodeAbiParameters.js +1 -1
  80. package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  81. package/dist/cjs/utils/any-evm/deploy-metadata.js +9 -2
  82. package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
  83. package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js +15 -0
  84. package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -0
  85. package/dist/cjs/utils/any-evm/zksync/constants.js +43 -0
  86. package/dist/cjs/utils/any-evm/zksync/constants.js.map +1 -0
  87. package/dist/cjs/utils/any-evm/zksync/create2Address.js +21 -0
  88. package/dist/cjs/utils/any-evm/zksync/create2Address.js.map +1 -0
  89. package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js +10 -0
  90. package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js.map +1 -0
  91. package/dist/cjs/version.js +1 -1
  92. package/dist/cjs/wallets/smart/index.js +2 -2
  93. package/dist/cjs/wallets/smart/index.js.map +1 -1
  94. package/dist/cjs/wallets/smart/lib/utils.js +0 -7
  95. package/dist/cjs/wallets/smart/lib/utils.js.map +1 -1
  96. package/dist/esm/contract/deployment/deploy-via-autofactory.js +11 -0
  97. package/dist/esm/contract/deployment/deploy-via-autofactory.js.map +1 -1
  98. package/dist/esm/contract/deployment/publisher.js +3 -0
  99. package/dist/esm/contract/deployment/publisher.js.map +1 -1
  100. package/dist/esm/contract/deployment/utils/bootstrap.js +41 -1
  101. package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
  102. package/dist/esm/contract/deployment/zksync/zkDeployContract.js +40 -0
  103. package/dist/esm/contract/deployment/zksync/zkDeployContract.js.map +1 -0
  104. package/dist/esm/contract/deployment/zksync/zkDeployCreate2Factory.js +52 -0
  105. package/dist/esm/contract/deployment/zksync/zkDeployCreate2Factory.js.map +1 -0
  106. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js +83 -0
  107. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -0
  108. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js +38 -0
  109. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js.map +1 -0
  110. package/dist/esm/exports/extensions/erc4337.js +14 -13
  111. package/dist/esm/exports/extensions/erc4337.js.map +1 -1
  112. package/dist/esm/exports/extensions/permissions.js +8 -8
  113. package/dist/esm/exports/extensions/permissions.js.map +1 -1
  114. package/dist/esm/exports/extensions/thirdweb.js +5 -0
  115. package/dist/esm/exports/extensions/thirdweb.js.map +1 -1
  116. package/dist/esm/extensions/erc4337/account/addAdmin.js +16 -1
  117. package/dist/esm/extensions/erc4337/account/addAdmin.js.map +1 -1
  118. package/dist/esm/extensions/erc4337/account/addSessionKey.js +16 -1
  119. package/dist/esm/extensions/erc4337/account/addSessionKey.js.map +1 -1
  120. package/dist/esm/extensions/erc4337/account/removeAdmin.js +16 -1
  121. package/dist/esm/extensions/erc4337/account/removeAdmin.js.map +1 -1
  122. package/dist/esm/extensions/erc4337/account/removeSessionKey.js +16 -1
  123. package/dist/esm/extensions/erc4337/account/removeSessionKey.js.map +1 -1
  124. package/dist/esm/extensions/permissions/read/getAllMembers.js +19 -2
  125. package/dist/esm/extensions/permissions/read/getAllMembers.js.map +1 -1
  126. package/dist/esm/extensions/permissions/read/getRoleAdmin.js +1 -0
  127. package/dist/esm/extensions/permissions/read/getRoleAdmin.js.map +1 -1
  128. package/dist/esm/extensions/permissions/read/getRoleMember.js +1 -0
  129. package/dist/esm/extensions/permissions/read/getRoleMember.js.map +1 -1
  130. package/dist/esm/extensions/permissions/read/getRoleMemberCount.js +1 -0
  131. package/dist/esm/extensions/permissions/read/getRoleMemberCount.js.map +1 -1
  132. package/dist/esm/extensions/permissions/read/hasRole.js +1 -0
  133. package/dist/esm/extensions/permissions/read/hasRole.js.map +1 -1
  134. package/dist/esm/extensions/permissions/write/{grant.js → grantRole.js} +2 -1
  135. package/dist/esm/extensions/permissions/write/grantRole.js.map +1 -0
  136. package/dist/esm/extensions/permissions/write/renounceRole.js +1 -0
  137. package/dist/esm/extensions/permissions/write/renounceRole.js.map +1 -1
  138. package/dist/esm/extensions/permissions/write/revokeRole.js +1 -0
  139. package/dist/esm/extensions/permissions/write/revokeRole.js.map +1 -1
  140. package/dist/esm/extensions/prebuilts/deploy-published.js +39 -13
  141. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  142. package/dist/esm/extensions/thirdweb/read/contractType.js +45 -0
  143. package/dist/esm/extensions/thirdweb/read/contractType.js.map +1 -0
  144. package/dist/esm/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js +30 -0
  145. package/dist/esm/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js.map +1 -0
  146. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +6 -5
  147. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  148. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +3 -0
  149. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  150. package/dist/esm/react/web/ui/ConnectWallet/Details.js +37 -30
  151. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  152. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +23 -18
  153. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  154. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +41 -24
  155. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  156. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +12 -2
  157. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  158. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +2 -2
  159. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
  160. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +17 -12
  161. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  162. package/dist/esm/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js +8 -4
  163. package/dist/esm/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js.map +1 -1
  164. package/dist/esm/stories/ConnectButton/hideButtons.stories.js +71 -0
  165. package/dist/esm/stories/ConnectButton/hideButtons.stories.js.map +1 -0
  166. package/dist/esm/stories/{ConnectButton.stories.js → ConnectButton/themes.stories.js} +4 -5
  167. package/dist/esm/stories/ConnectButton/themes.stories.js.map +1 -0
  168. package/dist/esm/transaction/actions/send-transaction.js +8 -0
  169. package/dist/esm/transaction/actions/send-transaction.js.map +1 -1
  170. package/dist/esm/transaction/actions/zksync/getEip721Domain.js +4 -3
  171. package/dist/esm/transaction/actions/zksync/getEip721Domain.js.map +1 -1
  172. package/dist/esm/transaction/extract-error.js +4 -2
  173. package/dist/esm/transaction/extract-error.js.map +1 -1
  174. package/dist/esm/utils/abi/encodeAbiParameters.js +1 -1
  175. package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
  176. package/dist/esm/utils/any-evm/deploy-metadata.js +9 -2
  177. package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
  178. package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js +12 -0
  179. package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -0
  180. package/dist/esm/utils/any-evm/zksync/constants.js +40 -0
  181. package/dist/esm/utils/any-evm/zksync/constants.js.map +1 -0
  182. package/dist/esm/utils/any-evm/zksync/create2Address.js +18 -0
  183. package/dist/esm/utils/any-evm/zksync/create2Address.js.map +1 -0
  184. package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js +7 -0
  185. package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js.map +1 -0
  186. package/dist/esm/version.js +1 -1
  187. package/dist/esm/wallets/smart/index.js +2 -2
  188. package/dist/esm/wallets/smart/index.js.map +1 -1
  189. package/dist/esm/wallets/smart/lib/utils.js +0 -6
  190. package/dist/esm/wallets/smart/lib/utils.js.map +1 -1
  191. package/dist/types/contract/deployment/deploy-via-autofactory.d.ts.map +1 -1
  192. package/dist/types/contract/deployment/publisher.d.ts.map +1 -1
  193. package/dist/types/contract/deployment/utils/bootstrap.d.ts +4 -2
  194. package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
  195. package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts +12 -0
  196. package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts.map +1 -0
  197. package/dist/types/contract/deployment/zksync/zkDeployCreate2Factory.d.ts +6 -0
  198. package/dist/types/contract/deployment/zksync/zkDeployCreate2Factory.d.ts.map +1 -0
  199. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts +13 -0
  200. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts.map +1 -0
  201. package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts +12 -0
  202. package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts.map +1 -0
  203. package/dist/types/exports/extensions/erc4337.d.ts +14 -13
  204. package/dist/types/exports/extensions/erc4337.d.ts.map +1 -1
  205. package/dist/types/exports/extensions/permissions.d.ts +8 -8
  206. package/dist/types/exports/extensions/permissions.d.ts.map +1 -1
  207. package/dist/types/exports/extensions/thirdweb.d.ts +1 -0
  208. package/dist/types/exports/extensions/thirdweb.d.ts.map +1 -1
  209. package/dist/types/extensions/erc4337/account/addAdmin.d.ts +13 -0
  210. package/dist/types/extensions/erc4337/account/addAdmin.d.ts.map +1 -1
  211. package/dist/types/extensions/erc4337/account/addSessionKey.d.ts +13 -0
  212. package/dist/types/extensions/erc4337/account/addSessionKey.d.ts.map +1 -1
  213. package/dist/types/extensions/erc4337/account/removeAdmin.d.ts +13 -0
  214. package/dist/types/extensions/erc4337/account/removeAdmin.d.ts.map +1 -1
  215. package/dist/types/extensions/erc4337/account/removeSessionKey.d.ts +13 -0
  216. package/dist/types/extensions/erc4337/account/removeSessionKey.d.ts.map +1 -1
  217. package/dist/types/extensions/permissions/read/getAllMembers.d.ts +13 -0
  218. package/dist/types/extensions/permissions/read/getAllMembers.d.ts.map +1 -1
  219. package/dist/types/extensions/permissions/read/getRoleAdmin.d.ts +1 -0
  220. package/dist/types/extensions/permissions/read/getRoleAdmin.d.ts.map +1 -1
  221. package/dist/types/extensions/permissions/read/getRoleMember.d.ts +1 -0
  222. package/dist/types/extensions/permissions/read/getRoleMember.d.ts.map +1 -1
  223. package/dist/types/extensions/permissions/read/getRoleMemberCount.d.ts +1 -0
  224. package/dist/types/extensions/permissions/read/getRoleMemberCount.d.ts.map +1 -1
  225. package/dist/types/extensions/permissions/read/hasRole.d.ts +1 -0
  226. package/dist/types/extensions/permissions/read/hasRole.d.ts.map +1 -1
  227. package/dist/types/extensions/permissions/write/{grant.d.ts → grantRole.d.ts} +2 -1
  228. package/dist/types/extensions/permissions/write/grantRole.d.ts.map +1 -0
  229. package/dist/types/extensions/permissions/write/renounceRole.d.ts +1 -0
  230. package/dist/types/extensions/permissions/write/renounceRole.d.ts.map +1 -1
  231. package/dist/types/extensions/permissions/write/revokeRole.d.ts +1 -0
  232. package/dist/types/extensions/permissions/write/revokeRole.d.ts.map +1 -1
  233. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  234. package/dist/types/extensions/thirdweb/read/contractType.d.ts +31 -0
  235. package/dist/types/extensions/thirdweb/read/contractType.d.ts.map +1 -0
  236. package/dist/types/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.d.ts +61 -0
  237. package/dist/types/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.d.ts.map +1 -0
  238. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +18 -0
  239. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
  240. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +6 -5
  241. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  242. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +3 -0
  243. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  244. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  245. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +28 -7
  246. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  247. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts +6 -0
  248. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  249. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts +0 -1
  250. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts.map +1 -1
  251. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
  252. package/dist/types/react/web/ui/prebuilt/thirdweb/ClaimButton/index.d.ts.map +1 -1
  253. package/dist/types/react/web/ui/prebuilt/thirdweb/ClaimButton/types.d.ts +8 -5
  254. package/dist/types/react/web/ui/prebuilt/thirdweb/ClaimButton/types.d.ts.map +1 -1
  255. package/dist/types/stories/ConnectButton/hideButtons.stories.d.ts +23 -0
  256. package/dist/types/stories/ConnectButton/hideButtons.stories.d.ts.map +1 -0
  257. package/dist/types/stories/{ConnectButton.stories.d.ts → ConnectButton/themes.stories.d.ts} +3 -4
  258. package/dist/types/stories/ConnectButton/themes.stories.d.ts.map +1 -0
  259. package/dist/types/transaction/actions/send-transaction.d.ts.map +1 -1
  260. package/dist/types/transaction/actions/zksync/getEip721Domain.d.ts.map +1 -1
  261. package/dist/types/transaction/extract-error.d.ts.map +1 -1
  262. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  263. package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts +11 -0
  264. package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts.map +1 -0
  265. package/dist/types/utils/any-evm/zksync/constants.d.ts +29 -0
  266. package/dist/types/utils/any-evm/zksync/constants.d.ts.map +1 -0
  267. package/dist/types/utils/any-evm/zksync/create2Address.d.ts +9 -0
  268. package/dist/types/utils/any-evm/zksync/create2Address.d.ts.map +1 -0
  269. package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts +3 -0
  270. package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts.map +1 -0
  271. package/dist/types/utils/domains.d.ts +1 -1
  272. package/dist/types/version.d.ts +1 -1
  273. package/dist/types/wallets/smart/index.d.ts.map +1 -1
  274. package/dist/types/wallets/smart/lib/utils.d.ts +0 -2
  275. package/dist/types/wallets/smart/lib/utils.d.ts.map +1 -1
  276. package/package.json +1 -1
  277. package/src/contract/deployment/deploy-via-autofactory.ts +13 -0
  278. package/src/contract/deployment/publisher.ts +5 -0
  279. package/src/contract/deployment/utils/bootstrap.ts +56 -3
  280. package/src/contract/deployment/zksync/zkDeployContract.ts +52 -0
  281. package/src/contract/deployment/zksync/zkDeployCreate2Factory.ts +65 -0
  282. package/src/contract/deployment/zksync/zkDeployDeterministic.ts +106 -0
  283. package/src/contract/deployment/zksync/zkDeployProxy.ts +55 -0
  284. package/src/exports/extensions/erc4337.ts +35 -7
  285. package/src/exports/extensions/permissions.ts +9 -1
  286. package/src/exports/extensions/thirdweb.ts +10 -0
  287. package/src/extensions/erc4337/account/addAdmin.ts +20 -1
  288. package/src/extensions/erc4337/account/addSessionKey.ts +20 -1
  289. package/src/extensions/erc4337/account/removeAdmin.ts +20 -1
  290. package/src/extensions/erc4337/account/removeSessionKey.ts +20 -1
  291. package/src/extensions/permissions/permissions.test.ts +1 -1
  292. package/src/extensions/permissions/read/getAllMembers.ts +30 -2
  293. package/src/extensions/permissions/read/getRoleAdmin.ts +2 -0
  294. package/src/extensions/permissions/read/getRoleMember.ts +2 -0
  295. package/src/extensions/permissions/read/getRoleMemberCount.ts +2 -0
  296. package/src/extensions/permissions/read/hasRole.ts +2 -0
  297. package/src/extensions/permissions/write/{grant.ts → grantRole.ts} +2 -0
  298. package/src/extensions/permissions/write/renounceRole.ts +2 -0
  299. package/src/extensions/permissions/write/revokeRole.ts +2 -0
  300. package/src/extensions/prebuilts/deploy-published.ts +58 -26
  301. package/src/extensions/thirdweb/read/contractType.ts +46 -0
  302. package/src/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.ts +55 -0
  303. package/src/react/core/hooks/connection/ConnectButtonProps.ts +21 -0
  304. package/src/react/web/hooks/transaction/useSendTransaction.tsx +6 -5
  305. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +3 -0
  306. package/src/react/web/ui/ConnectWallet/Details.tsx +108 -73
  307. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +37 -29
  308. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +73 -33
  309. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +37 -2
  310. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.tsx +5 -10
  311. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +27 -20
  312. package/src/react/web/ui/prebuilt/thirdweb/ClaimButton/index.tsx +8 -4
  313. package/src/react/web/ui/prebuilt/thirdweb/ClaimButton/types.ts +8 -5
  314. package/src/stories/ConnectButton/hideButtons.stories.tsx +83 -0
  315. package/src/stories/{ConnectButton.stories.ts → ConnectButton/themes.stories.tsx} +3 -4
  316. package/src/transaction/actions/send-transaction.ts +11 -0
  317. package/src/transaction/actions/to-serializable-transaction.test.ts +3 -4
  318. package/src/transaction/actions/zksync/getEip721Domain.ts +4 -2
  319. package/src/transaction/actions/zksync/send-eip712-transaction.test.ts +27 -2
  320. package/src/transaction/extract-error.ts +7 -2
  321. package/src/utils/abi/encode-abi-parameters.test.ts +1 -1
  322. package/src/utils/abi/encodeAbiParameters.ts +1 -1
  323. package/src/utils/any-evm/deploy-metadata.ts +11 -2
  324. package/src/utils/any-evm/zksync/computeDeploymentAddress.ts +24 -0
  325. package/src/utils/any-evm/zksync/constants.ts +49 -0
  326. package/src/utils/any-evm/zksync/create2Address.ts +26 -0
  327. package/src/utils/any-evm/zksync/isZkSyncChain.ts +10 -0
  328. package/src/utils/domains.ts +1 -1
  329. package/src/version.ts +1 -1
  330. package/src/wallets/smart/index.ts +2 -3
  331. package/src/wallets/smart/lib/utils.ts +0 -10
  332. package/dist/cjs/extensions/permissions/write/grant.js.map +0 -1
  333. package/dist/cjs/stories/ConnectButton.stories.js.map +0 -1
  334. package/dist/esm/extensions/permissions/write/grant.js.map +0 -1
  335. package/dist/esm/stories/ConnectButton.stories.js.map +0 -1
  336. package/dist/types/extensions/permissions/write/grant.d.ts.map +0 -1
  337. package/dist/types/stories/ConnectButton.stories.d.ts.map +0 -1
@@ -15,25 +15,32 @@ import {
15
15
  } from "../fiat/currencies.js";
16
16
  import type { SupportedChainAndTokens } from "../swap/useSwapSupportedChains.js";
17
17
 
18
- // handle states for token and chain selection
18
+ type SupportedSourcesInputData = {
19
+ chain: Chain;
20
+ tokens: {
21
+ address: string;
22
+ buyWithCryptoEnabled: boolean;
23
+ buyWithFiatEnabled: boolean;
24
+ name: string;
25
+ symbol: string;
26
+ }[];
27
+ };
19
28
 
20
- export function useUISelectionStates(options: {
29
+ // handle states for token and chain selection
30
+ export function useToTokenSelectionStates(options: {
21
31
  payOptions: PayUIOptions;
22
32
  supportedDestinations: SupportedChainAndTokens;
23
33
  }) {
24
- const activeChain = useActiveWalletChain();
25
34
  const { payOptions, supportedDestinations } = options;
26
-
35
+ // --------------------------------------------------------------------------
27
36
  // buy token amount ---------------------------------------------------------
28
37
  // NOTE - for transaction / direct payment modes, the token amount is set when the user tap continue
29
38
  const prefillBuy = (payOptions as FundWalletOptions)?.prefillBuy;
39
+ const activeChain = useActiveWalletChain();
30
40
  const initialTokenAmount = prefillBuy?.amount || "";
31
-
32
41
  const [tokenAmount, setTokenAmount] = useState<string>(initialTokenAmount);
33
42
  const deferredTokenAmount = useDebouncedValue(tokenAmount, 300);
34
43
 
35
- // --------------------------------------------------------------------------
36
-
37
44
  // Destination chain and token selection -----------------------------------
38
45
  const [toChain, setToChain] = useState<Chain>(
39
46
  // use prefill chain if available
@@ -52,27 +59,73 @@ export function useUISelectionStates(options: {
52
59
  (payOptions.mode === "direct_payment" && payOptions.paymentInfo.token) ||
53
60
  NATIVE_TOKEN,
54
61
  );
62
+
63
+ return {
64
+ toChain,
65
+ setToChain,
66
+ toToken,
67
+ setToToken,
68
+ tokenAmount,
69
+ setTokenAmount,
70
+ deferredTokenAmount,
71
+ };
72
+ }
73
+
74
+ export function useFromTokenSelectionStates(options: {
75
+ payOptions: PayUIOptions;
76
+ supportedSources: SupportedSourcesInputData[];
77
+ }) {
78
+ const { payOptions, supportedSources } = options;
79
+
55
80
  // --------------------------------------------------------------------------
81
+ const firstSupportedSource = supportedSources?.length
82
+ ? supportedSources[0]
83
+ : undefined;
56
84
 
57
85
  // Source token and chain selection ---------------------------------------------------
58
- const [fromChain, setFromChain] = useState<Chain>(
59
- // use prefill chain if available
86
+ const [fromChain_, setFromChain] = useState<Chain>();
87
+
88
+ // use prefill chain if available
89
+ const fromChainDevSpecified =
60
90
  (payOptions.buyWithCrypto !== false &&
61
91
  payOptions.buyWithCrypto?.prefillSource?.chain) ||
62
- (payOptions.mode === "transaction" && payOptions.transaction?.chain) ||
63
- (payOptions.mode === "direct_payment" && payOptions.paymentInfo?.chain) ||
64
- // default to polygon
65
- polygon,
66
- );
92
+ (payOptions.mode === "transaction" && payOptions.transaction?.chain) ||
93
+ (payOptions.mode === "direct_payment" && payOptions.paymentInfo?.chain);
94
+
95
+ const fromChainFromApi = firstSupportedSource?.chain
96
+ ? firstSupportedSource.chain
97
+ : undefined;
67
98
 
68
- const [fromToken, setFromToken] = useState<ERC20OrNativeToken>(
69
- // use prefill token if available
99
+ const fromChain =
100
+ fromChain_ || fromChainDevSpecified || fromChainFromApi || polygon;
101
+
102
+ const [fromToken_, setFromToken] = useState<ERC20OrNativeToken>();
103
+
104
+ // use prefill token if available
105
+ const fromTokenDevSpecified =
70
106
  (payOptions.buyWithCrypto !== false &&
71
107
  payOptions.buyWithCrypto?.prefillSource?.token) ||
72
- (payOptions.mode === "direct_payment" && payOptions.paymentInfo.token) ||
73
- // default to native token
74
- NATIVE_TOKEN,
75
- );
108
+ (payOptions.mode === "direct_payment" && payOptions.paymentInfo.token);
109
+
110
+ // May be updated in the future
111
+ const fromTokenFromApi = NATIVE_TOKEN;
112
+
113
+ // supported tokens query in here
114
+ const fromToken =
115
+ fromToken_ || fromTokenDevSpecified || fromTokenFromApi || NATIVE_TOKEN;
116
+
117
+ return {
118
+ fromChain,
119
+ setFromChain,
120
+ fromToken,
121
+ setFromToken,
122
+ };
123
+ }
124
+
125
+ export function useFiatCurrencySelectionStates(options: {
126
+ payOptions: PayUIOptions;
127
+ }) {
128
+ const { payOptions } = options;
76
129
 
77
130
  // --------------------------------------------------------------------------
78
131
  const devSpecifiedDefaultCurrency =
@@ -89,20 +142,7 @@ export function useUISelectionStates(options: {
89
142
  );
90
143
 
91
144
  return {
92
- tokenAmount,
93
- setTokenAmount,
94
-
95
- toChain,
96
- setToChain,
97
- deferredTokenAmount,
98
- fromChain,
99
- setFromChain,
100
- toToken,
101
- setToToken,
102
- fromToken,
103
- setFromToken,
104
145
  selectedCurrency,
105
-
106
146
  setSelectedCurrency,
107
147
  };
108
148
  }
@@ -27,7 +27,6 @@ import type { ERC20OrNativeToken } from "../../nativeToken.js";
27
27
  import { PayTokenIcon } from "../PayTokenIcon.js";
28
28
  import { Step } from "../Stepper.js";
29
29
  import type { PayerInfo } from "../types.js";
30
- import { SwapFees } from "./Fees.js";
31
30
  import { formatSeconds } from "./formatSeconds.js";
32
31
  import { addPendingTx } from "./pendingSwapTx.js";
33
32
 
@@ -111,7 +110,7 @@ export function SwapConfirmationScreen(props: {
111
110
 
112
111
  {/* Fees */}
113
112
  <ConfirmItem label="Fees">
114
- <SwapFees quote={props.quote} align="right" />
113
+ <SwapFeesRightAligned quote={props.quote} />
115
114
  </ConfirmItem>
116
115
 
117
116
  {/* Time */}
@@ -329,3 +328,39 @@ function ConfirmItem(props: {
329
328
  </>
330
329
  );
331
330
  }
331
+
332
+ /**
333
+ * @internal
334
+ */
335
+ export function SwapFeesRightAligned(props: {
336
+ quote: BuyWithCryptoQuote;
337
+ }) {
338
+ return (
339
+ <Container
340
+ flex="column"
341
+ gap="xs"
342
+ style={{
343
+ alignItems: "flex-end",
344
+ }}
345
+ >
346
+ {props.quote.processingFees.map((fee) => {
347
+ const feeAmount = formatNumber(Number(fee.amount), 6);
348
+ return (
349
+ <Container
350
+ key={`${fee.token.chainId}_${fee.token.tokenAddress}_${feeAmount}`}
351
+ flex="row"
352
+ gap="xxs"
353
+ >
354
+ <Text color="primaryText" size="sm">
355
+ {feeAmount === 0 ? "~" : ""}
356
+ {feeAmount} {fee.token.symbol}
357
+ </Text>
358
+ <Text color="secondaryText" size="sm">
359
+ (${(fee.amountUSDCents / 100).toFixed(2)})
360
+ </Text>
361
+ </Container>
362
+ );
363
+ })}
364
+ </Container>
365
+ );
366
+ }
@@ -10,14 +10,13 @@ import { Text } from "../../../../components/text.js";
10
10
  */
11
11
  export function SwapFees(props: {
12
12
  quote: BuyWithCryptoQuote;
13
- align: "left" | "right";
14
13
  }) {
15
14
  return (
16
15
  <Container
17
16
  flex="column"
18
17
  gap="xs"
19
18
  style={{
20
- alignItems: props.align === "right" ? "flex-end" : "flex-start",
19
+ alignItems: "flex-start",
21
20
  }}
22
21
  >
23
22
  {props.quote.processingFees.map((fee) => {
@@ -25,19 +24,15 @@ export function SwapFees(props: {
25
24
  return (
26
25
  <Container
27
26
  key={`${fee.token.chainId}_${fee.token.tokenAddress}_${feeAmount}`}
28
- flex="column"
27
+ flex="row"
29
28
  gap="xxs"
30
29
  >
31
- <Text color="primaryText" size="sm" style={{ textAlign: "right" }}>
30
+ <Text color="primaryText" size="sm">
32
31
  {feeAmount === 0 ? "~" : ""}
33
32
  {feeAmount} {fee.token.symbol}
34
33
  </Text>
35
- <Text
36
- color="secondaryText"
37
- size="xs"
38
- style={{ textAlign: "right" }}
39
- >
40
- ${(fee.amountUSDCents / 100).toFixed(2)}
34
+ <Text color="secondaryText" size="sm">
35
+ (${(fee.amountUSDCents / 100).toFixed(2)})
41
36
  </Text>
42
37
  </Container>
43
38
  );
@@ -1,4 +1,4 @@
1
- import { CheckCircledIcon, CrossCircledIcon } from "@radix-ui/react-icons";
1
+ import { CheckCircledIcon } from "@radix-ui/react-icons";
2
2
  import { useState } from "react";
3
3
  import type { Chain } from "../../../../../../../chains/types.js";
4
4
  import type { ThirdwebClient } from "../../../../../../../client/client.js";
@@ -59,9 +59,12 @@ export function TransferConfirmationScreen(
59
59
  const [step, setStep] = useState<"approve" | "transfer" | "execute">(
60
60
  "transfer",
61
61
  );
62
- const [status, setStatus] = useState<"idle" | "pending" | "error" | "done">(
63
- "idle",
64
- );
62
+ const [status, setStatus] = useState<
63
+ | { id: "idle" }
64
+ | { id: "pending" }
65
+ | { id: "error"; error: string }
66
+ | { id: "done" }
67
+ >({ id: "idle" });
65
68
  const { symbol } = useChainSymbol(chain);
66
69
 
67
70
  return (
@@ -156,19 +159,20 @@ export function TransferConfirmationScreen(
156
159
  </>
157
160
  )}
158
161
 
159
- {status === "error" && (
162
+ {status.id === "error" && (
160
163
  <>
161
164
  <Container flex="row" gap="xs" center="both" color="danger">
162
- <CrossCircledIcon width={iconSize.sm} height={iconSize.sm} />
163
- <Text color="danger" size="sm">
164
- {step === "transfer" ? "Failed to Transfer" : "Failed to Execute"}
165
+ <Text color="danger" size="sm" style={{ textAlign: "center" }}>
166
+ {step === "transfer"
167
+ ? `${status.error || "Failed to Transfer"}`
168
+ : "Failed to Execute"}
165
169
  </Text>
166
170
  </Container>
167
171
  <Spacer y="md" />
168
172
  </>
169
173
  )}
170
174
 
171
- {!transactionMode && step === "execute" && status === "done" && (
175
+ {!transactionMode && step === "execute" && status.id === "done" && (
172
176
  <>
173
177
  <Container flex="row" gap="xs" center="both" color="success">
174
178
  <CheckCircledIcon width={iconSize.sm} height={iconSize.sm} />
@@ -193,7 +197,7 @@ export function TransferConfirmationScreen(
193
197
  <Button
194
198
  variant="accent"
195
199
  fullWidth
196
- disabled={status === "pending"}
200
+ disabled={status.id === "pending"}
197
201
  onClick={async () => {
198
202
  if (step === "execute") {
199
203
  onDone();
@@ -201,7 +205,7 @@ export function TransferConfirmationScreen(
201
205
  }
202
206
 
203
207
  try {
204
- setStatus("pending");
208
+ setStatus({ id: "pending" });
205
209
 
206
210
  // TRANSACTION MODE = transfer funds to another one of your wallets before executing the tx
207
211
  if (transactionMode) {
@@ -227,7 +231,7 @@ export function TransferConfirmationScreen(
227
231
  });
228
232
  // switch to execute step
229
233
  setStep("execute");
230
- setStatus("idle");
234
+ setStatus({ id: "idle" });
231
235
  } else {
232
236
  const transferResponse = await getBuyWithCryptoTransfer({
233
237
  client,
@@ -241,7 +245,6 @@ export function TransferConfirmationScreen(
241
245
  purchaseData: undefined, // TODO (pay): add purchase data
242
246
  });
243
247
 
244
- console.log("transferResponse", transferResponse);
245
248
  if (transferResponse.approval) {
246
249
  setStep("approve");
247
250
  // approve the transfer
@@ -260,21 +263,25 @@ export function TransferConfirmationScreen(
260
263
  });
261
264
  // switches to the status polling screen
262
265
  setTransactionHash(tx.transactionHash);
263
- setStatus("idle");
266
+ setStatus({ id: "idle" });
264
267
  }
265
- } catch (e) {
268
+ // biome-ignore lint/suspicious/noExplicitAny: catch multiple errors
269
+ } catch (e: any) {
266
270
  console.error(e);
267
- setStatus("error");
271
+ setStatus({
272
+ id: "error",
273
+ error: "error" in e ? e.error?.message : e?.message,
274
+ });
268
275
  }
269
276
  }}
270
277
  gap="xs"
271
278
  >
272
- {step === "execute" && (status === "done" ? "Done" : "Continue")}
279
+ {step === "execute" && (status.id === "done" ? "Done" : "Continue")}
273
280
  {step === "transfer" &&
274
- (status === "pending" ? "Confirming" : "Confirm")}
281
+ (status.id === "pending" ? "Confirming" : "Confirm")}
275
282
  {step === "approve" &&
276
- (status === "pending" ? "Approving" : "Approve")}
277
- {status === "pending" && (
283
+ (status.id === "pending" ? "Approving" : "Approve")}
284
+ {status.id === "pending" && (
278
285
  <Spinner size="sm" color="accentButtonText" />
279
286
  )}
280
287
  </Button>
@@ -232,8 +232,9 @@ export async function getERC721ClaimTo({
232
232
 
233
233
  return claimTo({
234
234
  contract,
235
- to: account?.address || "",
235
+ to: claimParams.to || account?.address || "",
236
236
  quantity: claimParams.quantity,
237
+ from: claimParams.from,
237
238
  });
238
239
  }
239
240
 
@@ -255,9 +256,10 @@ export async function getERC1155ClaimTo({
255
256
 
256
257
  return claimTo({
257
258
  contract,
258
- to: account?.address || "",
259
+ to: claimParams.to || account?.address || "",
259
260
  quantity: claimParams.quantity,
260
261
  tokenId: claimParams.tokenId,
262
+ from: claimParams.from,
261
263
  });
262
264
  }
263
265
 
@@ -282,15 +284,17 @@ export async function getERC20ClaimTo({
282
284
  if ("quantity" in claimParams) {
283
285
  return claimTo({
284
286
  contract,
285
- to: account?.address || "",
287
+ to: claimParams.to || account?.address || "",
286
288
  quantity: claimParams.quantity,
289
+ from: claimParams.from,
287
290
  });
288
291
  }
289
292
  if ("quantityInWei" in claimParams) {
290
293
  return claimTo({
291
294
  contract,
292
- to: account?.address || "",
295
+ to: claimParams.to || account?.address || "",
293
296
  quantityInWei: claimParams.quantityInWei,
297
+ from: claimParams.from,
294
298
  });
295
299
  }
296
300
  throw new Error("Missing quantity or quantityInWei");
@@ -1,20 +1,23 @@
1
1
  import type { Chain } from "../../../../../../chains/types.js";
2
2
  import type { ThirdwebClient } from "../../../../../../client/client.js";
3
+ import type { ClaimToParams as ClaimToParams721 } from "../../../../../../extensions/erc721/drops/write/claimTo.js";
4
+ import type { ClaimToParams as ClaimToParams1155 } from "../../../../../../extensions/erc1155/drops/write/claimTo.js";
3
5
  import type { TransactionButtonProps } from "../../../../../core/hooks/transaction/transaction-button-utils.js";
4
6
 
5
- export type Erc721ClaimParams = {
7
+ export type Erc721ClaimParams = Omit<ClaimToParams721, "to"> & {
6
8
  type: "ERC721";
7
- quantity: bigint;
9
+ to?: string;
8
10
  };
9
11
 
10
- export type Erc1155ClaimParams = {
12
+ export type Erc1155ClaimParams = Omit<ClaimToParams1155, "to"> & {
11
13
  type: "ERC1155";
12
- quantity: bigint;
13
- tokenId: bigint;
14
+ to?: string;
14
15
  };
15
16
 
16
17
  export type Erc20ClaimParams = {
17
18
  type: "ERC20";
19
+ to?: string;
20
+ from?: string;
18
21
  } & ({ quantityInWei: bigint } | { quantity: string });
19
22
 
20
23
  export type ClaimParams =
@@ -0,0 +1,83 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { ConnectButton } from "../../react/web/ui/ConnectWallet/ConnectButton.js";
3
+ import { storyClient } from "../utils.js";
4
+
5
+ const meta = {
6
+ title: "Connect/ConnectButton/hide buttons",
7
+ component: ConnectButton,
8
+ parameters: {
9
+ layout: "centered",
10
+ },
11
+ args: {
12
+ client: storyClient,
13
+ },
14
+ } satisfies Meta<typeof ConnectButton>;
15
+
16
+ type Story = StoryObj<typeof meta>;
17
+
18
+ export const Default: Story = {
19
+ args: {},
20
+ };
21
+
22
+ export const HideSend: Story = {
23
+ args: {
24
+ detailsModal: {
25
+ hideSendFunds: true,
26
+ },
27
+ },
28
+ };
29
+
30
+ export const HideReceive: Story = {
31
+ args: {
32
+ detailsModal: {
33
+ hideReceiveFunds: true,
34
+ },
35
+ },
36
+ };
37
+
38
+ export const HideBuy: Story = {
39
+ args: {
40
+ detailsModal: {
41
+ hideBuyFunds: true,
42
+ },
43
+ },
44
+ };
45
+
46
+ export const HideSendReceive: Story = {
47
+ args: {
48
+ detailsModal: {
49
+ hideSendFunds: true,
50
+ hideReceiveFunds: true,
51
+ },
52
+ },
53
+ };
54
+
55
+ export const HideSendBuy: Story = {
56
+ args: {
57
+ detailsModal: {
58
+ hideSendFunds: true,
59
+ hideBuyFunds: true,
60
+ },
61
+ },
62
+ };
63
+
64
+ export const HideReceiveBuy: Story = {
65
+ args: {
66
+ detailsModal: {
67
+ hideReceiveFunds: true,
68
+ hideBuyFunds: true,
69
+ },
70
+ },
71
+ };
72
+
73
+ export const HideSendReceiveBuy: Story = {
74
+ args: {
75
+ detailsModal: {
76
+ hideSendFunds: true,
77
+ hideReceiveFunds: true,
78
+ hideBuyFunds: true,
79
+ },
80
+ },
81
+ };
82
+
83
+ export default meta;
@@ -1,14 +1,13 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react";
2
- import { ConnectButton } from "../react/web/ui/ConnectWallet/ConnectButton.js";
3
- import { storyClient } from "./utils.js";
2
+ import { ConnectButton } from "../../react/web/ui/ConnectWallet/ConnectButton.js";
3
+ import { storyClient } from "../utils.js";
4
4
 
5
5
  const meta = {
6
- title: "Connect/ConnectButton",
6
+ title: "Connect/ConnectButton/themes",
7
7
  component: ConnectButton,
8
8
  parameters: {
9
9
  layout: "centered",
10
10
  },
11
- tags: ["autodocs"],
12
11
  args: {
13
12
  client: storyClient,
14
13
  },
@@ -144,6 +144,17 @@ export async function sendTransaction(
144
144
  await account.onTransactionRequested(transaction);
145
145
  }
146
146
 
147
+ // if zksync transaction params are set, send with eip712
148
+ if (options.transaction.eip712) {
149
+ const { sendEip712Transaction } = await import(
150
+ "./zksync/send-eip712-transaction.js"
151
+ );
152
+ return sendEip712Transaction({
153
+ account,
154
+ transaction,
155
+ });
156
+ }
157
+
147
158
  const serializableTransaction = await toSerializableTransaction({
148
159
  transaction: transaction,
149
160
  from: account.address,
@@ -3,9 +3,7 @@ import { beforeAll, describe, expect, test } from "vitest";
3
3
  import { TEST_WALLET_B } from "../../../test/src/addresses.js";
4
4
  import { FORKED_ETHEREUM_CHAIN } from "../../../test/src/chains.js";
5
5
  import { TEST_CLIENT } from "../../../test/src/test-clients.js";
6
-
7
6
  import { arbitrumSepolia } from "../../chains/chain-definitions/arbitrum-sepolia.js";
8
- import { ZERO_ADDRESS } from "../../constants/addresses.js";
9
7
  import { toWei } from "../../utils/units.js";
10
8
  import {
11
9
  type PreparedTransaction,
@@ -403,15 +401,16 @@ describe.runIf(process.env.TW_SECRET_KEY)("toSerializableTransaction", () => {
403
401
  });
404
402
  });
405
403
 
404
+ // skipping this test for now, it fails when batching eth_estimateGas with eth_maxFeePerGas together on arbitrumSepolia
405
+ // works if you run it individually, but when run in parallel the batching kicks in and it fails
406
406
  test("should respect 0 maxPriorityFeePerGas chains", async () => {
407
407
  const serializableTransaction = await toSerializableTransaction({
408
408
  transaction: prepareTransaction({
409
409
  to: TEST_WALLET_B,
410
410
  chain: arbitrumSepolia,
411
- value: toWei("0.000001"),
411
+ value: 0n,
412
412
  client: TEST_CLIENT,
413
413
  }),
414
- from: ZERO_ADDRESS,
415
414
  });
416
415
 
417
416
  // gasPrice should be undefined for arbSepolia which has 0 maxPriorityFeePerGas
@@ -1,5 +1,7 @@
1
1
  import type { TransactionSerializable } from "viem";
2
+ import { hashBytecode } from "viem/zksync";
2
3
  import type { Address } from "../../../utils/address.js";
4
+ import { toHex } from "../../../utils/encoding/hex.js";
3
5
  import type {
4
6
  EIP712SerializedTransaction,
5
7
  EIP712TransactionOptions,
@@ -56,6 +58,7 @@ function transactionToMessage(
56
58
  paymasterInput,
57
59
  gasPerPubdata,
58
60
  data,
61
+ factoryDeps,
59
62
  } = transaction;
60
63
 
61
64
  return {
@@ -70,8 +73,7 @@ function transactionToMessage(
70
73
  nonce: nonce ? BigInt(nonce) : 0n,
71
74
  value: value ?? 0n,
72
75
  data: data ? data : "0x0",
73
- // TODO suport factoryDeps
74
- factoryDeps: [],
76
+ factoryDeps: factoryDeps?.map((dep) => toHex(hashBytecode(dep))) ?? [],
75
77
  paymasterInput: paymasterInput ? paymasterInput : "0x",
76
78
  };
77
79
  }
@@ -4,7 +4,8 @@ import {
4
4
  TEST_ACCOUNT_A,
5
5
  TEST_ACCOUNT_B,
6
6
  } from "../../../../test/src/test-wallets.js";
7
- import { defineChain } from "../../../chains/utils.js";
7
+ import { zkSyncSepolia } from "../../../chains/chain-definitions/zksync-sepolia.js";
8
+ import { deployPublishedContract } from "../../../extensions/prebuilts/deploy-published.js";
8
9
  import { prepareTransaction } from "../../prepare-transaction.js";
9
10
  import { sendEip712Transaction } from "./send-eip712-transaction.js";
10
11
 
@@ -12,7 +13,7 @@ describe("sendEip712Transaction", () => {
12
13
  // re-enable for testing, but disable for CI since it requires testnet funds
13
14
  it.skip("should send eip712 transaction", async () => {
14
15
  const transaction = prepareTransaction({
15
- chain: defineChain(300),
16
+ chain: zkSyncSepolia, // TODO make zksync fork chain work
16
17
  client: TEST_CLIENT,
17
18
  value: 0n,
18
19
  to: TEST_ACCOUNT_B.address,
@@ -28,4 +29,28 @@ describe("sendEip712Transaction", () => {
28
29
  });
29
30
  expect(res.transactionHash.length).toBe(66);
30
31
  });
32
+
33
+ it.skip("should deploy a published autofactory contract on zksync", async () => {
34
+ const address = await deployPublishedContract({
35
+ client: TEST_CLIENT,
36
+ chain: zkSyncSepolia, // TODO make zksync fork chain work
37
+ account: TEST_ACCOUNT_A,
38
+ contractId: "DropERC1155",
39
+ contractParams: [
40
+ TEST_ACCOUNT_A.address, // defaultAdmin
41
+ "test", // name
42
+ "", // symbol
43
+ "", // contractURI
44
+ [], // trustedForwarders
45
+ TEST_ACCOUNT_A.address, // saleRecipient
46
+ TEST_ACCOUNT_A.address, // royaltyRecipient
47
+ 0n, // royaltyBps
48
+ 0n, // platformFeeBps
49
+ TEST_ACCOUNT_A.address, // platformFeeRecipient
50
+ ],
51
+ });
52
+ console.log("deployed address", address);
53
+ expect(address).toBeDefined();
54
+ expect(address.length).toBe(42);
55
+ });
31
56
  });