thirdweb 5.50.0 → 5.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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/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/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js +8 -4
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/ClaimButton/index.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/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/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/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/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js +8 -4
- package/dist/esm/react/web/ui/prebuilt/thirdweb/ClaimButton/index.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/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/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/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/react/web/ui/prebuilt/thirdweb/ClaimButton/index.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/thirdweb/ClaimButton/types.d.ts +8 -5
- package/dist/types/react/web/ui/prebuilt/thirdweb/ClaimButton/types.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/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/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/react/web/ui/prebuilt/thirdweb/ClaimButton/index.tsx +8 -4
- package/src/react/web/ui/prebuilt/thirdweb/ClaimButton/types.ts +8 -5
- 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/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,52 @@
|
|
1
|
+
import type { Abi } from "abitype";
|
2
|
+
import { encodeDeployData } from "viem/zksync";
|
3
|
+
import { parseEventLogs } from "../../../event/actions/parse-logs.js";
|
4
|
+
import { contractDeployedEvent } from "../../../extensions/zksync/__generated__/ContractDeployer/events/ContractDeployed.js";
|
5
|
+
import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
|
6
|
+
import { prepareTransaction } from "../../../transaction/prepare-transaction.js";
|
7
|
+
import { CONTRACT_DEPLOYER_ADDRESS } from "../../../utils/any-evm/zksync/constants.js";
|
8
|
+
import type { Hex } from "../../../utils/encoding/hex.js";
|
9
|
+
import type { ClientAndChainAndAccount } from "../../../utils/types.js";
|
10
|
+
|
11
|
+
/**
|
12
|
+
* @internal
|
13
|
+
*/
|
14
|
+
export async function zkDeployContract(
|
15
|
+
options: ClientAndChainAndAccount & {
|
16
|
+
abi: Abi;
|
17
|
+
bytecode: Hex;
|
18
|
+
params?: unknown[];
|
19
|
+
},
|
20
|
+
) {
|
21
|
+
const data = encodeDeployData({
|
22
|
+
abi: options.abi,
|
23
|
+
bytecode: options.bytecode,
|
24
|
+
deploymentType: "create",
|
25
|
+
args: options.params,
|
26
|
+
});
|
27
|
+
|
28
|
+
const receipt = await sendAndConfirmTransaction({
|
29
|
+
account: options.account,
|
30
|
+
transaction: prepareTransaction({
|
31
|
+
chain: options.chain,
|
32
|
+
client: options.client,
|
33
|
+
to: CONTRACT_DEPLOYER_ADDRESS,
|
34
|
+
data,
|
35
|
+
eip712: {
|
36
|
+
factoryDeps: [options.bytecode],
|
37
|
+
// TODO (zksync): allow passing in a paymaster
|
38
|
+
},
|
39
|
+
}),
|
40
|
+
});
|
41
|
+
|
42
|
+
const events = parseEventLogs({
|
43
|
+
logs: receipt.logs,
|
44
|
+
events: [contractDeployedEvent()],
|
45
|
+
});
|
46
|
+
|
47
|
+
const contractAddress = events[0]?.args.contractAddress;
|
48
|
+
if (!contractAddress) {
|
49
|
+
throw new Error("Contract creation failed");
|
50
|
+
}
|
51
|
+
return contractAddress;
|
52
|
+
}
|
@@ -0,0 +1,65 @@
|
|
1
|
+
import { parseAbi } from "abitype";
|
2
|
+
import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
|
3
|
+
import { prepareTransaction } from "../../../transaction/prepare-transaction.js";
|
4
|
+
import {
|
5
|
+
PUBLISHED_PRIVATE_KEY,
|
6
|
+
ZKSYNC_SINGLETON_FACTORY,
|
7
|
+
singletonFactoryAbi,
|
8
|
+
singletonFactoryBytecode,
|
9
|
+
} from "../../../utils/any-evm/zksync/constants.js";
|
10
|
+
import { isContractDeployed } from "../../../utils/bytecode/is-contract-deployed.js";
|
11
|
+
import type { ClientAndChainAndAccount } from "../../../utils/types.js";
|
12
|
+
import { toWei } from "../../../utils/units.js";
|
13
|
+
import { privateKeyToAccount } from "../../../wallets/private-key.js";
|
14
|
+
import { getWalletBalance } from "../../../wallets/utils/getWalletBalance.js";
|
15
|
+
import { zkDeployContract } from "./zkDeployContract.js";
|
16
|
+
|
17
|
+
/**
|
18
|
+
* @internal
|
19
|
+
*/
|
20
|
+
export async function zkDeployCreate2Factory(
|
21
|
+
options: ClientAndChainAndAccount,
|
22
|
+
) {
|
23
|
+
const isDeployed = await isContractDeployed({
|
24
|
+
address: ZKSYNC_SINGLETON_FACTORY,
|
25
|
+
chain: options.chain,
|
26
|
+
client: options.client,
|
27
|
+
});
|
28
|
+
|
29
|
+
if (isDeployed) {
|
30
|
+
return ZKSYNC_SINGLETON_FACTORY;
|
31
|
+
}
|
32
|
+
|
33
|
+
const create2Signer = privateKeyToAccount({
|
34
|
+
client: options.client,
|
35
|
+
privateKey: PUBLISHED_PRIVATE_KEY,
|
36
|
+
});
|
37
|
+
const valueToSend = toWei("0.01");
|
38
|
+
const balance = await getWalletBalance({
|
39
|
+
address: create2Signer.address,
|
40
|
+
chain: options.chain,
|
41
|
+
client: options.client,
|
42
|
+
});
|
43
|
+
|
44
|
+
if (balance.value < valueToSend) {
|
45
|
+
await sendAndConfirmTransaction({
|
46
|
+
account: options.account,
|
47
|
+
transaction: prepareTransaction({
|
48
|
+
chain: options.chain,
|
49
|
+
client: options.client,
|
50
|
+
to: create2Signer.address,
|
51
|
+
value: valueToSend,
|
52
|
+
}),
|
53
|
+
});
|
54
|
+
}
|
55
|
+
|
56
|
+
await zkDeployContract({
|
57
|
+
client: options.client,
|
58
|
+
chain: options.chain,
|
59
|
+
account: options.account,
|
60
|
+
abi: parseAbi(singletonFactoryAbi),
|
61
|
+
bytecode: singletonFactoryBytecode,
|
62
|
+
});
|
63
|
+
|
64
|
+
return ZKSYNC_SINGLETON_FACTORY;
|
65
|
+
}
|
@@ -0,0 +1,106 @@
|
|
1
|
+
import { type Abi, parseAbi } from "abitype";
|
2
|
+
import { hashBytecode } from "viem/zksync";
|
3
|
+
import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
|
4
|
+
import { prepareContractCall } from "../../../transaction/prepare-contract-call.js";
|
5
|
+
import { readContract } from "../../../transaction/read-contract.js";
|
6
|
+
import { encodeAbiParameters } from "../../../utils/abi/encodeAbiParameters.js";
|
7
|
+
import { keccakId } from "../../../utils/any-evm/keccak-id.js";
|
8
|
+
import { computeDeploymentAddress } from "../../../utils/any-evm/zksync/computeDeploymentAddress.js";
|
9
|
+
import {
|
10
|
+
KNOWN_CODES_STORAGE,
|
11
|
+
singletonFactoryAbi,
|
12
|
+
} from "../../../utils/any-evm/zksync/constants.js";
|
13
|
+
import { isContractDeployed } from "../../../utils/bytecode/is-contract-deployed.js";
|
14
|
+
import { ensureBytecodePrefix } from "../../../utils/bytecode/prefix.js";
|
15
|
+
import { type Hex, uint8ArrayToHex } from "../../../utils/encoding/hex.js";
|
16
|
+
import type { ClientAndChainAndAccount } from "../../../utils/types.js";
|
17
|
+
import { getContract } from "../../contract.js";
|
18
|
+
import { zkDeployContract } from "./zkDeployContract.js";
|
19
|
+
import { zkDeployCreate2Factory } from "./zkDeployCreate2Factory.js";
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @internal
|
23
|
+
*/
|
24
|
+
export async function zkDeployContractDeterministic(
|
25
|
+
options: ClientAndChainAndAccount & {
|
26
|
+
abi: Abi;
|
27
|
+
bytecode: Hex;
|
28
|
+
params: unknown[];
|
29
|
+
salt?: string;
|
30
|
+
},
|
31
|
+
) {
|
32
|
+
const constructorAbi = options.abi.find(
|
33
|
+
(x) => "type" in x && x.type === "constructor",
|
34
|
+
) || { inputs: [] };
|
35
|
+
const encodedArgs = encodeAbiParameters(
|
36
|
+
constructorAbi.inputs,
|
37
|
+
options.params || [],
|
38
|
+
);
|
39
|
+
const create2FactoryAddress = await zkDeployCreate2Factory({
|
40
|
+
client: options.client,
|
41
|
+
chain: options.chain,
|
42
|
+
account: options.account,
|
43
|
+
});
|
44
|
+
const bytecode = ensureBytecodePrefix(options.bytecode);
|
45
|
+
const bytecodeHash = uint8ArrayToHex(hashBytecode(bytecode));
|
46
|
+
const predictedAddress = computeDeploymentAddress({
|
47
|
+
bytecodeHash,
|
48
|
+
encodedArgs,
|
49
|
+
create2FactoryAddress,
|
50
|
+
salt: options.salt,
|
51
|
+
});
|
52
|
+
const deployed = await isContractDeployed({
|
53
|
+
address: predictedAddress,
|
54
|
+
chain: options.chain,
|
55
|
+
client: options.client,
|
56
|
+
});
|
57
|
+
if (!deployed) {
|
58
|
+
// check if bytecodehash is known
|
59
|
+
const knownCodesStorageContract = getContract({
|
60
|
+
address: KNOWN_CODES_STORAGE,
|
61
|
+
chain: options.chain,
|
62
|
+
client: options.client,
|
63
|
+
});
|
64
|
+
const marker = await readContract({
|
65
|
+
contract: knownCodesStorageContract,
|
66
|
+
method: "function getMarker(bytes32 _hash) view returns (uint256 marker)",
|
67
|
+
params: [bytecodeHash],
|
68
|
+
});
|
69
|
+
// if not known, publish the bytecodehash
|
70
|
+
if (marker !== 1n) {
|
71
|
+
await zkDeployContract({
|
72
|
+
client: options.client,
|
73
|
+
chain: options.chain,
|
74
|
+
account: options.account,
|
75
|
+
abi: options.abi,
|
76
|
+
bytecode,
|
77
|
+
params: options.params,
|
78
|
+
});
|
79
|
+
}
|
80
|
+
|
81
|
+
console.log(
|
82
|
+
`deploying contract via create2 factory at: ${predictedAddress}`,
|
83
|
+
);
|
84
|
+
|
85
|
+
// deploy with create2 factory
|
86
|
+
const factory = getContract({
|
87
|
+
address: create2FactoryAddress,
|
88
|
+
chain: options.chain,
|
89
|
+
client: options.client,
|
90
|
+
abi: parseAbi(singletonFactoryAbi),
|
91
|
+
});
|
92
|
+
|
93
|
+
const salt = options?.salt ? keccakId(options.salt) : keccakId("thirdweb");
|
94
|
+
|
95
|
+
await sendAndConfirmTransaction({
|
96
|
+
account: options.account,
|
97
|
+
transaction: prepareContractCall({
|
98
|
+
contract: factory,
|
99
|
+
method: "deploy",
|
100
|
+
params: [salt, bytecodeHash, encodedArgs],
|
101
|
+
}),
|
102
|
+
});
|
103
|
+
}
|
104
|
+
|
105
|
+
return predictedAddress;
|
106
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { encode } from "../../../transaction/actions/encode.js";
|
2
|
+
import type { PreparedTransaction } from "../../../transaction/prepare-transaction.js";
|
3
|
+
import {
|
4
|
+
twProxyAbi,
|
5
|
+
twProxyBytecode,
|
6
|
+
} from "../../../utils/any-evm/zksync/constants.js";
|
7
|
+
import { isContractDeployed } from "../../../utils/bytecode/is-contract-deployed.js";
|
8
|
+
import { resolvePromisedValue } from "../../../utils/promise/resolve-promised-value.js";
|
9
|
+
import type { ClientAndChainAndAccount } from "../../../utils/types.js";
|
10
|
+
import type { ThirdwebContract } from "../../contract.js";
|
11
|
+
import { zkDeployContract } from "./zkDeployContract.js";
|
12
|
+
|
13
|
+
/**
|
14
|
+
* @internal
|
15
|
+
*/
|
16
|
+
export async function zkDeployProxy(
|
17
|
+
options: ClientAndChainAndAccount & {
|
18
|
+
cloneFactoryContract: ThirdwebContract;
|
19
|
+
initializeTransaction: PreparedTransaction;
|
20
|
+
salt?: string;
|
21
|
+
},
|
22
|
+
) {
|
23
|
+
// TODO ensure implementation is deployed
|
24
|
+
const implementationAddress = await resolvePromisedValue(
|
25
|
+
options.initializeTransaction.to,
|
26
|
+
);
|
27
|
+
if (!implementationAddress) {
|
28
|
+
throw new Error("initializeTransaction must have a 'to' field set");
|
29
|
+
}
|
30
|
+
const deployed = await isContractDeployed({
|
31
|
+
address: implementationAddress,
|
32
|
+
chain: options.chain,
|
33
|
+
client: options.client,
|
34
|
+
});
|
35
|
+
if (!deployed) {
|
36
|
+
throw new Error(
|
37
|
+
`Implementation contract at ${implementationAddress} is not deployed`,
|
38
|
+
);
|
39
|
+
}
|
40
|
+
// deploy tw proxy of the implementation
|
41
|
+
const proxyAddress = await zkDeployContract({
|
42
|
+
client: options.client,
|
43
|
+
chain: options.chain,
|
44
|
+
account: options.account,
|
45
|
+
abi: twProxyAbi,
|
46
|
+
bytecode: twProxyBytecode,
|
47
|
+
params: [
|
48
|
+
implementationAddress,
|
49
|
+
await encode(options.initializeTransaction),
|
50
|
+
],
|
51
|
+
});
|
52
|
+
|
53
|
+
// return address of proxy
|
54
|
+
return proxyAddress;
|
55
|
+
}
|
@@ -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 {
|
23
|
-
|
24
|
-
|
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 {
|
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 {
|
39
|
-
|
40
|
-
|
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
|
@@ -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
|
-
|
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 {
|
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 {
|
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 {
|
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 {
|
3
|
+
import {
|
4
|
+
isSetPermissionsForSignerSupported,
|
5
|
+
setPermissionsForSigner,
|
6
|
+
} from "../__generated__/IAccountPermissions/write/setPermissionsForSigner.js";
|
4
7
|
import { signPermissionRequest, toContractPermissions } from "./common.js";
|
5
8
|
|
6
9
|
/**
|
@@ -60,3 +63,19 @@ export function removeSessionKey(
|
|
60
63
|
},
|
61
64
|
});
|
62
65
|
}
|
66
|
+
|
67
|
+
/**
|
68
|
+
* Checks if the `isRemoveSessionKeySupported` method is supported by the given contract.
|
69
|
+
* @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
|
70
|
+
* @returns A boolean indicating if the `isRemoveSessionKeySupported` method is supported.
|
71
|
+
* @extension ERC4337
|
72
|
+
* @example
|
73
|
+
* ```ts
|
74
|
+
* import { isRemoveSessionKeySupported } from "thirdweb/extensions/erc4337";
|
75
|
+
*
|
76
|
+
* const supported = isRemoveSessionKeySupported(["0x..."]);
|
77
|
+
* ```
|
78
|
+
*/
|
79
|
+
export function isRemoveSessionKeySupported(availableSelectors: string[]) {
|
80
|
+
return isSetPermissionsForSignerSupported(availableSelectors);
|
81
|
+
}
|
@@ -10,7 +10,7 @@ import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-co
|
|
10
10
|
import { deployERC20Contract } from "../prebuilts/deploy-erc20.js";
|
11
11
|
import { getAllRoleMembers } from "./read/getAllMembers.js";
|
12
12
|
import { hasRole } from "./read/hasRole.js";
|
13
|
-
import { grantRole } from "./write/
|
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
|
*/
|