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
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ PROGRAM_BINARY=<path-to-.so-file>
### 1.3. Write buffer

```bash
make write-buffer
make step1-write-buffer
```

This will output a buffer address. Copy it.
Expand All @@ -62,11 +62,26 @@ SPILL=<your-wallet-address>
Then transfer buffer authority to MCM:

```bash
make transfer-buffer
make step2-transfer-buffer
```

The buffer is now controlled by the MCM authority.

### 1.5. Generate set-buffer-authority artifacts (use solana explorer to get the signature of the set-buffer-authority tx)

Set the following in `.env`:
```bash
SET_BUFFER_AUTHORITY_SIGNATURE=<signature-of-set-buffer-authority-tx>
```

Then generate the artifacts:

```bash
make step2.5-generate-set-buffer-authority-artifacts
```

This will output a file called `artifacts/set-buffer-authority-artifacts.json`.

## Phase 2: Create and Commit MCM Proposal

### 2.1. Update .env for proposal generation
Expand All @@ -84,7 +99,7 @@ MCM_PROPOSAL_OUTPUT=proposal.json
### 2.2. Generate proposal

```bash
make mcm-proposal
make step3-create-proposal
```

This creates the proposal file (default `proposal.json` or whatever is set in `MCM_PROPOSAL_OUTPUT`).
Expand All @@ -108,7 +123,7 @@ git push

## Phase 3: Coordinate with Signers and Collect Signatures

Coordinate with Signers to collect their signatures. Each Signer will run `make mcm-sign` and provide their signature.
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`

Expand All @@ -122,7 +137,7 @@ MCM_SIGNATURES=0xSIG1,0xSIG2,0xSIG3
## Phase 4: Execute Proposal

```bash
make mcm-all
make step5-execute-proposal
```

This command executes all the necessary steps:
Expand Down
3 changes: 1 addition & 2 deletions solana/setup-templates/template-mcm-program-upgrade/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,4 @@ sign:
.PHONY: step5-execute-proposal
step5-execute-proposal:
@echo "==> Step 5: Executing MCM proposal..."
make mcm-signatures-all
make mcm-proposal-all
make mcm-all
16 changes: 3 additions & 13 deletions solana/setup-templates/template-mcm-program-upgrade/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,10 @@ make deps

Your Ledger needs to be connected and unlocked. The **Ethereum application** needs to be opened on Ledger with the message "Application is ready".

### 3. Review the proposal

The Facilitator will provide you with the proposal details. Review:
- Program being upgraded: `PROGRAM`
- Buffer address: `BUFFER`
- MCM Program ID: `MCM_PROGRAM_ID`
- Valid until timestamp: `MCM_VALID_UNTIL`

These values are in the `.env` file and the generated `proposal.json`.

### 4. Sign the proposal
### 3. Sign the proposal

```bash
make mcm-sign
make sign
```

This command will:
Expand All @@ -50,7 +40,7 @@ After signing, you will see output like:
Signature: 1234567890abcdef...
```

### 5. Send signature to Facilitator
### 4. Send signature to Facilitator

Copy the **entire signature** and send it to the Facilitator via your secure communication channel.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ PAUSED=true # or false to unpause
### 1.2. Generate proposal

```bash
make mcm-proposal
make step1-create-proposal
```

This creates the proposal file (default `proposal.json` or whatever is set in `MCM_PROPOSAL_OUTPUT`).
Expand All @@ -71,7 +71,7 @@ git push

## Phase 2: Coordinate with Signers and Collect Signatures

Coordinate with Signers to collect their signatures. Each Signer will run `make mcm-sign` and provide their signature.
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`

Expand All @@ -85,7 +85,7 @@ MCM_SIGNATURES=0xSIG1,0xSIG2,0xSIG3
## Phase 3: Execute Proposal

```bash
make mcm-all
make step3-execute-proposal
```

This command executes all the necessary steps:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,4 @@ sign:
.PHONY: step3-execute-proposal
step3-execute-proposal:
@echo "==> Step 3: Executing MCM proposal..."
make mcm-signatures-all
make mcm-proposal-all
make mcm-all
18 changes: 3 additions & 15 deletions solana/setup-templates/template-mcm-set-pause-bridge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,10 @@ make deps

Your Ledger needs to be connected and unlocked. The **Ethereum application** needs to be opened on Ledger with the message "Application is ready".

### 3. Review the proposal

The Facilitator will provide you with the proposal details. Review:
- Bridge program ID: `BRIDGE_PROGRAM_ID`
- Bridge account: `BRIDGE_ACCOUNT`
- Guardian: `GUARDIAN`
- Pause status: `PAUSED` (true to pause, false to unpause)
- MCM Program ID: `MCM_PROGRAM_ID`
- Valid until timestamp: `MCM_VALID_UNTIL`

These values are in the `.env` file and the generated proposal file.

### 4. Sign the proposal
### 3. Sign the proposal

```bash
make mcm-sign
make sign
```

This command will:
Expand All @@ -52,7 +40,7 @@ After signing, you will see output like:
Signature: 1234567890abcdef...
```

### 5. Send signature to Facilitator
### 4. Send signature to Facilitator

Copy the **entire signature** and send it to the Facilitator via your secure communication channel.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,10 @@ MCM_GROUP_PARENTS=0,0
MCM_CLEAR_ROOT=false # or true if needed
```

**Important**: Carefully review the signers configuration to ensure it matches the intended governance structure.

### 1.2. Generate proposal

```bash
make mcm-proposal
make step1-create-proposal
```

This creates the proposal file (default `proposal.json` or whatever is set in `MCM_PROPOSAL_OUTPUT`).
Expand All @@ -74,7 +72,7 @@ git push

## Phase 2: Coordinate with Signers and Collect Signatures

Coordinate with Signers to collect their signatures. Each Signer will run `make mcm-sign` and provide their signature.
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`

Expand All @@ -88,7 +86,7 @@ MCM_SIGNATURES=0xSIG1,0xSIG2,0xSIG3
## Phase 3: Execute Proposal

```bash
make mcm-all
make step3-execute-proposal
```

This command executes all the necessary steps:
Expand All @@ -97,15 +95,12 @@ This command executes all the necessary steps:
- Finalize signatures
- Set root
- Execute proposal
- Print the new configuration

## Phase 4: Verification

### 4.1. Verify MCM configuration

```bash
make mcm-print-config
```

Check that:
- All new signers are present
- Old signers (if removed) are no longer present
Expand Down
4 changes: 2 additions & 2 deletions solana/setup-templates/template-mcm-signers-update/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ sign:
.PHONY: step3-execute-proposal
step3-execute-proposal:
@echo "==> Step 3: Executing MCM proposal..."
make mcm-signatures-all
make mcm-proposal-all
make mcm-all
make mcm-print-config
18 changes: 3 additions & 15 deletions solana/setup-templates/template-mcm-signers-update/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,10 @@ make deps

Your Ledger needs to be connected and unlocked. The **Ethereum application** needs to be opened on Ledger with the message "Application is ready".

### 3. Review the proposal

The Facilitator will provide you with the proposal details. Review:
- New signers list: `MCM_NEW_SIGNERS`
- Signer groups configuration: `MCM_SIGNER_GROUPS`
- Group quorums: `MCM_GROUP_QUORUMS`
- Group parents: `MCM_GROUP_PARENTS`
- MCM Program ID: `MCM_PROGRAM_ID`
- Valid until timestamp: `MCM_VALID_UNTIL`

These values are in the `.env` file and the generated proposal file.

### 4. Sign the proposal
### 3. Sign the proposal

```bash
make mcm-sign
make sign
```

This command will:
Expand All @@ -52,7 +40,7 @@ After signing, you will see output like:
Signature: 1234567890abcdef...
```

### 5. Send signature to Facilitator
### 4. Send signature to Facilitator

Copy the **entire signature** and send it to the Facilitator via your secure communication channel.

Expand Down