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.
- package/dist/cjs/contract/deployment/deploy-via-autofactory.js +11 -0
- package/dist/cjs/contract/deployment/deploy-via-autofactory.js.map +1 -1
- package/dist/cjs/contract/deployment/publisher.js +3 -0
- package/dist/cjs/contract/deployment/publisher.js.map +1 -1
- package/dist/cjs/contract/deployment/utils/bootstrap.js +41 -1
- package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/cjs/contract/deployment/zksync/zkDeployContract.js +43 -0
- package/dist/cjs/contract/deployment/zksync/zkDeployContract.js.map +1 -0
- package/dist/cjs/contract/deployment/zksync/zkDeployCreate2Factory.js +55 -0
- package/dist/cjs/contract/deployment/zksync/zkDeployCreate2Factory.js.map +1 -0
- package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js +86 -0
- package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -0
- package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js +41 -0
- package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js.map +1 -0
- package/dist/cjs/exports/extensions/erc4337.js +16 -1
- package/dist/cjs/exports/extensions/erc4337.js.map +1 -1
- package/dist/cjs/exports/extensions/erc721.js +25 -1
- package/dist/cjs/exports/extensions/erc721.js.map +1 -1
- package/dist/cjs/exports/extensions/permissions.js +11 -3
- package/dist/cjs/exports/extensions/permissions.js.map +1 -1
- package/dist/cjs/exports/extensions/thirdweb.js +9 -2
- package/dist/cjs/exports/extensions/thirdweb.js.map +1 -1
- package/dist/cjs/extensions/erc4337/account/addAdmin.js +16 -0
- package/dist/cjs/extensions/erc4337/account/addAdmin.js.map +1 -1
- package/dist/cjs/extensions/erc4337/account/addSessionKey.js +16 -0
- package/dist/cjs/extensions/erc4337/account/addSessionKey.js.map +1 -1
- package/dist/cjs/extensions/erc4337/account/removeAdmin.js +16 -0
- package/dist/cjs/extensions/erc4337/account/removeAdmin.js.map +1 -1
- package/dist/cjs/extensions/erc4337/account/removeSessionKey.js +16 -0
- package/dist/cjs/extensions/erc4337/account/removeSessionKey.js.map +1 -1
- package/dist/cjs/extensions/erc721/__generated__/IDrop/read/claimCondition.js +76 -0
- package/dist/cjs/extensions/erc721/__generated__/IDrop/read/claimCondition.js.map +1 -0
- package/dist/cjs/extensions/erc721/drops/read/getActiveClaimCondition.js +28 -6
- package/dist/cjs/extensions/erc721/drops/read/getActiveClaimCondition.js.map +1 -1
- package/dist/cjs/extensions/erc721/drops/read/getClaimConditions.js +73 -0
- package/dist/cjs/extensions/erc721/drops/read/getClaimConditions.js.map +1 -0
- package/dist/cjs/extensions/erc721/drops/write/claimTo.js +19 -0
- package/dist/cjs/extensions/erc721/drops/write/claimTo.js.map +1 -1
- package/dist/cjs/extensions/erc721/drops/write/resetClaimEligibility.js +56 -0
- package/dist/cjs/extensions/erc721/drops/write/resetClaimEligibility.js.map +1 -0
- package/dist/cjs/extensions/erc721/drops/write/setClaimConditions.js +24 -0
- package/dist/cjs/extensions/erc721/drops/write/setClaimConditions.js.map +1 -1
- package/dist/cjs/extensions/erc721/write/lazyMint.js +20 -2
- package/dist/cjs/extensions/erc721/write/lazyMint.js.map +1 -1
- package/dist/cjs/extensions/permissions/read/getAllMembers.js +18 -0
- package/dist/cjs/extensions/permissions/read/getAllMembers.js.map +1 -1
- package/dist/cjs/extensions/permissions/read/getRoleAdmin.js +3 -0
- package/dist/cjs/extensions/permissions/read/getRoleAdmin.js.map +1 -1
- package/dist/cjs/extensions/permissions/read/getRoleMember.js +3 -0
- package/dist/cjs/extensions/permissions/read/getRoleMember.js.map +1 -1
- package/dist/cjs/extensions/permissions/read/getRoleMemberCount.js +3 -0
- package/dist/cjs/extensions/permissions/read/getRoleMemberCount.js.map +1 -1
- package/dist/cjs/extensions/permissions/read/hasRole.js +3 -0
- package/dist/cjs/extensions/permissions/read/hasRole.js.map +1 -1
- package/dist/cjs/extensions/permissions/write/{grant.js → grantRole.js} +4 -1
- package/dist/cjs/extensions/permissions/write/grantRole.js.map +1 -0
- package/dist/cjs/extensions/permissions/write/renounceRole.js +3 -0
- package/dist/cjs/extensions/permissions/write/renounceRole.js.map +1 -1
- package/dist/cjs/extensions/permissions/write/revokeRole.js +3 -0
- package/dist/cjs/extensions/permissions/write/revokeRole.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-published.js +39 -13
- package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/cjs/extensions/thirdweb/read/contractType.js +49 -0
- package/dist/cjs/extensions/thirdweb/read/contractType.js.map +1 -0
- package/dist/cjs/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js +33 -0
- package/dist/cjs/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js.map +1 -0
- package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +6 -5
- package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +3 -0
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +37 -30
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +22 -17
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +44 -25
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +13 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +16 -11
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
- package/dist/cjs/stories/ConnectButton/hideButtons.stories.js +74 -0
- package/dist/cjs/stories/ConnectButton/hideButtons.stories.js.map +1 -0
- package/dist/cjs/stories/{ConnectButton.stories.js → ConnectButton/themes.stories.js} +4 -5
- package/dist/cjs/stories/ConnectButton/themes.stories.js.map +1 -0
- package/dist/cjs/transaction/actions/send-transaction.js +8 -0
- package/dist/cjs/transaction/actions/send-transaction.js.map +1 -1
- package/dist/cjs/transaction/actions/zksync/getEip721Domain.js +4 -3
- package/dist/cjs/transaction/actions/zksync/getEip721Domain.js.map +1 -1
- package/dist/cjs/transaction/extract-error.js +4 -2
- package/dist/cjs/transaction/extract-error.js.map +1 -1
- package/dist/cjs/utils/abi/encodeAbiParameters.js +1 -1
- package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/cjs/utils/any-evm/deploy-metadata.js +9 -2
- package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
- package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js +15 -0
- package/dist/cjs/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -0
- package/dist/cjs/utils/any-evm/zksync/constants.js +43 -0
- package/dist/cjs/utils/any-evm/zksync/constants.js.map +1 -0
- package/dist/cjs/utils/any-evm/zksync/create2Address.js +21 -0
- package/dist/cjs/utils/any-evm/zksync/create2Address.js.map +1 -0
- package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js +10 -0
- package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js.map +1 -0
- package/dist/cjs/utils/extensions/drops/get-claim-params.js +3 -3
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/smart/index.js +2 -2
- package/dist/cjs/wallets/smart/index.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/utils.js +0 -7
- package/dist/cjs/wallets/smart/lib/utils.js.map +1 -1
- package/dist/esm/contract/deployment/deploy-via-autofactory.js +11 -0
- package/dist/esm/contract/deployment/deploy-via-autofactory.js.map +1 -1
- package/dist/esm/contract/deployment/publisher.js +3 -0
- package/dist/esm/contract/deployment/publisher.js.map +1 -1
- package/dist/esm/contract/deployment/utils/bootstrap.js +41 -1
- package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/esm/contract/deployment/zksync/zkDeployContract.js +40 -0
- package/dist/esm/contract/deployment/zksync/zkDeployContract.js.map +1 -0
- package/dist/esm/contract/deployment/zksync/zkDeployCreate2Factory.js +52 -0
- package/dist/esm/contract/deployment/zksync/zkDeployCreate2Factory.js.map +1 -0
- package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js +83 -0
- package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -0
- package/dist/esm/contract/deployment/zksync/zkDeployProxy.js +38 -0
- package/dist/esm/contract/deployment/zksync/zkDeployProxy.js.map +1 -0
- package/dist/esm/exports/extensions/erc4337.js +14 -13
- package/dist/esm/exports/extensions/erc4337.js.map +1 -1
- package/dist/esm/exports/extensions/erc721.js +17 -6
- package/dist/esm/exports/extensions/erc721.js.map +1 -1
- package/dist/esm/exports/extensions/permissions.js +8 -8
- package/dist/esm/exports/extensions/permissions.js.map +1 -1
- package/dist/esm/exports/extensions/thirdweb.js +5 -0
- package/dist/esm/exports/extensions/thirdweb.js.map +1 -1
- package/dist/esm/extensions/erc4337/account/addAdmin.js +16 -1
- package/dist/esm/extensions/erc4337/account/addAdmin.js.map +1 -1
- package/dist/esm/extensions/erc4337/account/addSessionKey.js +16 -1
- package/dist/esm/extensions/erc4337/account/addSessionKey.js.map +1 -1
- package/dist/esm/extensions/erc4337/account/removeAdmin.js +16 -1
- package/dist/esm/extensions/erc4337/account/removeAdmin.js.map +1 -1
- package/dist/esm/extensions/erc4337/account/removeSessionKey.js +16 -1
- package/dist/esm/extensions/erc4337/account/removeSessionKey.js.map +1 -1
- package/dist/esm/extensions/erc721/__generated__/IDrop/read/claimCondition.js +70 -0
- package/dist/esm/extensions/erc721/__generated__/IDrop/read/claimCondition.js.map +1 -0
- package/dist/esm/extensions/erc721/drops/read/getActiveClaimCondition.js +27 -6
- package/dist/esm/extensions/erc721/drops/read/getActiveClaimCondition.js.map +1 -1
- package/dist/esm/extensions/erc721/drops/read/getClaimConditions.js +69 -0
- package/dist/esm/extensions/erc721/drops/read/getClaimConditions.js.map +1 -0
- package/dist/esm/extensions/erc721/drops/write/claimTo.js +19 -1
- package/dist/esm/extensions/erc721/drops/write/claimTo.js.map +1 -1
- package/dist/esm/extensions/erc721/drops/write/resetClaimEligibility.js +52 -0
- package/dist/esm/extensions/erc721/drops/write/resetClaimEligibility.js.map +1 -0
- package/dist/esm/extensions/erc721/drops/write/setClaimConditions.js +24 -1
- package/dist/esm/extensions/erc721/drops/write/setClaimConditions.js.map +1 -1
- package/dist/esm/extensions/erc721/write/lazyMint.js +20 -3
- package/dist/esm/extensions/erc721/write/lazyMint.js.map +1 -1
- package/dist/esm/extensions/permissions/read/getAllMembers.js +19 -2
- package/dist/esm/extensions/permissions/read/getAllMembers.js.map +1 -1
- package/dist/esm/extensions/permissions/read/getRoleAdmin.js +1 -0
- package/dist/esm/extensions/permissions/read/getRoleAdmin.js.map +1 -1
- package/dist/esm/extensions/permissions/read/getRoleMember.js +1 -0
- package/dist/esm/extensions/permissions/read/getRoleMember.js.map +1 -1
- package/dist/esm/extensions/permissions/read/getRoleMemberCount.js +1 -0
- package/dist/esm/extensions/permissions/read/getRoleMemberCount.js.map +1 -1
- package/dist/esm/extensions/permissions/read/hasRole.js +1 -0
- package/dist/esm/extensions/permissions/read/hasRole.js.map +1 -1
- package/dist/esm/extensions/permissions/write/{grant.js → grantRole.js} +2 -1
- package/dist/esm/extensions/permissions/write/grantRole.js.map +1 -0
- package/dist/esm/extensions/permissions/write/renounceRole.js +1 -0
- package/dist/esm/extensions/permissions/write/renounceRole.js.map +1 -1
- package/dist/esm/extensions/permissions/write/revokeRole.js +1 -0
- package/dist/esm/extensions/permissions/write/revokeRole.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-published.js +39 -13
- package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/esm/extensions/thirdweb/read/contractType.js +45 -0
- package/dist/esm/extensions/thirdweb/read/contractType.js.map +1 -0
- package/dist/esm/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js +30 -0
- package/dist/esm/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js.map +1 -0
- package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +6 -5
- package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +3 -0
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +37 -30
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +23 -18
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +41 -24
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +12 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +17 -12
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
- package/dist/esm/stories/ConnectButton/hideButtons.stories.js +71 -0
- package/dist/esm/stories/ConnectButton/hideButtons.stories.js.map +1 -0
- package/dist/esm/stories/{ConnectButton.stories.js → ConnectButton/themes.stories.js} +4 -5
- package/dist/esm/stories/ConnectButton/themes.stories.js.map +1 -0
- package/dist/esm/transaction/actions/send-transaction.js +8 -0
- package/dist/esm/transaction/actions/send-transaction.js.map +1 -1
- package/dist/esm/transaction/actions/zksync/getEip721Domain.js +4 -3
- package/dist/esm/transaction/actions/zksync/getEip721Domain.js.map +1 -1
- package/dist/esm/transaction/extract-error.js +4 -2
- package/dist/esm/transaction/extract-error.js.map +1 -1
- package/dist/esm/utils/abi/encodeAbiParameters.js +1 -1
- package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/esm/utils/any-evm/deploy-metadata.js +9 -2
- package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
- package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js +12 -0
- package/dist/esm/utils/any-evm/zksync/computeDeploymentAddress.js.map +1 -0
- package/dist/esm/utils/any-evm/zksync/constants.js +40 -0
- package/dist/esm/utils/any-evm/zksync/constants.js.map +1 -0
- package/dist/esm/utils/any-evm/zksync/create2Address.js +18 -0
- package/dist/esm/utils/any-evm/zksync/create2Address.js.map +1 -0
- package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js +7 -0
- package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js.map +1 -0
- package/dist/esm/utils/extensions/drops/get-claim-params.js +4 -4
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/smart/index.js +2 -2
- package/dist/esm/wallets/smart/index.js.map +1 -1
- package/dist/esm/wallets/smart/lib/utils.js +0 -6
- package/dist/esm/wallets/smart/lib/utils.js.map +1 -1
- package/dist/types/contract/deployment/deploy-via-autofactory.d.ts.map +1 -1
- package/dist/types/contract/deployment/publisher.d.ts.map +1 -1
- package/dist/types/contract/deployment/utils/bootstrap.d.ts +4 -2
- package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
- package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts +12 -0
- package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts.map +1 -0
- package/dist/types/contract/deployment/zksync/zkDeployCreate2Factory.d.ts +6 -0
- package/dist/types/contract/deployment/zksync/zkDeployCreate2Factory.d.ts.map +1 -0
- package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts +13 -0
- package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts.map +1 -0
- package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts +12 -0
- package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts.map +1 -0
- package/dist/types/exports/extensions/erc4337.d.ts +14 -13
- package/dist/types/exports/extensions/erc4337.d.ts.map +1 -1
- package/dist/types/exports/extensions/erc721.d.ts +9 -6
- package/dist/types/exports/extensions/erc721.d.ts.map +1 -1
- package/dist/types/exports/extensions/permissions.d.ts +8 -8
- package/dist/types/exports/extensions/permissions.d.ts.map +1 -1
- package/dist/types/exports/extensions/thirdweb.d.ts +1 -0
- package/dist/types/exports/extensions/thirdweb.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/account/addAdmin.d.ts +13 -0
- package/dist/types/extensions/erc4337/account/addAdmin.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/account/addSessionKey.d.ts +13 -0
- package/dist/types/extensions/erc4337/account/addSessionKey.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/account/removeAdmin.d.ts +13 -0
- package/dist/types/extensions/erc4337/account/removeAdmin.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/account/removeSessionKey.d.ts +13 -0
- package/dist/types/extensions/erc4337/account/removeSessionKey.d.ts.map +1 -1
- package/dist/types/extensions/erc721/__generated__/IDrop/read/claimCondition.d.ts +45 -0
- package/dist/types/extensions/erc721/__generated__/IDrop/read/claimCondition.d.ts.map +1 -0
- package/dist/types/extensions/erc721/drops/read/getActiveClaimCondition.d.ts +13 -0
- package/dist/types/extensions/erc721/drops/read/getActiveClaimCondition.d.ts.map +1 -1
- package/dist/types/extensions/erc721/drops/read/getClaimConditions.d.ts +29 -0
- package/dist/types/extensions/erc721/drops/read/getClaimConditions.d.ts.map +1 -0
- package/dist/types/extensions/erc721/drops/write/claimTo.d.ts +13 -0
- package/dist/types/extensions/erc721/drops/write/claimTo.d.ts.map +1 -1
- package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts +33 -0
- package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts.map +1 -0
- package/dist/types/extensions/erc721/drops/write/setClaimConditions.d.ts +13 -0
- package/dist/types/extensions/erc721/drops/write/setClaimConditions.d.ts.map +1 -1
- package/dist/types/extensions/erc721/write/lazyMint.d.ts +13 -0
- package/dist/types/extensions/erc721/write/lazyMint.d.ts.map +1 -1
- package/dist/types/extensions/permissions/read/getAllMembers.d.ts +13 -0
- package/dist/types/extensions/permissions/read/getAllMembers.d.ts.map +1 -1
- package/dist/types/extensions/permissions/read/getRoleAdmin.d.ts +1 -0
- package/dist/types/extensions/permissions/read/getRoleAdmin.d.ts.map +1 -1
- package/dist/types/extensions/permissions/read/getRoleMember.d.ts +1 -0
- package/dist/types/extensions/permissions/read/getRoleMember.d.ts.map +1 -1
- package/dist/types/extensions/permissions/read/getRoleMemberCount.d.ts +1 -0
- package/dist/types/extensions/permissions/read/getRoleMemberCount.d.ts.map +1 -1
- package/dist/types/extensions/permissions/read/hasRole.d.ts +1 -0
- package/dist/types/extensions/permissions/read/hasRole.d.ts.map +1 -1
- package/dist/types/extensions/permissions/write/{grant.d.ts → grantRole.d.ts} +2 -1
- package/dist/types/extensions/permissions/write/grantRole.d.ts.map +1 -0
- package/dist/types/extensions/permissions/write/renounceRole.d.ts +1 -0
- package/dist/types/extensions/permissions/write/renounceRole.d.ts.map +1 -1
- package/dist/types/extensions/permissions/write/revokeRole.d.ts +1 -0
- package/dist/types/extensions/permissions/write/revokeRole.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
- package/dist/types/extensions/thirdweb/read/contractType.d.ts +31 -0
- package/dist/types/extensions/thirdweb/read/contractType.d.ts.map +1 -0
- package/dist/types/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.d.ts +61 -0
- package/dist/types/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.d.ts.map +1 -0
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +18 -0
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
- package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +6 -5
- package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +3 -0
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +28 -7
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts +6 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
- package/dist/types/stories/ConnectButton/hideButtons.stories.d.ts +23 -0
- package/dist/types/stories/ConnectButton/hideButtons.stories.d.ts.map +1 -0
- package/dist/types/stories/{ConnectButton.stories.d.ts → ConnectButton/themes.stories.d.ts} +3 -4
- package/dist/types/stories/ConnectButton/themes.stories.d.ts.map +1 -0
- package/dist/types/transaction/actions/send-transaction.d.ts.map +1 -1
- package/dist/types/transaction/actions/zksync/getEip721Domain.d.ts.map +1 -1
- package/dist/types/transaction/extract-error.d.ts.map +1 -1
- package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
- package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts +11 -0
- package/dist/types/utils/any-evm/zksync/computeDeploymentAddress.d.ts.map +1 -0
- package/dist/types/utils/any-evm/zksync/constants.d.ts +29 -0
- package/dist/types/utils/any-evm/zksync/constants.d.ts.map +1 -0
- package/dist/types/utils/any-evm/zksync/create2Address.d.ts +9 -0
- package/dist/types/utils/any-evm/zksync/create2Address.d.ts.map +1 -0
- package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts +3 -0
- package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts.map +1 -0
- package/dist/types/utils/domains.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/smart/index.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/utils.d.ts +0 -2
- package/dist/types/wallets/smart/lib/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/contract/deployment/deploy-via-autofactory.ts +13 -0
- package/src/contract/deployment/publisher.ts +5 -0
- package/src/contract/deployment/utils/bootstrap.ts +56 -3
- package/src/contract/deployment/zksync/zkDeployContract.ts +52 -0
- package/src/contract/deployment/zksync/zkDeployCreate2Factory.ts +65 -0
- package/src/contract/deployment/zksync/zkDeployDeterministic.ts +106 -0
- package/src/contract/deployment/zksync/zkDeployProxy.ts +55 -0
- package/src/exports/extensions/erc4337.ts +35 -7
- package/src/exports/extensions/erc721.ts +36 -3
- package/src/exports/extensions/permissions.ts +9 -1
- package/src/exports/extensions/thirdweb.ts +10 -0
- package/src/extensions/erc4337/account/addAdmin.ts +20 -1
- package/src/extensions/erc4337/account/addSessionKey.ts +20 -1
- package/src/extensions/erc4337/account/removeAdmin.ts +20 -1
- package/src/extensions/erc4337/account/removeSessionKey.ts +20 -1
- package/src/extensions/erc721/__generated__/IDrop/read/claimCondition.ts +76 -0
- package/src/extensions/erc721/drop721.test.ts +102 -2
- package/src/extensions/erc721/drops/read/getActiveClaimCondition.ts +32 -6
- package/src/extensions/erc721/drops/read/getClaimConditions.ts +93 -0
- package/src/extensions/erc721/drops/write/claimTo.ts +25 -1
- package/src/extensions/erc721/drops/write/resetClaimEligibility.ts +70 -0
- package/src/extensions/erc721/drops/write/setClaimConditions.ts +30 -1
- package/src/extensions/erc721/write/lazyMint.ts +26 -3
- package/src/extensions/permissions/permissions.test.ts +1 -1
- package/src/extensions/permissions/read/getAllMembers.ts +30 -2
- package/src/extensions/permissions/read/getRoleAdmin.ts +2 -0
- package/src/extensions/permissions/read/getRoleMember.ts +2 -0
- package/src/extensions/permissions/read/getRoleMemberCount.ts +2 -0
- package/src/extensions/permissions/read/hasRole.ts +2 -0
- package/src/extensions/permissions/write/{grant.ts → grantRole.ts} +2 -0
- package/src/extensions/permissions/write/renounceRole.ts +2 -0
- package/src/extensions/permissions/write/revokeRole.ts +2 -0
- package/src/extensions/prebuilts/deploy-published.ts +58 -26
- package/src/extensions/thirdweb/read/contractType.ts +46 -0
- package/src/extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.ts +55 -0
- package/src/react/core/hooks/connection/ConnectButtonProps.ts +21 -0
- package/src/react/web/hooks/transaction/useSendTransaction.tsx +6 -5
- package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +3 -0
- package/src/react/web/ui/ConnectWallet/Details.tsx +108 -73
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +37 -29
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +73 -33
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +37 -2
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.tsx +5 -10
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +27 -20
- package/src/stories/ConnectButton/hideButtons.stories.tsx +83 -0
- package/src/stories/{ConnectButton.stories.ts → ConnectButton/themes.stories.tsx} +3 -4
- package/src/transaction/actions/send-transaction.ts +11 -0
- package/src/transaction/actions/to-serializable-transaction.test.ts +3 -4
- package/src/transaction/actions/zksync/getEip721Domain.ts +4 -2
- package/src/transaction/actions/zksync/send-eip712-transaction.test.ts +27 -2
- package/src/transaction/extract-error.ts +7 -2
- package/src/utils/abi/encode-abi-parameters.test.ts +1 -1
- package/src/utils/abi/encodeAbiParameters.ts +1 -1
- package/src/utils/any-evm/deploy-metadata.ts +11 -2
- package/src/utils/any-evm/zksync/computeDeploymentAddress.ts +24 -0
- package/src/utils/any-evm/zksync/constants.ts +49 -0
- package/src/utils/any-evm/zksync/create2Address.ts +26 -0
- package/src/utils/any-evm/zksync/isZkSyncChain.ts +10 -0
- package/src/utils/domains.ts +1 -1
- package/src/utils/extensions/drops/get-claim-params.ts +4 -4
- package/src/version.ts +1 -1
- package/src/wallets/smart/index.ts +2 -3
- package/src/wallets/smart/lib/utils.ts +0 -10
- package/dist/cjs/extensions/permissions/write/grant.js.map +0 -1
- package/dist/cjs/stories/ConnectButton.stories.js.map +0 -1
- package/dist/esm/extensions/permissions/write/grant.js.map +0 -1
- package/dist/esm/stories/ConnectButton.stories.js.map +0 -1
- package/dist/types/extensions/permissions/write/grant.d.ts.map +0 -1
- package/dist/types/stories/ConnectButton.stories.d.ts.map +0 -1
@@ -0,0 +1,93 @@
|
|
1
|
+
import type { BaseTransactionOptions } from "../../../../transaction/types.js";
|
2
|
+
import type { ClaimCondition } from "../../../../utils/extensions/drops/types.js";
|
3
|
+
import * as SinglePhase from "../../__generated__/DropSinglePhase/read/claimCondition.js";
|
4
|
+
import * as MultiPhase from "../../__generated__/IDrop/read/claimCondition.js";
|
5
|
+
import * as ById from "../../__generated__/IDrop/read/getClaimConditionById.js";
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Retrieves all claim conditions.
|
9
|
+
* @param options - The transaction options.
|
10
|
+
* @returns A promise that resolves to all claim conditions.
|
11
|
+
* @throws An error if the claim conditions are unsupported by the contract.
|
12
|
+
* @extension ERC721
|
13
|
+
* @example
|
14
|
+
* ```ts
|
15
|
+
* import { getClaimConditions } from "thirdweb/extensions/erc721";
|
16
|
+
* const conditions = await getClaimConditions({ contract });
|
17
|
+
* ```
|
18
|
+
*/
|
19
|
+
export async function getClaimConditions(
|
20
|
+
options: BaseTransactionOptions,
|
21
|
+
): Promise<ClaimCondition[]> {
|
22
|
+
const [multi, single] = await Promise.allSettled([
|
23
|
+
(async () => {
|
24
|
+
const [startId, count] = await MultiPhase.claimCondition(options);
|
25
|
+
|
26
|
+
const conditionPromises: Array<
|
27
|
+
ReturnType<typeof ById.getClaimConditionById>
|
28
|
+
> = [];
|
29
|
+
for (let i = startId; i < count; i++) {
|
30
|
+
conditionPromises.push(
|
31
|
+
ById.getClaimConditionById({
|
32
|
+
...options,
|
33
|
+
conditionId: i,
|
34
|
+
}),
|
35
|
+
);
|
36
|
+
}
|
37
|
+
return Promise.all(conditionPromises);
|
38
|
+
})(),
|
39
|
+
SinglePhase.claimCondition(options).then(
|
40
|
+
([
|
41
|
+
startTimestamp,
|
42
|
+
maxClaimableSupply,
|
43
|
+
supplyClaimed,
|
44
|
+
quantityLimitPerWallet,
|
45
|
+
merkleRoot,
|
46
|
+
pricePerToken,
|
47
|
+
currency,
|
48
|
+
metadata,
|
49
|
+
]) => ({
|
50
|
+
startTimestamp,
|
51
|
+
maxClaimableSupply,
|
52
|
+
supplyClaimed,
|
53
|
+
quantityLimitPerWallet,
|
54
|
+
merkleRoot,
|
55
|
+
pricePerToken,
|
56
|
+
currency,
|
57
|
+
metadata,
|
58
|
+
}),
|
59
|
+
),
|
60
|
+
]);
|
61
|
+
if (multi.status === "fulfilled") {
|
62
|
+
return multi.value;
|
63
|
+
}
|
64
|
+
if (single.status === "fulfilled") {
|
65
|
+
return [single.value];
|
66
|
+
}
|
67
|
+
|
68
|
+
throw new Error("Claim condition not found");
|
69
|
+
}
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Checks if the `getClaimConditions` method is supported by the given contract.
|
73
|
+
* @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.
|
74
|
+
* @returns A boolean indicating if the `getClaimConditions` method is supported.
|
75
|
+
* @extension ERC721
|
76
|
+
* @example
|
77
|
+
* ```ts
|
78
|
+
* import { isGetClaimConditionsSupported } from "thirdweb/extensions/erc721";
|
79
|
+
*
|
80
|
+
* const supported = isGetClaimConditionsSupported(["0x..."]);
|
81
|
+
* ```
|
82
|
+
*/
|
83
|
+
export function isGetClaimConditionsSupported(availableSelectors: string[]) {
|
84
|
+
// if single phase is supported, return true
|
85
|
+
if (SinglePhase.isClaimConditionSupported(availableSelectors)) {
|
86
|
+
return true;
|
87
|
+
}
|
88
|
+
// if multi phase is supported, return true
|
89
|
+
return (
|
90
|
+
MultiPhase.isClaimConditionSupported(availableSelectors) &&
|
91
|
+
ById.isGetClaimConditionByIdSupported(availableSelectors)
|
92
|
+
);
|
93
|
+
}
|
@@ -1,7 +1,11 @@
|
|
1
1
|
import type { Address } from "abitype";
|
2
2
|
import type { BaseTransactionOptions } from "../../../../transaction/types.js";
|
3
3
|
import { getClaimParams } from "../../../../utils/extensions/drops/get-claim-params.js";
|
4
|
-
import {
|
4
|
+
import {
|
5
|
+
claim,
|
6
|
+
isClaimSupported,
|
7
|
+
} from "../../__generated__/IDrop/write/claim.js";
|
8
|
+
import { isGetActiveClaimConditionSupported } from "../read/getActiveClaimCondition.js";
|
5
9
|
|
6
10
|
/**
|
7
11
|
* Represents the parameters for claiming an ERC721 token.
|
@@ -46,3 +50,23 @@ export function claimTo(options: BaseTransactionOptions<ClaimToParams>) {
|
|
46
50
|
}),
|
47
51
|
});
|
48
52
|
}
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Checks if the `claimTo` method is supported by the given contract.
|
56
|
+
* @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.
|
57
|
+
* @returns A boolean indicating if the `claimTo` method is supported.
|
58
|
+
* @extension ERC721
|
59
|
+
* @example
|
60
|
+
* ```ts
|
61
|
+
* import { isClaimToSupported } from "thirdweb/extensions/erc721";
|
62
|
+
*
|
63
|
+
* const supported = isClaimToSupported(["0x..."]);
|
64
|
+
* ```
|
65
|
+
*/
|
66
|
+
export function isClaimToSupported(availableSelectors: string[]) {
|
67
|
+
return (
|
68
|
+
isClaimSupported(availableSelectors) &&
|
69
|
+
// required to check if the contract supports the getActiveClaimCondition method
|
70
|
+
isGetActiveClaimConditionSupported(availableSelectors)
|
71
|
+
);
|
72
|
+
}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import type { Hex } from "viem";
|
2
|
+
import type { BaseTransactionOptions } from "../../../../transaction/types.js";
|
3
|
+
import type { ClaimCondition } from "../../../../utils/extensions/drops/types.js";
|
4
|
+
import {
|
5
|
+
isSetClaimConditionsSupported,
|
6
|
+
setClaimConditions,
|
7
|
+
} from "../../__generated__/IDrop/write/setClaimConditions.js";
|
8
|
+
import {
|
9
|
+
getClaimConditions,
|
10
|
+
isGetClaimConditionsSupported,
|
11
|
+
} from "../read/getClaimConditions.js";
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Reset the claim eligibility for all users.
|
15
|
+
* @param options
|
16
|
+
* @returns the prepared transaction
|
17
|
+
* @extension ERC721
|
18
|
+
* @example
|
19
|
+
* ```ts
|
20
|
+
* import { resetClaimEligibility } from "thirdweb/extensions/erc721";
|
21
|
+
* import { sendTransaction } from "thirdweb";
|
22
|
+
*
|
23
|
+
* const transaction = resetClaimEligibility({
|
24
|
+
* contract,
|
25
|
+
* });
|
26
|
+
*
|
27
|
+
* await sendTransaction({ transaction, account });
|
28
|
+
* ```
|
29
|
+
*/
|
30
|
+
export function resetClaimEligibility(options: BaseTransactionOptions) {
|
31
|
+
// download existing conditions
|
32
|
+
return setClaimConditions({
|
33
|
+
contract: options.contract,
|
34
|
+
asyncParams: async () => {
|
35
|
+
// get existing conditions
|
36
|
+
const existingConditions = await getClaimConditions(options);
|
37
|
+
|
38
|
+
// then simply return the exact same ones, but with the resetClaimEligibility flag set to true
|
39
|
+
return {
|
40
|
+
// type is necessary because of viem hex shenanigans (strict vs non-strict `0x` prefix string)
|
41
|
+
phases: existingConditions as Array<
|
42
|
+
ClaimCondition & {
|
43
|
+
currency: Hex;
|
44
|
+
merkleRoot: Hex;
|
45
|
+
}
|
46
|
+
>,
|
47
|
+
resetClaimEligibility: true,
|
48
|
+
};
|
49
|
+
},
|
50
|
+
});
|
51
|
+
}
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Checks if the `resetClaimEligibility` method is supported by the given contract.
|
55
|
+
* @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.
|
56
|
+
* @returns A boolean indicating if the `resetClaimEligibility` method is supported.
|
57
|
+
* @extension ERC721
|
58
|
+
* @example
|
59
|
+
* ```ts
|
60
|
+
* import { isResetClaimEligibilitySupported } from "thirdweb/extensions/erc721";
|
61
|
+
*
|
62
|
+
* const supported = isResetClaimEligibilitySupported(["0x..."]);
|
63
|
+
* ```
|
64
|
+
*/
|
65
|
+
export function isResetClaimEligibilitySupported(availableSelectors: string[]) {
|
66
|
+
return (
|
67
|
+
isGetClaimConditionsSupported(availableSelectors) &&
|
68
|
+
isSetClaimConditionsSupported(availableSelectors)
|
69
|
+
);
|
70
|
+
}
|
@@ -1,7 +1,13 @@
|
|
1
1
|
import type { BaseTransactionOptions } from "../../../../transaction/types.js";
|
2
2
|
import { getMulticallSetClaimConditionTransactions } from "../../../../utils/extensions/drops/get-multicall-set-claim-claim-conditon-transactions.js";
|
3
3
|
import type { ClaimConditionsInput } from "../../../../utils/extensions/drops/types.js";
|
4
|
-
import {
|
4
|
+
import { isSetContractURISupported } from "../../../common/__generated__/IContractMetadata/write/setContractURI.js";
|
5
|
+
import {
|
6
|
+
isMulticallSupported,
|
7
|
+
multicall,
|
8
|
+
} from "../../../common/__generated__/IMulticall/write/multicall.js";
|
9
|
+
import { isGetContractMetadataSupported } from "../../../common/read/getContractMetadata.js";
|
10
|
+
import { isSetClaimConditionsSupported as isSetClaimConditionsSupportedGenerated } from "../../__generated__/IDrop/write/setClaimConditions.js";
|
5
11
|
|
6
12
|
/**
|
7
13
|
* @extension ERC721
|
@@ -54,3 +60,26 @@ export function setClaimConditions(
|
|
54
60
|
},
|
55
61
|
});
|
56
62
|
}
|
63
|
+
|
64
|
+
/**
|
65
|
+
* Checks if the `setClaimConditions` method is supported by the given contract.
|
66
|
+
* @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.
|
67
|
+
* @returns A boolean indicating if the `setClaimConditions` method is supported.
|
68
|
+
* @extension ERC721
|
69
|
+
* @example
|
70
|
+
* ```ts
|
71
|
+
* import { isSetClaimConditionsSupported } from "thirdweb/extensions/erc721";
|
72
|
+
*
|
73
|
+
* const supported = isSetClaimConditionsSupported(["0x..."]);
|
74
|
+
* ```
|
75
|
+
*/
|
76
|
+
export function isSetClaimConditionsSupported(availableSelectors: string[]) {
|
77
|
+
return (
|
78
|
+
isMulticallSupported(availableSelectors) &&
|
79
|
+
// needed for setting contract metadata
|
80
|
+
isGetContractMetadataSupported(availableSelectors) &&
|
81
|
+
isSetContractURISupported(availableSelectors) &&
|
82
|
+
// needs to actually be able to set the claim Conditions
|
83
|
+
isSetClaimConditionsSupportedGenerated(availableSelectors)
|
84
|
+
);
|
85
|
+
}
|
@@ -5,8 +5,11 @@ import {
|
|
5
5
|
uploadOrExtractURIs,
|
6
6
|
} from "../../../utils/ipfs.js";
|
7
7
|
import type { Prettify } from "../../../utils/type-utils.js";
|
8
|
-
import {
|
9
|
-
|
8
|
+
import {
|
9
|
+
isNextTokenIdToMintSupported,
|
10
|
+
nextTokenIdToMint,
|
11
|
+
} from "../__generated__/IERC721Enumerable/read/nextTokenIdToMint.js";
|
12
|
+
import * as LazyMint from "../__generated__/ILazyMint/write/lazyMint.js";
|
10
13
|
|
11
14
|
/**
|
12
15
|
* Represents the input data for creating an NFT (Non-Fungible Token).
|
@@ -57,7 +60,7 @@ export type LazyMintParams = {
|
|
57
60
|
* ```
|
58
61
|
*/
|
59
62
|
export function lazyMint(options: BaseTransactionOptions<LazyMintParams>) {
|
60
|
-
return
|
63
|
+
return LazyMint.lazyMint({
|
61
64
|
contract: options.contract,
|
62
65
|
asyncParams: async () => {
|
63
66
|
const startFileNumber = await nextTokenIdToMint({
|
@@ -81,3 +84,23 @@ export function lazyMint(options: BaseTransactionOptions<LazyMintParams>) {
|
|
81
84
|
},
|
82
85
|
});
|
83
86
|
}
|
87
|
+
|
88
|
+
/**
|
89
|
+
* Checks if the `lazyMint` method is supported by the given contract.
|
90
|
+
* @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.
|
91
|
+
* @returns A boolean indicating if the `lazyMint` method is supported.
|
92
|
+
* @extension ERC721
|
93
|
+
* @example
|
94
|
+
* ```ts
|
95
|
+
* import { isLazyMintSupported } from "thirdweb/extensions/erc721";
|
96
|
+
*
|
97
|
+
* const supported = isLazyMintSupported(["0x..."]);
|
98
|
+
* ```
|
99
|
+
*/
|
100
|
+
export function isLazyMintSupported(availableSelectors: string[]) {
|
101
|
+
return (
|
102
|
+
LazyMint.isLazyMintSupported(availableSelectors) &&
|
103
|
+
// required because we use it in the lazyMint function
|
104
|
+
isNextTokenIdToMintSupported(availableSelectors)
|
105
|
+
);
|
106
|
+
}
|
@@ -10,7 +10,7 @@ import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-co
|
|
10
10
|
import { deployERC20Contract } from "../prebuilts/deploy-erc20.js";
|
11
11
|
import { getAllRoleMembers } from "./read/getAllMembers.js";
|
12
12
|
import { hasRole } from "./read/hasRole.js";
|
13
|
-
import { grantRole } from "./write/
|
13
|
+
import { grantRole } from "./write/grantRole.js";
|
14
14
|
import { revokeRole } from "./write/revokeRole.js";
|
15
15
|
|
16
16
|
describe.runIf(process.env.TW_SECRET_KEY)("Permissions", () => {
|
@@ -1,6 +1,12 @@
|
|
1
1
|
import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
2
|
-
import {
|
3
|
-
|
2
|
+
import {
|
3
|
+
getRoleMember,
|
4
|
+
isGetRoleMemberSupported,
|
5
|
+
} from "../__generated__/IPermissionsEnumerable/read/getRoleMember.js";
|
6
|
+
import {
|
7
|
+
getRoleMemberCount,
|
8
|
+
isGetRoleMemberCountSupported,
|
9
|
+
} from "../__generated__/IPermissionsEnumerable/read/getRoleMemberCount.js";
|
4
10
|
import { type RoleInput, getRoleHash } from "../utils.js";
|
5
11
|
|
6
12
|
/**
|
@@ -47,3 +53,25 @@ export async function getAllRoleMembers(
|
|
47
53
|
|
48
54
|
return Promise.all(promises);
|
49
55
|
}
|
56
|
+
|
57
|
+
/**
|
58
|
+
* Checks if the `getAllRoleMembers` method is supported by the given contract.
|
59
|
+
* @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
|
60
|
+
* @returns A boolean indicating if the `getAllRoleMembers` method is supported.
|
61
|
+
* @extension PERMISSIONS
|
62
|
+
* @example
|
63
|
+
* ```ts
|
64
|
+
* import { isGetAllRoleMembersSupported } from "thirdweb/extensions/permissions";
|
65
|
+
*
|
66
|
+
* const supported = isGetAllRoleMembersSupported(["0x..."]);
|
67
|
+
* ```
|
68
|
+
*/
|
69
|
+
export function isGetAllRoleMembersSupported(
|
70
|
+
availableSelectors: string[],
|
71
|
+
): boolean {
|
72
|
+
// both need to be supported to get all members
|
73
|
+
return (
|
74
|
+
isGetRoleMemberSupported(availableSelectors) &&
|
75
|
+
isGetRoleMemberCountSupported(availableSelectors)
|
76
|
+
);
|
77
|
+
}
|
@@ -2,6 +2,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
|
2
2
|
import { getRoleAdmin as generatedGetRoleAdmin } from "../__generated__/IPermissions/read/getRoleAdmin.js";
|
3
3
|
import { type RoleInput, getRoleHash } from "../utils.js";
|
4
4
|
|
5
|
+
export { isGetRoleAdminSupported } from "../__generated__/IPermissions/read/getRoleAdmin.js";
|
6
|
+
|
5
7
|
/**
|
6
8
|
* @extension PERMISSIONS
|
7
9
|
*/
|
@@ -2,6 +2,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
|
2
2
|
import { getRoleMember as generatedGetRoleMember } from "../__generated__/IPermissionsEnumerable/read/getRoleMember.js";
|
3
3
|
import { type RoleInput, getRoleHash } from "../utils.js";
|
4
4
|
|
5
|
+
export { isGetRoleMemberSupported } from "../__generated__/IPermissionsEnumerable/read/getRoleMember.js";
|
6
|
+
|
5
7
|
/**
|
6
8
|
* @extension PERMISSIONS
|
7
9
|
*/
|
@@ -2,6 +2,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
|
2
2
|
import { getRoleMemberCount as generatedGetRoleMemberCount } from "../__generated__/IPermissionsEnumerable/read/getRoleMemberCount.js";
|
3
3
|
import { type RoleInput, getRoleHash } from "../utils.js";
|
4
4
|
|
5
|
+
export { isGetRoleMemberCountSupported } from "../__generated__/IPermissionsEnumerable/read/getRoleMemberCount.js";
|
6
|
+
|
5
7
|
/**
|
6
8
|
* @extension PERMISSIONS
|
7
9
|
*/
|
@@ -2,6 +2,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
|
2
2
|
import { hasRole as hasRoleGenerated } from "../__generated__/IPermissions/read/hasRole.js";
|
3
3
|
import { type RoleInput, getRoleHash } from "../utils.js";
|
4
4
|
|
5
|
+
export { isHasRoleSupported } from "../__generated__/IPermissions/read/hasRole.js";
|
6
|
+
|
5
7
|
/**
|
6
8
|
* @extension PERMISSIONS
|
7
9
|
*/
|
@@ -3,6 +3,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
|
3
3
|
import { grantRole as generatedGrantRole } from "../__generated__/IPermissions/write/grantRole.js";
|
4
4
|
import { type RoleInput, getRoleHash } from "../utils.js";
|
5
5
|
|
6
|
+
export { isGrantRoleSupported } from "../__generated__/IPermissions/write/grantRole.js";
|
7
|
+
|
6
8
|
/**
|
7
9
|
* @extension PERMISSIONS
|
8
10
|
*/
|
@@ -3,6 +3,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
|
3
3
|
import { renounceRole as generatedRenounceRole } from "../__generated__/IPermissions/write/renounceRole.js";
|
4
4
|
import { type RoleInput, getRoleHash } from "../utils.js";
|
5
5
|
|
6
|
+
export { isRenounceRoleSupported } from "../__generated__/IPermissions/write/renounceRole.js";
|
7
|
+
|
6
8
|
/**
|
7
9
|
* @extension PERMISSIONS
|
8
10
|
*/
|
@@ -3,6 +3,8 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
|
3
3
|
import { revokeRole as generatedRevokeRole } from "../__generated__/IPermissions/write/revokeRole.js";
|
4
4
|
import { type RoleInput, getRoleHash } from "../utils.js";
|
5
5
|
|
6
|
+
export { isRevokeRoleSupported } from "../__generated__/IPermissions/write/revokeRole.js";
|
7
|
+
|
6
8
|
/**
|
7
9
|
* @extension PERMISSIONS
|
8
10
|
*/
|
@@ -1,12 +1,15 @@
|
|
1
|
-
import type { AbiConstructor } from "abitype";
|
1
|
+
import type { AbiConstructor, AbiFunction } from "abitype";
|
2
2
|
import type { Chain } from "../../chains/types.js";
|
3
3
|
import type { ThirdwebClient } from "../../client/client.js";
|
4
4
|
import { getContract } from "../../contract/contract.js";
|
5
5
|
import { fetchPublishedContractMetadata } from "../../contract/deployment/publisher.js";
|
6
|
+
import { zkDeployContract } from "../../contract/deployment/zksync/zkDeployContract.js";
|
6
7
|
import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
|
7
8
|
import { simulateTransaction } from "../../transaction/actions/simulate.js";
|
8
9
|
import { prepareContractCall } from "../../transaction/prepare-contract-call.js";
|
9
10
|
import { resolveMethod } from "../../transaction/resolve-method.js";
|
11
|
+
import type { CompilerMetadata } from "../../utils/any-evm/deploy-metadata.js";
|
12
|
+
import { isZkSyncChain } from "../../utils/any-evm/zksync/isZkSyncChain.js";
|
10
13
|
import type { Account } from "../../wallets/interfaces/wallet.js";
|
11
14
|
|
12
15
|
/**
|
@@ -58,26 +61,19 @@ export async function deployPublishedContract(
|
|
58
61
|
const { compilerMetadata, extendedMetadata } =
|
59
62
|
await fetchPublishedContractMetadata({
|
60
63
|
client,
|
61
|
-
contractId,
|
64
|
+
contractId: isZkSyncChain(chain) ? `${contractId}_ZkSync` : contractId,
|
62
65
|
publisher,
|
63
66
|
version,
|
64
67
|
});
|
65
68
|
|
66
69
|
switch (extendedMetadata?.deployType) {
|
67
70
|
case "standard": {
|
68
|
-
|
69
|
-
"../../contract/deployment/deploy-with-abi.js"
|
70
|
-
);
|
71
|
-
return deployContract({
|
71
|
+
return directDeploy({
|
72
72
|
account,
|
73
73
|
client,
|
74
74
|
chain,
|
75
|
-
|
76
|
-
|
77
|
-
(compilerMetadata.abi.find(
|
78
|
-
(i) => i.type === "constructor",
|
79
|
-
) as AbiConstructor) || [],
|
80
|
-
constructorParams: contractParams,
|
75
|
+
compilerMetadata,
|
76
|
+
contractParams,
|
81
77
|
});
|
82
78
|
}
|
83
79
|
case "autoFactory": {
|
@@ -97,16 +93,23 @@ export async function deployPublishedContract(
|
|
97
93
|
constructorParams: implementationConstructorParams || [],
|
98
94
|
publisher,
|
99
95
|
});
|
96
|
+
const initializeFunction = compilerMetadata.abi.find(
|
97
|
+
(i) =>
|
98
|
+
i.type === "function" &&
|
99
|
+
i.name ===
|
100
|
+
(extendedMetadata.factoryDeploymentData
|
101
|
+
?.implementationInitializerFunction || "initialize"),
|
102
|
+
) as AbiFunction;
|
103
|
+
if (!initializeFunction) {
|
104
|
+
throw new Error(`Could not find initialize function for ${contractId}`);
|
105
|
+
}
|
100
106
|
const initializeTransaction = prepareContractCall({
|
101
107
|
contract: getContract({
|
102
108
|
client,
|
103
109
|
chain,
|
104
110
|
address: implementationContract.address,
|
105
111
|
}),
|
106
|
-
method:
|
107
|
-
extendedMetadata.factoryDeploymentData
|
108
|
-
?.implementationInitializerFunction || "initialize",
|
109
|
-
),
|
112
|
+
method: initializeFunction,
|
110
113
|
params: contractParams,
|
111
114
|
});
|
112
115
|
|
@@ -154,19 +157,12 @@ export async function deployPublishedContract(
|
|
154
157
|
}
|
155
158
|
case undefined: {
|
156
159
|
// Default to standard deployment if none was specified
|
157
|
-
|
158
|
-
"../../contract/deployment/deploy-with-abi.js"
|
159
|
-
);
|
160
|
-
return deployContract({
|
160
|
+
return directDeploy({
|
161
161
|
account,
|
162
162
|
client,
|
163
163
|
chain,
|
164
|
-
|
165
|
-
|
166
|
-
(compilerMetadata.abi.find(
|
167
|
-
(i) => i.type === "constructor",
|
168
|
-
) as AbiConstructor) || [],
|
169
|
-
constructorParams: contractParams,
|
164
|
+
compilerMetadata,
|
165
|
+
contractParams,
|
170
166
|
});
|
171
167
|
}
|
172
168
|
default:
|
@@ -176,3 +172,39 @@ export async function deployPublishedContract(
|
|
176
172
|
);
|
177
173
|
}
|
178
174
|
}
|
175
|
+
|
176
|
+
async function directDeploy(options: {
|
177
|
+
account: Account;
|
178
|
+
client: ThirdwebClient;
|
179
|
+
chain: Chain;
|
180
|
+
compilerMetadata: CompilerMetadata;
|
181
|
+
contractParams: unknown[];
|
182
|
+
}) {
|
183
|
+
const { account, client, chain, compilerMetadata, contractParams } = options;
|
184
|
+
|
185
|
+
if (isZkSyncChain(chain)) {
|
186
|
+
return zkDeployContract({
|
187
|
+
account,
|
188
|
+
client,
|
189
|
+
chain,
|
190
|
+
bytecode: compilerMetadata.bytecode,
|
191
|
+
abi: compilerMetadata.abi,
|
192
|
+
params: contractParams,
|
193
|
+
});
|
194
|
+
}
|
195
|
+
|
196
|
+
const { deployContract } = await import(
|
197
|
+
"../../contract/deployment/deploy-with-abi.js"
|
198
|
+
);
|
199
|
+
return deployContract({
|
200
|
+
account,
|
201
|
+
client,
|
202
|
+
chain,
|
203
|
+
bytecode: compilerMetadata.bytecode,
|
204
|
+
constructorAbi:
|
205
|
+
(compilerMetadata.abi.find(
|
206
|
+
(i) => i.type === "constructor",
|
207
|
+
) as AbiConstructor) || [],
|
208
|
+
constructorParams: contractParams,
|
209
|
+
});
|
210
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
2
|
+
import { hexToString } from "../../../utils/encoding/hex.js";
|
3
|
+
import * as ContractTypeGenerated from "../__generated__/IThirdwebContract/read/contractType.js";
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Checks if the `contractType` method is supported by the given contract.
|
7
|
+
* @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
|
8
|
+
* @returns A boolean indicating if the `contractType` method is supported.
|
9
|
+
* @extension THIRDWEB
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* import { isContractTypeSupported } from "thirdweb/extensions/thirdweb";
|
13
|
+
*
|
14
|
+
* const supported = isContractTypeSupported(["0x..."]);
|
15
|
+
* ```
|
16
|
+
*/
|
17
|
+
export function isContractTypeSupported(availableSelectors: string[]) {
|
18
|
+
return ContractTypeGenerated.isContractTypeSupported(availableSelectors);
|
19
|
+
}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* Calls the "contractType" function on the contract.
|
23
|
+
* @param options - The options for the contractType function.
|
24
|
+
* @returns The parsed result of the function call.
|
25
|
+
* @extension THIRDWEB
|
26
|
+
* @example
|
27
|
+
* ```ts
|
28
|
+
* import { contractType } from "thirdweb/extensions/thirdweb";
|
29
|
+
*
|
30
|
+
* const result = await contractType({
|
31
|
+
* contract,
|
32
|
+
* });
|
33
|
+
*
|
34
|
+
* ```
|
35
|
+
*/
|
36
|
+
export async function contractType(options: BaseTransactionOptions) {
|
37
|
+
try {
|
38
|
+
const rawContractType = await ContractTypeGenerated.contractType(options);
|
39
|
+
const utf8 = hexToString(rawContractType);
|
40
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: required here
|
41
|
+
return utf8.replace(/\x00/g, "") || "custom";
|
42
|
+
} catch {
|
43
|
+
// backwards compat, if this fails for any reason we assume it's a custom contract
|
44
|
+
return "custom";
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { prepareEvent } from "../../../../../event/prepare-event.js";
|
2
|
+
import type { AbiParameterToPrimitiveType } from "abitype";
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Represents the filters for the "ContractDeployed" event.
|
6
|
+
*/
|
7
|
+
export type ContractDeployedEventFilters = Partial<{
|
8
|
+
deployerAddress: AbiParameterToPrimitiveType<{
|
9
|
+
type: "address";
|
10
|
+
name: "deployerAddress";
|
11
|
+
indexed: true;
|
12
|
+
}>;
|
13
|
+
bytecodeHash: AbiParameterToPrimitiveType<{
|
14
|
+
type: "bytes32";
|
15
|
+
name: "bytecodeHash";
|
16
|
+
indexed: true;
|
17
|
+
}>;
|
18
|
+
contractAddress: AbiParameterToPrimitiveType<{
|
19
|
+
type: "address";
|
20
|
+
name: "contractAddress";
|
21
|
+
indexed: true;
|
22
|
+
}>;
|
23
|
+
}>;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* Creates an event object for the ContractDeployed event.
|
27
|
+
* @param filters - Optional filters to apply to the event.
|
28
|
+
* @returns The prepared event object.
|
29
|
+
* @extension ZKSYNC
|
30
|
+
* @example
|
31
|
+
* ```ts
|
32
|
+
* import { getContractEvents } from "thirdweb";
|
33
|
+
* import { contractDeployedEvent } from "thirdweb/extensions/zksync";
|
34
|
+
*
|
35
|
+
* const events = await getContractEvents({
|
36
|
+
* contract,
|
37
|
+
* events: [
|
38
|
+
* contractDeployedEvent({
|
39
|
+
* deployerAddress: ...,
|
40
|
+
* bytecodeHash: ...,
|
41
|
+
* contractAddress: ...,
|
42
|
+
* })
|
43
|
+
* ],
|
44
|
+
* });
|
45
|
+
* ```
|
46
|
+
*/
|
47
|
+
export function contractDeployedEvent(
|
48
|
+
filters: ContractDeployedEventFilters = {},
|
49
|
+
) {
|
50
|
+
return prepareEvent({
|
51
|
+
signature:
|
52
|
+
"event ContractDeployed(address indexed deployerAddress, bytes32 indexed bytecodeHash, address indexed contractAddress)",
|
53
|
+
filters,
|
54
|
+
});
|
55
|
+
}
|