Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interfaces and skeleton methods for ChainReader EVM POC #10990

Merged
merged 7 commits into from
Dec 6, 2023

Conversation

@github-actions
Copy link
Contributor

I see that you haven't updated any CHANGELOG files. Would it make sense to do so?

@reductionista reductionista force-pushed the BCF-2612-ChainReader-EVM-POC branch 11 times, most recently from d001287 to 64bf244 Compare October 23, 2023 15:20
@reductionista reductionista force-pushed the BCF-2612-ChainReader-EVM-POC branch 2 times, most recently from b9f02ca to 0c1c237 Compare October 25, 2023 03:06
@reductionista reductionista marked this pull request as ready for review October 25, 2023 03:49
@reductionista reductionista force-pushed the BCF-2612-ChainReader-EVM-POC branch 2 times, most recently from beac2c8 to e2e0f2d Compare October 27, 2023 00:13
@reductionista reductionista force-pushed the BCF-2612-ChainReader-EVM-POC branch 3 times, most recently from 861d4f0 to 7894dc0 Compare December 4, 2023 19:48
@reductionista reductionista force-pushed the BCF-2612-ChainReader-EVM-POC branch 2 times, most recently from 9fd2d68 to ad7a6a1 Compare December 5, 2023 04:37
… POC

- Read ChainReader config in from RelayConfig
- Add some initialization and validation relay skeletons

- Use medianProviderWrapper instead of passing medianContract separately

This avoids us having to modify the signature of NewMedianFactory, which
would require further modifications to all non-evm repos and chainlink-relay

- Add chain_reader_test.go with some basic relay tests

Co-authored-by: Jordan Krage <jmank88@gmail.com>

- Add chain reader config validation
- Add chain reader config validation tests
- Add config for chain reader median contract to cr validation testcases
- Add unimplemented Encode(), Decode(), GetMaxEncodingSize(), GetMaxDecodingSize()
- Add ChainReader() method to mock provider for plugin test
- Rename relaymercury.ChainReader to MercuryChainReader, resolve name collisions
- Add tests for errors during ChainReader construction
- Propagate InvalidConfig & any other errors back to client

We should ignore Unimplemented until node ops have been given ample time to migrate to the new job spec
(including a section for ChainReader config) so that we can remove the old product-specific
MedianContract component from MedianProvider. All other errors we can immediately start passing back
to the client, letting the core node decide how to handle them (eg. displaying an "invalid job spec"
message to the UI if the RelayConfig was invalid or the ContractID missing)
@reductionista reductionista force-pushed the BCF-2612-ChainReader-EVM-POC branch from ad7a6a1 to 1cd875f Compare December 5, 2023 04:38
@reductionista reductionista force-pushed the BCF-2612-ChainReader-EVM-POC branch from 8ee2384 to b6cab63 Compare December 5, 2023 04:56
…er-EVM-POC

# Conflicts:
#	core/services/ocr2/plugins/ocr2vrf/coordinator/coordinator_test.go
@cl-sonarqube-production
Copy link

SonarQube Quality Gate

Quality Gate failed

Failed condition 63.2% 63.2% Coverage on New Code (is less than 75%)

See analysis details on SonarQube

@reductionista reductionista added this pull request to the merge queue Dec 6, 2023
Merged via the queue into develop with commit c17067b Dec 6, 2023
86 of 87 checks passed
@reductionista reductionista deleted the BCF-2612-ChainReader-EVM-POC branch December 6, 2023 17:37
fbac pushed a commit that referenced this pull request Dec 14, 2023
* Implement skeleton interfaces, structs, & methods for ChainReader EVM POC

- Read ChainReader config in from RelayConfig
- Add some initialization and validation relay skeletons

- Use medianProviderWrapper instead of passing medianContract separately

This avoids us having to modify the signature of NewMedianFactory, which
would require further modifications to all non-evm repos and chainlink-relay

- Add chain_reader_test.go with some basic relay tests

Co-authored-by: Jordan Krage <jmank88@gmail.com>

- Add chain reader config validation
- Add chain reader config validation tests
- Add config for chain reader median contract to cr validation testcases
- Add unimplemented Encode(), Decode(), GetMaxEncodingSize(), GetMaxDecodingSize()
- Add ChainReader() method to mock provider for plugin test
- Rename relaymercury.ChainReader to MercuryChainReader, resolve name collisions
- Add tests for errors during ChainReader construction
- Propagate InvalidConfig & any other errors back to client

We should ignore Unimplemented until node ops have been given ample time to migrate to the new job spec
(including a section for ChainReader config) so that we can remove the old product-specific
MedianContract component from MedianProvider. All other errors we can immediately start passing back
to the client, letting the core node decide how to handle them (eg. displaying an "invalid job spec"
message to the UI if the RelayConfig was invalid or the ContractID missing)

* Update relay versions

* Simplify chain reader config validation

* Update commit hashes one final time now that all relays are merged.

---------

Co-authored-by: ilija <pavlovicilija42@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants