Skip to content

Commit

Permalink
chore: fix imports and silence linter warnings for script files (#118)
Browse files Browse the repository at this point in the history
* fix imports and silence linter warnings for script files

* reduce solhint-disable statements

* remove unnecessary lines from test files
  • Loading branch information
jackchuma authored Jan 22, 2025
1 parent 1f3ffe8 commit 07afeac
Show file tree
Hide file tree
Showing 18 changed files with 73 additions and 28 deletions.
4 changes: 2 additions & 2 deletions script/deploy/Utils.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import "forge-std/Script.sol";
import "forge-std/StdJson.sol";
import {Script} from "forge-std/Script.sol";
import {stdJson} from "forge-std/StdJson.sol";

contract Utils is Script {
using stdJson for string;
Expand Down
2 changes: 1 addition & 1 deletion script/deploy/l1/RollbackGasLimit.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import "./SetGasLimitBuilder.sol";
import {SetGasLimitBuilder} from "./SetGasLimitBuilder.sol";

contract RollbackGasLimit is SetGasLimitBuilder {
function _fromGasLimit() internal view override returns (uint64) {
Expand Down
1 change: 1 addition & 0 deletions script/deploy/l1/SetGasLimitBuilder.sol
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ abstract contract SetGasLimitBuilder is MultisigBuilder {
key: 0x0000000000000000000000000000000000000000000000000000000000000068, // slot of gas limit
value: bytes32(uint256(_fromGasLimit()))
});
// solhint-disable-next-line max-line-length
_stateOverrides[0] = Simulation.StateOverride({contractAddress: L1_SYSTEM_CONFIG, overrides: _storageOverrides});
return _stateOverrides;
}
Expand Down
2 changes: 1 addition & 1 deletion script/deploy/l1/UpgradeGasLimit.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import "./SetGasLimitBuilder.sol";
import {SetGasLimitBuilder} from "./SetGasLimitBuilder.sol";

contract UpgradeGasLimit is SetGasLimitBuilder {
function _fromGasLimit() internal view override returns (uint64) {
Expand Down
5 changes: 3 additions & 2 deletions script/deploy/l1/tests/DeployTestTokenContracts.s.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import "forge-std/console.sol";
import "forge-std/Script.sol";
// solhint-disable no-console
import {console} from "forge-std/console.sol";
import {Script} from "forge-std/Script.sol";

import {ERC20PresetMinterPauser} from "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol";
import {ERC721PresetMinterPauserAutoId} from
Expand Down
5 changes: 3 additions & 2 deletions script/deploy/l1/tests/TestDeposits.s.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import "forge-std/console.sol";
import "forge-std/Script.sol";
// solhint-disable no-console
import {console} from "forge-std/console.sol";
import {Script} from "forge-std/Script.sol";

import {ERC20PresetMinterPauser} from "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol";
import {ERC721PresetMinterPauserAutoId} from
Expand Down
5 changes: 3 additions & 2 deletions script/deploy/l2/tests/DeployTestTokenContracts.s.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import "forge-std/console.sol";
import "forge-std/Script.sol";
// solhint-disable no-console
import {console} from "forge-std/console.sol";
import {Script} from "forge-std/Script.sol";

import {Predeploys} from "@eth-optimism-bedrock/src/libraries/Predeploys.sol";
import {OptimismMintableERC20Factory} from "@eth-optimism-bedrock/src/universal/OptimismMintableERC20Factory.sol";
Expand Down
5 changes: 3 additions & 2 deletions script/deploy/l2/tests/TestWithdraw.s.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import "forge-std/console.sol";
import "forge-std/Script.sol";
// solhint-disable no-console
import {console} from "forge-std/console.sol";
import {Script} from "forge-std/Script.sol";

import {Predeploys} from "@eth-optimism-bedrock/src/libraries/Predeploys.sol";
import {L2StandardBridge} from "@eth-optimism-bedrock/src/L2/L2StandardBridge.sol";
Expand Down
7 changes: 6 additions & 1 deletion script/universal/DoubleNestedMultisigBuilder.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

import "./NestedMultisigBase.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Vm} from "forge-std/Vm.sol";

import {IGnosisSafe} from "./IGnosisSafe.sol";
import {NestedMultisigBase} from "./NestedMultisigBase.sol";
import {Simulation} from "./Simulation.sol";

/**
* @title DoubleNestedMultisigBuilder
Expand Down
9 changes: 6 additions & 3 deletions script/universal/MultisigBase.sol
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

import {Vm} from "forge-std/Vm.sol";
import {console} from "forge-std/console.sol";
import {CommonBase} from "forge-std/Base.sol";
// solhint-disable no-console
import {console} from "forge-std/console.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Vm} from "forge-std/Vm.sol";

import {IGnosisSafe, Enum} from "./IGnosisSafe.sol";
import {Simulation} from "./Simulation.sol";
import {Signatures} from "./Signatures.sol";
import {Simulation} from "./Simulation.sol";

abstract contract MultisigBase is CommonBase {
bytes32 internal constant SAFE_NONCE_SLOT = bytes32(uint256(5));
Expand Down Expand Up @@ -73,6 +75,7 @@ abstract contract MultisigBase is CommonBase {

console.log("########## IMPORTANT ##########");
console.log(
// solhint-disable-next-line max-line-length
"Please make sure that the 'Data to sign' displayed above matches what you see in the simulation and on your hardware wallet."
);
console.log("This is a critical step that must not be skipped.");
Expand Down
8 changes: 6 additions & 2 deletions script/universal/MultisigBuilder.sol
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

import "./MultisigBase.sol";

// solhint-disable no-console
import {console} from "forge-std/console.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Vm} from "forge-std/Vm.sol";

import {IGnosisSafe} from "./IGnosisSafe.sol";
import {MultisigBase} from "./MultisigBase.sol";
import {Signatures} from "./Signatures.sol";
import {Simulation} from "./Simulation.sol";

/**
* @title MultisigBuilder
* @notice Modeled from Optimism's SafeBuilder, but using signatures instead of approvals.
Expand Down
11 changes: 10 additions & 1 deletion script/universal/NestedMultisigBase.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

import "./MultisigBase.sol";
// solhint-disable no-console
import {console} from "forge-std/console.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Vm} from "forge-std/Vm.sol";

import {IGnosisSafe} from "./IGnosisSafe.sol";
import {MultisigBase} from "./MultisigBase.sol";
import {Signatures} from "./Signatures.sol";
import {Simulation} from "./Simulation.sol";

abstract contract NestedMultisigBase is MultisigBase {
/**
Expand Down Expand Up @@ -69,6 +77,7 @@ abstract contract NestedMultisigBase is MultisigBase {

bytes memory txData = abi.encodeCall(IMulticall3.aggregate3, (calls));
console.log("---\nSimulation link:");
// solhint-disable max-line-length
Simulation.logSimulationLink({_to: MULTICALL3_ADDRESS, _data: txData, _from: msg.sender, _overrides: overrides});

// Forge simulation of the data logged in the link. If the simulation fails
Expand Down
10 changes: 8 additions & 2 deletions script/universal/NestedMultisigBuilder.sol
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

import "./MultisigBase.sol";

// solhint-disable no-console
import {console} from "forge-std/console.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Vm} from "forge-std/Vm.sol";

import {IGnosisSafe} from "./IGnosisSafe.sol";
import {MultisigBase} from "./MultisigBase.sol";
import {Signatures} from "./Signatures.sol";
import {Simulation} from "./Simulation.sol";

/**
* @title NestedMultisigBuilder
Expand Down Expand Up @@ -167,6 +172,7 @@ abstract contract NestedMultisigBuilder is MultisigBase {

bytes memory txData = abi.encodeCall(IMulticall3.aggregate3, (calls));
console.log("---\nSimulation link:");
// solhint-disable max-line-length
Simulation.logSimulationLink({_to: MULTICALL3_ADDRESS, _data: txData, _from: msg.sender, _overrides: overrides});

// Forge simulation of the data logged in the link. If the simulation fails
Expand Down
6 changes: 5 additions & 1 deletion script/universal/Signatures.sol
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

// solhint-disable no-console
import {console} from "forge-std/console.sol";

import {Bytes} from "@eth-optimism-bedrock/src/libraries/Bytes.sol";
import {LibSort} from "@solady/utils/LibSort.sol";

import {IGnosisSafe} from "./IGnosisSafe.sol";
import {console} from "forge-std/console.sol";

library Signatures {
function prepareSignatures(address _safe, bytes32 hash, bytes memory _signatures)
Expand Down Expand Up @@ -64,6 +67,7 @@ library Signatures {
return subset;
}

// solhint-disable max-line-length
/**
* @notice Sorts the signatures in ascending order of the signer's address, and removes any duplicates.
* @dev see https://github.com/safe-global/safe-smart-account/blob/1ed486bb148fe40c26be58d1b517cec163980027/contracts/Safe.sol#L265-L334
Expand Down
3 changes: 3 additions & 0 deletions script/universal/Simulation.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

// solhint-disable no-console
import {console} from "forge-std/console.sol";
import {Vm} from "forge-std/Vm.sol";

import {IGnosisSafe} from "./IGnosisSafe.sol";

library Simulation {
Expand All @@ -27,6 +29,7 @@ library Simulation {
}

function simulateFromSimPayload(Payload memory simPayload) internal returns (Vm.AccountAccess[] memory) {
// solhint-disable-next-line max-line-length
require(simPayload.from != address(0), "Simulator::simulateFromSimPayload: from address cannot be zero address");
require(simPayload.to != address(0), "Simulator::simulateFromSimPayload: to address cannot be zero address");

Expand Down
6 changes: 4 additions & 2 deletions test/universal/DoubleNestedMultisigBuilder.t.sol
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Test} from "forge-std/Test.sol";
import {Vm} from "forge-std/Vm.sol";
import {console} from "forge-std/console.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";

import {Preinstalls} from "@eth-optimism-bedrock/src/libraries/Preinstalls.sol";

import {DoubleNestedMultisigBuilder} from "../../script/universal/DoubleNestedMultisigBuilder.sol";
import {Simulation} from "../../script/universal/Simulation.sol";
import {IGnosisSafe} from "../../script/universal/IGnosisSafe.sol";
Expand All @@ -22,6 +23,7 @@ contract DoubleNestedMultisigBuilderTest is Test, DoubleNestedMultisigBuilder {
Counter internal counter = new Counter(address(safe4));

bytes internal dataToSign1 =
// solhint-disable max-line-length
hex"1901d4bb33110137810c444c1d9617abe97df097d587ecde64e6fcb38d7f49e1280c32a807b9689901dd0dbb7352e9e6c5265e3f6a68667de4be988f03f6a88511f7";
bytes internal dataToSign2 =
hex"190132640243d7aade8c72f3d90d2dbf359e9897feba5fce1453bc8d9e7ba10d171532a807b9689901dd0dbb7352e9e6c5265e3f6a68667de4be988f03f6a88511f7";
Expand Down
6 changes: 4 additions & 2 deletions test/universal/MultisigBuilder.t.sol
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Test} from "forge-std/Test.sol";
import {Vm} from "forge-std/Vm.sol";
import {console} from "forge-std/console.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";

import {Preinstalls} from "@eth-optimism-bedrock/src/libraries/Preinstalls.sol";

import {MultisigBuilder} from "../../script/universal/MultisigBuilder.sol";
import {Simulation} from "../../script/universal/Simulation.sol";
import {IGnosisSafe} from "../../script/universal/IGnosisSafe.sol";
Expand All @@ -19,6 +20,7 @@ contract MultisigBuilderTest is Test, MultisigBuilder {
Counter internal counter = new Counter(address(safe));

bytes internal dataToSign =
// solhint-disable-next-line max-line-length
hex"1901d4bb33110137810c444c1d9617abe97df097d587ecde64e6fcb38d7f49e1280c41dcff2c17a271265df60d1612a7387110475b6fc5178add5518196db5dba6bd";

function setUp() public {
Expand Down
6 changes: 4 additions & 2 deletions test/universal/NestedMultisigBuilder.t.sol
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Test} from "forge-std/Test.sol";
import {Vm} from "forge-std/Vm.sol";
import {console} from "forge-std/console.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";

import {Preinstalls} from "@eth-optimism-bedrock/src/libraries/Preinstalls.sol";

import {NestedMultisigBuilder} from "../../script/universal/NestedMultisigBuilder.sol";
import {Simulation} from "../../script/universal/Simulation.sol";
import {IGnosisSafe} from "../../script/universal/IGnosisSafe.sol";
Expand All @@ -21,6 +22,7 @@ contract NestedMultisigBuilderTest is Test, NestedMultisigBuilder {
Counter internal counter = new Counter(address(safe3));

bytes internal dataToSign1 =
// solhint-disable max-line-length
hex"1901d4bb33110137810c444c1d9617abe97df097d587ecde64e6fcb38d7f49e1280c3afd48ea8b0056e1028951ba44695d612396f4a1c3851f4b8a262c53ee1f2503";
bytes internal dataToSign2 =
hex"190132640243d7aade8c72f3d90d2dbf359e9897feba5fce1453bc8d9e7ba10d17153afd48ea8b0056e1028951ba44695d612396f4a1c3851f4b8a262c53ee1f2503";
Expand Down

0 comments on commit 07afeac

Please sign in to comment.