Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/workflows/e2e_custom_cl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,16 @@
if: failure()
run: docker ps -a

- name: Collect Docker container logs
if: always()
working-directory: integration-tests/devenv
run: |

Check failure on line 321 in .github/workflows/e2e_custom_cl.yml

View workflow job for this annotation

GitHub Actions / actionlint

[actionlint] .github/workflows/e2e_custom_cl.yml#L321

shellcheck reported issue in this script: SC2086:info:3:56: Double quote to prevent globbing and word splitting [shellcheck]
Raw output
.github/workflows/e2e_custom_cl.yml:321:9: shellcheck reported issue in this script: SC2086:info:3:56: Double quote to prevent globbing and word splitting [shellcheck]

Check failure on line 321 in .github/workflows/e2e_custom_cl.yml

View workflow job for this annotation

GitHub Actions / actionlint

[actionlint] .github/workflows/e2e_custom_cl.yml#L321

shellcheck reported issue in this script: SC2086:info:4:15: Double quote to prevent globbing and word splitting [shellcheck]
Raw output
.github/workflows/e2e_custom_cl.yml:321:9: shellcheck reported issue in this script: SC2086:info:4:15: Double quote to prevent globbing and word splitting [shellcheck]
mkdir -p logs
for container in $(docker ps -q); do
container_name=$(docker inspect --format='{{.Name}}' $container | sed 's/^\///')
docker logs $container > "logs/${container_name}.log" 2>&1
done

- name: Upload Logs
if: always()
uses: actions/upload-artifact@v4
Expand Down
2 changes: 1 addition & 1 deletion contracts/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ require (
github.com/gagliardetto/treeout v0.1.4
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260224214816-cb23ec38649f
github.com/smartcontractkit/chainlink-deployments-framework v0.75.0
github.com/smartcontractkit/chainlink-solana v1.1.2-0.20260317184729-81a8971f77f6
github.com/smartcontractkit/chainlink-solana v1.1.2-0.20260410115711-24885e0d13eb
github.com/stretchr/testify v1.11.1
)

Expand Down
8 changes: 4 additions & 4 deletions contracts/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ require (
github.com/smartcontractkit/chainlink-common v0.11.2-0.20260406055916-9aa6b6c0ae81
github.com/smartcontractkit/chainlink-common/keystore v1.0.2
github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20251215152504-b1e41f508340
github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20251210101658-1c5c8e4c4f15
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-e86785845942
github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20260310180305-3ee91a6d9ae9
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20260401162955-be2bc6b5264b
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260326111235-8c09d1a4491f
github.com/smartcontractkit/freeport v0.1.3-0.20250716200817-cb5dfd0e369e
github.com/smartcontractkit/libocr v0.0.0-20260304194147-a03701e2c02e
Expand Down
8 changes: 4 additions & 4 deletions go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions integration-tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ require (
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260224214816-cb23ec38649f
github.com/smartcontractkit/chainlink-common v0.11.2-0.20260406055916-9aa6b6c0ae81
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260326111235-8c09d1a4491f
github.com/smartcontractkit/chainlink-solana v1.1.2-0.20260317184729-81a8971f77f6
github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260217175957-8f1af02c5075
github.com/smartcontractkit/chainlink-solana v1.1.2-0.20260410115711-24885e0d13eb
github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260410115711-24885e0d13eb
github.com/smartcontractkit/chainlink-testing-framework/framework v0.15.2
github.com/smartcontractkit/chainlink-testing-framework/framework/components/fake v0.14.9
github.com/smartcontractkit/libocr v0.0.0-20260304194147-a03701e2c02e
Expand Down Expand Up @@ -186,8 +186,8 @@ require (
github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20260311190822-5cbfc939dd16 // indirect
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 // indirect
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 // indirect
github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20251210101658-1c5c8e4c4f15 // indirect
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-e86785845942 // indirect
github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20260310180305-3ee91a6d9ae9 // indirect
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20260401162955-be2bc6b5264b // indirect
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b // indirect
github.com/smartcontractkit/freeport v0.1.3-0.20250716200817-cb5dfd0e369e // indirect
github.com/spf13/pflag v1.0.10 // indirect
Expand Down
8 changes: 4 additions & 4 deletions integration-tests/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions pkg/solana/CONFIG.md
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ NoNewFinalizedHeadsThreshold = '20s' # Default
FinalityDepth = 0 # Default
FinalityTagEnabled = true # Default
FinalizedBlockOffset = 50 # Default
FinalizedStateCheckFailureThreshold = 0 # Default
```


Expand Down Expand Up @@ -346,6 +347,14 @@ FinalizedBlockOffset = 50 # Default
```
FinalizedBlockOffset is the offset from the finalized block to use for finality tags.

### FinalizedStateCheckFailureThreshold
```toml
FinalizedStateCheckFailureThreshold = 0 # Default
```
FinalizedStateCheckFailureThreshold is the number of consecutive failures of the finalized state availability check
before the node is marked as FinalizedStateNotAvailable.
Set to 0 to disable the check.

## Workflow
```toml
[Workflow]
Expand Down
2 changes: 2 additions & 0 deletions pkg/solana/client/multinode_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -332,3 +332,5 @@ func (m *MultiNodeClient) SendTransaction(ctx context.Context, tx *solana.Transa
sig, err := m.SendTx(ctx, tx)
return sig, ClassifySendError(tx, err), err
}

func (m *MultiNodeClient) CheckFinalizedStateAvailability(ctx context.Context) error { return nil } // no-op
4 changes: 4 additions & 0 deletions pkg/solana/config/docs.toml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@ FinalityDepth = 0 # Default
FinalityTagEnabled = true # Default
# FinalizedBlockOffset is the offset from the finalized block to use for finality tags.
FinalizedBlockOffset = 50 # Default
# FinalizedStateCheckFailureThreshold is the number of consecutive failures of the finalized state availability check
# before the node is marked as FinalizedStateNotAvailable.
# Set to 0 to disable the check.
FinalizedStateCheckFailureThreshold = 0 # Default

[Workflow]
# AcceptanceTimeout is the default timeout for a tranmission to be accepted on chain
Expand Down
1 change: 1 addition & 0 deletions pkg/solana/config/testdata/config-full.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ NoNewFinalizedHeadsThreshold = '1h0m0s'
FinalityDepth = 0
FinalityTagEnabled = true
FinalizedBlockOffset = 0
FinalizedStateCheckFailureThreshold = 0

[[Nodes]]
Name = 'primary'
Expand Down
35 changes: 18 additions & 17 deletions pkg/solana/config/toml_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,23 +69,24 @@ var fullConfig = TOMLConfig{
},
MultiNode: mnCfg.MultiNodeConfig{
MultiNode: mnCfg.MultiNode{
Enabled: ptr(false),
PollFailureThreshold: ptr[uint32](5),
PollInterval: config.MustNewDuration(time.Second),
SelectionMode: ptr(multinode.NodeSelectionModeHighestHead),
SyncThreshold: ptr[uint32](5),
NodeIsSyncingEnabled: ptr(false),
LeaseDuration: config.MustNewDuration(time.Minute),
NewHeadsPollInterval: config.MustNewDuration(2 * time.Second),
FinalizedBlockPollInterval: config.MustNewDuration(3 * time.Second),
EnforceRepeatableRead: ptr(true),
DeathDeclarationDelay: config.MustNewDuration(2 * time.Minute),
VerifyChainID: ptr(true),
NodeNoNewHeadsThreshold: config.MustNewDuration(3 * time.Minute),
NoNewFinalizedHeadsThreshold: config.MustNewDuration(time.Hour),
FinalityDepth: ptr[uint32](0),
FinalityTagEnabled: ptr(true),
FinalizedBlockOffset: ptr[uint32](0),
Enabled: ptr(false),
PollFailureThreshold: ptr[uint32](5),
PollInterval: config.MustNewDuration(time.Second),
SelectionMode: ptr(multinode.NodeSelectionModeHighestHead),
SyncThreshold: ptr[uint32](5),
NodeIsSyncingEnabled: ptr(false),
LeaseDuration: config.MustNewDuration(time.Minute),
NewHeadsPollInterval: config.MustNewDuration(2 * time.Second),
FinalizedBlockPollInterval: config.MustNewDuration(3 * time.Second),
EnforceRepeatableRead: ptr(true),
DeathDeclarationDelay: config.MustNewDuration(2 * time.Minute),
VerifyChainID: ptr(true),
NodeNoNewHeadsThreshold: config.MustNewDuration(3 * time.Minute),
NoNewFinalizedHeadsThreshold: config.MustNewDuration(time.Hour),
FinalityDepth: ptr[uint32](0),
FinalityTagEnabled: ptr(true),
FinalizedBlockOffset: ptr[uint32](0),
FinalizedStateCheckFailureThreshold: ptr[uint32](0),
},
},
Nodes: Nodes{
Expand Down
Loading