chainlink
chainlink copied to clipboard
Keeper registry contract OCR implementation
Note: Apologies in advance for the big change, it might be easy to review the new contract instead of individual changes. I also have a notion doc describing the changes, please ping me for link
Since OCR is almost a rewrite I've clubbed some small changes that we've been wanting to do. Here's a list of all changes:
- Implement OCR2Abstract interface in keeper Registry
- Transmit function is the main function now which calls performUpkeep
- Remove perPerformUpkeep and move logic to transmit
- Do not allow withdrawals of funds within performUpkeep
- Consolidate all config into hotvars and storage variables.
- Have two functions - one to set OCR config (setConfig) and one to set OnChainConfig. Both update the configDigest
- Remove setKeepers method and introduce a separate setPayees method
- Refactor checkUpkeep function to return an error enum value instead of reverting.
- Change performUpkeep to performUpkeepSimulate which would be used in node to simulate user's perform
- Split payment calculation into gasPayment and premium. Use this to distribute payment to keepers
- Rename link/eth to link/native
- Add limits to performData and checkData
- Implement perfromData wrapper and add re-org protection
- Reorganised code in the contract
- Add sig verification skipping option
- Add dynamic overhead calculation
- Add batching of performs
- Polished contract to follow guidelines
I see that you haven't updated any CHANGELOG files. Would it make sense to do so?
Solana Smoke Test Results
1 tests 1 :heavy_check_mark: 6m 46s :stopwatch: 1 suites 0 :zzz: 1 files 0 :x:
Results for commit 5737ec2d.
:recycle: This comment has been updated with latest results.
EVM Smoke Test Results
1 files 1 suites 6m 11s :stopwatch: 82 tests 34 :heavy_check_mark: 48 :zzz: 0 :x: 83 runs 34 :heavy_check_mark: 49 :zzz: 0 :x:
Results for commit 3cf078bc.
:recycle: This comment has been updated with latest results.
EVM Smoke Test Results vrf
34 tests 1 :heavy_check_mark: 53s :stopwatch: 1 suites 33 :zzz: 1 files 0 :x:
Results for commit 5737ec2d.
:recycle: This comment has been updated with latest results.
EVM Smoke Test Results cron
34 tests 1 :heavy_check_mark: 59s :stopwatch: 1 suites 33 :zzz: 1 files 0 :x:
Results for commit 5737ec2d.
:recycle: This comment has been updated with latest results.
EVM Smoke Test Results vrfv2
34 tests 1 :heavy_check_mark: 1m 5s :stopwatch: 1 suites 33 :zzz: 1 files 0 :x:
Results for commit 5737ec2d.
:recycle: This comment has been updated with latest results.
EVM Smoke Test Results flux
34 tests 1 :heavy_check_mark: 1m 21s :stopwatch: 1 suites 33 :zzz: 1 files 0 :x:
Results for commit 5737ec2d.
:recycle: This comment has been updated with latest results.
EVM Smoke Test Results runlog
34 tests 1 :heavy_check_mark: 1m 11s :stopwatch: 1 suites 33 :zzz: 1 files 0 :x:
Results for commit 5737ec2d.
:recycle: This comment has been updated with latest results.
EVM Smoke Test Results forwarder_ocr
34 tests 1 :heavy_check_mark: 2m 38s :stopwatch: 1 suites 33 :zzz: 1 files 0 :x:
Results for commit 5737ec2d.
:recycle: This comment has been updated with latest results.
EVM Smoke Test Results ocr
34 tests 2 :heavy_check_mark: 4m 28s :stopwatch: 1 suites 32 :zzz: 1 files 0 :x:
Results for commit 5737ec2d.
:recycle: This comment has been updated with latest results.
EVM Smoke Test Results keeper
34 tests 27 :heavy_check_mark: 5m 49s :stopwatch: 1 suites 7 :zzz: 1 files 0 :x:
Results for commit 5737ec2d.
:recycle: This comment has been updated with latest results.