thirdweb 5.53.0 → 5.54.0-nightly-c3800d6c0765a9a0b69ac0a4a390d20cec932419-20240912000413
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/analytics/track.js +18 -0
- package/dist/cjs/analytics/track.js.map +1 -1
- package/dist/cjs/chains/chain-definitions/polygon.js +1 -1
- package/dist/cjs/chains/chain-definitions/polygon.js.map +1 -1
- package/dist/cjs/contract/deployment/deploy-deterministic.js +19 -0
- package/dist/cjs/contract/deployment/deploy-deterministic.js.map +1 -1
- package/dist/cjs/contract/deployment/deploy-via-autofactory.js +3 -1
- package/dist/cjs/contract/deployment/deploy-via-autofactory.js.map +1 -1
- package/dist/cjs/contract/deployment/deploy-with-abi.js +50 -6
- package/dist/cjs/contract/deployment/deploy-with-abi.js.map +1 -1
- package/dist/cjs/contract/deployment/utils/bootstrap.js +23 -8
- package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/cjs/contract/deployment/utils/clone-factory.js +1 -2
- package/dist/cjs/contract/deployment/utils/clone-factory.js.map +1 -1
- package/dist/cjs/contract/deployment/utils/infra.js +38 -2
- package/dist/cjs/contract/deployment/utils/infra.js.map +1 -1
- package/dist/cjs/contract/deployment/zksync/zkDeployContract.js +7 -1
- package/dist/cjs/contract/deployment/zksync/zkDeployContract.js.map +1 -1
- package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js +2 -1
- package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -1
- package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js +5 -4
- package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js.map +1 -1
- package/dist/cjs/exports/contract.js +4 -1
- package/dist/cjs/exports/contract.js.map +1 -1
- package/dist/cjs/exports/deploys.js +8 -3
- package/dist/cjs/exports/deploys.js.map +1 -1
- package/dist/cjs/exports/extensions/erc721.js +4 -2
- package/dist/cjs/exports/extensions/erc721.js.map +1 -1
- package/dist/cjs/exports/utils.js +3 -1
- package/dist/cjs/exports/utils.js.map +1 -1
- package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +14 -16
- package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
- package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +19 -0
- package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
- package/dist/cjs/extensions/erc721/lazyMinting/write/reveal.js +3 -20
- package/dist/cjs/extensions/erc721/lazyMinting/write/reveal.js.map +1 -1
- package/dist/cjs/extensions/erc721/write/updateTokenURI.js +3 -0
- package/dist/cjs/extensions/erc721/write/updateTokenURI.js.map +1 -1
- package/dist/cjs/extensions/marketplace/offers/write/makeOffer.js +0 -1
- package/dist/cjs/extensions/marketplace/offers/write/makeOffer.js.map +1 -1
- package/dist/cjs/extensions/modules/common/getOrDeployModule.js +2 -4
- package/dist/cjs/extensions/modules/common/getOrDeployModule.js.map +1 -1
- package/dist/cjs/extensions/modules/common/installPublishedModule.js +1 -1
- package/dist/cjs/extensions/modules/common/installPublishedModule.js.map +1 -1
- package/dist/cjs/extensions/modules/common/uninstallPublishedModule.js +1 -2
- package/dist/cjs/extensions/modules/common/uninstallPublishedModule.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-erc1155.js +0 -1
- package/dist/cjs/extensions/prebuilts/deploy-erc1155.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-erc20.js +0 -1
- package/dist/cjs/extensions/prebuilts/deploy-erc20.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-erc721.js +0 -1
- package/dist/cjs/extensions/prebuilts/deploy-erc721.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-marketplace.js +5 -7
- package/dist/cjs/extensions/prebuilts/deploy-marketplace.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-modular.js +32 -27
- package/dist/cjs/extensions/prebuilts/deploy-modular.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-published.js +121 -35
- package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-split.js +0 -1
- package/dist/cjs/extensions/prebuilts/deploy-split.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-vote.js +0 -1
- package/dist/cjs/extensions/prebuilts/deploy-vote.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/get-required-transactions.js +66 -0
- package/dist/cjs/extensions/prebuilts/get-required-transactions.js.map +1 -0
- package/dist/cjs/react/core/hooks/others/useProfiles.js +1 -1
- package/dist/cjs/react/core/social/useSocialProfiles.js +2 -0
- package/dist/cjs/react/core/social/useSocialProfiles.js.map +1 -1
- package/dist/cjs/react/core/utils/walletIcon.js +5 -1
- package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
- package/dist/cjs/react/native/ui/components/Address.js +1 -3
- package/dist/cjs/react/native/ui/components/Address.js.map +1 -1
- package/dist/cjs/react/native/ui/components/WalletImage.js +2 -0
- package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -1
- package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +1 -0
- package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
- package/dist/cjs/react/native/ui/icons/svgs.js +2 -1
- package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +7 -0
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +20 -3
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +7 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +7 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +7 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +49 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +20 -0
- package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +1 -0
- package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
- package/dist/cjs/social/profiles.js +2 -1
- package/dist/cjs/social/profiles.js.map +1 -1
- package/dist/cjs/utils/abi/normalizeFunctionParams.js +24 -0
- package/dist/cjs/utils/abi/normalizeFunctionParams.js.map +1 -0
- package/dist/cjs/utils/any-evm/compute-published-contract-address.js +14 -6
- package/dist/cjs/utils/any-evm/compute-published-contract-address.js.map +1 -1
- package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js +17 -5
- package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
- package/dist/cjs/utils/any-evm/deploy-metadata.js +0 -19
- package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
- package/dist/cjs/utils/caching/lru.js +15 -14
- package/dist/cjs/utils/caching/lru.js.map +1 -1
- package/dist/cjs/utils/domains.js +1 -1
- package/dist/cjs/utils/domains.js.map +1 -1
- package/dist/cjs/utils/ipfs.js +2 -0
- package/dist/cjs/utils/ipfs.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/types.js +1 -0
- package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-calls.js +3 -13
- package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/native-connector.js +2 -0
- package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/in-app.js +2 -0
- package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js +2 -0
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/cjs/wallets/types.js +1 -0
- package/dist/cjs/wallets/types.js.map +1 -1
- package/dist/esm/analytics/track.js +17 -0
- package/dist/esm/analytics/track.js.map +1 -1
- package/dist/esm/chains/chain-definitions/polygon.js +1 -1
- package/dist/esm/chains/chain-definitions/polygon.js.map +1 -1
- package/dist/esm/contract/deployment/deploy-deterministic.js +19 -1
- package/dist/esm/contract/deployment/deploy-deterministic.js.map +1 -1
- package/dist/esm/contract/deployment/deploy-via-autofactory.js +3 -1
- package/dist/esm/contract/deployment/deploy-via-autofactory.js.map +1 -1
- package/dist/esm/contract/deployment/deploy-with-abi.js +50 -6
- package/dist/esm/contract/deployment/deploy-with-abi.js.map +1 -1
- package/dist/esm/contract/deployment/utils/bootstrap.js +23 -9
- package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/esm/contract/deployment/utils/clone-factory.js +1 -2
- package/dist/esm/contract/deployment/utils/clone-factory.js.map +1 -1
- package/dist/esm/contract/deployment/utils/infra.js +38 -4
- package/dist/esm/contract/deployment/utils/infra.js.map +1 -1
- package/dist/esm/contract/deployment/zksync/zkDeployContract.js +7 -1
- package/dist/esm/contract/deployment/zksync/zkDeployContract.js.map +1 -1
- package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js +2 -1
- package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -1
- package/dist/esm/contract/deployment/zksync/zkDeployProxy.js +5 -4
- package/dist/esm/contract/deployment/zksync/zkDeployProxy.js.map +1 -1
- package/dist/esm/exports/contract.js +2 -0
- package/dist/esm/exports/contract.js.map +1 -1
- package/dist/esm/exports/deploys.js +4 -2
- package/dist/esm/exports/deploys.js.map +1 -1
- package/dist/esm/exports/extensions/erc721.js +3 -3
- package/dist/esm/exports/extensions/erc721.js.map +1 -1
- package/dist/esm/exports/utils.js +1 -0
- package/dist/esm/exports/utils.js.map +1 -1
- package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +13 -15
- package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
- package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +21 -3
- package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
- package/dist/esm/extensions/erc721/lazyMinting/write/reveal.js +1 -20
- package/dist/esm/extensions/erc721/lazyMinting/write/reveal.js.map +1 -1
- package/dist/esm/extensions/erc721/write/updateTokenURI.js +3 -0
- package/dist/esm/extensions/erc721/write/updateTokenURI.js.map +1 -1
- package/dist/esm/extensions/marketplace/offers/write/makeOffer.js +0 -1
- package/dist/esm/extensions/marketplace/offers/write/makeOffer.js.map +1 -1
- package/dist/esm/extensions/modules/common/getOrDeployModule.js +2 -4
- package/dist/esm/extensions/modules/common/getOrDeployModule.js.map +1 -1
- package/dist/esm/extensions/modules/common/installPublishedModule.js +1 -1
- package/dist/esm/extensions/modules/common/installPublishedModule.js.map +1 -1
- package/dist/esm/extensions/modules/common/uninstallPublishedModule.js +1 -2
- package/dist/esm/extensions/modules/common/uninstallPublishedModule.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-erc1155.js +0 -1
- package/dist/esm/extensions/prebuilts/deploy-erc1155.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-erc20.js +0 -1
- package/dist/esm/extensions/prebuilts/deploy-erc20.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-erc721.js +0 -1
- package/dist/esm/extensions/prebuilts/deploy-erc721.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-marketplace.js +5 -7
- package/dist/esm/extensions/prebuilts/deploy-marketplace.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-modular.js +33 -28
- package/dist/esm/extensions/prebuilts/deploy-modular.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-published.js +121 -35
- package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-split.js +0 -1
- package/dist/esm/extensions/prebuilts/deploy-split.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-vote.js +0 -1
- package/dist/esm/extensions/prebuilts/deploy-vote.js.map +1 -1
- package/dist/esm/extensions/prebuilts/get-required-transactions.js +63 -0
- package/dist/esm/extensions/prebuilts/get-required-transactions.js.map +1 -0
- package/dist/esm/react/core/hooks/others/useProfiles.js +1 -1
- package/dist/esm/react/core/social/useSocialProfiles.js +2 -0
- package/dist/esm/react/core/social/useSocialProfiles.js.map +1 -1
- package/dist/esm/react/core/utils/walletIcon.js +4 -0
- package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
- package/dist/esm/react/native/ui/components/Address.js +1 -3
- package/dist/esm/react/native/ui/components/Address.js.map +1 -1
- package/dist/esm/react/native/ui/components/WalletImage.js +3 -1
- package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -1
- package/dist/esm/react/native/ui/connect/InAppWalletUI.js +2 -1
- package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
- package/dist/esm/react/native/ui/icons/svgs.js +1 -0
- package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +7 -0
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +20 -3
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +7 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +7 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +7 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +49 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +20 -0
- package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/oauthSignIn.js +1 -0
- package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
- package/dist/esm/social/profiles.js +2 -1
- package/dist/esm/social/profiles.js.map +1 -1
- package/dist/esm/utils/abi/normalizeFunctionParams.js +21 -0
- package/dist/esm/utils/abi/normalizeFunctionParams.js.map +1 -0
- package/dist/esm/utils/any-evm/compute-published-contract-address.js +15 -7
- package/dist/esm/utils/any-evm/compute-published-contract-address.js.map +1 -1
- package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js +16 -5
- package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
- package/dist/esm/utils/any-evm/deploy-metadata.js +0 -19
- package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
- package/dist/esm/utils/caching/lru.js +15 -14
- package/dist/esm/utils/caching/lru.js.map +1 -1
- package/dist/esm/utils/domains.js +1 -1
- package/dist/esm/utils/domains.js.map +1 -1
- package/dist/esm/utils/ipfs.js +2 -0
- package/dist/esm/utils/ipfs.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/types.js +1 -0
- package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-calls.js +3 -13
- package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +1 -1
- package/dist/esm/wallets/in-app/native/native-connector.js +2 -0
- package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/esm/wallets/in-app/web/in-app.js +2 -0
- package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/web-connector.js +2 -0
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/wallets/types.js +1 -0
- package/dist/esm/wallets/types.js.map +1 -1
- package/dist/types/analytics/track.d.ts +15 -0
- package/dist/types/analytics/track.d.ts.map +1 -1
- package/dist/types/contract/actions/compiler-metadata.d.ts +2 -2
- package/dist/types/contract/actions/compiler-metadata.d.ts.map +1 -1
- package/dist/types/contract/actions/get-compiler-metadata.d.ts +1 -1
- package/dist/types/contract/actions/get-compiler-metadata.d.ts.map +1 -1
- package/dist/types/contract/deployment/deploy-deterministic.d.ts +12 -1
- package/dist/types/contract/deployment/deploy-deterministic.d.ts.map +1 -1
- package/dist/types/contract/deployment/deploy-via-autofactory.d.ts.map +1 -1
- package/dist/types/contract/deployment/deploy-with-abi.d.ts +33 -10
- package/dist/types/contract/deployment/deploy-with-abi.d.ts.map +1 -1
- package/dist/types/contract/deployment/utils/bootstrap.d.ts +8 -3
- package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
- package/dist/types/contract/deployment/utils/clone-factory.d.ts.map +1 -1
- package/dist/types/contract/deployment/utils/infra.d.ts +24 -1
- package/dist/types/contract/deployment/utils/infra.d.ts.map +1 -1
- package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts +2 -1
- package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts.map +1 -1
- package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts +1 -1
- package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts.map +1 -1
- package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts.map +1 -1
- package/dist/types/contract/verification/source-files.d.ts +2 -2
- package/dist/types/contract/verification/source-files.d.ts.map +1 -1
- package/dist/types/exports/contract.d.ts +1 -0
- package/dist/types/exports/contract.d.ts.map +1 -1
- package/dist/types/exports/deploys.d.ts +4 -2
- package/dist/types/exports/deploys.d.ts.map +1 -1
- package/dist/types/exports/extensions/erc721.d.ts +3 -3
- package/dist/types/exports/extensions/erc721.d.ts.map +1 -1
- package/dist/types/exports/utils.d.ts +1 -0
- package/dist/types/exports/utils.d.ts.map +1 -1
- package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts +1 -1
- package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts.map +1 -1
- package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts +12 -0
- package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts.map +1 -1
- package/dist/types/extensions/erc721/lazyMinting/write/reveal.d.ts +1 -0
- package/dist/types/extensions/erc721/lazyMinting/write/reveal.d.ts.map +1 -1
- package/dist/types/extensions/erc721/write/updateTokenURI.d.ts +3 -0
- package/dist/types/extensions/erc721/write/updateTokenURI.d.ts.map +1 -1
- package/dist/types/extensions/marketplace/offers/write/makeOffer.d.ts.map +1 -1
- package/dist/types/extensions/modules/common/getOrDeployModule.d.ts +0 -2
- package/dist/types/extensions/modules/common/getOrDeployModule.d.ts.map +1 -1
- package/dist/types/extensions/modules/common/installPublishedModule.d.ts +1 -1
- package/dist/types/extensions/modules/common/installPublishedModule.d.ts.map +1 -1
- package/dist/types/extensions/modules/common/uninstallPublishedModule.d.ts +0 -1
- package/dist/types/extensions/modules/common/uninstallPublishedModule.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-erc1155.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-erc20.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-erc721.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-marketplace.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-modular.d.ts +1 -0
- package/dist/types/extensions/prebuilts/deploy-modular.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-published.d.ts +50 -3
- package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-split.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-vote.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/get-required-transactions.d.ts +26 -0
- package/dist/types/extensions/prebuilts/get-required-transactions.d.ts.map +1 -0
- package/dist/types/react/core/hooks/others/useProfiles.d.ts +1 -1
- package/dist/types/react/core/social/useSocialProfiles.d.ts +2 -0
- package/dist/types/react/core/social/useSocialProfiles.d.ts.map +1 -1
- package/dist/types/react/core/utils/storage.d.ts +1 -1
- package/dist/types/react/core/utils/storage.d.ts.map +1 -1
- package/dist/types/react/core/utils/walletIcon.d.ts +3 -1
- package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
- package/dist/types/react/native/ui/components/Address.d.ts.map +1 -1
- package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
- package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
- package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
- 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/DirectPaymentModeScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
- package/dist/types/social/profiles.d.ts +2 -1
- package/dist/types/social/profiles.d.ts.map +1 -1
- package/dist/types/utils/abi/normalizeFunctionParams.d.ts +3 -0
- package/dist/types/utils/abi/normalizeFunctionParams.d.ts.map +1 -0
- package/dist/types/utils/any-evm/compute-published-contract-address.d.ts +2 -6
- package/dist/types/utils/any-evm/compute-published-contract-address.d.ts.map +1 -1
- package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts +17 -2
- package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts.map +1 -1
- package/dist/types/utils/any-evm/deploy-metadata.d.ts +3 -6
- package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
- package/dist/types/utils/caching/lru.d.ts +4 -13
- package/dist/types/utils/caching/lru.d.ts.map +1 -1
- package/dist/types/utils/ipfs.d.ts +1 -1
- package/dist/types/utils/ipfs.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/types.d.ts +1 -0
- package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-calls.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/in-app.d.ts +2 -0
- package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/dist/types/wallets/types.d.ts +2 -2
- package/dist/types/wallets/types.d.ts.map +1 -1
- package/package.json +17 -22
- package/src/analytics/track.ts +29 -0
- package/src/chains/chain-definitions/polygon.ts +1 -1
- package/src/contract/actions/compiler-metadata.ts +2 -2
- package/src/contract/deployment/deploy-deterministic.test.ts +16 -5
- package/src/contract/deployment/deploy-deterministic.ts +35 -2
- package/src/contract/deployment/deploy-via-autofactory.test.ts +0 -2
- package/src/contract/deployment/deploy-via-autofactory.ts +3 -0
- package/src/contract/deployment/deploy-with-abi.ts +63 -24
- package/src/contract/deployment/publisher.test.ts +2 -2
- package/src/contract/deployment/utils/bootstrap.test.ts +3 -2
- package/src/contract/deployment/utils/bootstrap.ts +36 -12
- package/src/contract/deployment/utils/clone-factory.ts +1 -2
- package/src/contract/deployment/utils/infra.ts +61 -5
- package/src/contract/deployment/zksync/zkDeployContract.ts +13 -2
- package/src/contract/deployment/zksync/zkDeployDeterministic.ts +4 -3
- package/src/contract/deployment/zksync/zkDeployProxy.ts +5 -4
- package/src/contract/verification/source-files.ts +2 -2
- package/src/exports/contract.ts +6 -0
- package/src/exports/deploys.ts +14 -5
- package/src/exports/extensions/erc721.ts +3 -1
- package/src/exports/utils.ts +2 -0
- package/src/extensions/airdrop/write/airdropERC1155WithSignature.test.ts +4 -1
- package/src/extensions/airdrop/write/airdropERC20WithSignature.test.ts +4 -1
- package/src/extensions/airdrop/write/airdropERC721WithSignature.test.ts +4 -1
- package/src/extensions/airdrop/write/claimERC1155.test.ts +4 -1
- package/src/extensions/airdrop/write/claimERC20.test.ts +4 -1
- package/src/extensions/airdrop/write/claimERC721.test.ts +4 -1
- package/src/extensions/erc1155/write/updateTokenURI.test.ts +54 -0
- package/src/extensions/erc20/write/getApprovalForTransaction.test.ts +112 -0
- package/src/extensions/erc20/write/transferFrom.test.ts +104 -0
- package/src/extensions/erc4337/account/permissions.test.ts +4 -1
- package/src/extensions/erc721/drops/write/updateMetadata.test.ts +29 -0
- package/src/extensions/erc721/lazyMinting/read/getBatchesToReveal.ts +15 -15
- package/src/extensions/erc721/lazyMinting/write/createAndReveal.test.ts +84 -0
- package/src/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.ts +33 -3
- package/src/extensions/erc721/lazyMinting/write/reveal.test.ts +1 -45
- package/src/extensions/erc721/lazyMinting/write/reveal.ts +2 -23
- package/src/extensions/erc721/write/updateTokenURI.test.ts +56 -0
- package/src/extensions/erc721/write/updateTokenURI.ts +3 -0
- package/src/extensions/marketplace/offers/offers.test.ts +0 -1
- package/src/extensions/marketplace/offers/write/makeOffer.ts +0 -1
- package/src/extensions/modules/common/getOrDeployModule.ts +2 -7
- package/src/extensions/modules/common/installPublishedModule.ts +2 -2
- package/src/extensions/modules/common/uninstallPublishedModule.ts +1 -9
- package/src/extensions/prebuilts/deploy-erc1155.ts +0 -1
- package/src/extensions/prebuilts/deploy-erc20.ts +0 -1
- package/src/extensions/prebuilts/deploy-erc721.ts +0 -1
- package/src/extensions/prebuilts/deploy-marketplace.ts +6 -8
- package/src/extensions/prebuilts/deploy-modular-core.test.ts +63 -2
- package/src/extensions/prebuilts/deploy-modular.ts +50 -38
- package/src/extensions/prebuilts/deploy-published.test.ts +61 -4
- package/src/extensions/prebuilts/deploy-published.ts +208 -55
- package/src/extensions/prebuilts/deploy-split.ts +0 -1
- package/src/extensions/prebuilts/deploy-vote.ts +0 -1
- package/src/extensions/prebuilts/get-required-transactions.test.ts +61 -0
- package/src/extensions/prebuilts/get-required-transactions.ts +110 -0
- package/src/react/core/hooks/others/useProfiles.ts +1 -1
- package/src/react/core/social/useSocialProfiles.ts +2 -0
- package/src/react/core/utils/walletIcon.ts +5 -0
- package/src/react/native/ui/components/Address.tsx +1 -3
- package/src/react/native/ui/components/WalletImage.tsx +3 -0
- package/src/react/native/ui/connect/InAppWalletUI.tsx +2 -0
- package/src/react/native/ui/icons/svgs.ts +2 -0
- package/src/react/web/ui/ConnectWallet/Details.tsx +7 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +31 -3
- package/src/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.tsx +7 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +7 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.tsx +7 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +53 -0
- package/src/react/web/ui/TransactionButton/TransactionModal.tsx +21 -0
- package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +1 -0
- package/src/react/web/wallets/shared/oauthSignIn.ts +1 -0
- package/src/social/profiles.ts +2 -1
- package/src/transaction/actions/zksync/send-eip712-transaction.test.ts +13 -13
- package/src/utils/abi/normalizeFunctionParams.ts +29 -0
- package/src/utils/any-evm/compute-published-contract-address.ts +17 -12
- package/src/utils/any-evm/compute-published-contract-deploy-info.ts +31 -12
- package/src/utils/any-evm/deploy-metadata.ts +9 -34
- package/src/utils/bytecode/resolveImplementation.test.ts +7 -5
- package/src/utils/caching/lru.test.ts +38 -0
- package/src/utils/caching/lru.ts +18 -14
- package/src/utils/domains.ts +1 -1
- package/src/utils/ipfs.ts +3 -1
- package/src/version.ts +1 -1
- package/src/wallets/in-app/core/authentication/types.ts +1 -0
- package/src/wallets/in-app/core/eip5972/in-app-wallet-calls.ts +3 -14
- package/src/wallets/in-app/native/native-connector.ts +2 -0
- package/src/wallets/in-app/web/in-app.ts +2 -0
- package/src/wallets/in-app/web/lib/web-connector.ts +2 -0
- package/src/wallets/types.ts +1 -0
@@ -6,11 +6,15 @@ import { getOrDeployInfraForPublishedContract } from "../../contract/deployment/
|
|
6
6
|
import { upload } from "../../storage/upload.js";
|
7
7
|
import type { FileOrBufferOrString } from "../../storage/upload/types.js";
|
8
8
|
import { type Address, getAddress } from "../../utils/address.js";
|
9
|
+
import type {} from "../../utils/any-evm/deploy-metadata.js";
|
9
10
|
import type { Hex } from "../../utils/encoding/hex.js";
|
10
11
|
import type { Prettify } from "../../utils/type-utils.js";
|
11
12
|
import type { ClientAndChainAndAccount } from "../../utils/types.js";
|
12
13
|
import type { Account } from "../../wallets/interfaces/wallet.js";
|
13
|
-
import {
|
14
|
+
import {
|
15
|
+
type InitializeParams,
|
16
|
+
initialize,
|
17
|
+
} from "../modules/__generated__/ERC20Core/write/initialize.js";
|
14
18
|
|
15
19
|
export type CoreType = "ERC20" | "ERC721" | "ERC1155";
|
16
20
|
|
@@ -48,6 +52,7 @@ export type DeployModularContractOptions = Prettify<
|
|
48
52
|
params: ModularContractParams;
|
49
53
|
modules?: ModuleInstaller[];
|
50
54
|
publisher?: string;
|
55
|
+
salt?: string;
|
51
56
|
}
|
52
57
|
>;
|
53
58
|
|
@@ -93,6 +98,7 @@ export async function deployModularContract(
|
|
93
98
|
core,
|
94
99
|
params: coreParams,
|
95
100
|
modules = [],
|
101
|
+
salt,
|
96
102
|
} = options;
|
97
103
|
const contractId = getContractId(core);
|
98
104
|
const { cloneFactoryContract, implementationContract } =
|
@@ -101,35 +107,59 @@ export async function deployModularContract(
|
|
101
107
|
client,
|
102
108
|
account,
|
103
109
|
contractId,
|
104
|
-
constructorParams: [],
|
105
110
|
publisher,
|
106
111
|
});
|
107
|
-
const
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
112
|
+
const contractURI =
|
113
|
+
coreParams.contractURI ||
|
114
|
+
(await upload({
|
115
|
+
client,
|
116
|
+
files: [
|
117
|
+
{
|
118
|
+
name: coreParams.name,
|
119
|
+
description: coreParams.description,
|
120
|
+
symbol: coreParams.symbol,
|
121
|
+
image: coreParams.image,
|
122
|
+
external_link: coreParams.external_link,
|
123
|
+
social_urls: coreParams.social_urls,
|
124
|
+
},
|
125
|
+
],
|
126
|
+
})) ||
|
127
|
+
"";
|
128
|
+
const initializeTransaction =
|
129
|
+
await getInitializeTransactionForModularContract({
|
130
|
+
client,
|
131
|
+
chain,
|
132
|
+
account,
|
133
|
+
implementationContract,
|
134
|
+
contractId,
|
135
|
+
initializeParams: {
|
136
|
+
name: coreParams.name || "",
|
137
|
+
symbol: coreParams.symbol || "",
|
138
|
+
contractURI,
|
139
|
+
owner: coreParams.defaultAdmin
|
140
|
+
? getAddress(coreParams.defaultAdmin)
|
141
|
+
: account.address,
|
142
|
+
},
|
143
|
+
accountAddress: getAddress(account.address),
|
144
|
+
modules,
|
145
|
+
});
|
117
146
|
return deployViaAutoFactory({
|
118
147
|
client,
|
119
148
|
chain,
|
120
149
|
account,
|
121
150
|
cloneFactoryContract,
|
122
151
|
initializeTransaction,
|
152
|
+
salt,
|
123
153
|
});
|
124
154
|
}
|
125
155
|
|
126
|
-
async function
|
156
|
+
async function getInitializeTransactionForModularContract(options: {
|
127
157
|
client: ThirdwebClient;
|
128
158
|
chain: Chain;
|
129
159
|
account: Account;
|
130
160
|
implementationContract: ThirdwebContract;
|
131
161
|
contractId: string;
|
132
|
-
|
162
|
+
initializeParams: Omit<InitializeParams, "modules" | "moduleInstallData">;
|
133
163
|
accountAddress: Address;
|
134
164
|
modules: ModuleInstaller[];
|
135
165
|
}) {
|
@@ -137,28 +167,12 @@ async function getInitializeTransaction(options: {
|
|
137
167
|
client,
|
138
168
|
implementationContract,
|
139
169
|
contractId,
|
140
|
-
|
170
|
+
initializeParams,
|
141
171
|
modules,
|
142
|
-
accountAddress,
|
143
172
|
chain,
|
144
173
|
account,
|
145
174
|
} = options;
|
146
|
-
|
147
|
-
coreParams.contractURI ||
|
148
|
-
(await upload({
|
149
|
-
client,
|
150
|
-
files: [
|
151
|
-
{
|
152
|
-
name: coreParams.name,
|
153
|
-
description: coreParams.description,
|
154
|
-
symbol: coreParams.symbol,
|
155
|
-
image: coreParams.image,
|
156
|
-
external_link: coreParams.external_link,
|
157
|
-
social_urls: coreParams.social_urls,
|
158
|
-
},
|
159
|
-
],
|
160
|
-
})) ||
|
161
|
-
"";
|
175
|
+
|
162
176
|
switch (contractId) {
|
163
177
|
case "ERC20CoreInitializable":
|
164
178
|
case "ERC721CoreInitializable":
|
@@ -179,12 +193,10 @@ async function getInitializeTransaction(options: {
|
|
179
193
|
// all 3 cores have the same initializer
|
180
194
|
return initialize({
|
181
195
|
contract: implementationContract,
|
182
|
-
owner:
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
symbol: coreParams.symbol || "",
|
187
|
-
contractURI,
|
196
|
+
owner: initializeParams.owner,
|
197
|
+
name: initializeParams.name,
|
198
|
+
symbol: initializeParams.symbol,
|
199
|
+
contractURI: initializeParams.contractURI,
|
188
200
|
modules: moduleAddresses,
|
189
201
|
moduleInstallData,
|
190
202
|
});
|
@@ -17,24 +17,60 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
17
17
|
chain: ANVIL_CHAIN,
|
18
18
|
account: TEST_ACCOUNT_A,
|
19
19
|
contractId: "AccountFactory",
|
20
|
-
contractParams:
|
20
|
+
contractParams: {
|
21
|
+
defaultAdmin: TEST_ACCOUNT_A.address,
|
22
|
+
entrypoint: ENTRYPOINT_ADDRESS_v0_6,
|
23
|
+
},
|
21
24
|
});
|
22
25
|
expect(address).toBeDefined();
|
23
26
|
expect(address.length).toBe(42);
|
24
27
|
});
|
25
28
|
|
29
|
+
it("should deploy a published direct deploy contract deterministically", async () => {
|
30
|
+
const address = await deployPublishedContract({
|
31
|
+
client: TEST_CLIENT,
|
32
|
+
chain: ANVIL_CHAIN,
|
33
|
+
account: TEST_ACCOUNT_A,
|
34
|
+
contractId: "AccountFactory",
|
35
|
+
contractParams: {
|
36
|
+
defaultAdmin: TEST_ACCOUNT_A.address,
|
37
|
+
entrypoint: ENTRYPOINT_ADDRESS_v0_6,
|
38
|
+
},
|
39
|
+
salt: "test",
|
40
|
+
});
|
41
|
+
expect(address).toBe("0x75fc461544723c0dac7b46256027878e82ddc2cb");
|
42
|
+
});
|
43
|
+
|
26
44
|
it("should deploy a published autofactory contract", async () => {
|
27
45
|
const address = await deployPublishedContract({
|
28
46
|
client: TEST_CLIENT,
|
29
47
|
chain: ANVIL_CHAIN,
|
30
48
|
account: TEST_ACCOUNT_A,
|
31
49
|
contractId: "Airdrop",
|
32
|
-
contractParams:
|
50
|
+
contractParams: {
|
51
|
+
defaultAdmin: TEST_ACCOUNT_A.address,
|
52
|
+
contractURI: "",
|
53
|
+
},
|
33
54
|
});
|
34
55
|
expect(address).toBeDefined();
|
35
56
|
expect(address.length).toBe(42);
|
36
57
|
});
|
37
58
|
|
59
|
+
it("should deploy a published autofactory contract deterministically", async () => {
|
60
|
+
const address = await deployPublishedContract({
|
61
|
+
client: TEST_CLIENT,
|
62
|
+
chain: ANVIL_CHAIN,
|
63
|
+
account: TEST_ACCOUNT_A,
|
64
|
+
contractId: "Airdrop",
|
65
|
+
contractParams: {
|
66
|
+
defaultAdmin: TEST_ACCOUNT_A.address,
|
67
|
+
contractURI: "",
|
68
|
+
},
|
69
|
+
salt: "test",
|
70
|
+
});
|
71
|
+
expect(address).toBe("0x777151741260F8d4098dD492e45FdB536F442672");
|
72
|
+
});
|
73
|
+
|
38
74
|
// TODO: Replace these tests' live contracts with mocks
|
39
75
|
it("should deploy a published contract with no constructor", async () => {
|
40
76
|
const address = await deployPublishedContract({
|
@@ -43,7 +79,6 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
43
79
|
account: TEST_ACCOUNT_A,
|
44
80
|
contractId: "Counter",
|
45
81
|
publisher: "0x4a706de5CE9bfe2f9C37BA945805e396d1810824",
|
46
|
-
contractParams: [],
|
47
82
|
});
|
48
83
|
expect(address).toBeDefined();
|
49
84
|
expect(address.length).toBe(42);
|
@@ -56,7 +91,29 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
56
91
|
account: TEST_ACCOUNT_A,
|
57
92
|
contractId: "MyToken",
|
58
93
|
publisher: "0xc77e556cd96235A7B72d46EAAf13405d698CB2C0",
|
59
|
-
|
94
|
+
});
|
95
|
+
expect(address).toBeDefined();
|
96
|
+
expect(address.length).toBe(42);
|
97
|
+
});
|
98
|
+
|
99
|
+
it("should deploy a published contract with no fuzzy params", async () => {
|
100
|
+
const address = await deployPublishedContract({
|
101
|
+
client: TEST_CLIENT,
|
102
|
+
chain: ANVIL_CHAIN,
|
103
|
+
account: TEST_ACCOUNT_A,
|
104
|
+
contractId: "DropERC1155",
|
105
|
+
contractParams: {
|
106
|
+
defaultAdmin: TEST_ACCOUNT_A.address, // defaultAdmin
|
107
|
+
name: "test", // name
|
108
|
+
symbol: "test", // symbol
|
109
|
+
contractURI: "", // contractURI
|
110
|
+
trustedForwarders: [], // trustedForwarders
|
111
|
+
saleRecipient: TEST_ACCOUNT_A.address, // saleRecipient
|
112
|
+
royaltyRecipient: TEST_ACCOUNT_A.address, // royaltyRecipient
|
113
|
+
royaltyBps: 0n, // royaltyBps
|
114
|
+
platformFeeBps: 0n, // platformFeeBps
|
115
|
+
platformFeeRecipient: TEST_ACCOUNT_A.address, // platformFeeRecipient
|
116
|
+
},
|
60
117
|
});
|
61
118
|
expect(address).toBeDefined();
|
62
119
|
expect(address.length).toBe(42);
|
@@ -1,15 +1,22 @@
|
|
1
|
-
import type {
|
1
|
+
import type { AbiFunction } from "abitype";
|
2
2
|
import type { Chain } from "../../chains/types.js";
|
3
3
|
import type { ThirdwebClient } from "../../client/client.js";
|
4
|
-
import { getContract } from "../../contract/contract.js";
|
4
|
+
import { type ThirdwebContract, getContract } from "../../contract/contract.js";
|
5
5
|
import { fetchPublishedContractMetadata } from "../../contract/deployment/publisher.js";
|
6
|
+
import { getOrDeployInfraContractFromMetadata } from "../../contract/deployment/utils/bootstrap.js";
|
7
|
+
import {} from "../../contract/deployment/utils/infra.js";
|
6
8
|
import { zkDeployContract } from "../../contract/deployment/zksync/zkDeployContract.js";
|
7
9
|
import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
|
8
10
|
import { simulateTransaction } from "../../transaction/actions/simulate.js";
|
9
11
|
import { prepareContractCall } from "../../transaction/prepare-contract-call.js";
|
10
12
|
import { resolveMethod } from "../../transaction/resolve-method.js";
|
13
|
+
import { encodeAbiParameters } from "../../utils/abi/encodeAbiParameters.js";
|
14
|
+
import { normalizeFunctionParams } from "../../utils/abi/normalizeFunctionParams.js";
|
15
|
+
import { getAddress } from "../../utils/address.js";
|
11
16
|
import type { CompilerMetadata } from "../../utils/any-evm/deploy-metadata.js";
|
17
|
+
import type { FetchDeployMetadataResult } from "../../utils/any-evm/deploy-metadata.js";
|
12
18
|
import { isZkSyncChain } from "../../utils/any-evm/zksync/isZkSyncChain.js";
|
19
|
+
import type { Hex } from "../../utils/encoding/hex.js";
|
13
20
|
import type { Account } from "../../wallets/interfaces/wallet.js";
|
14
21
|
|
15
22
|
/**
|
@@ -20,10 +27,11 @@ export type DeployPublishedContractOptions = {
|
|
20
27
|
chain: Chain;
|
21
28
|
account: Account;
|
22
29
|
contractId: string;
|
23
|
-
contractParams
|
30
|
+
contractParams?: Record<string, unknown>;
|
24
31
|
publisher?: string;
|
25
32
|
version?: string;
|
26
|
-
implementationConstructorParams?: unknown
|
33
|
+
implementationConstructorParams?: Record<string, unknown>;
|
34
|
+
salt?: string;
|
27
35
|
};
|
28
36
|
|
29
37
|
/**
|
@@ -31,6 +39,27 @@ export type DeployPublishedContractOptions = {
|
|
31
39
|
* @param options - the deploy options
|
32
40
|
* @returns a promise that resolves to the deployed contract address
|
33
41
|
* @example
|
42
|
+
*
|
43
|
+
* ## Deploying a published contract
|
44
|
+
*
|
45
|
+
* ```ts
|
46
|
+
* import { deployPublishedContract } from "thirdweb/deploys";
|
47
|
+
*
|
48
|
+
* const address = await deployedPublishedContract({
|
49
|
+
* client,
|
50
|
+
* chain,
|
51
|
+
* account,
|
52
|
+
* contractId: "MyPublishedContract",
|
53
|
+
* contractParams: {
|
54
|
+
* param1: "value1",
|
55
|
+
* param2: 123,
|
56
|
+
* },
|
57
|
+
* publisher: "0x...", // optional, defaults to the thirdweb deployer
|
58
|
+
* });
|
59
|
+
* ```
|
60
|
+
*
|
61
|
+
* ## Deploying a published contract deterministically
|
62
|
+
*
|
34
63
|
* ```ts
|
35
64
|
* import { deployPublishedContract } from "thirdweb/deploys";
|
36
65
|
*
|
@@ -39,8 +68,12 @@ export type DeployPublishedContractOptions = {
|
|
39
68
|
* chain,
|
40
69
|
* account,
|
41
70
|
* contractId: "MyPublishedContract",
|
42
|
-
* contractParams:
|
71
|
+
* contractParams: {
|
72
|
+
* param1: "value1",
|
73
|
+
* param2: 123,
|
74
|
+
* },
|
43
75
|
* publisher: "0x...",
|
76
|
+
* salt: "your-salt", // this will deterministically deploy the contract at the same address on all chains
|
44
77
|
* });
|
45
78
|
* ```
|
46
79
|
* @extension DEPLOY
|
@@ -57,23 +90,68 @@ export async function deployPublishedContract(
|
|
57
90
|
publisher,
|
58
91
|
version,
|
59
92
|
implementationConstructorParams,
|
93
|
+
salt,
|
60
94
|
} = options;
|
61
|
-
const
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
});
|
95
|
+
const deployMetadata = await fetchPublishedContractMetadata({
|
96
|
+
client,
|
97
|
+
contractId: isZkSyncChain(chain) ? `${contractId}_ZkSync` : contractId,
|
98
|
+
publisher,
|
99
|
+
version,
|
100
|
+
});
|
68
101
|
|
69
|
-
|
102
|
+
return deployContractfromDeployMetadata({
|
103
|
+
account,
|
104
|
+
chain,
|
105
|
+
deployMetadata,
|
106
|
+
client,
|
107
|
+
initializeParams: contractParams,
|
108
|
+
implementationConstructorParams,
|
109
|
+
salt,
|
110
|
+
});
|
111
|
+
}
|
112
|
+
|
113
|
+
/**
|
114
|
+
* @internal
|
115
|
+
*/
|
116
|
+
export type DeployContractfromDeployMetadataOptions = {
|
117
|
+
client: ThirdwebClient;
|
118
|
+
chain: Chain;
|
119
|
+
account: Account;
|
120
|
+
deployMetadata: FetchDeployMetadataResult;
|
121
|
+
initializeParams?: Record<string, unknown>;
|
122
|
+
implementationConstructorParams?: Record<string, unknown>;
|
123
|
+
modules?: {
|
124
|
+
deployMetadata: FetchDeployMetadataResult;
|
125
|
+
initializeParams?: Record<string, unknown>;
|
126
|
+
}[];
|
127
|
+
salt?: string;
|
128
|
+
};
|
129
|
+
|
130
|
+
/**
|
131
|
+
* @internal
|
132
|
+
*/
|
133
|
+
export async function deployContractfromDeployMetadata(
|
134
|
+
options: DeployContractfromDeployMetadataOptions,
|
135
|
+
): Promise<string> {
|
136
|
+
const {
|
137
|
+
client,
|
138
|
+
account,
|
139
|
+
chain,
|
140
|
+
initializeParams,
|
141
|
+
deployMetadata,
|
142
|
+
implementationConstructorParams,
|
143
|
+
modules,
|
144
|
+
salt,
|
145
|
+
} = options;
|
146
|
+
switch (deployMetadata?.deployType) {
|
70
147
|
case "standard": {
|
71
148
|
return directDeploy({
|
72
149
|
account,
|
73
150
|
client,
|
74
151
|
chain,
|
75
|
-
compilerMetadata,
|
76
|
-
contractParams,
|
152
|
+
compilerMetadata: deployMetadata,
|
153
|
+
contractParams: initializeParams,
|
154
|
+
salt,
|
77
155
|
});
|
78
156
|
}
|
79
157
|
case "autoFactory": {
|
@@ -89,28 +167,19 @@ export async function deployPublishedContract(
|
|
89
167
|
chain,
|
90
168
|
client,
|
91
169
|
account,
|
92
|
-
contractId,
|
93
|
-
constructorParams: implementationConstructorParams
|
94
|
-
publisher,
|
170
|
+
contractId: deployMetadata.name,
|
171
|
+
constructorParams: implementationConstructorParams,
|
172
|
+
publisher: deployMetadata.publisher,
|
95
173
|
});
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
}
|
106
|
-
const initializeTransaction = prepareContractCall({
|
107
|
-
contract: getContract({
|
108
|
-
client,
|
109
|
-
chain,
|
110
|
-
address: implementationContract.address,
|
111
|
-
}),
|
112
|
-
method: initializeFunction,
|
113
|
-
params: contractParams,
|
174
|
+
|
175
|
+
const initializeTransaction = await getInitializeTransaction({
|
176
|
+
client,
|
177
|
+
chain,
|
178
|
+
deployMetadata: deployMetadata,
|
179
|
+
implementationContract,
|
180
|
+
initializeParams,
|
181
|
+
account,
|
182
|
+
modules,
|
114
183
|
});
|
115
184
|
|
116
185
|
return deployViaAutoFactory({
|
@@ -119,17 +188,18 @@ export async function deployPublishedContract(
|
|
119
188
|
account,
|
120
189
|
cloneFactoryContract,
|
121
190
|
initializeTransaction,
|
191
|
+
salt,
|
122
192
|
});
|
123
193
|
}
|
124
194
|
case "customFactory": {
|
125
|
-
if (!
|
195
|
+
if (!deployMetadata?.factoryDeploymentData?.customFactoryInput) {
|
126
196
|
throw new Error("No custom factory info found");
|
127
197
|
}
|
128
198
|
const factoryAddress =
|
129
|
-
|
199
|
+
deployMetadata?.factoryDeploymentData?.customFactoryInput
|
130
200
|
?.customFactoryAddresses?.[chain.id];
|
131
201
|
const factoryFunction =
|
132
|
-
|
202
|
+
deployMetadata.factoryDeploymentData?.customFactoryInput
|
133
203
|
?.factoryFunction;
|
134
204
|
if (!factoryAddress || !factoryFunction) {
|
135
205
|
throw new Error(`No factory address found on chain ${chain.id}`);
|
@@ -140,20 +210,21 @@ export async function deployPublishedContract(
|
|
140
210
|
chain,
|
141
211
|
address: factoryAddress,
|
142
212
|
});
|
213
|
+
const method = await resolveMethod(factoryFunction)(factory);
|
143
214
|
const deployTx = prepareContractCall({
|
144
215
|
contract: factory,
|
145
|
-
method
|
146
|
-
params:
|
216
|
+
method,
|
217
|
+
params: normalizeFunctionParams(method, initializeParams),
|
147
218
|
});
|
148
219
|
// asumption here is that the factory address returns the deployed proxy address
|
149
|
-
const address = simulateTransaction({
|
220
|
+
const address = await simulateTransaction({
|
150
221
|
transaction: deployTx,
|
151
222
|
});
|
152
223
|
await sendAndConfirmTransaction({
|
153
224
|
transaction: deployTx,
|
154
225
|
account,
|
155
226
|
});
|
156
|
-
return address;
|
227
|
+
return address as string;
|
157
228
|
}
|
158
229
|
case undefined: {
|
159
230
|
// Default to standard deployment if none was specified
|
@@ -161,15 +232,14 @@ export async function deployPublishedContract(
|
|
161
232
|
account,
|
162
233
|
client,
|
163
234
|
chain,
|
164
|
-
compilerMetadata,
|
165
|
-
contractParams,
|
235
|
+
compilerMetadata: deployMetadata,
|
236
|
+
contractParams: initializeParams,
|
237
|
+
salt,
|
166
238
|
});
|
167
239
|
}
|
168
240
|
default:
|
169
241
|
// If a deployType was specified but we don't support it, throw an error
|
170
|
-
throw new Error(
|
171
|
-
`Unsupported deploy type: ${extendedMetadata?.deployType}`,
|
172
|
-
);
|
242
|
+
throw new Error(`Unsupported deploy type: ${deployMetadata?.deployType}`);
|
173
243
|
}
|
174
244
|
}
|
175
245
|
|
@@ -178,9 +248,11 @@ async function directDeploy(options: {
|
|
178
248
|
client: ThirdwebClient;
|
179
249
|
chain: Chain;
|
180
250
|
compilerMetadata: CompilerMetadata;
|
181
|
-
contractParams
|
182
|
-
|
183
|
-
|
251
|
+
contractParams?: Record<string, unknown>;
|
252
|
+
salt?: string;
|
253
|
+
}): Promise<string> {
|
254
|
+
const { account, client, chain, compilerMetadata, contractParams, salt } =
|
255
|
+
options;
|
184
256
|
|
185
257
|
if (isZkSyncChain(chain)) {
|
186
258
|
return zkDeployContract({
|
@@ -190,6 +262,7 @@ async function directDeploy(options: {
|
|
190
262
|
bytecode: compilerMetadata.bytecode,
|
191
263
|
abi: compilerMetadata.abi,
|
192
264
|
params: contractParams,
|
265
|
+
salt,
|
193
266
|
});
|
194
267
|
}
|
195
268
|
|
@@ -201,10 +274,90 @@ async function directDeploy(options: {
|
|
201
274
|
client,
|
202
275
|
chain,
|
203
276
|
bytecode: compilerMetadata.bytecode,
|
204
|
-
|
205
|
-
(compilerMetadata.abi.find(
|
206
|
-
(i) => i.type === "constructor",
|
207
|
-
) as AbiConstructor) || [],
|
277
|
+
abi: compilerMetadata.abi,
|
208
278
|
constructorParams: contractParams,
|
279
|
+
salt,
|
280
|
+
});
|
281
|
+
}
|
282
|
+
|
283
|
+
async function getInitializeTransaction(options: {
|
284
|
+
client: ThirdwebClient;
|
285
|
+
chain: Chain;
|
286
|
+
account: Account;
|
287
|
+
implementationContract: ThirdwebContract;
|
288
|
+
deployMetadata: FetchDeployMetadataResult;
|
289
|
+
initializeParams?: Record<string, unknown>;
|
290
|
+
modules?: {
|
291
|
+
deployMetadata: FetchDeployMetadataResult;
|
292
|
+
initializeParams?: Record<string, unknown>;
|
293
|
+
}[];
|
294
|
+
}) {
|
295
|
+
const {
|
296
|
+
account,
|
297
|
+
client,
|
298
|
+
chain,
|
299
|
+
deployMetadata: metadata,
|
300
|
+
initializeParams = {},
|
301
|
+
implementationContract,
|
302
|
+
modules = [],
|
303
|
+
} = options;
|
304
|
+
|
305
|
+
const initializeFunction = metadata.abi.find(
|
306
|
+
(i) =>
|
307
|
+
i.type === "function" &&
|
308
|
+
i.name ===
|
309
|
+
(metadata.factoryDeploymentData?.implementationInitializerFunction ||
|
310
|
+
"initialize"),
|
311
|
+
) as AbiFunction;
|
312
|
+
if (!initializeFunction) {
|
313
|
+
throw new Error(`Could not find initialize function for ${metadata.name}`);
|
314
|
+
}
|
315
|
+
|
316
|
+
const hasModules =
|
317
|
+
initializeFunction.inputs.find(
|
318
|
+
(i) => i.name === "modules" || i.name === "_modules",
|
319
|
+
) &&
|
320
|
+
initializeFunction.inputs.find(
|
321
|
+
(i) => i.name === "moduleInstallData" || i.name === "_moduleInstallData",
|
322
|
+
);
|
323
|
+
if (hasModules) {
|
324
|
+
const moduleAddresses: Hex[] = [];
|
325
|
+
const moduleInstallData: Hex[] = [];
|
326
|
+
for (const module of modules) {
|
327
|
+
// deploy the module if not already deployed
|
328
|
+
const contract = await getOrDeployInfraContractFromMetadata({
|
329
|
+
client,
|
330
|
+
chain,
|
331
|
+
account,
|
332
|
+
contractMetadata: module.deployMetadata,
|
333
|
+
});
|
334
|
+
|
335
|
+
const installFunction = module.deployMetadata.abi.find(
|
336
|
+
(i) => i.type === "function" && i.name === "encodeBytesOnInstall",
|
337
|
+
) as AbiFunction | undefined;
|
338
|
+
|
339
|
+
moduleAddresses.push(getAddress(contract.address));
|
340
|
+
moduleInstallData.push(
|
341
|
+
installFunction
|
342
|
+
? encodeAbiParameters(
|
343
|
+
installFunction.inputs,
|
344
|
+
normalizeFunctionParams(installFunction, module.initializeParams),
|
345
|
+
)
|
346
|
+
: "0x",
|
347
|
+
);
|
348
|
+
}
|
349
|
+
initializeParams.modules = moduleAddresses;
|
350
|
+
initializeParams.moduleInstallData = moduleInstallData;
|
351
|
+
}
|
352
|
+
|
353
|
+
const initializeTransaction = prepareContractCall({
|
354
|
+
contract: getContract({
|
355
|
+
client,
|
356
|
+
chain,
|
357
|
+
address: implementationContract.address,
|
358
|
+
}),
|
359
|
+
method: initializeFunction,
|
360
|
+
params: normalizeFunctionParams(initializeFunction, initializeParams),
|
209
361
|
});
|
362
|
+
return initializeTransaction;
|
210
363
|
}
|