Skip to content

Commit

Permalink
Merge branch 'develop' into dynamic_fees
Browse files Browse the repository at this point in the history
  • Loading branch information
dimriou committed Oct 8, 2024
2 parents b6ce1ee + 1b41e69 commit 9ccfb85
Show file tree
Hide file tree
Showing 91 changed files with 2,574 additions and 471 deletions.
5 changes: 5 additions & 0 deletions .changeset/eighty-bulldogs-smile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

#added Use ApplyDefaultsAndValidate
5 changes: 5 additions & 0 deletions .changeset/khaki-pants-melt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#updated Workflows Engine loop refactored
5 changes: 5 additions & 0 deletions .changeset/moody-trains-grow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#added graceful shutdown for ccip oracles
5 changes: 5 additions & 0 deletions .changeset/orange-humans-laugh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

Support Zircuit fraud transactions detection and zk overflow detection #added
5 changes: 5 additions & 0 deletions .changeset/silent-foxes-battle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

Bump chainlink-solana and fix tests #internal
5 changes: 5 additions & 0 deletions .changeset/silly-starfishes-destroy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#internal ccip contract reader config.
5 changes: 5 additions & 0 deletions .changeset/smooth-queens-dance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

Add compute capability #internal
5 changes: 5 additions & 0 deletions .changeset/three-otters-drum.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

Hedera chain type: broadcast transactions only to a single healthy RPC instead of all healthy RPCs to avoid redundant relay fees. #changed
68 changes: 34 additions & 34 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
/core/chains/ @smartcontractkit/bix-framework

# Services
/core/services/directrequest @smartcontractkit/keepers
/core/services/directrequest @smartcontractkit/foundations
/core/services/feeds @smartcontractkit/op-core @eutopian @yevshev
/core/services/synchronization/telem @smartcontractkit/realtime
/core/capabilities/ @smartcontractkit/keystone
Expand All @@ -19,7 +19,7 @@
# To be deprecated in Chainlink V3
/core/services/fluxmonitorv2 @smartcontractkit/foundations
/core/services/job @smartcontractkit/ccip
/core/services/keystore @smartcontractkit/keepers
/core/services/keystore @smartcontractkit/foundations
/core/services/ocr* @smartcontractkit/foundations
/core/services/periodicbackup @smartcontractkit/foundations
/core/services/pg @smartcontractkit/foundations @samsondav
Expand All @@ -30,27 +30,27 @@
/core/services/llo @smartcontractkit/data-streams-engineers

# VRF-related services
/core/services/vrf @smartcontractkit/vrf-team
/core/services/blockhashstore @smartcontractkit/vrf-team
/core/services/blockheaderfeeder @smartcontractkit/vrf-team
/core/services/pipeline/task.vrf.go @smartcontractkit/vrf-team
/core/services/pipeline/task.vrfv2.go @smartcontractkit/vrf-team
/core/services/pipeline/task.vrfv2plus.go @smartcontractkit/vrf-team
/core/services/vrf @smartcontractkit/dev-services
/core/services/blockhashstore @smartcontractkit/dev-services
/core/services/blockheaderfeeder @smartcontractkit/dev-services
/core/services/pipeline/task.vrf.go @smartcontractkit/dev-services
/core/services/pipeline/task.vrfv2.go @smartcontractkit/dev-services
/core/services/pipeline/task.vrfv2plus.go @smartcontractkit/dev-services

# Keeper/Automation-related services
/core/services/keeper @smartcontractkit/keepers
/core/services/ocr2/plugins/ocr2keeper @smartcontractkit/keepers
/core/services/keeper @smartcontractkit/dev-services
/core/services/ocr2/plugins/ocr2keeper @smartcontractkit/dev-services

# Chainlink Functions
core/services/functions @smartcontractkit/functions
core/services/ocr2/plugins/functions @smartcontractkit/functions
core/services/s4 @smartcontractkit/functions
core/service/ocr2/plugins/s4 @smartcontractkit/functions
core/services/ocr2/plugins/threshold @smartcontractkit/functions
core/services/relay/evm/functions @smartcontractkit/functions
core/services/relay/evm/functions @smartcontractkit/functions
core/scripts/functions @smartcontractkit/functions
core/scripts/gateway @smartcontractkit/functions
core/services/functions @smartcontractkit/dev-services
core/services/ocr2/plugins/functions @smartcontractkit/dev-services
core/services/s4 @smartcontractkit/dev-services
core/service/ocr2/plugins/s4 @smartcontractkit/dev-services
core/services/ocr2/plugins/threshold @smartcontractkit/dev-services
core/services/relay/evm/functions @smartcontractkit/dev-services
core/services/relay/evm/functions @smartcontractkit/dev-services
core/scripts/functions @smartcontractkit/dev-services
core/scripts/gateway @smartcontractkit/dev-services

# Keystone
/core/services/registrysyncer @smartcontractkit/keystone
Expand All @@ -66,17 +66,17 @@ core/scripts/gateway @smartcontractkit/functions
# This could give some false positives, so afterwards we match on the project directories
# to ensure the entire directory is always owned by the correct team.

/contracts/**/*keeper* @smartcontractkit/keepers
/contracts/**/*upkeep* @smartcontractkit/keepers
/contracts/**/*automation* @smartcontractkit/keepers
/contracts/**/*functions* @smartcontractkit/functions
/contracts/**/*keeper* @smartcontractkit/dev-services
/contracts/**/*upkeep* @smartcontractkit/dev-services
/contracts/**/*automation* @smartcontractkit/dev-services
/contracts/**/*functions* @smartcontractkit/dev-services
/contracts/**/*llo-feeds* @smartcontractkit/data-streams-engineers
/contracts/**/*vrf* @smartcontractkit/vrf-team
/contracts/**/*vrf* @smartcontractkit/dev-services
/contracts/**/*l2ep* @smartcontractkit/bix-ship
/contracts/**/*keystone* @smartcontractkit/keystone

/contracts/src/v0.8/automation @smartcontractkit/keepers
/contracts/src/v0.8/functions @smartcontractkit/functions
/contracts/src/v0.8/automation @smartcontractkit/dev-services
/contracts/src/v0.8/functions @smartcontractkit/dev-services
# TODO: interfaces folder, folder should be removed and files moved to the correct folders
/contracts/src/v0.8/l2ep @smartcontractkit/bix-build
/contracts/src/v0.8/llo-feeds @smartcontractkit/data-streams-engineers
Expand All @@ -85,21 +85,21 @@ core/scripts/gateway @smartcontractkit/functions
/contracts/src/v0.8/shared @RensR @matYang @RayXpub @elatoskinas
# TODO: tests folder, folder should be removed and files moved to the correct folders
# TODO: transmission folder, owner should be found
/contracts/src/v0.8/vrf @smartcontractkit/vrf-team
/contracts/src/v0.8/vrf @smartcontractkit/dev-services



# At the end, match any files missed by the patterns above
/contracts/scripts/native_solc_compile_all_events_mock @smartcontractkit/functions
/contracts/scripts/native_solc_compile_all_events_mock @smartcontractkit/dev-services
# Remove changeset files from the codeowners
/contracts/.changeset


# Tests
/integration-tests/ @smartcontractkit/test-tooling-team
/integration-tests/ccip-tests @smartcontractkit/ccip-offchain
/integration-tests/**/*keeper* @smartcontractkit/keepers
/integration-tests/**/*automation* @smartcontractkit/keepers
/integration-tests/**/*keeper* @smartcontractkit/dev-services
/integration-tests/**/*automation* @smartcontractkit/dev-services

# Deployment tooling
# Initially the common structures owned by CCIP
Expand All @@ -111,10 +111,10 @@ core/scripts/gateway @smartcontractkit/functions
/.github/** @smartcontractkit/releng @smartcontractkit/test-tooling-team
/.github/CODEOWNERS @smartcontractkit/prodsec-public @smartcontractkit/foundations
/.github/workflows/performance-tests.yml @smartcontractkit/test-tooling-team
/.github/workflows/automation-ondemand-tests.yml @smartcontractkit/keepers
/.github/workflows/automation-benchmark-tests.yml @smartcontractkit/keepers
/.github/workflows/automation-load-tests.yml @smartcontractkit/keepers
/.github/workflows/automation-nightly-tests.yml @smartcontractkit/keepers
/.github/workflows/automation-ondemand-tests.yml @smartcontractkit/dev-services
/.github/workflows/automation-benchmark-tests.yml @smartcontractkit/dev-services
/.github/workflows/automation-load-tests.yml @smartcontractkit/dev-services
/.github/workflows/automation-nightly-tests.yml @smartcontractkit/dev-services

/core/chainlink.Dockerfile @smartcontractkit/prodsec-public

Expand Down
24 changes: 24 additions & 0 deletions .github/workflows/llm-action-error-reporter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: LLM Action Error Reporter
on:
workflow_run:
workflows: ["CI Core"] # This workflow will be triggered as soon as one of worfklows is completed
types:
- completed

jobs:
analyze_logs:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
repository-projects: read
actions: read
steps:
- name: Analyze logs
uses: smartcontractkit/.github/actions/llm-action-error-reporter@5efdd03d4a3311e7a0954e5b3061dbb57596ca10 # v0.2.0
with:
parent-workflow-conclusion: ${{ github.event.workflow_run.conclusion }}
edit-comment: true
gh-token: ${{ secrets.GITHUB_TOKEN }}
openai-model: 'gpt-4-turbo-2024-04-09'
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -109,3 +109,5 @@ override*.toml
ocr_soak_report.csv

vendor/*

*.wasm
3 changes: 0 additions & 3 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,6 @@ linters-settings:
- (github.com/smartcontractkit/chainlink-common/pkg/logger.SugaredLogger).AssumptionViolationf
- (github.com/smartcontractkit/chainlink-common/pkg/logger.SugaredLogger).Tracef
- (github.com/smartcontractkit/chainlink-common/pkg/logger.SugaredLogger).Criticalf
errorlint:
# Allow formatting of errors without %w
errorf: false
revive:
confidence: 0.8
rules:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ contract LinkAvailableBalanceMonitor is AccessControl, AutomationCompatibleInter

bytes32 private constant ADMIN_ROLE = keccak256("ADMIN_ROLE");
bytes32 private constant EXECUTOR_ROLE = keccak256("EXECUTOR_ROLE");
uint96 private constant DEFAULT_TOP_UP_AMOUNT_JUELS = 9000000000000000000;
uint96 private constant DEFAULT_TOP_UP_AMOUNT_JUELS = 3000000000000000000;
uint96 private constant DEFAULT_MIN_BALANCE_JUELS = 1000000000000000000;
IERC20 private immutable i_linkToken;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/crypto"

"github.com/smartcontractkit/chainlink-common/pkg/utils/tests"

"github.com/stretchr/testify/assert"
Expand All @@ -19,7 +20,6 @@ import (

sel "github.com/smartcontractkit/chain-selectors"

"github.com/smartcontractkit/chainlink-ccip/execute/exectypes"
"github.com/smartcontractkit/chainlink-ccip/pkg/contractreader"
"github.com/smartcontractkit/chainlink-ccip/pkg/reader"
"github.com/smartcontractkit/chainlink-ccip/pluginconfig"
Expand Down Expand Up @@ -74,97 +74,97 @@ func Test_USDCReader_MessageHashes(t *testing.T) {

tt := []struct {
name string
tokens map[exectypes.MessageTokenID]cciptypes.RampTokenAmount
tokens map[reader.MessageTokenID]cciptypes.RampTokenAmount
sourceChain cciptypes.ChainSelector
destChain cciptypes.ChainSelector
expectedMsgIDs []exectypes.MessageTokenID
expectedMsgIDs []reader.MessageTokenID
}{
{
name: "empty messages should return empty response",
tokens: map[exectypes.MessageTokenID]cciptypes.RampTokenAmount{},
tokens: map[reader.MessageTokenID]cciptypes.RampTokenAmount{},
sourceChain: ethereumChain,
destChain: avalancheChain,
expectedMsgIDs: []exectypes.MessageTokenID{},
expectedMsgIDs: []reader.MessageTokenID{},
},
{
name: "single token message",
tokens: map[exectypes.MessageTokenID]cciptypes.RampTokenAmount{
exectypes.NewMessageTokenID(1, 1): {
tokens: map[reader.MessageTokenID]cciptypes.RampTokenAmount{
reader.NewMessageTokenID(1, 1): {
ExtraData: reader.NewSourceTokenDataPayload(11, ethereumDomainCCTP).ToBytes(),
},
},
sourceChain: ethereumChain,
destChain: avalancheChain,
expectedMsgIDs: []exectypes.MessageTokenID{exectypes.NewMessageTokenID(1, 1)},
expectedMsgIDs: []reader.MessageTokenID{reader.NewMessageTokenID(1, 1)},
},
{
name: "single token message but different chain",
tokens: map[exectypes.MessageTokenID]cciptypes.RampTokenAmount{
exectypes.NewMessageTokenID(1, 2): {
tokens: map[reader.MessageTokenID]cciptypes.RampTokenAmount{
reader.NewMessageTokenID(1, 2): {
ExtraData: reader.NewSourceTokenDataPayload(31, ethereumDomainCCTP).ToBytes(),
},
},
sourceChain: ethereumChain,
destChain: polygonChain,
expectedMsgIDs: []exectypes.MessageTokenID{exectypes.NewMessageTokenID(1, 2)},
expectedMsgIDs: []reader.MessageTokenID{reader.NewMessageTokenID(1, 2)},
},
{
name: "message without matching nonce",
tokens: map[exectypes.MessageTokenID]cciptypes.RampTokenAmount{
exectypes.NewMessageTokenID(1, 1): {
tokens: map[reader.MessageTokenID]cciptypes.RampTokenAmount{
reader.NewMessageTokenID(1, 1): {
ExtraData: reader.NewSourceTokenDataPayload(1234, ethereumDomainCCTP).ToBytes(),
},
},
sourceChain: ethereumChain,
destChain: avalancheChain,
expectedMsgIDs: []exectypes.MessageTokenID{},
expectedMsgIDs: []reader.MessageTokenID{},
},
{
name: "message without matching source domain",
tokens: map[exectypes.MessageTokenID]cciptypes.RampTokenAmount{
exectypes.NewMessageTokenID(1, 1): {
tokens: map[reader.MessageTokenID]cciptypes.RampTokenAmount{
reader.NewMessageTokenID(1, 1): {
ExtraData: reader.NewSourceTokenDataPayload(11, avalancheDomainCCTP).ToBytes(),
},
},
sourceChain: ethereumChain,
destChain: avalancheChain,
expectedMsgIDs: []exectypes.MessageTokenID{},
expectedMsgIDs: []reader.MessageTokenID{},
},
{
name: "message with multiple tokens",
tokens: map[exectypes.MessageTokenID]cciptypes.RampTokenAmount{
exectypes.NewMessageTokenID(1, 1): {
tokens: map[reader.MessageTokenID]cciptypes.RampTokenAmount{
reader.NewMessageTokenID(1, 1): {
ExtraData: reader.NewSourceTokenDataPayload(11, ethereumDomainCCTP).ToBytes(),
},
exectypes.NewMessageTokenID(1, 2): {
reader.NewMessageTokenID(1, 2): {
ExtraData: reader.NewSourceTokenDataPayload(21, ethereumDomainCCTP).ToBytes(),
},
},
sourceChain: ethereumChain,
destChain: avalancheChain,
expectedMsgIDs: []exectypes.MessageTokenID{
exectypes.NewMessageTokenID(1, 1),
exectypes.NewMessageTokenID(1, 2),
expectedMsgIDs: []reader.MessageTokenID{
reader.NewMessageTokenID(1, 1),
reader.NewMessageTokenID(1, 2),
},
},
{
name: "message with multiple tokens, one without matching nonce",
tokens: map[exectypes.MessageTokenID]cciptypes.RampTokenAmount{
exectypes.NewMessageTokenID(1, 1): {
tokens: map[reader.MessageTokenID]cciptypes.RampTokenAmount{
reader.NewMessageTokenID(1, 1): {
ExtraData: reader.NewSourceTokenDataPayload(11, ethereumDomainCCTP).ToBytes(),
},
exectypes.NewMessageTokenID(1, 2): {
reader.NewMessageTokenID(1, 2): {
ExtraData: reader.NewSourceTokenDataPayload(12, ethereumDomainCCTP).ToBytes(),
},
exectypes.NewMessageTokenID(1, 3): {
reader.NewMessageTokenID(1, 3): {
ExtraData: reader.NewSourceTokenDataPayload(31, ethereumDomainCCTP).ToBytes(),
},
},
sourceChain: ethereumChain,
destChain: avalancheChain,
expectedMsgIDs: []exectypes.MessageTokenID{
exectypes.NewMessageTokenID(1, 1),
exectypes.NewMessageTokenID(1, 3),
expectedMsgIDs: []reader.MessageTokenID{
reader.NewMessageTokenID(1, 1),
reader.NewMessageTokenID(1, 3),
},
},
}
Expand Down
Loading

0 comments on commit 9ccfb85

Please sign in to comment.