Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions setup-templates/template-funding/script/Fund.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
pragma solidity 0.8.15;

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

import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {Enum} from "@base-contracts/script/universal/IGnosisSafe.sol";

contract FundScript is MultisigScript {
address internal immutable OWNER_SAFE;
Expand Down Expand Up @@ -45,12 +45,11 @@ contract FundScript is MultisigScript {
require(OWNER_SAFE.balance >= TOTAL_FUNDS, "OWNER_SAFE not enough balance");
}

function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) {
IMulticall3.Call3Value[] memory calls = new IMulticall3.Call3Value[](RECIPIENTS.length);
function _buildCalls() internal view override returns (Call[] memory) {
Call[] memory calls = new Call[](RECIPIENTS.length);

for (uint256 i; i < RECIPIENTS.length; i++) {
calls[i] =
IMulticall3.Call3Value({target: RECIPIENTS[i], allowFailure: false, callData: "", value: FUNDS[i]});
calls[i] = Call({operation: Enum.Operation.Call, target: RECIPIENTS[i], data: "", value: FUNDS[i]});
}

return calls;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
pragma solidity 0.8.15;

import {Vm} from "forge-std/Vm.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";

import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {Enum} from "@base-contracts/script/universal/IGnosisSafe.sol";

interface ISystemConfig {
function eip1559Elasticity() external view returns (uint32);
Expand Down Expand Up @@ -90,38 +90,36 @@ contract IncreaseEip1559ElasticityAndIncreaseGasLimitScript is MultisigScript {
// Mask to preserve bits 64-159 (operatorFeeScalar and operatorFeeConstant)
uint256 operatorFeeMask = uint256(0xFFFFFFFFFFFFFFFFFFFFFFFF) << 64;
uint256 preservedOperatorFees = existingEip1559Word & operatorFeeMask;
uint256 composedEip1559Word = (uint256(DA_FOOTPRINT_GAS_SCALAR) << 160)
| preservedOperatorFees
| (uint256(ELASTICITY) << 32)
| uint256(DENOMINATOR);
uint256 composedEip1559Word = (uint256(DA_FOOTPRINT_GAS_SCALAR) << 160) | preservedOperatorFees
| (uint256(ELASTICITY) << 32) | uint256(DENOMINATOR);
storageOverrides[1] = Simulation.StorageOverride({key: eip1559SlotKey, value: bytes32(composedEip1559Word)});

stateOverrides[0] = Simulation.StateOverride({contractAddress: SYSTEM_CONFIG, overrides: storageOverrides});
return stateOverrides;
}
}

function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) {
IMulticall3.Call3Value[] memory calls = new IMulticall3.Call3Value[](3);
function _buildCalls() internal view override returns (Call[] memory) {
Call[] memory calls = new Call[](3);

calls[0] = IMulticall3.Call3Value({
calls[0] = Call({
operation: Enum.Operation.Call,
target: SYSTEM_CONFIG,
allowFailure: false,
callData: abi.encodeCall(ISystemConfig.setEIP1559Params, (DENOMINATOR, NEW_ELASTICITY)),
data: abi.encodeCall(ISystemConfig.setEIP1559Params, (DENOMINATOR, NEW_ELASTICITY)),
value: 0
});

calls[1] = IMulticall3.Call3Value({
calls[1] = Call({
operation: Enum.Operation.Call,
target: SYSTEM_CONFIG,
allowFailure: false,
callData: abi.encodeCall(ISystemConfig.setGasLimit, (NEW_GAS_LIMIT)),
data: abi.encodeCall(ISystemConfig.setGasLimit, (NEW_GAS_LIMIT)),
value: 0
});

calls[2] = IMulticall3.Call3Value({
calls[2] = Call({
operation: Enum.Operation.Call,
target: SYSTEM_CONFIG,
allowFailure: false,
callData: abi.encodeCall(ISystemConfig.setDAFootprintGasScalar, (NEW_DA_FOOTPRINT_GAS_SCALAR)),
data: abi.encodeCall(ISystemConfig.setDAFootprintGasScalar, (NEW_DA_FOOTPRINT_GAS_SCALAR)),
value: 0
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
pragma solidity 0.8.15;

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

import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {Enum} from "@base-contracts/script/universal/IGnosisSafe.sol";

interface ITest {
function counter() external view returns (uint256);
Expand All @@ -28,15 +28,11 @@ contract CounterMultisigScript is MultisigScript {
require(ITest(TARGET).counter() == COUNT + 1, "Counter did not increment");
}

function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) {
IMulticall3.Call3Value[] memory calls = new IMulticall3.Call3Value[](1);
function _buildCalls() internal view override returns (Call[] memory) {
Call[] memory calls = new Call[](1);

calls[0] = IMulticall3.Call3Value({
target: TARGET,
allowFailure: false,
callData: abi.encodeCall(ITest.increment, ()),
value: 0
});
calls[0] =
Call({operation: Enum.Operation.Call, target: TARGET, data: abi.encodeCall(ITest.increment, ()), value: 0});

return calls;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
pragma solidity 0.8.15;

import {Vm} from "forge-std/Vm.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";

import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {Enum} from "@base-contracts/script/universal/IGnosisSafe.sol";

interface IOptimismPortal2 {
function depositTransaction(address _to, uint256 _value, uint64 _gasLimit, bool _isCreation, bytes memory _data)
Expand All @@ -22,19 +23,19 @@ contract PauseBridge is MultisigScript {
address public immutable L2_BRIDGE = vm.envAddress("L2_BRIDGE");
bool public immutable IS_PAUSED = vm.envBool("IS_PAUSED");

function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) {
IMulticall3.Call3Value[] memory calls = new IMulticall3.Call3Value[](1);
function _buildCalls() internal view override returns (Call[] memory) {
Call[] memory calls = new Call[](1);

address to = L2_BRIDGE;
uint256 value = 0;
uint64 gasLimit = 100_000;
bool isCreation = false;
bytes memory data = abi.encodeCall(IBridge.setPaused, (IS_PAUSED));

calls[0] = IMulticall3.Call3Value({
calls[0] = Call({
operation: Enum.Operation.Call,
target: L1_PORTAL,
allowFailure: false,
callData: abi.encodeCall(IOptimismPortal2.depositTransaction, (to, value, gasLimit, isCreation, data)),
data: abi.encodeCall(IOptimismPortal2.depositTransaction, (to, value, gasLimit, isCreation, data)),
value: value
});

Expand Down
24 changes: 12 additions & 12 deletions setup-templates/template-safe-management/script/UpdateSigners.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ pragma solidity 0.8.15;

import {Vm} from "forge-std/Vm.sol";
import {stdJson} from "forge-std/StdJson.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";

import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {Enum} from "@base-contracts/script/universal/IGnosisSafe.sol";

import {GnosisSafe} from "safe-smart-account/GnosisSafe.sol";
import {OwnerManager} from "safe-smart-account/base/OwnerManager.sol";

Expand Down Expand Up @@ -103,24 +104,23 @@ contract UpdateSigners is MultisigScript {
}
}

function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) {
IMulticall3.Call3Value[] memory calls =
new IMulticall3.Call3Value[](OWNERS_TO_ADD.length + OWNERS_TO_REMOVE.length);
function _buildCalls() internal view override returns (Call[] memory) {
Call[] memory calls = new Call[](OWNERS_TO_ADD.length + OWNERS_TO_REMOVE.length);

for (uint256 i; i < OWNERS_TO_ADD.length; i++) {
calls[i] = IMulticall3.Call3Value({
calls[i] = Call({
operation: Enum.Operation.Call,
target: OWNER_SAFE,
allowFailure: false,
callData: abi.encodeCall(OwnerManager.addOwnerWithThreshold, (OWNERS_TO_ADD[i], THRESHOLD)),
data: abi.encodeCall(OwnerManager.addOwnerWithThreshold, (OWNERS_TO_ADD[i], THRESHOLD)),
value: 0
});
}

for (uint256 i; i < OWNERS_TO_REMOVE.length; i++) {
calls[OWNERS_TO_ADD.length + i] = IMulticall3.Call3Value({
calls[OWNERS_TO_ADD.length + i] = Call({
operation: Enum.Operation.Call,
target: OWNER_SAFE,
allowFailure: false,
callData: abi.encodeCall(
data: abi.encodeCall(
OwnerManager.removeOwner, (ownerToPrevOwner[OWNERS_TO_REMOVE[i]], OWNERS_TO_REMOVE[i], THRESHOLD)
),
value: 0
Expand All @@ -133,4 +133,4 @@ contract UpdateSigners is MultisigScript {
function _ownerSafe() internal view override returns (address) {
return OWNER_SAFE;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
pragma solidity 0.8.28;

import {Vm} from "forge-std/Vm.sol";
import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";

import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {Enum} from "@base-contracts/script/universal/IGnosisSafe.sol";

interface IOptimismPortal2 {
function depositTransaction(address _to, uint256 _value, uint64 _gasLimit, bool _isCreation, bytes memory _data)
Expand All @@ -22,19 +23,19 @@ contract SetThreshold is MultisigScript {
address public immutable L2_BRIDGE_VALIDATOR = vm.envAddress("L2_BRIDGE_VALIDATOR");
uint256 public immutable NEW_THRESHOLD = vm.envUint("NEW_THRESHOLD");

function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) {
IMulticall3.Call3Value[] memory calls = new IMulticall3.Call3Value[](1);
function _buildCalls() internal view override returns (Call[] memory) {
Call[] memory calls = new Call[](1);

address to = L2_BRIDGE_VALIDATOR;
uint256 value = 0;
uint64 gasLimit = 100_000;
bool isCreation = false;
bytes memory data = abi.encodeCall(IBridgeValidator.setPartnerThreshold, (NEW_THRESHOLD));

calls[0] = IMulticall3.Call3Value({
calls[0] = Call({
operation: Enum.Operation.Call,
target: L1_PORTAL,
allowFailure: false,
callData: abi.encodeCall(IOptimismPortal2.depositTransaction, (to, value, gasLimit, isCreation, data)),
data: abi.encodeCall(IOptimismPortal2.depositTransaction, (to, value, gasLimit, isCreation, data)),
value: value
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@
pragma solidity 0.8.15;

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

import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";
import {Enum} from "@base-contracts/script/universal/IGnosisSafe.sol";

import {IAnchorStateRegistry} from "@eth-optimism-bedrock/src/dispute/FaultDisputeGame.sol";
import {SystemConfig} from "@eth-optimism-bedrock/src/L1/SystemConfig.sol";
import {DisputeGameFactory} from "@eth-optimism-bedrock/src/dispute/DisputeGameFactory.sol";
import {FaultDisputeGame} from "@eth-optimism-bedrock/src/dispute/PermissionedDisputeGame.sol";
import {GameTypes, GameType} from "@eth-optimism-bedrock/src/dispute/lib/Types.sol";
import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol";
import {Simulation} from "@base-contracts/script/universal/Simulation.sol";

/// @notice This script updates the respectedGameType and retires existing games in the AnchorStateRegistry.
contract SwitchToPermissionedGame is MultisigScript {
Expand Down Expand Up @@ -39,20 +41,20 @@ contract SwitchToPermissionedGame is MultisigScript {
);
}

function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) {
IMulticall3.Call3Value[] memory calls = new IMulticall3.Call3Value[](2);
function _buildCalls() internal view override returns (Call[] memory) {
Call[] memory calls = new Call[](2);

calls[0] = IMulticall3.Call3Value({
calls[0] = Call({
operation: Enum.Operation.Call,
target: address(anchorStateRegistry),
allowFailure: false,
callData: abi.encodeCall(IAnchorStateRegistry.setRespectedGameType, (GameTypes.PERMISSIONED_CANNON)),
data: abi.encodeCall(IAnchorStateRegistry.setRespectedGameType, (GameTypes.PERMISSIONED_CANNON)),
value: 0
});

calls[1] = IMulticall3.Call3Value({
calls[1] = Call({
operation: Enum.Operation.Call,
target: address(anchorStateRegistry),
allowFailure: false,
callData: abi.encodeCall(IAnchorStateRegistry.updateRetirementTimestamp, ()),
data: abi.encodeCall(IAnchorStateRegistry.updateRetirementTimestamp, ()),
value: 0
});

Expand Down
Loading