Commit 2b589dfd authored by smartcontracts's avatar smartcontracts Committed by GitHub

maint: clean src imports (#13056)

Cleans up import statments in all contracts within the src/
directory. We should probably add a semgrep rule or a check that
confirms that everything looks good. I'll leave that part for
another commit.
parent ce751a01
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { Blueprint } from "src/libraries/Blueprint.sol";
import { Constants } from "src/libraries/Constants.sol";
import { Claim, Duration, GameType, GameTypes } from "src/dispute/lib/Types.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IResourceMetering } from "src/L1/interfaces/IResourceMetering.sol";
import { IBigStepper } from "src/dispute/interfaces/IBigStepper.sol";
......@@ -11,16 +14,12 @@ import { IDelayedWETH } from "src/dispute/interfaces/IDelayedWETH.sol";
import { IAnchorStateRegistry } from "src/dispute/interfaces/IAnchorStateRegistry.sol";
import { IDisputeGame } from "src/dispute/interfaces/IDisputeGame.sol";
import { IAddressManager } from "src/legacy/interfaces/IAddressManager.sol";
import { IProxyAdmin } from "src/universal/interfaces/IProxyAdmin.sol";
import { IDelayedWETH } from "src/dispute/interfaces/IDelayedWETH.sol";
import { IDisputeGameFactory } from "src/dispute/interfaces/IDisputeGameFactory.sol";
import { IAnchorStateRegistry } from "src/dispute/interfaces/IAnchorStateRegistry.sol";
import { IFaultDisputeGame } from "src/dispute/interfaces/IFaultDisputeGame.sol";
import { IPermissionedDisputeGame } from "src/dispute/interfaces/IPermissionedDisputeGame.sol";
import { Claim, Duration, GameType, GameTypes } from "src/dispute/lib/Types.sol";
import { ISuperchainConfig } from "src/L1/interfaces/ISuperchainConfig.sol";
import { IProtocolVersions } from "src/L1/interfaces/IProtocolVersions.sol";
import { IOptimismPortal2 } from "src/L1/interfaces/IOptimismPortal2.sol";
......@@ -115,8 +114,8 @@ contract OPContractsManager is ISemver {
// -------- Constants and Variables --------
/// @custom:semver 1.0.0-beta.21
string public constant version = "1.0.0-beta.21";
/// @custom:semver 1.0.0-beta.22
string public constant version = "1.0.0-beta.22";
/// @notice Represents the interface version so consumers know how to decode the DeployOutput struct
/// that's emitted in the `Deployed` event. Whenever that struct changes, a new version should be used.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { OPContractsManager } from "src/L1/OPContractsManager.sol";
// Interfaces
import { ISuperchainConfig } from "src/L1/interfaces/ISuperchainConfig.sol";
import { IProtocolVersions } from "src/L1/interfaces/IProtocolVersions.sol";
import { IResourceMetering } from "src/L1/interfaces/IResourceMetering.sol";
......
......@@ -3,13 +3,15 @@ pragma solidity 0.8.15;
// Contracts
import { OptimismPortal2 } from "src/L1/OptimismPortal2.sol";
import { L1BlockInterop, ConfigType } from "src/L2/L1BlockInterop.sol";
// Libraries
import { Predeploys } from "src/libraries/Predeploys.sol";
import { Constants } from "src/libraries/Constants.sol";
import { Unauthorized } from "src/libraries/PortalErrors.sol";
// Interfaces
import { IL1BlockInterop, ConfigType } from "src/L2/interfaces/IL1BlockInterop.sol";
/// @custom:proxied true
/// @title OptimismPortalInterop
/// @notice The OptimismPortal is a low-level contract responsible for passing messages between L1
......@@ -23,9 +25,9 @@ contract OptimismPortalInterop is OptimismPortal2 {
OptimismPortal2(_proofMaturityDelaySeconds, _disputeGameFinalityDelaySeconds)
{ }
/// @custom:semver +interop-beta.2
/// @custom:semver +interop-beta.3
function version() public pure override returns (string memory) {
return string.concat(super.version(), "+interop-beta.2");
return string.concat(super.version(), "+interop-beta.3");
}
/// @notice Sets static configuration options for the L2 system.
......@@ -48,7 +50,7 @@ contract OptimismPortalInterop is OptimismPortal2 {
uint256(0), // value
uint64(SYSTEM_DEPOSIT_GAS_LIMIT), // gasLimit
false, // isCreation,
abi.encodeCall(L1BlockInterop.setConfig, (_type, _value))
abi.encodeCall(IL1BlockInterop.setConfig, (_type, _value))
)
);
}
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
// Libraries
import { Storage } from "src/libraries/Storage.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @notice ProtocolVersion is a numeric identifier of the protocol version.
type ProtocolVersion is uint256;
......@@ -36,8 +41,8 @@ contract ProtocolVersions is OwnableUpgradeable, ISemver {
event ConfigUpdate(uint256 indexed version, UpdateType indexed updateType, bytes data);
/// @notice Semantic version.
/// @custom:semver 1.0.1-beta.3
string public constant version = "1.0.1-beta.3";
/// @custom:semver 1.0.1-beta.4
string public constant version = "1.0.1-beta.4";
/// @notice Constructs the ProtocolVersion contract. Cannot set
/// the owner to `address(0)` due to the Ownable contract's
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
// Libraries
import { Storage } from "src/libraries/Storage.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @custom:proxied true
/// @custom:audit none This contracts is not yet audited.
/// @title SuperchainConfig
......@@ -36,8 +41,8 @@ contract SuperchainConfig is Initializable, ISemver {
event ConfigUpdate(UpdateType indexed updateType, bytes data);
/// @notice Semantic version.
/// @custom:semver 1.1.1-beta.1
string public constant version = "1.1.1-beta.1";
/// @custom:semver 1.1.1-beta.2
string public constant version = "1.1.1-beta.2";
/// @notice Constructs the SuperchainConfig contract.
constructor() {
......
......@@ -3,9 +3,7 @@ pragma solidity 0.8.15;
// Contracts
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { IOptimismPortalInterop as IOptimismPortal } from "src/L1/interfaces/IOptimismPortalInterop.sol";
import { SystemConfig } from "src/L1/SystemConfig.sol";
import { ConfigType } from "src/L2/L1BlockInterop.sol";
// Libraries
import { Constants } from "src/libraries/Constants.sol";
......@@ -14,7 +12,9 @@ import { StaticConfig } from "src/libraries/StaticConfig.sol";
import { Storage } from "src/libraries/Storage.sol";
// Interfaces
import { IOptimismPortalInterop as IOptimismPortal } from "src/L1/interfaces/IOptimismPortalInterop.sol";
import { IResourceMetering } from "src/L1/interfaces/IResourceMetering.sol";
import { ConfigType } from "src/L2/interfaces/IL1BlockInterop.sol";
/// @custom:proxied true
/// @title SystemConfigInterop
......@@ -68,9 +68,9 @@ contract SystemConfigInterop is SystemConfig {
Storage.setAddress(DEPENDENCY_MANAGER_SLOT, _dependencyManager);
}
/// @custom:semver +interop-beta.4
/// @custom:semver +interop-beta.5
function version() public pure override returns (string memory) {
return string.concat(super.version(), "+interop-beta.4");
return string.concat(super.version(), "+interop-beta.5");
}
/// @notice Internal setter for the gas paying token address, includes validation.
......
......@@ -7,7 +7,7 @@ import { IDisputeGame } from "src/dispute/interfaces/IDisputeGame.sol";
import { IDisputeGameFactory } from "src/dispute/interfaces/IDisputeGameFactory.sol";
import { ISystemConfig } from "src/L1/interfaces/ISystemConfig.sol";
import { ISuperchainConfig } from "src/L1/interfaces/ISuperchainConfig.sol";
import { ConfigType } from "src/L2/L1BlockInterop.sol";
import { ConfigType } from "src/L2/interfaces/IL1BlockInterop.sol";
interface IOptimismPortalInterop {
error AlreadyFinalized();
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ISemver } from "src/universal/interfaces/ISemver.sol";
// Contracts
import { FeeVault } from "src/L2/FeeVault.sol";
// Libraries
import { Types } from "src/libraries/Types.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @custom:proxied true
/// @custom:predeploy 0x4200000000000000000000000000000000000019
/// @title BaseFeeVault
/// @notice The BaseFeeVault accumulates the base fee that is paid by transactions.
contract BaseFeeVault is FeeVault, ISemver {
/// @notice Semantic version.
/// @custom:semver 1.5.0-beta.3
string public constant version = "1.5.0-beta.3";
/// @custom:semver 1.5.0-beta.4
string public constant version = "1.5.0-beta.4";
/// @notice Constructs the BaseFeeVault contract.
/// @param _recipient Wallet that will receive the fees.
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Contracts
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
// Libraries
import { AddressAliasHelper } from "src/vendor/AddressAliasHelper.sol";
/// @title CrossDomainOwnable
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;
// Libraries
import { Predeploys } from "src/libraries/Predeploys.sol";
import { TransientContext, TransientReentrancyAware } from "src/libraries/TransientContext.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { SafeCall } from "src/libraries/SafeCall.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IDependencySet } from "src/L2/interfaces/IDependencySet.sol";
import { IL1BlockInterop } from "src/L2/interfaces/IL1BlockInterop.sol";
......@@ -73,8 +76,8 @@ contract CrossL2Inbox is ISemver, TransientReentrancyAware {
address internal constant DEPOSITOR_ACCOUNT = 0xDeaDDEaDDeAdDeAdDEAdDEaddeAddEAdDEAd0001;
/// @notice Semantic version.
/// @custom:semver 1.0.0-beta.9
string public constant version = "1.0.0-beta.9";
/// @custom:semver 1.0.0-beta.10
string public constant version = "1.0.0-beta.10";
/// @notice Emitted when a cross chain message is being executed.
/// @param msgHash Hash of message payload being executed.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ISemver } from "src/universal/interfaces/ISemver.sol";
// Libraries
import { Constants } from "src/libraries/Constants.sol";
import { GasPayingToken, IGasToken } from "src/libraries/GasPayingToken.sol";
import { NotDepositor } from "src/libraries/L1BlockErrors.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @custom:proxied true
/// @custom:predeploy 0x4200000000000000000000000000000000000015
/// @title L1Block
......@@ -57,9 +60,9 @@ contract L1Block is ISemver, IGasToken {
/// @notice The latest L1 blob base fee.
uint256 public blobBaseFee;
/// @custom:semver 1.5.1-beta.3
/// @custom:semver 1.5.1-beta.4
function version() public pure virtual returns (string memory) {
return "1.5.1-beta.3";
return "1.5.1-beta.4";
}
/// @notice Returns the gas paying token, its decimals, name and symbol.
......
......@@ -49,9 +49,9 @@ contract L1BlockInterop is L1Block {
/// keccak256(abi.encode(uint256(keccak256("l1Block.identifier.isDeposit")) - 1)) & ~bytes32(uint256(0xff))
uint256 internal constant IS_DEPOSIT_SLOT = 0x921bd3a089295c6e5540e8fba8195448d253efd6f2e3e495b499b627dc36a300;
/// @custom:semver +interop-beta.1
/// @custom:semver +interop-beta.2
function version() public pure override returns (string memory) {
return string.concat(super.version(), "+interop-beta.1");
return string.concat(super.version(), "+interop-beta.2");
}
/// @notice Returns whether the call was triggered from a a deposit or not.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ISemver } from "src/universal/interfaces/ISemver.sol";
// Contracts
import { FeeVault } from "src/L2/FeeVault.sol";
// Libraries
import { Types } from "src/libraries/Types.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @custom:proxied true
/// @custom:predeploy 0x420000000000000000000000000000000000001A
/// @title L1FeeVault
/// @notice The L1FeeVault accumulates the L1 portion of the transaction fees.
contract L1FeeVault is FeeVault, ISemver {
/// @notice Semantic version.
/// @custom:semver 1.5.0-beta.3
string public constant version = "1.5.0-beta.3";
/// @custom:semver 1.5.0-beta.4
string public constant version = "1.5.0-beta.4";
/// @notice Constructs the L1FeeVault contract.
/// @param _recipient Wallet that will receive the fees.
......
......@@ -3,7 +3,6 @@ pragma solidity 0.8.15;
// Contracts
import { StandardBridge } from "src/universal/StandardBridge.sol";
import { OptimismMintableERC20 } from "src/universal/OptimismMintableERC20.sol";
// Libraries
import { Predeploys } from "src/libraries/Predeploys.sol";
......@@ -11,6 +10,7 @@ import { Predeploys } from "src/libraries/Predeploys.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { ICrossDomainMessenger } from "src/universal/interfaces/ICrossDomainMessenger.sol";
import { OptimismMintableERC20 } from "src/universal/OptimismMintableERC20.sol";
import { IL1Block } from "src/L2/interfaces/IL1Block.sol";
/// @custom:proxied true
......@@ -58,9 +58,9 @@ contract L2StandardBridge is StandardBridge, ISemver {
);
/// @notice Semantic version.
/// @custom:semver 1.11.1-beta.3
/// @custom:semver 1.11.1-beta.4
function version() public pure virtual returns (string memory) {
return "1.11.1-beta.3";
return "1.11.1-beta.4";
}
/// @notice Constructs the L2StandardBridge contract.
......
......@@ -40,9 +40,9 @@ contract L2StandardBridgeInterop is L2StandardBridge {
event Converted(address indexed from, address indexed to, address indexed caller, uint256 amount);
/// @notice Semantic version.
/// @custom:semver +interop-beta.2
/// @custom:semver +interop-beta.3
function version() public pure override returns (string memory) {
return string.concat(super.version(), "+interop-beta.2");
return string.concat(super.version(), "+interop-beta.3");
}
/// @notice Converts `amount` of `from` token to `to` token.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { Types } from "src/libraries/Types.sol";
import { Hashing } from "src/libraries/Hashing.sol";
import { Encoding } from "src/libraries/Encoding.sol";
import { Burn } from "src/libraries/Burn.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @custom:proxied true
......@@ -48,8 +51,8 @@ contract L2ToL1MessagePasser is ISemver {
/// @param amount Amount of ETh that was burned.
event WithdrawerBalanceBurnt(uint256 indexed amount);
/// @custom:semver 1.1.1-beta.1
string public constant version = "1.1.1-beta.1";
/// @custom:semver 1.1.1-beta.2
string public constant version = "1.1.1-beta.2";
/// @notice Allows users to withdraw ETH by sending directly to this contract.
receive() external payable {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;
// Libraries
import { Encoding } from "src/libraries/Encoding.sol";
import { Hashing } from "src/libraries/Hashing.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
import { CrossL2Inbox, Identifier } from "src/L2/CrossL2Inbox.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { SafeCall } from "src/libraries/SafeCall.sol";
import { TransientReentrancyAware } from "src/libraries/TransientContext.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IDependencySet } from "src/L2/interfaces/IDependencySet.sol";
import { ICrossL2Inbox, Identifier } from "src/L2/interfaces/ICrossL2Inbox.sol";
/// @notice Thrown when a non-written slot in transient storage is attempted to be read from.
error NotEntered();
......@@ -69,8 +72,8 @@ contract L2ToL2CrossDomainMessenger is ISemver, TransientReentrancyAware {
uint16 public constant messageVersion = uint16(0);
/// @notice Semantic version.
/// @custom:semver 1.0.0-beta.11
string public constant version = "1.0.0-beta.11";
/// @custom:semver 1.0.0-beta.12
string public constant version = "1.0.0-beta.12";
/// @notice Mapping of message hashes to boolean receipt values. Note that a message will only be present in this
/// mapping if it has successfully been relayed on this chain, and can therefore not be relayed again.
......@@ -164,7 +167,7 @@ contract L2ToL2CrossDomainMessenger is ISemver, TransientReentrancyAware {
}
// Signal that this is a cross chain call that needs to have the identifier validated
CrossL2Inbox(Predeploys.CROSS_L2_INBOX).validateMessage(_id, keccak256(_sentMessage));
ICrossL2Inbox(Predeploys.CROSS_L2_INBOX).validateMessage(_id, keccak256(_sentMessage));
// Decode the payload
(uint256 destination, address target, uint256 nonce, address sender, bytes memory message) =
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;
import { IOptimismSuperchainERC20 } from "src/L2/interfaces/IOptimismSuperchainERC20.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
import { SuperchainERC20 } from "src/L2/SuperchainERC20.sol";
// Contracts
import { Initializable } from "@openzeppelin/contracts-v5/proxy/utils/Initializable.sol";
import { SuperchainERC20 } from "src/L2/SuperchainERC20.sol";
// Libraries
import { Predeploys } from "src/libraries/Predeploys.sol";
import { ZeroAddress, Unauthorized } from "src/libraries/errors/CommonErrors.sol";
// Interfaces
import { IOptimismSuperchainERC20 } from "src/L2/interfaces/IOptimismSuperchainERC20.sol";
/// @custom:proxied true
/// @title OptimismSuperchainERC20
/// @notice OptimismSuperchainERC20 is a standard extension of the base ERC20 token contract that unifies ERC20 token
......@@ -58,8 +63,8 @@ contract OptimismSuperchainERC20 is SuperchainERC20, Initializable {
}
/// @notice Semantic version.
/// @custom:semver 1.0.0-beta.10
string public constant override version = "1.0.0-beta.10";
/// @custom:semver 1.0.0-beta.11
string public constant override version = "1.0.0-beta.11";
/// @notice Constructs the OptimismSuperchainERC20 contract.
constructor() {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { Predeploys } from "src/libraries/Predeploys.sol";
// Interfaces
import { IBeacon } from "@openzeppelin/contracts/proxy/beacon/IBeacon.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
/// @custom:proxied true
/// @custom:predeployed 0x4200000000000000000000000000000000000027
......@@ -11,8 +14,8 @@ import { Predeploys } from "src/libraries/Predeploys.sol";
/// @notice OptimismSuperchainERC20Beacon is the beacon proxy for the OptimismSuperchainERC20 implementation.
contract OptimismSuperchainERC20Beacon is IBeacon, ISemver {
/// @notice Semantic version.
/// @custom:semver 1.0.0-beta.2
string public constant version = "1.0.0-beta.2";
/// @custom:semver 1.0.0-beta.3
string public constant version = "1.0.0-beta.3";
/// @inheritdoc IBeacon
function implementation() external pure override returns (address) {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { OptimismSuperchainERC20 } from "src/L2/OptimismSuperchainERC20.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
// Contracts
import { BeaconProxy } from "@openzeppelin/contracts-v5/proxy/beacon/BeaconProxy.sol";
import { OptimismSuperchainERC20 } from "src/L2/OptimismSuperchainERC20.sol";
// Libraries
import { CREATE3 } from "@rari-capital/solmate/src/utils/CREATE3.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @custom:proxied
/// @custom:predeployed 0x4200000000000000000000000000000000000026
......@@ -22,8 +27,8 @@ contract OptimismSuperchainERC20Factory is ISemver {
);
/// @notice Semantic version.
/// @custom:semver 1.0.0-beta.4
string public constant version = "1.0.0-beta.4";
/// @custom:semver 1.0.0-beta.5
string public constant version = "1.0.0-beta.5";
/// @notice Mapping of the deployed OptimismSuperchainERC20 to the remote token address.
/// This is used to keep track of the token deployments.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ISemver } from "src/universal/interfaces/ISemver.sol";
// Contracts
import { FeeVault } from "src/L2/FeeVault.sol";
// Libraries
import { Types } from "src/libraries/Types.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @custom:proxied true
/// @custom:predeploy 0x4200000000000000000000000000000000000011
/// @title SequencerFeeVault
/// @notice The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during
/// transaction processing and block production.
contract SequencerFeeVault is FeeVault, ISemver {
/// @custom:semver 1.5.0-beta.3
string public constant version = "1.5.0-beta.3";
/// @custom:semver 1.5.0-beta.4
string public constant version = "1.5.0-beta.4";
/// @notice Constructs the SequencerFeeVault contract.
/// @param _recipient Wallet that will receive the fees.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;
import { IERC7802, IERC165 } from "src/L2/interfaces/IERC7802.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
// Contracts
import { ERC20 } from "@solady-v0.0.245/tokens/ERC20.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
// Libraries
import { Predeploys } from "src/libraries/Predeploys.sol";
import { Unauthorized } from "src/libraries/errors/CommonErrors.sol";
// Interfaces
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IERC7802, IERC165 } from "src/L2/interfaces/IERC7802.sol";
/// @title SuperchainERC20
/// @notice A standard ERC20 extension implementing IERC7802 for unified cross-chain fungibility across
/// the Superchain. Allows the SuperchainTokenBridge to mint and burn tokens as needed.
abstract contract SuperchainERC20 is ERC20, IERC7802, ISemver {
/// @notice Semantic version.
/// @custom:semver 1.0.0-beta.6
/// @custom:semver 1.0.0-beta.7
function version() external view virtual returns (string memory) {
return "1.0.0-beta.6";
return "1.0.0-beta.7";
}
/// @notice Allows the SuperchainTokenBridge to mint tokens.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Interfaces
import { IPreimageOracle } from "src/cannon/interfaces/IPreimageOracle.sol";
import { IBigStepper } from "src/dispute/interfaces/IBigStepper.sol";
......@@ -15,8 +16,8 @@ contract RISCV is IBigStepper {
IPreimageOracle public oracle;
/// @notice The version of the contract.
/// @custom:semver 1.1.0-rc.2
string public constant version = "1.1.0-rc.2";
/// @custom:semver 1.1.0-rc.3
string public constant version = "1.1.0-rc.3";
/// @param _oracle The preimage oracle contract.
constructor(IPreimageOracle _oracle) {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IPreimageOracle } from "./interfaces/IPreimageOracle.sol";
// Libraries
import { MIPSInstructions as ins } from "src/cannon/libraries/MIPSInstructions.sol";
import { MIPSSyscalls as sys } from "src/cannon/libraries/MIPSSyscalls.sol";
import { MIPSState as st } from "src/cannon/libraries/MIPSState.sol";
import { MIPSMemory } from "src/cannon/libraries/MIPSMemory.sol";
import { InvalidRMWInstruction } from "src/cannon/libraries/CannonErrors.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IPreimageOracle } from "src/cannon/interfaces/IPreimageOracle.sol";
/// @title MIPS
/// @notice The MIPS contract emulates a single MIPS instruction.
/// Note that delay slots are isolated instructions:
......@@ -44,8 +47,8 @@ contract MIPS is ISemver {
}
/// @notice The semantic version of the MIPS contract.
/// @custom:semver 1.2.1-beta.7
string public constant version = "1.2.1-beta.7";
/// @custom:semver 1.2.1-beta.8
string public constant version = "1.2.1-beta.8";
/// @notice The preimage oracle contract.
IPreimageOracle internal immutable ORACLE;
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IPreimageOracle } from "./interfaces/IPreimageOracle.sol";
// Libraries
import { MIPSMemory } from "src/cannon/libraries/MIPSMemory.sol";
import { MIPSSyscalls as sys } from "src/cannon/libraries/MIPSSyscalls.sol";
import { MIPSState as st } from "src/cannon/libraries/MIPSState.sol";
......@@ -12,6 +11,10 @@ import {
InvalidMemoryProof, InvalidRMWInstruction, InvalidSecondMemoryProof
} from "src/cannon/libraries/CannonErrors.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IPreimageOracle } from "src/cannon/interfaces/IPreimageOracle.sol";
/// @title MIPS2
/// @notice The MIPS2 contract emulates a single MIPS instruction.
/// It differs from MIPS.sol in that it supports multi-threading.
......@@ -60,8 +63,8 @@ contract MIPS2 is ISemver {
}
/// @notice The semantic version of the MIPS2 contract.
/// @custom:semver 1.0.0-beta.22
string public constant version = "1.0.0-beta.22";
/// @custom:semver 1.0.0-beta.23
string public constant version = "1.0.0-beta.23";
/// @notice The preimage oracle contract.
IPreimageOracle internal immutable ORACLE;
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IPreimageOracle } from "./interfaces/IPreimageOracle.sol";
// Libraries
import { MIPS64Memory } from "src/cannon/libraries/MIPS64Memory.sol";
import { MIPS64Syscalls as sys } from "src/cannon/libraries/MIPS64Syscalls.sol";
import { MIPS64State as st } from "src/cannon/libraries/MIPS64State.sol";
......@@ -13,6 +12,10 @@ import {
InvalidMemoryProof, InvalidRMWInstruction, InvalidSecondMemoryProof
} from "src/cannon/libraries/CannonErrors.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IPreimageOracle } from "src/cannon/interfaces/IPreimageOracle.sol";
/// @title MIPS64
/// @notice The MIPS64 contract emulates a single MIPS instruction.
/// It differs from MIPS.sol in that it supports MIPS64 instructions and multi-tasking.
......@@ -64,8 +67,8 @@ contract MIPS64 is ISemver {
}
/// @notice The semantic version of the MIPS64 contract.
/// @custom:semver 1.0.0-beta.4
string public constant version = "1.0.0-beta.4";
/// @custom:semver 1.0.0-beta.5
string public constant version = "1.0.0-beta.5";
/// @notice The preimage oracle contract.
IPreimageOracle internal immutable ORACLE;
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { MIPS64Memory } from "src/cannon/libraries/MIPS64Memory.sol";
import { MIPS64State as st } from "src/cannon/libraries/MIPS64State.sol";
import { MIPS64Arch as arch } from "src/cannon/libraries/MIPS64Arch.sol";
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { InvalidMemoryProof } from "src/cannon/libraries/CannonErrors.sol";
library MIPS64Memory {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { InvalidExitedValue } from "src/cannon/libraries/CannonErrors.sol";
library MIPS64State {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { MIPS64Memory } from "src/cannon/libraries/MIPS64Memory.sol";
import { MIPS64State as st } from "src/cannon/libraries/MIPS64State.sol";
import { IPreimageOracle } from "src/cannon/interfaces/IPreimageOracle.sol";
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { MIPSMemory } from "src/cannon/libraries/MIPSMemory.sol";
import { MIPSState as st } from "src/cannon/libraries/MIPSState.sol";
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { InvalidMemoryProof } from "src/cannon/libraries/CannonErrors.sol";
library MIPSMemory {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { InvalidExitedValue } from "src/cannon/libraries/CannonErrors.sol";
library MIPSState {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { MIPSMemory } from "src/cannon/libraries/MIPSMemory.sol";
import { MIPSState as st } from "src/cannon/libraries/MIPSState.sol";
import { IPreimageOracle } from "src/cannon/interfaces/IPreimageOracle.sol";
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
// Libraries
import { GameType, Hash, Claim } from "src/dispute/lib/LibUDT.sol";
////////////////////////////////////////////////////////////////
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
// Libraries
import { Position } from "src/dispute/lib/LibPosition.sol";
using LibClaim for Claim global;
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
// Libraries
import {
Position,
Hash,
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { ERC20Burnable } from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import { ERC20Votes, ERC20Permit } from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol";
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
/// @custom:legacy true
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @custom:legacy true
......@@ -41,8 +42,8 @@ contract DeployerWhitelist is ISemver {
}
/// @notice Semantic version.
/// @custom:semver 1.1.1-beta.1
string public constant version = "1.1.1-beta.1";
/// @custom:semver 1.1.1-beta.2
string public constant version = "1.1.1-beta.2";
/// @notice Adds or removes an address from the deployment whitelist.
/// @param _deployer Address to update permissions for.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { Constants } from "src/libraries/Constants.sol";
// Interfaces
import { IL1ChugSplashDeployer } from "src/legacy/interfaces/IL1ChugSplashProxy.sol";
/// @custom:legacy true
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @custom:legacy true
......@@ -14,8 +15,8 @@ contract LegacyMessagePasser is ISemver {
mapping(bytes32 => bool) public sentMessages;
/// @notice Semantic version.
/// @custom:semver 1.1.1-beta.1
string public constant version = "1.1.1-beta.1";
/// @custom:semver 1.1.1-beta.2
string public constant version = "1.1.1-beta.2";
/// @notice Passes a message to L1.
/// @param _message Message to pass to L1.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
// Interfaces
import { ILegacyMintableERC20 } from "src/universal/OptimismMintableERC20.sol";
/// @title LegacyMintableERC20
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { AddressManager } from "src/legacy/AddressManager.sol";
/// @custom:legacy true
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Libraries
import { SignedMath } from "@openzeppelin/contracts/utils/math/SignedMath.sol";
import { FixedPointMathLib } from "@rari-capital/solmate/src/utils/FixedPointMathLib.sol";
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Interfaces
import { IResourceMetering } from "src/L1/interfaces/IResourceMetering.sol";
/// @title Constants
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Libraries
import { Types } from "src/libraries/Types.sol";
import { Hashing } from "src/libraries/Hashing.sol";
import { RLPWriter } from "src/libraries/rlp/RLPWriter.sol";
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Libraries
import { LibString } from "@solady/utils/LibString.sol";
import { Storage } from "src/libraries/Storage.sol";
import { Constants } from "src/libraries/Constants.sol";
import { LibString } from "@solady/utils/LibString.sol";
/// @title IGasToken
/// @notice Implemented by contracts that are aware of the custom gas token used
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Libraries
import { Types } from "src/libraries/Types.sol";
import { Encoding } from "src/libraries/Encoding.sol";
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;
// Libraries
import {
EmptyItem,
UnexpectedString,
......@@ -8,7 +9,7 @@ import {
ContentLengthMismatch,
InvalidHeader,
UnexpectedList
} from "./RLPErrors.sol";
} from "src/libraries/rlp/RLPErrors.sol";
/// @custom:attribution https://github.com/hamdiallam/Solidity-RLP
/// @title RLPReader
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { Bytes } from "../Bytes.sol";
import { RLPReader } from "../rlp/RLPReader.sol";
// Libraries
import { Bytes } from "src/libraries/Bytes.sol";
import { RLPReader } from "src/libraries/rlp/RLPReader.sol";
/// @title MerkleTrie
/// @notice MerkleTrie is a small library for verifying standard Ethereum Merkle-Patricia trie
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { MerkleTrie } from "./MerkleTrie.sol";
// Libraries
import { MerkleTrie } from "src/libraries/trie/MerkleTrie.sol";
/// @title SecureMerkleTrie
/// @notice SecureMerkleTrie is a thin wrapper around the MerkleTrie library that hashes the input
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Contracts
import { ERC20 } from "@rari-capital/solmate/src/tokens/ERC20.sol";
import { ERC721 } from "@rari-capital/solmate/src/tokens/ERC721.sol";
import { Transactor } from "./Transactor.sol";
import { Transactor } from "src/periphery/Transactor.sol";
/// @title AssetReceiver
/// @notice AssetReceiver is a minimal contract for receiving funds assets in the form of either
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Contracts
import { Owned } from "@rari-capital/solmate/src/auth/Owned.sol";
/// @title Transactor
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { ReentrancyGuard } from "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
// Libraries
import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
/// @title TransferOnion
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { AssetReceiver } from "../AssetReceiver.sol";
import { IDripCheck } from "./IDripCheck.sol";
// Contracts
import { AssetReceiver } from "src/periphery/AssetReceiver.sol";
// Interfaces
import { IDripCheck } from "src/periphery/drippie/IDripCheck.sol";
/// @title Drippie
/// @notice Drippie is a system for managing automated contract interactions. A specific interaction
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { IDripCheck } from "../IDripCheck.sol";
// Interfaces
import { IDripCheck } from "src/periphery/drippie/IDripCheck.sol";
/// @title CheckBalanceLow
/// @notice DripCheck for checking if an account's balance is below a given threshold.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { IDripCheck } from "../IDripCheck.sol";
// Interfaces
import { IGelatoTreasury } from "src/vendor/interfaces/IGelatoTreasury.sol";
import { IDripCheck } from "src/periphery/drippie/IDripCheck.sol";
/// @title CheckGelatoLow
/// @notice DripCheck for checking if an account's Gelato ETH balance is below some threshold.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { IDripCheck } from "../IDripCheck.sol";
// Interfaces
import { IDripCheck } from "src/periphery/drippie/IDripCheck.sol";
/// @title CheckSecrets
/// @notice DripCheck that checks if specific secrets exist (or not). Supports having a secret that
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { IDripCheck } from "../IDripCheck.sol";
// Interfaces
import { IDripCheck } from "src/periphery/drippie/IDripCheck.sol";
/// @title CheckTrue
/// @notice DripCheck that always returns true.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { IFaucetAuthModule } from "src/periphery/faucet/authmodules/IFaucetAuthModule.sol";
import { SafeCall } from "src/libraries/SafeCall.sol";
// Contracts
import { SafeSend } from "src/universal/SafeSend.sol";
// Libraries
import { SafeCall } from "src/libraries/SafeCall.sol";
// Interfaces
import { IFaucetAuthModule } from "src/periphery/faucet/authmodules/IFaucetAuthModule.sol";
/// @title Faucet
/// @notice Faucet contract that drips ETH to users.
contract Faucet {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { EIP712 } from "@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol";
import { SignatureChecker } from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
import { IFaucetAuthModule } from "./IFaucetAuthModule.sol";
import { Faucet } from "../Faucet.sol";
// Interfaces
import { IFaucetAuthModule } from "src/periphery/faucet/authmodules/IFaucetAuthModule.sol";
import { Faucet } from "src/periphery/faucet/Faucet.sol";
/// @title AdminFaucetAuthModule
/// @notice FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { Faucet } from "../Faucet.sol";
// Contracts
import { Faucet } from "src/periphery/faucet/Faucet.sol";
/// @title IFaucetAuthModule
/// @notice Interface for faucet authentication modules.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Safe
import { GnosisSafe as Safe } from "safe-contracts/GnosisSafe.sol";
import { Guard as BaseGuard } from "safe-contracts/base/GuardManager.sol";
import { SafeSigners } from "src/safe/SafeSigners.sol";
import { Enum } from "safe-contracts/common/Enum.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
// Libraries
import { EnumerableSet } from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
import { SafeSigners } from "src/safe/SafeSigners.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @title LivenessGuard
/// @notice This Guard contract is used to track the liveness of Safe owners.
......@@ -25,8 +30,8 @@ contract LivenessGuard is ISemver, BaseGuard {
event OwnerRecorded(address owner);
/// @notice Semantic version.
/// @custom:semver 1.0.1-beta.2
string public constant version = "1.0.1-beta.2";
/// @custom:semver 1.0.1-beta.3
string public constant version = "1.0.1-beta.3";
/// @notice The safe account for which this contract will be the guard.
Safe internal immutable SAFE;
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Safe
import { GnosisSafe as Safe } from "safe-contracts/GnosisSafe.sol";
import { Enum } from "safe-contracts/common/Enum.sol";
import { OwnerManager } from "safe-contracts/base/OwnerManager.sol";
// Contracts
import { LivenessGuard } from "src/safe/LivenessGuard.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @title LivenessModule
......@@ -53,8 +58,8 @@ contract LivenessModule is ISemver {
uint256 internal constant GUARD_STORAGE_SLOT = 0x4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8;
/// @notice Semantic version.
/// @custom:semver 1.2.1-beta.1
string public constant version = "1.2.1-beta.1";
/// @custom:semver 1.2.1-beta.2
string public constant version = "1.2.1-beta.2";
// Constructor to initialize the Safe and baseModule instances
constructor(
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import { SafeCall } from "src/libraries/SafeCall.sol";
import { Hashing } from "src/libraries/Hashing.sol";
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ICrossDomainMessenger } from "src/universal/interfaces/ICrossDomainMessenger.sol";
import { Address } from "@openzeppelin/contracts/utils/Address.sol";
// Contracts
import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
// Libraries
import { Address } from "@openzeppelin/contracts/utils/Address.sol";
// Interfaces
import { ICrossDomainMessenger } from "src/universal/interfaces/ICrossDomainMessenger.sol";
/// @title ERC721Bridge
/// @notice ERC721Bridge is a base contract for the L1 and L2 ERC721 bridges.
abstract contract ERC721Bridge is Initializable {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { ERC20Permit } from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol";
// Libraries
import { Preinstalls } from "src/libraries/Preinstalls.sol";
// Interfaces
import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IOptimismMintableERC20 } from "src/universal/interfaces/IOptimismMintableERC20.sol";
import { ILegacyMintableERC20 } from "src/universal/interfaces/ILegacyMintableERC20.sol";
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { Preinstalls } from "src/libraries/Preinstalls.sol";
/// @title OptimismMintableERC20
/// @notice OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed
......@@ -42,8 +47,8 @@ contract OptimismMintableERC20 is ERC20Permit, ISemver {
}
/// @notice Semantic version.
/// @custom:semver 1.4.0-beta.2
string public constant version = "1.4.0-beta.2";
/// @custom:semver 1.4.0-beta.3
string public constant version = "1.4.0-beta.3";
/// @notice Getter function for the permit2 address. It deterministically deployed
/// so it will always be at the same address. It is also included as a preinstall,
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
import { OptimismMintableERC20 } from "src/universal/OptimismMintableERC20.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
import { IOptimismERC20Factory } from "src/L2/interfaces/IOptimismERC20Factory.sol";
/// @custom:proxied true
......@@ -48,8 +51,8 @@ contract OptimismMintableERC20Factory is ISemver, Initializable, IOptimismERC20F
/// the OptimismMintableERC20 token contract since this contract
/// is responsible for deploying OptimismMintableERC20 contracts.
/// @notice Semantic version.
/// @custom:semver 1.10.1-beta.4
string public constant version = "1.10.1-beta.4";
/// @custom:semver 1.10.1-beta.5
string public constant version = "1.10.1-beta.5";
/// @notice Constructs the OptimismMintableERC20Factory contract.
constructor() {
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { ERC721Enumerable } from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
// Libraries
import { Strings } from "@openzeppelin/contracts/utils/Strings.sol";
import { IOptimismMintableERC721 } from "src/universal/interfaces/IOptimismMintableERC721.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
import { IOptimismMintableERC721 } from "src/universal/interfaces/IOptimismMintableERC721.sol";
/// @title OptimismMintableERC721
/// @notice This contract is the remote representation for some token that lives on another network,
......@@ -41,8 +46,8 @@ contract OptimismMintableERC721 is ERC721Enumerable, ISemver {
}
/// @notice Semantic version.
/// @custom:semver 1.3.1-beta.3
string public constant version = "1.3.1-beta.3";
/// @custom:semver 1.3.1-beta.4
string public constant version = "1.3.1-beta.4";
/// @param _bridge Address of the bridge on this network.
/// @param _remoteChainId Chain ID where the remote token is deployed.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Contracts
import { OptimismMintableERC721 } from "src/universal/OptimismMintableERC721.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @title OptimismMintableERC721Factory
......@@ -25,8 +28,8 @@ contract OptimismMintableERC721Factory is ISemver {
event OptimismMintableERC721Created(address indexed localToken, address indexed remoteToken, address deployer);
/// @notice Semantic version.
/// @custom:semver 1.4.1-beta.4
string public constant version = "1.4.1-beta.4";
/// @custom:semver 1.4.1-beta.5
string public constant version = "1.4.1-beta.5";
/// @notice The semver MUST be bumped any time that there is a change in
/// the OptimismMintableERC721 token contract since this contract
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Libraries
import { Constants } from "src/libraries/Constants.sol";
/// @title Proxy
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
// Contracts
import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
// Libraries
import { Address } from "@openzeppelin/contracts/utils/Address.sol";
import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import { SafeCall } from "src/libraries/SafeCall.sol";
import { Constants } from "src/libraries/Constants.sol";
// Interfaces
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { IOptimismMintableERC20 } from "src/universal/interfaces/IOptimismMintableERC20.sol";
import { ILegacyMintableERC20 } from "src/universal/interfaces/ILegacyMintableERC20.sol";
import { ICrossDomainMessenger } from "src/universal/interfaces/ICrossDomainMessenger.sol";
import { OptimismMintableERC20 } from "src/universal/OptimismMintableERC20.sol";
import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
import { Constants } from "src/libraries/Constants.sol";
/// @custom:upgradeable
/// @title StandardBridge
......@@ -294,7 +298,7 @@ abstract contract StandardBridge is Initializable {
"StandardBridge: wrong remote token for Optimism Mintable ERC20 local token"
);
OptimismMintableERC20(_localToken).mint(_to, _amount);
IOptimismMintableERC20(_localToken).mint(_to, _amount);
} else {
deposits[_localToken][_remoteToken] = deposits[_localToken][_remoteToken] - _amount;
IERC20(_localToken).safeTransfer(_to, _amount);
......@@ -364,7 +368,7 @@ abstract contract StandardBridge is Initializable {
"StandardBridge: wrong remote token for Optimism Mintable ERC20 local token"
);
OptimismMintableERC20(_localToken).burn(_from, _amount);
IOptimismMintableERC20(_localToken).burn(_from, _amount);
} else {
IERC20(_localToken).safeTransferFrom(_from, address(this), _amount);
deposits[_localToken][_remoteToken] = deposits[_localToken][_remoteToken] + _amount;
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ISemver } from "src/universal/interfaces/ISemver.sol";
// Libraries
import { Storage } from "src/libraries/Storage.sol";
// Interfaces
import { ISemver } from "src/universal/interfaces/ISemver.sol";
/// @title StorageSetter
/// @notice A simple contract that allows setting arbitrary storage slots.
/// WARNING: this contract is not safe to be called by untrusted parties.
......@@ -16,8 +19,8 @@ contract StorageSetter is ISemver {
}
/// @notice Semantic version.
/// @custom:semver 1.2.1-beta.2
string public constant version = "1.2.1-beta.2";
/// @custom:semver 1.2.1-beta.3
string public constant version = "1.2.1-beta.3";
/// @notice Stores a bytes32 `_value` at `_slot`. Any storage slots that
/// are packed should be set through this interface.
......
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { Attestation } from "../Common.sol";
import { Attestation } from "src/vendor/eas/Common.sol";
/// @title ISchemaResolver
/// @notice The interface of an optional schema resolver.
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Testing utilities
// Testing
import { CommonTest } from "test/setup/CommonTest.sol";
// Libraries
......@@ -9,12 +9,8 @@ import { Constants } from "src/libraries/Constants.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
import "src/libraries/PortalErrors.sol";
// Target contract dependencies
import "src/libraries/PortalErrors.sol";
import { OptimismPortalInterop } from "src/L1/OptimismPortalInterop.sol";
import { L1BlockInterop, ConfigType } from "src/L2/L1BlockInterop.sol";
// Interfaces
import { IL1BlockInterop, ConfigType } from "src/L2/interfaces/IL1BlockInterop.sol";
import { IOptimismPortalInterop } from "src/L1/interfaces/IOptimismPortalInterop.sol";
contract OptimismPortalInterop_Test is CommonTest {
......@@ -35,7 +31,7 @@ contract OptimismPortalInterop_Test is CommonTest {
_mint: 0,
_gasLimit: 200_000,
_isCreation: false,
_data: abi.encodeCall(L1BlockInterop.setConfig, (ConfigType.SET_GAS_PAYING_TOKEN, _value))
_data: abi.encodeCall(IL1BlockInterop.setConfig, (ConfigType.SET_GAS_PAYING_TOKEN, _value))
});
vm.prank(address(_optimismPortalInterop().systemConfig()));
......@@ -58,7 +54,7 @@ contract OptimismPortalInterop_Test is CommonTest {
_mint: 0,
_gasLimit: 200_000,
_isCreation: false,
_data: abi.encodeCall(L1BlockInterop.setConfig, (ConfigType.ADD_DEPENDENCY, _value))
_data: abi.encodeCall(IL1BlockInterop.setConfig, (ConfigType.ADD_DEPENDENCY, _value))
});
vm.prank(address(_optimismPortalInterop().systemConfig()));
......@@ -81,7 +77,7 @@ contract OptimismPortalInterop_Test is CommonTest {
_mint: 0,
_gasLimit: 200_000,
_isCreation: false,
_data: abi.encodeCall(L1BlockInterop.setConfig, (ConfigType.REMOVE_DEPENDENCY, _value))
_data: abi.encodeCall(IL1BlockInterop.setConfig, (ConfigType.REMOVE_DEPENDENCY, _value))
});
vm.prank(address(_optimismPortalInterop().systemConfig()));
......
......@@ -6,7 +6,6 @@ import { CommonTest } from "test/setup/CommonTest.sol";
// Contracts
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { ConfigType } from "src/L2/L1BlockInterop.sol";
// Libraries
import { Constants } from "src/libraries/Constants.sol";
......@@ -17,6 +16,7 @@ import { GasPayingToken } from "src/libraries/GasPayingToken.sol";
import { ISystemConfig } from "src/L1/interfaces/ISystemConfig.sol";
import { ISystemConfigInterop } from "src/L1/interfaces/ISystemConfigInterop.sol";
import { IOptimismPortalInterop } from "src/L1/interfaces/IOptimismPortalInterop.sol";
import { ConfigType } from "src/L2/interfaces/IL1BlockInterop.sol";
contract SystemConfigInterop_Test is CommonTest {
/// @notice Marked virtual to be overridden in
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
// Testing utilities
// Testing
import { CommonTest } from "test/setup/CommonTest.sol";
// Libraries
import { StaticConfig } from "src/libraries/StaticConfig.sol";
// Target contract dependencies
import { L1BlockInterop, ConfigType } from "src/L2/L1BlockInterop.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
import "src/libraries/L1BlockErrors.sol";
// Interfaces
import { IL1BlockInterop, ConfigType } from "src/L2/interfaces/IL1BlockInterop.sol";
contract L1BlockInteropTest is CommonTest {
event GasPayingTokenSet(address indexed token, uint8 indexed decimals, bytes32 name, bytes32 symbol);
event DependencyAdded(uint256 indexed chainId);
......@@ -199,8 +199,8 @@ contract L1BlockInteropTest is CommonTest {
}
/// @dev Returns the L1BlockInterop instance.
function _l1BlockInterop() internal view returns (L1BlockInterop) {
return L1BlockInterop(address(l1Block));
function _l1BlockInterop() internal view returns (IL1BlockInterop) {
return IL1BlockInterop(address(l1Block));
}
}
......@@ -261,7 +261,7 @@ contract L1BlockInteropSetL1BlockValuesInterop_Test is L1BlockInteropTest {
vm.prank(_l1BlockInterop().DEPOSITOR_ACCOUNT());
(bool success,) = address(l1Block).call(
abi.encodePacked(L1BlockInterop.setL1BlockValuesInterop.selector, setValuesEcotoneCalldata)
abi.encodePacked(IL1BlockInterop.setL1BlockValuesInterop.selector, setValuesEcotoneCalldata)
);
assertTrue(success, "function call failed");
......
......@@ -10,7 +10,6 @@ import { Predeploys } from "src/libraries/Predeploys.sol";
import { Hashing } from "src/libraries/Hashing.sol";
// Target contract
import { CrossL2Inbox, Identifier } from "src/L2/CrossL2Inbox.sol";
import {
L2ToL2CrossDomainMessenger,
NotEntered,
......@@ -27,6 +26,9 @@ import {
InvalidChainId
} from "src/L2/L2ToL2CrossDomainMessenger.sol";
// Interfaces
import { ICrossL2Inbox, Identifier } from "src/L2/interfaces/ICrossL2Inbox.sol";
/// @title L2ToL2CrossDomainMessengerWithModifiableTransientStorage
/// @dev L2ToL2CrossDomainMessenger contract with methods to modify the transient storage.
/// This is used to test the transient storage of L2ToL2CrossDomainMessenger.
......@@ -264,7 +266,7 @@ contract L2ToL2CrossDomainMessengerTest is Test {
// Ensure the CrossL2Inbox validates this message
vm.mockCall({
callee: Predeploys.CROSS_L2_INBOX,
data: abi.encodeCall(CrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
data: abi.encodeCall(ICrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
returnData: ""
});
......@@ -308,7 +310,7 @@ contract L2ToL2CrossDomainMessengerTest is Test {
// Ensure the CrossL2Inbox validates this message
vm.mockCall({
callee: Predeploys.CROSS_L2_INBOX,
data: abi.encodeCall(CrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
data: abi.encodeCall(ICrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
returnData: ""
});
......@@ -371,7 +373,7 @@ contract L2ToL2CrossDomainMessengerTest is Test {
// Ensure the CrossL2Inbox validates this message
vm.mockCall({
callee: Predeploys.CROSS_L2_INBOX,
data: abi.encodeCall(CrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
data: abi.encodeCall(ICrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
returnData: ""
});
......@@ -452,7 +454,7 @@ contract L2ToL2CrossDomainMessengerTest is Test {
// Ensure the CrossL2Inbox validates this message
vm.mockCall({
callee: Predeploys.CROSS_L2_INBOX,
data: abi.encodeCall(CrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
data: abi.encodeCall(ICrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
returnData: ""
});
......@@ -534,7 +536,7 @@ contract L2ToL2CrossDomainMessengerTest is Test {
// Ensure the CrossL2Inbox validates this message
vm.mockCall({
callee: Predeploys.CROSS_L2_INBOX,
data: abi.encodeCall(CrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
data: abi.encodeCall(ICrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
returnData: ""
});
......@@ -573,7 +575,7 @@ contract L2ToL2CrossDomainMessengerTest is Test {
// Ensure the CrossL2Inbox validates this message
vm.mockCall({
callee: Predeploys.CROSS_L2_INBOX,
data: abi.encodeCall(CrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
data: abi.encodeCall(ICrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
returnData: ""
});
......@@ -615,7 +617,7 @@ contract L2ToL2CrossDomainMessengerTest is Test {
// Ensure the CrossL2Inbox validates this message
vm.mockCall({
callee: Predeploys.CROSS_L2_INBOX,
data: abi.encodeCall(CrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
data: abi.encodeCall(ICrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
returnData: ""
});
......@@ -665,7 +667,7 @@ contract L2ToL2CrossDomainMessengerTest is Test {
// Ensure the CrossL2Inbox validates this message
vm.mockCall({
callee: Predeploys.CROSS_L2_INBOX,
data: abi.encodeCall(CrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
data: abi.encodeCall(ICrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
returnData: ""
});
......@@ -715,7 +717,7 @@ contract L2ToL2CrossDomainMessengerTest is Test {
// Ensure the CrossL2Inbox validates this message
vm.mockCall({
callee: Predeploys.CROSS_L2_INBOX,
data: abi.encodeCall(CrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
data: abi.encodeCall(ICrossL2Inbox.validateMessage, (id, keccak256(sentMessage))),
returnData: ""
});
......
......@@ -4,16 +4,16 @@ pragma solidity 0.8.15;
// Testing
import { Test } from "forge-std/Test.sol";
// Contracts
import { IL1BlockNumber } from "src/legacy/interfaces/IL1BlockNumber.sol";
import { L1Block } from "src/L2/L1Block.sol";
// Libraries
import { Predeploys } from "src/libraries/Predeploys.sol";
import { DeployUtils } from "scripts/libraries/DeployUtils.sol";
// Interfaces
import { IL1BlockNumber } from "src/legacy/interfaces/IL1BlockNumber.sol";
import { IL1Block } from "src/L2/interfaces/IL1Block.sol";
contract L1BlockNumberTest is Test {
L1Block lb;
IL1Block lb;
IL1BlockNumber bn;
uint64 constant number = 99;
......@@ -21,7 +21,7 @@ contract L1BlockNumberTest is Test {
/// @dev Sets up the test suite.
function setUp() external {
vm.etch(Predeploys.L1_BLOCK_ATTRIBUTES, vm.getDeployedCode("L1Block.sol:L1Block"));
lb = L1Block(Predeploys.L1_BLOCK_ATTRIBUTES);
lb = IL1Block(Predeploys.L1_BLOCK_ATTRIBUTES);
bn = IL1BlockNumber(
DeployUtils.create1({
_name: "L1BlockNumber",
......
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