Commit 6b221441 authored by Maurelian's avatar Maurelian Committed by GitHub

feat: Move OptimismMintableERC721 and Factory contracts to L2 dir (#13479)

* feat: Move OptimismMintableERC721 and Factory contracts to L2 dir

* feat: Remove outdated comment about 721 bridge refunds.

Either we deleted that code path, or it never existed in the 721 bridge
and we just copy pasted the comment form the ERC20 bridge.

* fix: semver
parent 91776975
......@@ -21,7 +21,7 @@ import { Types } from "src/libraries/Types.sol";
import { ISequencerFeeVault } from "interfaces/L2/ISequencerFeeVault.sol";
import { IBaseFeeVault } from "interfaces/L2/IBaseFeeVault.sol";
import { IL1FeeVault } from "interfaces/L2/IL1FeeVault.sol";
import { IOptimismMintableERC721Factory } from "interfaces/universal/IOptimismMintableERC721Factory.sol";
import { IOptimismMintableERC721Factory } from "interfaces/L2/IOptimismMintableERC721Factory.sol";
import { IGovernanceToken } from "interfaces/governance/IGovernanceToken.sol";
import { IOptimismMintableERC20Factory } from "interfaces/universal/IOptimismMintableERC20Factory.sol";
import { IL2StandardBridge } from "interfaces/L2/IL2StandardBridge.sol";
......
......@@ -84,8 +84,8 @@
"sourceCodeHash": "0x74882c3cca14807219789b5b2b264ebd17479b409042c09db2da52736f9de36e"
},
"src/L2/L2ERC721Bridge.sol": {
"initCodeHash": "0xa89e9b87c3b7ff8a4cd09fc121f371e6974a133be46e6be822f1773d775d973d",
"sourceCodeHash": "0xc3778aacf2f7ba182aebb84c8b9eeceaa0fe32da46422beb0dd9ee30dbd19383"
"initCodeHash": "0xea899e672803634b98d619174bf85dc8b3f7e6407bb7306eb72ed4c8eefce0c0",
"sourceCodeHash": "0xea896e18eceb9ba6e8125e9f3371549787e082db4b26d642b279b5697651d473"
},
"src/L2/L2StandardBridge.sol": {
"initCodeHash": "0xde3b3a1aa0056d25ab3f4ad6e29b9d56c4740b29cd9bef36588d849ffc0178f6",
......@@ -103,6 +103,14 @@
"initCodeHash": "0xc56db8cb569efa0467fd53ab3fa218af3051e54f5517d7fafb7b5831b4350618",
"sourceCodeHash": "0x72062343a044e9c56f4143dcfc71706286eb205902006c2afcf6a4cd90c3e9f8"
},
"src/L2/OptimismMintableERC721.sol": {
"initCodeHash": "0xcfa6ad9997a422aef5a19a490a0a535bc870ee34b1f5258c2949eb3680f71e8a",
"sourceCodeHash": "0xb67b91f28c8666fee26c40375f835c61629e0f14054bfaf78bc3c61175bbf136"
},
"src/L2/OptimismMintableERC721Factory.sol": {
"initCodeHash": "0x9ccba9a5db77356c361fe4aea0e93498a56bda9fdac8d5e654d6f7abc4553028",
"sourceCodeHash": "0x2e4b8535b1f7749a0479b2c1de86b3ff79ee4ff6122c6f87c52d66cd301f3f97"
},
"src/L2/OptimismSuperchainERC20.sol": {
"initCodeHash": "0xdac32a1057a6bc8a8d2ffdce1db8f34950cd0ffd1454d2133865736d21869192",
"sourceCodeHash": "0x4a7924f2195074145ac8e6221d77b24cd22d97423db2053937897e9d788990e2"
......@@ -203,14 +211,6 @@
"initCodeHash": "0x2f289eb1695675c0a61ba24f30ce8b29c704fe5be93b469ebe8245f1e5e8ee5d",
"sourceCodeHash": "0x7f72c9293493b5e9f7854eb6768cb338aa49bf1aa6059e6a1a80bcd509b7b88f"
},
"src/universal/OptimismMintableERC721.sol": {
"initCodeHash": "0xa43e7ffce142c0f2ae6ebe22decdf146dd39246830bec5cbd7903b32c2599048",
"sourceCodeHash": "0x5222efbb8e5b650e0778687ea3b3ca8df16d1683c7180862c77fe146dd21ea79"
},
"src/universal/OptimismMintableERC721Factory.sol": {
"initCodeHash": "0x8ff88eb88c3b756b51e2f011bdf4387992a4f48abb2ab0a38fe6bb50ffea3301",
"sourceCodeHash": "0x483e20d002a402034a0a5b2ff60c9e69afa4f0f9917d287dfe820b7bae08a7bb"
},
"src/universal/StorageSetter.sol": {
"initCodeHash": "0x8831c079f7b7a52679e8a15e0ea14e30ea7bb4f93feed0fcd369942fe8c1f1ec",
"sourceCodeHash": "0x42151e2547ec5270353977fd66e78fa1fde18f362d7021cf7ddce16d5201b3ec"
......
......@@ -10,7 +10,7 @@ import { Predeploys } from "src/libraries/Predeploys.sol";
// Interfaces
import { IL1ERC721Bridge } from "interfaces/L1/IL1ERC721Bridge.sol";
import { IOptimismMintableERC721 } from "interfaces/universal/IOptimismMintableERC721.sol";
import { IOptimismMintableERC721 } from "interfaces/L2/IOptimismMintableERC721.sol";
import { ICrossDomainMessenger } from "interfaces/universal/ICrossDomainMessenger.sol";
import { ISemver } from "interfaces/universal/ISemver.sol";
......@@ -22,12 +22,10 @@ import { ISemver } from "interfaces/universal/ISemver.sol";
/// 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.
/// **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This
/// bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to
/// wait for the one-week challenge period to elapse before their Optimism-native NFT
/// can be refunded on L2.
/// bridge ONLY supports ERC721s originally deployed on Ethereum.
contract L2ERC721Bridge is ERC721Bridge, ISemver {
/// @custom:semver 1.8.0-beta.4
string public constant version = "1.8.0-beta.4";
/// @custom:semver 1.8.0-beta.5
string public constant version = "1.8.0-beta.5";
/// @notice Constructs the L2ERC721Bridge contract.
constructor() ERC721Bridge() {
......
......@@ -10,7 +10,7 @@ import { Strings } from "@openzeppelin/contracts/utils/Strings.sol";
// Interfaces
import { ISemver } from "interfaces/universal/ISemver.sol";
import { IOptimismMintableERC721 } from "interfaces/universal/IOptimismMintableERC721.sol";
import { IOptimismMintableERC721 } from "interfaces/L2/IOptimismMintableERC721.sol";
/// @title OptimismMintableERC721
/// @notice This contract is the remote representation for some token that lives on another network,
......@@ -46,8 +46,8 @@ contract OptimismMintableERC721 is ERC721Enumerable, ISemver {
}
/// @notice Semantic version.
/// @custom:semver 1.3.1-beta.5
string public constant version = "1.3.1-beta.5";
/// @custom:semver 1.3.1-beta.6
string public constant version = "1.3.1-beta.6";
/// @param _bridge Address of the bridge on this network.
/// @param _remoteChainId Chain ID where the remote token is deployed.
......
......@@ -2,11 +2,13 @@
pragma solidity 0.8.15;
// Contracts
import { OptimismMintableERC721 } from "src/universal/OptimismMintableERC721.sol";
import { OptimismMintableERC721 } from "src/L2/OptimismMintableERC721.sol";
// Interfaces
import { ISemver } from "interfaces/universal/ISemver.sol";
/// @custom:proxied true
/// @custom:predeploy 0x4200000000000000000000000000000000000017
/// @title OptimismMintableERC721Factory
/// @notice Factory contract for creating OptimismMintableERC721 contracts.
contract OptimismMintableERC721Factory is ISemver {
......@@ -28,8 +30,8 @@ contract OptimismMintableERC721Factory is ISemver {
event OptimismMintableERC721Created(address indexed localToken, address indexed remoteToken, address deployer);
/// @notice Semantic version.
/// @custom:semver 1.4.1-beta.6
string public constant version = "1.4.1-beta.6";
/// @custom:semver 1.4.1-beta.7
string public constant version = "1.4.1-beta.7";
/// @notice The semver MUST be bumped any time that there is a change in
/// the OptimismMintableERC721 token contract since this contract
......
......@@ -6,7 +6,7 @@ import { CommonTest } from "test/setup/CommonTest.sol";
// Contracts
import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import { OptimismMintableERC721 } from "src/universal/OptimismMintableERC721.sol";
import { OptimismMintableERC721 } from "src/L2/OptimismMintableERC721.sol";
// Interfaces
import { IL1ERC721Bridge } from "interfaces/L1/IL1ERC721Bridge.sol";
......
......@@ -6,7 +6,7 @@ import { IERC721Enumerable } from "@openzeppelin/contracts/token/ERC721/extensio
import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import { Strings } from "@openzeppelin/contracts/utils/Strings.sol";
import { CommonTest } from "test/setup/CommonTest.sol";
import { OptimismMintableERC721, IOptimismMintableERC721 } from "src/universal/OptimismMintableERC721.sol";
import { OptimismMintableERC721, IOptimismMintableERC721 } from "src/L2/OptimismMintableERC721.sol";
contract OptimismMintableERC721_Test is CommonTest {
ERC721 internal L1NFT;
......
......@@ -2,8 +2,8 @@
pragma solidity 0.8.15;
import { CommonTest } from "test/setup/CommonTest.sol";
import { OptimismMintableERC721 } from "src/universal/OptimismMintableERC721.sol";
import { OptimismMintableERC721Factory } from "src/universal/OptimismMintableERC721Factory.sol";
import { OptimismMintableERC721 } from "src/L2/OptimismMintableERC721.sol";
import { OptimismMintableERC721Factory } from "src/L2/OptimismMintableERC721Factory.sol";
contract OptimismMintableERC721Factory_Test is CommonTest {
event OptimismMintableERC721Created(address indexed localToken, address indexed remoteToken, address deployer);
......
......@@ -29,7 +29,7 @@ import { IDataAvailabilityChallenge } from "interfaces/L1/IDataAvailabilityChall
import { IL1StandardBridge } from "interfaces/L1/IL1StandardBridge.sol";
import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol";
import { IL1ERC721Bridge } from "interfaces/L1/IL1ERC721Bridge.sol";
import { IOptimismMintableERC721Factory } from "interfaces/universal/IOptimismMintableERC721Factory.sol";
import { IOptimismMintableERC721Factory } from "interfaces/L2/IOptimismMintableERC721Factory.sol";
import { IDisputeGameFactory } from "interfaces/dispute/IDisputeGameFactory.sol";
import { IDelayedWETH } from "interfaces/dispute/IDelayedWETH.sol";
import { IAnchorStateRegistry } from "interfaces/dispute/IAnchorStateRegistry.sol";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment