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

Release 2.10.1 vrf v2.5 20240327 updates #12620

Conversation

kidambisrinivas
Copy link
Collaborator

Updates

  • Cherry pick VRF v2.5 contract changes commits on top of CL node v2.10.0

shileiwill and others added 30 commits March 27, 2024 20:34
* support billing config

* use IERC20
* convert link/native to link/usd and native/usd

* fix tests

* add gethwrappers

* update tests to skip flakey

* fix failing registrar test
* Add support for eth_getLogs to simulated_backend_client.go

Also: add support for finality tags

* .

* Handle case where blockNumber = nil

Pre-existing bug, somehow we must not have hit this one before

* pnpm changeset

* - Fix lint error which disallows unreachable code
- Fix Sonarcube complaint about complex case statement (7 lines exceeded max of 6)
- Run goimports

* Simplify switch statement

* Replace incorrect panic message with appropriate error
* fulfillRandomWords msg.data length validation

* Addressed PR comments

* Added changeset
* fulfillRandomWords msg.data length validation

* Addressed PR comments

* Validate if flat fee configs are configured correctly

* Update flat fee discount check

* Allow fulfillmentFlatFeeLinkDiscountPPM to be equal to fulfillmentFlatFeeNativePPM

* Added changeset

* Update VRFV2Plus test

* Remove arbitrary bounds

* Remove unused error
* Explicit bounds for premium config params in VRFCoordinatorV2_5

* setConfig method will revert if premium percentages are above 100
* added unit tests for coverage

* Generated Go wrappers and executed prettier tool

* Added constants for percentage bounds and changed revert error

* Removed min boundary

* Added changeset

* Changed upper premium percentage boundary to 155
…ative (#12369)

* Remove amount from withdraw and withdraw native

* Fix Go script
* Emit events for vrf v2plus state changing functions

* Emit FallbackWeiPerUnitLinkUsed event if the fallback is used in _getFeedData

* Add missing tests

* Refactor _getFeedData to return isFeedStale instead of emitting event

* Add enable, disable, and withdrawn events to VRFV2PlusWrapper

* Fix solhint and prettier

* Remove isFeedStale from VRFV2WrapperConsumerBase

* Update Solidity wrappers
… refactoring (#12375)

* add financeAdmin to onchainConfig

* remove ownerLinkbalance and rename expectedLinkBalance

* add withdraw functions

* add foundry test and generate wrappers
* add financeAdmin to onchainConfig

* remove ownerLinkbalance and rename expectedLinkBalance

* add withdraw functions

* add foundry test and generate wrappers

* reserveAmounts is a map for various tokens
* Add LatestFinalizedBlock to HeadTracker

* Added LatestFinalizedHead to Head

* remove unused func

* fix flakey nil pointer

* improve logs & address lint issue

* nitpicks

* fixed copy on heads on MarkFinalized

* error instead of panic

* return error instead of panic

* nitpicks

* Finalized block based history depth

* simplify trimming

* nit fixes

* fix build issues caused by merge

* regen

* FIx rpc client mock generation

* nit fixes

* nit fixes

* update comments

* ensure that we trim redundant blocks both in slice and in chain in Heads
handle corner case for multiple uncle blocks at the end of the slice

* nit fix

* Update common/headtracker/head_tracker.go

Co-authored-by: Dimitris Grigoriou <[email protected]>

* HeadTracker backfill test with 0 finality depth

* docs

* Update docs/CHANGELOG.md

Co-authored-by: Dimitris Grigoriou <[email protected]>

* ensure latest finalized block is valid on startup

* changeset

* switch from warn to debug level when we failed to makr block as finalized

---------

Co-authored-by: Dimitris Grigoriou <[email protected]>
* auto plugin versioning

* update

* update

* fix tests

* use the unified interface

* fix

* fix integration

* fix

* update

* address some initial feedback for auto 2.2

* remove registrar2_2

* fix

* fix

* exclude file from sonarqube

* fix

* fix

* fix tests

* fix tests

* update

* formatting

* add ts tests for interfaces

* formatting

* update wrappers

* fix build

* rename and adjustments

* fix build

* ts tests

* ts test

* geth wrapper

* rename and use setConfigTypeSafe

* format

* fix tests

* remove comments

* update

* add changeset

* fix smoke tests

* fix args

* update switch

* group imports

* fix

* udpate naming

* fix

* remove

* update tests

* fix

* fix tests

* addressed comments

* use shared structs

* fix tests

* update
…IP (#12405)

* soft delete nonce in s_consumers so that request IDs do not repeat. WIP

* forge unit tests passing except for exact billing amount

* add forge tests and optimize gas

* regenerate wrappers

* remove comment

* address comments

* fix test

* add changeset
* remove registerUpkeep from common interface

* add changeset
* Initial commit

* Refactor headtracker orm

* Remove unused loggers

* Remove comments

* Add timeout

* Refactor log_poller ORM

* Refactor logpoller ORM

* Fix logpoller tests

* Update logpoller orm

* Use EventSig

* update logpoller orm

* Update orm.go

* Update logpoller_wrapper_test.go

* Update log_poller_test.go

* Remove query

* Remove ORM timeouts

* Add context

* Use testutils for context

* Use testutils context

* Use testutils context

* Use ctx

* Refactor forwarder ORM

* Generate tidy

* Fix logpoller mocks

* Remove pg dependency

* Fix mock calls

* Fix mock calls

* Fix mock calls

* Use request context

* Update context

* Update contexts

* Fix mock call args

* Unexport orm

* Fix arg name

* update logpoller

* unexport orm

* Use query

* fix tests

* fix imports

* Use pkgerrors

* Use registry ctx

* Use context

* Use ctx

* Use ctx

* Update orm.go

* Use context

* Use context

* Use context

* Propagate context

* Propagate context

* Update listener_test.go

* Fix context

* Export DbORM struct

* Update orm.go

* Pass context

* Pass context

* Update orm.go

* Use testcontext

* Initialize context

* Update context

* Propagate context

* core/services/chainlink: start using sqlutil.DB instead of pg.Q (#12386)

* Check bind errors

* Add close timeout

* Add changeset

---------

Co-authored-by: Jordan Krage <[email protected]>
* CTF test for replaying req after node restart

* Addressed PR comments

* GHA workflow fix

* Code maintenance improvements

* Type failures fix

* Addressed more PR comments

* Dependency fix

* Dependency fix

* Avoid copying config

* Minor change
…vm nodes (#12332)

* add workflow that verifies compatibility with different versions of evm nodes

* fix lints

* fix worklow definion

* another workflow fix

* another fix

* send slack notifications only if go-ethereum dep was modified

* bump go-ethereum to v1.13.9 to test the workflow

* remove hardcoded commit hashes...

* fix comparison

* bump

* use correctly git diff

* fetch develop before comparing

* remove unnecesary outputs declaration

* add outputs debug

* remove step id

* use explicit outputs

* execute workflow also on dispatch if go-ethereum version did not change

* fix script output

* fix quoting of custom images in TOML, echo test compatibility matrix

* don't use pyroscope in compatibility tests

* use newer CTF

* latest ctf, couple of fixes

* bump CTF, run compatibility tests only for geth

* all smoke tests will now use TOML config

* set ethereum version to empty

* adjust TOML created in CI to latest CTF changes

* run also ocr2 test

* adjust regex capture for Slack message

* try to group compatibilty tests results by product

* group by product, not full matrix

* run even more product tests to check compatibility

* fix parameter field name

* log details before starting private ethereum network

* fix how TOML is build for custom eth client image

* fix typo in argument name

* fix versions + always notify slack

* add a ContractBackend wrapper that is backward-compatible with go-ethereum < 1.11.0

* add comment to contract calelr

* try running compatibility fix on broken version

* just trigger

* try to build image in CI

* try to checkout old commit

* fix contract caller, and let's see if it fails or not

* remove code used for testing, fix slack reporting

* fix a situation, when we lose transaction timeout setting for networks that are not overwritten

* trigger compatibility tests for PR bumping go-ethereum to 1.13.14

* add gas limit for Fiji, fix a situation when new networks were ignored

* fix lints

* remove hardcoded github sha

* add changeset

* separate method for restarting CL cluster

* update go.mod

* go.mod

* lints

* do not bump go-eth

* use latest CTF v1.27.0

* dump down go-ethereum, fix some comments and descriptions

* add helper that exposes legacy methods to use them in test wrapper and rpc client

* remove stale comment
* soft delete nonce in s_consumers so that request IDs do not repeat. WIP

* forge unit tests passing except for exact billing amount

* add forge tests and optimize gas

* regenerate wrappers

* remove comment

* address comments

* fix test

* add changeset

* implement pending request counter
pending request counter in vrf v2.5 coordinator

* run prettier and regenerate wrappers

* add changeset

* bump gas required for remove consumer
* use common interface for v2.3

* add changeset
* Add array of all request times to VRF load test consumers

* Prettier formatting

* Add cleanup logic to the reset() function
…2418)

* refactor registrar to support billing tokens on registration

* fix registry tests

* add tests for billing token on registration path

* make registrar check for valid billing tokens

* use billing token in calculatePaymentAmount()

* regenerate master interface

* change UnsupportedBillingToken to InvalidBillingToken

* update foundry tests

* refactor foundry tests

* use billing token agnostic reserve amounts

* add getReserveAmount()

* update registrar to support min amounts per billing token

* update comments

* remove billing params from OnChainConfig

* use safeCast to uint96 for balances

* make min spend configurable per billing token

* use billing token for funding in registrar

* change premiumWei to premium

* regenerate master interface after rebase

* regenerate wrappers

* add changeset

* run lint fix
* Add missing zero address check in VRFConsumerBaseV2Plus

* Updated go wrappers

---------

Co-authored-by: Sri Kidambi <[email protected]>
…12474)

* write happy path tests for automation23 registrar registerUpkeep()

* regerate wrappers

* rename UpkeepMock --> MockUpkeep
* add logic C to automation contracts

* update wrappers

* add changeset
* refactorfoundry tests

* regenerate wrappers
kidambisrinivas and others added 9 commits March 27, 2024 20:35
* Adding helper for converting pub key into x-y

* Minor fix

* Added changeset

* Added changeset
* set solc version of VRF V2 Plus related contracts to 0.8.19

* bump solc version in hardhat config for v2.5 coordinator

* fix failing tests due to gas change

* auto detect solc version for vrf contracts

* upgrade mercury registry

* add missing file

* make generate
* VRF-897: refactoring VRF v2 and V2 Plus e2e tests

* VRF-897: fixing test

* VRF-897: refactoring VRF v2 load test

* VRF-897: fixing v2 load test

* VRF-897: adding possibility to run vrf v2 test against existing env

* VRF-897: removing code

* VRF-897: fixing lint issue

* VRF-897: finishing V2 test refactoring

* VRF-897: fixing BHS test

* VRF-897: fixing VRF V2 Basic test

* VRF-897: fixing VRF V2 Basic test

* VRF-897: small refactoring

* VRF-897: fixing lint issues

* VRF-897: fixing VRF v2 test

* VRF-897: fixing VRF v2 test

* VRF-897: fixing VRF v2 test

* VRF-897: fixing VRF v2 test

* VRF-897: fixing VRF v2 test

* VRF-897: adding VRF Owner test

* VRF-897: fixing VRF Owner test

* VRF-897: adding BHS Load Test

* VRF-897: rerun tests

* VRF-897: removing perf test to run setting

* VRF-897: removing logging

* VRF-897: small fix

* VRF-897: fixing compilation issues

* VRF-897: fixing lint issues

* VRF-897: fixing lint issues

* VRF-897: refactoring

* VRF-897: fixing lint

* VRF-897: fixing vrfv2plus test

* VRF-897: fixing vrfv2plus and vrfv2 test

* VRF-897: fixing vrfv2plus and vrfv2 test

* VRF-897: fixing vrfv2plus and vrfv2 test

* VRF-897: fixing vrfv2plus and vrfv2 test

* VRF-897: fixing vrfv2plus

* VRF-897: fixing vrfv2plus test

* VRF-897: fixing vrfv2plus test

* VRF-897: PR comments

* VRF-897: adding default value for bhs load test

* VRF-897: adding default value for bhs load test

* VRF-897: adjusting default value for bhs load test

* VRF-897: fixing load test for existing env

* VRF-897: fixing sub funds return to eoa wallet
* increase num optimizations for coordinator v2.5 to 500

* add changeset

* add changeset
* VRFV2PlusWrapper support for reusing the same subsciption

* VRFV2PlusWrapper constructor contains additional subId param
* subId constructor param is a hard requirement
* wrapper's subscription creation handled by an external EOA
* wrapper treated as a consumer of that subscription
* remove migrate() method from the VRFV2PlusWrapper
* updated Foundry tests to reflect new functionality
* fixed broken CTF tests
* fixed broken VRF superscripts

* Fixed linter errors and added contracts changeset

* Addressed comments and re-generated files
* fix lock file version

* cleanup npm deps

* rm not needed solhint ignores

* bump solhint and fix rename custom-errors -> gas-custom-errors

* turn on struct packing & interface-starts-with-i solhint rule

* rm changeset from CODEOWNERS to not ping the root folder owner

* add changelog entry
* VRFV2PlusWrapper config refactor

* Added changeset

* Prettier fix

* Updated tests and fixed lint warnings
* Set LINK native feed in VRFV2PlusWrapper to immutable

* LINK native feed set to immutable, removed setter function
* both LINK token and LINK native feed can be set to zero addresses
* fixed Foundry tests

* Added solhint disable for LINK_NATIVE_FEED immutable var

* Added changesets

* Delete storage slot padding from VRFV2PlusWrapper

Co-authored-by: Lee Yik Jiun <[email protected]>

* Renamed LINK_NATIVE_FEED to i_link_native_feed, generated Go wrappers

* Fixed linter issue

* Link native feed address variable set to internal

---------

Co-authored-by: Lee Yik Jiun <[email protected]>
* mv vrf foundry tests

* fix path
Copy link
Contributor

This PR is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

@github-actions github-actions bot added the Stale label May 27, 2024
@github-actions github-actions bot closed this Jun 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.