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

Solana home chain update #15892

Open
wants to merge 52 commits into
base: solana-router-deploy
Choose a base branch
from

Conversation

yashnevatia
Copy link
Contributor

Requires

Supports

@yashnevatia yashnevatia requested review from a team as code owners January 10, 2025 14:34
@yashnevatia yashnevatia requested a review from aareet January 10, 2025 14:34
@yashnevatia yashnevatia changed the base branch from develop to solana-router-deploy January 10, 2025 14:34
@yashnevatia yashnevatia requested review from a team as code owners January 10, 2025 14:39
@yashnevatia yashnevatia requested review from winder, asoliman92, makramkd, dimkouv, mateusz-sekara, 0xAustinWang and 0xnogo and removed request for a team January 10, 2025 14:39
Copy link
Contributor

I see you updated files related to core. Please run pnpm changeset in the root directory to add a changeset as well as in the text include at least one of the following tags:

  • #added For any new functionality added.
  • #breaking_change For any functionality that requires manual action for the node to boot.
  • #bugfix For bug fixes.
  • #changed For any change to the existing functionality.
  • #db_update For any feature that introduces updates to database schema.
  • #deprecation_notice For any upcoming deprecation functionality.
  • #internal For changesets that need to be excluded from the final changelog.
  • #nops For any feature that is NOP facing and needs to be in the official Release Notes for the release.
  • #removed For any functionality/config that is removed.
  • #updated For any functionality that is updated.
  • #wip For any change that is not ready yet and external communication about it should be held off till it is feature complete.

🎖️ No JIRA issue number found in: PR title, commit message, or branch name. Please include the issue ID in one of these.

Copy link
Contributor

github-actions bot commented Jan 10, 2025

AER Report: CI Core

aer_workflow , commit , Detect Changes , Clean Go Tidy & Generate , Scheduled Run Frequency , test-scripts , GolangCI Lint (core/scripts) , GolangCI Lint (.) , Core Tests (go_core_ccip_deployment_tests) , GolangCI Lint (integration-tests/load) , GolangCI Lint (integration-tests) , GolangCI Lint (deployment) , lint , SonarQube Scan

1. Transaction simulation failed: [job id where the error happened]

Source of Error:
Run tests	2025-01-17T11:17:10.2351260Z logger.go:146: 11:15:34.897964793	ERROR	Failed to deploy chain contracts	{"chain": 12463857294658392847, "err": "failed to confirm instructions: (*jsonrpc.RPCError)(0xc08c5ed200)({\n Code: (int) -32002,\n Message: (string) (len=89) \"Transaction simulation failed: Error processing Instruction 0: custom program error: 0x66\",\n Data: (map[string]interface {}) (len=6) {\n (string) (len=8) \"accounts\": (interface {}) <nil>,\n (string) (len=3) \"err\": (map[string]interface {}) (len=1) {\n (string) (len=16) \"InstructionError\": ([]interface {}) (len=2 cap=2) {\n (json.Number) (len=1) \"0\",\n (map[string]interface {}) (len=1) {\n (string) (len=6) \"Custom\": (json.Number) (len=3) \"102\"\n }\n }\n },\n (string) (len=17) \"innerInstructions\": (interface {}) <nil>,\n (string) (len=4) \"logs\": ([]interface {}) (len=5 cap=8) {\n (string) (len=63) \"Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 invoke [1]\",\n (string) (len=36) \"Program log: Instruction: Initialize\",\n (string) (len=167) \"Program log: AnchorError occurred. Error Code: InstructionDidNotDeserialize. Error Number: 102. Error Message: The program could not deserialize the given instruction.\",\n (string) (len=90) \"Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 consumed 4687 of 200000 compute units\",\n (string) (len=87) \"Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 failed: custom program error: 0x66\"\n },\n (string) (len=10) \"returnData\": (interface {}) <nil>,\n (string) (len=13) \"unitsConsumed\": (json.Number) (len=4) \"4687\"\n }\n})\n"}
Run tests	2025-01-17T11:17:10.2358123Z logger.go:146: 11:15:34.897990822	ERROR	Failed to deploy chain contracts	{"err": "failed to deploy chain contracts for chain 12463857294658392847: failed to confirm instructions: (*jsonrpc.RPCError)(0xc08c5ed200)({\n Code: (int) -32002,\n Message: (string) (len=89) \"Transaction simulation failed: Error processing Instruction 0: custom program error: 0x66\",\n Data: (map[string]interface {}) (len=6) {\n (string) (len=8) \"accounts\": (interface {}) <nil>,\n (string) (len=3) \"err\": (map[string]interface {}) (len=1) {\n (string) (len=16) \"InstructionError\": ([]interface {}) (len=2 cap=2) {\n (json.Number) (len=1) \"0\",\n (map[string]interface {}) (len=1) {\n (string) (len=6) \"Custom\": (json.Number) (len=3) \"102\"\n }\n }\n },\n (string) (len=17) \"innerInstructions\": (interface {}) <nil>,\n (string) (len=4) \"logs\": ([]interface {}) (len=5 cap=8) {\n (string) (len=63) \"Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 invoke [1]\",\n (string) (len=36) \"Program log: Instruction: Initialize\",\n (string) (len=167) \"Program log: AnchorError occurred. Error Code: InstructionDidNotDeserialize. Error Number: 102. Error Message: The program could not deserialize the given instruction.\",\n (string) (len=90) \"Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 consumed 4687 of 200000 compute units\",\n (string) (len=87) \"Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 failed: custom program error: 0x66\"\n },\n (string) (len=10) \"returnData\": (interface {}) <nil>,\n (string) (len=13) \"unitsConsumed\": (json.Number) (len=4) \"4687\"\n }\n})\n"}
Run tests	2025-01-17T11:17:10.2364759Z logger.go:146: 11:15:34.898001281	ERROR	Failed to deploy CCIP contracts	{"err": "failed to deploy chain contracts for chain 12463857294658392847: failed to confirm instructions: (*jsonrpc.RPCError)(0xc08c5ed200)({\n Code: (int) -32002,\n Message: (string) (len=89) \"Transaction simulation failed: Error processing Instruction 0: custom program error: 0x66\",\n Data: (map[string]interface {}) (len=6) {\n (string) (len=8) \"accounts\": (interface {}) <nil>,\n (string) (len=3) \"err\": (map[string]interface {}) (len=1) {\n (string) (len=16) \"InstructionError\": ([]interface {}) (len=2 cap=2) {\n (json.Number) (len=1) \"0\",\n (map[string]interface {}) (len=1) {\n (string) (len=6) \"Custom\": (json.Number) (len=3) \"102\"\n }\n }\n },\n (string) (len=17) \"innerInstructions\": (interface {}) <nil>,\n (string) (len=4) \"logs\": ([]interface {}) (len=5 cap=8) {\n (string) (len=63) \"Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 invoke [1]\",\n (string) (len=36) \"Program log: Instruction: Initialize\",\n (string) (len=167) \"Program log: AnchorError occurred. Error Code: InstructionDidNotDeserialize. Error Number: 102. Error Message: The program could not deserialize the given instruction.\",\n (string) (len=90) \"Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 consumed 4687 of 200000 compute units\",\n (string) (len=87) \"Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 failed: custom program error: 0x66\"\n },\n (string) (len=10) \"returnData\": (interface {}) <nil>,\n (string) (len=13) \"unitsConsumed\": (json.Number) (len=4) \"4687\"\n }\n})\n", "newAddresses": {}}
Run tests	2025-01-17T11:17:10.2365082Z cs_deploy_chain_test.go:160: 
Run tests	2025-01-17T11:17:10.2365723Z 	Error Trace:	/home/runner/work/chainlink/chainlink/deployment/ccip/changeset/cs_deploy_chain_test.go:160
Run tests	2025-01-17T11:17:10.2365953Z 	Error: 	Received unexpected error:
Run tests	2025-01-17T11:17:10.2367416Z 	 	failed to apply changeset at index 1: failed to deploy chain contracts for chain 12463857294658392847: failed to confirm instructions: (*jsonrpc.RPCError)(0xc08c5ed200)({
Run tests	2025-01-17T11:17:10.2367708Z 	 	 Code: (int) -32002,
Run tests	2025-01-17T11:17:10.2368784Z 	 	 Message: (string) (len=89) "Transaction simulation failed: Error processing Instruction 0: custom program error: 0x66",
Run tests	2025-01-17T11:17:10.2369352Z 	 	 Data: (map[string]interface {}) (len=6) {
Run tests	2025-01-17T11:17:10.2369863Z 	 	 (string) (len=8) "accounts": (interface {}) <nil>,
Run tests	2025-01-17T11:17:10.2370431Z 	 	 (string) (len=3) "err": (map[string]interface {}) (len=1) {
Run tests	2025-01-17T11:17:10.2371110Z 	 	 (string) (len=16) "InstructionError": ([]interface {}) (len=2 cap=2) {
Run tests	2025-01-17T11:17:10.2371478Z 	 	 (json.Number) (len=1) "0",
Run tests	2025-01-17T11:17:10.2371899Z 	 	 (map[string]interface {}) (len=1) {
Run tests	2025-01-17T11:17:10.2372485Z 	 	 (string) (len=6) "Custom": (json.Number) (len=3) "102"
Run tests	2025-01-17T11:17:10.2372659Z 	 	 }
Run tests	2025-01-17T11:17:10.2372829Z 	 	 }
Run tests	2025-01-17T11:17:10.2372994Z 	 	 },
Run tests	2025-01-17T11:17:10.2373572Z 	 	 (string) (len=17) "innerInstructions": (interface {}) <nil>,
Run tests	2025-01-17T11:17:10.2374125Z 	 	 (string) (len=4) "logs": ([]interface {}) (len=5 cap=8) {
Run tests	2025-01-17T11:17:10.2374956Z 	 	 (string) (len=63) "Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 invoke [1]",
Run tests	2025-01-17T11:17:10.2375544Z 	 	 (string) (len=36) "Program log: Instruction: Initialize",
Run tests	2025-01-17T11:17:10.2377336Z 	 	 (string) (len=167) "Program log: AnchorError occurred. Error Code: InstructionDidNotDeserialize. Error Number: 102. Error Message: The program could not deserialize the given instruction.",
Run tests	2025-01-17T11:17:10.2378417Z 	 	 (string) (len=90) "Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 consumed 4687 of 200000 compute units",
Run tests	2025-01-17T11:17:10.2379459Z 	 	 (string) (len=87) "Program C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8 failed: custom program error: 0x66"
Run tests	2025-01-17T11:17:10.2379624Z 	 	 },
Run tests	2025-01-17T11:17:10.2380142Z 	 	 (string) (len=10) "returnData": (interface {}) <nil>,
Run tests	2025-01-17T11:17:10.2380746Z 	 	 (string) (len=13) "unitsConsumed": (json.Number) (len=4) "4687"
Run tests	2025-01-17T11:17:10.2380906Z 	 	 }
Run tests	2025-01-17T11:17:10.2381053Z 	 	})
Run tests	2025-01-17T11:17:10.2381300Z 	Test: 	TestHomeChainChangesetSolana

Why: The error indicates that the transaction simulation failed due to a custom program error (0x66) during the deployment of chain contracts. This error typically occurs when the program cannot deserialize the given instruction, leading to a failure in the transaction simulation.

Suggested fix: Review the instruction data being sent to the program to ensure it is correctly formatted and matches the expected schema. Additionally, verify that the program logic is correctly handling the instruction deserialization.

2. API server not ready: [job id where the error happened]

Source of Error:
Run tests	2025-01-17T11:17:10.2481039Z --- FAIL: TestSaveExistingCCIP (31.67s)
Run tests	2025-01-17T11:17:10.2481278Z chain.go:137: API server not ready yet (attempt 1)
Run tests	2025-01-17T11:17:10.2481494Z chain.go:137: API server not ready yet (attempt 2)
Run tests	2025-01-17T11:17:10.2481710Z chain.go:137: API server not ready yet (attempt 3)
Run tests	2025-01-17T11:17:10.2481926Z chain.go:137: API server not ready yet (attempt 4)
Run tests	2025-01-17T11:17:10.2482144Z chain.go:137: API server not ready yet (attempt 5)
Run tests	2025-01-17T11:17:10.2482354Z chain.go:137: API server not ready yet (attempt 6)
Run tests	2025-01-17T11:17:10.2482569Z chain.go:137: API server not ready yet (attempt 7)
Run tests	2025-01-17T11:17:10.2482783Z chain.go:137: API server not ready yet (attempt 8)
Run tests	2025-01-17T11:17:10.2482991Z chain.go:137: API server not ready yet (attempt 9)
Run tests	2025-01-17T11:17:10.2483216Z chain.go:137: API server not ready yet (attempt 10)
Run tests	2025-01-17T11:17:10.2483439Z chain.go:137: API server not ready yet (attempt 11)
Run tests	2025-01-17T11:17:10.2483655Z chain.go:137: API server not ready yet (attempt 12)
Run tests	2025-01-17T11:17:10.2483869Z chain.go:137: API server not ready yet (attempt 13)
Run tests	2025-01-17T11:17:10.2484085Z chain.go:137: API server not ready yet (attempt 14)
Run tests	2025-01-17T11:17:10.2484300Z chain.go:137: API server not ready yet (attempt 15)
Run tests	2025-01-17T11:17:10.2484513Z chain.go:137: API server not ready yet (attempt 16)
Run tests	2025-01-17T11:17:10.2484728Z chain.go:137: API server not ready yet (attempt 17)
Run tests	2025-01-17T11:17:10.2484945Z chain.go:137: API server not ready yet (attempt 18)
Run tests	2025-01-17T11:17:10.2485161Z chain.go:137: API server not ready yet (attempt 19)
Run tests	2025-01-17T11:17:10.2485372Z chain.go:137: API server not ready yet (attempt 20)
Run tests	2025-01-17T11:17:10.2485587Z chain.go:137: API server not ready yet (attempt 21)
Run tests	2025-01-17T11:17:10.2485803Z chain.go:137: API server not ready yet (attempt 22)
Run tests	2025-01-17T11:17:10.2486015Z chain.go:137: API server not ready yet (attempt 23)
Run tests	2025-01-17T11:17:10.2486230Z chain.go:137: API server not ready yet (attempt 24)
Run tests	2025-01-17T11:17:10.2486574Z chain.go:137: API server not ready yet (attempt 25)
Run tests	2025-01-17T11:17:10.2486792Z chain.go:137: API server not ready yet (attempt 26)
Run tests	2025-01-17T11:17:10.2487001Z chain.go:137: API server not ready yet (attempt 27)
Run tests	2025-01-17T11:17:10.2487215Z chain
</cicore>
  
    

































<operatoruici>

## AER Report: [Operator UI CI](https://github.com/smartcontractkit/chainlink/actions/runs/12826743428) ran successfully :white_check_mark:

[aer_workflow](https://github.com/smartcontractkit/chainlink/actions/runs/12826763629/job/35767351229) , [commit](https://github.com/smartcontractkit/chainlink/commit/998adc771d9d0594fe8faa3a229c077322042b6d)

</operatoruici>

@archseer
Copy link
Contributor

     test_helpers.go:125: wasmd stderr: Error: failed to listen on 127.0.0.1:39750: listen tcp 127.0.0.1:39750: bind: address already in use

Looks like the latest test run was just unlucky with port selection, chainlink-cosmos should be updated to use freeport

@yashnevatia yashnevatia requested a review from a team as a code owner January 16, 2025 11:42
#!/bin/bash

# Array of directories to process
DIRS=(
Copy link
Contributor

Choose a reason for hiding this comment

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

why not just run make gomodtidy?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

it does not work in my nix shell.
so i asked gpt to write this utility for me.
dont intend to merge it of course

if chainState.SolAddressLookupTable.IsZero() {
maxRetries := 5
var table solana.PublicKey
for i := 0; i < maxRetries; i++ {
Copy link
Contributor

Choose a reason for hiding this comment

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

//TODO: log errors

// token pool initialization happens for a specific token
// should we initialize LINK and WSOL token pools here ?
Copy link
Contributor

Choose a reason for hiding this comment

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

my 2c we should not unless they require something special that other token pools do not. I would think we want a generic way to init any token pool as a changeset and just pass LINK and WSOL as params

@cl-sonarqube-production
Copy link

Quality Gate failed Quality Gate failed

Failed conditions
14 New Major Issues (required ≤ 5)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube

Catch issues before they fail your Quality Gate with our IDE extension SonarLint SonarLint

e.GetContext(),
chain.Client,
*chain.DeployerKey,
[]solana.PublicKey{
Copy link
Contributor

Choose a reason for hiding this comment

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

@aalu1418 @agusaldasoro @toblich @prashantkumar1982 @silaslenihan we're populating the global lookup table at after all the deploys with this initial list of values. We sourced what we thought were relevant accounts from https://docs.google.com/document/d/1ifqVb7COB9Peg2KOjOzq680PyZUTRUbAeE0c6_SZAao/edit?tab=t.0#heading=h.x86uu19kzl1n and https://github.com/smartcontractkit/chainlink-ccip/blob/763fd9ec74fac77a9686aaebda86e36a90f678eb/chains/solana/contracts/tests/ccip/ccip_router_test.go#L310

It's probably incomplete/incorrect so please give it a look. We can add anything else that might be useful either here or extend the table elsewhere.

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