From 957c4f4331c9ab4de346078461ef8197ad7aaa35 Mon Sep 17 00:00:00 2001 From: Sam Goldman Date: Thu, 15 Sep 2022 16:32:59 -0400 Subject: [PATCH] nft: N-10 Undocumented implicit approval requirements --- .../contracts/L1/L1ERC721Bridge.sol | 11 +++-------- .../contracts/L2/L2ERC721Bridge.sol | 11 +++-------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/packages/contracts-periphery/contracts/L1/L1ERC721Bridge.sol b/packages/contracts-periphery/contracts/L1/L1ERC721Bridge.sol index 947b85ebdaae2..e509a4b1fae7f 100644 --- a/packages/contracts-periphery/contracts/L1/L1ERC721Bridge.sol +++ b/packages/contracts-periphery/contracts/L1/L1ERC721Bridge.sol @@ -3,14 +3,12 @@ pragma solidity 0.8.15; import { CrossDomainEnabled -} from "@eth-optimism/contracts/libraries/bridge/CrossDomainEnabled.sol"; -import { - OwnableUpgradeable -} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +} from "@eth-optimism/contracts/contracts/libraries/bridge/CrossDomainEnabled.sol"; import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import { Address } from "@openzeppelin/contracts/utils/Address.sol"; import { L2ERC721Bridge } from "../L2/L2ERC721Bridge.sol"; import { Semver } from "@eth-optimism/contracts-bedrock/contracts/universal/Semver.sol"; +import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; /** * @title L1ERC721Bridge @@ -18,7 +16,7 @@ import { Semver } from "@eth-optimism/contracts-bedrock/contracts/universal/Semv * make it possible to transfer ERC721 tokens between Optimism and Ethereum. This contract * acts as an escrow for ERC721 tokens deposted into L2. */ -contract L1ERC721Bridge is Semver, CrossDomainEnabled, OwnableUpgradeable { +contract L1ERC721Bridge is Semver, CrossDomainEnabled, Initializable { /** * @notice Emitted when an ERC721 bridge to the other network is initiated. * @@ -89,9 +87,6 @@ contract L1ERC721Bridge is Semver, CrossDomainEnabled, OwnableUpgradeable { function initialize(address _messenger, address _otherBridge) public initializer { messenger = _messenger; otherBridge = _otherBridge; - - // Initialize upgradable OZ contracts - __Ownable_init(); } /** diff --git a/packages/contracts-periphery/contracts/L2/L2ERC721Bridge.sol b/packages/contracts-periphery/contracts/L2/L2ERC721Bridge.sol index 237dcdd4de9cb..5f906f73f9599 100644 --- a/packages/contracts-periphery/contracts/L2/L2ERC721Bridge.sol +++ b/packages/contracts-periphery/contracts/L2/L2ERC721Bridge.sol @@ -3,15 +3,13 @@ pragma solidity 0.8.15; import { CrossDomainEnabled -} from "@eth-optimism/contracts/libraries/bridge/CrossDomainEnabled.sol"; -import { - OwnableUpgradeable -} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +} from "@eth-optimism/contracts/contracts/libraries/bridge/CrossDomainEnabled.sol"; import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol"; import { Address } from "@openzeppelin/contracts/utils/Address.sol"; import { L1ERC721Bridge } from "../L1/L1ERC721Bridge.sol"; import { IOptimismMintableERC721 } from "../universal/op-erc721/IOptimismMintableERC721.sol"; import { Semver } from "@eth-optimism/contracts-bedrock/contracts/universal/Semver.sol"; +import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; /** * @title L2ERC721Bridge @@ -20,7 +18,7 @@ import { Semver } from "@eth-optimism/contracts-bedrock/contracts/universal/Semv * acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge. * This contract also acts as a burner for tokens being withdrawn. */ -contract L2ERC721Bridge is Semver, CrossDomainEnabled, OwnableUpgradeable { +contract L2ERC721Bridge is Semver, CrossDomainEnabled, Initializable { /** * @notice Emitted when an ERC721 bridge to the other network is initiated. * @@ -103,9 +101,6 @@ contract L2ERC721Bridge is Semver, CrossDomainEnabled, OwnableUpgradeable { function initialize(address _messenger, address _otherBridge) public initializer { messenger = _messenger; otherBridge = _otherBridge; - - // Initialize upgradable OZ contracts - __Ownable_init(); } /**