Skip to content

Commit

Permalink
Merge branch 'develop' into VRF-892
Browse files Browse the repository at this point in the history
  • Loading branch information
vreff committed Mar 18, 2024
2 parents 8ba24cb + e604a73 commit 4c79129
Show file tree
Hide file tree
Showing 487 changed files with 21,241 additions and 9,564 deletions.
5 changes: 5 additions & 0 deletions .changeset/giant-hotels-sparkle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

remove registerUpkeep from auto v21 common
5 changes: 5 additions & 0 deletions .changeset/gold-rats-hide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

External peering core service
5 changes: 5 additions & 0 deletions .changeset/gorgeous-crabs-repeat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

Soft delete consumer nonce in VRF coordinator v2.5
5 changes: 5 additions & 0 deletions .changeset/healthy-toes-destroy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

HeadTracker now respects the `FinalityTagEnabled` config option. If the flag is enabled, HeadTracker backfills blocks up to the latest finalized block provided by the corresponding RPC call. To address potential misconfigurations, `HistoryDepth` is now calculated from the latest finalized block instead of the head. NOTE: Consumers (e.g. TXM and LogPoller) do not fully utilize Finality Tag yet.
5 changes: 5 additions & 0 deletions .changeset/mighty-timers-travel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

make reserveAmounts to be a map
5 changes: 5 additions & 0 deletions .changeset/moody-ligers-walk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

Add new pipeline for testing EVM node compatibility on go-ethereum dependency bump
5 changes: 5 additions & 0 deletions .changeset/nasty-humans-promise.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

add pending request counter for vrf v2.5 coordinator
5 changes: 5 additions & 0 deletions .changeset/shy-jobs-speak.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

use common interface for v2.3
21 changes: 21 additions & 0 deletions .changeset/strange-tables-occur.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
"chainlink": patch
---

Mercury jobs can now broadcast to multiple mercury servers.

Previously, a single mercury server would be specified in a job spec as so:

```toml
[pluginConfig]
serverURL = "example.com/foo"
serverPubKey = "724ff6eae9e900270edfff233e16322a70ec06e1a6e62a81ef13921f398f6c93"
```

You may now specify multiple mercury servers, as so:

```toml
[pluginConfig]
servers = { "example.com/foo" = "724ff6eae9e900270edfff233e16322a70ec06e1a6e62a81ef13921f398f6c93", "mercury2.example:1234/bar" = "524ff6eae9e900270edfff233e16322a70ec06e1a6e62a81ef13921f398f6c93" }
```

5 changes: 5 additions & 0 deletions .changeset/strong-ears-heal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

Refactor EVM ORMs to remove pg dependency
5 changes: 5 additions & 0 deletions .changeset/swift-bobcats-punch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

add liquidity pool for automation 2.3
5 changes: 5 additions & 0 deletions .changeset/thirty-cheetahs-unite.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

bump grafana to 1.1.1
5 changes: 5 additions & 0 deletions .changeset/warm-chefs-fry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

add version support for automation registry 2.\*
9 changes: 5 additions & 4 deletions .github/actions/notify-slack-jobs-result/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,10 @@ runs:
# I feel like there's some clever, fully jq way to do this, but I ain't got the motivation to figure it out
echo "Querying test results at https://api.github.com/repos/${{inputs.github_repository}}/actions/runs/${{ inputs.workflow_run_id }}/jobs"
# we can get a maximum of 100 jobs per page, after that we need to start using pagination
PARSED_RESULTS=$(curl \
-H "Authorization: Bearer ${{ inputs.github_token }}" \
'https://api.github.com/repos/${{inputs.github_repository}}/actions/runs/${{ inputs.workflow_run_id }}/jobs' \
'https://api.github.com/repos/${{inputs.github_repository}}/actions/runs/${{ inputs.workflow_run_id }}/jobs?per_page=100' \
| jq -r --arg pattern "${{ inputs.github_job_name_regex }}" '.jobs[]
| select(.name | test($pattern)) as $job
| $job.steps[]
Expand All @@ -59,9 +60,9 @@ runs:
echo all_success=$ALL_SUCCESS >> $GITHUB_OUTPUT
FORMATTED_RESULTS=$(echo $PARSED_RESULTS | jq -s '[.[]
| {
conclusion: .conclusion,
FORMATTED_RESULTS=$(echo $PARSED_RESULTS | jq -s '[.[]
| {
conclusion: .conclusion,
cap: .cap,
html_url: .html_url
}
Expand Down
27 changes: 27 additions & 0 deletions .github/actions/setup-create-base64-config/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ inputs:
description: Grafana URL
grafanaDashboardUrl:
description: Grafana dashboard URL
ethExecutionClient:
description: Ethereum execution client to use (geth, besu, nethermind or erigon)
customEthClientDockerImage:
description: custom docker image to use for eth client (e.g. hyperledger/besu:21.10.0)

runs:
using: composite
Expand All @@ -58,6 +62,8 @@ runs:
LOGSTREAM_LOG_TARGETS: ${{ inputs.logstreamLogTargets }}
GRAFANA_URL: ${{ inputs.grafanaUrl }}
GRAFANA_DASHBOARD_URL: ${{ inputs.grafanaDashboardUrl }}
ETH_EXECUTION_CLIENT: ${{ inputs.ethExecutionClient }}
CUSTOM_ETH_CLIENT_DOCKER_IMAGE: ${{ inputs.customEthClientDockerImage }}
run: |
echo ::add-mask::$CHAINLINK_IMAGE
function convert_to_toml_array() {
Expand Down Expand Up @@ -88,6 +94,21 @@ runs:
test_log_collect=false
fi
custom_images=""
ethereum_version=""
if [ -n "$CUSTOM_ETH_CLIENT_DOCKER_IMAGE" ]; then
ethereum_version="ethereum_version=\"\""
custom_images+="[PrivateEthereumNetwork.CustomDockerImages]"
custom_images+=$'\n'"execution_layer=\"$CUSTOM_ETH_CLIENT_DOCKER_IMAGE\""
fi
if [ -n "$ETH_EXECUTION_CLIENT" ]; then
execution_layer="$ETH_EXECUTION_CLIENT"
else
execution_layer="geth"
fi
cat << EOF > config.toml
[Network]
selected_networks=$selected_networks
Expand Down Expand Up @@ -118,6 +139,12 @@ runs:
[Logging.Grafana]
base_url="$GRAFANA_URL"
dashboard_url="$GRAFANA_DASHBOARD_URL"
[PrivateEthereumNetwork]
execution_layer="$execution_layer"
$ethereum_version
$custom_images
EOF
BASE64_CONFIG_OVERRIDE=$(cat config.toml | base64 -w 0)
Expand Down
91 changes: 91 additions & 0 deletions .github/scripts/crib/lib/check-route53-records.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
import { setTimeout } from "node:timers/promises";
import {
Route53Client,
ListResourceRecordSetsCommand,
} from "@aws-sdk/client-route-53";

// us-east-1 is the global region used by Route 53.
const route53Client = new Route53Client({ region: "us-east-1" });

async function paginateListResourceRecordSets(route53Client, params) {
let isTruncated = true;
let nextRecordName, nextRecordType;
let allRecordSets = [];

while (isTruncated) {
const response = await route53Client.send(
new ListResourceRecordSetsCommand({
...params,
...(nextRecordName && { StartRecordName: nextRecordName }),
...(nextRecordType && { StartRecordType: nextRecordType }),
})
);

allRecordSets = allRecordSets.concat(response.ResourceRecordSets);
isTruncated = response.IsTruncated;
if (isTruncated) {
nextRecordName = response.NextRecordName;
nextRecordType = response.NextRecordType;
}
}

return allRecordSets;
}

/**
* Check if Route 53 records exist for a given Route 53 zone.
*
* @param {string} hostedZoneId The ID of the hosted zone.
* @param {string[]} recordNames An array of record names to check.
* @param {number} maxRetries The maximum number of retries.
* @param {number} initialBackoffMs The initial backoff time in milliseconds.
* @returns {Promise<boolean>} True if records exist, false otherwise.
*/
export async function route53RecordsExist(
hostedZoneId,
recordNames,
maxRetries = 8,
initialBackoffMs = 2000
) {
let attempts = 0;

// We try to gather all records within a specified time limit.
// We issue retries due to an indeterminate amount of time required
// for record propagation.
console.info("Checking DNS records in Route 53...");
while (attempts < maxRetries) {
try {
const allRecordSets = await paginateListResourceRecordSets(
route53Client,
{
HostedZoneId: hostedZoneId,
MaxItems: "300",
}
);

const recordExists = recordNames.every((name) =>
allRecordSets.some((r) => r.Name.includes(name))
);

if (recordExists) {
console.info("All records found in Route 53.");
return true;
}

// If any record is not found, throw an error to trigger a retry
throw new Error(
"One or more DNS records not found in Route 53, retrying..."
);
} catch (error) {
console.error(`Attempt ${attempts + 1}:`, error.message);
if (attempts === maxRetries - 1) {
return false; // Return false after the last attempt
}
// Exponential backoff
await setTimeout(initialBackoffMs * 2 ** attempts);
attempts++;
}
}
// Should not reach here if retries are exhausted
return false;
}
Loading

0 comments on commit 4c79129

Please sign in to comment.