Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
bc6be8e
Sync 2.31.0 changeset + changelog into develop (#20537)
HashWrangler Dec 5, 2025
ea6b3b6
PLEX-2140: make forwarder have lookback blocks parameterizable, bump …
fernandezlautaro Dec 5, 2025
d77c815
fix(ci): sui binary caching (#20539)
erikburt Dec 5, 2025
5d12e94
CIP-8334 Bumping chainlink-ccv to latest from main and fixing imports…
mateusz-sekara Dec 5, 2025
87374ac
Sui configure TP fix (#20546)
stackman27 Dec 5, 2025
8f17c1b
disable flaky tests temporarily & update version (#20531)
FelixFan1992 Dec 8, 2025
769837a
DS-1378 LLO Outcome Telemetry Sampling (#20469)
ro-tex Dec 8, 2025
40f0ec6
Bumping chainlink-ccv to latest from main (#20550)
mateusz-sekara Dec 8, 2025
978622e
Forwarder Set Config use contract qualifier (#20551)
dhaidashenko Dec 8, 2025
1e6d72f
PLEX-2149 fix add capabilities CLD to prevent removal of existing cab…
dhaidashenko Dec 8, 2025
ffa4935
chore/bump chainlink-evm version & config (#20554)
silaslenihan Dec 8, 2025
2eb4054
Logging for failed GetSecrets in Workflows (#20556)
prashantkumar1982 Dec 8, 2025
526b84b
feat(ci): transition to changed-modules-go (#20522)
erikburt Dec 8, 2025
d24f66a
trigger registrations concurrent + sync to handler. trigger subscript…
patrickhuie19 Dec 9, 2025
bdbb18b
Mint Link from Testnet MCMS Changeset (#20562)
finleydecker Dec 9, 2025
c32a432
Sync release/2.31.0 into develop (#20542)
HashWrangler Dec 9, 2025
9cf3f4f
[BCF-3490] Remove AtomicCore logger (#20571)
pavel-raykov Dec 9, 2025
e3914e7
DS-1850 - upgrading: chainlink-data-streams to avoid wrong timestamps…
dav009 Dec 10, 2025
2c03493
Only load state once in proposal generation (#20575)
carte7000 Dec 10, 2025
fd1eb82
Bump chainlink-evm to fix EVM TXM stack overflow (#20582)
dhaidashenko Dec 10, 2025
04b3ab7
Add chain status table and update chianlin ccv to use db constructor …
carte7000 Dec 10, 2025
9911544
Custom MCMS Proposal duration (#20577)
vyzaldysanchez Dec 10, 2025
a4cfbbe
[CRE-1492] allow tests to run EVM cap tests on two chains (#20581)
Tofel Dec 10, 2025
2bbb0de
core/services/workflows/v2: enforce PerWorkflow.ChainAllowed gate (#2…
jmank88 Dec 11, 2025
96817d0
[PRODCRE-1493] use built-in obs command instead of CTF binary, when c…
Tofel Dec 11, 2025
568e3b7
Merge branch 'develop' into copy/release/2.31.0
chainchad Dec 11, 2025
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
5 changes: 5 additions & 0 deletions .changeset/brown-ghosts-buy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#added OCR2 config option SampleTelemetry which enables telemetry sampling.
5 changes: 5 additions & 0 deletions .changeset/chilly-tools-walk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#internal disable 3 upgrade e2e tests due to flakiness
5 changes: 5 additions & 0 deletions .changeset/neat-suns-hammer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

#added changeset to mint link tokens from MCMS
5 changes: 5 additions & 0 deletions .changeset/polite-cobras-make.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#internal #added Sampling of LLO telemetry.
5 changes: 5 additions & 0 deletions .changeset/tiny-moons-bathe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#updated bumped chainlink-data-streams version
5 changes: 5 additions & 0 deletions .changeset/violet-lamps-pay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#bugfix Upgrades plugin: chainlink-data-streams so that calculated streams do not generate wrong timestamps
9 changes: 5 additions & 4 deletions .github/actions/setup-sui/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Setup Sui CLI
description: Install and cache Sui CLI using suiup
inputs:
version:
description: Sui CLI version to install (e.g., mainnet-v1.57.2)
description: Sui CLI version to install (e.g., mainnet-v1.61.2)
required: false
default: mainnet-v1.57.2
default: mainnet-v1.61.2
github-token:
description: GitHub token to use for authentication
required: true
Expand All @@ -17,7 +17,7 @@ runs:
name: Cache Sui CLI
with:
path: |
~/.suiup/bin
~/.local/bin/sui
key: ${{ runner.os }}-suiup-${{ inputs.version }}

- if: ${{ steps.cache.outputs.cache-hit != 'true' }}
Expand All @@ -32,4 +32,5 @@ runs:

- name: Export Sui CLI to PATH
shell: bash
run: echo "PATH=$HOME/.suiup/bin:$HOME/.local/bin:$HOME/.cargo/bin:$PATH" >> $GITHUB_ENV
run: |
echo "PATH=$HOME/.local/bin:$HOME/.cargo/bin:$PATH" >> $GITHUB_ENV
106 changes: 53 additions & 53 deletions .github/integration-in-memory-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -771,20 +771,20 @@ runner-test-matrix:
install_plugins_public: true
free_disk_space: true

- id: smoke/ccip/ccip_sui_messaging_test.go:Test_CCIP_Messaging_EVM2Sui
path: integration-tests/smoke/ccip/ccip_sui_messaging_test.go
test_env_type: in-memory
runs_on: ubuntu-latest
triggers:
- PR Integration CCIP Tests
- Nightly Integration CCIP Tests
test_cmd: |
echo "🚀 Starting CCIP EVM2Sui test..."
go test ./smoke/ccip -run "Test_CCIP_Messaging_EVM2Sui" -timeout 10m -test.parallel=1 -count=1 -json
test_go_project_path: integration-tests
sui_cli_version: mainnet-1.60.1
install_plugins_public: true
free_disk_space: true
# - id: smoke/ccip/ccip_sui_messaging_test.go:Test_CCIP_Messaging_EVM2Sui
# path: integration-tests/smoke/ccip/ccip_sui_messaging_test.go
# test_env_type: in-memory
# runs_on: ubuntu-latest
# triggers:
# - PR Integration CCIP Tests
# - Nightly Integration CCIP Tests
# test_cmd: |
# echo "🚀 Starting CCIP EVM2Sui test..."
# go test ./smoke/ccip -run "Test_CCIP_Messaging_EVM2Sui" -timeout 10m -test.parallel=1 -count=1 -json
# test_go_project_path: integration-tests
# sui_cli_version: mainnet-1.60.1
# install_plugins_public: true
# free_disk_space: true

- id: smoke/ccip/ccip_sui_messaging_test.go:Test_CCIP_EVM2Sui_ZeroReceiver
path: integration-tests/smoke/ccip/ccip_sui_messaging_test.go
Expand Down Expand Up @@ -940,47 +940,47 @@ runner-test-matrix:
install_plugins_public: true
free_disk_space: true

- id: smoke/ccip/ccip_sui_upgrade_test.go:Test_CCIP_Upgrade_EVM2Sui
path: integration-tests/smoke/ccip/ccip_sui_upgrade_test.go
test_env_type: in-memory
runs_on_self_hosted: runs-on/cpu=16/ram=64/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
triggers:
- PR Integration CCIP Tests
- Nightly Integration CCIP Tests
test_cmd: |
go test ./smoke/ccip -run "Test_CCIP_Upgrade_EVM2Sui" -timeout 25m -test.parallel=1 -count=1 -json
test_go_project_path: integration-tests
sui_cli_version: mainnet-1.60.1
install_plugins_public: true
free_disk_space: true
# - id: smoke/ccip/ccip_sui_upgrade_test.go:Test_CCIP_Upgrade_EVM2Sui
# path: integration-tests/smoke/ccip/ccip_sui_upgrade_test.go
# test_env_type: in-memory
# runs_on_self_hosted: runs-on/cpu=16/ram=64/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
# triggers:
# - PR Integration CCIP Tests
# - Nightly Integration CCIP Tests
# test_cmd: |
# go test ./smoke/ccip -run "Test_CCIP_Upgrade_EVM2Sui" -timeout 25m -test.parallel=1 -count=1 -json
# test_go_project_path: integration-tests
# sui_cli_version: mainnet-1.60.1
# install_plugins_public: true
# free_disk_space: true

- id: smoke/ccip/ccip_sui_upgrade_test.go:Test_CCIP_Upgrade_CommonPkg_EVM2Sui
path: integration-tests/smoke/ccip/ccip_sui_upgrade_test.go
test_env_type: in-memory
runs_on: ubuntu-latest
triggers:
- PR Integration CCIP Tests
- Nightly Integration CCIP Tests
test_cmd: |
go test ./smoke/ccip -run "Test_CCIP_Upgrade_CommonPkg_EVM2Sui" -timeout 25m -test.parallel=1 -count=1 -json
test_go_project_path: integration-tests
sui_cli_version: mainnet-1.60.1
install_plugins_public: true
free_disk_space: true
# - id: smoke/ccip/ccip_sui_upgrade_test.go:Test_CCIP_Upgrade_CommonPkg_EVM2Sui
# path: integration-tests/smoke/ccip/ccip_sui_upgrade_test.go
# test_env_type: in-memory
# runs_on: ubuntu-latest
# triggers:
# - PR Integration CCIP Tests
# - Nightly Integration CCIP Tests
# test_cmd: |
# go test ./smoke/ccip -run "Test_CCIP_Upgrade_CommonPkg_EVM2Sui" -timeout 25m -test.parallel=1 -count=1 -json
# test_go_project_path: integration-tests
# sui_cli_version: mainnet-1.60.1
# install_plugins_public: true
# free_disk_space: true

- id: smoke/ccip/ccip_sui_upgrade_test.go:Test_CCIP_Upgrade_NoBlock_EVM2Sui
path: integration-tests/smoke/ccip/ccip_sui_upgrade_test.go
test_env_type: in-memory
runs_on_self_hosted: runs-on/cpu=16/ram=64/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
triggers:
- PR Integration CCIP Tests
- Nightly Integration CCIP Tests
test_cmd: |
go test ./smoke/ccip -run "Test_CCIP_Upgrade_NoBlock_EVM2Sui" -timeout 25m -test.parallel=1 -count=1 -json
test_go_project_path: integration-tests
sui_cli_version: mainnet-1.60.1
install_plugins_public: true
free_disk_space: true
# - id: smoke/ccip/ccip_sui_upgrade_test.go:Test_CCIP_Upgrade_NoBlock_EVM2Sui
# path: integration-tests/smoke/ccip/ccip_sui_upgrade_test.go
# test_env_type: in-memory
# runs_on_self_hosted: runs-on/cpu=16/ram=64/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
# triggers:
# - PR Integration CCIP Tests
# - Nightly Integration CCIP Tests
# test_cmd: |
# go test ./smoke/ccip -run "Test_CCIP_Upgrade_NoBlock_EVM2Sui" -timeout 25m -test.parallel=1 -count=1 -json
# test_go_project_path: integration-tests
# sui_cli_version: mainnet-1.60.1
# install_plugins_public: true
# free_disk_space: true

# - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPPureTokenTransfer_EVM2SUI_BurnMintTokenPool
# path: integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go
Expand Down
62 changes: 37 additions & 25 deletions .github/workflows/ci-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
permissions:
pull-requests: read
outputs:
affected-modules: ${{ steps.resolved-modules.outputs.module_names }}
affected-modules: ${{ steps.changed-modules.outputs.modules-json }}
# Runs on workflow changes, any deployment change, or any (non-ignored) core change
should-run-deployment-tests: >-
${{
Expand Down Expand Up @@ -96,24 +96,9 @@ jobs:
all:
- '**'

- name: Resolve affected files to affected modules
id: resolved-modules
shell: bash
env:
GH_EVENT_NAME: ${{ github.event_name }}
run: |
# if scheduled, run for all modules (apart from the CRE workflow examples). Otherwise, run for only affected modules.
if [[ "$GH_EVENT_NAME" == "schedule" || "$GH_EVENT_NAME" == "workflow_dispatch" ]]; then
json_array=$(find . -name 'go.mod' -not -path './core/scripts/cre/environment/examples/workflows/*' -exec dirname {} \; | sed 's|^./||' | uniq | jq -R -s -c 'split("\n") | map(select(length > 0))')
echo "module_names=$json_array" >> "$GITHUB_OUTPUT"
else
# Ensure the step uses `with.list-files: json` to get the list of files in JSON format
bash ./.github/scripts/map-affected-files-to-modules.sh '${{ steps.match-every.outputs.all_files }}' '["core/scripts/cre/environment/examples/workflows"]'
fi

- name: Changed modules
id: changed-modules
uses: smartcontractkit/.github/actions/changed-modules-go@changed-modules-go/v1
continue-on-error: true # don't let this call affect the outcome of the job (during rollout)
with:
# when scheduled/workflow_dispatch, run against all modules
no-change-behaviour: all
Expand Down Expand Up @@ -160,7 +145,9 @@ jobs:
go-directory: ${{ matrix.modules }}

- name: Notify Slack
if: ${{ failure() && needs.run-frequency.outputs.one-per-day-frequency == 'true' }}
# Skip for now as it's always failing on scheduled runs
if: false
# if: ${{ failure() && needs.run-frequency.outputs.one-per-day-frequency == 'true' }}
uses: slackapi/slack-github-action@485a9d42d3a73031f12ec201c457e2162c45d02d # v2.0.0
with:
method: chat.postMessage
Expand All @@ -174,15 +161,40 @@ jobs:
# Inclusive check: all (new) modules are analyzed, but no need to enable "required" checks for each one
golangci-matrix-results-validation:
name: lint
if: ${{ always() && needs.golangci.result != 'skipped' && !contains(join(github.event.pull_request.labels.*.name, ' '), 'allow-lint-issues') }}
needs: [golangci]
if: ${{ always() }}
needs: [filter, golangci]
runs-on: ubuntu-latest
steps:
- name: Check Golangci-lint Matrix Results
if: ${{ needs.golangci.result != 'success' }}
env:
GOLANGCI_RESULT: ${{ needs.golangci.result }}
ALLOW_FAILURE: ${{ contains(join(github.event.pull_request.labels.*.name, ' '), 'allow-lint-issues') }}
SKIPPED: ${{ needs.filter.outputs.affected-modules == '[]' }}
run: |
echo "At least one 'GolangCI Lint' matrix job failed. Check the failed lint jobs."
exit 1
if [[ "${GOLANGCI_RESULT}" == "success" ]]; then
echo "All 'GolangCI Lint' matrix jobs succeeded."
exit 0
fi

if [[ "${GOLANGCI_RESULT}" == "skipped" || "${SKIPPED}" == "true" ]]; then
echo "'GolangCI Lint' jobs were skipped."
exit 0
fi

if [[ "${ALLOW_FAILURE}" == "true" ]]; then
echo "Some 'GolangCI Lint' matrix jobs failed, but failures are allowed due to 'allow-lint-issues' label."
exit 0
fi

if [[ "${GOLANGCI_RESULT}" == "cancelled" ]]; then
echo "'GolangCI Lint' jobs were cancelled."
exit 1
fi

if [[ "${GOLANGCI_RESULT}" == "failure" ]]; then
echo "'GolangCI Lint' matrix jobs had failures."
exit 1
fi

core:
env:
Expand Down Expand Up @@ -265,12 +277,12 @@ jobs:
with:
CLI_VERSION: 7.10.0

- name: Setup Sui CLI v1.57.2
- name: Setup Sui CLI v1.61.2
if: ${{ matrix.type.should-run == 'true' && matrix.type.setup-sui == 'true' }}
uses: ./.github/actions/setup-sui
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
version: mainnet-1.57.2
version: mainnet-v1.61.2

- name: Setup wasmd
if: ${{ matrix.type.should-run == 'true' }}
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@

- [#19667](https://github.com/smartcontractkit/chainlink/pull/19667) [`535a014`](https://github.com/smartcontractkit/chainlink/commit/535a014bef3a6a007ecf7fe8c2d9f21907e4d127) - #added Add Workflow Registry Chain Selector to CRE v2 registry events.


## 2.30.1 - 2025-11-18

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion ccip/config/evm/fallback.toml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ EnforceRepeatableRead = false
DeathDeclarationDelay = '10s'
NewHeadsPollInterval = '0s'
VerifyChainID = true
ExternalRequestMaxResponseSize = 50000
ExternalRequestMaxResponseSize = 1000000

[OCR]
ContractConfirmations = 4
Expand Down
3 changes: 1 addition & 2 deletions config_docs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ var (
func TestConfigDocs(t *testing.T) {
config, err := docs.GenerateConfig()
assert.NoError(t, err, "invalid config docs")
assert.Equal(t, configMD, config, "docs/CONFIG.md is out of date. Run '"+
"' to regenerate.")
assert.Equal(t, configMD, config, "docs/CONFIG.md is out of date. Run 'make config-docs' to regenerate.")

secrets, err := docs.GenerateSecrets()
assert.NoError(t, err, "invalid secrets docs")
Expand Down
1 change: 1 addition & 0 deletions core/cmd/shell_local_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,7 @@ func TestShell_RemoveBlocks(t *testing.T) {
}

func TestShell_BeforeNode(t *testing.T) {
testutils.SkipShortDB(t)
tests := []struct {
name string
pwdfile string
Expand Down
2 changes: 1 addition & 1 deletion core/config/docs/chains-evm.toml
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,7 @@ VerifyChainID = true # Default
# Only CRE workflow requests are considered external requests.
# Only applies for RPCs configured with HTTP urls. There is no limit for WS only RPCs.
# Set to 0 to disable the size check and allow responses of any size.
ExternalRequestMaxResponseSize = 50000 # Default
ExternalRequestMaxResponseSize = 1000000 # Default
# **ADVANCED**
# Errors enable the node to provide custom regex patterns to match against error messages from RPCs.
[EVM.NodePool.Errors]
Expand Down
2 changes: 2 additions & 0 deletions core/config/docs/core.toml
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,8 @@ DefaultTransactionQueueDepth = 1 # Default
SimulateTransactions = false # Default
# TraceLogging enables trace level logging.
TraceLogging = false # Default
# SampleTelemetry enables telemetry sampling.
SampleTelemetry = false # Default
# KeyValueStoreRootDir is the root directory for the key-value store used by OCR3.1.
# This directory must be writable by the Chainlink node process and should support long-term persistence.
KeyValueStoreRootDir = '~/.chainlink-data' # Default
Expand Down
1 change: 1 addition & 0 deletions core/config/ocr2_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ type OCR2 interface {
KeyBundleID() (string, error)
// OCR2 config, cannot override in jobs
TraceLogging() bool
SampleTelemetry() bool
CaptureEATelemetry() bool
DefaultTransactionQueueDepth() uint32
SimulateTransactions() bool
Expand Down
4 changes: 4 additions & 0 deletions core/config/toml/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -1349,6 +1349,7 @@ type OCR2 struct {
DefaultTransactionQueueDepth *uint32
SimulateTransactions *bool
TraceLogging *bool
SampleTelemetry *bool
KeyValueStoreRootDir *string
}

Expand Down Expand Up @@ -1395,6 +1396,9 @@ func (o *OCR2) setFrom(f *OCR2) {
if v := f.TraceLogging; v != nil {
o.TraceLogging = v
}
if v := f.SampleTelemetry; v != nil {
o.SampleTelemetry = v
}
if v := f.KeyValueStoreRootDir; v != nil {
o.KeyValueStoreRootDir = v
}
Expand Down
2 changes: 1 addition & 1 deletion core/scripts/cre/environment/configs/workflow-don.toml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
[nodesets.chain_capabilities]
write-evm = ["1337", "2337"]
read-contract = ["1337", "2337"]
evm = ["1337"]
evm = ["1337", "2337"]

# See ./examples/workflow-don-overrides.toml to learn how to override capability configs

Expand Down
Loading
Loading