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
@@ -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
|
);
|
@@ -373,6 +373,11 @@ function DetailsModal(props: {
|
|
373
373
|
const avatarSrc =
|
374
374
|
props.detailsModal?.connectedAccountAvatarUrl ?? ensAvatarQuery.data;
|
375
375
|
|
376
|
+
const { hideSendFunds, hideReceiveFunds, hideBuyFunds } =
|
377
|
+
props.detailsModal || {};
|
378
|
+
|
379
|
+
const hideAllButtons = hideSendFunds && hideReceiveFunds && hideBuyFunds;
|
380
|
+
|
376
381
|
const avatarContent = (
|
377
382
|
<Container
|
378
383
|
style={{
|
@@ -438,7 +443,16 @@ function DetailsModal(props: {
|
|
438
443
|
let content = (
|
439
444
|
<div>
|
440
445
|
<Spacer y="xs" />
|
441
|
-
<Container
|
446
|
+
<Container
|
447
|
+
px="lg"
|
448
|
+
gap="sm"
|
449
|
+
flex="row"
|
450
|
+
center="y"
|
451
|
+
style={{
|
452
|
+
paddingTop: spacing.lg,
|
453
|
+
paddingBottom: hideAllButtons ? spacing.md : spacing.lg,
|
454
|
+
}}
|
455
|
+
>
|
442
456
|
{props.detailsModal?.hideSwitchWallet ? (
|
443
457
|
avatarContent
|
444
458
|
) : (
|
@@ -481,81 +495,99 @@ function DetailsModal(props: {
|
|
481
495
|
<InAppWalletUserInfo client={client} locale={locale} />
|
482
496
|
</Container>
|
483
497
|
</Container>
|
484
|
-
<Container px="lg">
|
485
|
-
{/* Send, Receive, Swap */}
|
486
|
-
<Container
|
487
|
-
style={{
|
488
|
-
display: "grid",
|
489
|
-
gridTemplateColumns: "1fr 1fr 1fr",
|
490
|
-
gap: spacing.xs,
|
491
|
-
}}
|
492
|
-
>
|
493
|
-
<Button
|
494
|
-
variant="outline"
|
495
|
-
style={{
|
496
|
-
fontSize: fontSize.sm,
|
497
|
-
display: "flex",
|
498
|
-
gap: spacing.xs,
|
499
|
-
alignItems: "center",
|
500
|
-
padding: spacing.sm,
|
501
|
-
}}
|
502
|
-
onClick={() => {
|
503
|
-
setScreen("send");
|
504
|
-
}}
|
505
|
-
>
|
506
|
-
<Container color="secondaryText" flex="row" center="both">
|
507
|
-
<PaperPlaneIcon
|
508
|
-
width={iconSize.sm}
|
509
|
-
height={iconSize.sm}
|
510
|
-
style={{
|
511
|
-
transform: "translateY(-10%) rotate(-45deg) ",
|
512
|
-
}}
|
513
|
-
/>
|
514
|
-
</Container>
|
515
|
-
|
516
|
-
{locale.send}
|
517
|
-
</Button>
|
518
498
|
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
499
|
+
{!hideAllButtons && (
|
500
|
+
<>
|
501
|
+
<Container px="lg">
|
502
|
+
{/* Send, Receive, Swap */}
|
503
|
+
<Container
|
504
|
+
style={{
|
505
|
+
display: "flex",
|
506
|
+
gap: spacing.xs,
|
507
|
+
}}
|
508
|
+
>
|
509
|
+
{!hideSendFunds && (
|
510
|
+
<Button
|
511
|
+
variant="outline"
|
512
|
+
style={{
|
513
|
+
fontSize: fontSize.sm,
|
514
|
+
display: "flex",
|
515
|
+
gap: spacing.xs,
|
516
|
+
alignItems: "center",
|
517
|
+
padding: spacing.sm,
|
518
|
+
flex: 1,
|
519
|
+
}}
|
520
|
+
onClick={() => {
|
521
|
+
setScreen("send");
|
522
|
+
}}
|
523
|
+
>
|
524
|
+
<Container color="secondaryText" flex="row" center="both">
|
525
|
+
<PaperPlaneIcon
|
526
|
+
width={iconSize.sm}
|
527
|
+
height={iconSize.sm}
|
528
|
+
style={{
|
529
|
+
transform: "translateY(-10%) rotate(-45deg) ",
|
530
|
+
}}
|
531
|
+
/>
|
532
|
+
</Container>
|
533
|
+
|
534
|
+
{locale.send}
|
535
|
+
</Button>
|
536
|
+
)}
|
537
|
+
|
538
|
+
{!hideReceiveFunds && (
|
539
|
+
<Button
|
540
|
+
variant="outline"
|
541
|
+
style={{
|
542
|
+
fontSize: fontSize.sm,
|
543
|
+
display: "flex",
|
544
|
+
gap: spacing.xs,
|
545
|
+
alignItems: "center",
|
546
|
+
padding: spacing.sm,
|
547
|
+
flex: 1,
|
548
|
+
}}
|
549
|
+
onClick={() => {
|
550
|
+
setScreen("receive");
|
551
|
+
}}
|
552
|
+
>
|
553
|
+
<Container color="secondaryText" flex="row" center="both">
|
554
|
+
<PinBottomIcon
|
555
|
+
width={iconSize.sm}
|
556
|
+
height={iconSize.sm}
|
557
|
+
/>{" "}
|
558
|
+
</Container>
|
559
|
+
{locale.receive}{" "}
|
560
|
+
</Button>
|
561
|
+
)}
|
562
|
+
|
563
|
+
{!hideBuyFunds && (
|
564
|
+
<Button
|
565
|
+
variant="outline"
|
566
|
+
style={{
|
567
|
+
fontSize: fontSize.sm,
|
568
|
+
display: "flex",
|
569
|
+
gap: spacing.xs,
|
570
|
+
alignItems: "center",
|
571
|
+
padding: spacing.sm,
|
572
|
+
flex: 1,
|
573
|
+
}}
|
574
|
+
onClick={() => {
|
575
|
+
setScreen("buy");
|
576
|
+
}}
|
577
|
+
>
|
578
|
+
<Container color="secondaryText" flex="row" center="both">
|
579
|
+
<PlusIcon width={iconSize.sm} height={iconSize.sm} />
|
580
|
+
</Container>
|
581
|
+
{locale.buy}
|
582
|
+
</Button>
|
583
|
+
)}
|
534
584
|
</Container>
|
535
|
-
|
536
|
-
|
585
|
+
</Container>
|
586
|
+
|
587
|
+
<Spacer y="md" />
|
588
|
+
</>
|
589
|
+
)}
|
537
590
|
|
538
|
-
<Button
|
539
|
-
variant="outline"
|
540
|
-
style={{
|
541
|
-
fontSize: fontSize.sm,
|
542
|
-
display: "flex",
|
543
|
-
gap: spacing.xs,
|
544
|
-
alignItems: "center",
|
545
|
-
padding: spacing.sm,
|
546
|
-
}}
|
547
|
-
onClick={() => {
|
548
|
-
setScreen("buy");
|
549
|
-
}}
|
550
|
-
>
|
551
|
-
<Container color="secondaryText" flex="row" center="both">
|
552
|
-
<PlusIcon width={iconSize.sm} height={iconSize.sm} />
|
553
|
-
</Container>
|
554
|
-
{locale.buy}
|
555
|
-
</Button>
|
556
|
-
</Container>
|
557
|
-
</Container>
|
558
|
-
<Spacer y="md" />
|
559
591
|
<Container px="md">
|
560
592
|
<Container
|
561
593
|
flex="column"
|
@@ -1122,6 +1154,9 @@ export type DetailsModalConnectOptions = {
|
|
1122
1154
|
chains?: Chain[];
|
1123
1155
|
recommendedWallets?: Wallet[];
|
1124
1156
|
showAllWallets?: boolean;
|
1157
|
+
hideSendFunds?: boolean;
|
1158
|
+
hideReceiveFunds?: boolean;
|
1159
|
+
hideBuyFunds?: boolean;
|
1125
1160
|
};
|
1126
1161
|
|
1127
1162
|
export type UseWalletDetailsModalOptions = {
|
@@ -59,7 +59,11 @@ import {
|
|
59
59
|
type PaymentMethods,
|
60
60
|
useEnabledPaymentMethods,
|
61
61
|
} from "./main/useEnabledPaymentMethods.js";
|
62
|
-
import {
|
62
|
+
import {
|
63
|
+
useFiatCurrencySelectionStates,
|
64
|
+
useFromTokenSelectionStates,
|
65
|
+
useToTokenSelectionStates,
|
66
|
+
} from "./main/useUISelectionStates.js";
|
63
67
|
import { openOnrampPopup } from "./openOnRamppopup.js";
|
64
68
|
import { BuyTokenInput } from "./swap/BuyTokenInput.js";
|
65
69
|
import { FiatFees, SwapFees } from "./swap/Fees.js";
|
@@ -134,33 +138,26 @@ function BuyScreenContent(props: BuyScreenContentProps) {
|
|
134
138
|
id: "main",
|
135
139
|
});
|
136
140
|
|
137
|
-
const [hasEditedAmount, setHasEditedAmount] = useState(false);
|
138
|
-
|
139
|
-
const onDone = useCallback(() => {
|
140
|
-
setScreen({ id: "main" });
|
141
|
-
props.onDone();
|
142
|
-
}, [props.onDone]);
|
143
|
-
|
144
|
-
// UI selection
|
145
141
|
const {
|
146
142
|
tokenAmount,
|
147
143
|
setTokenAmount,
|
148
144
|
toChain,
|
149
145
|
setToChain,
|
150
146
|
deferredTokenAmount,
|
151
|
-
fromChain,
|
152
|
-
setFromChain,
|
153
147
|
toToken,
|
154
148
|
setToToken,
|
155
|
-
|
156
|
-
setFromToken,
|
157
|
-
selectedCurrency,
|
158
|
-
setSelectedCurrency,
|
159
|
-
} = useUISelectionStates({
|
149
|
+
} = useToTokenSelectionStates({
|
160
150
|
payOptions,
|
161
151
|
supportedDestinations,
|
162
152
|
});
|
163
153
|
|
154
|
+
const [hasEditedAmount, setHasEditedAmount] = useState(false);
|
155
|
+
|
156
|
+
const onDone = useCallback(() => {
|
157
|
+
setScreen({ id: "main" });
|
158
|
+
props.onDone();
|
159
|
+
}, [props.onDone]);
|
160
|
+
|
164
161
|
// check if the screen is expanded or not
|
165
162
|
|
166
163
|
// update supportedSources whenever toToken or toChain is updated
|
@@ -186,21 +183,24 @@ function BuyScreenContent(props: BuyScreenContentProps) {
|
|
186
183
|
}
|
187
184
|
|
188
185
|
const supportedSources = supportedSourcesQuery.data;
|
189
|
-
if (supportedSources[0]?.chain) {
|
190
|
-
setFromChain(supportedSources[0]?.chain);
|
191
|
-
}
|
192
186
|
|
193
187
|
return createSupportedTokens(
|
194
188
|
supportedSources,
|
195
189
|
payOptions,
|
196
190
|
props.supportedTokens,
|
197
191
|
);
|
198
|
-
}, [
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
192
|
+
}, [props.supportedTokens, supportedSourcesQuery.data, payOptions]);
|
193
|
+
|
194
|
+
const { fromChain, setFromChain, fromToken, setFromToken } =
|
195
|
+
useFromTokenSelectionStates({
|
196
|
+
payOptions,
|
197
|
+
supportedSources: supportedSourcesQuery.data || [],
|
198
|
+
});
|
199
|
+
|
200
|
+
const { selectedCurrency, setSelectedCurrency } =
|
201
|
+
useFiatCurrencySelectionStates({
|
202
|
+
payOptions,
|
203
|
+
});
|
204
204
|
|
205
205
|
const enabledPaymentMethods = useEnabledPaymentMethods({
|
206
206
|
payOptions: props.payOptions,
|
@@ -1081,13 +1081,21 @@ function SwapScreenContent(props: {
|
|
1081
1081
|
|
1082
1082
|
function showSwapFlow() {
|
1083
1083
|
if (
|
1084
|
-
|
1085
|
-
|
1084
|
+
props.payOptions.mode === "direct_payment" &&
|
1085
|
+
!isNotEnoughBalance &&
|
1086
|
+
!swapRequired
|
1087
|
+
) {
|
1088
|
+
// same currency, just direct transfer
|
1089
|
+
setScreen({
|
1090
|
+
id: "transfer-flow",
|
1091
|
+
});
|
1092
|
+
} else if (
|
1093
|
+
props.payOptions.mode === "transaction" &&
|
1086
1094
|
!isNotEnoughBalance &&
|
1087
1095
|
!swapRequired
|
1088
1096
|
) {
|
1089
1097
|
if (payer.account.address !== receiverAddress) {
|
1090
|
-
//
|
1098
|
+
// needs transfer from another wallet before executing the transaction
|
1091
1099
|
setScreen({
|
1092
1100
|
id: "transfer-flow",
|
1093
1101
|
});
|
@@ -1130,7 +1138,7 @@ function SwapScreenContent(props: {
|
|
1130
1138
|
Fees
|
1131
1139
|
</Text>
|
1132
1140
|
<Spacer y="lg" />
|
1133
|
-
<SwapFees quote={quoteQuery.data}
|
1141
|
+
<SwapFees quote={quoteQuery.data} />
|
1134
1142
|
</div>
|
1135
1143
|
)}
|
1136
1144
|
</Drawer>
|