Commit 3380a610 authored by Mark Tyneway's avatar Mark Tyneway

contracts-bedrock: lint

parent 8dc2fa99
...@@ -3,7 +3,10 @@ pragma solidity 0.8.15; ...@@ -3,7 +3,10 @@ pragma solidity 0.8.15;
import { StandardBridge } from "../universal/StandardBridge.sol"; import { StandardBridge } from "../universal/StandardBridge.sol";
import { CommonTest } from "./CommonTest.t.sol"; import { CommonTest } from "./CommonTest.t.sol";
import { OptimismMintableERC20, ILegacyMintableERC20 } from "../universal/OptimismMintableERC20.sol"; import {
OptimismMintableERC20,
ILegacyMintableERC20
} from "../universal/OptimismMintableERC20.sol";
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
/** /**
...@@ -13,24 +16,29 @@ import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; ...@@ -13,24 +16,29 @@ import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
*/ */
contract StandardBridgeTester is StandardBridge { contract StandardBridgeTester is StandardBridge {
constructor(address payable _messenger, address payable _otherBridge) constructor(address payable _messenger, address payable _otherBridge)
StandardBridge(_messenger, _otherBridge) {} StandardBridge(_messenger, _otherBridge)
{}
function isOptimismMintableERC20(address _token) external view returns (bool) { function isOptimismMintableERC20(address _token) external view returns (bool) {
return _isOptimismMintableERC20(_token); return _isOptimismMintableERC20(_token);
} }
function isCorrectTokenPair(address _mintableToken, address _otherToken) external view returns (bool) { function isCorrectTokenPair(address _mintableToken, address _otherToken)
external
view
returns (bool)
{
return _isCorrectTokenPair(_mintableToken, _otherToken); return _isCorrectTokenPair(_mintableToken, _otherToken);
} }
receive() external override payable {} receive() external payable override {}
} }
/** /**
* @title LegacyMintable * @title LegacyMintable
* @notice Simple implementation of the legacy OptimismMintableERC20. * @notice Simple implementation of the legacy OptimismMintableERC20.
*/ */
contract LegacyMintable is ERC20, ILegacyMintableERC20 { contract LegacyMintable is ERC20, ILegacyMintableERC20 {
constructor(string memory _name, string memory _ticker) ERC20(_name, _ticker) {} constructor(string memory _name, string memory _ticker) ERC20(_name, _ticker) {}
function l1Token() external view returns (address) { function l1Token() external view returns (address) {
...@@ -38,6 +46,7 @@ contract LegacyMintable is ERC20, ILegacyMintableERC20 { ...@@ -38,6 +46,7 @@ contract LegacyMintable is ERC20, ILegacyMintableERC20 {
} }
function mint(address _to, uint256 _amount) external pure {} function mint(address _to, uint256 _amount) external pure {}
function burn(address _from, uint256 _amount) external pure {} function burn(address _from, uint256 _amount) external pure {}
/** /**
...@@ -108,27 +117,17 @@ contract StandardBridge_Stateless_Test is CommonTest { ...@@ -108,27 +117,17 @@ contract StandardBridge_Stateless_Test is CommonTest {
*/ */
function test_isCorrectTokenPair_succeeds() external { function test_isCorrectTokenPair_succeeds() external {
// Modern + known to be correct remote token // Modern + known to be correct remote token
assertTrue( assertTrue(bridge.isCorrectTokenPair(address(mintable), mintable.remoteToken()));
bridge.isCorrectTokenPair(address(mintable), mintable.remoteToken())
);
// Modern + known to be correct l1Token (legacy interface) // Modern + known to be correct l1Token (legacy interface)
assertTrue( assertTrue(bridge.isCorrectTokenPair(address(mintable), mintable.l1Token()));
bridge.isCorrectTokenPair(address(mintable), mintable.l1Token())
);
// Modern + known to be incorrect remote token // Modern + known to be incorrect remote token
assertTrue(mintable.remoteToken() != address(0x20)); assertTrue(mintable.remoteToken() != address(0x20));
assertFalse( assertFalse(bridge.isCorrectTokenPair(address(mintable), address(0x20)));
bridge.isCorrectTokenPair(address(mintable), address(0x20))
);
// Legacy + known to be correct l1Token // Legacy + known to be correct l1Token
assertTrue( assertTrue(bridge.isCorrectTokenPair(address(legacy), legacy.l1Token()));
bridge.isCorrectTokenPair(address(legacy), legacy.l1Token())
);
// Legacy + known to be incorrect l1Token // Legacy + known to be incorrect l1Token
assertTrue(legacy.l1Token() != address(0x20)); assertTrue(legacy.l1Token() != address(0x20));
assertFalse( assertFalse(bridge.isCorrectTokenPair(address(legacy), address(0x20)));
bridge.isCorrectTokenPair(address(legacy), address(0x20))
);
// A token that doesn't support either modern or legacy interface // A token that doesn't support either modern or legacy interface
// will revert // will revert
vm.expectRevert(); vm.expectRevert();
......
...@@ -471,7 +471,9 @@ abstract contract StandardBridge { ...@@ -471,7 +471,9 @@ abstract contract StandardBridge {
view view
returns (bool) returns (bool)
{ {
if (ERC165Checker.supportsInterface(_mintableToken, type(ILegacyMintableERC20).interfaceId)) { if (
ERC165Checker.supportsInterface(_mintableToken, type(ILegacyMintableERC20).interfaceId)
) {
return _otherToken == ILegacyMintableERC20(_mintableToken).l1Token(); return _otherToken == ILegacyMintableERC20(_mintableToken).l1Token();
} else { } else {
return _otherToken == IOptimismMintableERC20(_mintableToken).remoteToken(); return _otherToken == IOptimismMintableERC20(_mintableToken).remoteToken();
......
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