Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop' into cap-idempotent-writes
Browse files Browse the repository at this point in the history
  • Loading branch information
archseer committed May 29, 2024
2 parents fb4fa0d + 765a1e8 commit 641cd7a
Show file tree
Hide file tree
Showing 202 changed files with 4,506 additions and 1,370 deletions.
5 changes: 5 additions & 0 deletions .changeset/big-bats-grin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

Reducing the scope of 0233 migration to include only 5th word index which is required for CCIP #db_update
5 changes: 5 additions & 0 deletions .changeset/cool-readers-try.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#internal add modify DON function to capability registry
5 changes: 5 additions & 0 deletions .changeset/curvy-pandas-wonder.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#internal add getters in capability registry
5 changes: 5 additions & 0 deletions .changeset/fuzzy-bobcats-shave.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

#internal Added new Geth InsufficientEth client error for internal TXM classification
5 changes: 5 additions & 0 deletions .changeset/giant-hats-talk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#internal update ICapabilityConfiguration interface
5 changes: 5 additions & 0 deletions .changeset/metal-horses-count.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#internal implement remove DONs in capability registry
5 changes: 5 additions & 0 deletions .changeset/red-eagles-cry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

#added Added an auto-purge feature to the EVM TXM that identifies terminally stuck transactions either through a chain specific method or heurisitic then purges them to unblock the nonce. Included 4 new toml configs under Transactions.AutoPurge to configure this new feature: Enabled, Threshold, MinAttempts, and DetectionApiUrl.
5 changes: 5 additions & 0 deletions .changeset/thin-schools-own.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#internal track config count in DON struct
5 changes: 5 additions & 0 deletions .changeset/two-papayas-begin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#internal update node signer type
138 changes: 79 additions & 59 deletions .github/workflows/client-compatibility-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,39 @@ env:
jobs:
# Build Test Dependencies

check-ecr-images-exist:
environment: integration
permissions:
id-token: write
contents: read
name: Check images used as test dependencies exist in ECR
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
mirror:
- name: ethereum/client-go
expression: '^(alltools-v|v)[0-9]\.[0-9]+\.[0-9]+$'
- name: hyperledger/besu
expression: '^[0-9]+\.[0-9]+(\.[0-9]+)?$'
page_size: 300
- name: thorax/erigon
expression: '^v[0-9]+\.[0-9]+\.[0-9]+$'
- name: nethermind/nethermind
expression: '^[0-9]+\.[0-9]+\.[0-9]+$'
- name: tofelb/ethereum-genesis-generator
expression: '^[0-9]+\.[0-9]+\.[0-9]+(\-slots\-per\-epoch)?'
steps:
- name: Update internal ECR if the latest Ethereum client image does not exist
uses: smartcontractkit/chainlink-testing-framework/.github/actions/update-internal-mirrors@7eb04a030823b316d8dd5bb555f1e49593a503fc
with:
aws_region: ${{ secrets.QA_AWS_REGION }}
role_to_assume: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }}
aws_account_number: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}
image_name: ${{matrix.mirror.name}}
expression: ${{matrix.mirror.expression}}
page_size: ${{matrix.mirror.page_size}}

build-chainlink:
environment: integration
permissions:
Expand Down Expand Up @@ -46,39 +79,6 @@ jobs:
AWS_REGION: ${{ secrets.QA_AWS_REGION }}
AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }}

build-tests:
environment: integration
permissions:
id-token: write
contents: read
name: Build Tests Binary
runs-on: ubuntu-latest
steps:
- name: Collect Metrics
id: collect-gha-metrics
uses: smartcontractkit/push-gha-metrics-action@dea9b546553cb4ca936607c2267a09c004e4ab3f # v3.0.0
with:
id: client-compatablility-build-tests
org-id: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }}
basic-auth: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }}
hostname: ${{ secrets.GRAFANA_INTERNAL_HOST }}
this-job-name: Build Tests Binary
continue-on-error: true
- name: Checkout the repo
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
with:
ref: ${{ github.event.pull_request.head.sha || github.event.merge_group.head_sha }}
- name: Build Tests
uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-tests@b49a9d04744b0237908831730f8553f26d73a94b # v2.3.17
with:
test_download_vendor_packages_command: cd ./integration-tests && go mod download
token: ${{ secrets.GITHUB_TOKEN }}
go_mod_path: ./integration-tests/go.mod
go_tags: embed
cache_key_id: core-e2e-${{ env.MOD_CACHE_VERSION }}
cache_restore_only: "true"
binary_name: tests

# End Build Test Dependencies

client-compatibility-matrix:
Expand All @@ -88,7 +88,7 @@ jobs:
pull-requests: write
id-token: write
contents: read
needs: [build-chainlink, build-tests]
needs: [build-chainlink, check-ecr-images-exist]
env:
SELECTED_NETWORKS: SIMULATED,SIMULATED_1,SIMULATED_2
CHAINLINK_COMMIT_SHA: ${{ github.sha }}
Expand All @@ -111,13 +111,12 @@ jobs:
client: nethermind
timeout: 30m
pyroscope_env: ci-smoke-ocr-nethermind-simulated
# Will fail until https://github.com/hyperledger/besu/pull/6702 is merged and released
# - name: ocr-besu
# test: TestOCRBasic
# file: ocr
# client: besu
# timeout: 30m
# pyroscope_env: ci-smoke-ocr-besu-simulated
- name: ocr-besu
test: TestOCRBasic
file: ocr
client: besu
timeout: 30m
pyroscope_env: ci-smoke-ocr-besu-simulated
- name: ocr-erigon
test: TestOCRBasic
file: ocr
Expand All @@ -136,13 +135,12 @@ jobs:
client: nethermind
timeout: 30m
pyroscope_env: ci-smoke-nethermind-evm-simulated
# Will fail until https://github.com/hyperledger/besu/pull/6702 is merged and released
# - name: ocr2-besu
# test: "^TestOCRv2Basic/plugins$"
# file: ocr2
# client: besu
# timeout: 30m
# pyroscope_env: ci-smoke-ocr2-besu-simulated
- name: ocr2-besu
test: "^TestOCRv2Basic/plugins$"
file: ocr2
client: besu
timeout: 30m
pyroscope_env: ci-smoke-ocr2-besu-simulated
- name: ocr2-erigon
test: "^TestOCRv2Basic/plugins$"
file: ocr2
Expand All @@ -152,12 +150,14 @@ jobs:
runs-on: ubuntu-latest
name: Client Compatibility Test ${{ matrix.name }}
steps:
- name: Download Tests Binary
uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
- name: Checkout the repo
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
with:
name: tests
repository: smartcontractkit/chainlink
ref: ${{ github.sha }}
- name: Prepare Base64 TOML config
env:
RUN_ID: ${{ github.run_id }}
SELECTED_NETWORKS: SIMULATED,SIMULATED_1,SIMULATED_2
PYROSCOPE_SERVER: ${{ secrets.QA_PYROSCOPE_INSTANCE }}
PYROSCOPE_ENVIRONMENT: ci-client-compatability-${{ matrix.client }}-testnet
Expand All @@ -167,6 +167,9 @@ jobs:
GRAFANA_URL: "http://localhost:8080/primary"
GRAFANA_DASHBOARD_URL: "/d/ddf75041-1e39-42af-aa46-361fe4c36e9e/ci-e2e-tests-logs"
GRAFANA_BEARER_TOKEN: ${{ secrets.GRAFANA_INTERNAL_URL_SHORTENER_TOKEN }}
LOKI_ENDPOINT: https://${{ secrets.GRAFANA_INTERNAL_HOST }}/loki/api/v1/push
LOKI_TENANT_ID: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }}
LOKI_BASIC_AUTH: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }}
run: |
convert_to_toml_array() {
local IFS=','
Expand Down Expand Up @@ -214,6 +217,17 @@ jobs:
environment="$PYROSCOPE_ENVIRONMENT"
key_secret="$PYROSCOPE_KEY"
[Logging]
run_id="$RUN_ID"
[Logging.LogStream]
log_targets=["file","loki"]
[Logging.Loki]
tenant_id="$LOKI_TENANT_ID"
endpoint="$LOKI_ENDPOINT"
basic_auth_secret="$LOKI_BASIC_AUTH"

[Logging.Grafana]
base_url="$GRAFANA_URL"
dashboard_url="$GRAFANA_DASHBOARD_URL"
Expand All @@ -239,22 +253,28 @@ jobs:
echo "BASE64_CONFIG_OVERRIDE=$BASE64_CONFIG_OVERRIDE" >> $GITHUB_ENV
touch .root_dir
- name: Run Tests
uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests-binary@b49a9d04744b0237908831730f8553f26d73a94b # v2.3.17
uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@b49a9d04744b0237908831730f8553f26d73a94b # v2.3.17
with:
test_command_to_run: ./tests -test.timeout ${{ matrix.timeout }} -test.run ${{ matrix.test }}
binary_name: tests
test_command_to_run: cd ./integration-tests/smoke && go test -timeout ${{ matrix.timeout }} -count=1 -json -test.run ${{ matrix.test }} 2>&1 | tee /tmp/gotest.log | gotestloghelper -ci -singlepackage
test_download_vendor_packages_command: cd ./integration-tests && go mod download
cl_repo: ${{ env.CHAINLINK_IMAGE }}
cl_image_tag: ${{ github.sha }}
aws_registries: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}
dockerhub_username: ${{ secrets.DOCKERHUB_READONLY_USERNAME }}
dockerhub_password: ${{ secrets.DOCKERHUB_READONLY_PASSWORD }}
artifacts_location: ./logs
artifacts_name: ${{ matrix.name }}-test-logs
artifacts_location: |
./integration-tests/smoke/logs/
/tmp/gotest.log
publish_check_name: ${{ matrix.name }}
token: ${{ secrets.GITHUB_TOKEN }}
go_mod_path: ./integration-tests/go.mod
cache_key_id: core-e2e-${{ env.MOD_CACHE_VERSION }}
cache_restore_only: "true"
QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }}
QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }}
QA_KUBECONFIG: ${{ secrets.QA_KUBECONFIG }}
QA_KUBECONFIG: ""
should_tidy: "false"
go_coverage_src_dir: /var/tmp/go-coverage
go_coverage_dest_dir: ${{ github.workspace }}/.covdata
- name: Print failed test summary
if: always()
uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/show-test-summary@b49a9d04744b0237908831730f8553f26d73a94b # v2.3.17
Expand Down Expand Up @@ -348,4 +368,4 @@ jobs:
message_title: ${{ matrix.product }}
slack_channel_id: ${{ secrets.QA_SLACK_CHANNEL }}
slack_bot_token: ${{ secrets.QA_SLACK_API_KEY }}
slack_thread_ts: ${{ needs.start-slack-thread.outputs.thread_ts }}
slack_thread_ts: ${{ needs.start-slack-thread.outputs.thread_ts }}
27 changes: 23 additions & 4 deletions .github/workflows/evm-version-compatibility-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ env:
MOD_CACHE_VERSION: 2

jobs:

# Check if go.mod has changed
check-dependency-bump:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -55,11 +54,31 @@ jobs:
echo "dependency_changed=false" >> $GITHUB_OUTPUT
fi
# Check if images used as test dependencies exist in the ECR
check-ecr-images-exist:
if: needs.check-dependency-bump.outputs.dependency_changed == 'true' || github.event_name == 'workflow_dispatch'
needs: [check-dependency-bump]
environment: integration
permissions:
id-token: write
contents: read
name: Check images used as test dependencies exist in ECR
runs-on: ubuntu-latest
steps:
- name: Update internal ECR if the latest Ethereum client image does not exist
uses: smartcontractkit/chainlink-testing-framework/.github/actions/update-internal-mirrors@7eb04a030823b316d8dd5bb555f1e49593a503fc
with:
aws_region: ${{ secrets.QA_AWS_REGION }}
role_to_assume: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }}
aws_account_number: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}
image_name: 'ethereum/client-go'
expression: '^(alltools-v|v)[0-9]\.[0-9]+\.[0-9]+$'

# Build Test Dependencies

build-chainlink:
if: needs.check-dependency-bump.outputs.dependency_changed == 'true' || github.event_name == 'workflow_dispatch'
needs: [check-dependency-bump]
needs: [check-dependency-bump, check-ecr-images-exist]
environment: integration
permissions:
id-token: write
Expand Down Expand Up @@ -92,7 +111,7 @@ jobs:

build-tests:
if: needs.check-dependency-bump.outputs.dependency_changed == 'true' || github.event_name == 'workflow_dispatch'
needs: [check-dependency-bump]
needs: [check-dependency-bump, check-ecr-images-exist]
environment: integration
permissions:
id-token: write
Expand Down Expand Up @@ -127,7 +146,7 @@ jobs:

build-test-matrix:
if: needs.check-dependency-bump.outputs.dependency_changed == 'true' || github.event_name == 'workflow_dispatch'
needs: [check-dependency-bump]
needs: [check-dependency-bump, check-ecr-images-exist]
runs-on: ubuntu-latest
name: Build Test Matrix
outputs:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ jobs:
- '**/*go.mod'
- '.github/workflows/integration-tests.yml'
- '**/*Dockerfile'
- 'core/**/migrations/*.sql'
- 'core/**/config/**/*.toml'
- 'integration-tests/**/*.toml'
- name: Ignore Filter On Workflow Dispatch
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/solidity-foundry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- '.github/workflows/solidity-foundry.yml'
- 'contracts/foundry.toml'
- 'contracts/gas-snapshots/*.gas-snapshot'
- 'contracts/foundry-lib'
- 'contracts/foundry-lib/**/*'
- '.gitmodules'
tests:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/solidity-wrappers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ concurrency:

jobs:
changes:
# We don't directly merge dependabot PRs, so let's not waste the resources
if: ${{ github.actor != 'dependabot[bot]' }}
name: Detect changes
runs-on: ubuntu-latest
outputs:
Expand Down
6 changes: 5 additions & 1 deletion common/config/chaintype.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ const (
ChainScroll ChainType = "scroll"
ChainWeMix ChainType = "wemix"
ChainXLayer ChainType = "xlayer"
ChainZkEvm ChainType = "zkevm"
ChainZkSync ChainType = "zksync"
)

Expand All @@ -34,7 +35,7 @@ func (c ChainType) IsL2() bool {

func (c ChainType) IsValid() bool {
switch c {
case "", ChainArbitrum, ChainCelo, ChainGnosis, ChainKroma, ChainMetis, ChainOptimismBedrock, ChainScroll, ChainWeMix, ChainXLayer, ChainZkSync:
case "", ChainArbitrum, ChainCelo, ChainGnosis, ChainKroma, ChainMetis, ChainOptimismBedrock, ChainScroll, ChainWeMix, ChainXLayer, ChainZkEvm, ChainZkSync:
return true
}
return false
Expand All @@ -60,6 +61,8 @@ func ChainTypeFromSlug(slug string) ChainType {
return ChainWeMix
case "xlayer":
return ChainXLayer
case "zkevm":
return ChainZkEvm
case "zksync":
return ChainZkSync
default:
Expand Down Expand Up @@ -123,5 +126,6 @@ var ErrInvalidChainType = fmt.Errorf("must be one of %s or omitted", strings.Joi
string(ChainScroll),
string(ChainWeMix),
string(ChainXLayer),
string(ChainZkEvm),
string(ChainZkSync),
}, ", "))
Loading

0 comments on commit 641cd7a

Please sign in to comment.