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