Skip to content

[CLD-1913]: feat(pkg): migrate getSolanaState over from chainlink repo#5

Merged
graham-chainlink merged 1 commit intomainfrom
ggoh/CLD-1913/pkg-contract-and-solana-state
Apr 21, 2026
Merged

[CLD-1913]: feat(pkg): migrate getSolanaState over from chainlink repo#5
graham-chainlink merged 1 commit intomainfrom
ggoh/CLD-1913/pkg-contract-and-solana-state

Conversation

@graham-chainlink
Copy link
Copy Markdown
Collaborator

@graham-chainlink graham-chainlink commented Apr 20, 2026

This is for moving getSolanaState out of deployment/common/proposalutils/propose.go

I removed the logic to fetch from addressbook and only left the datastore

Jira: CLD-1913

@graham-chainlink graham-chainlink changed the title feat(pkg): contract constants and Solana MCMS state (CLD-1913) [CLD-1913]: feat(pkg): contract constants and Solana MCMS state (CLD-1913) Apr 20, 2026
@graham-chainlink graham-chainlink changed the title [CLD-1913]: feat(pkg): contract constants and Solana MCMS state (CLD-1913) [CLD-1913]: feat(pkg): contract constants and Solana MCMS state Apr 20, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a Solana MCMS-with-timelock “state loader” API and centralizes contract-type constants so Solana deployment tooling can read required addresses/seeds directly from the deployments datastore (replacing prior inlined logic elsewhere).

Changes:

  • Introduces pkg/family/solana.GetState and supporting types to load Solana MCMS/timelock program IDs, PDA seeds, and access-controller accounts from the datastore.
  • Adds Solana-specific datastore contract-type constants under pkg/family/solana.
  • Adds shared contract-type constants under pkg/contract.

Reviewed changes

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

File Description
pkg/family/solana/state.go New state loader + state structs for Solana MCMS/timelock addresses/seeds from datastore refs.
pkg/family/solana/contract.go New Solana-specific contract type constants for datastore entries.
pkg/contract/contract.go New shared contract type constants used across packages (incl. Solana roles/timelock).

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

Comment thread pkg/family/solana/state.go
Comment thread pkg/family/solana/state.go Outdated
Comment thread pkg/family/solana/state.go Outdated
Comment thread pkg/family/solana/state.go Outdated
Comment thread pkg/family/solana/state.go
Comment thread pkg/family/solana/state.go
Comment thread pkg/family/solana/state.go Outdated
Comment thread pkg/family/solana/state.go Outdated
@graham-chainlink graham-chainlink force-pushed the ggoh/CLD-1913/pkg-contract-and-solana-state branch from 96e85b0 to dc089bb Compare April 20, 2026 07:11
@graham-chainlink graham-chainlink marked this pull request as ready for review April 20, 2026 07:12
@graham-chainlink graham-chainlink requested a review from a team as a code owner April 20, 2026 07:12
Copilot AI review requested due to automatic review settings April 20, 2026 07:12
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces a new Solana “state” loader under pkg/family/solana and centralizes contract-type constants, with the goal of moving Solana MCMS/timelock state loading out of the deployment proposal utilities and relying solely on the datastore.

Changes:

  • Added GetState + supporting types/helpers to load Solana MCMS-with-timelock state from datastore address refs.
  • Introduced Solana-specific datastore contract-type constants.
  • Added a unit test asserting an error is returned for incomplete (nil/empty) datastore refs.

Reviewed changes

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

File Description
pkg/family/solana/state.go Implements Solana MCMS/timelock state loading/parsing from datastore refs.
pkg/family/solana/state_test.go Adds test coverage for incomplete datastore inputs.
pkg/family/solana/contract.go Defines Solana MCMS/timelock-related contract type constants.
pkg/contract/contract.go Introduces shared contract type constants (incl. MCMS/timelock related).

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

Comment thread pkg/family/solana/state.go
Introduce pkg/contract for shared deployment ContractType strings and
pkg/family/solana for Solana-specific datastore types plus MCMS/timelock
state loading from the environment datastore.

CLD-1913
@graham-chainlink graham-chainlink force-pushed the ggoh/CLD-1913/pkg-contract-and-solana-state branch from dc089bb to a53afa6 Compare April 20, 2026 07:20
@graham-chainlink graham-chainlink changed the title [CLD-1913]: feat(pkg): contract constants and Solana MCMS state [CLD-1913]: feat(pkg): migrate getSolanaState over from chainlink repo Apr 20, 2026
import cldf "github.com/smartcontractkit/chainlink-deployments-framework/deployment"

// Contract types for Solana MCMS / timelock entries in the datastore.
const (
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.

wondering if we should place these inside engine/cld/mcms instead since they are all mcms related?

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.

okay i can have a look at that, will these constants be used outside of changesets too?

Comment thread pkg/contract/contract.go
import cldf "github.com/smartcontractkit/chainlink-deployments-framework/deployment"

const (
BypasserManyChainMultisig cldf.ContractType = "BypasserManyChainMultiSig"
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.

same for these, wondering if we should place these inside engine/cld/mcms instead since they are all mcms related?

Also not sure if we want to port the Link token ones, wdyt?

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.

are we porting the deploy link token over? I was thinking if we do , then we may need the link token ones?

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.

I'm not sure, maybe it makes sense for we to own the link tooling? I'm just not so sure about it since we don't own the contract themselves, but maybe it's a special contract similar to mcms

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.

yeah it will be like MCMS, we also use deploy link token as the basic examples usually for demonstrating changesets or operations api.

Comment thread pkg/family/solana/state.go
Copy link
Copy Markdown
Contributor

@ecPablo ecPablo left a comment

Choose a reason for hiding this comment

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

I think we can keep the Link token, unless we find some team owning the tooling for this e2e maybe it should stay with us

Comment thread pkg/family/solana/state.go
Comment thread pkg/contract/contract.go
import cldf "github.com/smartcontractkit/chainlink-deployments-framework/deployment"

const (
BypasserManyChainMultisig cldf.ContractType = "BypasserManyChainMultiSig"
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.

I'm not sure, maybe it makes sense for we to own the link tooling? I'm just not so sure about it since we don't own the contract themselves, but maybe it's a special contract similar to mcms

@graham-chainlink graham-chainlink merged commit 6a2bbee into main Apr 21, 2026
10 checks passed
@graham-chainlink graham-chainlink deleted the ggoh/CLD-1913/pkg-contract-and-solana-state branch April 21, 2026 05:13
jkongie added a commit that referenced this pull request May 6, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.1.0](cld-changesets-v0.0.1...cld-changesets-v0.1.0)
(2026-05-06)


### Features

* add "catalog create chain metadata" changeset
([#36](#36))
([c12bb51](c12bb51))
* add catalog create contract metadata changeset
([#27](#27))
([8ec1cbc](8ec1cbc))
* add CRE workflow deploy changeset and operation
([#1](#1))
([960fde1](960fde1))
* add target name param to cre deploy changeset
([#3](#3))
([8b25662](8b25662))
* fund mcms pdas
([#22](#22))
([821e542](821e542))
* **jobspec:** port jobspec changesets from chainlink
([#21](#21))
([0ce3f74](0ce3f74))
* link token
([#30](#30))
([07345c1](07345c1))
* **pkg:** add contract constants and Solana MCMS state loading
([#5](#5))
([6a2bbee](6a2bbee))
* port BuildProposalFromBatchesV2
([#24](#24))
([28d53d7](28d53d7))
* port run changeset from chainlink
([#32](#32))
([693922f](693922f))
* port solana grant role
([#33](#33))
([7eca5be](7eca5be))
* port token approve
([#40](#40))
([04130de](04130de))
* **port:** firedrill mcms with operations api refactor
([#25](#25))
([6d9010c](6d9010c))
* **solana:** add SOL funding helpers for deployer transfers
([#19](#19))
([63bebf8](63bebf8))
* **solana:** port over mcms pda loader
([#11](#11))
([7170ddc](7170ddc))


### Bug Fixes

* **aptos:** move state load
([#8](#8))
([de58102](de58102))
* **evm:** port state load evm funcs
([#9](#9))
([99279f1](99279f1))
* **state:** restore addressbook usage
([#17](#17))
([017cd5e](017cd5e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: app-token-issuer-ops-platform[bot] <275822481+app-token-issuer-ops-platform[bot]@users.noreply.github.com>
Co-authored-by: James Kong <61834+jkongie@users.noreply.github.com>
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