github.com/ethereum-optimism/optimism@v1.7.2/packages/contracts-bedrock/test/setup/Bridge_Initializer.sol (about) 1 // SPDX-License-Identifier: MIT 2 pragma solidity 0.8.15; 3 4 import { CommonTest } from "test/setup/CommonTest.sol"; 5 import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 6 import { OptimismMintableERC20 } from "src/universal/OptimismMintableERC20.sol"; 7 import { LegacyMintableERC20 } from "src/legacy/LegacyMintableERC20.sol"; 8 9 /// @title Bridge_Initializer 10 /// @dev This contract extends the CommonTest contract with token deployments 11 /// meant to be used with the bridge contracts. 12 contract Bridge_Initializer is CommonTest { 13 ERC20 L1Token; 14 ERC20 BadL1Token; 15 OptimismMintableERC20 L2Token; 16 LegacyMintableERC20 LegacyL2Token; 17 ERC20 NativeL2Token; 18 ERC20 BadL2Token; 19 OptimismMintableERC20 RemoteL1Token; 20 21 function setUp() public virtual override { 22 super.setUp(); 23 24 L1Token = new ERC20("Native L1 Token", "L1T"); 25 26 LegacyL2Token = new LegacyMintableERC20({ 27 _l2Bridge: address(l2StandardBridge), 28 _l1Token: address(L1Token), 29 _name: string.concat("LegacyL2-", L1Token.name()), 30 _symbol: string.concat("LegacyL2-", L1Token.symbol()) 31 }); 32 vm.label(address(LegacyL2Token), "LegacyMintableERC20"); 33 34 // Deploy the L2 ERC20 now 35 L2Token = OptimismMintableERC20( 36 l2OptimismMintableERC20Factory.createStandardL2Token( 37 address(L1Token), 38 string(abi.encodePacked("L2-", L1Token.name())), 39 string(abi.encodePacked("L2-", L1Token.symbol())) 40 ) 41 ); 42 43 BadL2Token = OptimismMintableERC20( 44 l2OptimismMintableERC20Factory.createStandardL2Token( 45 address(1), 46 string(abi.encodePacked("L2-", L1Token.name())), 47 string(abi.encodePacked("L2-", L1Token.symbol())) 48 ) 49 ); 50 51 NativeL2Token = new ERC20("Native L2 Token", "L2T"); 52 53 RemoteL1Token = OptimismMintableERC20( 54 l1OptimismMintableERC20Factory.createStandardL2Token( 55 address(NativeL2Token), 56 string(abi.encodePacked("L1-", NativeL2Token.name())), 57 string(abi.encodePacked("L1-", NativeL2Token.symbol())) 58 ) 59 ); 60 61 BadL1Token = OptimismMintableERC20( 62 l1OptimismMintableERC20Factory.createStandardL2Token( 63 address(1), 64 string(abi.encodePacked("L1-", NativeL2Token.name())), 65 string(abi.encodePacked("L1-", NativeL2Token.symbol())) 66 ) 67 ); 68 } 69 }