thirdweb 5.50.1-nightly-b407bc9fd8379bf304ffb963f8cb8e64493914b5-20240904000351 → 5.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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/version.js.map +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/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/version.js.map +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/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/version.d.ts.map +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/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
@@ -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
|
*/
|
@@ -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
|
+
}
|
@@ -288,6 +288,27 @@ export type ConnectButton_detailsModalOptions = {
|
|
288
288
|
* Use custom avatar URL for the connected wallet image in the `ConnectButton` Details Modal, overriding ENS avatar or Blobbie icon.
|
289
289
|
*/
|
290
290
|
connectedAccountAvatarUrl?: string;
|
291
|
+
|
292
|
+
/**
|
293
|
+
* Hide the "Send Funds" button in the `ConnectButton` Details Modal.
|
294
|
+
*
|
295
|
+
* By default the "Send Funds" button is shown.
|
296
|
+
*/
|
297
|
+
hideSendFunds?: boolean;
|
298
|
+
|
299
|
+
/**
|
300
|
+
* Hide the "Receive Funds" button in the `ConnectButton` Details Modal.
|
301
|
+
*
|
302
|
+
* By default the "Receive Funds" button is shown.
|
303
|
+
*/
|
304
|
+
hideReceiveFunds?: boolean;
|
305
|
+
|
306
|
+
/**
|
307
|
+
* Hide the "Buy Funds" button in the `ConnectButton` Details Modal.
|
308
|
+
*
|
309
|
+
* By default the "Buy Funds" button is shown.
|
310
|
+
*/
|
311
|
+
hideBuyFunds?: boolean;
|
291
312
|
};
|
292
313
|
|
293
314
|
/**
|
@@ -19,7 +19,7 @@ import { TransactionModal } from "../../ui/TransactionButton/TransactionModal.js
|
|
19
19
|
* Refer to [`SendTransactionConfig`](https://portal.thirdweb.com/references/typescript/v5/SendTransactionConfig) for more details.
|
20
20
|
* @example
|
21
21
|
*
|
22
|
-
* ###
|
22
|
+
* ### Sending a prepared contract call
|
23
23
|
*
|
24
24
|
* ```tsx
|
25
25
|
* import { useSendTransaction } from "thirdweb/react";
|
@@ -83,11 +83,12 @@ import { TransactionModal } from "../../ui/TransactionButton/TransactionModal.js
|
|
83
83
|
* const { mutate: sendTx, data: transactionResult } = useSendTransaction();
|
84
84
|
*
|
85
85
|
* const onClick = () => {
|
86
|
+
* // Send 0.1 SepoliaETH to an address
|
86
87
|
* const transaction = prepareTransaction({
|
87
|
-
*
|
88
|
-
*
|
89
|
-
*
|
90
|
-
*
|
88
|
+
* to: "0x...",
|
89
|
+
* value: toWei("0.1"),
|
90
|
+
* chain: sepolia,
|
91
|
+
* client: thirdwebClient,
|
91
92
|
* });
|
92
93
|
* sendTx(transaction);
|
93
94
|
* };
|
@@ -544,6 +544,9 @@ function ConnectButtonInner(
|
|
544
544
|
showAllWallets: props.showAllWallets,
|
545
545
|
walletConnect: props.walletConnect,
|
546
546
|
wallets: props.wallets,
|
547
|
+
hideReceiveFunds: props.detailsModal?.hideReceiveFunds,
|
548
|
+
hideSendFunds: props.detailsModal?.hideSendFunds,
|
549
|
+
hideBuyFunds: props.detailsModal?.hideBuyFunds,
|
547
550
|
}}
|
548
551
|
/>
|
549
552
|
);
|