-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
More changeset/view typing #14872
base: develop
Are you sure you want to change the base?
More changeset/view typing #14872
Conversation
AER Report: CI Coreaer_workflow , commit , Clean Go Tidy & Generate , Detect Changes , lint , Core Tests (go_core_tests) , Core Tests (go_core_ccip_deployment_tests) , Core Tests (go_core_race_tests) , Core Tests (go_core_fuzz) , SonarQube Scan , Flakey Test Detection 1. CSA key does not exist:go_core_ccip_deployment_testsSource of Error:
Why: The error indicates that the Feeds Service failed to start because the CSA (Chainlink Service Agreement) key does not exist. This key is essential for the service to operate correctly. Suggested fix: Ensure that the CSA key is correctly generated and available in the environment where the service is being started. Verify the key management and loading process. 2. rmn home address not found:go_core_ccip_deployment_testsSource of Error:
Why: The error indicates that the deployment of CCIP contracts failed because the RMN (Remote Management Node) home address was not found for the specified chain selector. This suggests that the chain configuration is missing or incorrect. Suggested fix: Verify that the chain configuration is correctly set up and that the RMN home address is specified for the chain selector 789068866484373046. Ensure that all necessary chain details are provided. 3. Unable to get current block:go_core_ccip_deployment_testsSource of Error:
Why: The error indicates that the LogPoller was unable to read the latest block number, possibly due to a context cancellation or timeout. Suggested fix: Investigate the context management and ensure that the context is not prematurely canceled. Check for any network issues or timeouts that might be affecting the block reading process. 4. Error occurred while handling tx queue:go_core_ccip_deployment_testsSource of Error:
Why: The error indicates that there was an issue processing unstarted transactions in the transaction manager's broadcaster due to a context cancellation. Suggested fix: Ensure that the context used for transaction processing is valid and not canceled prematurely. Review the transaction handling logic to handle context cancellations gracefully. AER Report: Operator UI CI ran successfully ✅ |
"github.com/smartcontractkit/ccip-owner-contracts/pkg/proposal/timelock" | ||
) | ||
|
||
// Services as input to CI/Async tasks | ||
// Changeset represents a set of changes to be made to an environment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Relevant part - enforcing a signature for changesets and state viewing @krehermann @cgruber
Quality Gate passedIssues Measures |
@@ -7,8 +7,14 @@ import ( | |||
ccipdeployment "github.com/smartcontractkit/chainlink/integration-tests/deployment/ccip" | |||
) | |||
|
|||
var _ deployment.Changeset = CapRegChangeSet |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure what this is doing, other than catching a compile error if CapRegChangeSet isn't a ChangeSet.
// or existing environment specific contract addresses. | ||
// Its recommended that changesets operate on a small number of chains (e.g. 1-3) | ||
// to reduce the risk of partial failures. | ||
type Changeset func(e Environment, config interface{}) (ChangesetOutput, error) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having an explicit Changeset (and view state) notion makes sense to me.
I'm trying to roll around the idea that it's a function-type, rather than an interface. You can pull in an interface, but I don't see where we're forcing correct types, except in the unused var, which looks like a convention we could forget, rather than a type we have to conform to to even use the system. Or is there something I'm missing here? Is there a place where we consume (formally, so the compiler can enforce it) the ViewState and Changeset functions?
I guess this is fine in the sense that there isn't necessarily any reason for a struct with any particular data, if these are pure functions anyway, but is there any functionality that attaches to a change set, any metadata about the changeset, that we envision?
I guess it's not terribly hard to fix later, I'm just trying to get a sense of where we want it to go.
Requires
Resolves