diff --git a/packages/contracts-bedrock/src/L2/RSS3Token.sol b/packages/contracts-bedrock/src/L2/RSS3Token.sol index f64301b37..f3f0f07c9 100644 --- a/packages/contracts-bedrock/src/L2/RSS3Token.sol +++ b/packages/contracts-bedrock/src/L2/RSS3Token.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.15; -import {OptimismMintableERC20 as ERC20} from "src/universal/OptimismMintableERC20.sol"; -import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import { OptimismMintableERC20 as ERC20 } from "src/universal/OptimismMintableERC20.sol"; +import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; /// @custom:proxied /// @custom:predeploy 0x4200000000000000000000000000000000000042 @@ -10,13 +10,10 @@ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.s contract RSS3Token is ERC20, Initializable { /// @param _l2Bridge Address of the L2 standard bridge. /// @param _l1Token Address of the L1 RSS3 token. - constructor( - address _l2Bridge, - address _l1Token - ) ERC20(_l2Bridge, _l1Token, "RSS3", "RSS3", 18) {} + constructor(address _l2Bridge, address _l1Token) ERC20(_l2Bridge, _l1Token, "RSS3", "RSS3", 18) { } /// @dev Can only be called once through initializer modifier - function initialize() external initializer { + function initialize() external reinitializer(2) { uint256 amount = 30_000_000 * 10 ** 18; // annual issuance rate of 3% _mint(0x0cE3159BF19F3C55B648D04E8f0Ae1Ae118D2A0B, amount); } diff --git a/packages/contracts-bedrock/test/L2/RSS3Token.t.sol b/packages/contracts-bedrock/test/L2/RSS3Token.t.sol index 159656159..be388ea30 100644 --- a/packages/contracts-bedrock/test/L2/RSS3Token.t.sol +++ b/packages/contracts-bedrock/test/L2/RSS3Token.t.sol @@ -1,43 +1,35 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.15; -import {Test} from "forge-std/Test.sol"; -import {RSS3Token} from "src/L2/RSS3Token.sol"; -import {TransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import { Test } from "forge-std/Test.sol"; +import { RSS3Token } from "src/L2/RSS3Token.sol"; +import { TransparentUpgradeableProxy } from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; contract RSS3Token_Test is Test { RSS3Token public token; address constant L2_BRIDGE = address(0x1234); address constant L1_TOKEN = address(0x5678); - address constant SETTLEMENT_ADDRESS = - 0x0cE3159BF19F3C55B648D04E8f0Ae1Ae118D2A0B; + address constant SETTLEMENT_ADDRESS = 0x0cE3159BF19F3C55B648D04E8f0Ae1Ae118D2A0B; uint256 constant INITIAL_MINT_AMOUNT = 30_000_000 * 10 ** 18; uint256 settlementBalance; function setUp() public { // Create and select the fork - vm.createSelectFork("https://rpc.rss3.io", 15956709); + vm.createSelectFork("https://rpc.rss3.io", 31726799); // Deploy the token contract RSS3Token tokenV2 = new RSS3Token(L2_BRIDGE, L1_TOKEN); - address payable tokenProxy = payable( - 0x4200000000000000000000000000000000000042 - ); + address payable tokenProxy = payable(0x4200000000000000000000000000000000000042); token = RSS3Token(tokenProxy); settlementBalance = token.balanceOf(SETTLEMENT_ADDRESS); - TransparentUpgradeableProxy proxy = TransparentUpgradeableProxy( - tokenProxy - ); + TransparentUpgradeableProxy proxy = TransparentUpgradeableProxy(tokenProxy); vm.startPrank(0x4200000000000000000000000000000000000018); - proxy.upgradeToAndCall( - address(tokenV2), - abi.encodeWithSelector(tokenV2.initialize.selector) - ); + proxy.upgradeToAndCall(address(tokenV2), abi.encodeWithSelector(tokenV2.initialize.selector)); vm.stopPrank(); }