diff --git a/solana/MCM.mk b/solana/MCM.mk index 0841c874..22ad9216 100644 --- a/solana/MCM.mk +++ b/solana/MCM.mk @@ -258,8 +258,6 @@ mcm-proposal-bridge-pause: $(if $(filter true,$(MCM_OVERRIDE_PREVIOUS_ROOT)),--override-previous-root) \ --output $(MCM_PROPOSAL_OUTPUT) \ --bridge-program-id $(BRIDGE_PROGRAM_ID) \ - --bridge $(BRIDGE_ACCOUNT) \ - --guardian $(GUARDIAN) \ $(if $(filter true,$(PAUSED)),--paused) .PHONY: mcm-proposal-loader-v3-upgrade diff --git a/solana/Makefile b/solana/Makefile index f3607daf..e67edc00 100644 --- a/solana/Makefile +++ b/solana/Makefile @@ -42,7 +42,7 @@ install-eip712sign: .PHONY: install-mcmctl install-mcmctl: - go install github.com/base/mcm-go/cmd/mcmctl@v1.0.2 + go install github.com/base/mcm-go/cmd/mcmctl@a296095b9dab9099b74d93bfc270f85285d1ec4a .PHONY: deps deps: install-mcmctl install-eip712sign diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/.env b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/.env new file mode 100644 index 00000000..b9cab48a --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/.env @@ -0,0 +1,38 @@ +## +# Common MCM Proposal Variables +## + +# MCM program ID (base58 encoded) +MCM_PROGRAM_ID=Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX + +# MCM multisig ID (32 bytes hex with 0x prefix) +MCM_MULTISIG_ID=0x0000000000000000000000000000000000000000000000000000000000000000 + +# Timestamp until which the proposal is valid and can be executed +MCM_VALID_UNTIL=1761250327 # Thu Oct 23 2025 20:12:07 GMT+0000 + +# Set to true if you want to override the previous root when registering the proposal +# If set to true, it allows to override the (proposal) root even if there are outstanding operations left to execute in the previous proposal +MCM_OVERRIDE_PREVIOUS_ROOT=true + +# Total number of signatures required to execute the proposal +MCM_SIGNATURES_COUNT=3 + +# MCM proposal signatures +MCM_SIGNATURES=0x67c156e0686fdbef137b4b61af438c2c8c76bee24fcb4e5bbd0ca6faa3f8308e55a6503763e6a1638c494a3c53227ea6667a316d0f399ae5a2fbf456be4b8b6f1b,0xd21e12fbc461e57247b1af6c885e436227cd976c505b0554c600760e6be32815296742ee7b455ba4fa090344cc32ab14fc534ca3b740b2974bea77f03c1fefd01c,0xcc2a906b5c0c27ddd4600f5246684650d3ccbda5793e7026d62cbedf0108ee703a61ee99f9c417c1cb7079cd6bdd11a0af95560822c408b8e8374f24740c0f521b + +# Output file for the MCM proposal +MCM_PROPOSAL_OUTPUT=proposal.json + +# Authority account that will sign and submit MCM transactions +AUTHORITY=~/.config/solana/id.json + +## +# MCM Proposal Variables Specific to Bridge Pause +## + +# Bridge program ID (base58 encoded) +BRIDGE_PROGRAM_ID=6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm + +# Set to true to pause the bridge, omit or set to false to unpause +PAUSED=true diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/FACILITATORS.md b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/FACILITATORS.md new file mode 100644 index 00000000..6a3dd173 --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/FACILITATORS.md @@ -0,0 +1,115 @@ +# Facilitator Instructions: MCM Bridge Pause/Unpause + +## Overview + +As a Facilitator, you are responsible for: +1. Preparing the bridge pause configuration +2. Creating the MCM proposal +3. Committing and pushing the proposal to the repo +4. Coordinating with Signers +5. Collecting signatures +6. Executing the proposal on-chain + +## Prerequisites + +```bash +cd contract-deployments +git pull +cd solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge +make deps +``` + +Ensure you have: +- `mcmctl` installed (via `make deps`) +- `eip712sign` installed (via `make deps`) +- A funded Solana wallet configured + +## Phase 1: Prepare and Generate Proposal + +### 1.1. Update .env with bridge pause configuration + +Set the following in `.env`: + +```bash +MCM_PROGRAM_ID= +MCM_MULTISIG_ID= +MCM_VALID_UNTIL= +MCM_OVERRIDE_PREVIOUS_ROOT=false # or true if needed +MCM_PROPOSAL_OUTPUT=proposal.json + +# Bridge configuration +BRIDGE_PROGRAM_ID= +PAUSED=true # or false to unpause +``` + +### 1.2. Generate proposal + +```bash +make step1-create-proposal +``` + +This creates the proposal file (default `proposal.json` or whatever is set in `MCM_PROPOSAL_OUTPUT`). + +### 1.3. Review proposal + +Open and review the generated proposal file to verify: +- Bridge program ID is correct +- Pause status is correct (pausing or unpausing) +- Valid until timestamp is appropriate + +### 1.4. Commit and push + +```bash +git add . +git commit -m "Add MCM bridge pause/unpause proposal" +git push +``` + +## Phase 2: Coordinate with Signers and Collect Signatures + +Coordinate with Signers to collect their signatures. Each Signer will run `make sign` and provide their signature. + +Concatenate all signatures in the format: `0xSIG1,0xSIG2,0xSIG3` + +Once you have all required signatures, update `.env`: + +```bash +MCM_SIGNATURES_COUNT= +MCM_SIGNATURES=0xSIG1,0xSIG2,0xSIG3 +``` + +## Phase 3: Execute Proposal + +```bash +make step3-execute-proposal +``` + +This command executes all the necessary steps: +- Initialize signatures account +- Append signatures +- Finalize signatures +- Set root +- Execute proposal + +## Phase 4: Verification + +### 4.1. View transaction on Solana Explorer + +Visit the Solana Explorer for your network: +- Mainnet: https://explorer.solana.com/ +- Devnet: https://explorer.solana.com/?cluster=devnet + +Search for the execution transaction and verify: +- The transaction was successful +- The program logs show `Instruction: SetPauseStatus` (Anchor log) +- The pause status matches the intended action (paused or unpaused) + +### 4.2. Update README + +Update the Status line in README.md to: + +```markdown +Status: [EXECUTED](https://explorer.solana.com/tx/?cluster=) +``` + +Replace `` with the execution transaction signature and `` with the appropriate cluster (devnet, mainnet-beta, etc.). diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/Makefile b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/Makefile new file mode 100644 index 00000000..40a6435e --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/Makefile @@ -0,0 +1,27 @@ +include ../.env +include .env + +include ../../Makefile + +## +# MCM Bridge Pause/Unpause Workflow +## + +# Step 1: Create pause/unpause proposal +.PHONY: step1-create-proposal +step1-create-proposal: + @echo "==> Step 1: Creating MCM pause/unpause proposal..." + make mcm-proposal-bridge-pause + +# Step 2: Sign proposal +.PHONY: sign +sign: + @echo "==> Step 2: Signing proposal..." + make mcm-sign + +# Step 3: Execute proposal (signatures + set-root + execute) +.PHONY: step3-execute-proposal +step3-execute-proposal: + @echo "==> Step 3: Executing MCM proposal..." + make mcm-signatures-all + make mcm-proposal-all diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/README.md b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/README.md new file mode 100644 index 00000000..c850e011 --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/README.md @@ -0,0 +1,51 @@ +# MCM Bridge Pause + +Status: [EXECUTED](https://solscan.io/tx/2aRigbkBHkEQsgmg8zKum9C7V6ggKoGN69Wz3areFSdjFXVfRt6N4XbvejTwt7pXX9R1ns6LUMkLArSAKnUnhXCe?cluster=devnet) + +## Description + +This task pauses the Bridge program using the MCM program. This is a critical security operation that can be used to halt bridge operations in emergency situations. + +## Procedure for Signers + +### 1. Update repo + +```bash +cd contract-deployments +git pull +cd solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge +make deps +``` + +### 2. Setup Ledger + +Your Ledger needs to be connected and unlocked. The **Ethereum application** needs to be opened on Ledger with the message "Application is ready". + +### 3. Sign the proposal + +```bash +make sign +``` + +This command will: +1. Display the proposal hash +2. Prompt you to sign on your Ledger +3. Output your signature + +**Verify on your Ledger**: Check that the data you're signing matches the proposal hash displayed in the terminal. + +After signing, you will see output like: + +``` +Signature: 1234567890abcdef... +``` + +### 4. Send signature to Facilitator + +Copy the **entire signature** and send it to the Facilitator via your secure communication channel. + +**That's it!** The Facilitator will collect all signatures and execute the proposal. + +## For Facilitators + +See [FACILITATORS.md](./FACILITATORS.md) for complete instructions on preparing, executing, and verifying this task. diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-proposal-execute.json b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-proposal-execute.json new file mode 100644 index 00000000..edf8ba7d --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-proposal-execute.json @@ -0,0 +1,107 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "2aRigbkBHkEQsgmg8zKum9C7V6ggKoGN69Wz3areFSdjFXVfRt6N4XbvejTwt7pXX9R1ns6LUMkLArSAKnUnhXCe" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 4 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "7BrnaHaHtFDshmyrZFi28r9vzxTqcmTjSZcf7KdLHRhL", + "9mYamYp9qGXSC5whTmfH92RG2BdBpwSP3DwaczyFieDN", + "F1HSdZSs7CWSNBV4jqa977hLcuxn6fcdg8R5JuoFvM2q", + "DBKy3Bb6kFS2HH2JXZ1DhaR1KvZ6z6nTVyu4HJuvnd1S", + "6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm", + "2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ", + "Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX" + ], + "recentBlockhash": "6sw8v8N3dtFobLjS8hPV8X6xotWo3dNAacMPENbwG9op", + "instructions": [ + { + "programIdIndex": 7, + "accounts": [ + 1, + 4, + 2, + 5, + 6, + 0, + 3, + 6 + ], + "data": "3XtzmXSf21G7ZgSaukdCPnKeKSpmU4LsofeemapAhJezh47KjzKQdAh5tmeJ3rjtfzSMcJa5oVx1U32ckipKhQiEdmFVcqqM3T3h3L7RWayUEJZxmB3UZ5BxYfLHSkA7fxhZwUtEgSQZkTTh", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 197830217840, + 4134240, + 1252800, + 4565760, + 1343280, + 1141440, + 0, + 1141440 + ], + "postBalances": [ + 197830212840, + 4134240, + 1252800, + 4565760, + 1343280, + 1141440, + 0, + 1141440 + ], + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "programIdIndex": 5, + "accounts": [ + 3, + 6 + ], + "data": "2WBxVujLscd9i", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX invoke [1]", + "Program log: Instruction: Execute", + "Program 6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm invoke [2]", + "Program log: Instruction: SetPauseStatus", + "Program 6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm consumed 5974 of 179120 compute units", + "Program 6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm success", + "Program data: 3Q/UHSP8/04AAAAAAAAAAFJw9BMpTsJAnaNQ2SDcXQ5pG2X7hoV33jo1m3m+5rSsCQAAAHYZkdly0eyRAQ==", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX consumed 32483 of 200000 compute units", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 32483 + }, + "blockTime": 1761230938, + "slot": 416572370 +} diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-proposal-set-root.json b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-proposal-set-root.json new file mode 100644 index 00000000..0e27e77d --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-proposal-set-root.json @@ -0,0 +1,104 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "2Fphi1YEYXaUFPkLPHRjfkm1pnVmGuDg2NH3ssu1kTEBJs6oA4wMev1R5m8wfjwz986NL5ifDnvikK6cCixHGQdi" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 3 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "HM4XAF5my3vZzKHC8tLaVf7Pujw9fFcW8F69m692P3ii", + "DBKy3Bb6kFS2HH2JXZ1DhaR1KvZ6z6nTVyu4HJuvnd1S", + "ANwq6o5zFjitTKkNpC3t9EoGdv534A8HRwYiDAyMfV97", + "9mYamYp9qGXSC5whTmfH92RG2BdBpwSP3DwaczyFieDN", + "7BrnaHaHtFDshmyrZFi28r9vzxTqcmTjSZcf7KdLHRhL", + "11111111111111111111111111111111", + "Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX" + ], + "recentBlockhash": "3e3Tr8o4eYHm681j4TyLvWneNXBnXfzDZEz9Lb5vcWas", + "instructions": [ + { + "programIdIndex": 7, + "accounts": [ + 1, + 2, + 3, + 4, + 5, + 0, + 6 + ], + "data": "K9UBFxzzmUF86odsdKWb6A2fuzRXx1VQLqWaNmspdxDzEh8pmM5J9ndrw5ftZVa9Ut68i2R5A83XmuTN63nzwBuGYCy6eoRbdcUXtihpzVKNoHVZXoNRgkLxtDapd65JPou1AxsWGpeNYjeYoyz9J48ieYtMAVkqqgdrac5icdycM2AbyWjuG7rmLx7psWnGGVCywpEBKUgbyCprBqZjfDU7yzDxEKi9LBERbqh", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 197828830840, + 2345520, + 1343280, + 0, + 1252800, + 4134240, + 1, + 1141440 + ], + "postBalances": [ + 197830217840, + 0, + 1343280, + 953520, + 1252800, + 4134240, + 1, + 1141440 + ], + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "programIdIndex": 6, + "accounts": [ + 0, + 3 + ], + "data": "11117UcthqATmHRa77Wg3s82tM6xxYxd7PiZ2oZ4h1ZRQ3Q6anaT7puATNmrGRBPnEn6Uh", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX invoke [1]", + "Program log: Instruction: SetRoot", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program data: 0hm7digqPXdcDaaOU89bXNxHMipV79XA/3l4iAfVtFBNd2FwlnhyDBeM+mgAAAAAAAAAAFvuOPs7hiam+/CQoroqEyiPrjtrRaqBltmHvQYLpVUzAAAAAAAAAAABAAAAAAAAAAE=", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX consumed 109779 of 200000 compute units", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 109779 + }, + "blockTime": 1761230922, + "slot": 416572330 +} diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-signatures-append.json b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-signatures-append.json new file mode 100644 index 00000000..9972c1c5 --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-signatures-append.json @@ -0,0 +1,66 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "4MXWxSkzpQs2xPqcpgLbDFwdmKoDuuPaE6yomeVYjHZdwBCp1uFLPuYfxcCyeK3sU6ub4FB5PF6gtntSuzpfCsri" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 1 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "HM4XAF5my3vZzKHC8tLaVf7Pujw9fFcW8F69m692P3ii", + "Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX" + ], + "recentBlockhash": "HjFZPx5PDhNw1HqksLvp92YPw78vgKrd5F8yd1mYCps7", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 1, + 0 + ], + "data": "8JM1NbBrt3Xh3kxoE3gUoUhdacSAaBKUdPn3SULoy5MqoavKwgx6PuK2uuF1HmcmPVoWak3Vqot8qdan3DXXugozzXZUZVEqp7kKCanJbX4buozQ7DBbpV1q8U7N7NScAgB3qse2zwuo19Uhc8LEySkh6YX53enxtCqsER5wfNttr1mudz6Agid76R7crhvh5HjDSKkfpbKktZbAukwqMkPcvR5YG6HcR5fBZotJjRiuqEdbEYozaPXyVqHxQ9Rxwty8pBAcCDoPHEVcQwFeMX2uw3Fz2dama11xq3sussJaNgHXkHAs1t3EoCMj6nZ2dthdKqKD6LKwum54oWJrmUyegyhCbUx51EmbnSburfZWysYTAG3k7bBf", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 197828840840, + 2345520, + 1141440 + ], + "postBalances": [ + 197828835840, + 2345520, + 1141440 + ], + "innerInstructions": [], + "logMessages": [ + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX invoke [1]", + "Program log: Instruction: AppendSignatures", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX consumed 8385 of 200000 compute units", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 8385 + }, + "blockTime": 1761230891, + "slot": 416572248 +} diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-signatures-finalize.json b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-signatures-finalize.json new file mode 100644 index 00000000..6bcc5e8e --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-signatures-finalize.json @@ -0,0 +1,66 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "3aHh5DZKsXmtdFZdc1JzBsRgmdCD96BbUdH4rTGukiTSRbBybfsusrE5CnKPH53Ww9Pm1YJJPxx2jfUVYk3Ljamn" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 1 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "HM4XAF5my3vZzKHC8tLaVf7Pujw9fFcW8F69m692P3ii", + "Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX" + ], + "recentBlockhash": "75kNxhGSfPez9SpMgmRE3X8sYYBRaTUR9SLCM3g6qPMY", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 1, + 0 + ], + "data": "8VPNxavkg2Yj38NCocv5Cq5gNj6AXt2M4QRQjqgjJnXPoyHsmdy1UZDQyt9aDnPnRwvaVvGc784iLDGUFRfYuxxYVxuqsn4DmJ1fqZbM", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 197828835840, + 2345520, + 1141440 + ], + "postBalances": [ + 197828830840, + 2345520, + 1141440 + ], + "innerInstructions": [], + "logMessages": [ + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX invoke [1]", + "Program log: Instruction: FinalizeSignatures", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX consumed 7570 of 200000 compute units", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 7570 + }, + "blockTime": 1761230907, + "slot": 416572289 +} diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-signatures-init.json b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-signatures-init.json new file mode 100644 index 00000000..f32bbb0d --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/artifacts/mcm-signatures-init.json @@ -0,0 +1,87 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "4UFkU47vYCMXJix1nL7gWRemJArnNjbiSJTAAriCmPCmHEbrP2ZJ8EHdd9DsGkiBMPHTcxEnD8KGFd3VtZ9PhUEn" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 2 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "HM4XAF5my3vZzKHC8tLaVf7Pujw9fFcW8F69m692P3ii", + "11111111111111111111111111111111", + "Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX" + ], + "recentBlockhash": "CiZ5DqvTaARmQ2GZGBBXeRw1dCvzhi11NGawo862bpS7", + "instructions": [ + { + "programIdIndex": 3, + "accounts": [ + 1, + 0, + 2 + ], + "data": "2QCcPn6AhHR9Zi4mhnFE53M8tJopZFLmSWFEPUWVFoNxRRu5UeGEiNanTNFddazsHC9nKojgAFLhZKVUiS5UmGTbH6XMzfTcPjjDC4N8ta", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 197831191360, + 0, + 1, + 1141440 + ], + "postBalances": [ + 197828840840, + 2345520, + 1, + 1141440 + ], + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "11112nodbJCN8fXPKGyCu9NpWW4Z1ZkxMmEywtSX6cwUwwiUiy2t2NJ1N7s3c1VyVFW6Sm", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX invoke [1]", + "Program log: Instruction: InitSignatures", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX consumed 10983 of 200000 compute units", + "Program Ea5qsVs2kwQXi7LMAh3Qg5YKpuPQbW7oqvYaPXUwBwoX success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 10983 + }, + "blockTime": 1761230877, + "slot": 416572210 +} diff --git a/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/proposal.json b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/proposal.json new file mode 100644 index 00000000..06d918c8 --- /dev/null +++ b/solana/devnet-alpha/2025-10-23-mcm-set-pause-bridge/proposal.json @@ -0,0 +1,29 @@ +{ + "multisigId": "0x0000000000000000000000000000000000000000000000000000000000000000", + "validUntil": 1761250327, + "instructions": [ + { + "programId": "6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm", + "data": "dhmR2XLR7JEB", + "accounts": [ + { + "pubkey": "F1HSdZSs7CWSNBV4jqa977hLcuxn6fcdg8R5JuoFvM2q", + "isSigner": false, + "isWritable": true + }, + { + "pubkey": "2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ", + "isSigner": false, + "isWritable": false + } + ] + } + ], + "rootMetadata": { + "chainId": 0, + "multisig": "7BrnaHaHtFDshmyrZFi28r9vzxTqcmTjSZcf7KdLHRhL", + "preOpCount": 0, + "postOpCount": 1, + "overridePreviousRoot": true + } +} \ No newline at end of file diff --git a/solana/setup-templates/template-mcm-set-pause-bridge/.env b/solana/setup-templates/template-mcm-set-pause-bridge/.env index 968465d5..9c969786 100644 --- a/solana/setup-templates/template-mcm-set-pause-bridge/.env +++ b/solana/setup-templates/template-mcm-set-pause-bridge/.env @@ -8,7 +8,6 @@ MCM_PROGRAM_ID= # MCM multisig ID (32 bytes hex with 0x prefix) MCM_MULTISIG_ID= - # Timestamp until which the proposal is valid and can be executed MCM_VALID_UNTIL= @@ -35,11 +34,5 @@ AUTHORITY= # Bridge program ID (base58 encoded) BRIDGE_PROGRAM_ID= -# Bridge account address (base58 encoded) -BRIDGE_ACCOUNT= - -# Guardian address (base58 encoded) -GUARDIAN= - # Set to true to pause the bridge, omit or set to false to unpause PAUSED= diff --git a/solana/setup-templates/template-mcm-set-pause-bridge/FACILITATORS.md b/solana/setup-templates/template-mcm-set-pause-bridge/FACILITATORS.md index 81c20303..343522e5 100644 --- a/solana/setup-templates/template-mcm-set-pause-bridge/FACILITATORS.md +++ b/solana/setup-templates/template-mcm-set-pause-bridge/FACILITATORS.md @@ -39,8 +39,6 @@ MCM_PROPOSAL_OUTPUT=proposal.json # Bridge configuration BRIDGE_PROGRAM_ID= -BRIDGE_ACCOUNT= -GUARDIAN= PAUSED=true # or false to unpause ``` @@ -56,8 +54,6 @@ This creates the proposal file (default `proposal.json` or whatever is set in `M Open and review the generated proposal file to verify: - Bridge program ID is correct -- Bridge account address is correct -- Guardian address is correct - Pause status is correct (pausing or unpausing) - Valid until timestamp is appropriate