thirdweb 5.50.1-nightly-b407bc9fd8379bf304ffb963f8cb8e64493914b5-20240904000351 → 5.51.0-nightly-f9c351c22d9c869770dad13332f9c23d8cb84ed7-20240905000555

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 (388) 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/erc721.js +25 -1
  18. package/dist/cjs/exports/extensions/erc721.js.map +1 -1
  19. package/dist/cjs/exports/extensions/permissions.js +11 -3
  20. package/dist/cjs/exports/extensions/permissions.js.map +1 -1
  21. package/dist/cjs/exports/extensions/thirdweb.js +9 -2
  22. package/dist/cjs/exports/extensions/thirdweb.js.map +1 -1
  23. package/dist/cjs/extensions/erc4337/account/addAdmin.js +16 -0
  24. package/dist/cjs/extensions/erc4337/account/addAdmin.js.map +1 -1
  25. package/dist/cjs/extensions/erc4337/account/addSessionKey.js +16 -0
  26. package/dist/cjs/extensions/erc4337/account/addSessionKey.js.map +1 -1
  27. package/dist/cjs/extensions/erc4337/account/removeAdmin.js +16 -0
  28. package/dist/cjs/extensions/erc4337/account/removeAdmin.js.map +1 -1
  29. package/dist/cjs/extensions/erc4337/account/removeSessionKey.js +16 -0
  30. package/dist/cjs/extensions/erc4337/account/removeSessionKey.js.map +1 -1
  31. package/dist/cjs/extensions/erc721/__generated__/IDrop/read/claimCondition.js +76 -0
  32. package/dist/cjs/extensions/erc721/__generated__/IDrop/read/claimCondition.js.map +1 -0
  33. package/dist/cjs/extensions/erc721/drops/read/getActiveClaimCondition.js +28 -6
  34. package/dist/cjs/extensions/erc721/drops/read/getActiveClaimCondition.js.map +1 -1
  35. package/dist/cjs/extensions/erc721/drops/read/getClaimConditions.js +73 -0
  36. package/dist/cjs/extensions/erc721/drops/read/getClaimConditions.js.map +1 -0
  37. package/dist/cjs/extensions/erc721/drops/write/claimTo.js +19 -0
  38. package/dist/cjs/extensions/erc721/drops/write/claimTo.js.map +1 -1
  39. package/dist/cjs/extensions/erc721/drops/write/resetClaimEligibility.js +56 -0
  40. package/dist/cjs/extensions/erc721/drops/write/resetClaimEligibility.js.map +1 -0
  41. package/dist/cjs/extensions/erc721/drops/write/setClaimConditions.js +24 -0
  42. package/dist/cjs/extensions/erc721/drops/write/setClaimConditions.js.map +1 -1
  43. package/dist/cjs/extensions/erc721/write/lazyMint.js +20 -2
  44. package/dist/cjs/extensions/erc721/write/lazyMint.js.map +1 -1
  45. package/dist/cjs/extensions/permissions/read/getAllMembers.js +18 -0
  46. package/dist/cjs/extensions/permissions/read/getAllMembers.js.map +1 -1
  47. package/dist/cjs/extensions/permissions/read/getRoleAdmin.js +3 -0
  48. package/dist/cjs/extensions/permissions/read/getRoleAdmin.js.map +1 -1
  49. package/dist/cjs/extensions/permissions/read/getRoleMember.js +3 -0
  50. package/dist/cjs/extensions/permissions/read/getRoleMember.js.map +1 -1
  51. package/dist/cjs/extensions/permissions/read/getRoleMemberCount.js +3 -0
  52. package/dist/cjs/extensions/permissions/read/getRoleMemberCount.js.map +1 -1
  53. package/dist/cjs/extensions/permissions/read/hasRole.js +3 -0
  54. package/dist/cjs/extensions/permissions/read/hasRole.js.map +1 -1
  55. package/dist/cjs/extensions/permissions/write/{grant.js → grantRole.js} +4 -1
  56. package/dist/cjs/extensions/permissions/write/grantRole.js.map +1 -0
  57. package/dist/cjs/extensions/permissions/write/renounceRole.js +3 -0
  58. package/dist/cjs/extensions/permissions/write/renounceRole.js.map +1 -1
  59. package/dist/cjs/extensions/permissions/write/revokeRole.js +3 -0
  60. package/dist/cjs/extensions/permissions/write/revokeRole.js.map +1 -1
  61. package/dist/cjs/extensions/prebuilts/deploy-published.js +39 -13
  62. package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
  63. package/dist/cjs/extensions/thirdweb/read/contractType.js +49 -0
  64. package/dist/cjs/extensions/thirdweb/read/contractType.js.map +1 -0
  65. package/dist/cjs/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js +33 -0
  66. package/dist/cjs/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js.map +1 -0
  67. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +6 -5
  68. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  69. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +3 -0
  70. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  71. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +37 -30
  72. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  73. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +22 -17
  74. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  75. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +44 -25
  76. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  77. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +13 -2
  78. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  79. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +2 -2
  80. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
  81. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +16 -11
  82. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  83. package/dist/cjs/stories/ConnectButton/hideButtons.stories.js +74 -0
  84. package/dist/cjs/stories/ConnectButton/hideButtons.stories.js.map +1 -0
  85. package/dist/cjs/stories/{ConnectButton.stories.js → ConnectButton/themes.stories.js} +4 -5
  86. package/dist/cjs/stories/ConnectButton/themes.stories.js.map +1 -0
  87. package/dist/cjs/transaction/actions/send-transaction.js +8 -0
  88. package/dist/cjs/transaction/actions/send-transaction.js.map +1 -1
  89. package/dist/cjs/transaction/actions/zksync/getEip721Domain.js +4 -3
  90. package/dist/cjs/transaction/actions/zksync/getEip721Domain.js.map +1 -1
  91. package/dist/cjs/transaction/extract-error.js +4 -2
  92. package/dist/cjs/transaction/extract-error.js.map +1 -1
  93. package/dist/cjs/utils/abi/encodeAbiParameters.js +1 -1
  94. package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  95. package/dist/cjs/utils/any-evm/deploy-metadata.js +9 -2
  96. package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
  97. package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js +15 -0
  98. package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -0
  99. package/dist/cjs/utils/any-evm/zksync/constants.js +43 -0
  100. package/dist/cjs/utils/any-evm/zksync/constants.js.map +1 -0
  101. package/dist/cjs/utils/any-evm/zksync/create2Address.js +21 -0
  102. package/dist/cjs/utils/any-evm/zksync/create2Address.js.map +1 -0
  103. package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js +10 -0
  104. package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js.map +1 -0
  105. package/dist/cjs/utils/extensions/drops/get-claim-params.js +3 -3
  106. package/dist/cjs/version.js +1 -1
  107. package/dist/cjs/wallets/smart/index.js +2 -2
  108. package/dist/cjs/wallets/smart/index.js.map +1 -1
  109. package/dist/cjs/wallets/smart/lib/utils.js +0 -7
  110. package/dist/cjs/wallets/smart/lib/utils.js.map +1 -1
  111. package/dist/esm/contract/deployment/deploy-via-autofactory.js +11 -0
  112. package/dist/esm/contract/deployment/deploy-via-autofactory.js.map +1 -1
  113. package/dist/esm/contract/deployment/publisher.js +3 -0
  114. package/dist/esm/contract/deployment/publisher.js.map +1 -1
  115. package/dist/esm/contract/deployment/utils/bootstrap.js +41 -1
  116. package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
  117. package/dist/esm/contract/deployment/zksync/zkDeployContract.js +40 -0
  118. package/dist/esm/contract/deployment/zksync/zkDeployContract.js.map +1 -0
  119. package/dist/esm/contract/deployment/zksync/zkDeployCreate2Factory.js +52 -0
  120. package/dist/esm/contract/deployment/zksync/zkDeployCreate2Factory.js.map +1 -0
  121. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js +83 -0
  122. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -0
  123. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js +38 -0
  124. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js.map +1 -0
  125. package/dist/esm/exports/extensions/erc4337.js +14 -13
  126. package/dist/esm/exports/extensions/erc4337.js.map +1 -1
  127. package/dist/esm/exports/extensions/erc721.js +17 -6
  128. package/dist/esm/exports/extensions/erc721.js.map +1 -1
  129. package/dist/esm/exports/extensions/permissions.js +8 -8
  130. package/dist/esm/exports/extensions/permissions.js.map +1 -1
  131. package/dist/esm/exports/extensions/thirdweb.js +5 -0
  132. package/dist/esm/exports/extensions/thirdweb.js.map +1 -1
  133. package/dist/esm/extensions/erc4337/account/addAdmin.js +16 -1
  134. package/dist/esm/extensions/erc4337/account/addAdmin.js.map +1 -1
  135. package/dist/esm/extensions/erc4337/account/addSessionKey.js +16 -1
  136. package/dist/esm/extensions/erc4337/account/addSessionKey.js.map +1 -1
  137. package/dist/esm/extensions/erc4337/account/removeAdmin.js +16 -1
  138. package/dist/esm/extensions/erc4337/account/removeAdmin.js.map +1 -1
  139. package/dist/esm/extensions/erc4337/account/removeSessionKey.js +16 -1
  140. package/dist/esm/extensions/erc4337/account/removeSessionKey.js.map +1 -1
  141. package/dist/esm/extensions/erc721/__generated__/IDrop/read/claimCondition.js +70 -0
  142. package/dist/esm/extensions/erc721/__generated__/IDrop/read/claimCondition.js.map +1 -0
  143. package/dist/esm/extensions/erc721/drops/read/getActiveClaimCondition.js +27 -6
  144. package/dist/esm/extensions/erc721/drops/read/getActiveClaimCondition.js.map +1 -1
  145. package/dist/esm/extensions/erc721/drops/read/getClaimConditions.js +69 -0
  146. package/dist/esm/extensions/erc721/drops/read/getClaimConditions.js.map +1 -0
  147. package/dist/esm/extensions/erc721/drops/write/claimTo.js +19 -1
  148. package/dist/esm/extensions/erc721/drops/write/claimTo.js.map +1 -1
  149. package/dist/esm/extensions/erc721/drops/write/resetClaimEligibility.js +52 -0
  150. package/dist/esm/extensions/erc721/drops/write/resetClaimEligibility.js.map +1 -0
  151. package/dist/esm/extensions/erc721/drops/write/setClaimConditions.js +24 -1
  152. package/dist/esm/extensions/erc721/drops/write/setClaimConditions.js.map +1 -1
  153. package/dist/esm/extensions/erc721/write/lazyMint.js +20 -3
  154. package/dist/esm/extensions/erc721/write/lazyMint.js.map +1 -1
  155. package/dist/esm/extensions/permissions/read/getAllMembers.js +19 -2
  156. package/dist/esm/extensions/permissions/read/getAllMembers.js.map +1 -1
  157. package/dist/esm/extensions/permissions/read/getRoleAdmin.js +1 -0
  158. package/dist/esm/extensions/permissions/read/getRoleAdmin.js.map +1 -1
  159. package/dist/esm/extensions/permissions/read/getRoleMember.js +1 -0
  160. package/dist/esm/extensions/permissions/read/getRoleMember.js.map +1 -1
  161. package/dist/esm/extensions/permissions/read/getRoleMemberCount.js +1 -0
  162. package/dist/esm/extensions/permissions/read/getRoleMemberCount.js.map +1 -1
  163. package/dist/esm/extensions/permissions/read/hasRole.js +1 -0
  164. package/dist/esm/extensions/permissions/read/hasRole.js.map +1 -1
  165. package/dist/esm/extensions/permissions/write/{grant.js → grantRole.js} +2 -1
  166. package/dist/esm/extensions/permissions/write/grantRole.js.map +1 -0
  167. package/dist/esm/extensions/permissions/write/renounceRole.js +1 -0
  168. package/dist/esm/extensions/permissions/write/renounceRole.js.map +1 -1
  169. package/dist/esm/extensions/permissions/write/revokeRole.js +1 -0
  170. package/dist/esm/extensions/permissions/write/revokeRole.js.map +1 -1
  171. package/dist/esm/extensions/prebuilts/deploy-published.js +39 -13
  172. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  173. package/dist/esm/extensions/thirdweb/read/contractType.js +45 -0
  174. package/dist/esm/extensions/thirdweb/read/contractType.js.map +1 -0
  175. package/dist/esm/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js +30 -0
  176. package/dist/esm/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js.map +1 -0
  177. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +6 -5
  178. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  179. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +3 -0
  180. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  181. package/dist/esm/react/web/ui/ConnectWallet/Details.js +37 -30
  182. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  183. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +23 -18
  184. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  185. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +41 -24
  186. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  187. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +12 -2
  188. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  189. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +2 -2
  190. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
  191. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +17 -12
  192. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  193. package/dist/esm/stories/ConnectButton/hideButtons.stories.js +71 -0
  194. package/dist/esm/stories/ConnectButton/hideButtons.stories.js.map +1 -0
  195. package/dist/esm/stories/{ConnectButton.stories.js → ConnectButton/themes.stories.js} +4 -5
  196. package/dist/esm/stories/ConnectButton/themes.stories.js.map +1 -0
  197. package/dist/esm/transaction/actions/send-transaction.js +8 -0
  198. package/dist/esm/transaction/actions/send-transaction.js.map +1 -1
  199. package/dist/esm/transaction/actions/zksync/getEip721Domain.js +4 -3
  200. package/dist/esm/transaction/actions/zksync/getEip721Domain.js.map +1 -1
  201. package/dist/esm/transaction/extract-error.js +4 -2
  202. package/dist/esm/transaction/extract-error.js.map +1 -1
  203. package/dist/esm/utils/abi/encodeAbiParameters.js +1 -1
  204. package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
  205. package/dist/esm/utils/any-evm/deploy-metadata.js +9 -2
  206. package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
  207. package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js +12 -0
  208. package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -0
  209. package/dist/esm/utils/any-evm/zksync/constants.js +40 -0
  210. package/dist/esm/utils/any-evm/zksync/constants.js.map +1 -0
  211. package/dist/esm/utils/any-evm/zksync/create2Address.js +18 -0
  212. package/dist/esm/utils/any-evm/zksync/create2Address.js.map +1 -0
  213. package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js +7 -0
  214. package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js.map +1 -0
  215. package/dist/esm/utils/extensions/drops/get-claim-params.js +4 -4
  216. package/dist/esm/version.js +1 -1
  217. package/dist/esm/wallets/smart/index.js +2 -2
  218. package/dist/esm/wallets/smart/index.js.map +1 -1
  219. package/dist/esm/wallets/smart/lib/utils.js +0 -6
  220. package/dist/esm/wallets/smart/lib/utils.js.map +1 -1
  221. package/dist/types/contract/deployment/deploy-via-autofactory.d.ts.map +1 -1
  222. package/dist/types/contract/deployment/publisher.d.ts.map +1 -1
  223. package/dist/types/contract/deployment/utils/bootstrap.d.ts +4 -2
  224. package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
  225. package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts +12 -0
  226. package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts.map +1 -0
  227. package/dist/types/contract/deployment/zksync/zkDeployCreate2Factory.d.ts +6 -0
  228. package/dist/types/contract/deployment/zksync/zkDeployCreate2Factory.d.ts.map +1 -0
  229. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts +13 -0
  230. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts.map +1 -0
  231. package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts +12 -0
  232. package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts.map +1 -0
  233. package/dist/types/exports/extensions/erc4337.d.ts +14 -13
  234. package/dist/types/exports/extensions/erc4337.d.ts.map +1 -1
  235. package/dist/types/exports/extensions/erc721.d.ts +9 -6
  236. package/dist/types/exports/extensions/erc721.d.ts.map +1 -1
  237. package/dist/types/exports/extensions/permissions.d.ts +8 -8
  238. package/dist/types/exports/extensions/permissions.d.ts.map +1 -1
  239. package/dist/types/exports/extensions/thirdweb.d.ts +1 -0
  240. package/dist/types/exports/extensions/thirdweb.d.ts.map +1 -1
  241. package/dist/types/extensions/erc4337/account/addAdmin.d.ts +13 -0
  242. package/dist/types/extensions/erc4337/account/addAdmin.d.ts.map +1 -1
  243. package/dist/types/extensions/erc4337/account/addSessionKey.d.ts +13 -0
  244. package/dist/types/extensions/erc4337/account/addSessionKey.d.ts.map +1 -1
  245. package/dist/types/extensions/erc4337/account/removeAdmin.d.ts +13 -0
  246. package/dist/types/extensions/erc4337/account/removeAdmin.d.ts.map +1 -1
  247. package/dist/types/extensions/erc4337/account/removeSessionKey.d.ts +13 -0
  248. package/dist/types/extensions/erc4337/account/removeSessionKey.d.ts.map +1 -1
  249. package/dist/types/extensions/erc721/__generated__/IDrop/read/claimCondition.d.ts +45 -0
  250. package/dist/types/extensions/erc721/__generated__/IDrop/read/claimCondition.d.ts.map +1 -0
  251. package/dist/types/extensions/erc721/drops/read/getActiveClaimCondition.d.ts +13 -0
  252. package/dist/types/extensions/erc721/drops/read/getActiveClaimCondition.d.ts.map +1 -1
  253. package/dist/types/extensions/erc721/drops/read/getClaimConditions.d.ts +29 -0
  254. package/dist/types/extensions/erc721/drops/read/getClaimConditions.d.ts.map +1 -0
  255. package/dist/types/extensions/erc721/drops/write/claimTo.d.ts +13 -0
  256. package/dist/types/extensions/erc721/drops/write/claimTo.d.ts.map +1 -1
  257. package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts +33 -0
  258. package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts.map +1 -0
  259. package/dist/types/extensions/erc721/drops/write/setClaimConditions.d.ts +13 -0
  260. package/dist/types/extensions/erc721/drops/write/setClaimConditions.d.ts.map +1 -1
  261. package/dist/types/extensions/erc721/write/lazyMint.d.ts +13 -0
  262. package/dist/types/extensions/erc721/write/lazyMint.d.ts.map +1 -1
  263. package/dist/types/extensions/permissions/read/getAllMembers.d.ts +13 -0
  264. package/dist/types/extensions/permissions/read/getAllMembers.d.ts.map +1 -1
  265. package/dist/types/extensions/permissions/read/getRoleAdmin.d.ts +1 -0
  266. package/dist/types/extensions/permissions/read/getRoleAdmin.d.ts.map +1 -1
  267. package/dist/types/extensions/permissions/read/getRoleMember.d.ts +1 -0
  268. package/dist/types/extensions/permissions/read/getRoleMember.d.ts.map +1 -1
  269. package/dist/types/extensions/permissions/read/getRoleMemberCount.d.ts +1 -0
  270. package/dist/types/extensions/permissions/read/getRoleMemberCount.d.ts.map +1 -1
  271. package/dist/types/extensions/permissions/read/hasRole.d.ts +1 -0
  272. package/dist/types/extensions/permissions/read/hasRole.d.ts.map +1 -1
  273. package/dist/types/extensions/permissions/write/{grant.d.ts → grantRole.d.ts} +2 -1
  274. package/dist/types/extensions/permissions/write/grantRole.d.ts.map +1 -0
  275. package/dist/types/extensions/permissions/write/renounceRole.d.ts +1 -0
  276. package/dist/types/extensions/permissions/write/renounceRole.d.ts.map +1 -1
  277. package/dist/types/extensions/permissions/write/revokeRole.d.ts +1 -0
  278. package/dist/types/extensions/permissions/write/revokeRole.d.ts.map +1 -1
  279. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  280. package/dist/types/extensions/thirdweb/read/contractType.d.ts +31 -0
  281. package/dist/types/extensions/thirdweb/read/contractType.d.ts.map +1 -0
  282. package/dist/types/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.d.ts +61 -0
  283. package/dist/types/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.d.ts.map +1 -0
  284. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +18 -0
  285. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
  286. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +6 -5
  287. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  288. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +3 -0
  289. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  290. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  291. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +28 -7
  292. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  293. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts +6 -0
  294. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  295. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts +0 -1
  296. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts.map +1 -1
  297. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
  298. package/dist/types/stories/ConnectButton/hideButtons.stories.d.ts +23 -0
  299. package/dist/types/stories/ConnectButton/hideButtons.stories.d.ts.map +1 -0
  300. package/dist/types/stories/{ConnectButton.stories.d.ts → ConnectButton/themes.stories.d.ts} +3 -4
  301. package/dist/types/stories/ConnectButton/themes.stories.d.ts.map +1 -0
  302. package/dist/types/transaction/actions/send-transaction.d.ts.map +1 -1
  303. package/dist/types/transaction/actions/zksync/getEip721Domain.d.ts.map +1 -1
  304. package/dist/types/transaction/extract-error.d.ts.map +1 -1
  305. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  306. package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts +11 -0
  307. package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts.map +1 -0
  308. package/dist/types/utils/any-evm/zksync/constants.d.ts +29 -0
  309. package/dist/types/utils/any-evm/zksync/constants.d.ts.map +1 -0
  310. package/dist/types/utils/any-evm/zksync/create2Address.d.ts +9 -0
  311. package/dist/types/utils/any-evm/zksync/create2Address.d.ts.map +1 -0
  312. package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts +3 -0
  313. package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts.map +1 -0
  314. package/dist/types/utils/domains.d.ts +1 -1
  315. package/dist/types/version.d.ts +1 -1
  316. package/dist/types/wallets/smart/index.d.ts.map +1 -1
  317. package/dist/types/wallets/smart/lib/utils.d.ts +0 -2
  318. package/dist/types/wallets/smart/lib/utils.d.ts.map +1 -1
  319. package/package.json +1 -1
  320. package/src/contract/deployment/deploy-via-autofactory.ts +13 -0
  321. package/src/contract/deployment/publisher.ts +5 -0
  322. package/src/contract/deployment/utils/bootstrap.ts +56 -3
  323. package/src/contract/deployment/zksync/zkDeployContract.ts +52 -0
  324. package/src/contract/deployment/zksync/zkDeployCreate2Factory.ts +65 -0
  325. package/src/contract/deployment/zksync/zkDeployDeterministic.ts +106 -0
  326. package/src/contract/deployment/zksync/zkDeployProxy.ts +55 -0
  327. package/src/exports/extensions/erc4337.ts +35 -7
  328. package/src/exports/extensions/erc721.ts +36 -3
  329. package/src/exports/extensions/permissions.ts +9 -1
  330. package/src/exports/extensions/thirdweb.ts +10 -0
  331. package/src/extensions/erc4337/account/addAdmin.ts +20 -1
  332. package/src/extensions/erc4337/account/addSessionKey.ts +20 -1
  333. package/src/extensions/erc4337/account/removeAdmin.ts +20 -1
  334. package/src/extensions/erc4337/account/removeSessionKey.ts +20 -1
  335. package/src/extensions/erc721/__generated__/IDrop/read/claimCondition.ts +76 -0
  336. package/src/extensions/erc721/drop721.test.ts +102 -2
  337. package/src/extensions/erc721/drops/read/getActiveClaimCondition.ts +32 -6
  338. package/src/extensions/erc721/drops/read/getClaimConditions.ts +93 -0
  339. package/src/extensions/erc721/drops/write/claimTo.ts +25 -1
  340. package/src/extensions/erc721/drops/write/resetClaimEligibility.ts +70 -0
  341. package/src/extensions/erc721/drops/write/setClaimConditions.ts +30 -1
  342. package/src/extensions/erc721/write/lazyMint.ts +26 -3
  343. package/src/extensions/permissions/permissions.test.ts +1 -1
  344. package/src/extensions/permissions/read/getAllMembers.ts +30 -2
  345. package/src/extensions/permissions/read/getRoleAdmin.ts +2 -0
  346. package/src/extensions/permissions/read/getRoleMember.ts +2 -0
  347. package/src/extensions/permissions/read/getRoleMemberCount.ts +2 -0
  348. package/src/extensions/permissions/read/hasRole.ts +2 -0
  349. package/src/extensions/permissions/write/{grant.ts → grantRole.ts} +2 -0
  350. package/src/extensions/permissions/write/renounceRole.ts +2 -0
  351. package/src/extensions/permissions/write/revokeRole.ts +2 -0
  352. package/src/extensions/prebuilts/deploy-published.ts +58 -26
  353. package/src/extensions/thirdweb/read/contractType.ts +46 -0
  354. package/src/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.ts +55 -0
  355. package/src/react/core/hooks/connection/ConnectButtonProps.ts +21 -0
  356. package/src/react/web/hooks/transaction/useSendTransaction.tsx +6 -5
  357. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +3 -0
  358. package/src/react/web/ui/ConnectWallet/Details.tsx +108 -73
  359. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +37 -29
  360. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +73 -33
  361. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +37 -2
  362. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.tsx +5 -10
  363. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +27 -20
  364. package/src/stories/ConnectButton/hideButtons.stories.tsx +83 -0
  365. package/src/stories/{ConnectButton.stories.ts → ConnectButton/themes.stories.tsx} +3 -4
  366. package/src/transaction/actions/send-transaction.ts +11 -0
  367. package/src/transaction/actions/to-serializable-transaction.test.ts +3 -4
  368. package/src/transaction/actions/zksync/getEip721Domain.ts +4 -2
  369. package/src/transaction/actions/zksync/send-eip712-transaction.test.ts +27 -2
  370. package/src/transaction/extract-error.ts +7 -2
  371. package/src/utils/abi/encode-abi-parameters.test.ts +1 -1
  372. package/src/utils/abi/encodeAbiParameters.ts +1 -1
  373. package/src/utils/any-evm/deploy-metadata.ts +11 -2
  374. package/src/utils/any-evm/zksync/computeDeploymentAddress.ts +24 -0
  375. package/src/utils/any-evm/zksync/constants.ts +49 -0
  376. package/src/utils/any-evm/zksync/create2Address.ts +26 -0
  377. package/src/utils/any-evm/zksync/isZkSyncChain.ts +10 -0
  378. package/src/utils/domains.ts +1 -1
  379. package/src/utils/extensions/drops/get-claim-params.ts +4 -4
  380. package/src/version.ts +1 -1
  381. package/src/wallets/smart/index.ts +2 -3
  382. package/src/wallets/smart/lib/utils.ts +0 -10
  383. package/dist/cjs/extensions/permissions/write/grant.js.map +0 -1
  384. package/dist/cjs/stories/ConnectButton.stories.js.map +0 -1
  385. package/dist/esm/extensions/permissions/write/grant.js.map +0 -1
  386. package/dist/esm/stories/ConnectButton.stories.js.map +0 -1
  387. package/dist/types/extensions/permissions/write/grant.d.ts.map +0 -1
  388. package/dist/types/stories/ConnectButton.stories.d.ts.map +0 -1
@@ -1,7 +1,9 @@
1
1
  // ACCOUNT
2
+ export { isValidateUserOpSupported } from "../../extensions/erc4337/__generated__/IAccount/write/validateUserOp.js";
2
3
  export {
3
4
  type AddAdminOptions,
4
5
  addAdmin,
6
+ isAddAdminSupported,
5
7
  } from "../../extensions/erc4337/account/addAdmin.js";
6
8
 
7
9
  export {
@@ -12,40 +14,66 @@ export {
12
14
  export {
13
15
  type AddSessionKeyOptions,
14
16
  addSessionKey,
17
+ isAddSessionKeySupported,
15
18
  } from "../../extensions/erc4337/account/addSessionKey.js";
16
19
 
17
20
  export {
18
21
  type RemoveSessionKeyOptions,
19
22
  removeSessionKey,
23
+ isRemoveSessionKeySupported,
20
24
  } from "../../extensions/erc4337/account/removeSessionKey.js";
21
25
 
22
- export { getAllActiveSigners } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/getAllActiveSigners.js";
23
- export { getAllAdmins } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/getAllAdmins.js";
24
- export { getAllSigners } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/getAllSigners.js";
26
+ export {
27
+ getAllActiveSigners,
28
+ isGetAllActiveSignersSupported,
29
+ } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/getAllActiveSigners.js";
30
+ export {
31
+ getAllAdmins,
32
+ isGetAllAdminsSupported,
33
+ } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/getAllAdmins.js";
34
+ export {
35
+ getAllSigners,
36
+ isGetAllSignersSupported,
37
+ } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/getAllSigners.js";
25
38
  export {
26
39
  getPermissionsForSigner,
27
40
  type GetPermissionsForSignerParams,
28
41
  } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/getPermissionsForSigner.js";
29
42
  export {
30
43
  isActiveSigner,
44
+ isIsActiveSignerSupported,
31
45
  type IsActiveSignerParams,
32
46
  } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/isActiveSigner.js";
33
- export { isAdmin } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/isAdmin.js";
47
+ export {
48
+ isAdmin,
49
+ isIsAdminSupported,
50
+ } from "../../extensions/erc4337/__generated__/IAccountPermissions/read/isAdmin.js";
34
51
  export { adminUpdatedEvent } from "../../extensions/erc4337/__generated__/IAccountPermissions/events/AdminUpdated.js";
35
52
  export { signerPermissionsUpdatedEvent } from "../../extensions/erc4337/__generated__/IAccountPermissions/events/SignerPermissionsUpdated.js";
36
53
 
37
54
  // FACTORY
38
- export { getAllAccounts } from "../../extensions/erc4337/__generated__/IAccountFactory/read/getAllAccounts.js";
39
- export { getAccounts } from "../../extensions/erc4337/__generated__/IAccountFactory/read/getAccounts.js";
40
- export { totalAccounts } from "../../extensions/erc4337/__generated__/IAccountFactory/read/totalAccounts.js";
55
+ export {
56
+ getAllAccounts,
57
+ isGetAllAccountsSupported,
58
+ } from "../../extensions/erc4337/__generated__/IAccountFactory/read/getAllAccounts.js";
59
+ export {
60
+ getAccounts,
61
+ isGetAccountsSupported,
62
+ } from "../../extensions/erc4337/__generated__/IAccountFactory/read/getAccounts.js";
63
+ export {
64
+ totalAccounts,
65
+ isTotalAccountsSupported,
66
+ } from "../../extensions/erc4337/__generated__/IAccountFactory/read/totalAccounts.js";
41
67
  export { isRegistered } from "../../extensions/erc4337/__generated__/IAccountFactory/read/isRegistered.js";
42
68
  export {
43
69
  getAccountsOfSigner,
44
70
  type GetAccountsOfSignerParams,
71
+ isGetAccountsOfSignerSupported,
45
72
  } from "../../extensions/erc4337/__generated__/IAccountFactory/read/getAccountsOfSigner.js";
46
73
  export {
47
74
  getAddress as predictAccountAddress,
48
75
  type GetAddressParams as PredictAccountAddressParams,
76
+ isGetAddressSupported as isPredictAccountAddressSupported,
49
77
  } from "../../extensions/erc4337/__generated__/IAccountFactory/read/getAddress.js";
50
78
 
51
79
  // ENTRYPOINT
@@ -82,21 +82,54 @@ export {
82
82
  /**
83
83
  * DROPS extension for ERC721
84
84
  */
85
- export { getClaimConditionById } from "../../extensions/erc721/__generated__/IDrop/read/getClaimConditionById.js";
86
- export { claimCondition } from "../../extensions/erc721/__generated__/DropSinglePhase/read/claimCondition.js";
87
- export { getActiveClaimCondition } from "../../extensions/erc721/drops/read/getActiveClaimCondition.js";
85
+ // READ
86
+ // multi-phase --
87
+ export {
88
+ getClaimConditionById,
89
+ isGetClaimConditionByIdSupported,
90
+ } from "../../extensions/erc721/__generated__/IDrop/read/getClaimConditionById.js";
91
+ export {
92
+ getActiveClaimConditionId,
93
+ isGetActiveClaimConditionIdSupported,
94
+ } from "../../extensions/erc721/__generated__/IDrop/read/getActiveClaimConditionId.js";
95
+ export {
96
+ getClaimConditions,
97
+ isGetClaimConditionsSupported,
98
+ } from "../../extensions/erc721/drops/read/getClaimConditions.js";
99
+ // --
100
+ // single phase --
101
+ export {
102
+ claimCondition,
103
+ isClaimConditionSupported,
104
+ } from "../../extensions/erc721/__generated__/DropSinglePhase/read/claimCondition.js";
105
+ // --
106
+ // multi and single phase --
107
+ export {
108
+ getActiveClaimCondition,
109
+ isGetActiveClaimConditionSupported,
110
+ } from "../../extensions/erc721/drops/read/getActiveClaimCondition.js";
111
+ // --
112
+
113
+ // WRITE
88
114
  export {
89
115
  claimTo,
90
116
  type ClaimToParams,
117
+ isClaimToSupported,
91
118
  } from "../../extensions/erc721/drops/write/claimTo.js";
92
119
  export {
93
120
  lazyMint,
94
121
  type LazyMintParams,
122
+ isLazyMintSupported,
95
123
  } from "../../extensions/erc721/write/lazyMint.js";
96
124
  export {
97
125
  setClaimConditions,
98
126
  type SetClaimConditionsParams,
127
+ isSetClaimConditionsSupported,
99
128
  } from "../../extensions/erc721/drops/write/setClaimConditions.js";
129
+ export {
130
+ resetClaimEligibility,
131
+ isResetClaimEligibilitySupported,
132
+ } from "../../extensions/erc721/drops/write/resetClaimEligibility.js";
100
133
 
101
134
  /**
102
135
  * SIGNATURE extension for ERC721
@@ -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
+ }
@@ -0,0 +1,76 @@
1
+ import { readContract } from "../../../../../transaction/read-contract.js";
2
+ import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
3
+
4
+ import { decodeAbiParameters } from "viem";
5
+ import type { Hex } from "../../../../../utils/encoding/hex.js";
6
+ import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
7
+
8
+ export const FN_SELECTOR = "0xd637ed59" as const;
9
+ const FN_INPUTS = [] as const;
10
+ const FN_OUTPUTS = [
11
+ {
12
+ type: "uint256",
13
+ name: "currentStartId",
14
+ },
15
+ {
16
+ type: "uint256",
17
+ name: "count",
18
+ },
19
+ ] as const;
20
+
21
+ /**
22
+ * Checks if the `claimCondition` method is supported by the given contract.
23
+ * @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.
24
+ * @returns A boolean indicating if the `claimCondition` method is supported.
25
+ * @extension ERC721
26
+ * @example
27
+ * ```ts
28
+ * import { isClaimConditionSupported } from "thirdweb/extensions/erc721";
29
+ *
30
+ * const supported = isClaimConditionSupported(["0x..."]);
31
+ * ```
32
+ */
33
+ export function isClaimConditionSupported(availableSelectors: string[]) {
34
+ return detectMethod({
35
+ availableSelectors,
36
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
37
+ });
38
+ }
39
+
40
+ /**
41
+ * Decodes the result of the claimCondition function call.
42
+ * @param result - The hexadecimal result to decode.
43
+ * @returns The decoded result as per the FN_OUTPUTS definition.
44
+ * @extension ERC721
45
+ * @example
46
+ * ```ts
47
+ * import { decodeClaimConditionResult } from "thirdweb/extensions/erc721";
48
+ * const result = decodeClaimConditionResult("...");
49
+ * ```
50
+ */
51
+ export function decodeClaimConditionResult(result: Hex) {
52
+ return decodeAbiParameters(FN_OUTPUTS, result);
53
+ }
54
+
55
+ /**
56
+ * Calls the "claimCondition" function on the contract.
57
+ * @param options - The options for the claimCondition function.
58
+ * @returns The parsed result of the function call.
59
+ * @extension ERC721
60
+ * @example
61
+ * ```ts
62
+ * import { claimCondition } from "thirdweb/extensions/erc721";
63
+ *
64
+ * const result = await claimCondition({
65
+ * contract,
66
+ * });
67
+ *
68
+ * ```
69
+ */
70
+ export async function claimCondition(options: BaseTransactionOptions) {
71
+ return readContract({
72
+ contract: options.contract,
73
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
74
+ params: [],
75
+ });
76
+ }
@@ -6,6 +6,7 @@ import {
6
6
  TEST_ACCOUNT_A,
7
7
  TEST_ACCOUNT_B,
8
8
  TEST_ACCOUNT_C,
9
+ TEST_ACCOUNT_D,
9
10
  } from "../../../test/src/test-wallets.js";
10
11
  import { type ThirdwebContract, getContract } from "../../contract/contract.js";
11
12
  import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
@@ -16,7 +17,9 @@ import { deployERC20Contract } from "../prebuilts/deploy-erc20.js";
16
17
  import { deployERC721Contract } from "../prebuilts/deploy-erc721.js";
17
18
  import { balanceOf } from "./__generated__/IERC721A/read/balanceOf.js";
18
19
  import { nextTokenIdToMint } from "./__generated__/IERC721Enumerable/read/nextTokenIdToMint.js";
20
+ import { getClaimConditions } from "./drops/read/getClaimConditions.js";
19
21
  import { claimTo } from "./drops/write/claimTo.js";
22
+ import { resetClaimEligibility } from "./drops/write/resetClaimEligibility.js";
20
23
  import { setClaimConditions } from "./drops/write/setClaimConditions.js";
21
24
  import { getNFT } from "./read/getNFT.js";
22
25
  import { lazyMint } from "./write/lazyMint.js";
@@ -83,6 +86,12 @@ describe.runIf(process.env.TW_SECRET_KEY)(
83
86
  { name: "Test NFT 2" },
84
87
  { name: "Test NFT 3" },
85
88
  { name: "Test NFT 4" },
89
+ { name: "Test NFT 5" },
90
+ { name: "Test NFT 6" },
91
+ { name: "Test NFT 7" },
92
+ { name: "Test NFT 8" },
93
+ { name: "Test NFT 9" },
94
+ { name: "Test NFT 10" },
86
95
  ],
87
96
  });
88
97
  await sendAndConfirmTransaction({
@@ -90,7 +99,7 @@ describe.runIf(process.env.TW_SECRET_KEY)(
90
99
  account: TEST_ACCOUNT_A,
91
100
  });
92
101
 
93
- await expect(nextTokenIdToMint({ contract })).resolves.toBe(4n);
102
+ await expect(nextTokenIdToMint({ contract })).resolves.toBe(10n);
94
103
  await expect(
95
104
  getNFT({ contract, tokenId: 0n }),
96
105
  ).resolves.toMatchInlineSnapshot(`
@@ -100,7 +109,7 @@ describe.runIf(process.env.TW_SECRET_KEY)(
100
109
  "name": "Test NFT",
101
110
  },
102
111
  "owner": null,
103
- "tokenURI": "ipfs://QmUfspS2uU9roYLJveebbY5geYaNR4KkZAsMkb5pPRtc7a/0",
112
+ "tokenURI": "ipfs://QmY1Rr4C7cYVPAaXykMMxg3AVbatDZ6Rd7u3gzt79CiDSB/0",
104
113
  "type": "ERC721",
105
114
  }
106
115
  `);
@@ -332,5 +341,96 @@ describe.runIf(process.env.TW_SECRET_KEY)(
332
341
  balanceOf({ contract, owner: TEST_ACCOUNT_A.address }),
333
342
  ).resolves.toBe(3n);
334
343
  });
344
+
345
+ it("should be able to retrieve multiple phases", async () => {
346
+ await sendAndConfirmTransaction({
347
+ transaction: setClaimConditions({
348
+ contract,
349
+ phases: [
350
+ {
351
+ maxClaimablePerWallet: 1n,
352
+ startTime: new Date(0),
353
+ },
354
+ {
355
+ maxClaimablePerWallet: 2n,
356
+ startTime: new Date(),
357
+ },
358
+ ],
359
+ }),
360
+ account: TEST_ACCOUNT_A,
361
+ });
362
+
363
+ const phases = await getClaimConditions({ contract });
364
+ expect(phases).toHaveLength(2);
365
+ expect(phases[0]?.quantityLimitPerWallet).toBe(1n);
366
+ expect(phases[1]?.quantityLimitPerWallet).toBe(2n);
367
+ });
368
+
369
+ it("should be able to reset claim eligibility", async () => {
370
+ // set claim conditions to only allow one claim
371
+ await sendAndConfirmTransaction({
372
+ transaction: setClaimConditions({
373
+ contract,
374
+ phases: [
375
+ {
376
+ maxClaimablePerWallet: 1n,
377
+ },
378
+ ],
379
+ }),
380
+ account: TEST_ACCOUNT_A,
381
+ });
382
+ // claim one token
383
+ await sendAndConfirmTransaction({
384
+ transaction: claimTo({
385
+ contract,
386
+ // fresh account to avoid any previous claims
387
+ to: TEST_ACCOUNT_D.address,
388
+ quantity: 1n,
389
+ }),
390
+ // fresh account to avoid any previous claims
391
+ account: TEST_ACCOUNT_D,
392
+ });
393
+ // check that the account has claimed one token
394
+ await expect(
395
+ balanceOf({ contract, owner: TEST_ACCOUNT_D.address }),
396
+ ).resolves.toBe(1n);
397
+ // attempt to claim another token (this should fail)
398
+ await expect(
399
+ sendAndConfirmTransaction({
400
+ transaction: claimTo({
401
+ contract,
402
+ to: TEST_ACCOUNT_D.address,
403
+ quantity: 1n,
404
+ }),
405
+ account: TEST_ACCOUNT_D,
406
+ }),
407
+ ).rejects.toThrowErrorMatchingInlineSnapshot(`
408
+ [TransactionError: Error - !Qty
409
+
410
+ contract: 0x6AA2E0148a57EcDdb025C856c4e68682CFfcac78
411
+ chainId: 31337]
412
+ `);
413
+
414
+ // reset claim eligibility
415
+ await sendAndConfirmTransaction({
416
+ transaction: resetClaimEligibility({
417
+ contract,
418
+ }),
419
+ account: TEST_ACCOUNT_A,
420
+ });
421
+ // attempt to claim another token (this should succeed)
422
+ await sendAndConfirmTransaction({
423
+ transaction: claimTo({
424
+ contract,
425
+ to: TEST_ACCOUNT_D.address,
426
+ quantity: 1n,
427
+ }),
428
+ account: TEST_ACCOUNT_D,
429
+ });
430
+ // check that the account has claimed two tokens
431
+ await expect(
432
+ balanceOf({ contract, owner: TEST_ACCOUNT_D.address }),
433
+ ).resolves.toBe(2n);
434
+ });
335
435
  },
336
436
  );
@@ -1,8 +1,8 @@
1
1
  import type { BaseTransactionOptions } from "../../../../transaction/types.js";
2
2
  import type { ClaimCondition } from "../../../../utils/extensions/drops/types.js";
3
- import { claimCondition } from "../../__generated__/DropSinglePhase/read/claimCondition.js";
4
- import { getActiveClaimConditionId } from "../../__generated__/IDrop/read/getActiveClaimConditionId.js";
5
- import { getClaimConditionById } from "../../__generated__/IDrop/read/getClaimConditionById.js";
3
+ import * as SinglePhase from "../../__generated__/DropSinglePhase/read/claimCondition.js";
4
+ import * as GetActiveId from "../../__generated__/IDrop/read/getActiveClaimConditionId.js";
5
+ import * as ById from "../../__generated__/IDrop/read/getClaimConditionById.js";
6
6
 
7
7
  /**
8
8
  * Retrieves the active claim condition.
@@ -20,8 +20,8 @@ export async function getActiveClaimCondition(
20
20
  options: BaseTransactionOptions,
21
21
  ): Promise<ClaimCondition> {
22
22
  const getActiveClaimConditionMultiPhase = async () => {
23
- const conditionId = await getActiveClaimConditionId(options);
24
- return getClaimConditionById({ ...options, conditionId });
23
+ const conditionId = await GetActiveId.getActiveClaimConditionId(options);
24
+ return ById.getClaimConditionById({ ...options, conditionId });
25
25
  };
26
26
  const getActiveClaimConditionSinglePhase = async () => {
27
27
  const [
@@ -33,7 +33,7 @@ export async function getActiveClaimCondition(
33
33
  pricePerToken,
34
34
  currency,
35
35
  metadata,
36
- ] = await claimCondition(options);
36
+ ] = await SinglePhase.claimCondition(options);
37
37
  return {
38
38
  startTimestamp,
39
39
  maxClaimableSupply,
@@ -58,3 +58,29 @@ export async function getActiveClaimCondition(
58
58
  }
59
59
  throw new Error("Claim condition not found");
60
60
  }
61
+
62
+ /**
63
+ * Checks if the `getActiveClaimCondition` method is supported by the given contract.
64
+ * @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.
65
+ * @returns A boolean indicating if the `getActiveClaimCondition` method is supported.
66
+ * @extension ERC721
67
+ * @example
68
+ * ```ts
69
+ * import { isGetActiveClaimConditionSupported } from "thirdweb/extensions/erc721";
70
+ *
71
+ * const supported = isGetActiveClaimConditionSupported(["0x..."]);
72
+ * ```
73
+ */
74
+ export function isGetActiveClaimConditionSupported(
75
+ availableSelectors: string[],
76
+ ) {
77
+ // if single phase is supported, return true
78
+ if (SinglePhase.isClaimConditionSupported(availableSelectors)) {
79
+ return true;
80
+ }
81
+ // otherwise check that both multi phase functions are supported
82
+ return (
83
+ GetActiveId.isGetActiveClaimConditionIdSupported(availableSelectors) &&
84
+ ById.isGetClaimConditionByIdSupported(availableSelectors)
85
+ );
86
+ }