Skip to content

Commit 8202b6d

Browse files
committed
feat: Enhance bridge pause/unpause workflow with dry run mode and transaction details display
1 parent a8bfb15 commit 8202b6d

File tree

1 file changed

+36
-6
lines changed

1 file changed

+36
-6
lines changed

.github/workflows/bridge-pause-safe.yml

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ on:
2222
- sepolia
2323
- arbitrum_sepolia
2424
default: sepolia
25+
dry_run:
26+
description: 'Dry run mode (only prepare and display transaction, do not propose to Safe)'
27+
required: false
28+
type: boolean
29+
default: false
2530

2631
jobs:
2732
prepare-pause-operation:
@@ -53,31 +58,56 @@ jobs:
5358
BRIDGE_ADDRESS=$(jq -r ".${CHAIN}.iexecLayerZeroBridgeAddress" config/config.json)
5459
echo "bridge-address=$BRIDGE_ADDRESS" >> $GITHUB_OUTPUT
5560
56-
# Determine the function selector based on operation
61+
# Determine the function selector and name based on operation
5762
case "${{ inputs.operation }}" in
5863
"pause-bridge")
5964
# pause() function selector
60-
SELECTOR="0x8456cb59"
65+
TRANSACTION_DATA=$(cast calldata "pause()")
66+
FUNCTION_NAME="pause()"
6167
;;
6268
"unpause-bridge")
6369
# unpause() function selector
64-
SELECTOR="0x3f4ba83a"
70+
TRANSACTION_DATA=$(cast calldata "unpause()")
71+
FUNCTION_NAME="unpause()"
6572
;;
6673
"pause-outbound")
6774
# pauseOutboundTransfers() function selector
68-
SELECTOR="0x47e7ef24"
75+
TRANSACTION_DATA=$(cast calldata "pauseOutboundTransfers()")
76+
FUNCTION_NAME="pauseOutboundTransfers()"
6977
;;
7078
"unpause-outbound")
7179
# unpauseOutboundTransfers() function selector
72-
SELECTOR="0x63ba0d00"
80+
TRANSACTION_DATA=$(cast calldata "unpauseOutboundTransfers()")
81+
FUNCTION_NAME="unpauseOutboundTransfers()"
7382
;;
7483
esac
7584
76-
echo "transaction-data=$SELECTOR" >> $GITHUB_OUTPUT
85+
echo "transaction-data=$TRANSACTION_DATA" >> $GITHUB_OUTPUT
7786
echo "safe-address=${{ secrets.SAFE_ADDRESS }}" >> $GITHUB_OUTPUT
87+
88+
# Display transaction details for dry-run or verification
89+
echo "=========================================="
90+
echo "Transaction Details"
91+
echo "=========================================="
92+
echo "Network: ${{ inputs.network }}"
93+
echo "Operation: ${{ inputs.operation }}"
94+
echo "Function: $FUNCTION_NAME"
95+
echo "Target Contract: $BRIDGE_ADDRESS"
96+
echo "Transaction Data: $TRANSACTION_DATA"
97+
echo "Transaction Value: 0"
98+
echo "Safe Address: ${{ secrets.SAFE_ADDRESS }}"
99+
echo "Dry Run: ${{ inputs.dry_run }}"
100+
echo "=========================================="
101+
102+
if [ "${{ inputs.dry_run }}" == "true" ]; then
103+
echo "✅ DRY RUN MODE: Transaction prepared successfully"
104+
echo "ℹ️ This transaction would be proposed to Safe multisig"
105+
echo "ℹ️ Re-run with dry_run=false to actually propose to Safe"
106+
fi
78107
79108
propose-to-safe:
80109
needs: prepare-pause-operation
110+
if: ${{ inputs.dry_run == false }}
81111
uses: iExecBlockchainComputing/github-actions-workflows/.github/workflows/propose-safe-multisig-tx.yml@main
82112
secrets:
83113
safe-proposer-private-key: ${{ secrets.SAFE_PROPOSER_PRIVATE_KEY }}

0 commit comments

Comments
 (0)