From 99662c09a8e06f29e62555b43067c39086c9963c Mon Sep 17 00:00:00 2001 From: Kelvin Fichter Date: Fri, 8 Jul 2022 13:07:46 -0400 Subject: [PATCH] fix(ctb): remove DefaultValues Unnecessary library, only being used in a single place now and it can just be an internal constant. I see no strong reason for this library to continue to exist. --- .changeset/friendly-donuts-kiss.md | 5 +++++ .../contracts/libraries/DefaultValues.sol | 12 ------------ .../contracts/test/L1CrossDomainMessenger.t.sol | 1 - .../contracts/test/L2CrossDomainMessenger.t.sol | 1 - .../universal/CrossDomainMessenger.sol | 17 ++++++++++------- 5 files changed, 15 insertions(+), 21 deletions(-) create mode 100644 .changeset/friendly-donuts-kiss.md delete mode 100644 packages/contracts-bedrock/contracts/libraries/DefaultValues.sol diff --git a/.changeset/friendly-donuts-kiss.md b/.changeset/friendly-donuts-kiss.md new file mode 100644 index 0000000000000..0dc7e22be8289 --- /dev/null +++ b/.changeset/friendly-donuts-kiss.md @@ -0,0 +1,5 @@ +--- +'@eth-optimism/contracts-bedrock': patch +--- + +Remove unnecessary DefaultValues library diff --git a/packages/contracts-bedrock/contracts/libraries/DefaultValues.sol b/packages/contracts-bedrock/contracts/libraries/DefaultValues.sol deleted file mode 100644 index 8b8de2c627e13..0000000000000 --- a/packages/contracts-bedrock/contracts/libraries/DefaultValues.sol +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.9; - -/** - * @title DefaultValues - */ -library DefaultValues { - // The default x-domain message sender being set to a non-zero value makes - // deployment a bit more expensive, but in exchange the refund on every call to - // `relayMessage` by the L1 and L2 messengers will be higher. - address internal constant DEFAULT_XDOMAIN_SENDER = 0x000000000000000000000000000000000000dEaD; -} diff --git a/packages/contracts-bedrock/contracts/test/L1CrossDomainMessenger.t.sol b/packages/contracts-bedrock/contracts/test/L1CrossDomainMessenger.t.sol index 66f8f36308bae..4df3812594ff2 100644 --- a/packages/contracts-bedrock/contracts/test/L1CrossDomainMessenger.t.sol +++ b/packages/contracts-bedrock/contracts/test/L1CrossDomainMessenger.t.sol @@ -7,7 +7,6 @@ import { L2OutputOracle_Initializer } from "./L2OutputOracle.t.sol"; /* Libraries */ import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; -import { DefaultValues } from "../libraries/DefaultValues.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol"; import { CrossDomainUtils } from "../libraries/CrossDomainUtils.sol"; import { WithdrawalVerifier } from "../libraries/WithdrawalVerifier.sol"; diff --git a/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol b/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol index b47b62c2f3186..87bf24735edad 100644 --- a/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol +++ b/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol @@ -10,7 +10,6 @@ import { L2OutputOracle } from "../L1/L2OutputOracle.sol"; import { L2CrossDomainMessenger } from "../L2/L2CrossDomainMessenger.sol"; import { L1CrossDomainMessenger } from "../L1/L1CrossDomainMessenger.sol"; import { CrossDomainHashing } from "../libraries/CrossDomainHashing.sol"; -import { DefaultValues } from "../libraries/DefaultValues.sol"; contract L2CrossDomainMessenger_Test is Messenger_Initializer { // Receiver address for testing diff --git a/packages/contracts-bedrock/contracts/universal/CrossDomainMessenger.sol b/packages/contracts-bedrock/contracts/universal/CrossDomainMessenger.sol index 578a2f0139ac6..f0b55f6383b47 100644 --- a/packages/contracts-bedrock/contracts/universal/CrossDomainMessenger.sol +++ b/packages/contracts-bedrock/contracts/universal/CrossDomainMessenger.sol @@ -11,7 +11,6 @@ import { ReentrancyGuardUpgradeable } from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol"; import { ExcessivelySafeCall } from "excessively-safe-call/src/ExcessivelySafeCall.sol"; -import { DefaultValues } from "../libraries/DefaultValues.sol"; import { CrossDomainHashing } from "../libraries/CrossDomainHashing.sol"; /** @@ -83,6 +82,13 @@ abstract contract CrossDomainMessenger is */ uint256 internal constant RELAY_GAS_BUFFER = RELAY_GAS_REQUIRED - 5000; + /** + * @notice Initial value for the xDomainMsgSender variable. We set this to a non-zero value + * because performing an SSTORE on a non-zero value is significantly cheaper than on a + * zero value. + */ + address internal constant DEFAULT_XDOMAIN_SENDER = 0x000000000000000000000000000000000000dEaD; + /** * @notice Mapping of message hashes to boolean receipt values. Note that a message will only * be present in this mapping if it failed to be relayed on this chain at least once. @@ -152,10 +158,7 @@ abstract contract CrossDomainMessenger is * @return Address of the sender of the currently executing message on the other chain. */ function xDomainMessageSender() external view returns (address) { - require( - xDomainMsgSender != DefaultValues.DEFAULT_XDOMAIN_SENDER, - "xDomainMessageSender is not set" - ); + require(xDomainMsgSender != DEFAULT_XDOMAIN_SENDER, "xDomainMessageSender is not set"); return xDomainMsgSender; } @@ -287,7 +290,7 @@ abstract contract CrossDomainMessenger is 0, _message ); - xDomainMsgSender = DefaultValues.DEFAULT_XDOMAIN_SENDER; + xDomainMsgSender = DEFAULT_XDOMAIN_SENDER; if (success == true) { successfulMessages[versionedHash] = true; @@ -312,7 +315,7 @@ abstract contract CrossDomainMessenger is function _initialize(address _otherMessenger, address[] memory _blockedSystemAddresses) internal { - xDomainMsgSender = DefaultValues.DEFAULT_XDOMAIN_SENDER; + xDomainMsgSender = DEFAULT_XDOMAIN_SENDER; otherMessenger = _otherMessenger; for (uint256 i = 0; i < _blockedSystemAddresses.length; i++) {