Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
203de50
Add AutomationReceiver to compilation scripts and generated wrappers
bitrider23 Jun 25, 2026
526e1a5
Enhance AutomationReceiver with low-level call safety check
bitrider23 Jun 25, 2026
41c3339
Update dependencies in go.mod and go.sum
bitrider23 Jun 25, 2026
b0f0cd5
Revert "Update dependencies in go.mod and go.sum"
bitrider23 Jun 25, 2026
1e51feb
Refactor constructor and function signatures in AutomationReceiver an…
bitrider23 Jun 25, 2026
f42c6af
Update dependencies in go.mod and go.sum
bitrider23 Jun 25, 2026
7701584
Bump go.opentelemetry.io/otel to v1.44.0 to fix CVE
bitrider23 Jun 25, 2026
e15bde7
Update go.mod and go.sum to reflect dependency changes
bitrider23 Jun 25, 2026
d86a1cf
Update GETH_VERSION to 1.17.3 across multiple generated-wrapper depen…
bitrider23 Jun 25, 2026
b0b3031
Update AutomationReceiver and related files for compatibility with So…
bitrider23 Jun 26, 2026
e9dbcb0
Merge branch 'develop' into add-cre-automation-contracts
bitrider23 Jun 30, 2026
cef3c8b
Update AutomationReceiver contract
bitrider23 Jul 8, 2026
b008a13
Merge branch 'develop' into add-cre-automation-contracts
bitrider23 Jul 8, 2026
b93f75a
Update IERC165
bitrider23 Jul 8, 2026
f5e651c
Change version
bitrider23 Jul 8, 2026
22dcc88
Run Forge fmt
bitrider23 Jul 8, 2026
83bc30b
Fix solidity lint
bitrider23 Jul 8, 2026
83bd103
Fix Rens comments
bitrider23 Jul 10, 2026
0a3dd98
Add automation-cre folder
bitrider23 Jul 10, 2026
bbc8b2c
Include automation-cre on go_generate file
bitrider23 Jul 13, 2026
3c6711a
Add AutomationReceiver tests
bitrider23 Jul 13, 2026
b109422
Format test file and add cre-gas file
bitrider23 Jul 13, 2026
a79c1ba
Add tests for ReceiverTemplate
bitrider23 Jul 13, 2026
68c4b5c
Cover 98% coverage tests for cre-automation contracts
bitrider23 Jul 13, 2026
42543f9
Coverage 99% tests
bitrider23 Jul 13, 2026
0a4ed6f
add automation-cre to native_solc file in scripts
bitrider23 Jul 13, 2026
34786ad
Revert codeowner changes
bitrider23 Jul 13, 2026
e2b6ff8
Update automation-cre file to be used on the bash scipt
bitrider23 Jul 13, 2026
b927200
Remove unnecesary lines and fix gethwrapper generator on automation-cre
bitrider23 Jul 13, 2026
7b46ff2
refactor(gethwrappers): migrate automation-cre wrapper to modern gene…
bitrider23 Jul 13, 2026
95614b9
Move automation-cre binding file
bitrider23 Jul 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
/contracts/**/*keeper* @smartcontractkit/dev-services
/contracts/**/*upkeep* @smartcontractkit/dev-services
/contracts/**/*automation* @smartcontractkit/dev-services
/contracts/**/*automation-cre* @smartcontractkit/cld-vault
/contracts/**/*functions* @smartcontractkit/dev-services
/contracts/**/*l2ep* @smartcontractkit/data-growth
/contracts/**/*llo-feeds* @smartcontractkit/data-streams-engineers
Expand All @@ -32,6 +33,7 @@
/contracts/**/*payments* @smartcontractkit/payments

/contracts/src/v0.8/automation @smartcontractkit/dev-services
/contracts/src/v0.8/automation-cre @smartcontractkit/cld-vault
/contracts/src/v0.8/functions @smartcontractkit/dev-services
/contracts/src/v0.8/l2ep @smartcontractkit/data-growth
/contracts/src/v0.8/llo-feeds @smartcontractkit/data-streams-engineers
Expand All @@ -56,6 +58,7 @@
/gethwrappers/keeper @smartcontractkit/dev-services
/gethwrappers/upkeep @smartcontractkit/dev-services
/gethwrappers/automation @smartcontractkit/dev-services
/gethwrappers/automation-cre @smartcontractkit/cld-vault
/gethwrappers/l2ep @smartcontractkit/data-growth
/gethwrappers/vrf @smartcontractkit/dev-services

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/solidity-foundry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:
cat <<EOF > matrix.json
[
{ "name": "automation", "setup": { "run-coverage": false, "min-coverage": 98.5, "run-gas-snapshot": false }},
{ "name": "automation-cre", "setup": { "run-coverage": true, "min-coverage": 98.5, "run-gas-snapshot": true }},
{ "name": "dev", "setup": { "run-coverage": true, "extra-coverage-params": "--ir-minimum", "min-coverage": 72.8, "run-gas-snapshot": true, "subfolder": "/cre" }},
{ "name": "v1", "setup": { "run-coverage": false, "extra-coverage-params": "--ir-minimum --no-match-coverage='(.*v1/test.*)|(.*v2/test.*)'", "min-coverage": 72.8, "run-gas-snapshot": true, "subfolder": "/cre" }},
{ "name": "v2", "setup": { "run-coverage": true, "extra-coverage-params": "--ir-minimum --no-match-coverage='(.*v1/test.*)|(.*v2/test.*)'", "min-coverage": 93, "run-gas-snapshot": true, "subfolder": "/cre" }},
Expand Down Expand Up @@ -81,6 +82,8 @@ jobs:
- modified|added: 'contracts/src/v0.8/**/!(tests|mocks)/!(*.t).sol'
automation:
- 'contracts/src/v0.8/automation/**/*.sol'
automation-cre:
- 'contracts/src/v0.8/automation-cre/**/*.sol'
functions:
- 'contracts/src/v0.8/functions/**/*.sol'
cre:
Expand Down
2 changes: 1 addition & 1 deletion contracts/GNUmakefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ALL_FOUNDRY_PRODUCTS contains a list of all products that have a foundry
# profile defined and use the Foundry snapshots.
ALL_FOUNDRY_PRODUCTS = functions keystone l2ep llo-feeds operatorforwarder payments shared workflow data-feeds
ALL_FOUNDRY_PRODUCTS = automation-cre functions keystone l2ep llo-feeds operatorforwarder payments shared workflow data-feeds

# To make a snapshot for a specific product, either set the `FOUNDRY_PROFILE` env var
# or call the target with `FOUNDRY_PROFILE=product`
Expand Down
2 changes: 1 addition & 1 deletion contracts/cre/gobindings/go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/smartcontractkit/chainlink-evm/contracts/cre/gobindings

go 1.24.5
go 1.25.0

require (
github.com/ethereum/go-ethereum v1.17.3
Expand Down
14 changes: 14 additions & 0 deletions contracts/foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,20 @@ optimizer_runs = 1_000_000
src = 'src/v0.8/automation'
deny_warnings = false

[profile.automation-compile-24]
solc_version = '0.8.24'
optimizer_runs = 1_000_000
src = 'src/v0.8/automation'
deny_warnings = false

[profile.automation-cre]
solc_version = '0.8.24'
src = 'src/v0.8/automation-cre'
test = 'src/v0.8/automation-cre/test'
optimizer_runs = 1_000_000
evm_version = 'paris'
deny_warnings = false

[profile.l2ep]
solc_version = '0.8.24'
optimizer_runs = 1_000_000
Expand Down
37 changes: 37 additions & 0 deletions contracts/gas-snapshots/automation-cre.gas-snapshot
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
AutomationReceiverTest:test_getBlockNumberCheck_ReflectsState() (gas: 129208)
AutomationReceiverTest:test_getters_ReflectState() (gas: 13457)
AutomationReceiverTest:test_isCallAllowed_ReflectsState() (gas: 39680)
AutomationReceiverTest:test_onReport_AllowedCallExecutes() (gas: 111992)
AutomationReceiverTest:test_onReport_BlockNumberCheckDisabledAllowsOutOfOrder() (gas: 121493)
AutomationReceiverTest:test_onReport_BlockNumberCheckEqualBlockAccepted() (gas: 168653)
AutomationReceiverTest:test_onReport_BlockNumberCheckSnapshotUsesCurrentBlock() (gas: 168640)
AutomationReceiverTest:test_onReport_BlockNumberCheckWithExplicitFloor() (gas: 190185)
AutomationReceiverTest:test_onReport_CombinedIdentityAccepted() (gas: 2091079)
AutomationReceiverTest:test_onReport_EIP150TermEnsuresFullGasForwardedAtHighLimit() (gas: 109029)
AutomationReceiverTest:test_onReport_FailingCallDoesNotRevert() (gas: 89395)
AutomationReceiverTest:test_onReport_GasLimitZeroPreservesUnboundedBehavior() (gas: 89398)
AutomationReceiverTest:test_onReport_GasOverheadCorrectlyCoversNoOpConsumer() (gas: 109487)
AutomationReceiverTest:test_onReport_GasOverheadCoversWorstCaseGasBurningConsumer() (gas: 277744)
AutomationReceiverTest:test_onReport_InsufficientGasDoesNotAdvanceBlockNumber() (gas: 200337)
AutomationReceiverTest:test_onReport_OwnerAndNameSufficeWithoutWorkflowId() (gas: 2068944)
AutomationReceiverTest:test_onReport_PausedNonRetryableConsumesReport() (gas: 81382)
AutomationReceiverTest:test_onReport_RequiredIncludesEIP150Buffer() (gas: 83289)
AutomationReceiverTest:test_onReport_SufficientGasWithLimitSucceeds() (gas: 108971)
AutomationReceiverTest:test_onReport_WorkflowIdAloneSuffices() (gas: 2036262)
AutomationReceiverTest:test_paused_ReflectsState() (gas: 42368)
AutomationReceiverTest:test_retryableWhilePaused_ReflectsMode() (gas: 59695)
AutomationReceiverTest:test_setBlockNumberCheck_IsPerPair() (gas: 66447)
AutomationReceiverTest:test_setCallAllowed_RevocationSkipsCodeCheck() (gas: 13520)
AutomationReceiverTest:test_setConsumerGasLimit_IsPerPair() (gas: 44564)
AutomationReceiverTest:test_setConsumerGasLimit_SetAndGet() (gas: 29656)
AutomationReceiverTest:test_supportsInterface_ERC165() (gas: 5785)
AutomationReceiverTest:test_supportsInterface_IReceiver() (gas: 5714)
AutomationReceiverTest:test_supportsInterface_ReturnsFalseForUnknown() (gas: 5742)
AutomationReceiverTest:test_unpause_ResumesDelivery() (gas: 148819)
ReceiverTemplateTest:test_getters_ReflectState() (gas: 1096546)
ReceiverTemplateTest:test_onReport_AcceptsWhenMetadataMatches() (gas: 1169353)
ReceiverTemplateTest:test_setExpectedAuthor_ClearingAuthorWhileNameSetDoesNotRevert() (gas: 1072364)
ReceiverTemplateTest:test_setExpectedWorkflowName_CanBeSetWithoutAuthor() (gas: 1067232)
ReceiverTemplateTest:test_setExpectedWorkflowName_ClearWithEmptyString() (gas: 1051069)
ReceiverTemplateTest:test_setForwarderAddress_ZeroSucceedsAtTemplateLevel() (gas: 998853)
ReceiverTemplateTest:test_supportsInterface() (gas: 1015005)
2 changes: 1 addition & 1 deletion contracts/scripts/native_solc_compile_all
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ SCRIPTPATH="$(
# For each product we have a native_solc_compile_all_$product script
# These scripts can be run individually, or all together with this script.
# To add new CL products, simply write a native_solc_compile_all_$product script and add it to the list below.
for product in automation functions llo-feeds operatorforwarder payments shared vrf data-feeds l2ep; do
for product in automation automation-cre functions llo-feeds operatorforwarder payments shared vrf data-feeds l2ep; do
$SCRIPTPATH/native_solc_compile_all_$product
done
28 changes: 28 additions & 0 deletions contracts/scripts/native_solc_compile_all_automation-cre
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/usr/bin/env bash

set -e

echo " ┌──────────────────────────────────────────────┐"
echo " │ Compiling Automation CRE contracts... │"
echo " └──────────────────────────────────────────────┘"

PROJECT="automation-cre"
CONTRACTS_DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; cd ../ && pwd -P )"

compileContract() {
local contract=$(basename "$2")
echo "Compiling" "$contract"

local command
command="env FOUNDRY_PROFILE=$1 forge build $CONTRACTS_DIR/src/v0.8/$PROJECT/$2.sol \
--root $CONTRACTS_DIR \
--extra-output-files bin abi \
-o $CONTRACTS_DIR/solc/$PROJECT/$contract"
$command

# Copy the generated abi files to a single folder
mkdir -p "$CONTRACTS_DIR"/abi/v0.8/"$PROJECT"
cp "$CONTRACTS_DIR"/solc/$PROJECT/"$contract"/"$contract".sol/"$contract".abi.json "$CONTRACTS_DIR"/abi/v0.8/"$PROJECT"/"$contract".abi.json
}

compileContract automation-compile-24 AutomationReceiver
Loading
Loading