Skip to content
Merged
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
7 changes: 2 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -126,15 +126,12 @@ checkout-signer-tool:
git fetch --depth=1 origin $(SIGNER_TOOL_COMMIT); \
git reset --hard FETCH_HEAD

.PHONY: sign
sign:
.PHONY: sign-task
sign-task: checkout-signer-tool
cd $(SIGNER_TOOL_PATH); \
npm ci; \
npm run dev

.PHONY: sign-task
sign-task: checkout-signer-tool sign

##
# Solidity Testing
##
Expand Down
7 changes: 7 additions & 0 deletions sepolia/2025-10-23-pause-bridge-base/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
OP_COMMIT=594bc933a38425f745b46399a3619bcdeb74965d
BASE_CONTRACTS_COMMIT=98ec680a67c173d38aa52588c5dc0fbaa1c0561c

# Sepolia
OWNER_SAFE=0x5dfEB066334B67355A15dc9b67317fD2a2e1f77f
L1_PORTAL=0x49f53e41452C74589E85cA1677426Ba426459e85
L2_BRIDGE=0x64567a9147fa89B1edc987e36Eb6f4b6db71656b
24 changes: 24 additions & 0 deletions sepolia/2025-10-23-pause-bridge-base/FACILITATOR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Facilitator Guide

Guide for facilitators after collecting signatures from signers.

### 1. Update repo:

```bash
cd contract-deployments
git pull
cd sepolia/2025-10-23-pause-bridge-base
make deps
```

### 2. Execute pause

```bash
SIGNATURES=AAABBBCCC make execute-pause
```

### 3. (When ready) Execute un-pause

```bash
SIGNATURES=AAABBBCCC make execute-unpause
```
49 changes: 49 additions & 0 deletions sepolia/2025-10-23-pause-bridge-base/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
include ../../Makefile
include ../.env
include .env

ifndef LEDGER_ACCOUNT
override LEDGER_ACCOUNT = 1
endif

SAFE_NONCE=6

SCRIPT_NAME=PauseBridge

.PHONY: gen-validation
gen-validation: checkout-signer-tool run-script

.PHONY: run-script
run-script:
cd $(SIGNER_TOOL_PATH); \
npm ci; \
bun run scripts/genValidationFile.ts --rpc-url $(L1_RPC_URL) \
--workdir .. --forge-cmd 'forge script --rpc-url $(L1_RPC_URL) \
$(SCRIPT_NAME) --sig "sign(address[])" [] --sender 0xb2d9a52e76841279EF0372c534C539a4f68f8C0B' --out ../validations/base-signer.json;

.PHONY: sign-pause
sign-pause:
IS_PAUSED=true SAFE_NONCE=$(SAFE_NONCE) $(GOPATH)/bin/eip712sign --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" -- \
forge script --rpc-url $(L1_RPC_URL) $(SCRIPT_NAME) \
--sig "sign(address[])" "[]" --sender 0xb2d9a52e76841279EF0372c534C539a4f68f8C0B

.PHONY: sign-unpause
sign-unpause:
IS_PAUSED=false SAFE_NONCE=$(SAFE_NONCE) $(GOPATH)/bin/eip712sign --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" -- \
forge script --rpc-url $(L1_RPC_URL) $(SCRIPT_NAME) \
--sig "sign(address[])" "[]" --sender 0xb2d9a52e76841279EF0372c534C539a4f68f8C0B

# Execute
.PHONY: execute-pause
execute-pause:
IS_PAUSED=true forge script --rpc-url $(L1_RPC_URL) $(SCRIPT_NAME) \
--sig "run(bytes)" $(SIGNATURES) --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --broadcast -vvvv

.PHONY: execute-unpause
execute-unpause:
IS_PAUSED=false forge script --rpc-url $(L1_RPC_URL) $(SCRIPT_NAME) \
--sig "run(bytes)" $(SIGNATURES) --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --broadcast -vvvv

.PHONY: check-status
check-status:
cast call $(L2_BRIDGE) "paused()" --rpc-url $(L2_RPC_URL)
48 changes: 48 additions & 0 deletions sepolia/2025-10-23-pause-bridge-base/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Pause Base Bridge

Status: EXECUTED

## Description

Pauses the Base side of [Base Bridge](https://github.com/base/bridge).

## Install dependencies

### 1. Update foundry

```bash
foundryup
```

### 2. Install Node.js if needed

First, check if you have node installed

```bash
node --version
```

If you see a version output from the above command, you can move on. Otherwise, install node

```bash
brew install node
```

## Sign Task

### 1. Update repo:

```bash
cd contract-deployments
git pull
```

### 2. Run the signing tool (NOTE: do not enter the task directory. Run this command from the project's root).

```bash
make sign-task
```

### 3. Open the UI at [http://localhost:3000](http://localhost:3000)

### 4. Send signature to facilitator
21 changes: 21 additions & 0 deletions sepolia/2025-10-23-pause-bridge-base/foundry.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[profile.default]
src = 'src'
out = 'out'
libs = ['lib']
broadcast = 'records'
fs_permissions = [{ access = "read-write", path = "./" }]
optimizer = true
optimizer_runs = 999999
solc_version = "0.8.28"
via-ir = false
remappings = [
'@eth-optimism-bedrock/=lib/optimism/packages/contracts-bedrock/',
'@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts',
'@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts',
'@rari-capital/solmate/=lib/solmate/',
'@base-contracts/=lib/base-contracts',
'@solady/=lib/solady/src/',
'@lib-keccak=lib/lib-keccak/contracts/lib/'
]

# See more config options https://github.com/foundry-rs/foundry/tree/master/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
{
"transactions": [
{
"hash": "0xe6fae08da55fdc7b6528b7811e442346f900e0ae6931942943a5bbbfe4e3b4ae",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0x5dfeb066334b67355a15dc9b67317fd2a2e1f77f",
"function": "execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)",
"arguments": [
"0xcA11bde05977b3631167028862bE2a173976CA11",
"0",
"0x174dea7100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000049f53e41452c74589e85ca1677426ba426459e850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000104e9e05c4200000000000000000000000064567a9147fa89b1edc987e36eb6f4b6db71656b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002416c38b3c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"1",
"0",
"0",
"0",
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000",
"0x56dc393143b8405549aa0c7a299ff0cfc7dd82c596a694d3c2b54fe57710036b23357f11666f06611dec9456682632d7fdb309e93725b5204b9ce48a1e063e621cd62972fb9082eb07ebaaf2b0565f6a333609ba12f24ff52543b20d068f05d46878dcda435eff9ae5a2e04a2b5f9e5d5419a5e9a5f70b021254d604a2146923d31b7a2137ab7d9402e758c0fbe2757c573adf01cf44ced16d7b17d7b2ffb7136a4039fabae68feb11a7863b0edd20ad8bd2cf8ff91ef1558d904db6af00f959b6741c"
],
"transaction": {
"from": "0x9986ccaf9e3de0ffef82a0f7fa3a06d5afe07252",
"to": "0x5dfeb066334b67355a15dc9b67317fd2a2e1f77f",
"gas": "0x3cf1a",
"value": "0x0",
"input": "0x6a761202000000000000000000000000ca11bde05977b3631167028862be2a173976ca110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000224174dea7100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000049f53e41452c74589e85ca1677426ba426459e850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000104e9e05c4200000000000000000000000064567a9147fa89b1edc987e36eb6f4b6db71656b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002416c38b3c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c356dc393143b8405549aa0c7a299ff0cfc7dd82c596a694d3c2b54fe57710036b23357f11666f06611dec9456682632d7fdb309e93725b5204b9ce48a1e063e621cd62972fb9082eb07ebaaf2b0565f6a333609ba12f24ff52543b20d068f05d46878dcda435eff9ae5a2e04a2b5f9e5d5419a5e9a5f70b021254d604a2146923d31b7a2137ab7d9402e758c0fbe2757c573adf01cf44ced16d7b17d7b2ffb7136a4039fabae68feb11a7863b0edd20ad8bd2cf8ff91ef1558d904db6af00f959b6741c0000000000000000000000000000000000000000000000000000000000",
"nonce": "0x3f",
"chainId": "0xaa36a7"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0x3c3b98",
"logs": [
{
"address": "0x49f53e41452c74589e85ca1677426ba426459e85",
"topics": [
"0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32",
"0x0000000000000000000000006f0fb066334b67355a15dc9b67317fd2a2e20890",
"0x00000000000000000000000064567a9147fa89b1edc987e36eb6f4b6db71656b",
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a00016c38b3c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000",
"blockHash": "0xc7ea062f6ab34be42113df58502c6ce2d25ad9b4183d119039dc709b79ccfeeb",
"blockNumber": "0x909482",
"blockTimestamp": "0x68fa8ad8",
"transactionHash": "0xe6fae08da55fdc7b6528b7811e442346f900e0ae6931942943a5bbbfe4e3b4ae",
"transactionIndex": "0x39",
"logIndex": "0x38",
"removed": false
},
{
"address": "0x5dfeb066334b67355a15dc9b67317fd2a2e1f77f",
"topics": [
"0x442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e",
"0x1b059d5ad73ceae3d06e384e5071f67169f00807b1ae659b40a60e5852a0055b"
],
"data": "0x0000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0xc7ea062f6ab34be42113df58502c6ce2d25ad9b4183d119039dc709b79ccfeeb",
"blockNumber": "0x909482",
"blockTimestamp": "0x68fa8ad8",
"transactionHash": "0xe6fae08da55fdc7b6528b7811e442346f900e0ae6931942943a5bbbfe4e3b4ae",
"transactionIndex": "0x39",
"logIndex": "0x39",
"removed": false
}
],
"logsBloom": "0x00000000400000000000000000000000000000000000000000000000040000000000000002000000000000000000000000000000000000000000000040000000000001000000000000000002000000000000000000000000000800000000000000000000020000000000400000000800000000000020000000000000000008000000000000000000000000000000000008000000000000000002000000000000002000000000000000000000000404080000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000040002000000000000000080000100000000000000000",
"type": "0x2",
"transactionHash": "0xe6fae08da55fdc7b6528b7811e442346f900e0ae6931942943a5bbbfe4e3b4ae",
"transactionIndex": "0x39",
"blockHash": "0xc7ea062f6ab34be42113df58502c6ce2d25ad9b4183d119039dc709b79ccfeeb",
"blockNumber": "0x909482",
"gasUsed": "0x2c1f5",
"effectiveGasPrice": "0xf6402",
"from": "0x9986ccaf9e3de0ffef82a0f7fa3a06d5afe07252",
"to": "0x5dfeb066334b67355a15dc9b67317fd2a2e1f77f",
"contractAddress": null
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1761250009978,
"chain": 11155111,
"commit": "b99e9f4"
}
Loading