Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement set-channel-definitions for ChannelConfigStore. #16101

Open
wants to merge 13 commits into
base: develop
Choose a base branch
from

Conversation

ro-tex
Copy link
Contributor

@ro-tex ro-tex commented Jan 28, 2025

  • Rename deployment/llo to deployment/data-stream in order to avoid confusion.
  • Update the implementation to match current conventions.
  • Implement a setChannelDefinitions method call on the ChannelConfigStore contract.

Requires

Supports

@ro-tex ro-tex added the wip label Jan 28, 2025
Copy link
Contributor

github-actions bot commented Jan 28, 2025

AER Report: CI Core ran successfully ✅

aer_workflow , commit

AER Report: Operator UI CI ran successfully ✅

aer_workflow , commit

@ro-tex ro-tex removed the wip label Feb 6, 2025
Copy link
Contributor

github-actions bot commented Feb 6, 2025

Flakeguard Summary

Ran new or updated tests between develop and eb25bcf (ivo/impl-set-channel-definitions).

View Flaky Detector Details | Compare Changes

Found Flaky Tests ❌

1 Results
Name Pass Ratio Panicked? Timed Out? Race? Runs Successes Failures Skips Package Package Panicked? Avg Duration Code Owners
TestCallSetChannelDefinitions 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/deployment/data-streams/changeset false 1.053333333s @AnieeG, @kylesmartin, @smartcontractkit/ccip-offchain, @smartcontractkit/keystone, @smartcontractkit/core, @smartcontractkit/deployment-automation

Artifacts

For detailed logs of the failed tests, please refer to the artifact failed-test-results-with-logs.json.

Copy link
Contributor

github-actions bot commented Feb 6, 2025

Flakeguard Summary

Ran new or updated tests between develop and dd2dcbd (ivo/impl-set-channel-definitions).

View Flaky Detector Details | Compare Changes

Found Flaky Tests ❌

1 Results
Name Pass Ratio Panicked? Timed Out? Race? Runs Successes Failures Skips Package Package Panicked? Avg Duration Code Owners
TestCallSetChannelDefinitions 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/deployment/data-streams/changeset false 1.056666666s @AnieeG, @kylesmartin, @smartcontractkit/ccip-offchain, @smartcontractkit/keystone, @smartcontractkit/core, @smartcontractkit/deployment-automation

Artifacts

For detailed logs of the failed tests, please refer to the artifact failed-test-results-with-logs.json.

Copy link
Contributor

github-actions bot commented Feb 7, 2025

Flakeguard Summary

Ran new or updated tests between develop and 45eed65 (ivo/impl-set-channel-definitions).

View Flaky Detector Details | Compare Changes

Found Flaky Tests ❌

1 Results
Name Pass Ratio Panicked? Timed Out? Race? Runs Successes Failures Skips Package Package Panicked? Avg Duration Code Owners
TestCallSetChannelDefinitions 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/deployment/data-streams/changeset false 1.04s @AnieeG, @kylesmartin, @smartcontractkit/ccip-offchain, @smartcontractkit/keystone, @smartcontractkit/core, @smartcontractkit/deployment-automation

Artifacts

For detailed logs of the failed tests, please refer to the artifact failed-test-results-with-logs.json.

@ro-tex ro-tex marked this pull request as ready for review February 7, 2025 13:49
@ro-tex ro-tex requested review from a team as code owners February 7, 2025 13:49
@ro-tex ro-tex requested review from 0xnogo and krehermann February 7, 2025 13:49
SetChannelDefinitionsConfig struct {
// DefinitionsByChain is a map of chain selectors -> ChannelConfigStore addresses -> ChannelDefinitions to deploy.
DefinitionsByChain map[uint64]map[string]ChannelDefinition // Use string for address because of future non-EVM chains.
MCMSConfig *MCMSConfig
Copy link
Contributor

Choose a reason for hiding this comment

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

@akhilchainani @ecPablo is there a common, canonical configuration struct that can be used here?

ccip, keystone and streams are all defining their own

Copy link
Contributor

Choose a reason for hiding this comment

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

I think we don't have one yet. But all the types look very similar, we should just pick one and move it to https://github.com/smartcontractkit/chainlink/blob/develop/deployment/common/types/types.go

ChrisAmora
ChrisAmora previously approved these changes Feb 25, 2025
@@ -116,4 +116,5 @@ vendor/*

*.wasm
contracts/lcov.info
contracts/out/
Copy link
Contributor

Choose a reason for hiding this comment

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

Why do we need this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is the output directory for compiling contracts. If you want to have the compiled artifacts locally, they will be in that location and git will show them to you as uncommitted new files. I ignored it, so I can keep the artifacts without being bugged about them and without any risk to accidentally committing them.

ecPablo
ecPablo previously approved these changes Feb 25, 2025
SetChannelDefinitionsConfig struct {
// DefinitionsByChain is a map of chain selectors -> ChannelConfigStore addresses -> ChannelDefinitions to deploy.
DefinitionsByChain map[uint64]map[string]ChannelDefinition // Use string for address because of future non-EVM chains.
MCMSConfig *MCMSConfig
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we don't have one yet. But all the types look very similar, we should just pick one and move it to https://github.com/smartcontractkit/chainlink/blob/develop/deployment/common/types/types.go

@ro-tex ro-tex requested a review from krehermann February 26, 2025 09:24
@ro-tex ro-tex dismissed stale reviews from ecPablo and ChrisAmora via 39713d5 February 26, 2025 09:33
@ro-tex ro-tex requested review from ecPablo and ChrisAmora February 26, 2025 09:35
@@ -44,6 +44,8 @@ const (
ExecutorAccessControllerAccount deployment.ContractType = "ExecutorAccessControllerAccount"
CancellerAccessControllerAccount deployment.ContractType = "CancellerAccessControllerAccount"
BypasserAccessControllerAccount deployment.ContractType = "BypasserAccessControllerAccount"
// Data Streams contracts
ChannelConfigStore deployment.ContractType = "ChannelConfigStore"
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this be defined in this high level types? Or can it be kept in a data-streams type section?

@akuzni2
Copy link
Contributor

akuzni2 commented Feb 26, 2025

@ro-tex should all or some changesets be organized into contract/version subdirectory?
For example set setChannelDefinitions could differ on this version to the next version and we need a way to distinguish them. Same with the remaining contracts verifier, reward manager, etc... have differing versions during configuration. Deployment itself may be version agnostic.

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.

5 participants