Skip to content

feat(mcms): add solana support for transfer changeset#114

Merged
graham-chainlink merged 1 commit into
mainfrom
ggoh/cld2762/solana-transfer-timelock
Jul 1, 2026
Merged

feat(mcms): add solana support for transfer changeset#114
graham-chainlink merged 1 commit into
mainfrom
ggoh/cld2762/solana-transfer-timelock

Conversation

@graham-chainlink

Copy link
Copy Markdown
Collaborator

Looks like solana was missed for the transfer to timelock changeset as it only support evm currently

JIRA: https://smartcontract-it.atlassian.net/browse/CLD-2762

@graham-chainlink graham-chainlink marked this pull request as ready for review July 1, 2026 04:35
@graham-chainlink graham-chainlink requested a review from a team as a code owner July 1, 2026 04:35
Copilot AI review requested due to automatic review settings July 1, 2026 04:35
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Release impact (release-please)

Current version 0.7.1 (on main)
After merge 0.8.0 (minor bump)

PR title: feat(mcms): add solana support for transfer changeset

Merging this PR as-is will contribute a minor bump to the next release-please release PR.

Conventional commit → bump

Intent PR title prefix Bump
Bug fix fix: patch
New feature feat: minor
Breaking change feat!: / fix!: or BREAKING CHANGE: / BREAKING-CHANGE: in description major
No release chore:, docs:, ci:, refactor:, etc. none

Update the PR title before merge if you need a different bump (squash commit message = PR title).

Preview is based on this PR title only. The release-please release PR may include other unreleased commits already on main.

@graham-chainlink graham-chainlink changed the title fix: add solana support for transfer changeset feat(mcms): add solana support for transfer changeset Jul 1, 2026
@graham-chainlink graham-chainlink force-pushed the ggoh/cld2762/solana-transfer-timelock branch from 9293d0b to 3a2f46c Compare July 1, 2026 04:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Solana support for the existing “transfer-to-timelock” MCMS changeset so Solana ownable contracts can be transferred (and/or accepted) into timelock ownership similarly to the EVM flow.

Changes:

  • Introduces a Solana transfer-to-timelock implementation (sequence/operation/instruction building + contract resolution).
  • Adds Solana-specific precondition validation (MCMS refs, contract resolution, ownership checks) and unit/integration tests.
  • Wires Solana readers + Solana transfer-to-timelock registration into the “all” changeset bundle.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
mcms/solana/transfer-to-timelock/validate.go Adds Solana precondition validation for MCMS refs, contract refs, and current ownership.
mcms/solana/transfer-to-timelock/validate_test.go Adds unit tests for duplicate resolution and ref normalization.
mcms/solana/transfer-to-timelock/sequence.go Adds the Solana sequence entrypoint and timelock signer PDA derivation.
mcms/solana/transfer-to-timelock/register.go Registers the Solana family implementation with the transfer-to-timelock registry.
mcms/solana/transfer-to-timelock/owner.go Implements owner lookups and ownership validation across supported Solana contract types.
mcms/solana/transfer-to-timelock/operation.go Implements the Solana on-chain transfer step + MCMS accept-ownership batch op creation.
mcms/solana/transfer-to-timelock/instructions.go Builds seeded/seedless transfer + accept instructions and wraps bindings to override ProgramID.
mcms/solana/transfer-to-timelock/contract.go Resolves RefKeys into ownable Solana contracts (program/seed/owner PDA resolution).
mcms/solana/transfer-to-timelock/changeset_test.go Adds integration-style runtime tests covering transfer, accept-only, and idempotency.
mcms/changesets/transfer-to-timelock/all/wire.go Wires in Solana readers and the Solana transfer-to-timelock package.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread mcms/solana/transfer-to-timelock/contract.go
Copilot AI review requested due to automatic review settings July 1, 2026 04:37
@graham-chainlink graham-chainlink force-pushed the ggoh/cld2762/solana-transfer-timelock branch from 3a2f46c to 9e62021 Compare July 1, 2026 04:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment thread mcms/solana/transfer-to-timelock/contract.go Outdated
Comment thread mcms/solana/transfer-to-timelock/sequence.go
Comment thread mcms/solana/transfer-to-timelock/operation.go
Copilot AI review requested due to automatic review settings July 1, 2026 04:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment thread mcms/solana/transfer-to-timelock/sequence.go Outdated
Comment thread mcms/solana/transfer-to-timelock/operation.go Outdated
@graham-chainlink graham-chainlink force-pushed the ggoh/cld2762/solana-transfer-timelock branch from 9e62021 to 8904cca Compare July 1, 2026 04:44
Looks like solana was missed for the transfer to timelock changeset as it only support evm currently

JIRA: https://smartcontract-it.atlassian.net/browse/CLD-2762
Copilot AI review requested due to automatic review settings July 1, 2026 04:47
@graham-chainlink graham-chainlink force-pushed the ggoh/cld2762/solana-transfer-timelock branch from 8904cca to 4eb2486 Compare July 1, 2026 04:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Comment thread mcms/solana/transfer-to-timelock/contract.go
@cl-sonarqube-production

Copy link
Copy Markdown

Quality Gate failed Quality Gate failed

Failed conditions
73.3% Coverage on New Code (required ≥ 75%)

See analysis details on SonarQube

@@ -0,0 +1,111 @@
package soltransfertotimelock

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we could rename this to program.go as the term for solana is "programs"

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah yes , i will do this in my next PR!

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually on second thought we have ContractType everywhere too, so i feel like Contract is like a cross-chain framework term we now use in CLDF , let me think about this :D

@graham-chainlink graham-chainlink merged commit 2695394 into main Jul 1, 2026
17 of 18 checks passed
@graham-chainlink graham-chainlink deleted the ggoh/cld2762/solana-transfer-timelock branch July 1, 2026 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants