Skip to content

Commit 379728b

Browse files
committed
Create and initialize SystemSignerRegistry keeping track of signers
1 parent 2d06562 commit 379728b

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

scripts/foundry/InitializeL1ScrollOwner.s.sol

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ import {ScrollChain} from "../../src/L1/rollup/ScrollChain.sol";
2121
import {ScrollOwner} from "../../src/misc/ScrollOwner.sol";
2222
import {Whitelist} from "../../src/L2/predeploys/Whitelist.sol";
2323

24+
import {SystemSignerRegistry} from "../../src/L1/system-contract/SystemSignerRegistry.sol";
25+
26+
2427
// solhint-disable max-states-count
2528
// solhint-disable state-visibility
2629
// solhint-disable var-name-mixedcase
@@ -81,7 +84,8 @@ contract InitializeL1ScrollOwner is Script {
8184
configL1GatewayRouter();
8285
configL1CustomERC20Gateway();
8386
configL1ERC721Gateway();
84-
configL1ERC1155Gateway();
87+
configL1ERC1155Gateway();
88+
configSystemContract();
8589

8690
configL1USDCGateway();
8791
configEnforcedTxGateway();
@@ -272,4 +276,21 @@ contract InitializeL1ScrollOwner is Script {
272276
owner.updateAccess(L1_ENFORCED_TX_GATEWAY_PROXY_ADDR, _selectors, SCROLL_MULTISIG_NO_DELAY_ROLE, true);
273277
owner.updateAccess(L1_ENFORCED_TX_GATEWAY_PROXY_ADDR, _selectors, EMERGENCY_MULTISIG_NO_DELAY_ROLE, true);
274278
}
279+
280+
function configSystemContract() internal {
281+
// If we already have deployed it, just do:
282+
SystemSignerRegistry sys = SystemSignerRegistry(SYSTEM_CONTRACT_ADDR);
283+
284+
// sys has a normal constructor that set the "owner" to `ScrollOwner`.
285+
// Now we want to let the Security Council call `addSigner(...)` with no delay.
286+
bytes4[] memory selectors = new bytes4[](1);
287+
selectors[0] = sys.addSigner.selector;
288+
289+
owner.updateAccess(
290+
SYSTEM_CONTRACT_ADDR, // the system contract
291+
selectors, // array of function selectors (onlyOwner)
292+
SECURITY_COUNCIL_NO_DELAY_ROLE,
293+
true
294+
);
295+
}
275296
}

src/L1/system-contract/SystemSignerRegistry.sol

Whitespace-only changes.

0 commit comments

Comments
 (0)