From 7e01f4a5e685d4537d9e81280b12bec7b44e0dc5 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 6 Jun 2023 08:03:28 +0200 Subject: [PATCH 01/41] Added metrics to smoke --- .github/workflows/e2e_custom_cl.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 05c312bc6..c2fe35a82 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -148,6 +148,15 @@ jobs: TEST_LOG_LEVEL: debug SELECTED_NETWORKS: SIMULATED steps: + - name: Collect Metrics + if: always() + id: collect-gha-metrics + uses: smartcontractkit/push-gha-metrics-action@8163dcea2f01a0a8fec84b284406ff7af1d2e1c0 + with: + basic-auth: ${{ secrets.GRAFANA_CLOUD_BASIC_AUTH }} + hostname: ${{ secrets.GRAFANA_CLOUD_HOST }} + this-job-name: Run Smoke Tests + continue-on-error: true - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Run Tests From 9d841445084d42b499aaf8adfc68dfd3d0c5d7b8 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 6 Jun 2023 08:35:21 +0200 Subject: [PATCH 02/41] Changed job name --- .github/workflows/e2e_custom_cl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index c2fe35a82..830f1f69b 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -155,7 +155,7 @@ jobs: with: basic-auth: ${{ secrets.GRAFANA_CLOUD_BASIC_AUTH }} hostname: ${{ secrets.GRAFANA_CLOUD_HOST }} - this-job-name: Run Smoke Tests + this-job-name: E2E Custom Run Smoke Tests continue-on-error: true - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 From 64c2e7aec3a255d282e2c6d9f1eecc402e9b2a21 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 11:41:25 +0200 Subject: [PATCH 03/41] Added scheduled job for the smoke --- .github/workflows/e2e_custom_cl.yml | 5 +++-- integration-tests/gauntlet/gauntlet_solana.go | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 integration-tests/gauntlet/gauntlet_solana.go diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 830f1f69b..f81e851af 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -8,7 +8,8 @@ on: required: true default: develop type: string - +schedule: + - cron: '0 11 45 * *' env: CL_ECR: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink ENV_JOB_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink-solana-tests:${{ github.sha }} @@ -131,7 +132,7 @@ jobs: QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} e2e_custom_run_smoke_tests: - name: E2E Custom Run Smoke Tests + name: ${{ github.event_name == 'schedule' ? 'Scheduled E2E Custom Run Smoke Tests' : 'E2E Custom Run Smoke Tests' }} environment: integration permissions: checks: write diff --git a/integration-tests/gauntlet/gauntlet_solana.go b/integration-tests/gauntlet/gauntlet_solana.go new file mode 100644 index 000000000..ef6b669c9 --- /dev/null +++ b/integration-tests/gauntlet/gauntlet_solana.go @@ -0,0 +1 @@ +package gauntlet From cbc3fe933527b22ec961c79ac833ea81dd1738d7 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 11:47:00 +0200 Subject: [PATCH 04/41] Fixed yaml lint issue --- .github/workflows/e2e_custom_cl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index f81e851af..742171f92 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -132,7 +132,7 @@ jobs: QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} e2e_custom_run_smoke_tests: - name: ${{ github.event_name == 'schedule' ? 'Scheduled E2E Custom Run Smoke Tests' : 'E2E Custom Run Smoke Tests' }} + name: ${{ github.event_name == 'schedule' ? 'Scheduled E2E Custom Run Smoke Tests':'E2E Custom Run Smoke Tests' }} environment: integration permissions: checks: write From 7436265a77bba0dd674cfdee3cc9ba94e267e873 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 11:52:49 +0200 Subject: [PATCH 05/41] Added additional job to change name if run is scheduled --- .github/workflows/e2e_custom_cl.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 742171f92..3fd617d1c 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -9,7 +9,7 @@ on: default: develop type: string schedule: - - cron: '0 11 45 * *' + - cron: '0 20 * * *' env: CL_ECR: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink ENV_JOB_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink-solana-tests:${{ github.sha }} @@ -131,8 +131,21 @@ jobs: QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} + setup_job_name: + runs-on: ubuntu-latest + outputs: + job_name: ${{ steps.set_job_name.outputs.job_name }} + steps: + - name: Set job name + id: set_job_name + run: | + if [[ "${{ github.event_name }}" == "schedule" ]]; then + echo "::set-output name=job_name::Scheduled E2E Custom Run Smoke Tests" + else + echo "::set-output name=job_name::E2E Custom Run Smoke Tests" + fi e2e_custom_run_smoke_tests: - name: ${{ github.event_name == 'schedule' ? 'Scheduled E2E Custom Run Smoke Tests':'E2E Custom Run Smoke Tests' }} + name: ${{ needs.setup.outputs.job_name }} environment: integration permissions: checks: write @@ -140,7 +153,7 @@ jobs: id-token: write contents: read runs-on: ubuntu-latest - needs: [e2e_custom_build_artifacts, e2e_custom_build_custom_chainlink_image, build_test_image] + needs: [setup, e2e_custom_build_artifacts, e2e_custom_build_custom_chainlink_image, build_test_image] env: TEST_SUITE: smoke TEST_ARGS: -test.timeout 30m From bea179a8dcf17e19d60bc69c3aee43da1e1777b8 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 11:53:09 +0200 Subject: [PATCH 06/41] Added additional job to change name if run is scheduled --- .github/workflows/e2e_custom_cl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 3fd617d1c..645336b56 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -9,7 +9,7 @@ on: default: develop type: string schedule: - - cron: '0 20 * * *' + - cron: '0 12 * * *' env: CL_ECR: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink ENV_JOB_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink-solana-tests:${{ github.sha }} From ccb4b46649c543299d5ca2a08fa2061b817f022d Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 11:55:52 +0200 Subject: [PATCH 07/41] Added additional job to change name if run is scheduled --- .github/workflows/e2e_custom_cl.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 645336b56..b227d34aa 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -8,8 +8,8 @@ on: required: true default: develop type: string -schedule: - - cron: '0 12 * * *' + schedule: + - cron: '0 12 * * *' env: CL_ECR: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink ENV_JOB_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink-solana-tests:${{ github.sha }} From 597668b41d2e378de1c954c1a8b31164156c3564 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 11:59:03 +0200 Subject: [PATCH 08/41] Added additional job to change name if run is scheduled --- .github/workflows/e2e_custom_cl.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index b227d34aa..de40952fb 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -131,7 +131,7 @@ jobs: QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} - setup_job_name: + setup: runs-on: ubuntu-latest outputs: job_name: ${{ steps.set_job_name.outputs.job_name }} @@ -140,10 +140,11 @@ jobs: id: set_job_name run: | if [[ "${{ github.event_name }}" == "schedule" ]]; then - echo "::set-output name=job_name::Scheduled E2E Custom Run Smoke Tests" + echo "job_name=Scheduled E2E Custom Run Smoke Tests" >> $GITHUB_ENV else - echo "::set-output name=job_name::E2E Custom Run Smoke Tests" + echo "job_name=E2E Custom Run Smoke Tests" >> $GITHUB_ENV fi + e2e_custom_run_smoke_tests: name: ${{ needs.setup.outputs.job_name }} environment: integration From 0154195b1033a89d97fecd5095a86882a233ebbb Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 12:02:21 +0200 Subject: [PATCH 09/41] Added additional job to change name if run is scheduled --- .github/workflows/e2e_custom_cl.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index de40952fb..db13399dd 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -140,9 +140,9 @@ jobs: id: set_job_name run: | if [[ "${{ github.event_name }}" == "schedule" ]]; then - echo "job_name=Scheduled E2E Custom Run Smoke Tests" >> $GITHUB_ENV + echo "job_name='Simulated E2E Custom Run Smoke Tests'" >> $GITHUB_ENV else - echo "job_name=E2E Custom Run Smoke Tests" >> $GITHUB_ENV + echo "job_name='E2E Custom Run Smoke Tests'" >> $GITHUB_ENV fi e2e_custom_run_smoke_tests: From 7624beb2b3608850dfb3cc9fec5461605816c7e4 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 12:04:05 +0200 Subject: [PATCH 10/41] Added additional job to change name if run is scheduled --- .github/workflows/e2e_custom_cl.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index db13399dd..5aadec048 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -140,9 +140,9 @@ jobs: id: set_job_name run: | if [[ "${{ github.event_name }}" == "schedule" ]]; then - echo "job_name='Simulated E2E Custom Run Smoke Tests'" >> $GITHUB_ENV + echo "job_name=\"Simulated E2E Custom Run Smoke Tests\"" >> $GITHUB_ENV else - echo "job_name='E2E Custom Run Smoke Tests'" >> $GITHUB_ENV + echo "job_name=\"E2E Custom Run Smoke Tests\"" >> $GITHUB_ENV fi e2e_custom_run_smoke_tests: From 86d3e402d683130f887215376ff556655279405b Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 12:06:49 +0200 Subject: [PATCH 11/41] Added additional job to change name if run is scheduled --- .github/workflows/e2e_custom_cl.yml | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 5aadec048..a1645fd2c 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -131,19 +131,20 @@ jobs: QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} - setup: - runs-on: ubuntu-latest - outputs: - job_name: ${{ steps.set_job_name.outputs.job_name }} - steps: - - name: Set job name - id: set_job_name - run: | - if [[ "${{ github.event_name }}" == "schedule" ]]; then - echo "job_name=\"Simulated E2E Custom Run Smoke Tests\"" >> $GITHUB_ENV - else - echo "job_name=\"E2E Custom Run Smoke Tests\"" >> $GITHUB_ENV - fi + jobs: + setup: + runs-on: ubuntu-latest + outputs: + job_name: ${{ steps.set_job_name.outputs.job_name }} + steps: + - name: Set job name + id: set_job_name + run: | + if [[ "${{ github.event_name }}" == "schedule" ]]; then + echo "job_name='Simulated E2E Custom Run Smoke Tests'" >> $GITHUB_ENV + else + echo "job_name='E2E Custom Run Smoke Tests'" >> $GITHUB_ENV + fi e2e_custom_run_smoke_tests: name: ${{ needs.setup.outputs.job_name }} From c83d5d5de13f59a294428127f06608ff74955d54 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 12:09:59 +0200 Subject: [PATCH 12/41] Added additional job to change name if run is scheduled --- .github/workflows/e2e_custom_cl.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index a1645fd2c..135d92616 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -131,20 +131,20 @@ jobs: QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} - jobs: - setup: - runs-on: ubuntu-latest - outputs: - job_name: ${{ steps.set_job_name.outputs.job_name }} - steps: - - name: Set job name - id: set_job_name - run: | - if [[ "${{ github.event_name }}" == "schedule" ]]; then - echo "job_name='Simulated E2E Custom Run Smoke Tests'" >> $GITHUB_ENV - else - echo "job_name='E2E Custom Run Smoke Tests'" >> $GITHUB_ENV - fi + + setup: + runs-on: ubuntu-latest + outputs: + job_name: ${{ steps.set_job_name.outputs.job_name }} + steps: + - name: Set job name + id: set_job_name + run: | + if [[ "${{ github.event_name }}" == "schedule" ]]; then + echo "job_name='Simulated E2E Custom Run Smoke Tests'" >> $GITHUB_ENV + else + echo "job_name='E2E Custom Run Smoke Tests'" >> $GITHUB_ENV + fi e2e_custom_run_smoke_tests: name: ${{ needs.setup.outputs.job_name }} From 59855e23285d304ccdf4a6573b5436ab09e0aaf3 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 12:43:07 +0200 Subject: [PATCH 13/41] Added additional job to change name if run is scheduled --- .github/workflows/e2e_custom_cl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 135d92616..25288bf5c 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -171,7 +171,7 @@ jobs: with: basic-auth: ${{ secrets.GRAFANA_CLOUD_BASIC_AUTH }} hostname: ${{ secrets.GRAFANA_CLOUD_HOST }} - this-job-name: E2E Custom Run Smoke Tests + this-job-name: ${{ needs.setup.outputs.job_name }} continue-on-error: true - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 From 3e14364e8f4449171c035521fc4ec15557ec9c40 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 27 Jun 2023 13:10:34 +0200 Subject: [PATCH 14/41] Changed cron to every hour to test --- .github/workflows/e2e_custom_cl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 25288bf5c..7b8522a14 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -9,7 +9,7 @@ on: default: develop type: string schedule: - - cron: '0 12 * * *' + - cron: '0 * * * *' env: CL_ECR: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink ENV_JOB_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink-solana-tests:${{ github.sha }} From cdba9acd68b2a958900ee608dc83abb6760ba2ca Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Wed, 28 Jun 2023 08:04:33 +0200 Subject: [PATCH 15/41] Testing dynamic job name --- .github/workflows/e2e_custom_cl.yml | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 7b8522a14..b01f8d3e6 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -131,23 +131,8 @@ jobs: QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} - - setup: - runs-on: ubuntu-latest - outputs: - job_name: ${{ steps.set_job_name.outputs.job_name }} - steps: - - name: Set job name - id: set_job_name - run: | - if [[ "${{ github.event_name }}" == "schedule" ]]; then - echo "job_name='Simulated E2E Custom Run Smoke Tests'" >> $GITHUB_ENV - else - echo "job_name='E2E Custom Run Smoke Tests'" >> $GITHUB_ENV - fi - e2e_custom_run_smoke_tests: - name: ${{ needs.setup.outputs.job_name }} + name: E2E Custom Run Smoke Tests environment: integration permissions: checks: write @@ -155,7 +140,8 @@ jobs: id-token: write contents: read runs-on: ubuntu-latest - needs: [setup, e2e_custom_build_artifacts, e2e_custom_build_custom_chainlink_image, build_test_image] + + needs: [e2e_custom_build_artifacts, e2e_custom_build_custom_chainlink_image, build_test_image] env: TEST_SUITE: smoke TEST_ARGS: -test.timeout 30m @@ -164,6 +150,13 @@ jobs: TEST_LOG_LEVEL: debug SELECTED_NETWORKS: SIMULATED steps: + - name: Display dynamic job name + run: | + if [[ "${{ github.event_name }}" == "schedule" ]]; then + echo "Running job: Scheduled E2E Custom Run Smoke Tests" + else + echo "Running job: E2E Custom Run Smoke Tests" + fi - name: Collect Metrics if: always() id: collect-gha-metrics From 8b6e2bf7a610b4c899ccf9e90fa64f83d7c76c51 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Wed, 28 Jun 2023 08:21:24 +0200 Subject: [PATCH 16/41] Testing dynamic job name --- .github/workflows/e2e_custom_cl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index b01f8d3e6..c0fad35e5 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -132,7 +132,7 @@ jobs: QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} e2e_custom_run_smoke_tests: - name: E2E Custom Run Smoke Tests + name: E2E Run Smoke Tests environment: integration permissions: checks: write From a5c41b1031b2af8ee6e81e3a91e284c33e2f8607 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Wed, 28 Jun 2023 08:32:59 +0200 Subject: [PATCH 17/41] Checking CI --- .github/workflows/e2e_custom_cl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index c0fad35e5..004426f1c 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -164,7 +164,7 @@ jobs: with: basic-auth: ${{ secrets.GRAFANA_CLOUD_BASIC_AUTH }} hostname: ${{ secrets.GRAFANA_CLOUD_HOST }} - this-job-name: ${{ needs.setup.outputs.job_name }} + this-job-name: E2E Run Smoke Tests continue-on-error: true - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 From 3c0dbcdc22ed6a7e2d803c8bf6c5c87f0527ba6d Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Wed, 28 Jun 2023 14:26:33 +0200 Subject: [PATCH 18/41] Bumped actions --- .github/workflows/e2e_custom_cl.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 004426f1c..9f5987b1b 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -48,7 +48,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 with: repository: chainlink-solana-tests tag: ${{ github.sha }} @@ -85,7 +85,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 with: repository: chainlink tag: solana.${{ github.sha }} @@ -93,7 +93,7 @@ jobs: AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} - name: Build Image if: steps.check-image.outputs.exists == 'false' - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@cosmos_one_off # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@5fd3084fc36e372ff1fff382a39b10d03659f355 # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 with: cl_repo: smartcontractkit/chainlink cl_ref: ${{ github.event.inputs.cl_branch_ref }} @@ -169,7 +169,7 @@ jobs: - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Run Tests - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 with: test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt go_mod_path: ./integration-tests/go.mod From f2370118cea8f63a07d3b4a4c5e41873ef4d7a39 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Wed, 28 Jun 2023 14:30:09 +0200 Subject: [PATCH 19/41] Bumped actions --- .github/workflows/e2e_custom_cl.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 9f5987b1b..88500199d 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -48,7 +48,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 with: repository: chainlink-solana-tests tag: ${{ github.sha }} @@ -85,7 +85,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 with: repository: chainlink tag: solana.${{ github.sha }} @@ -93,7 +93,7 @@ jobs: AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} - name: Build Image if: steps.check-image.outputs.exists == 'false' - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@5fd3084fc36e372ff1fff382a39b10d03659f355 # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 with: cl_repo: smartcontractkit/chainlink cl_ref: ${{ github.event.inputs.cl_branch_ref }} @@ -169,7 +169,7 @@ jobs: - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Run Tests - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 with: test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt go_mod_path: ./integration-tests/go.mod From bf6d2863a008940b078e96c0b59410d642945786 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Thu, 29 Jun 2023 07:52:55 +0200 Subject: [PATCH 20/41] Checking CI --- .github/workflows/e2e_custom_cl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 88500199d..f7893ea57 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -180,4 +180,4 @@ jobs: QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} QA_KUBECONFIG: ${{ secrets.QA_KUBECONFIG }} - should_cleanup: false + should_cleanup: false \ No newline at end of file From 9799a95ea2dc1ee8e760d48ee798f28c0068980f Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Mon, 10 Jul 2023 08:34:46 +0200 Subject: [PATCH 21/41] Testing CI --- .github/workflows/e2e_custom_cl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index f7893ea57..2497415c4 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -93,7 +93,7 @@ jobs: AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} - name: Build Image if: steps.check-image.outputs.exists == 'false' - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@d5ab9fe53da374dd789b5d9ef10f3282197e088d # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 with: cl_repo: smartcontractkit/chainlink cl_ref: ${{ github.event.inputs.cl_branch_ref }} From b174726bce2e81d9e1d07dd703a7137f758d7a85 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Wed, 19 Jul 2023 08:58:38 +0200 Subject: [PATCH 22/41] Rebase --- .gitignore | 1 + .../localnet/access_controller-keypair.json | 2 +- .../localnet/access_controller-keypair.pub | 2 +- .../artifacts/localnet/ocr2-keypair.json | 2 +- contracts/artifacts/localnet/ocr2-keypair.pub | 2 +- .../artifacts/localnet/store-keypair.json | 2 +- .../artifacts/localnet/store-keypair.pub | 2 +- .../programs/access-controller/src/lib.rs | 2 +- contracts/programs/ocr2/src/lib.rs | 2 +- contracts/programs/store/src/lib.rs | 2 +- .../networks/.env.devnet | 6 +- .../ocr2/inspection/inspectResponses.ts | 21 +- integration-tests/common/common.go | 50 +- integration-tests/common/test_common.go | 237 ++++++++- integration-tests/gauntlet/gauntlet_solana.go | 489 ++++++++++++++++++ integration-tests/go.mod | 1 + integration-tests/smoke/ocr2_test.go | 157 +++++- integration-tests/soak/ocr2_soak_test.go | 2 +- scripts/lib.sh | 10 +- scripts/programs-keys-gen.sh | 6 +- 20 files changed, 953 insertions(+), 45 deletions(-) diff --git a/.gitignore b/.gitignore index f7253973f..5354b62c1 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ tests/e2e/smoke/logs tests/e2e/smoke/contracts-chaos-state.json tmp-manifest-* tests-smoke-report.xml +.env.test* diff --git a/contracts/artifacts/localnet/access_controller-keypair.json b/contracts/artifacts/localnet/access_controller-keypair.json index 46551c533..f30f408eb 100644 --- a/contracts/artifacts/localnet/access_controller-keypair.json +++ b/contracts/artifacts/localnet/access_controller-keypair.json @@ -1 +1 @@ -[88,83,177,128,199,1,114,89,250,247,46,18,107,162,26,125,19,233,229,58,251,38,17,221,10,202,45,185,250,64,243,39,24,4,109,145,171,35,102,148,236,12,238,74,222,116,201,243,109,158,98,122,7,32,21,13,158,190,72,124,157,104,243,12] \ No newline at end of file +[76,70,87,251,132,192,249,37,211,14,64,138,123,157,67,141,21,91,254,135,15,92,31,128,175,8,219,92,171,165,185,183,63,120,90,114,57,160,88,241,225,90,224,15,109,133,181,138,161,247,250,74,62,231,236,114,163,56,253,193,245,54,133,38] \ No newline at end of file diff --git a/contracts/artifacts/localnet/access_controller-keypair.pub b/contracts/artifacts/localnet/access_controller-keypair.pub index 1369067ce..9079a7e3b 100644 --- a/contracts/artifacts/localnet/access_controller-keypair.pub +++ b/contracts/artifacts/localnet/access_controller-keypair.pub @@ -1 +1 @@ -2ckhep7Mvy1dExenBqpcdevhRu7CLuuctMcx7G9mWEvo +5Gm8JySC3RzGonihF1hj1kZkjHyyW7qxJNvyzq1ieAY5 diff --git a/contracts/artifacts/localnet/ocr2-keypair.json b/contracts/artifacts/localnet/ocr2-keypair.json index fac327378..2408b0650 100644 --- a/contracts/artifacts/localnet/ocr2-keypair.json +++ b/contracts/artifacts/localnet/ocr2-keypair.json @@ -1 +1 @@ -[9,218,36,113,218,176,180,196,27,75,171,187,105,81,84,58,52,79,85,169,125,13,0,102,214,246,82,252,133,222,160,252,193,218,154,28,253,34,136,185,53,68,165,141,248,188,247,143,17,100,91,130,75,49,212,131,37,18,151,175,201,153,131,185] \ No newline at end of file +[147,156,90,33,172,253,32,40,142,95,165,27,216,156,10,128,72,6,229,255,104,31,98,168,73,90,39,104,165,203,211,84,132,118,199,245,159,246,74,198,107,52,202,251,246,140,133,15,19,176,2,184,11,151,23,172,232,85,166,253,164,118,91,48] \ No newline at end of file diff --git a/contracts/artifacts/localnet/ocr2-keypair.pub b/contracts/artifacts/localnet/ocr2-keypair.pub index 769708e12..9f50c0617 100644 --- a/contracts/artifacts/localnet/ocr2-keypair.pub +++ b/contracts/artifacts/localnet/ocr2-keypair.pub @@ -1 +1 @@ -E3j24rx12SyVsG6quKuZPbQqZPkhAUCh8Uek4XrKYD2x +9v5sGbNhyTM23yVvczzPbk5NtCqrARQpZjuzebBur43h diff --git a/contracts/artifacts/localnet/store-keypair.json b/contracts/artifacts/localnet/store-keypair.json index 72782ced4..a540dd9b2 100644 --- a/contracts/artifacts/localnet/store-keypair.json +++ b/contracts/artifacts/localnet/store-keypair.json @@ -1 +1 @@ -[189,212,127,119,126,129,229,12,201,157,100,223,53,182,209,144,82,137,39,42,199,212,116,181,52,188,127,6,123,161,148,74,129,253,6,129,56,138,171,117,217,146,177,54,182,120,125,247,100,54,203,214,204,177,0,83,158,177,77,195,0,245,49,223] \ No newline at end of file +[30,72,16,94,28,30,190,184,210,18,22,97,115,213,52,14,152,142,137,21,86,150,183,172,161,106,37,110,215,87,49,232,139,79,75,93,190,229,125,33,186,3,117,59,155,239,31,42,172,253,255,242,81,180,243,88,210,14,164,205,236,26,23,178] \ No newline at end of file diff --git a/contracts/artifacts/localnet/store-keypair.pub b/contracts/artifacts/localnet/store-keypair.pub index d2c203967..4851d4279 100644 --- a/contracts/artifacts/localnet/store-keypair.pub +++ b/contracts/artifacts/localnet/store-keypair.pub @@ -1 +1 @@ -9kRNTZmoZSiTBuXC62dzK9E7gC7huYgcmRRhYv3i4osC +ANooJg7j9UxgJ2DNuLqUJs5h956qzc5LdPLFFtQdDb8M diff --git a/contracts/programs/access-controller/src/lib.rs b/contracts/programs/access-controller/src/lib.rs index c02bd37ca..f997a4882 100644 --- a/contracts/programs/access-controller/src/lib.rs +++ b/contracts/programs/access-controller/src/lib.rs @@ -4,7 +4,7 @@ use std::mem; use arrayvec::arrayvec; -declare_id!("9xi644bRR8birboDGdTiwBq3C7VEeR7VuamRYYXCubUW"); +declare_id!("5Gm8JySC3RzGonihF1hj1kZkjHyyW7qxJNvyzq1ieAY5"); #[constant] pub const MAX_ADDRS: usize = 64; diff --git a/contracts/programs/ocr2/src/lib.rs b/contracts/programs/ocr2/src/lib.rs index 0b70af0eb..40dea7938 100644 --- a/contracts/programs/ocr2/src/lib.rs +++ b/contracts/programs/ocr2/src/lib.rs @@ -4,7 +4,7 @@ use anchor_spl::token; use arrayref::{array_ref, array_refs}; use state::{Billing, Proposal, ProposedOracle, STATE_VERSION}; -declare_id!("cjg3oHmg9uuPsP8D6g29NWvhySJkdYdAo9D25PRbKXJ"); +declare_id!("9v5sGbNhyTM23yVvczzPbk5NtCqrARQpZjuzebBur43h"); mod context; pub mod event; diff --git a/contracts/programs/store/src/lib.rs b/contracts/programs/store/src/lib.rs index 749611caf..a81d3b2ec 100644 --- a/contracts/programs/store/src/lib.rs +++ b/contracts/programs/store/src/lib.rs @@ -7,7 +7,7 @@ mod state; use crate::state::with_store; pub use crate::state::{NewTransmission, Store as State, Transmission, Transmissions}; -declare_id!("HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny"); +declare_id!("ANooJg7j9UxgJ2DNuLqUJs5h956qzc5LdPLFFtQdDb8M"); static THRESHOLD_MULTIPLIER: u128 = 100000; diff --git a/gauntlet/packages/gauntlet-solana-contracts/networks/.env.devnet b/gauntlet/packages/gauntlet-solana-contracts/networks/.env.devnet index 297b1e217..4b414f6d8 100644 --- a/gauntlet/packages/gauntlet-solana-contracts/networks/.env.devnet +++ b/gauntlet/packages/gauntlet-solana-contracts/networks/.env.devnet @@ -1,8 +1,8 @@ NODE_URL=https://api.devnet.solana.com -PROGRAM_ID_OCR2=cjg3oHmg9uuPsP8D6g29NWvhySJkdYdAo9D25PRbKXJ -PROGRAM_ID_ACCESS_CONTROLLER=9xi644bRR8birboDGdTiwBq3C7VEeR7VuamRYYXCubUW -PROGRAM_ID_STORE=HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny +PROGRAM_ID_OCR2=9v5sGbNhyTM23yVvczzPbk5NtCqrARQpZjuzebBur43h +PROGRAM_ID_ACCESS_CONTROLLER=5Gm8JySC3RzGonihF1hj1kZkjHyyW7qxJNvyzq1ieAY5 +PROGRAM_ID_STORE=ANooJg7j9UxgJ2DNuLqUJs5h956qzc5LdPLFFtQdDb8M LINK=684pDdcVZ8f4kwXjqwgkAJ7JuC6ry5U7qydwBkHvfSX diff --git a/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts b/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts index 096965bae..f07503e14 100644 --- a/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts +++ b/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts @@ -19,6 +19,13 @@ type Oracle = { apis: string[] } +type Transmission = { + latestTransmissionNo: number + roundId: number + answer: any + transmitter: string +} + // Returns a formatted oracle log given a list of addresses and a start tab // if a list of oracles is provided, add context to logs const makeOracleLog = (addresses: string[], startTab = 2, oracles?: Oracle[]): string[] => { @@ -116,7 +123,7 @@ export default class OCR2InspectResponses extends SolanaCommand { // Store observers from each transmission const observerRounds: PublicKey[][] = [] - + const transmissionDetails: Transmission[] = [] events.forEach((event, i) => { // Map observer indices into addresses const observers = (event.observers as []).slice(0, event.observerCount).map((observer) => transmitters[observer]) @@ -144,7 +151,14 @@ export default class OCR2InspectResponses extends SolanaCommand { ${event.observerCount}/${transmitters.length} oracles are responding `, ) - + transmissionDetails.push( + { + latestTransmissionNo: i + 1, + roundId: event.roundId, + answer: parseInt(event.answer.toString(), 2), + transmitter: transmitters[event.transmitter].toString() + } + ) // Log oracles that are not responsive var notResponding: number = 0 transmitters.forEach((transmitter) => { @@ -185,10 +199,11 @@ export default class OCR2InspectResponses extends SolanaCommand { const successfulInspection = inspection.inspect(inspections) return { + data: transmissionDetails, responses: [ { tx: this.wrapInspectResponse(successfulInspection, state.toString()), - contract: state.toString(), + contract: state.toString() }, ], } as Result diff --git a/integration-tests/common/common.go b/integration-tests/common/common.go index b1af81a96..b5529d6b7 100644 --- a/integration-tests/common/common.go +++ b/integration-tests/common/common.go @@ -39,11 +39,13 @@ import ( ) const ( - ChainName = "solana" - ChainID = "localnet" - DefaultNodeCount = 5 - DefaultTTL = "3h" - SolanaURL = "http://sol:8899" + ChainName = "solana" + LocalnetChainID = "localnet" + DevnetChainID = "devnet" + DefaultNodeCount = 5 + DefaultTTL = "3h" + SolanaLocalNetURL = "http://sol:8899" + SolanaDevnetURL = "https://api.devnet.solana.com" ) type Common struct { @@ -94,11 +96,21 @@ func stripKeyPrefix(key string) string { return key } -func New() *Common { +func New(env string) *Common { var err error - c := &Common{ - ChainName: ChainName, - ChainId: ChainID, + var c *Common + if env == "devnet" { + c = &Common{ + ChainName: ChainName, + ChainId: DevnetChainID, + SolanaUrl: SolanaDevnetURL, + } + } else { + c = &Common{ + ChainName: ChainName, + ChainId: LocalnetChainID, + SolanaUrl: SolanaLocalNetURL, + } } // Checking if count of OCR nodes is defined in ENV nodeCountSet, nodeCountDefined := os.LookupEnv("NODE_COUNT") @@ -138,14 +150,14 @@ func New() *Common { func (c *Common) CreateSolanaChainAndNode(nodes []*client.Chainlink) error { for _, n := range nodes { - _, _, err := n.CreateSolanaChain(&client.SolanaChainAttributes{ChainID: ChainID}) + _, _, err := n.CreateSolanaChain(&client.SolanaChainAttributes{ChainID: c.ChainId}) if err != nil { return err } _, _, err = n.CreateSolanaNode(&client.SolanaNodeAttributes{ Name: ChainName, - SolanaChainID: ChainID, - SolanaURL: SolanaURL, + SolanaChainID: c.ChainId, + SolanaURL: c.SolanaUrl, }) if err != nil { return err @@ -154,7 +166,7 @@ func (c *Common) CreateSolanaChainAndNode(nodes []*client.Chainlink) error { return nil } -func CreateNodeKeysBundle(nodes []*client.Chainlink) ([]client.NodeKeysBundle, error) { +func (c *Common) CreateNodeKeysBundle(nodes []*client.Chainlink) ([]client.NodeKeysBundle, error) { nkb := make([]client.NodeKeysBundle, 0) for _, n := range nodes { p2pkeys, err := n.MustReadP2PKeys() @@ -163,7 +175,7 @@ func CreateNodeKeysBundle(nodes []*client.Chainlink) ([]client.NodeKeysBundle, e } peerID := p2pkeys.Data[0].Attributes.PeerID - txKey, _, err := n.CreateTxKey(ChainName, ChainID) + txKey, _, err := n.CreateTxKey(ChainName, c.ChainId) if err != nil { return nil, err } @@ -327,7 +339,7 @@ func CreateBridges(ContractsIdxMapToContractsNodeInfo map[int]*ContractNodeInfo, return nil } -func pluginConfigToTomlFormat(pluginConfig string) job.JSONConfig { +func PluginConfigToTomlFormat(pluginConfig string) job.JSONConfig { return job.JSONConfig{ "juelsPerFeeCoinSource": fmt.Sprintf("\"\"\"\n%s\n\"\"\"", pluginConfig), } @@ -335,11 +347,11 @@ func pluginConfigToTomlFormat(pluginConfig string) job.JSONConfig { func (c *Common) CreateJobsForContract(contractNodeInfo *ContractNodeInfo) error { relayConfig := job.JSONConfig{ - "nodeEndpointHTTP": fmt.Sprintf("\"%s\"", SolanaURL), + "nodeEndpointHTTP": fmt.Sprintf("\"%s\"", SolanaLocalNetURL), "ocr2ProgramID": fmt.Sprintf("\"%s\"", contractNodeInfo.OCR2.ProgramAddress()), "transmissionsID": fmt.Sprintf("\"%s\"", contractNodeInfo.Store.TransmissionsAddress()), "storeProgramID": fmt.Sprintf("\"%s\"", contractNodeInfo.Store.ProgramAddress()), - "chainID": fmt.Sprintf("\"%s\"", ChainID), + "chainID": fmt.Sprintf("\"%s\"", LocalnetChainID), } bootstrapPeers := []client.P2PData{ { @@ -381,7 +393,7 @@ func (c *Common) CreateJobsForContract(contractNodeInfo *ContractNodeInfo) error ContractConfigConfirmations: 1, ContractConfigTrackerPollInterval: models.Interval(15 * time.Second), PluginType: "median", - PluginConfig: pluginConfigToTomlFormat(contractNodeInfo.BridgeInfos[nIdx].JuelsSource), + PluginConfig: PluginConfigToTomlFormat(contractNodeInfo.BridgeInfos[nIdx].JuelsSource), }, } if _, err := n.MustCreateJob(jobSpec); err != nil { @@ -426,7 +438,7 @@ Enabled = true DeltaDial = '5s' DeltaReconcile = '5s' ListenAddresses = ['0.0.0.0:6690'] -`, ChainID, SolanaURL) +`, c.ChainId, c.SolanaUrl) c.Env = environment.New(c.K8Config). AddHelm(mockservercfg.New(nil)). AddHelm(mockserver.New(nil)). diff --git a/integration-tests/common/test_common.go b/integration-tests/common/test_common.go index 091a0480f..40e5febcf 100644 --- a/integration-tests/common/test_common.go +++ b/integration-tests/common/test_common.go @@ -3,6 +3,8 @@ package common import ( "fmt" "math/big" + "os" + "strings" "sync" "testing" "time" @@ -52,12 +54,77 @@ type Contracts struct { StoreAuth string } -func NewOCRv2State(t *testing.T, contracts int, namespacePrefix string) *OCRv2TestState { +type Oracle struct { + Signer string `json:"signer"` + Transmitter string `json:"transmitter"` + Payee string `json:"payee"` +} + +type OCR2OnChainConfig struct { + Oracles []Oracle `json:"oracles"` + F int `json:"f"` + ProposalId string `json:"proposalId"` +} + +type OffchainConfig struct { + DeltaProgressNanoseconds int64 `json:"deltaProgressNanoseconds"` + DeltaResendNanoseconds int64 `json:"deltaResendNanoseconds"` + DeltaRoundNanoseconds int64 `json:"deltaRoundNanoseconds"` + DeltaGraceNanoseconds int64 `json:"deltaGraceNanoseconds"` + DeltaStageNanoseconds int64 `json:"deltaStageNanoseconds"` + RMax int `json:"rMax"` + S []int `json:"s"` + OffchainPublicKeys []string `json:"offchainPublicKeys"` + PeerIds []string `json:"peerIds"` + ReportingPluginConfig ReportingPluginConfig `json:"reportingPluginConfig"` + MaxDurationQueryNanoseconds int64 `json:"maxDurationQueryNanoseconds"` + MaxDurationObservationNanoseconds int64 `json:"maxDurationObservationNanoseconds"` + MaxDurationReportNanoseconds int64 `json:"maxDurationReportNanoseconds"` + MaxDurationShouldAcceptFinalizedReportNanoseconds int64 `json:"maxDurationShouldAcceptFinalizedReportNanoseconds"` + MaxDurationShouldTransmitAcceptedReportNanoseconds int64 `json:"maxDurationShouldTransmitAcceptedReportNanoseconds"` + ConfigPublicKeys []string `json:"configPublicKeys"` +} + +type ReportingPluginConfig struct { + AlphaReportInfinite bool `json:"alphaReportInfinite"` + AlphaReportPpb int `json:"alphaReportPpb"` + AlphaAcceptInfinite bool `json:"alphaAcceptInfinite"` + AlphaAcceptPpb int `json:"alphaAcceptPpb"` + DeltaCNanoseconds int `json:"deltaCNanoseconds"` +} + +type OCROffChainConfig struct { + ProposalId string `json:"proposalId"` + OffchainConfig OffchainConfig `json:"offchainConfig"` + UserSecret string `json:"userSecret"` +} + +type Operator struct { + Signer string `json:"signer"` + Transmitter string `json:"transmitter"` + Payee string `json:"payee"` +} + +type PayeeConfig struct { + Operators []Operator `json:"operators"` + ProposalId string `json:"proposalId"` +} + +type ProposalAcceptConfig struct { + ProposalId string `json:"proposalId"` + Version int `json:"version"` + F int `json:"f"` + Oracles []Oracle `json:"oracles"` + OffchainConfig OffchainConfig `json:"offchainConfig"` + RandomSecret string `json:"randomSecret"` +} + +func NewOCRv2State(t *testing.T, contracts int, namespacePrefix string, env string) *OCRv2TestState { state := &OCRv2TestState{ Mu: &sync.Mutex{}, LastRoundTime: make(map[string]time.Time), ContractsNodeSetup: make(map[int]*ContractNodeInfo), - Common: New().Default(t, namespacePrefix), + Common: New(env).Default(t, namespacePrefix), Client: &solclient.Client{}, T: t, } @@ -188,7 +255,7 @@ func (m *OCRv2TestState) initializeNodesInContractsMap() { // DeployContracts deploys contracts func (m *OCRv2TestState) DeployContracts(contractsDir string) { - m.NodeKeysBundle, m.err = CreateNodeKeysBundle(m.ChainlinkNodes) + m.NodeKeysBundle, m.err = m.Common.CreateNodeKeysBundle(m.ChainlinkNodes) require.NoError(m.T, m.err) cd, err := solclient.NewContractDeployer(m.Client, m.Common.Env, nil) require.NoError(m.T, err) @@ -346,3 +413,167 @@ func (m *OCRv2TestState) ValidateRoundsAfter(chaosStartTime time.Time, timeout t g.Expect(roundsFound).To(gomega.BeNumerically(">=", rounds*len(m.Contracts))) }, timeout, NewRoundCheckPollInterval).Should(gomega.Succeed()) } + +func (m *OCRv2TestState) GenerateOnChainConfig(nodeKeys []client.NodeKeysBundle, vaultAddress string, proposalId string) (OCR2OnChainConfig, error) { + + var oracles []Oracle + + for _, nodeKey := range nodeKeys { + oracles = append(oracles, Oracle{ + Signer: strings.Replace(nodeKey.OCR2Key.Data.Attributes.OnChainPublicKey, "ocr2on_solana_", "", 1), + Transmitter: nodeKey.TXKey.Data.Attributes.PublicKey, + Payee: vaultAddress, + }) + } + + return OCR2OnChainConfig{ + Oracles: oracles, + F: 1, + ProposalId: proposalId, + }, nil +} + +func (m *OCRv2TestState) GenerateOffChainConfig( + nodeKeysBundle []client.NodeKeysBundle, + proposalId string, + reportingConfig ReportingPluginConfig, + deltaProgressNanoseconds int64, + deltaResendNanoseconds int64, + deltaRoundNanoseconds int64, + deltaGraceNanoseconds int64, + deltaStageNanoseconds int64, + rMax int, + maxDurationQueryNanoseconds int64, + maxDurationObservationNanoseconds int64, + maxDurationReportNanoseconds int64, + maxDurationShouldAcceptFinalizedReportNanoseconds int64, + maxDurationShouldTransmitAcceptedReportNanoseconds int64, + secret string, + +) OCROffChainConfig { + + offchainPublicKeys := make([]string, len(nodeKeysBundle)) + peerIds := make([]string, len(nodeKeysBundle)) + configPublicKeys := make([]string, len(nodeKeysBundle)) + s := make([]int, len(nodeKeysBundle)) + + for i := range s { + s[i] = 1 + } + + for i, bundle := range nodeKeysBundle { + offchainPublicKeys[i] = strings.Replace(bundle.OCR2Key.Data.Attributes.OffChainPublicKey, "ocr2off_solana_", "", 1) + peerIds[i] = bundle.PeerID + configPublicKeys[i] = strings.Replace(bundle.OCR2Key.Data.Attributes.ConfigPublicKey, "ocr2cfg_solana_", "", 1) + } + + offChainConfig := OCROffChainConfig{ + ProposalId: proposalId, + OffchainConfig: OffchainConfig{ + DeltaProgressNanoseconds: deltaProgressNanoseconds, + DeltaResendNanoseconds: deltaResendNanoseconds, + DeltaRoundNanoseconds: deltaRoundNanoseconds, + DeltaGraceNanoseconds: deltaGraceNanoseconds, + DeltaStageNanoseconds: deltaStageNanoseconds, + RMax: rMax, + S: s, + OffchainPublicKeys: offchainPublicKeys, + PeerIds: peerIds, + ConfigPublicKeys: configPublicKeys, + ReportingPluginConfig: reportingConfig, + MaxDurationQueryNanoseconds: maxDurationQueryNanoseconds, + MaxDurationObservationNanoseconds: maxDurationObservationNanoseconds, + MaxDurationReportNanoseconds: maxDurationReportNanoseconds, + MaxDurationShouldAcceptFinalizedReportNanoseconds: maxDurationShouldAcceptFinalizedReportNanoseconds, + MaxDurationShouldTransmitAcceptedReportNanoseconds: maxDurationShouldTransmitAcceptedReportNanoseconds, + }, + UserSecret: secret, + } + + return offChainConfig +} + +func (m *OCRv2TestState) GeneratePayees(nodeKeys []client.NodeKeysBundle, vaultAddress string, proposalId string) PayeeConfig { + var operators []Operator + for _, key := range nodeKeys { + operators = append(operators, Operator{ + Signer: strings.Replace(key.OCR2Key.Data.Attributes.OnChainPublicKey, "ocr2on_solana_", "", 1), + Transmitter: key.TXKey.Data.Attributes.PublicKey, + Payee: vaultAddress, + }) + } + + return PayeeConfig{ + Operators: operators, + ProposalId: proposalId, + } +} + +func (m *OCRv2TestState) GenerateProposalAcceptConfig( + proposalId string, + version int, + f int, + oracles []Oracle, + offChainConfig OffchainConfig, + randomSecret string, + +) ProposalAcceptConfig { + return ProposalAcceptConfig{ + ProposalId: proposalId, + Version: version, + F: f, + Oracles: oracles, + OffchainConfig: offChainConfig, + RandomSecret: randomSecret, + } +} + +func (m *OCRv2TestState) ConfigureGauntlet(secret string) map[string]string { + err := os.Setenv("SECRET", secret) + if err != nil { + panic("Error setting SECRET") + } + rpcUrl, exists := os.LookupEnv("RPC_URL") + if !exists { + panic("Please define RPC_URL") + } + privateKey, exists := os.LookupEnv("PRIVATE_KEY") + if !exists { + panic("Please define PRIVATE_KEY") + } + programIdOCR2, exists := os.LookupEnv("PROGRAM_ID_OCR2") + if !exists { + panic("Please define PROGRAM_ID_OCR2") + } + + programIdAccessController, exists := os.LookupEnv("PROGRAM_ID_ACCESS_CONTROLLER") + if !exists { + panic("Please define PROGRAM_ID_ACCESS_CONTROLLER") + } + + programIdStore, exists := os.LookupEnv("PROGRAM_ID_STORE") + if !exists { + panic("Please define PROGRAM_ID_STORE") + } + + linkToken, exists := os.LookupEnv("LINK_TOKEN") + if !exists { + panic("Please define LINK_TOKEN") + } + + vault, exists := os.LookupEnv("VAULT_ADDRESS") + if !exists { + panic("Please define VAULT_ADDRESS") + } + + return map[string]string{ + "NODE_URL": rpcUrl, + "PRIVATE_KEY": privateKey, + "PROGRAM_ID_OCR2": programIdOCR2, + "PROGRAM_ID_ACCESS_CONTROLLER": programIdAccessController, + "PROGRAM_ID_STORE": programIdStore, + "LINK": linkToken, + "VAULT": vault, + } + +} diff --git a/integration-tests/gauntlet/gauntlet_solana.go b/integration-tests/gauntlet/gauntlet_solana.go index ef6b669c9..c3944feff 100644 --- a/integration-tests/gauntlet/gauntlet_solana.go +++ b/integration-tests/gauntlet/gauntlet_solana.go @@ -1 +1,490 @@ package gauntlet + +import ( + "encoding/json" + "fmt" + "github.com/smartcontractkit/chainlink-solana/integration-tests/common" + "os" + + "github.com/smartcontractkit/chainlink-testing-framework/gauntlet" +) + +var ( + sg *SolanaGauntlet +) + +type SolanaGauntlet struct { + dir string + G *gauntlet.Gauntlet + gr *GauntletResponse + options *gauntlet.ExecCommandOptions + AccessControllerAddress string + BillingControllerAddress string + StoreAddress string + FeedAddress string + OcrAddress string + ProposalAddress string +} + +type StoreFeedConfig struct { + Store string `json:"store"` + Granularity int `json:"granularity"` + LiveLength int `json:"liveLength"` + Decimals int `json:"decimals"` + Description string `json:"description"` +} + +type OCR2Config struct { + MinAnswer string `json:"minAnswer"` + MaxAnswer string `json:"maxAnswer"` + Transmissions string `json:"transmissions"` +} + +type OCR2BillingConfig struct { + ObservationPaymentGjuels int `json:"ObservationPaymentGjuels"` + TransmissionPaymentGjuels int `json:"TransmissionPaymentGjuels"` +} + +type StoreWriterConfig struct { + Transmissions string `json:"transmissions"` +} + +// GauntletResponse Default response output for starknet gauntlet commands +type GauntletResponse struct { + Responses []struct { + Tx struct { + Hash string `json:"hash"` + Address string `json:"address"` + Status string `json:"status"` + + Tx struct { + Address string `json:"address"` + Code string `json:"code"` + Result []string `json:"result"` + TransactionHash string `json:"transaction_hash"` + } `json:"tx"` + } `json:"tx"` + Contract string `json:"contract"` + } `json:"responses"` + Data struct { + Proposal string `json:"proposal"` + } +} + +// NewSolanaGauntlet Creates a default gauntlet config +func NewSolanaGauntlet(workingDir string) (*SolanaGauntlet, error) { + g, err := gauntlet.NewGauntlet() + g.SetWorkingDir(workingDir) + if err != nil { + return nil, err + } + sg = &SolanaGauntlet{ + dir: workingDir, + G: g, + gr: &GauntletResponse{}, + options: &gauntlet.ExecCommandOptions{ + ErrHandling: []string{}, + CheckErrorsInRead: true, + }, + } + return sg, nil +} + +// FetchGauntletJsonOutput Parse gauntlet json response that is generated after yarn gauntlet command execution +func (sg *SolanaGauntlet) FetchGauntletJsonOutput() (*GauntletResponse, error) { + var payload = &GauntletResponse{} + gauntletOutput, err := os.ReadFile(sg.dir + "/report.json") + if err != nil { + return payload, err + } + err = json.Unmarshal(gauntletOutput, &payload) + if err != nil { + return payload, err + } + return payload, nil +} + +// SetupNetwork Sets up a new network and sets the NODE_URL for Devnet / Starknet RPC +func (sg *SolanaGauntlet) SetupNetwork(args map[string]string) error { + for key, arg := range args { + sg.G.AddNetworkConfigVar(key, arg) + } + err := sg.G.WriteNetworkConfigMap(sg.dir + "/packages/gauntlet-solana-contracts/networks") + if err != nil { + return err + } + + return nil +} + +func (sg *SolanaGauntlet) InstallDependencies() error { + sg.G.Command = "yarn" + _, err := sg.G.ExecCommand([]string{"install"}, *sg.options) + if err != nil { + return err + } + sg.G.Command = "gauntlet" + return nil +} + +func (sg *SolanaGauntlet) InitializeAccessController() (string, error) { + _, err := sg.G.ExecCommand([]string{"access_controller:initialize"}, *sg.options) + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) InitializeStore(billingController string) (string, error) { + _, err := sg.G.ExecCommand([]string{"store:initialize", fmt.Sprintf("--accessController=%s", billingController)}, *sg.options) + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) StoreCreateFeed(length int, feedConfig *StoreFeedConfig) (string, error) { + config, err := json.Marshal(feedConfig) + if err != nil { + return "", err + } + _, err = sg.G.ExecCommand([]string{"store:create_feed", fmt.Sprintf("--length=%d", length), fmt.Sprintf("--input=%v", string(config))}, *sg.options) + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Responses[0].Tx.Address, nil +} + +func (sg *SolanaGauntlet) StoreSetValidatorConfig(feedAddress string, threshold int) (string, error) { + _, err := sg.G.ExecCommand([]string{"store:set_validator_config", fmt.Sprintf("--feed=%s", feedAddress), fmt.Sprintf("--threshold=%d", threshold)}, *sg.options) + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) InitializeOCR2(requesterAccessController string, billingAccessController string, ocrConfig *OCR2Config) (string, error) { + config, err := json.Marshal(ocrConfig) + if err != nil { + return "", err + } + _, err = sg.G.ExecCommand([]string{ + "ocr2:initialize", + fmt.Sprintf("--requesterAccessController=%s", requesterAccessController), + fmt.Sprintf("--billingAccessController=%s", billingAccessController), + fmt.Sprintf("--input=%v", string(config))}, *sg.options) + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) StoreSetWriter(storeConfig *StoreWriterConfig, ocrAddress string) (string, error) { + config, err := json.Marshal(storeConfig) + if err != nil { + return "", err + } + _, err = sg.G.ExecCommand([]string{ + "store:set_writer", + fmt.Sprintf("--input=%v", string(config)), + ocrAddress, + }, + *sg.options, + ) + + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) OCR2SetBilling(ocr2BillingConfig *OCR2BillingConfig, ocrAddress string) (string, error) { + config, err := json.Marshal(ocr2BillingConfig) + if err != nil { + return "", err + } + _, err = sg.G.ExecCommand([]string{ + "ocr2:set_billing", + fmt.Sprintf("--input=%v", string(config)), + ocrAddress, + }, + *sg.options, + ) + + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) OCR2CreateProposal(version int) (string, error) { + _, err := sg.G.ExecCommand([]string{ + "ocr2:create_proposal", + fmt.Sprintf("--version=%d", version), + }, + *sg.options, + ) + + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Data.Proposal, nil +} + +func (sg *SolanaGauntlet) ProposeOnChainConfig(proposalId string, onChainConfig common.OCR2OnChainConfig, ocrFeedAddress string) (string, error) { + config, err := json.Marshal(onChainConfig) + if err != nil { + return "", err + } + + _, err = sg.G.ExecCommand([]string{ + "ocr2:propose_config", + fmt.Sprintf("--proposalId=%s", proposalId), + fmt.Sprintf("--input=%v", string(config)), + ocrFeedAddress, + }, + *sg.options, + ) + + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) ProposeOffChainConfig(proposalId string, offChainConfig common.OCROffChainConfig, ocrFeedAddress string) (string, error) { + config, err := json.Marshal(offChainConfig) + if err != nil { + return "", err + } + + _, err = sg.G.ExecCommand([]string{ + "ocr2:propose_offchain_config", + fmt.Sprintf("--proposalId=%s", proposalId), + fmt.Sprintf("--input=%v", string(config)), + ocrFeedAddress, + }, + *sg.options, + ) + + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) ProposePayees(proposalId string, payeesConfig common.PayeeConfig, ocrFeedAddress string) (string, error) { + config, err := json.Marshal(payeesConfig) + if err != nil { + return "", err + } + + _, err = sg.G.ExecCommand([]string{ + "ocr2:propose_payees", + fmt.Sprintf("--proposalId=%s", proposalId), + fmt.Sprintf("--input=%v", string(config)), + ocrFeedAddress, + }, + *sg.options, + ) + + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) FinalizeProposal(proposalId string) (string, error) { + _, err := sg.G.ExecCommand([]string{ + "ocr2:finalize_proposal", + fmt.Sprintf("--proposalId=%s", proposalId), + }, + *sg.options, + ) + + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) AcceptProposal(proposalId string, secret string, proposalAcceptConfig common.ProposalAcceptConfig, ocrFeedAddres string) (string, error) { + config, err := json.Marshal(proposalAcceptConfig) + if err != nil { + return "", err + } + + _, err = sg.G.ExecCommand([]string{ + "ocr2:accept_proposal", + fmt.Sprintf("--proposalId=%s", proposalId), + fmt.Sprintf("--secret=%s", secret), + fmt.Sprintf("--input=%s", string(config)), + ocrFeedAddres, + }, + *sg.options, + ) + + if err != nil { + return "", err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return "", err + } + + return sg.gr.Responses[0].Contract, nil +} + +func (sg *SolanaGauntlet) DeployStoreProgramID() { + +} + +func (sg *SolanaGauntlet) DeployOCR2() (string, error) { + var err error + + sg.AccessControllerAddress, err = sg.InitializeAccessController() + if err != nil { + return "", err + } + + sg.BillingControllerAddress, err = sg.InitializeAccessController() + if err != nil { + return "", err + } + + sg.StoreAddress, err = sg.InitializeStore(sg.BillingControllerAddress) + if err != nil { + return "", err + } + storeConfig := &StoreFeedConfig{ + Store: sg.StoreAddress, + Granularity: 1, + LiveLength: 10, + Decimals: 8, + Description: "Test feed", + } + + sg.FeedAddress, err = sg.StoreCreateFeed(10, storeConfig) + if err != nil { + return "", err + } + + _, err = sg.StoreSetValidatorConfig(sg.FeedAddress, 8000) + if err != nil { + return "", err + } + + ocr2Config := &OCR2Config{ + MinAnswer: "0", + MaxAnswer: "10000000000", + Transmissions: sg.FeedAddress, + } + + sg.OcrAddress, err = sg.InitializeOCR2(sg.AccessControllerAddress, sg.BillingControllerAddress, ocr2Config) + if err != nil { + return "", err + } + + storeWriter := &StoreWriterConfig{Transmissions: sg.FeedAddress} + + _, err = sg.StoreSetWriter(storeWriter, sg.OcrAddress) + if err != nil { + return "", err + } + + ocr2BillingConfig := &OCR2BillingConfig{ + ObservationPaymentGjuels: 1, + TransmissionPaymentGjuels: 1, + } + + _, err = sg.OCR2SetBilling(ocr2BillingConfig, sg.OcrAddress) + if err != nil { + return "", err + } + + sg.ProposalAddress, err = sg.OCR2CreateProposal(2) + if err != nil { + return "", err + } + return "", nil +} +func (sg *SolanaGauntlet) ConfigureOCR2(onChainConfig common.OCR2OnChainConfig, offChainConfig common.OCROffChainConfig, payees common.PayeeConfig, proposalAccept common.ProposalAcceptConfig) error { + _, err := sg.ProposeOnChainConfig(sg.ProposalAddress, onChainConfig, sg.OcrAddress) + if err != nil { + return err + } + _, err = sg.ProposeOffChainConfig(sg.ProposalAddress, offChainConfig, sg.OcrAddress) + if err != nil { + return err + } + _, err = sg.ProposePayees(sg.ProposalAddress, payees, sg.OcrAddress) + if err != nil { + return err + } + _, err = sg.FinalizeProposal(sg.ProposalAddress) + if err != nil { + return err + } + _, err = sg.AcceptProposal(sg.ProposalAddress, "this is an testing only secret", proposalAccept, sg.OcrAddress) + if err != nil { + return err + } + return nil +} diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 75d8576b3..59726d029 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -40,6 +40,7 @@ require ( github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129 // indirect github.com/armon/go-metrics v0.4.1 // indirect + github.com/avast/retry-go v3.0.0+incompatible // indirect github.com/aws/constructs-go/constructs/v10 v10.1.255 // indirect github.com/aws/jsii-runtime-go v1.75.0 // indirect github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect diff --git a/integration-tests/smoke/ocr2_test.go b/integration-tests/smoke/ocr2_test.go index 7aa4f37c0..c551ee7a1 100644 --- a/integration-tests/smoke/ocr2_test.go +++ b/integration-tests/smoke/ocr2_test.go @@ -1,16 +1,26 @@ package smoke import ( + "fmt" + "github.com/lib/pq" + uuid "github.com/satori/go.uuid" + "github.com/smartcontractkit/chainlink-solana/integration-tests/gauntlet" + "github.com/smartcontractkit/chainlink/integration-tests/client" + "github.com/smartcontractkit/chainlink/v2/core/services/job" + "github.com/smartcontractkit/chainlink/v2/core/store/models" + "gopkg.in/guregu/null.v4" + "sort" "testing" "time" "github.com/smartcontractkit/chainlink-solana/integration-tests/utils" "github.com/smartcontractkit/chainlink-solana/integration-tests/common" + "github.com/stretchr/testify/require" ) func TestSolanaOCRV2Smoke(t *testing.T) { - state := common.NewOCRv2State(t, 1, "smoke") + state := common.NewOCRv2State(t, 1, "smoke", "localnet") state.DeployCluster(utils.ContractsDir) if state.Common.Env.WillUseRemoteRunner() { return @@ -18,3 +28,148 @@ func TestSolanaOCRV2Smoke(t *testing.T) { state.SetAllAdapterResponsesToTheSameValue(10) state.ValidateRoundsAfter(time.Now(), common.NewRoundCheckTimeout, 1) } + +func TestSolanaGauntletOCRV2Smoke(t *testing.T) { + secret := "this is an testing only secret" + + state := common.NewOCRv2State(t, 1, "gauntlet", "devnet") + sg, err := gauntlet.NewSolanaGauntlet(fmt.Sprintf("%s/gauntlet", utils.ProjectRoot)) + + err = state.Common.Env.Run() + require.NoError(t, err) + + state.SetupClients() + state.NodeKeysBundle, err = state.Common.CreateNodeKeysBundle(state.ChainlinkNodes) + require.NoError(t, err) + + gauntletConfig := state.ConfigureGauntlet(secret) + err = sg.SetupNetwork(gauntletConfig) + require.NoError(t, err, "Error setting gauntlet network") + + _, err = sg.DeployOCR2() + require.NoError(t, err, "Error deploying OCR") + + bundleData := make([]client.NodeKeysBundle, len(state.NodeKeysBundle)) + copy(bundleData, state.NodeKeysBundle) + + // We have to sort by on_chain_pub_key for the config digest + sort.Slice(bundleData, func(i, j int) bool { + return bundleData[i].OCR2Key.Data.Attributes.OnChainPublicKey < bundleData[j].OCR2Key.Data.Attributes.OnChainPublicKey + }) + + onChainConfig, err := state.GenerateOnChainConfig(bundleData, gauntletConfig["VAULT"], sg.ProposalAddress) + require.NoError(t, err) + + reportingConfig := common.ReportingPluginConfig{ + AlphaReportInfinite: false, + AlphaReportPpb: 0, + AlphaAcceptInfinite: false, + AlphaAcceptPpb: 0, + DeltaCNanoseconds: 0, + } + offChainConfig := state.GenerateOffChainConfig( + bundleData, + sg.ProposalAddress, + reportingConfig, + int64(20000000000), + int64(50000000000), + int64(1000000000), + int64(4000000000), + int64(50000000000), + 3, + int64(0), + int64(3000000000), + int64(3000000000), + int64(100000000), + int64(100000000), + secret, + ) + + payees := state.GeneratePayees(bundleData, gauntletConfig["VAULT"], sg.ProposalAddress) + proposalAccept := state.GenerateProposalAcceptConfig(sg.ProposalAddress, 2, 1, onChainConfig.Oracles, offChainConfig.OffchainConfig, secret) + + require.NoError(t, err) + err = sg.ConfigureOCR2(onChainConfig, offChainConfig, payees, proposalAccept) + + err = state.Common.CreateSolanaChainAndNode(state.ChainlinkNodes) + require.NoError(t, err) + err = state.MockServer.SetValuePath("/juels", 1) + require.NoError(t, err) + + // TODO - This needs to be decoupled into one method as in common.go + // TODO - The current setup in common.go is using the solana validator, so we need to create one method for both gauntlet and solana + // Leaving this for the time being as is so we have Testnet runs enabled on Solana + relayConfig := job.JSONConfig{ + "nodeEndpointHTTP": fmt.Sprintf("\"%s\"", state.Common.SolanaUrl), + "ocr2ProgramID": fmt.Sprintf("\"%s\"", gauntletConfig["PROGRAM_ID_OCR2"]), + "transmissionsID": fmt.Sprintf("\"%s\"", sg.FeedAddress), + "storeProgramID": fmt.Sprintf("\"%s\"", gauntletConfig["PROGRAM_ID_STORE"]), + "chainID": fmt.Sprintf("\"%s\"", state.Common.ChainId), + } + bootstrapPeers := []client.P2PData{ + { + RemoteIP: state.ChainlinkNodes[0].RemoteIP(), + RemotePort: "6690", + PeerID: state.NodeKeysBundle[0].PeerID, + }, + } + jobSpec := &client.OCR2TaskJobSpec{ + Name: fmt.Sprintf("sol-OCRv2-%s-%s", "bootstrap", uuid.NewV4().String()), + JobType: "bootstrap", + OCR2OracleSpec: job.OCR2OracleSpec{ + ContractID: sg.OcrAddress, + Relay: common.ChainName, + RelayConfig: relayConfig, + P2PV2Bootstrappers: pq.StringArray{bootstrapPeers[0].P2PV2Bootstrapper()}, + OCRKeyBundleID: null.StringFrom(state.NodeKeysBundle[0].OCR2Key.Data.ID), + TransmitterID: null.StringFrom(state.NodeKeysBundle[0].TXKey.Data.ID), + ContractConfigConfirmations: 1, + ContractConfigTrackerPollInterval: models.Interval(15 * time.Second), + }, + } + sourceValueBridge := client.BridgeTypeAttributes{ + Name: "mockserver-bridge", + URL: fmt.Sprintf("%s/%s", state.MockServer.Config.ClusterURL, "juels"), + RequestData: "{}", + } + + observationSource := client.ObservationSourceSpecBridge(sourceValueBridge) + bridgeInfo := common.BridgeInfo{ObservationSource: observationSource} + err = state.ChainlinkNodes[0].MustCreateBridge(&sourceValueBridge) + require.NoError(t, err) + _, err = state.ChainlinkNodes[0].MustCreateJob(jobSpec) + require.NoError(t, err) + + for nIdx, node := range state.ChainlinkNodes { + // Skipping bootstrap + if nIdx == 0 { + continue + } + sourceValueBridge := client.BridgeTypeAttributes{ + Name: "mockserver-bridge", + URL: fmt.Sprintf("%s/%s", state.MockServer.Config.ClusterURL, "juels"), + RequestData: "{}", + } + _, err := node.CreateBridge(&sourceValueBridge) + require.NoError(t, err) + jobSpec := &client.OCR2TaskJobSpec{ + Name: fmt.Sprintf("sol-OCRv2-%d-%s", nIdx, uuid.NewV4().String()), + JobType: "offchainreporting2", + ObservationSource: bridgeInfo.ObservationSource, + OCR2OracleSpec: job.OCR2OracleSpec{ + ContractID: sg.OcrAddress, + Relay: common.ChainName, + RelayConfig: relayConfig, + P2PV2Bootstrappers: pq.StringArray{bootstrapPeers[0].P2PV2Bootstrapper()}, + OCRKeyBundleID: null.StringFrom(state.NodeKeysBundle[nIdx].OCR2Key.Data.ID), + TransmitterID: null.StringFrom(state.NodeKeysBundle[nIdx].TXKey.Data.ID), + ContractConfigConfirmations: 1, + ContractConfigTrackerPollInterval: models.Interval(15 * time.Second), + PluginType: "median", + PluginConfig: common.PluginConfigToTomlFormat(observationSource), + }, + } + _, _, err = node.CreateJob(jobSpec) + require.NoError(t, err) + } +} diff --git a/integration-tests/soak/ocr2_soak_test.go b/integration-tests/soak/ocr2_soak_test.go index eca061688..cd60b4548 100644 --- a/integration-tests/soak/ocr2_soak_test.go +++ b/integration-tests/soak/ocr2_soak_test.go @@ -10,7 +10,7 @@ import ( ) func TestSolanaOCRV2SoakTest(t *testing.T) { - state := common.NewOCRv2State(t, 5, "soak") + state := common.NewOCRv2State(t, 5, "soak", "localnet") state.DeployCluster(utils.ContractsDir) if state.Common.Env.WillUseRemoteRunner() { return diff --git a/scripts/lib.sh b/scripts/lib.sh index b87b92d4d..e77e2ca57 100644 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -5,10 +5,14 @@ function modify_program { ocr2=$2 store=$3 +old_ac=`cat "${BASH_SOURCE%/*}/../contracts/programs/access-controller/src/lib.rs" | grep -E -e 'declare_id\!\(\"[a-zA-Z0-9]+\"\)' | grep -o '".*"' | tr -d '"' | head -1` +old_store=`cat "${BASH_SOURCE%/*}/../contracts/programs/store/src/lib.rs" | grep -E -e 'declare_id\!\(\"[a-zA-Z0-9]+\"\)' | grep -o '".*"' | tr -d '"' | head -1` +old_ocr2=`cat "${BASH_SOURCE%/*}/../contracts/programs/ocr2/src/lib.rs" | grep -E -e 'declare_id\!\(\"[a-zA-Z0-9]+\"\)' | grep -o '".*"' | tr -d '"' | head -1` + # Replace existing declare_id!() - sed -i "s/9xi644bRR8birboDGdTiwBq3C7VEeR7VuamRYYXCubUW/$ac/" "${BASH_SOURCE%/*}/../contracts/programs/access-controller/src/lib.rs" - sed -i "s/HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny/$store/" "${BASH_SOURCE%/*}/../contracts/programs/store/src/lib.rs" - sed -i "s/cjg3oHmg9uuPsP8D6g29NWvhySJkdYdAo9D25PRbKXJ/$ocr2/" "${BASH_SOURCE%/*}/../contracts/programs/ocr2/src/lib.rs" + sed -i '' -e "s/$old_ac/$ac/" "${BASH_SOURCE%/*}/../contracts/programs/access-controller/src/lib.rs" + sed -i '' -e "s/$old_store/$store/" "${BASH_SOURCE%/*}/../contracts/programs/store/src/lib.rs" + sed -i '' -e "s/$old_ocr2/$ocr2/" "${BASH_SOURCE%/*}/../contracts/programs/ocr2/src/lib.rs" } function build { diff --git a/scripts/programs-keys-gen.sh b/scripts/programs-keys-gen.sh index 791420ee5..0a2a14147 100755 --- a/scripts/programs-keys-gen.sh +++ b/scripts/programs-keys-gen.sh @@ -7,15 +7,15 @@ source "${BASH_SOURCE%/*}/lib.sh" network=${1:-localnet} -# solana-keygen new -o ./contracts/artifacts/$network/access_controller-keypair.json +# solana-keygen new -o ./contracts/artifacts/$network/access_controller-keypair.json --force ACCESS_CONTROLLER_PROGRAM_ID=$(solana-keygen pubkey ./contracts/artifacts/$network/access_controller-keypair.json) echo $ACCESS_CONTROLLER_PROGRAM_ID > ./contracts/artifacts/$network/access_controller-keypair.pub -# solana-keygen new -o ./contracts/artifacts/$network/store-keypair.json +# solana-keygen new -o ./contracts/artifacts/$network/store-keypair.json --force STORE_PROGRAM_ID=$(solana-keygen pubkey ./contracts/artifacts/$network/store-keypair.json) echo $STORE_PROGRAM_ID > ./contracts/artifacts/$network/store-keypair.pub -# solana-keygen new -o ./contracts/artifacts/$network/ocr2-keypair.json +# solana-keygen new -o ./contracts/artifacts/$network/ocr2-keypair.json --force OCR2_PROGRAM_ID=$(solana-keygen pubkey ./contracts/artifacts/$network/ocr2-keypair.json) echo $OCR2_PROGRAM_ID > ./contracts/artifacts/$network/ocr2-keypair.pub From 942a43a35a2f906ef1f948ef7bafbbcf540dde37 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Mon, 10 Jul 2023 15:15:44 +0200 Subject: [PATCH 23/41] Reverted sed command changes to script --- scripts/lib.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/lib.sh b/scripts/lib.sh index e77e2ca57..9f9cac6c6 100644 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -10,9 +10,9 @@ old_store=`cat "${BASH_SOURCE%/*}/../contracts/programs/store/src/lib.rs" | grep old_ocr2=`cat "${BASH_SOURCE%/*}/../contracts/programs/ocr2/src/lib.rs" | grep -E -e 'declare_id\!\(\"[a-zA-Z0-9]+\"\)' | grep -o '".*"' | tr -d '"' | head -1` # Replace existing declare_id!() - sed -i '' -e "s/$old_ac/$ac/" "${BASH_SOURCE%/*}/../contracts/programs/access-controller/src/lib.rs" - sed -i '' -e "s/$old_store/$store/" "${BASH_SOURCE%/*}/../contracts/programs/store/src/lib.rs" - sed -i '' -e "s/$old_ocr2/$ocr2/" "${BASH_SOURCE%/*}/../contracts/programs/ocr2/src/lib.rs" + sed -i "s/$old_ac/$ac/" "${BASH_SOURCE%/*}/../contracts/programs/access-controller/src/lib.rs" + sed -i "s/$old_store/$store/" "${BASH_SOURCE%/*}/../contracts/programs/store/src/lib.rs" + sed -i "s/$old_ocr2/$ocr2/" "${BASH_SOURCE%/*}/../contracts/programs/ocr2/src/lib.rs" } function build { From 0a88cf5b04682ada5430dc8d1950c5096a156cda Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 11 Jul 2023 08:49:49 +0200 Subject: [PATCH 24/41] Edited smoke in makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ac8e84984..7ca729aa9 100644 --- a/Makefile +++ b/Makefile @@ -82,7 +82,7 @@ test_relay_unit: test_smoke: cd ./integration-tests &&\ - SELECTED_NETWORKS=SIMULATED go test -timeout 24h -count=1 -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt + SELECTED_NETWORKS=SIMULATED go test -timeout 24h -count=1 -json $(args) -run TestSolanaOCRV2Smoke ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt test_ocr_soak: cd ./integration-tests &&\ From 4d87051242876fe8fc2223a463449a2e58867e93 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 11 Jul 2023 10:16:56 +0200 Subject: [PATCH 25/41] Added fetching transmissions --- .../ocr2/inspection/inspectResponses.ts | 4 ++- integration-tests/gauntlet/gauntlet_solana.go | 30 +++++++++++++++++-- integration-tests/smoke/ocr2_test.go | 8 +++++ 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts b/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts index f07503e14..41a96f153 100644 --- a/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts +++ b/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts @@ -199,7 +199,9 @@ export default class OCR2InspectResponses extends SolanaCommand { const successfulInspection = inspection.inspect(inspections) return { - data: transmissionDetails, + data: { + latestTransmissions: transmissionDetails + }, responses: [ { tx: this.wrapInspectResponse(successfulInspection, state.toString()), diff --git a/integration-tests/gauntlet/gauntlet_solana.go b/integration-tests/gauntlet/gauntlet_solana.go index c3944feff..ef779f966 100644 --- a/integration-tests/gauntlet/gauntlet_solana.go +++ b/integration-tests/gauntlet/gauntlet_solana.go @@ -67,10 +67,18 @@ type GauntletResponse struct { Contract string `json:"contract"` } `json:"responses"` Data struct { - Proposal string `json:"proposal"` + Proposal *string `json:"proposal,omitempty"` + LatestTransmissions *[]Transmission `json:"latestTransmissions,omitempty"` } } +type Transmission struct { + LatestTransmissionNo int64 `json:"latestTransmissionNo"` + RoundId int64 `json:"roundId"` + Answer int64 `json:"answer"` + Transmitter string `json:"transmitter"` +} + // NewSolanaGauntlet Creates a default gauntlet config func NewSolanaGauntlet(workingDir string) (*SolanaGauntlet, error) { g, err := gauntlet.NewGauntlet() @@ -265,7 +273,7 @@ func (sg *SolanaGauntlet) OCR2CreateProposal(version int) (string, error) { return "", err } - return sg.gr.Data.Proposal, nil + return *sg.gr.Data.Proposal, nil } func (sg *SolanaGauntlet) ProposeOnChainConfig(proposalId string, onChainConfig common.OCR2OnChainConfig, ocrFeedAddress string) (string, error) { @@ -392,8 +400,24 @@ func (sg *SolanaGauntlet) AcceptProposal(proposalId string, secret string, propo return sg.gr.Responses[0].Contract, nil } -func (sg *SolanaGauntlet) DeployStoreProgramID() { +// FetchTransmissions returns the last 10 transmissions +func (sg *SolanaGauntlet) FetchTransmissions(ocrState string) ([]Transmission, error) { + _, err := sg.G.ExecCommand([]string{ + "ocr2:inspect:responses", + ocrState, + }, + *sg.options, + ) + + if err != nil { + return nil, err + } + sg.gr, err = sg.FetchGauntletJsonOutput() + if err != nil { + return nil, err + } + return *sg.gr.Data.LatestTransmissions, nil } func (sg *SolanaGauntlet) DeployOCR2() (string, error) { diff --git a/integration-tests/smoke/ocr2_test.go b/integration-tests/smoke/ocr2_test.go index c551ee7a1..669a7609e 100644 --- a/integration-tests/smoke/ocr2_test.go +++ b/integration-tests/smoke/ocr2_test.go @@ -5,6 +5,7 @@ import ( "github.com/lib/pq" uuid "github.com/satori/go.uuid" "github.com/smartcontractkit/chainlink-solana/integration-tests/gauntlet" + ctfUtils "github.com/smartcontractkit/chainlink-testing-framework/utils" "github.com/smartcontractkit/chainlink/integration-tests/client" "github.com/smartcontractkit/chainlink/v2/core/services/job" "github.com/smartcontractkit/chainlink/v2/core/store/models" @@ -171,5 +172,12 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { } _, _, err = node.CreateJob(jobSpec) require.NoError(t, err) + l := ctfUtils.GetTestLogger(t) + for i := 1; i < 100; i++ { + transmissions, err := sg.FetchTransmissions(sg.OcrAddress) + require.NoError(t, err) + l.Debug().Str("Contract", sg.OcrAddress).Interface("Answer", transmissions[0].Answer).Int64("RoundID", transmissions[0].RoundId).Msg("New answer found") + time.Sleep(time.Second * 5) + } } } From 2bc46fa6cb1f2092f13fafd1e3842970d2cd7afa Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 11 Jul 2023 13:30:10 +0200 Subject: [PATCH 26/41] Added workflow for testnet and gauntlet ocr2 inspect --- .github/workflows/e2e_custom_cl.yml | 12 +- .github/workflows/e2e_testnet_daily.yml | 198 +++++++++++++++++++++++ integration-tests/common/test_common.go | 6 + integration-tests/go.mod | 7 +- integration-tests/go.sum | 30 ++-- integration-tests/smoke/ocr2_test.go | 38 ++++- integration-tests/solclient/solclient.go | 64 ++++++++ 7 files changed, 323 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/e2e_testnet_daily.yml diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 2497415c4..1b600d74b 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -8,8 +8,7 @@ on: required: true default: develop type: string - schedule: - - cron: '0 * * * *' + env: CL_ECR: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink ENV_JOB_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink-solana-tests:${{ github.sha }} @@ -150,13 +149,6 @@ jobs: TEST_LOG_LEVEL: debug SELECTED_NETWORKS: SIMULATED steps: - - name: Display dynamic job name - run: | - if [[ "${{ github.event_name }}" == "schedule" ]]; then - echo "Running job: Scheduled E2E Custom Run Smoke Tests" - else - echo "Running job: E2E Custom Run Smoke Tests" - fi - name: Collect Metrics if: always() id: collect-gha-metrics @@ -171,7 +163,7 @@ jobs: - name: Run Tests uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 with: - test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt + test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -run TestSolanaOCRV2Smoke -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt go_mod_path: ./integration-tests/go.mod cl_repo: ${{ env.CL_ECR }} cl_image_tag: solana.${{ github.sha }} diff --git a/.github/workflows/e2e_testnet_daily.yml b/.github/workflows/e2e_testnet_daily.yml new file mode 100644 index 000000000..fa907ca56 --- /dev/null +++ b/.github/workflows/e2e_testnet_daily.yml @@ -0,0 +1,198 @@ +name: e2e_testnet_daily +on: + workflow_dispatch: + inputs: + cl_branch_ref: + description: Chainlink repo branch to integrate with + required: true + default: develop + type: string + RPC_URL: + description: RPC URL for the tests + required: true + default: https://api.devnet.solana.com + type: string + WS_URL: + description: WS URL for the tests + required: true + default: wss://api.devnet.solana.com/ + type: string + PRIVATE_KEY: + description: Private key in byte format [12, 12 ...] + required: true + type: string + schedule: + - cron: '0 * * * *' +env: + CL_ECR: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink + ENV_JOB_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink-solana-tests:${{ github.sha }} + CONTRACT_ARTIFACTS_PATH: contracts/target/deploy + +# Only run 1 of this workflow at a time per PR +concurrency: + group: integration-tests-solana-${{ github.ref }} + cancel-in-progress: true + +jobs: + get_projectserum_version: + name: Get ProjectSerum Version + environment: integration + runs-on: ubuntu-latest + outputs: + projectserum_version: ${{ steps.psversion.outputs.projectserum_version }} + steps: + - name: Checkout the repo + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - name: Get ProjectSerum Version + id: psversion + uses: ./.github/actions/projectserum_version + + test-image-exists: + environment: integration + permissions: + checks: write + pull-requests: write + id-token: write + contents: read + name: Check If Solana Test Image Exists + runs-on: ubuntu-latest + outputs: + exists: ${{ steps.check-image.outputs.exists }} + steps: + - name: Check if image exists + id: check-image + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + with: + repository: chainlink-solana-tests + tag: ${{ github.sha }} + AWS_REGION: ${{ secrets.QA_AWS_REGION }} + AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} + + e2e_custom_build_artifacts: + name: E2E Custom Build Artifacts + environment: integration + permissions: + id-token: write + contents: read + runs-on: ubuntu-latest + needs: [get_projectserum_version, test-image-exists] + container: + image: projectserum/build:${{ needs.get_projectserum_version.outputs.projectserum_version }} + env: + RUSTUP_HOME: "/root/.rustup" + FORCE_COLOR: 1 + steps: + - name: Checkout the repo + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - name: Build contracts + if: needs.test-image-exists.outputs.exists == 'false' + uses: ./.github/actions/build_contract_artifacts + + e2e_custom_build_custom_chainlink_image: + name: E2E Custom Build Custom CL Image + runs-on: ubuntu-latest + environment: integration + permissions: + id-token: write + contents: read + steps: + - name: Check if image exists + id: check-image + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + with: + repository: chainlink + tag: solana.${{ github.sha }} + AWS_REGION: ${{ secrets.QA_AWS_REGION }} + AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} + - name: Build Image + if: steps.check-image.outputs.exists == 'false' + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@d5ab9fe53da374dd789b5d9ef10f3282197e088d # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 + with: + cl_repo: smartcontractkit/chainlink + cl_ref: ${{ github.event.inputs.cl_branch_ref }} + dep_solana_sha: ${{ github.event.pull_request.head.sha }} + push_tag: ${{ env.CL_ECR }}:solana.${{ github.sha }} + QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} + QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} + + build_test_image: + environment: integration + permissions: + id-token: write + contents: read + name: Build Test Image + runs-on: ubuntu-latest + needs: [e2e_custom_build_artifacts] + steps: + - name: Collect Metrics + id: collect-gha-metrics + uses: smartcontractkit/push-gha-metrics-action@v1 + with: + basic-auth: ${{ secrets.GRAFANA_CLOUD_BASIC_AUTH }} + hostname: ${{ secrets.GRAFANA_CLOUD_HOST }} + this-job-name: Build Test Image + continue-on-error: true + - name: Checkout the repo + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Build Image + uses: ./.github/actions/build-test-image + with: + artifacts_path: ${{ env.CONTRACT_ARTIFACTS_PATH }} + QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} + QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} + QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} + + e2e_custom_run_daily_testnet_smoke_tests: + name: E2E Run Daily Smoke Tests + environment: integration + permissions: + checks: write + pull-requests: write + id-token: write + contents: read + runs-on: ubuntu-latest + + needs: [e2e_custom_build_artifacts, e2e_custom_build_custom_chainlink_image, build_test_image] + env: + TEST_SUITE: smoke + TEST_ARGS: -test.timeout 30m + CHAINLINK_COMMIT_SHA: ${{ github.sha }} + CHAINLINK_ENV_USER: ${{ github.actor }} + TEST_LOG_LEVEL: debug + SELECTED_NETWORKS: SIMULATED + RPC_URL: ${{ github.event_name == 'schedule' && 'https://api.devnet.solana.com' || github.event.inputs.RPC_URL }} + WS_URL: ${{ github.event_name == 'schedule' && 'wss://api.devnet.solana.com/' || github.event.inputs.WS_URL }} + PROGRAM_ID_OCR2: 9v5sGbNhyTM23yVvczzPbk5NtCqrARQpZjuzebBur43h + PROGRAM_ID_ACCESS_CONTROLLER: 5Gm8JySC3RzGonihF1hj1kZkjHyyW7qxJNvyzq1ieAY5 + PROGRAM_ID_STORE: ANooJg7j9UxgJ2DNuLqUJs5h956qzc5LdPLFFtQdDb8M + LINK_TOKEN: Dmw5mDvteezKfop9zd3RQbJmZfBATF3QuSqDU66axyts + VAULT_ADDRESS: G27m7KxTh4KVLapxB9MXfEA8HLUfYuGYQ1ELEs2zQdiQ + PRIVATE_KEY: ${{ github.event_name == 'schedule' && secrets.PRIVATE_KEY || github.event.inputs.PRIVATE_KEY }} + + steps: + - name: Collect Metrics + if: always() + id: collect-gha-metrics + uses: smartcontractkit/push-gha-metrics-action@8163dcea2f01a0a8fec84b284406ff7af1d2e1c0 + with: + basic-auth: ${{ secrets.GRAFANA_CLOUD_BASIC_AUTH }} + hostname: ${{ secrets.GRAFANA_CLOUD_HOST }} + this-job-name: E2E Run Daily Smoke Tests + continue-on-error: true + - name: Checkout the repo + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - name: Run Tests + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + with: + test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -run TestSolanaGauntletOCRV2Smoke -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt + go_mod_path: ./integration-tests/go.mod + cl_repo: ${{ env.CL_ECR }} + cl_image_tag: solana.${{ github.sha }} + artifacts_location: /home/runner/work/chainlink-solana/chainlink-solana/integration-tests/logs + token: ${{ secrets.GITHUB_TOKEN }} + QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} + QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} + QA_KUBECONFIG: ${{ secrets.QA_KUBECONFIG }} + should_cleanup: false \ No newline at end of file diff --git a/integration-tests/common/test_common.go b/integration-tests/common/test_common.go index 40e5febcf..6de3bd618 100644 --- a/integration-tests/common/test_common.go +++ b/integration-tests/common/test_common.go @@ -537,6 +537,11 @@ func (m *OCRv2TestState) ConfigureGauntlet(secret string) map[string]string { if !exists { panic("Please define RPC_URL") } + + wsUrl, exists := os.LookupEnv("WS_URL") + if !exists { + panic("Please define WS_URL") + } privateKey, exists := os.LookupEnv("PRIVATE_KEY") if !exists { panic("Please define PRIVATE_KEY") @@ -568,6 +573,7 @@ func (m *OCRv2TestState) ConfigureGauntlet(secret string) map[string]string { return map[string]string{ "NODE_URL": rpcUrl, + "WS_URL": wsUrl, "PRIVATE_KEY": privateKey, "PROGRAM_ID_OCR2": programIdOCR2, "PROGRAM_ID_ACCESS_CONTROLLER": programIdAccessController, diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 59726d029..5f3f748e9 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -6,8 +6,8 @@ replace github.com/smartcontractkit/chainlink-solana => ../ require ( github.com/ethereum/go-ethereum v1.12.0 - github.com/gagliardetto/binary v0.7.1 - github.com/gagliardetto/solana-go v1.4.1-0.20220428092759-5250b4abbb27 + github.com/gagliardetto/binary v0.7.7 + github.com/gagliardetto/solana-go v1.8.3 github.com/lib/pq v1.10.9 github.com/onsi/gomega v1.24.1 github.com/rs/zerolog v1.29.1 @@ -43,7 +43,6 @@ require ( github.com/avast/retry-go v3.0.0+incompatible // indirect github.com/aws/constructs-go/constructs/v10 v10.1.255 // indirect github.com/aws/jsii-runtime-go v1.75.0 // indirect - github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/benbjohnson/clock v1.3.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/speakeasy v0.1.0 // indirect @@ -296,6 +295,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.14.0 // indirect github.com/status-im/keycard-go v0.2.0 // indirect + github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect github.com/subosito/gotenv v1.4.1 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220614013038-64ee5596c38a // indirect github.com/tendermint/btcd v0.1.1 // indirect @@ -326,6 +326,7 @@ require ( go.dedis.ch/fixbuf v1.0.3 // indirect go.dedis.ch/kyber/v3 v3.0.14 // indirect go.etcd.io/bbolt v1.3.6 // indirect + go.mongodb.org/mongo-driver v1.11.0 // indirect go.opencensus.io v0.24.0 // indirect go.starlark.net v0.0.0-20220817180228-f738f5508c12 // indirect go.uber.org/atomic v1.11.0 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 02b29d60b..506f8f4d4 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -114,8 +114,6 @@ github.com/aws/constructs-go/constructs/v10 v10.1.255 h1:5hARfEmhBqHSTQf/C3QLA3s github.com/aws/constructs-go/constructs/v10 v10.1.255/go.mod h1:DCdBSjN04Ck2pajCacTD4RKFqSA7Utya8d62XreYctI= github.com/aws/jsii-runtime-go v1.75.0 h1:NhpUfyiL7/wsRuUekFsz8FFBCYLfPD/l61kKg9kL/a4= github.com/aws/jsii-runtime-go v1.75.0/go.mod h1:TKCyrtM0pygEPo4rDZzbMSDNCDNTSYSN6/mGyHI6O3I= -github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 h1:WWB576BN5zNSZc/M9d/10pqEx5VHNhaQ/yOVAkmj5Yo= -github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.4 h1:wj3BFPrTw8yYgA1OlMqvUk95nc8OMv3cvBSF5erT2W4= @@ -324,13 +322,12 @@ github.com/fvbommel/sortorder v1.0.2 h1:mV4o8B2hKboCdkJm+a7uX/SIpZob4JzUpc5GGnM4 github.com/fvbommel/sortorder v1.0.2/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/fxamacker/cbor/v2 v2.4.0 h1:ri0ArlOR+5XunOP8CRUowT0pSJOwhW098ZCUyskZD88= github.com/fxamacker/cbor/v2 v2.4.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= -github.com/gagliardetto/binary v0.6.1/go.mod h1:aOfYkc20U0deHaHn/LVZXiqlkDbFAX0FpTlDhsXa0S0= -github.com/gagliardetto/binary v0.7.1 h1:6ggDQ26vR+4xEvl/S13NcdLK3MUCi4oSy73pS9aI1cI= -github.com/gagliardetto/binary v0.7.1/go.mod h1:aOfYkc20U0deHaHn/LVZXiqlkDbFAX0FpTlDhsXa0S0= +github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= +github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= -github.com/gagliardetto/solana-go v1.4.1-0.20220428092759-5250b4abbb27 h1:q2IztKyRQUxJ6abXRsawaBtvDFvM+szj4jDqV4od1gs= -github.com/gagliardetto/solana-go v1.4.1-0.20220428092759-5250b4abbb27/go.mod h1:NFuoDwHPvw858ZMHUJr6bkhN8qHt4x6e+U3EYHxAwNY= +github.com/gagliardetto/solana-go v1.8.3 h1:YHcxw2nLNdjyy5iR+ZUcpljSrjZrWRr8OusuCTr70p4= +github.com/gagliardetto/solana-go v1.8.3/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -457,6 +454,7 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -1103,6 +1101,7 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= +github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1 h1:mPMvm6X6tf4w8y7j9YIt6V9jfWhL6QlbEc7CCmeQlWk= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1/go.mod h1:ye2e/VUEtE2BHE+G/QcKkcLQVAEJoYRFj5VUOQatCRE= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= @@ -1378,6 +1377,8 @@ github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/ github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= +github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1425,6 +1426,7 @@ github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= @@ -1470,6 +1472,9 @@ github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go. github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= @@ -1479,6 +1484,7 @@ github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= @@ -1507,6 +1513,8 @@ go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYr go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.mongodb.org/mongo-driver v1.11.0 h1:FZKhBSTydeuffHj9CBjXlR8vQLee1cQyTWYPA6/tqiE= +go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= @@ -1545,6 +1553,7 @@ go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= @@ -1580,11 +1589,12 @@ golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= @@ -1677,10 +1687,10 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -1780,7 +1790,6 @@ golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1879,7 +1888,6 @@ golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWc golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200601175630-2caf76543d99/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= diff --git a/integration-tests/smoke/ocr2_test.go b/integration-tests/smoke/ocr2_test.go index 669a7609e..6d899afd7 100644 --- a/integration-tests/smoke/ocr2_test.go +++ b/integration-tests/smoke/ocr2_test.go @@ -1,14 +1,19 @@ package smoke import ( + "context" "fmt" + "github.com/gagliardetto/solana-go/rpc" + "github.com/gagliardetto/solana-go/rpc/ws" "github.com/lib/pq" uuid "github.com/satori/go.uuid" "github.com/smartcontractkit/chainlink-solana/integration-tests/gauntlet" + "github.com/smartcontractkit/chainlink-solana/integration-tests/solclient" ctfUtils "github.com/smartcontractkit/chainlink-testing-framework/utils" "github.com/smartcontractkit/chainlink/integration-tests/client" "github.com/smartcontractkit/chainlink/v2/core/services/job" "github.com/smartcontractkit/chainlink/v2/core/store/models" + "github.com/stretchr/testify/assert" "gopkg.in/guregu/null.v4" "sort" "testing" @@ -32,7 +37,6 @@ func TestSolanaOCRV2Smoke(t *testing.T) { func TestSolanaGauntletOCRV2Smoke(t *testing.T) { secret := "this is an testing only secret" - state := common.NewOCRv2State(t, 1, "gauntlet", "devnet") sg, err := gauntlet.NewSolanaGauntlet(fmt.Sprintf("%s/gauntlet", utils.ProjectRoot)) @@ -47,6 +51,10 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { err = sg.SetupNetwork(gauntletConfig) require.NoError(t, err, "Error setting gauntlet network") + // Setting up RPC + c := rpc.New(gauntletConfig["NODE_URL"]) + wsc, err := ws.Connect(context.Background(), gauntletConfig["WS_URL"]) + _, err = sg.DeployOCR2() require.NoError(t, err, "Error deploying OCR") @@ -141,11 +149,16 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { _, err = state.ChainlinkNodes[0].MustCreateJob(jobSpec) require.NoError(t, err) + // TODO - This needs to be decoupled into one method as in common.go + // TODO - The current setup in common.go is using the solana validator, so we need to create one method for both gauntlet and solana + // Leaving this for the time being as is so we have Testnet runs enabled on Solana for nIdx, node := range state.ChainlinkNodes { // Skipping bootstrap if nIdx == 0 { continue } + err = solclient.SendFunds(gauntletConfig["PRIVATE_KEY"], state.NodeKeysBundle[nIdx].TXKey.Data.ID, 100000000, c, wsc) + require.NoError(t, err, "Error sending Funds") sourceValueBridge := client.BridgeTypeAttributes{ Name: "mockserver-bridge", URL: fmt.Sprintf("%s/%s", state.MockServer.Config.ClusterURL, "juels"), @@ -170,14 +183,23 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { PluginConfig: common.PluginConfigToTomlFormat(observationSource), }, } - _, _, err = node.CreateJob(jobSpec) + _, err = node.MustCreateJob(jobSpec) + require.NoError(t, err) + + } + + // Test start + l := ctfUtils.GetTestLogger(t) + for i := 1; i < 10; i++ { + transmissions, err := sg.FetchTransmissions(sg.OcrAddress) require.NoError(t, err) - l := ctfUtils.GetTestLogger(t) - for i := 1; i < 100; i++ { - transmissions, err := sg.FetchTransmissions(sg.OcrAddress) - require.NoError(t, err) - l.Debug().Str("Contract", sg.OcrAddress).Interface("Answer", transmissions[0].Answer).Int64("RoundID", transmissions[0].RoundId).Msg("New answer found") - time.Sleep(time.Second * 5) + if len(transmissions) <= 1 { + l.Info().Str("Contract", sg.OcrAddress).Str("No", "Transmissions") + } else { + l.Info().Str("Contract", sg.OcrAddress).Interface("Answer", transmissions[0].Answer).Int64("RoundID", transmissions[0].RoundId).Msg("New answer found") + assert.Equal(t, transmissions[0].Answer, int64(1), fmt.Sprintf("Actual: %d, Expected: 1", transmissions[0].Answer)) + assert.Less(t, transmissions[1].RoundId, transmissions[0].RoundId, fmt.Sprintf("Expected round %d to be less than %d", transmissions[1].RoundId, transmissions[0].RoundId)) } + time.Sleep(time.Second * 6) } } diff --git a/integration-tests/solclient/solclient.go b/integration-tests/solclient/solclient.go index 5ab84d64b..2e8870adb 100644 --- a/integration-tests/solclient/solclient.go +++ b/integration-tests/solclient/solclient.go @@ -2,6 +2,7 @@ package solclient import ( "context" + "encoding/json" "fmt" "io/fs" "math/big" @@ -17,8 +18,10 @@ import ( "github.com/gagliardetto/solana-go" "github.com/gagliardetto/solana-go/programs/system" "github.com/gagliardetto/solana-go/rpc" + confirm "github.com/gagliardetto/solana-go/rpc/sendAndConfirmTransaction" "github.com/gagliardetto/solana-go/rpc/ws" "github.com/gagliardetto/solana-go/text" + "github.com/rs/zerolog/log" "golang.org/x/sync/errgroup" ) @@ -485,3 +488,64 @@ func (c *Client) GasStats() *blockchain.GasStats { func (c *Client) AddHeaderEventSubscription(key string, subscriber blockchain.HeaderEventSubscription) { panic("implement me") } + +func SendFunds(senderPrivateKey string, receiverPublicKey string, lamports uint64, rpcClient *rpc.Client, wsClient *ws.Client) error { + + // Convert the private key string to a byte slice + var privateKeyBytes []byte + err := json.Unmarshal([]byte(senderPrivateKey), &privateKeyBytes) + if err != nil { + return err + } + + accountFrom := solana.PrivateKey(privateKeyBytes) + accountTo := solana.MustPublicKeyFromBase58(receiverPublicKey) + + // Get recent blockhash + recent, err := rpcClient.GetRecentBlockhash(context.Background(), rpc.CommitmentFinalized) + if err != nil { + return err + } + + // Create a transfer transaction + tx, err := solana.NewTransaction( + []solana.Instruction{ + system.NewTransferInstruction( + lamports, + accountFrom.PublicKey(), + accountTo, + ).Build(), + }, + recent.Value.Blockhash, + solana.TransactionPayer(accountFrom.PublicKey()), + ) + if err != nil { + return err + } + + // Sign the transaction + _, err = tx.Sign( + func(key solana.PublicKey) *solana.PrivateKey { + if accountFrom.PublicKey().Equals(key) { + return &accountFrom + } + return nil + }, + ) + if err != nil { + return err + } + + // Send transaction, and wait for confirmation: + _, err = confirm.SendAndConfirmTransaction( + context.Background(), + rpcClient, + wsClient, + tx, + ) + if err != nil { + return err + } + + return nil +} From 330bfd5bb26cae65a2d1291d79105db86889a24c Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 11 Jul 2023 15:04:30 +0200 Subject: [PATCH 27/41] Fixed liniting --- .../ocr2/inspection/inspectResponses.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts b/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts index 41a96f153..fdbf98a01 100644 --- a/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts +++ b/gauntlet/packages/gauntlet-solana-contracts/src/commands/contracts/ocr2/inspection/inspectResponses.ts @@ -151,14 +151,12 @@ export default class OCR2InspectResponses extends SolanaCommand { ${event.observerCount}/${transmitters.length} oracles are responding `, ) - transmissionDetails.push( - { - latestTransmissionNo: i + 1, - roundId: event.roundId, - answer: parseInt(event.answer.toString(), 2), - transmitter: transmitters[event.transmitter].toString() - } - ) + transmissionDetails.push({ + latestTransmissionNo: i + 1, + roundId: event.roundId, + answer: parseInt(event.answer.toString(), 2), + transmitter: transmitters[event.transmitter].toString(), + }) // Log oracles that are not responsive var notResponding: number = 0 transmitters.forEach((transmitter) => { @@ -200,12 +198,12 @@ export default class OCR2InspectResponses extends SolanaCommand { return { data: { - latestTransmissions: transmissionDetails + latestTransmissions: transmissionDetails, }, responses: [ { tx: this.wrapInspectResponse(successfulInspection, state.toString()), - contract: state.toString() + contract: state.toString(), }, ], } as Result From 31ad08da24c2730e4e5b20b865d8f2403a305e76 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Thu, 13 Jul 2023 08:46:34 +0200 Subject: [PATCH 28/41] Reverted changes to programs --- .../artifacts/localnet/access_controller-keypair.json | 2 +- .../artifacts/localnet/access_controller-keypair.pub | 2 +- contracts/artifacts/localnet/ocr2-keypair.json | 2 +- contracts/artifacts/localnet/ocr2-keypair.pub | 2 +- contracts/artifacts/localnet/store-keypair.json | 2 +- contracts/artifacts/localnet/store-keypair.pub | 2 +- contracts/programs/access-controller/src/lib.rs | 2 +- contracts/programs/ocr2/src/lib.rs | 2 +- contracts/programs/store/src/lib.rs | 2 +- .../gauntlet-solana-contracts/networks/.env.devnet | 6 +++--- scripts/lib.sh | 10 +++------- scripts/programs-keys-gen.sh | 6 +++--- 12 files changed, 18 insertions(+), 22 deletions(-) diff --git a/contracts/artifacts/localnet/access_controller-keypair.json b/contracts/artifacts/localnet/access_controller-keypair.json index f30f408eb..46551c533 100644 --- a/contracts/artifacts/localnet/access_controller-keypair.json +++ b/contracts/artifacts/localnet/access_controller-keypair.json @@ -1 +1 @@ -[76,70,87,251,132,192,249,37,211,14,64,138,123,157,67,141,21,91,254,135,15,92,31,128,175,8,219,92,171,165,185,183,63,120,90,114,57,160,88,241,225,90,224,15,109,133,181,138,161,247,250,74,62,231,236,114,163,56,253,193,245,54,133,38] \ No newline at end of file +[88,83,177,128,199,1,114,89,250,247,46,18,107,162,26,125,19,233,229,58,251,38,17,221,10,202,45,185,250,64,243,39,24,4,109,145,171,35,102,148,236,12,238,74,222,116,201,243,109,158,98,122,7,32,21,13,158,190,72,124,157,104,243,12] \ No newline at end of file diff --git a/contracts/artifacts/localnet/access_controller-keypair.pub b/contracts/artifacts/localnet/access_controller-keypair.pub index 9079a7e3b..1369067ce 100644 --- a/contracts/artifacts/localnet/access_controller-keypair.pub +++ b/contracts/artifacts/localnet/access_controller-keypair.pub @@ -1 +1 @@ -5Gm8JySC3RzGonihF1hj1kZkjHyyW7qxJNvyzq1ieAY5 +2ckhep7Mvy1dExenBqpcdevhRu7CLuuctMcx7G9mWEvo diff --git a/contracts/artifacts/localnet/ocr2-keypair.json b/contracts/artifacts/localnet/ocr2-keypair.json index 2408b0650..fac327378 100644 --- a/contracts/artifacts/localnet/ocr2-keypair.json +++ b/contracts/artifacts/localnet/ocr2-keypair.json @@ -1 +1 @@ -[147,156,90,33,172,253,32,40,142,95,165,27,216,156,10,128,72,6,229,255,104,31,98,168,73,90,39,104,165,203,211,84,132,118,199,245,159,246,74,198,107,52,202,251,246,140,133,15,19,176,2,184,11,151,23,172,232,85,166,253,164,118,91,48] \ No newline at end of file +[9,218,36,113,218,176,180,196,27,75,171,187,105,81,84,58,52,79,85,169,125,13,0,102,214,246,82,252,133,222,160,252,193,218,154,28,253,34,136,185,53,68,165,141,248,188,247,143,17,100,91,130,75,49,212,131,37,18,151,175,201,153,131,185] \ No newline at end of file diff --git a/contracts/artifacts/localnet/ocr2-keypair.pub b/contracts/artifacts/localnet/ocr2-keypair.pub index 9f50c0617..769708e12 100644 --- a/contracts/artifacts/localnet/ocr2-keypair.pub +++ b/contracts/artifacts/localnet/ocr2-keypair.pub @@ -1 +1 @@ -9v5sGbNhyTM23yVvczzPbk5NtCqrARQpZjuzebBur43h +E3j24rx12SyVsG6quKuZPbQqZPkhAUCh8Uek4XrKYD2x diff --git a/contracts/artifacts/localnet/store-keypair.json b/contracts/artifacts/localnet/store-keypair.json index a540dd9b2..72782ced4 100644 --- a/contracts/artifacts/localnet/store-keypair.json +++ b/contracts/artifacts/localnet/store-keypair.json @@ -1 +1 @@ -[30,72,16,94,28,30,190,184,210,18,22,97,115,213,52,14,152,142,137,21,86,150,183,172,161,106,37,110,215,87,49,232,139,79,75,93,190,229,125,33,186,3,117,59,155,239,31,42,172,253,255,242,81,180,243,88,210,14,164,205,236,26,23,178] \ No newline at end of file +[189,212,127,119,126,129,229,12,201,157,100,223,53,182,209,144,82,137,39,42,199,212,116,181,52,188,127,6,123,161,148,74,129,253,6,129,56,138,171,117,217,146,177,54,182,120,125,247,100,54,203,214,204,177,0,83,158,177,77,195,0,245,49,223] \ No newline at end of file diff --git a/contracts/artifacts/localnet/store-keypair.pub b/contracts/artifacts/localnet/store-keypair.pub index 4851d4279..d2c203967 100644 --- a/contracts/artifacts/localnet/store-keypair.pub +++ b/contracts/artifacts/localnet/store-keypair.pub @@ -1 +1 @@ -ANooJg7j9UxgJ2DNuLqUJs5h956qzc5LdPLFFtQdDb8M +9kRNTZmoZSiTBuXC62dzK9E7gC7huYgcmRRhYv3i4osC diff --git a/contracts/programs/access-controller/src/lib.rs b/contracts/programs/access-controller/src/lib.rs index f997a4882..c02bd37ca 100644 --- a/contracts/programs/access-controller/src/lib.rs +++ b/contracts/programs/access-controller/src/lib.rs @@ -4,7 +4,7 @@ use std::mem; use arrayvec::arrayvec; -declare_id!("5Gm8JySC3RzGonihF1hj1kZkjHyyW7qxJNvyzq1ieAY5"); +declare_id!("9xi644bRR8birboDGdTiwBq3C7VEeR7VuamRYYXCubUW"); #[constant] pub const MAX_ADDRS: usize = 64; diff --git a/contracts/programs/ocr2/src/lib.rs b/contracts/programs/ocr2/src/lib.rs index 40dea7938..0b70af0eb 100644 --- a/contracts/programs/ocr2/src/lib.rs +++ b/contracts/programs/ocr2/src/lib.rs @@ -4,7 +4,7 @@ use anchor_spl::token; use arrayref::{array_ref, array_refs}; use state::{Billing, Proposal, ProposedOracle, STATE_VERSION}; -declare_id!("9v5sGbNhyTM23yVvczzPbk5NtCqrARQpZjuzebBur43h"); +declare_id!("cjg3oHmg9uuPsP8D6g29NWvhySJkdYdAo9D25PRbKXJ"); mod context; pub mod event; diff --git a/contracts/programs/store/src/lib.rs b/contracts/programs/store/src/lib.rs index a81d3b2ec..749611caf 100644 --- a/contracts/programs/store/src/lib.rs +++ b/contracts/programs/store/src/lib.rs @@ -7,7 +7,7 @@ mod state; use crate::state::with_store; pub use crate::state::{NewTransmission, Store as State, Transmission, Transmissions}; -declare_id!("ANooJg7j9UxgJ2DNuLqUJs5h956qzc5LdPLFFtQdDb8M"); +declare_id!("HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny"); static THRESHOLD_MULTIPLIER: u128 = 100000; diff --git a/gauntlet/packages/gauntlet-solana-contracts/networks/.env.devnet b/gauntlet/packages/gauntlet-solana-contracts/networks/.env.devnet index 4b414f6d8..297b1e217 100644 --- a/gauntlet/packages/gauntlet-solana-contracts/networks/.env.devnet +++ b/gauntlet/packages/gauntlet-solana-contracts/networks/.env.devnet @@ -1,8 +1,8 @@ NODE_URL=https://api.devnet.solana.com -PROGRAM_ID_OCR2=9v5sGbNhyTM23yVvczzPbk5NtCqrARQpZjuzebBur43h -PROGRAM_ID_ACCESS_CONTROLLER=5Gm8JySC3RzGonihF1hj1kZkjHyyW7qxJNvyzq1ieAY5 -PROGRAM_ID_STORE=ANooJg7j9UxgJ2DNuLqUJs5h956qzc5LdPLFFtQdDb8M +PROGRAM_ID_OCR2=cjg3oHmg9uuPsP8D6g29NWvhySJkdYdAo9D25PRbKXJ +PROGRAM_ID_ACCESS_CONTROLLER=9xi644bRR8birboDGdTiwBq3C7VEeR7VuamRYYXCubUW +PROGRAM_ID_STORE=HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny LINK=684pDdcVZ8f4kwXjqwgkAJ7JuC6ry5U7qydwBkHvfSX diff --git a/scripts/lib.sh b/scripts/lib.sh index 9f9cac6c6..b87b92d4d 100644 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -5,14 +5,10 @@ function modify_program { ocr2=$2 store=$3 -old_ac=`cat "${BASH_SOURCE%/*}/../contracts/programs/access-controller/src/lib.rs" | grep -E -e 'declare_id\!\(\"[a-zA-Z0-9]+\"\)' | grep -o '".*"' | tr -d '"' | head -1` -old_store=`cat "${BASH_SOURCE%/*}/../contracts/programs/store/src/lib.rs" | grep -E -e 'declare_id\!\(\"[a-zA-Z0-9]+\"\)' | grep -o '".*"' | tr -d '"' | head -1` -old_ocr2=`cat "${BASH_SOURCE%/*}/../contracts/programs/ocr2/src/lib.rs" | grep -E -e 'declare_id\!\(\"[a-zA-Z0-9]+\"\)' | grep -o '".*"' | tr -d '"' | head -1` - # Replace existing declare_id!() - sed -i "s/$old_ac/$ac/" "${BASH_SOURCE%/*}/../contracts/programs/access-controller/src/lib.rs" - sed -i "s/$old_store/$store/" "${BASH_SOURCE%/*}/../contracts/programs/store/src/lib.rs" - sed -i "s/$old_ocr2/$ocr2/" "${BASH_SOURCE%/*}/../contracts/programs/ocr2/src/lib.rs" + sed -i "s/9xi644bRR8birboDGdTiwBq3C7VEeR7VuamRYYXCubUW/$ac/" "${BASH_SOURCE%/*}/../contracts/programs/access-controller/src/lib.rs" + sed -i "s/HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny/$store/" "${BASH_SOURCE%/*}/../contracts/programs/store/src/lib.rs" + sed -i "s/cjg3oHmg9uuPsP8D6g29NWvhySJkdYdAo9D25PRbKXJ/$ocr2/" "${BASH_SOURCE%/*}/../contracts/programs/ocr2/src/lib.rs" } function build { diff --git a/scripts/programs-keys-gen.sh b/scripts/programs-keys-gen.sh index 0a2a14147..791420ee5 100755 --- a/scripts/programs-keys-gen.sh +++ b/scripts/programs-keys-gen.sh @@ -7,15 +7,15 @@ source "${BASH_SOURCE%/*}/lib.sh" network=${1:-localnet} -# solana-keygen new -o ./contracts/artifacts/$network/access_controller-keypair.json --force +# solana-keygen new -o ./contracts/artifacts/$network/access_controller-keypair.json ACCESS_CONTROLLER_PROGRAM_ID=$(solana-keygen pubkey ./contracts/artifacts/$network/access_controller-keypair.json) echo $ACCESS_CONTROLLER_PROGRAM_ID > ./contracts/artifacts/$network/access_controller-keypair.pub -# solana-keygen new -o ./contracts/artifacts/$network/store-keypair.json --force +# solana-keygen new -o ./contracts/artifacts/$network/store-keypair.json STORE_PROGRAM_ID=$(solana-keygen pubkey ./contracts/artifacts/$network/store-keypair.json) echo $STORE_PROGRAM_ID > ./contracts/artifacts/$network/store-keypair.pub -# solana-keygen new -o ./contracts/artifacts/$network/ocr2-keypair.json --force +# solana-keygen new -o ./contracts/artifacts/$network/ocr2-keypair.json OCR2_PROGRAM_ID=$(solana-keygen pubkey ./contracts/artifacts/$network/ocr2-keypair.json) echo $OCR2_PROGRAM_ID > ./contracts/artifacts/$network/ocr2-keypair.pub From 82b4e77610cdb07826c1312fdeec360175528bd3 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Thu, 13 Jul 2023 09:06:42 +0200 Subject: [PATCH 29/41] Bumped chainlink env --- integration-tests/common/test_common.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/integration-tests/common/test_common.go b/integration-tests/common/test_common.go index 6de3bd618..3bbc497e2 100644 --- a/integration-tests/common/test_common.go +++ b/integration-tests/common/test_common.go @@ -54,16 +54,10 @@ type Contracts struct { StoreAuth string } -type Oracle struct { - Signer string `json:"signer"` - Transmitter string `json:"transmitter"` - Payee string `json:"payee"` -} - type OCR2OnChainConfig struct { - Oracles []Oracle `json:"oracles"` - F int `json:"f"` - ProposalId string `json:"proposalId"` + Oracles []Operator `json:"oracles"` + F int `json:"f"` + ProposalId string `json:"proposalId"` } type OffchainConfig struct { @@ -93,6 +87,7 @@ type ReportingPluginConfig struct { DeltaCNanoseconds int `json:"deltaCNanoseconds"` } +// TODO - Decouple all OCR2 config structs to be reusable between chains type OCROffChainConfig struct { ProposalId string `json:"proposalId"` OffchainConfig OffchainConfig `json:"offchainConfig"` @@ -114,7 +109,7 @@ type ProposalAcceptConfig struct { ProposalId string `json:"proposalId"` Version int `json:"version"` F int `json:"f"` - Oracles []Oracle `json:"oracles"` + Oracles []Operator `json:"oracles"` OffchainConfig OffchainConfig `json:"offchainConfig"` RandomSecret string `json:"randomSecret"` } @@ -416,10 +411,10 @@ func (m *OCRv2TestState) ValidateRoundsAfter(chaosStartTime time.Time, timeout t func (m *OCRv2TestState) GenerateOnChainConfig(nodeKeys []client.NodeKeysBundle, vaultAddress string, proposalId string) (OCR2OnChainConfig, error) { - var oracles []Oracle + var oracles []Operator for _, nodeKey := range nodeKeys { - oracles = append(oracles, Oracle{ + oracles = append(oracles, Operator{ Signer: strings.Replace(nodeKey.OCR2Key.Data.Attributes.OnChainPublicKey, "ocr2on_solana_", "", 1), Transmitter: nodeKey.TXKey.Data.Attributes.PublicKey, Payee: vaultAddress, @@ -513,7 +508,7 @@ func (m *OCRv2TestState) GenerateProposalAcceptConfig( proposalId string, version int, f int, - oracles []Oracle, + oracles []Operator, offChainConfig OffchainConfig, randomSecret string, From ab014915ced95b9bda91a11d293dc4e3d9a73ac2 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Wed, 19 Jul 2023 08:50:28 +0200 Subject: [PATCH 30/41] Bumped deps --- integration-tests/common/common.go | 14 +- integration-tests/go.mod | 144 ++++++++------ integration-tests/go.sum | 280 +++++++++++++++------------ integration-tests/smoke/ocr2_test.go | 10 +- 4 files changed, 252 insertions(+), 196 deletions(-) diff --git a/integration-tests/common/common.go b/integration-tests/common/common.go index b5529d6b7..c333aecc7 100644 --- a/integration-tests/common/common.go +++ b/integration-tests/common/common.go @@ -291,7 +291,7 @@ func CreateBridges(ContractsIdxMapToContractsNodeInfo map[int]*ContractNodeInfo, URL: fmt.Sprintf("%s/%s", mock.Config.ClusterURL, nodeContractPairID), RequestData: "{}", } - observationSource := client.ObservationSourceSpecBridge(sourceValueBridge) + observationSource := client.ObservationSourceSpecBridge(&sourceValueBridge) err = nodesInfo.BootstrapNode.MustCreateBridge(&sourceValueBridge) if err != nil { return err @@ -301,7 +301,7 @@ func CreateBridges(ContractsIdxMapToContractsNodeInfo map[int]*ContractNodeInfo, URL: fmt.Sprintf("%s/juels", mock.Config.ClusterURL), RequestData: "{}", } - juelsSource := client.ObservationSourceSpecBridge(juelsBridge) + juelsSource := client.ObservationSourceSpecBridge(&juelsBridge) err = nodesInfo.BootstrapNode.MustCreateBridge(&juelsBridge) if err != nil { return err @@ -318,7 +318,7 @@ func CreateBridges(ContractsIdxMapToContractsNodeInfo map[int]*ContractNodeInfo, URL: fmt.Sprintf("%s/%s", mock.Config.ClusterURL, nodeContractPairID), RequestData: "{}", } - observationSource := client.ObservationSourceSpecBridge(sourceValueBridge) + observationSource := client.ObservationSourceSpecBridge(&sourceValueBridge) err = node.MustCreateBridge(&sourceValueBridge) if err != nil { return err @@ -328,7 +328,7 @@ func CreateBridges(ContractsIdxMapToContractsNodeInfo map[int]*ContractNodeInfo, URL: fmt.Sprintf("%s/juels", mock.Config.ClusterURL), RequestData: "{}", } - juelsSource := client.ObservationSourceSpecBridge(juelsBridge) + juelsSource := client.ObservationSourceSpecBridge(&juelsBridge) err = node.MustCreateBridge(&juelsBridge) if err != nil { return err @@ -355,9 +355,9 @@ func (c *Common) CreateJobsForContract(contractNodeInfo *ContractNodeInfo) error } bootstrapPeers := []client.P2PData{ { - RemoteIP: contractNodeInfo.BootstrapNode.RemoteIP(), - RemotePort: "6690", - PeerID: contractNodeInfo.BootstrapNodeKeysBundle.PeerID, + InternalIP: contractNodeInfo.BootstrapNode.InternalIP(), + InternalPort: "6690", + PeerID: contractNodeInfo.BootstrapNodeKeysBundle.PeerID, }, } jobSpec := &client.OCR2TaskJobSpec{ diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 5f3f748e9..7c6f57044 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -9,19 +9,19 @@ require ( github.com/gagliardetto/binary v0.7.7 github.com/gagliardetto/solana-go v1.8.3 github.com/lib/pq v1.10.9 - github.com/onsi/gomega v1.24.1 + github.com/onsi/gomega v1.27.8 github.com/rs/zerolog v1.29.1 github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b github.com/smartcontractkit/chainlink-env v0.33.1 - github.com/smartcontractkit/chainlink-solana v1.0.3-0.20230518143827-0b7a6e43719c - github.com/smartcontractkit/chainlink-testing-framework v1.11.5 - github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230418232145-9b83bdc20e8a - github.com/smartcontractkit/chainlink/v2 v2.2.0-mercury-20230527.0.20230531021143-790758f0bd08 - github.com/smartcontractkit/libocr v0.0.0-20230525150148-a75f6e244bb3 - github.com/stretchr/testify v1.8.3 + github.com/smartcontractkit/chainlink-solana v1.0.3-0.20230612131011-369bfb503592 + github.com/smartcontractkit/chainlink-testing-framework v1.12.0 + github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230713025544-29b418df4ded + github.com/smartcontractkit/chainlink/v2 v2.2.1-0.20230713025544-29b418df4ded + github.com/smartcontractkit/libocr v0.0.0-20230606215712-82b910bef5c1 + github.com/stretchr/testify v1.8.4 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.9.0 - golang.org/x/sync v0.2.0 + golang.org/x/crypto v0.11.0 + golang.org/x/sync v0.3.0 gopkg.in/guregu/null.v4 v4.0.0 ) @@ -35,7 +35,6 @@ require ( github.com/DataDog/zstd v1.5.2 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect - github.com/NethermindEth/juno v0.0.0-20220630151419-cbd368b222ac // indirect github.com/VictoriaMetrics/fastcache v1.10.0 // indirect github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129 // indirect @@ -50,7 +49,7 @@ require ( github.com/btcsuite/btcd v0.23.4 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/buger/jsonparser v1.1.1 // indirect - github.com/bytedance/sonic v1.8.6 // indirect + github.com/bytedance/sonic v1.9.1 // indirect github.com/cdk8s-team/cdk8s-core-go/cdk8s/v2 v2.7.5 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -71,8 +70,8 @@ require ( github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.3.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.0 // indirect @@ -80,41 +79,44 @@ require ( github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.0 // indirect github.com/dvsekhvalnov/jose2go v1.5.0 // indirect - github.com/emicklei/go-restful/v3 v3.9.0 // indirect + github.com/emicklei/go-restful/v3 v3.10.1 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect github.com/fatih/camelcase v1.0.0 // indirect github.com/fatih/color v1.15.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect github.com/flynn/noise v0.0.0-20180327030543-2492fe189ae6 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/fvbommel/sortorder v1.0.2 // indirect github.com/fxamacker/cbor/v2 v2.4.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.19.0 // indirect github.com/gin-contrib/sessions v0.0.5 // indirect github.com/gin-contrib/sse v0.1.0 // indirect - github.com/gin-gonic/gin v1.9.0 // indirect + github.com/gin-gonic/gin v1.9.1 // indirect github.com/go-errors/errors v1.4.2 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect - github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.12.0 // indirect + github.com/go-playground/validator/v10 v10.14.0 // indirect github.com/go-resty/resty/v2 v2.7.0 // indirect github.com/go-stack/stack v1.8.1 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect - github.com/golang/glog v1.0.0 // indirect + github.com/golang/glog v1.1.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect @@ -124,7 +126,7 @@ require ( github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/gopacket v1.1.19 // indirect - github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10 // indirect + github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/context v1.1.1 // indirect @@ -133,6 +135,8 @@ require ( github.com/gorilla/sessions v1.2.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect + github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.0-rc.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.0.0-rc.3 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect @@ -141,16 +145,17 @@ require ( github.com/hashicorp/go-hclog v1.4.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-plugin v1.4.9 // indirect + github.com/hashicorp/go-plugin v1.4.10 // indirect + github.com/hashicorp/go-uuid v1.0.2 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.0.0-20200609203250-aecfd211c9ce // indirect github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect github.com/holiman/bloomfilter/v2 v2.0.3 // indirect - github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c // indirect + github.com/holiman/uint256 v1.2.2 // indirect github.com/huin/goupnp v1.0.3 // indirect github.com/imdario/mergo v0.3.15 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/ipfs/go-cid v0.0.7 // indirect github.com/ipfs/go-datastore v0.4.5 // indirect github.com/ipfs/go-ipfs-util v0.0.2 // indirect @@ -180,7 +185,7 @@ require ( github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/leanovate/gopter v0.2.10-0.20210127095200-9abe2343507a // indirect - github.com/leodido/go-urn v1.2.2 // indirect + github.com/leodido/go-urn v1.2.4 // indirect github.com/libp2p/go-addr-util v0.0.2 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-cidranger v1.1.0 // indirect @@ -221,16 +226,15 @@ require ( github.com/libp2p/go-yamux/v2 v2.0.0 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/logrusorgru/aurora v2.0.3+incompatible // indirect - github.com/magiconair/properties v1.8.6 // indirect + github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.18 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect github.com/minio/sha256-simd v0.1.1 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -257,16 +261,16 @@ require ( github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.7 // indirect + github.com/pelletier/go-toml/v2 v2.0.8 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.15.1 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect + github.com/prometheus/client_golang v1.16.0 // indirect + github.com/prometheus/client_model v0.4.0 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.11.0 // indirect github.com/pyroscope-io/client v0.7.1 // indirect github.com/pyroscope-io/godeltaprof v0.1.0 // indirect github.com/rivo/uniseg v0.4.4 // indirect @@ -278,25 +282,25 @@ require ( github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/shirou/gopsutil/v3 v3.22.12 // indirect github.com/shopspring/decimal v1.3.1 // indirect - github.com/sirupsen/logrus v1.9.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect github.com/slack-go/slack v0.12.2 // indirect - github.com/smartcontractkit/caigo v0.0.0-20230526231506-786d4587099a // indirect - github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230531014621-9c303da4c086 // indirect - github.com/smartcontractkit/ocr2keepers v0.6.15 // indirect - github.com/smartcontractkit/ocr2vrf v0.0.0-20230510102715-c58be582bf19 // indirect + github.com/smartcontractkit/caigo v0.0.0-20230621050857-b29a4ca8c704 // indirect + github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230620171700-bbcb3a99b7d3 // indirect + github.com/smartcontractkit/ocr2keepers v0.7.1-0.20230712182556-93ccfc7b283f // indirect + github.com/smartcontractkit/ocr2vrf v0.0.0-20230616201444-d8b4222aff3c // indirect github.com/smartcontractkit/sqlx v1.3.5-0.20210805004948-4be295aacbeb // indirect github.com/smartcontractkit/wsrpc v0.7.2 // indirect github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect - github.com/spf13/afero v1.9.2 // indirect + github.com/spf13/afero v1.9.3 // indirect github.com/spf13/cast v1.5.1 // indirect - github.com/spf13/cobra v1.6.0 // indirect + github.com/spf13/cobra v1.6.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.14.0 // indirect + github.com/spf13/viper v1.15.0 // indirect github.com/status-im/keycard-go v0.2.0 // indirect github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect - github.com/subosito/gotenv v1.4.1 // indirect + github.com/subosito/gotenv v1.4.2 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220614013038-64ee5596c38a // indirect github.com/tendermint/btcd v0.1.1 // indirect github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 // indirect @@ -309,7 +313,7 @@ require ( github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tklauser/go-sysconf v0.3.11 // indirect - github.com/tklauser/numcpus v0.6.0 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.11 // indirect @@ -321,52 +325,59 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xlab/treeprint v1.1.0 // indirect github.com/yuin/goldmark v1.4.13 // indirect - github.com/yusufpapurcu/wmi v1.2.2 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect github.com/zondax/hid v0.9.0 // indirect go.dedis.ch/fixbuf v1.0.3 // indirect - go.dedis.ch/kyber/v3 v3.0.14 // indirect + go.dedis.ch/kyber/v3 v3.1.0 // indirect go.etcd.io/bbolt v1.3.6 // indirect - go.mongodb.org/mongo-driver v1.11.0 // indirect + go.mongodb.org/mongo-driver v1.11.3 // indirect go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0 // indirect + go.opentelemetry.io/otel v1.16.0 // indirect + go.opentelemetry.io/otel/metric v1.16.0 // indirect + go.opentelemetry.io/otel/sdk v1.16.0 // indirect + go.opentelemetry.io/otel/trace v1.16.0 // indirect go.starlark.net v0.0.0-20220817180228-f738f5508c12 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/ratelimit v0.2.0 // indirect - golang.org/x/arch v0.3.0 // indirect - golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect + golang.org/x/arch v0.4.0 // indirect + golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df // indirect golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect - golang.org/x/mod v0.10.0 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/oauth2 v0.6.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/term v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/mod v0.12.0 // indirect + golang.org/x/net v0.12.0 // indirect + golang.org/x/oauth2 v0.10.0 // indirect + golang.org/x/sys v0.10.0 // indirect + golang.org/x/term v0.10.0 // indirect + golang.org/x/text v0.11.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.9.1 // indirect + golang.org/x/tools v0.11.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect - gonum.org/v1/gonum v0.12.0 // indirect + gonum.org/v1/gonum v0.13.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect - google.golang.org/grpc v1.53.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect + google.golang.org/grpc v1.55.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.25.11 // indirect + k8s.io/api v0.26.2 // indirect k8s.io/apiextensions-apiserver v0.25.3 // indirect - k8s.io/apimachinery v0.25.11 // indirect + k8s.io/apimachinery v0.26.2 // indirect k8s.io/cli-runtime v0.25.11 // indirect - k8s.io/client-go v0.25.11 // indirect + k8s.io/client-go v0.26.2 // indirect k8s.io/component-base v0.25.11 // indirect - k8s.io/klog/v2 v2.80.1 // indirect - k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect + k8s.io/klog/v2 v2.100.1 // indirect + k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect k8s.io/kubectl v0.25.11 // indirect - k8s.io/utils v0.0.0-20221107191617-1a15be271d1d // indirect + k8s.io/utils v0.0.0-20230308161112-d77c459e9343 // indirect sigs.k8s.io/controller-runtime v0.13.0 // indirect - sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/kustomize/api v0.12.1 // indirect sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect @@ -387,6 +398,9 @@ replace ( // replicating the replace directive on cosmos SDK github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 + // until merged upstream: https://github.com/hashicorp/go-plugin/pull/257 + github.com/hashicorp/go-plugin => github.com/jmank88/go-plugin v0.0.0-20230604120638-7bb12ec27e75 + github.com/prometheus/client_golang => github.com/prometheus/client_golang v1.14.0 github.com/prometheus/common => github.com/prometheus/common v0.10.0 @@ -394,6 +408,8 @@ replace ( // Some dependency keeps trying to update this to an unstable version github.com/satori/go.uuid => github.com/satori/go.uuid v1.2.0 + github.com/smartcontractkit/chainlink/integration-tests => ../../chainlink/integration-tests + // K8s imports are weird k8s.io/api => k8s.io/api v0.25.4 k8s.io/client-go => k8s.io/client-go v0.25.4 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 506f8f4d4..db0bae562 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -18,12 +18,15 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= @@ -78,8 +81,6 @@ github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0 github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/NethermindEth/juno v0.0.0-20220630151419-cbd368b222ac h1:TQ2m26VW06Df1P82Ed/jZhBtf13pReWyl2XQ8hy+J08= -github.com/NethermindEth/juno v0.0.0-20220630151419-cbd368b222ac/go.mod h1:FTk2+xybtQe5X+oNFx+a0n5EeZMD9Nc+LCH4fxFwrEE= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OneOfOne/xxhash v1.2.6 h1:U68crOE3y3MPttCMQGywZOLrTeF5HHJ3/vDBCJn9/bA= @@ -144,8 +145,8 @@ github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMU github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bxcodec/faker v2.0.1+incompatible h1:P0KUpUw5w6WJXwrPfv35oc91i4d8nf40Nwln+M/+faA= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.8.6 h1:aUgO9S8gvdN6SyW2EhIpAw5E4ChworywIEndZCkCVXk= -github.com/bytedance/sonic v1.8.6/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= +github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/cdk8s-team/cdk8s-core-go/cdk8s/v2 v2.7.5 h1:rvc39Ol6z3MvaBzXkxFC6Nfsnixq/dRypushKDd7Nc0= github.com/cdk8s-team/cdk8s-core-go/cdk8s/v2 v2.7.5/go.mod h1:R/pdNYDYFQk+tuuOo7QES1kkv6OLmp5ze2XBZQIVffM= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= @@ -239,11 +240,11 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= +github.com/deckarep/golang-set/v2 v2.3.0 h1:qs18EKUfHm2X9fA50Mr/M5hccg2tNnVqsiBImnyDs0g= +github.com/deckarep/golang-set/v2 v2.3.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 h1:CuJS05R9jmNlUK8GOxrEELPbfXm0EuGh/30LjkjN5vo= @@ -273,8 +274,8 @@ github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQx github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= -github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE= -github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= +github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -305,7 +306,8 @@ github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYF github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/flynn/noise v0.0.0-20180327030543-2492fe189ae6 h1:u/UEqS66A5ckRmS4yNpjmVH56sVtS/RfclBAYocb4as= @@ -322,6 +324,8 @@ github.com/fvbommel/sortorder v1.0.2 h1:mV4o8B2hKboCdkJm+a7uX/SIpZob4JzUpc5GGnM4 github.com/fvbommel/sortorder v1.0.2/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/fxamacker/cbor/v2 v2.4.0 h1:ri0ArlOR+5XunOP8CRUowT0pSJOwhW098ZCUyskZD88= github.com/fxamacker/cbor/v2 v2.4.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= @@ -342,13 +346,13 @@ github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0 github.com/gin-contrib/expvar v0.0.1 h1:IuU5ArEgihz50vG8Onrwz22kJr7Mcvgv9xSSpfU5g+w= github.com/gin-contrib/sessions v0.0.5 h1:CATtfHmLMQrMNpJRgzjWXD7worTh7g7ritsQfmF+0jE= github.com/gin-contrib/sessions v0.0.5/go.mod h1:vYAuaUPqie3WUSsft6HUlCjlwwoJQs97miaG2+7neKY= -github.com/gin-contrib/size v0.0.0-20220707104239-f5a650759656 h1:IxCENnXjmppSWzMedenibLt8tvKg4b7kQ7lTGjGjsgw= +github.com/gin-contrib/size v0.0.0-20230212012657-e14a14094dc4 h1:Z9J0PVIt1PuibOShaOw1jH8hUYz+Ak8NLsR/GI0Hv5I= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= -github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= +github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= @@ -367,8 +371,11 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= @@ -384,8 +391,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.12.0 h1:E4gtWgxWxp8YSxExrQFv5BpCahla0PVF2oTTEYaWQGI= -github.com/go-playground/validator/v10 v10.12.0/go.mod h1:hCAPuzYvKdP33pxWa+2+6AIKXEKqjIUyqsNCtbsSJrA= +github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= +github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= @@ -394,6 +401,7 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho= github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-webauthn/revoke v0.1.9 h1:gSJ1ckA9VaKA2GN4Ukp+kiGTk1/EXtaDb1YE8RknbS0= @@ -409,7 +417,7 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= +github.com/gofrs/uuid v4.3.1+incompatible h1:0/KbAdpx3UXAx1kEOWHJeOkpbgRFGHVgv+CFIY7dBJI= github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= @@ -418,8 +426,8 @@ github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keL github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -508,8 +516,8 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10 h1:CqYfpuYIjnlNxM3msdyPRKabhXZWbKjf3Q8BWROFBso= -github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= +github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 h1:hR7/MlvK23p6+lIw9SN1TigNLn9ZnF3W4SYRKq2gAHs= +github.com/google/pprof v0.0.0-20230602150820-91b7bce49751/go.mod h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= @@ -542,6 +550,10 @@ github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJr github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= +github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.0-rc.0 h1:mdLirNAJBxnGgyB6pjZLcs6ue/6eZGBui6gXspfq4ks= +github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.0-rc.0/go.mod h1:kdXbOySqcQeTxiqglW7aahTmWZy3Pgi6SYL36yvKeyA= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.0.0-rc.3 h1:o95KDiV/b1xdkumY5YbLR0/n2+wBxUpgf3HgfKgTyLI= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.0.0-rc.3/go.mod h1:hTxjzRcX49ogbTGVJ1sM5mz5s+SSgiGIyL3jjPxl32E= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= @@ -573,15 +585,14 @@ github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHh github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.4.9 h1:ESiK220/qE0aGxWdzKIvRH69iLiuN/PjoLTm69RoWtU= -github.com/hashicorp/go-plugin v1.4.9/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -602,8 +613,8 @@ github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 h1:aSV github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3/go.mod h1:5PC6ZNPde8bBqU/ewGZig35+UIZtw9Ytxez8/q5ZyFE= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= -github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c h1:DZfsyhDK1hnSS5lH8l+JggqzEleHteTYfutAiVlSUM8= -github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= +github.com/holiman/uint256 v1.2.2 h1:TXKcSGc2WaxPD2+bmzAsVthL4+pEN0YwXcL5qED83vk= +github.com/holiman/uint256 v1.2.2/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= @@ -616,8 +627,9 @@ github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= github.com/ipfs/go-cid v0.0.2/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= @@ -730,6 +742,8 @@ github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0 github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b h1:izTof8BKh/nE1wrKOrloNA5q4odOarjf+Xpe+4qow98= +github.com/jmank88/go-plugin v0.0.0-20230604120638-7bb12ec27e75 h1:KYTOmcwuezD27O7vNF15lj8H7imCBMXCq1RzCdj4e3A= +github.com/jmank88/go-plugin v0.0.0-20230604120638-7bb12ec27e75/go.mod h1:6/1TEzT0eQznvI/gV2CM29DLSkAK/e58mUWKVsPaph0= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= @@ -796,8 +810,8 @@ github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awS github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/leanovate/gopter v0.2.10-0.20210127095200-9abe2343507a h1:dHCfT5W7gghzPtfsW488uPmEOm85wewI+ypUwibyTdU= github.com/leanovate/gopter v0.2.10-0.20210127095200-9abe2343507a/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= -github.com/leodido/go-urn v1.2.2 h1:7z68G0FCGvDk646jz1AelTYNYWrTNm0bEcFAo147wt4= -github.com/leodido/go-urn v1.2.2/go.mod h1:kUaIbLZWttglzwNuG0pgsh5vuV6u2YcGBYz1hIPjtOQ= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= @@ -1016,8 +1030,8 @@ github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/z github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= -github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= @@ -1043,8 +1057,8 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -1195,7 +1209,7 @@ github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vv github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= -github.com/onsi/ginkgo/v2 v2.5.1 h1:auzK7OI497k6x4OvWq+TKAcpcSAlod0doAH72oIN0Jw= +github.com/onsi/ginkgo/v2 v2.9.7 h1:06xGQy5www2oN160RtEZoTvnP2sPhEfePYmCDc2szss= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -1204,8 +1218,8 @@ github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoT github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.24.1 h1:KORJXNNTzJXzu4ScJWssJfJMnJ+2QJqhoQSRwNlze9E= -github.com/onsi/gomega v1.24.1/go.mod h1:3AOiACssS3/MajrniINInwbfOOtfZvplPzuRSmvt1jM= +github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= +github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/image-spec v1.1.0-rc3 h1:fzg1mXZFj8YdPeNkRXMg+zb88BFV0Ys52cJydRwBkb8= github.com/opencontainers/runc v1.1.7 h1:y2EZDS8sNng4Ksf0GUYNhKbTShZJPJg1FiXJNH/uoCk= @@ -1222,8 +1236,8 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.7 h1:muncTPStnKRos5dpVKULv2FVd4bMOhNePj9CjgDb8Us= -github.com/pelletier/go-toml/v2 v2.0.7/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= +github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= @@ -1246,14 +1260,15 @@ github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= -github.com/prometheus/prometheus v0.43.1 h1:Z/Z0S0CoPUVtUnHGokFksWMssSw2Y1Ir9NnWS1pPWU0= +github.com/prometheus/procfs v0.11.0 h1:5EAgkfkMl659uZPbe9AS2N68a7Cc1TJbPEuGzFuRbyk= +github.com/prometheus/procfs v0.11.0/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/prometheus/prometheus v0.45.0 h1:O/uG+Nw4kNxx/jDPxmjsSDd+9Ohql6E7ZSY1x5x/0KI= github.com/pyroscope-io/client v0.7.1 h1:yFRhj3vbgjBxehvxQmedmUWJQ4CAfCHhn+itPsuWsHw= github.com/pyroscope-io/client v0.7.1/go.mod h1:4h21iOU4pUOq0prKyDlvYRL+SCKsBc5wKiEtV+rJGqU= github.com/pyroscope-io/godeltaprof v0.1.0 h1:UBqtjt0yZi4jTxqZmLAs34XG6ycS3vUTlhEUSq4NHLE= @@ -1289,7 +1304,6 @@ github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNl github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/rwtodd/Go.Sed v0.0.0-20210816025313-55464686f9ef/go.mod h1:8AEUvGVi2uQ5b24BIhcr0GCcpd/RNAFWaN2CJFrWIIQ= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= @@ -1314,32 +1328,32 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeV github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/slack-go/slack v0.12.2 h1:x3OppyMyGIbbiyFhsBmpf9pwkUzMhthJMRNmNlA4LaQ= github.com/slack-go/slack v0.12.2/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw= -github.com/smartcontractkit/caigo v0.0.0-20230526231506-786d4587099a h1:B0WjTVtPW+GNY90rpmiwD/8tf3xr4jFC60sjuznNtRs= -github.com/smartcontractkit/caigo v0.0.0-20230526231506-786d4587099a/go.mod h1:2QuJdEouTWjh5BDy5o/vgGXQtR4Gz8yH1IYB5eT7u4M= -github.com/smartcontractkit/chainlink-cosmos v0.4.0 h1:xYLAcJJIm0cyMtYtMaosO45bykEwcwQOmZz3mz46Y2A= +github.com/smartcontractkit/caigo v0.0.0-20230621050857-b29a4ca8c704 h1:T3lFWumvbfM1u/etVq42Afwq/jtNSBSOA8n5jntnNPo= +github.com/smartcontractkit/caigo v0.0.0-20230621050857-b29a4ca8c704/go.mod h1:2QuJdEouTWjh5BDy5o/vgGXQtR4Gz8yH1IYB5eT7u4M= +github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20230525203711-20bed74ac906 h1:u7Lw7oqLEjADlJPJQnzlCLNSbj038QttaKY0lCa3V78= github.com/smartcontractkit/chainlink-env v0.33.1 h1:nSQixUh5cPSp9MpOJxqJHJ/tRWIDxR0OUvGuKhSJOok= github.com/smartcontractkit/chainlink-env v0.33.1/go.mod h1:hMOkTDW5k0C5B5lup1+xpPiZQPkq84YGLuFDVdTKU7A= -github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230531014621-9c303da4c086 h1:d2WiCTnsCtA16KVabnX3E9SZH1irp2/d0MLT0/UI3XY= -github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230531014621-9c303da4c086/go.mod h1:zfUba6Okm7zTBxap24I78Vq9z+twHmjXSMBAl2C2Qgc= -github.com/smartcontractkit/chainlink-starknet/relayer v0.0.0-20230530233948-90c8af98011e h1:0g2/8OSVFxbGQ2L7FTDo29t90ItOf+1CI2zOn3DBwHM= -github.com/smartcontractkit/chainlink-testing-framework v1.11.5 h1:gYSnOQhLxgE0mxwnv015nNnPgH9kcosx+AzPboEFo38= -github.com/smartcontractkit/chainlink-testing-framework v1.11.5/go.mod h1:0ktPcDE5fFSvNewsaHuC4tGVaiCMQsl5RN/cWO5k0rg= -github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230418232145-9b83bdc20e8a h1:P4SBSDeAaBqWBoOiYLberqn68/ziF8lSubfySCTjEZI= -github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230418232145-9b83bdc20e8a/go.mod h1:yEBKMo/0B2q2U7peHWTUiAVYU0swpgrBGP87ZUBcsvg= -github.com/smartcontractkit/chainlink/v2 v2.2.0-mercury-20230527.0.20230531021143-790758f0bd08 h1:WgEteBcWB+t+Na8K1GReIM6SS1CPxyO6/sST5L9NSsQ= -github.com/smartcontractkit/chainlink/v2 v2.2.0-mercury-20230527.0.20230531021143-790758f0bd08/go.mod h1:euMZJQMObJPBsmMD8Klvy/xvXg/hOzbU2D4eal8phiM= -github.com/smartcontractkit/libocr v0.0.0-20230525150148-a75f6e244bb3 h1:/Gel/U5eIZ/BGGr25OrHaXiVDTAJ5DYX5+UlXp3q7Gg= -github.com/smartcontractkit/libocr v0.0.0-20230525150148-a75f6e244bb3/go.mod h1:5JnCHuYgmIP9ZyXzgAfI5Iwu0WxBtBKp+ApeT5o1Cjw= -github.com/smartcontractkit/ocr2keepers v0.6.15 h1:dFhg+qT+tc6b3G8N4qnAHuHe8N0m8CSA8g4YGSeTGPo= -github.com/smartcontractkit/ocr2keepers v0.6.15/go.mod h1:gqIksJFzdXFsHfGdCWm1uTxbwvAltgcwcaqIgAStC1A= -github.com/smartcontractkit/ocr2vrf v0.0.0-20230510102715-c58be582bf19 h1:RxaC+V34UEP2u/riXfcvWPZEglri4UsfQi5joUObZ08= -github.com/smartcontractkit/ocr2vrf v0.0.0-20230510102715-c58be582bf19/go.mod h1:AZbOisIoA3cOUku8suZ+KWBnzbRiafmhi7UKiXoezrk= +github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230620171700-bbcb3a99b7d3 h1:rlNWHk15A2im/e9U95q4AkHZk5Wbc77lpx6ys4kUyCE= +github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230620171700-bbcb3a99b7d3/go.mod h1:MfZBUifutkv3aK7abyw5YmTJbqt8iFwcQDFikrxC/uI= +github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20230622060316-7ce48476dd7d h1:4jSCp6i/p/EIaAkYQDxPK8nXDuv0fBXzKIcVYzetCoI= +github.com/smartcontractkit/chainlink-testing-framework v1.12.0 h1:i8DgfDHkNjJ4yGhno9V7eVRyReZNj4r/fegPDLpGgcs= +github.com/smartcontractkit/chainlink-testing-framework v1.12.0/go.mod h1:yPCQgZEkKK56mOAnsvSsnMnnT+3I6sAWJVxG9t3iRgQ= +github.com/smartcontractkit/chainlink/v2 v2.2.1-0.20230713025544-29b418df4ded h1:ohu+8roGude0mrwE+hAa45hSx8PD9YWrn2f95aDV2I8= +github.com/smartcontractkit/chainlink/v2 v2.2.1-0.20230713025544-29b418df4ded/go.mod h1:3xtrqeN9j4gEzShUbKr4pAYz/4St25xH2U7uhJFAgQM= +github.com/smartcontractkit/libocr v0.0.0-20230606215712-82b910bef5c1 h1:caG9BWjnCxN/HPBA5ltDGadDraZAsjGIct4S8lh8D5c= +github.com/smartcontractkit/libocr v0.0.0-20230606215712-82b910bef5c1/go.mod h1:2lyRkw/qLQgUWlrWWmq5nj0y90rWeO6Y+v+fCakRgb0= +github.com/smartcontractkit/ocr2keepers v0.7.1-0.20230712182556-93ccfc7b283f h1:ETi9E7jAFAQ62oPSxPeZegLdBMzIQ3vXy7qnMQTuNYM= +github.com/smartcontractkit/ocr2keepers v0.7.1-0.20230712182556-93ccfc7b283f/go.mod h1:13Q6zuYWLByKXzzcSoi7L01bT8OzxM//XgMZQeCZVP0= +github.com/smartcontractkit/ocr2vrf v0.0.0-20230616201444-d8b4222aff3c h1:BX1ibMdGE2QdD8rJEI5nxE4jA6v2bf7LULrSbDrNM+A= +github.com/smartcontractkit/ocr2vrf v0.0.0-20230616201444-d8b4222aff3c/go.mod h1:AT1OrDDOCd8vzmMsCnA70N+tZdq9AbdZAiAw+gQq260= github.com/smartcontractkit/sqlx v1.3.5-0.20210805004948-4be295aacbeb h1:OMaBUb4X9IFPLbGbCHsMU+kw/BPCrewaVwWGIBc0I4A= github.com/smartcontractkit/sqlx v1.3.5-0.20210805004948-4be295aacbeb/go.mod h1:HNUu4cJekUdsJbwRBCiOybtkPJEfGRELQPe2tkoDEyk= +github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20230616141813-ca0ecf03ca5c h1:B7jWegIHCHXY32qWGwlNalrJYSz4uZh5zAgd2rQ3Iyc= +github.com/smartcontractkit/tdh2/go/tdh2 v0.0.0-20230625174811-4934857d1c4a h1:/ZJnNxcdJ75yDJHnKMjd3G9oZ6lcQRvFUdmiR2DPAgQ= github.com/smartcontractkit/wsrpc v0.7.2 h1:iBXzMeg7vc5YoezIQBq896y25BARw7OKbhrb6vPbtRQ= github.com/smartcontractkit/wsrpc v0.7.2/go.mod h1:sj7QX2NQibhkhxTfs3KOhAj/5xwgqMipTvJVSssT9i0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -1353,15 +1367,15 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw= -github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= +github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= -github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= -github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= +github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -1371,8 +1385,8 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.14.0 h1:Rg7d3Lo706X9tHsJMUjdiwMpHB7W8WnSVOssIY+JElU= -github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= +github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= +github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/R4aaNBc= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= @@ -1396,11 +1410,12 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= -github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= +github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/syndtr/goleveldb v1.0.1-0.20220614013038-64ee5596c38a h1:1ur3QoCqvE5fl+nylMaIr9PVV1w343YRDtsy+Rwu7XI= github.com/syndtr/goleveldb v1.0.1-0.20220614013038-64ee5596c38a/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= @@ -1431,8 +1446,9 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= -github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= @@ -1445,12 +1461,12 @@ github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljT github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/ulule/limiter/v3 v3.11.1 h1:wm6YaA2JwIXc0S+z8TK8/neWMOTf4m20I5jL1dwLRcw= +github.com/ulule/limiter/v3 v3.11.2 h1:P4yOrxoEMJbOTfRJR2OzjL90oflzYPPmWg+dvwN2tHA= github.com/umbracle/ethgo v0.1.3 h1:s8D7Rmphnt71zuqrgsGTMS5gTNbueGO1zKLh7qsFzTM= github.com/umbracle/ethgo v0.1.3/go.mod h1:g9zclCLixH8liBI27Py82klDkW7Oo33AxUOr+M9lzrU= github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722 h1:10Nbw6cACsnQm7r34zlpJky+IzxVLRk6MKTS2d3Vp0E= github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722/go.mod h1:c8J0h9aULj2i3umrfyestM6jCq0LK0U6ly6bWy96nd4= -github.com/unrolled/secure v0.0.0-20190624173513-716474489ad3 h1:Is9lt18DCzmbgaXowC/LuO1prTus8ejfgMn+GelBuHs= +github.com/unrolled/secure v1.13.0 h1:sdr3Phw2+f8Px8HE5sd1EHdj1aV3yUwed/uZXChLFsk= github.com/urfave/cli v1.22.13 h1:wsLILXG8qCJNse/qAgLNf23737Cx05GflHg/PJGe1Ok= github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa h1:5SqCsI/2Qya2bCzK15ozrqo2sZxkh0FHynJZOTVoV6Q= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= @@ -1495,8 +1511,9 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/zondax/hid v0.9.0 h1:eiT3P6vNxAEVxXMw66eZUAAnU2zD33JBkfG/EnfAKl8= github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= @@ -1504,8 +1521,8 @@ go.dedis.ch/fixbuf v1.0.3 h1:hGcV9Cd/znUxlusJ64eAlExS+5cJDIyTyEG+otu5wQs= go.dedis.ch/fixbuf v1.0.3/go.mod h1:yzJMt34Wa5xD37V5RTdmp38cz3QhMagdGoem9anUalw= go.dedis.ch/kyber/v3 v3.0.4/go.mod h1:OzvaEnPvKlyrWyp3kGXlFdp7ap1VC6RkZDTaPikqhsQ= go.dedis.ch/kyber/v3 v3.0.9/go.mod h1:rhNjUUg6ahf8HEg5HUvVBYoWY4boAafX8tYxX+PS+qg= -go.dedis.ch/kyber/v3 v3.0.14 h1:vnHb/Q5ape/e98oYZdbOrs3CkQ1bUIZFANmOxb/3zyo= -go.dedis.ch/kyber/v3 v3.0.14/go.mod h1:kXy7p3STAurkADD+/aZcsznZGKVHEqbtmdIzvPfrs1U= +go.dedis.ch/kyber/v3 v3.1.0 h1:ghu+kiRgM5JyD9TJ0hTIxTLQlJBR/ehjWvWwYW3XsC0= +go.dedis.ch/kyber/v3 v3.1.0/go.mod h1:kXy7p3STAurkADD+/aZcsznZGKVHEqbtmdIzvPfrs1U= go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRLo= go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11 h1:FTYVIEzY/bfl37lu3pR4lIj+F9Vp1jE8oh91VmxKgLo= @@ -1513,8 +1530,9 @@ go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYr go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= -go.mongodb.org/mongo-driver v1.11.0 h1:FZKhBSTydeuffHj9CBjXlR8vQLee1cQyTWYPA6/tqiE= go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= +go.mongodb.org/mongo-driver v1.11.3 h1:Ql6K6qYHEzB6xvu4+AU0BoRoqf9vFPcc4o7MUIdPW8Y= +go.mongodb.org/mongo-driver v1.11.3/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= @@ -1524,6 +1542,16 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0 h1:ZOLJc06r4CB42laIXg/7udr0pbZyuAihN10A/XuiQRY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0/go.mod h1:5z+/ZWJQKXa9YT34fQNx5K8Hd1EoIhvtUygUQPqEOgQ= +go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s= +go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= +go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo= +go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4= +go.opentelemetry.io/otel/sdk v1.16.0 h1:Z1Ok1YsijYL0CSJpHt4cS3wDDh7p572grzNrBMiMWgE= +go.opentelemetry.io/otel/sdk v1.16.0/go.mod h1:tMsIuKXuuIWPBAOrH+eHtvhTL+SntFtXF9QD68aP6p4= +go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs= +go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.starlark.net v0.0.0-20220817180228-f738f5508c12 h1:xOBJXWGEDwU5xSDxH6macxO11Us0AH2fTa9rmsbbF7g= go.starlark.net v0.0.0-20220817180228-f738f5508c12/go.mod h1:VZcBMdr3cT3PnBoWunTabuSEXwVAH+ZJ5zxfs3AdASk= @@ -1557,8 +1585,8 @@ go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= -golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.4.0 h1:A8WCeEWhLwPBKNbFi5Wv5UTCBx5zzubnXDlMOFAzFMc= +golang.org/x/arch v0.4.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1596,8 +1624,8 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1608,8 +1636,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6Rrf6TF9htwo2pJVSjIU= -golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df h1:UA2aFVmmsIlefxMk29Dp2juaUSth8Pyn3Tq5Y5mJGME= +golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1637,8 +1665,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1686,6 +1714,7 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -1696,8 +1725,8 @@ golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1707,9 +1736,10 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210413134643-5e61552d6c78/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= -golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1723,8 +1753,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1811,15 +1841,16 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1830,8 +1861,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1905,8 +1936,8 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo= -golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.11.0 h1:EMCa6U9S2LtZXLAMoWiR/R8dAQFRqbAitmbJ2UKhoi8= +golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1916,8 +1947,8 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= -gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= -gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= +gonum.org/v1/gonum v0.13.0 h1:a0T3bh+7fhRyqeNbiC3qVHYmkiQgit3wnNan/2c0HMM= +gonum.org/v1/gonum v0.13.0/go.mod h1:/WPYRckkfWrhWefxyYTfrTtQR0KH4iyHNuzxqXAKyAU= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1980,6 +2011,7 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1990,8 +2022,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc h1:8DyZCyvI8mE1IdLy/60bS+52xfymkE72wv1asokgtao= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc h1:kVKPf/IiYSBWEWtkIn6wZXwWGCnLKcC8oWfZvXjsGnM= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc h1:XSJ8Vk1SWuNr8S18z1NZSziL0CPIXLCCMDOEFtHBOFc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -2014,10 +2050,12 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc/examples v0.0.0-20210424002626-9572fd6faeae/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -2032,8 +2070,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -2094,30 +2132,30 @@ k8s.io/api v0.25.4 h1:3YO8J4RtmG7elEgaWMb4HgmpS2CfY1QlaOz9nwB+ZSs= k8s.io/api v0.25.4/go.mod h1:IG2+RzyPQLllQxnhzD8KQNEu4c4YvyDTpSMztf4A0OQ= k8s.io/apiextensions-apiserver v0.25.3 h1:bfI4KS31w2f9WM1KLGwnwuVlW3RSRPuIsfNF/3HzR0k= k8s.io/apiextensions-apiserver v0.25.3/go.mod h1:ZJqwpCkxIx9itilmZek7JgfUAM0dnTsA48I4krPqRmo= -k8s.io/apimachinery v0.25.11 h1:2EhfdrSAMvBxsswvOGCEymKk4ZnHZkranuZqdR0rsO4= -k8s.io/apimachinery v0.25.11/go.mod h1:IFwbcNi3gKkfDhuy0VYu3+BwbxbiIov3p6FR8ge1Epc= +k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= +k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= k8s.io/cli-runtime v0.25.11 h1:GE2yNZm1tN+MJtw1SGMOLesLF7Kp7NVAVqRSTbXfu4o= k8s.io/cli-runtime v0.25.11/go.mod h1:r/nEINuHVEpgGhcd2WamU7hD1t/lMnSz8XM44Autltc= k8s.io/client-go v0.25.4 h1:3RNRDffAkNU56M/a7gUfXaEzdhZlYhoW8dgViGy5fn8= k8s.io/client-go v0.25.4/go.mod h1:8trHCAC83XKY0wsBIpbirZU4NTUpbuhc2JnI7OruGZw= k8s.io/component-base v0.25.11 h1:3QmISCE9n9CJkVpTA4spQO1IZCrLlOwbKdzSN9dqZZA= k8s.io/component-base v0.25.11/go.mod h1:wFR4pfB+xTc6FBak+RoWRNeTmelGE4XWJP/xVOvn3vM= -k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= -k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E= -k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= +k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= +k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= +k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= k8s.io/kubectl v0.25.11 h1:6bsft5Gan6BCvQ7cJbDRFjTm4Zfq8GuUYpsWAdVngYE= k8s.io/kubectl v0.25.11/go.mod h1:8mIfgkFgT+yJ8/TlmPW1qoRh46H2si9q5nW8id7i9iM= -k8s.io/utils v0.0.0-20221107191617-1a15be271d1d h1:0Smp/HP1OH4Rvhe+4B8nWGERtlqAGSftbSbbmm45oFs= -k8s.io/utils v0.0.0-20221107191617-1a15be271d1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20230308161112-d77c459e9343 h1:m7tbIjXGcGIAtpmQr7/NAi7RsWoW3E7Zcm4jI1HicTc= +k8s.io/utils v0.0.0-20230308161112-d77c459e9343/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= -sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= -sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM= sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s= sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk= diff --git a/integration-tests/smoke/ocr2_test.go b/integration-tests/smoke/ocr2_test.go index 6d899afd7..01cf19b55 100644 --- a/integration-tests/smoke/ocr2_test.go +++ b/integration-tests/smoke/ocr2_test.go @@ -46,6 +46,8 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { state.SetupClients() state.NodeKeysBundle, err = state.Common.CreateNodeKeysBundle(state.ChainlinkNodes) require.NoError(t, err) + err = state.Common.CreateSolanaChainAndNode(state.ChainlinkNodes) + require.NoError(t, err) gauntletConfig := state.ConfigureGauntlet(secret) err = sg.SetupNetwork(gauntletConfig) @@ -117,9 +119,9 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { } bootstrapPeers := []client.P2PData{ { - RemoteIP: state.ChainlinkNodes[0].RemoteIP(), - RemotePort: "6690", - PeerID: state.NodeKeysBundle[0].PeerID, + InternalIP: state.ChainlinkNodes[0].InternalIP(), + InternalPort: "6690", + PeerID: state.NodeKeysBundle[0].PeerID, }, } jobSpec := &client.OCR2TaskJobSpec{ @@ -142,7 +144,7 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { RequestData: "{}", } - observationSource := client.ObservationSourceSpecBridge(sourceValueBridge) + observationSource := client.ObservationSourceSpecBridge(&sourceValueBridge) bridgeInfo := common.BridgeInfo{ObservationSource: observationSource} err = state.ChainlinkNodes[0].MustCreateBridge(&sourceValueBridge) require.NoError(t, err) From 4068f517704ab066838e57490395f446f5e5981a Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Wed, 19 Jul 2023 09:00:18 +0200 Subject: [PATCH 31/41] Rebase --- integration-tests/go.sum | 1 + 1 file changed, 1 insertion(+) diff --git a/integration-tests/go.sum b/integration-tests/go.sum index db0bae562..62c1f26de 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -108,6 +108,7 @@ github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0= +github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbKhM= github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= From 56428da2646f0dfad71646b545a72d576655caee Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Wed, 19 Jul 2023 10:01:19 +0200 Subject: [PATCH 32/41] Removed local replace from go mod and fixed cleanup script --- integration-tests/common/test_common.go | 17 ++--------------- integration-tests/go.mod | 2 -- integration-tests/go.sum | 2 ++ integration-tests/smoke/ocr2_test.go | 19 ++++++++++++++++++- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/integration-tests/common/test_common.go b/integration-tests/common/test_common.go index 3bbc497e2..a7cbc777c 100644 --- a/integration-tests/common/test_common.go +++ b/integration-tests/common/test_common.go @@ -9,15 +9,11 @@ import ( "testing" "time" - "github.com/smartcontractkit/chainlink-testing-framework/utils" - "github.com/stretchr/testify/require" - "go.uber.org/zap/zapcore" - "github.com/onsi/gomega" "github.com/smartcontractkit/chainlink-env/environment" - "github.com/smartcontractkit/chainlink/integration-tests/actions" - "github.com/smartcontractkit/chainlink-solana/integration-tests/solclient" + "github.com/smartcontractkit/chainlink-testing-framework/utils" + "github.com/stretchr/testify/require" ctfClient "github.com/smartcontractkit/chainlink-testing-framework/client" "github.com/smartcontractkit/chainlink/integration-tests/client" @@ -170,16 +166,7 @@ func (m *OCRv2TestState) LabelChaosGroups() { } func (m *OCRv2TestState) DeployCluster(contractsDir string) { - l := utils.GetTestLogger(m.T) m.DeployEnv(contractsDir) - if m.Common.Env.WillUseRemoteRunner() { - return - } - m.T.Cleanup(func() { - if err := actions.TeardownSuite(m.T, m.Common.Env, "logs", m.ChainlinkNodes, nil, zapcore.PanicLevel, nil); err != nil { - l.Error().Err(err).Msg("Error tearing down environment") - } - }) m.SetupClients() m.DeployContracts(contractsDir) m.CreateJobs() diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 7c6f57044..91c928c8c 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -408,8 +408,6 @@ replace ( // Some dependency keeps trying to update this to an unstable version github.com/satori/go.uuid => github.com/satori/go.uuid v1.2.0 - github.com/smartcontractkit/chainlink/integration-tests => ../../chainlink/integration-tests - // K8s imports are weird k8s.io/api => k8s.io/api v0.25.4 k8s.io/client-go => k8s.io/client-go v0.25.4 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 62c1f26de..b2a04021a 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1343,6 +1343,8 @@ github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230620171700-bbcb3a99b7d3 github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20230622060316-7ce48476dd7d h1:4jSCp6i/p/EIaAkYQDxPK8nXDuv0fBXzKIcVYzetCoI= github.com/smartcontractkit/chainlink-testing-framework v1.12.0 h1:i8DgfDHkNjJ4yGhno9V7eVRyReZNj4r/fegPDLpGgcs= github.com/smartcontractkit/chainlink-testing-framework v1.12.0/go.mod h1:yPCQgZEkKK56mOAnsvSsnMnnT+3I6sAWJVxG9t3iRgQ= +github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230713025544-29b418df4ded h1:ByQpagkr0ne7Zy6ruoZcmtTqBopAsInk1BJwaT3eQrE= +github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230713025544-29b418df4ded/go.mod h1:KCQ3I8BDGMMsJWACIYpqEANG1ExCQ3mgxthqmZePMoc= github.com/smartcontractkit/chainlink/v2 v2.2.1-0.20230713025544-29b418df4ded h1:ohu+8roGude0mrwE+hAa45hSx8PD9YWrn2f95aDV2I8= github.com/smartcontractkit/chainlink/v2 v2.2.1-0.20230713025544-29b418df4ded/go.mod h1:3xtrqeN9j4gEzShUbKr4pAYz/4St25xH2U7uhJFAgQM= github.com/smartcontractkit/libocr v0.0.0-20230606215712-82b910bef5c1 h1:caG9BWjnCxN/HPBA5ltDGadDraZAsjGIct4S8lh8D5c= diff --git a/integration-tests/smoke/ocr2_test.go b/integration-tests/smoke/ocr2_test.go index 01cf19b55..cb70f2040 100644 --- a/integration-tests/smoke/ocr2_test.go +++ b/integration-tests/smoke/ocr2_test.go @@ -10,10 +10,12 @@ import ( "github.com/smartcontractkit/chainlink-solana/integration-tests/gauntlet" "github.com/smartcontractkit/chainlink-solana/integration-tests/solclient" ctfUtils "github.com/smartcontractkit/chainlink-testing-framework/utils" + "github.com/smartcontractkit/chainlink/integration-tests/actions" "github.com/smartcontractkit/chainlink/integration-tests/client" "github.com/smartcontractkit/chainlink/v2/core/services/job" "github.com/smartcontractkit/chainlink/v2/core/store/models" "github.com/stretchr/testify/assert" + "go.uber.org/zap/zapcore" "gopkg.in/guregu/null.v4" "sort" "testing" @@ -26,16 +28,23 @@ import ( ) func TestSolanaOCRV2Smoke(t *testing.T) { + l := ctfUtils.GetTestLogger(t) state := common.NewOCRv2State(t, 1, "smoke", "localnet") state.DeployCluster(utils.ContractsDir) if state.Common.Env.WillUseRemoteRunner() { return } + t.Cleanup(func() { + if err := actions.TeardownSuite(t, state.Common.Env, "logs", state.ChainlinkNodes, nil, zapcore.PanicLevel, nil); err != nil { + l.Error().Err(err).Msg("Error tearing down environment") + } + }) state.SetAllAdapterResponsesToTheSameValue(10) state.ValidateRoundsAfter(time.Now(), common.NewRoundCheckTimeout, 1) } func TestSolanaGauntletOCRV2Smoke(t *testing.T) { + l := ctfUtils.GetTestLogger(t) secret := "this is an testing only secret" state := common.NewOCRv2State(t, 1, "gauntlet", "devnet") sg, err := gauntlet.NewSolanaGauntlet(fmt.Sprintf("%s/gauntlet", utils.ProjectRoot)) @@ -43,6 +52,15 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { err = state.Common.Env.Run() require.NoError(t, err) + if state.Common.Env.WillUseRemoteRunner() { + return + } + t.Cleanup(func() { + if err := actions.TeardownSuite(t, state.Common.Env, "logs", state.ChainlinkNodes, nil, zapcore.PanicLevel, nil); err != nil { + l.Error().Err(err).Msg("Error tearing down environment") + } + }) + state.SetupClients() state.NodeKeysBundle, err = state.Common.CreateNodeKeysBundle(state.ChainlinkNodes) require.NoError(t, err) @@ -191,7 +209,6 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { } // Test start - l := ctfUtils.GetTestLogger(t) for i := 1; i < 10; i++ { transmissions, err := sg.FetchTransmissions(sg.OcrAddress) require.NoError(t, err) From ac7dc9dd70f8c367910ac18c6cdbf0b1d529c84a Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Thu, 20 Jul 2023 08:41:24 +0200 Subject: [PATCH 33/41] Removed unused code --- integration-tests/common/test_common.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/integration-tests/common/test_common.go b/integration-tests/common/test_common.go index a7cbc777c..5caa567ed 100644 --- a/integration-tests/common/test_common.go +++ b/integration-tests/common/test_common.go @@ -111,6 +111,7 @@ type ProposalAcceptConfig struct { } func NewOCRv2State(t *testing.T, contracts int, namespacePrefix string, env string) *OCRv2TestState { + state := &OCRv2TestState{ Mu: &sync.Mutex{}, LastRoundTime: make(map[string]time.Time), @@ -119,6 +120,7 @@ func NewOCRv2State(t *testing.T, contracts int, namespacePrefix string, env stri Client: &solclient.Client{}, T: t, } + state.Client.Config = state.Client.Config.Default() for i := 0; i < contracts; i++ { state.ContractsNodeSetup[i] = &ContractNodeInfo{} @@ -192,9 +194,6 @@ func (m *OCRv2TestState) UploadProgramBinaries(contractsDir string) { func (m *OCRv2TestState) DeployEnv(contractsDir string) { err := m.Common.Env.Run() require.NoError(m.T, err) - if m.Common.Env.WillUseRemoteRunner() { - return - } m.Common.SolanaUrl = m.Common.Env.URLs[m.Client.Config.Name][0] m.UploadProgramBinaries(contractsDir) From 55718090cf23007cd00d647c1b3dad3e0f0433e1 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Fri, 21 Jul 2023 08:05:38 +0200 Subject: [PATCH 34/41] Checking issue with teardown --- integration-tests/common/test_common.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/integration-tests/common/test_common.go b/integration-tests/common/test_common.go index 5caa567ed..ca9fc4ac4 100644 --- a/integration-tests/common/test_common.go +++ b/integration-tests/common/test_common.go @@ -2,6 +2,8 @@ package common import ( "fmt" + "github.com/smartcontractkit/chainlink/integration-tests/actions" + "go.uber.org/zap/zapcore" "math/big" "os" "strings" @@ -168,7 +170,16 @@ func (m *OCRv2TestState) LabelChaosGroups() { } func (m *OCRv2TestState) DeployCluster(contractsDir string) { + l := utils.GetTestLogger(m.T) m.DeployEnv(contractsDir) + if m.Common.Env.WillUseRemoteRunner() { + return + } + m.T.Cleanup(func() { + if err := actions.TeardownSuite(m.T, m.Common.Env, "logs", m.ChainlinkNodes, nil, zapcore.PanicLevel, nil); err != nil { + l.Error().Err(err).Msg("Error tearing down environment") + } + }) m.SetupClients() m.DeployContracts(contractsDir) m.CreateJobs() From 080f1e42f20195bdc343516ca5d60f3327cb684c Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Fri, 21 Jul 2023 08:37:17 +0200 Subject: [PATCH 35/41] Bumped CI for chainlink env --- .github/workflows/e2e_custom_cl.yml | 6 +++--- integration-tests/common/test_common.go | 11 ----------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 1b600d74b..8356a6f2e 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -47,7 +47,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@c46244485685a0c0b1bea657b8602360378e4cd7 # v3.5.0 with: repository: chainlink-solana-tests tag: ${{ github.sha }} @@ -84,7 +84,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@c46244485685a0c0b1bea657b8602360378e4cd7 # v3.5.0 with: repository: chainlink tag: solana.${{ github.sha }} @@ -161,7 +161,7 @@ jobs: - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Run Tests - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@c46244485685a0c0b1bea657b8602360378e4cd7 # v3.5.0 with: test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -run TestSolanaOCRV2Smoke -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt go_mod_path: ./integration-tests/go.mod diff --git a/integration-tests/common/test_common.go b/integration-tests/common/test_common.go index ca9fc4ac4..5caa567ed 100644 --- a/integration-tests/common/test_common.go +++ b/integration-tests/common/test_common.go @@ -2,8 +2,6 @@ package common import ( "fmt" - "github.com/smartcontractkit/chainlink/integration-tests/actions" - "go.uber.org/zap/zapcore" "math/big" "os" "strings" @@ -170,16 +168,7 @@ func (m *OCRv2TestState) LabelChaosGroups() { } func (m *OCRv2TestState) DeployCluster(contractsDir string) { - l := utils.GetTestLogger(m.T) m.DeployEnv(contractsDir) - if m.Common.Env.WillUseRemoteRunner() { - return - } - m.T.Cleanup(func() { - if err := actions.TeardownSuite(m.T, m.Common.Env, "logs", m.ChainlinkNodes, nil, zapcore.PanicLevel, nil); err != nil { - l.Error().Err(err).Msg("Error tearing down environment") - } - }) m.SetupClients() m.DeployContracts(contractsDir) m.CreateJobs() From ec68228043f44d7e5b15c11d24631052fd6e1009 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Fri, 21 Jul 2023 08:45:51 +0200 Subject: [PATCH 36/41] Bumped CI for chainlink env --- .github/workflows/e2e_custom_cl.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 8356a6f2e..b71f78240 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -47,7 +47,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@c46244485685a0c0b1bea657b8602360378e4cd7 # v3.5.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ab53e6ea68e772cbeb66a5b81b23b3887275b41f # v3.5.0 with: repository: chainlink-solana-tests tag: ${{ github.sha }} @@ -84,7 +84,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@c46244485685a0c0b1bea657b8602360378e4cd7 # v3.5.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ab53e6ea68e772cbeb66a5b81b23b3887275b41f # v3.5.0 with: repository: chainlink tag: solana.${{ github.sha }} @@ -92,7 +92,7 @@ jobs: AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} - name: Build Image if: steps.check-image.outputs.exists == 'false' - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@d5ab9fe53da374dd789b5d9ef10f3282197e088d # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@ab53e6ea68e772cbeb66a5b81b23b3887275b41f # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 with: cl_repo: smartcontractkit/chainlink cl_ref: ${{ github.event.inputs.cl_branch_ref }} @@ -161,7 +161,7 @@ jobs: - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Run Tests - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@c46244485685a0c0b1bea657b8602360378e4cd7 # v3.5.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ab53e6ea68e772cbeb66a5b81b23b3887275b41f # v3.5.0 with: test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -run TestSolanaOCRV2Smoke -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt go_mod_path: ./integration-tests/go.mod From 48ef1d394f20f4827266e6be5ccf5afbba139644 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Fri, 21 Jul 2023 08:48:19 +0200 Subject: [PATCH 37/41] Bumped CI for chainlink env --- .github/workflows/e2e_custom_cl.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index b71f78240..1b600d74b 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -47,7 +47,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ab53e6ea68e772cbeb66a5b81b23b3887275b41f # v3.5.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 with: repository: chainlink-solana-tests tag: ${{ github.sha }} @@ -84,7 +84,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ab53e6ea68e772cbeb66a5b81b23b3887275b41f # v3.5.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 with: repository: chainlink tag: solana.${{ github.sha }} @@ -92,7 +92,7 @@ jobs: AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} - name: Build Image if: steps.check-image.outputs.exists == 'false' - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@ab53e6ea68e772cbeb66a5b81b23b3887275b41f # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/build-image@d5ab9fe53da374dd789b5d9ef10f3282197e088d # we will want to switch to this once cosmos settles back down 336617ae6d70fec60c15cc3382e17a4d2615a801 # v2.2.0 with: cl_repo: smartcontractkit/chainlink cl_ref: ${{ github.event.inputs.cl_branch_ref }} @@ -161,7 +161,7 @@ jobs: - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Run Tests - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ab53e6ea68e772cbeb66a5b81b23b3887275b41f # v3.5.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 with: test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -run TestSolanaOCRV2Smoke -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt go_mod_path: ./integration-tests/go.mod From 79e9c80da698dc9b996c0464a72a05c08f0c8e87 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Mon, 24 Jul 2023 07:58:27 +0200 Subject: [PATCH 38/41] Bumped chainlink env --- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 91c928c8c..770e5dce9 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -12,7 +12,7 @@ require ( github.com/onsi/gomega v1.27.8 github.com/rs/zerolog v1.29.1 github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b - github.com/smartcontractkit/chainlink-env v0.33.1 + github.com/smartcontractkit/chainlink-env v0.35.0 github.com/smartcontractkit/chainlink-solana v1.0.3-0.20230612131011-369bfb503592 github.com/smartcontractkit/chainlink-testing-framework v1.12.0 github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230713025544-29b418df4ded diff --git a/integration-tests/go.sum b/integration-tests/go.sum index b2a04021a..54b854c76 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1336,8 +1336,8 @@ github.com/slack-go/slack v0.12.2/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQ github.com/smartcontractkit/caigo v0.0.0-20230621050857-b29a4ca8c704 h1:T3lFWumvbfM1u/etVq42Afwq/jtNSBSOA8n5jntnNPo= github.com/smartcontractkit/caigo v0.0.0-20230621050857-b29a4ca8c704/go.mod h1:2QuJdEouTWjh5BDy5o/vgGXQtR4Gz8yH1IYB5eT7u4M= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20230525203711-20bed74ac906 h1:u7Lw7oqLEjADlJPJQnzlCLNSbj038QttaKY0lCa3V78= -github.com/smartcontractkit/chainlink-env v0.33.1 h1:nSQixUh5cPSp9MpOJxqJHJ/tRWIDxR0OUvGuKhSJOok= -github.com/smartcontractkit/chainlink-env v0.33.1/go.mod h1:hMOkTDW5k0C5B5lup1+xpPiZQPkq84YGLuFDVdTKU7A= +github.com/smartcontractkit/chainlink-env v0.35.0 h1:bjF+OOqWJUEIGmoiOZ6k1D4q6J6S/MqD269m37u0Ub8= +github.com/smartcontractkit/chainlink-env v0.35.0/go.mod h1:hMOkTDW5k0C5B5lup1+xpPiZQPkq84YGLuFDVdTKU7A= github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230620171700-bbcb3a99b7d3 h1:rlNWHk15A2im/e9U95q4AkHZk5Wbc77lpx6ys4kUyCE= github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230620171700-bbcb3a99b7d3/go.mod h1:MfZBUifutkv3aK7abyw5YmTJbqt8iFwcQDFikrxC/uI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20230622060316-7ce48476dd7d h1:4jSCp6i/p/EIaAkYQDxPK8nXDuv0fBXzKIcVYzetCoI= From b31d72f3e8b3ad869733338f52fbcf3c0e025c99 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Mon, 24 Jul 2023 08:23:06 +0200 Subject: [PATCH 39/41] Bumped CTF --- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 770e5dce9..b5d00a523 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -14,7 +14,7 @@ require ( github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b github.com/smartcontractkit/chainlink-env v0.35.0 github.com/smartcontractkit/chainlink-solana v1.0.3-0.20230612131011-369bfb503592 - github.com/smartcontractkit/chainlink-testing-framework v1.12.0 + github.com/smartcontractkit/chainlink-testing-framework v1.14.0 github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230713025544-29b418df4ded github.com/smartcontractkit/chainlink/v2 v2.2.1-0.20230713025544-29b418df4ded github.com/smartcontractkit/libocr v0.0.0-20230606215712-82b910bef5c1 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 54b854c76..92a9c676b 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1341,8 +1341,8 @@ github.com/smartcontractkit/chainlink-env v0.35.0/go.mod h1:hMOkTDW5k0C5B5lup1+x github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230620171700-bbcb3a99b7d3 h1:rlNWHk15A2im/e9U95q4AkHZk5Wbc77lpx6ys4kUyCE= github.com/smartcontractkit/chainlink-relay v0.1.7-0.20230620171700-bbcb3a99b7d3/go.mod h1:MfZBUifutkv3aK7abyw5YmTJbqt8iFwcQDFikrxC/uI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20230622060316-7ce48476dd7d h1:4jSCp6i/p/EIaAkYQDxPK8nXDuv0fBXzKIcVYzetCoI= -github.com/smartcontractkit/chainlink-testing-framework v1.12.0 h1:i8DgfDHkNjJ4yGhno9V7eVRyReZNj4r/fegPDLpGgcs= -github.com/smartcontractkit/chainlink-testing-framework v1.12.0/go.mod h1:yPCQgZEkKK56mOAnsvSsnMnnT+3I6sAWJVxG9t3iRgQ= +github.com/smartcontractkit/chainlink-testing-framework v1.14.0 h1:XJSE2xnXCij1Pdnykg1YUeFwfuaDQmpiMHQmygf2xYk= +github.com/smartcontractkit/chainlink-testing-framework v1.14.0/go.mod h1:Wio/JS9GuEAWOI0k46sUs4+/wLMZnZKz9IwCpdV/miY= github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230713025544-29b418df4ded h1:ByQpagkr0ne7Zy6ruoZcmtTqBopAsInk1BJwaT3eQrE= github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20230713025544-29b418df4ded/go.mod h1:KCQ3I8BDGMMsJWACIYpqEANG1ExCQ3mgxthqmZePMoc= github.com/smartcontractkit/chainlink/v2 v2.2.1-0.20230713025544-29b418df4ded h1:ohu+8roGude0mrwE+hAa45hSx8PD9YWrn2f95aDV2I8= From bb727853cf256eda57c33921579e0cdd2e7f7ae2 Mon Sep 17 00:00:00 2001 From: Tate Date: Mon, 24 Jul 2023 08:37:04 -0600 Subject: [PATCH 40/41] Simplify remote runner by moving logic to beginning of tests --- .github/actions/build-test-image/action.yml | 2 +- .github/workflows/e2e_custom_cl.yml | 8 +++--- .github/workflows/e2e_testnet_daily.yml | 8 +++--- integration-tests/common/test_common.go | 14 +++++++++++ integration-tests/smoke/ocr2_test.go | 27 ++++++++++++++------- integration-tests/soak/ocr2_soak_test.go | 6 ++++- 6 files changed, 46 insertions(+), 19 deletions(-) diff --git a/.github/actions/build-test-image/action.yml b/.github/actions/build-test-image/action.yml index a85ccbcc6..0877c4dce 100644 --- a/.github/actions/build-test-image/action.yml +++ b/.github/actions/build-test-image/action.yml @@ -49,7 +49,7 @@ runs: file: ./integration-tests/test.Dockerfile build-args: | BASE_IMAGE=${{ inputs.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ inputs.QA_AWS_REGION }}.amazonaws.com/test-base-image - IMAGE_VERSION=v0.33.0 + IMAGE_VERSION=v0.35.0 SUITES="soak smoke" AWS_REGION: ${{ inputs.QA_AWS_REGION }} AWS_ROLE_TO_ASSUME: ${{ inputs.QA_AWS_ROLE_TO_ASSUME }} diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 1b600d74b..000981231 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -47,7 +47,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.1 with: repository: chainlink-solana-tests tag: ${{ github.sha }} @@ -84,7 +84,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.1 with: repository: chainlink tag: solana.${{ github.sha }} @@ -161,7 +161,7 @@ jobs: - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Run Tests - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.1 with: test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -run TestSolanaOCRV2Smoke -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt go_mod_path: ./integration-tests/go.mod @@ -172,4 +172,4 @@ jobs: QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} QA_KUBECONFIG: ${{ secrets.QA_KUBECONFIG }} - should_cleanup: false \ No newline at end of file + should_cleanup: false diff --git a/.github/workflows/e2e_testnet_daily.yml b/.github/workflows/e2e_testnet_daily.yml index fa907ca56..f469c3737 100644 --- a/.github/workflows/e2e_testnet_daily.yml +++ b/.github/workflows/e2e_testnet_daily.yml @@ -61,7 +61,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.1 with: repository: chainlink-solana-tests tag: ${{ github.sha }} @@ -98,7 +98,7 @@ jobs: steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.1 with: repository: chainlink tag: solana.${{ github.sha }} @@ -184,7 +184,7 @@ jobs: - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Run Tests - uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.0 + uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.1 with: test_command_to_run: cd ./integration-tests && go test -timeout 24h -count=1 -run TestSolanaGauntletOCRV2Smoke -json $(args) ./smoke 2>&1 | tee /tmp/gotest.log | gotestfmt go_mod_path: ./integration-tests/go.mod @@ -195,4 +195,4 @@ jobs: QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} QA_KUBECONFIG: ${{ secrets.QA_KUBECONFIG }} - should_cleanup: false \ No newline at end of file + should_cleanup: false diff --git a/integration-tests/common/test_common.go b/integration-tests/common/test_common.go index 5caa567ed..b45582fed 100644 --- a/integration-tests/common/test_common.go +++ b/integration-tests/common/test_common.go @@ -564,3 +564,17 @@ func (m *OCRv2TestState) ConfigureGauntlet(secret string) map[string]string { } } + +// GauntletEnvToRemoteRunner Setup the environment variables that will be needed inside the remote runner +func (m *OCRv2TestState) GauntletEnvToRemoteRunner() { + utils.SetupEnvVarsForRemoteRunner([]string{ + "RPC_URL", + "WS_URL", + "PRIVATE_KEY", + "PROGRAM_ID_OCR2", + "PROGRAM_ID_ACCESS_CONTROLLER", + "PROGRAM_ID_STORE", + "LINK_TOKEN", + "VAULT_ADDRESS", + }) +} diff --git a/integration-tests/smoke/ocr2_test.go b/integration-tests/smoke/ocr2_test.go index cb70f2040..c611909f9 100644 --- a/integration-tests/smoke/ocr2_test.go +++ b/integration-tests/smoke/ocr2_test.go @@ -3,6 +3,10 @@ package smoke import ( "context" "fmt" + "sort" + "testing" + "time" + "github.com/gagliardetto/solana-go/rpc" "github.com/gagliardetto/solana-go/rpc/ws" "github.com/lib/pq" @@ -17,9 +21,6 @@ import ( "github.com/stretchr/testify/assert" "go.uber.org/zap/zapcore" "gopkg.in/guregu/null.v4" - "sort" - "testing" - "time" "github.com/smartcontractkit/chainlink-solana/integration-tests/utils" @@ -30,10 +31,13 @@ import ( func TestSolanaOCRV2Smoke(t *testing.T) { l := ctfUtils.GetTestLogger(t) state := common.NewOCRv2State(t, 1, "smoke", "localnet") - state.DeployCluster(utils.ContractsDir) if state.Common.Env.WillUseRemoteRunner() { + // run the remote runner and exit + err := state.Common.Env.Run() + require.NoError(t, err) return } + state.DeployCluster(utils.ContractsDir) t.Cleanup(func() { if err := actions.TeardownSuite(t, state.Common.Env, "logs", state.ChainlinkNodes, nil, zapcore.PanicLevel, nil); err != nil { l.Error().Err(err).Msg("Error tearing down environment") @@ -47,14 +51,17 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { l := ctfUtils.GetTestLogger(t) secret := "this is an testing only secret" state := common.NewOCRv2State(t, 1, "gauntlet", "devnet") - sg, err := gauntlet.NewSolanaGauntlet(fmt.Sprintf("%s/gauntlet", utils.ProjectRoot)) - - err = state.Common.Env.Run() - require.NoError(t, err) - if state.Common.Env.WillUseRemoteRunner() { + // run the remote runner and exit + state.GauntletEnvToRemoteRunner() + err := state.Common.Env.Run() + require.NoError(t, err) return } + sg, err := gauntlet.NewSolanaGauntlet(fmt.Sprintf("%s/gauntlet", utils.ProjectRoot)) + require.NoError(t, err) + err = state.Common.Env.Run() + require.NoError(t, err) t.Cleanup(func() { if err := actions.TeardownSuite(t, state.Common.Env, "logs", state.ChainlinkNodes, nil, zapcore.PanicLevel, nil); err != nil { l.Error().Err(err).Msg("Error tearing down environment") @@ -74,6 +81,7 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { // Setting up RPC c := rpc.New(gauntletConfig["NODE_URL"]) wsc, err := ws.Connect(context.Background(), gauntletConfig["WS_URL"]) + require.NoError(t, err) _, err = sg.DeployOCR2() require.NoError(t, err, "Error deploying OCR") @@ -119,6 +127,7 @@ func TestSolanaGauntletOCRV2Smoke(t *testing.T) { require.NoError(t, err) err = sg.ConfigureOCR2(onChainConfig, offChainConfig, payees, proposalAccept) + require.NoError(t, err) err = state.Common.CreateSolanaChainAndNode(state.ChainlinkNodes) require.NoError(t, err) diff --git a/integration-tests/soak/ocr2_soak_test.go b/integration-tests/soak/ocr2_soak_test.go index cd60b4548..64d4e201f 100644 --- a/integration-tests/soak/ocr2_soak_test.go +++ b/integration-tests/soak/ocr2_soak_test.go @@ -5,16 +5,20 @@ import ( "time" "github.com/smartcontractkit/chainlink-solana/integration-tests/utils" + "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink-solana/integration-tests/common" ) func TestSolanaOCRV2SoakTest(t *testing.T) { state := common.NewOCRv2State(t, 5, "soak", "localnet") - state.DeployCluster(utils.ContractsDir) if state.Common.Env.WillUseRemoteRunner() { + // run the remote runner and exit + err := state.Common.Env.Run() + require.NoError(t, err) return } + state.DeployCluster(utils.ContractsDir) state.SetAllAdapterResponsesToTheSameValue(10) state.ValidateRoundsAfter(time.Now(), common.NewSoakRoundsCheckTimeout, 20000) } From b21a4867ab0f738760f1fdd4430fac9c3871933c Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Tue, 25 Jul 2023 15:30:30 +0200 Subject: [PATCH 41/41] Changed name back to custom E2E --- .github/workflows/e2e_custom_cl.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_custom_cl.yml b/.github/workflows/e2e_custom_cl.yml index 000981231..11c1308a9 100644 --- a/.github/workflows/e2e_custom_cl.yml +++ b/.github/workflows/e2e_custom_cl.yml @@ -131,7 +131,7 @@ jobs: QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} e2e_custom_run_smoke_tests: - name: E2E Run Smoke Tests + name: E2E Custom Run Smoke Tests environment: integration permissions: checks: write @@ -156,7 +156,7 @@ jobs: with: basic-auth: ${{ secrets.GRAFANA_CLOUD_BASIC_AUTH }} hostname: ${{ secrets.GRAFANA_CLOUD_HOST }} - this-job-name: E2E Run Smoke Tests + this-job-name: E2E Custom Run Smoke Tests continue-on-error: true - name: Checkout the repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0