From 261d352eef4141728d6ba3a70dbbe9f2d7f4c875 Mon Sep 17 00:00:00 2001 From: nkrishang <62195808+nkrishang@users.noreply.github.com> Date: Tue, 12 Sep 2023 14:57:50 -0400 Subject: [PATCH] Use latest dynamic-contract dependency (#499) * Install latest dynamic-contracts deps * Update contracts that use BaseRouter --- .../prebuilts/account/dynamic/DynamicAccount.sol | 14 ++++++++++---- .../account/managed/ManagedAccountFactory.sol | 7 ++++--- .../burn-to-claim-drop/BurnToClaimDropERC721.sol | 9 ++++++--- .../unaudited/evolving-nfts/EvolvingNFT.sol | 9 ++++++--- lib/dynamic-contracts | 2 +- 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/contracts/prebuilts/account/dynamic/DynamicAccount.sol b/contracts/prebuilts/account/dynamic/DynamicAccount.sol index a3d7cc5eb..8ba7fed67 100644 --- a/contracts/prebuilts/account/dynamic/DynamicAccount.sol +++ b/contracts/prebuilts/account/dynamic/DynamicAccount.sol @@ -7,7 +7,7 @@ pragma solidity ^0.8.11; import "../utils/AccountCore.sol"; -import "@thirdweb-dev/dynamic-contracts/src/presets/BaseRouterWithDefaults.sol"; +import "@thirdweb-dev/dynamic-contracts/src/presets/BaseRouter.sol"; // $$\ $$\ $$\ $$\ $$\ // $$ | $$ | \__| $$ | $$ | @@ -18,18 +18,24 @@ import "@thirdweb-dev/dynamic-contracts/src/presets/BaseRouterWithDefaults.sol"; // \$$$$ |$$ | $$ |$$ |$$ | \$$$$$$$ |\$$$$$\$$$$ |\$$$$$$$\ $$$$$$$ | // \____/ \__| \__|\__|\__| \_______| \_____\____/ \_______|\_______/ -contract DynamicAccount is AccountCore, BaseRouterWithDefaults { +contract DynamicAccount is AccountCore, BaseRouter { /*/////////////////////////////////////////////////////////////// - Constructor + Constructor and Initializer //////////////////////////////////////////////////////////////*/ constructor(IEntryPoint _entrypoint, Extension[] memory _defaultExtensions) AccountCore(_entrypoint, msg.sender) - BaseRouterWithDefaults(_defaultExtensions) + BaseRouter(_defaultExtensions) { _disableInitializers(); } + /// @notice Initializes the smart contract wallet. + function initialize(address _defaultAdmin, bytes calldata) public override initializer { + __BaseRouter_init(); + _setAdmin(_defaultAdmin, true); + } + /*/////////////////////////////////////////////////////////////// Internal overrides //////////////////////////////////////////////////////////////*/ diff --git a/contracts/prebuilts/account/managed/ManagedAccountFactory.sol b/contracts/prebuilts/account/managed/ManagedAccountFactory.sol index f02da1be3..2e6a6ae2b 100644 --- a/contracts/prebuilts/account/managed/ManagedAccountFactory.sol +++ b/contracts/prebuilts/account/managed/ManagedAccountFactory.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.12; // Utils -import "@thirdweb-dev/dynamic-contracts/src/presets/BaseRouterWithDefaults.sol"; +import "@thirdweb-dev/dynamic-contracts/src/presets/BaseRouter.sol"; import "../utils/BaseAccountFactory.sol"; // Extensions @@ -21,15 +21,16 @@ import { ManagedAccount, IEntryPoint } from "./ManagedAccount.sol"; // \$$$$ |$$ | $$ |$$ |$$ | \$$$$$$$ |\$$$$$\$$$$ |\$$$$$$$\ $$$$$$$ | // \____/ \__| \__|\__|\__| \_______| \_____\____/ \_______|\_______/ -contract ManagedAccountFactory is BaseAccountFactory, ContractMetadata, PermissionsEnumerable, BaseRouterWithDefaults { +contract ManagedAccountFactory is BaseAccountFactory, ContractMetadata, PermissionsEnumerable, BaseRouter { /*/////////////////////////////////////////////////////////////// Constructor //////////////////////////////////////////////////////////////*/ constructor(IEntryPoint _entrypoint, Extension[] memory _defaultExtensions) - BaseRouterWithDefaults(_defaultExtensions) + BaseRouter(_defaultExtensions) BaseAccountFactory(payable(address(new ManagedAccount(_entrypoint, address(this)))), address(_entrypoint)) { + __BaseRouter_init(); _setupRole(DEFAULT_ADMIN_ROLE, msg.sender); } diff --git a/contracts/prebuilts/unaudited/burn-to-claim-drop/BurnToClaimDropERC721.sol b/contracts/prebuilts/unaudited/burn-to-claim-drop/BurnToClaimDropERC721.sol index bf9641659..30f93085a 100644 --- a/contracts/prebuilts/unaudited/burn-to-claim-drop/BurnToClaimDropERC721.sol +++ b/contracts/prebuilts/unaudited/burn-to-claim-drop/BurnToClaimDropERC721.sol @@ -12,7 +12,7 @@ pragma solidity ^0.8.11; // \$$$$ |$$ | $$ |$$ |$$ | \$$$$$$$ |\$$$$$\$$$$ |\$$$$$$$\ $$$$$$$ | // \____/ \__| \__|\__|\__| \_______| \_____\____/ \_______|\_______/ -import "@thirdweb-dev/dynamic-contracts/src/presets/BaseRouterWithDefaults.sol"; +import "@thirdweb-dev/dynamic-contracts/src/presets/BaseRouter.sol"; import "../../../extension/Multicall.sol"; @@ -34,7 +34,7 @@ contract BurnToClaimDropERC721 is Initializable, Multicall, ERC2771ContextUpgradeable, - BaseRouterWithDefaults, + BaseRouter, DefaultOperatorFiltererInit, ContractMetadataInit, PlatformFeeInit, @@ -48,7 +48,7 @@ contract BurnToClaimDropERC721 is Constructor + initializer logic //////////////////////////////////////////////////////////////*/ - constructor(Extension[] memory _extensions) BaseRouterWithDefaults(_extensions) { + constructor(Extension[] memory _extensions) BaseRouter(_extensions) { _disableInitializers(); } @@ -65,6 +65,9 @@ contract BurnToClaimDropERC721 is uint128 _platformFeeBps, address _platformFeeRecipient ) external initializer { + // Initialize extensions + __BaseRouter_init(); + // Initialize inherited contracts, most base-like -> most derived. __ERC2771Context_init(_trustedForwarders); __ERC721A_init(_name, _symbol); diff --git a/contracts/prebuilts/unaudited/evolving-nfts/EvolvingNFT.sol b/contracts/prebuilts/unaudited/evolving-nfts/EvolvingNFT.sol index 8afc88f07..99c6e1a05 100644 --- a/contracts/prebuilts/unaudited/evolving-nfts/EvolvingNFT.sol +++ b/contracts/prebuilts/unaudited/evolving-nfts/EvolvingNFT.sol @@ -12,7 +12,7 @@ pragma solidity ^0.8.11; // \$$$$ |$$ | $$ |$$ |$$ | \$$$$$$$ |\$$$$$\$$$$ |\$$$$$$$\ $$$$$$$ | // \____/ \__| \__|\__|\__| \_______| \_____\____/ \_______|\_______/ -import "@thirdweb-dev/dynamic-contracts/src/presets/BaseRouterWithDefaults.sol"; +import "@thirdweb-dev/dynamic-contracts/src/presets/BaseRouter.sol"; import "../../../extension/Multicall.sol"; import "../../../extension/upgradeable/Initializable.sol"; @@ -27,7 +27,7 @@ import "../../../extension/upgradeable/init/DefaultOperatorFiltererInit.sol"; contract EvolvingNFT is Initializable, - BaseRouterWithDefaults, + BaseRouter, Multicall, ERC721AQueryableInit, ERC2771ContextInit, @@ -41,7 +41,7 @@ contract EvolvingNFT is /// @dev Only MINTER_ROLE holders can sign off on `MintRequest`s. bytes32 private constant EXTENSION_ROLE = keccak256("EXTENSION_ROLE"); - constructor(Extension[] memory _extensions) BaseRouterWithDefaults(_extensions) { + constructor(Extension[] memory _extensions) BaseRouter(_extensions) { _disableInitializers(); } @@ -58,6 +58,9 @@ contract EvolvingNFT is ) external initializer initializerERC721A { bytes32 _transferRole = keccak256("TRANSFER_ROLE"); + // Initialize extensions + __BaseRouter_init(); + // Initialize inherited contracts, most base-like -> most derived. __ERC2771Context_init(_trustedForwarders); __ERC721A_init(_name, _symbol); diff --git a/lib/dynamic-contracts b/lib/dynamic-contracts index 7cf7a6b2a..3797dad67 160000 --- a/lib/dynamic-contracts +++ b/lib/dynamic-contracts @@ -1 +1 @@ -Subproject commit 7cf7a6b2a741be0211839fa272331bb4d1260e96 +Subproject commit 3797dad6792b35a1d0b8774eb91ab2f8c5fcf4d4