From c807d13224007ced19f216f18a0f1aedca1e7ebe Mon Sep 17 00:00:00 2001 From: Mohamed Mehany <7327188+mohamed-mehany@users.noreply.github.com> Date: Tue, 26 Sep 2023 15:12:58 +0200 Subject: [PATCH 01/11] Adds WeMix testnet config --- .github/workflows/on-demand-ocr-soak-test.yml | 1 + .../config/toml/defaults/WeMix_Testnet.toml | 14 ++++ docs/CONFIG.md | 77 +++++++++++++++++++ .../contracts/contract_deployer.go | 12 +++ integration-tests/go.sum | 2 + 5 files changed, 106 insertions(+) create mode 100644 core/chains/evm/config/toml/defaults/WeMix_Testnet.toml diff --git a/.github/workflows/on-demand-ocr-soak-test.yml b/.github/workflows/on-demand-ocr-soak-test.yml index 1e510c23be3..cbb75be00ee 100644 --- a/.github/workflows/on-demand-ocr-soak-test.yml +++ b/.github/workflows/on-demand-ocr-soak-test.yml @@ -28,6 +28,7 @@ on: - "FANTOM_MAINNET" - "KROMA_MAINNET" - "KROMA_SEPOLIA" + - "WEMIX_TESTNET" fundingPrivateKey: description: Private funding key (Skip for Simulated) required: false diff --git a/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml b/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml new file mode 100644 index 00000000000..c5646631f32 --- /dev/null +++ b/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml @@ -0,0 +1,14 @@ +ChainID = '1112' +FinalityDepth = 1 +LogPollInterval = '1s' +MinIncomingConfirmations = 1 +# WeMix emits a block every 1 second, regardless of transactions +NoNewHeadsThreshold = '1s' +OCR.ContractConfirmations = 1 + +[GasEstimator] +EIP1559DynamicFees = true +TipCapDefault = '100 gwei' + +[GasEstimator.BlockHistory] +TransactionPercentile = 30 diff --git a/docs/CONFIG.md b/docs/CONFIG.md index 4b55c804a3d..d9aeeff7907 100644 --- a/docs/CONFIG.md +++ b/docs/CONFIG.md @@ -3302,6 +3302,83 @@ GasLimit = 5300000

+
WeMix Testnet (1112)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +FinalityDepth = 1 +FinalityTagEnabled = false +LogBackfillBatchSize = 1000 +LogPollInterval = '1s' +LogKeepBlocksDepth = 100000 +MinIncomingConfirmations = 1 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '1s' +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '1m0s' + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '1 gwei' +LimitDefault = 500000 +LimitMax = 500000 +LimitMultiplier = '1' +LimitTransfer = 21000 +BumpMin = '5 gwei' +BumpPercent = 20 +BumpThreshold = 3 +EIP1559DynamicFees = true +FeeCapDefault = '100 gwei' +TipCapDefault = '100 gwei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 8 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 30 + +[HeadTracker] +HistoryDepth = 100 +MaxBufferSize = 3 +SamplingInterval = '1s' + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 5 + +[OCR] +ContractConfirmations = 1 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5300000 +``` + +

+
Simulated (1337)

```toml diff --git a/integration-tests/contracts/contract_deployer.go b/integration-tests/contracts/contract_deployer.go index 0c36a260815..b7fae1bfa64 100644 --- a/integration-tests/contracts/contract_deployer.go +++ b/integration-tests/contracts/contract_deployer.go @@ -169,12 +169,20 @@ func NewContractDeployer(bcClient blockchain.EVMClient, logger zerolog.Logger) ( return &ScrollContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil case *blockchain.PolygonZkEvmClient: return &PolygonZkEvmContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil +<<<<<<< HEAD case *blockchain.LineaClient: return &LineaContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil case *blockchain.FantomClient: return &FantomContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil +<<<<<<< HEAD case *blockchain.KromaClient: return &KromaContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil +======= +======= + case *blockchain.WeMixClient: + return &WeMixContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil +>>>>>>> 4b069998f8 (Adds WeMix testnet config) +>>>>>>> 673b7a894b (Adds WeMix testnet config) } return nil, errors.New("unknown blockchain client implementation for contract deployer, register blockchain client in NewContractDeployer") } @@ -246,6 +254,10 @@ type KromaContractDeployer struct { *EthereumContractDeployer } +type WeMixContractDeployer struct { + *EthereumContractDeployer +} + // NewEthereumContractDeployer returns an instantiated instance of the ETH contract deployer func NewEthereumContractDeployer(ethClient blockchain.EVMClient, logger zerolog.Logger) *EthereumContractDeployer { return &EthereumContractDeployer{ diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 696e06b6c91..32b300a86b9 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -2380,6 +2380,8 @@ github.com/smartcontractkit/chainlink-testing-framework v1.18.4 h1:IAalKSqRDSGj1 github.com/smartcontractkit/chainlink-testing-framework v1.18.4/go.mod h1:zScXRqmvbyTFUooyLYrOp4+V/sFPUbFJNRc72YmnuIk= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306 h1:ko88+ZznniNJZbZPWAvHQU8SwKAdHngdDZ+pvVgB5ss= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= +github.com/smartcontractkit/chainlink-testing-framework v1.17.3-0.20230925111620-55c1e8ed492c h1:1nQ9Xy3VT4K6bmjPAkIEhGj1dNxwiajVtPAZZiI22Jw= +github.com/smartcontractkit/chainlink-testing-framework v1.17.3-0.20230925111620-55c1e8ed492c/go.mod h1:izzRx4cNihkVP9XY15isSCMW1QAlRK1w5eE23/MbZHM= github.com/smartcontractkit/grpc-proxy v0.0.0-20230731113816-f1be6620749f h1:hgJif132UCdjo8u43i7iPN1/MFnu49hv7lFGFftCHKU= github.com/smartcontractkit/grpc-proxy v0.0.0-20230731113816-f1be6620749f/go.mod h1:MvMXoufZAtqExNexqi4cjrNYE9MefKddKylxjS+//n0= github.com/smartcontractkit/libocr v0.0.0-20231020123319-d255366a6545 h1:qOsw2ETQD/Sb/W2xuYn2KPWjvvsWA0C+l19rWFq8iNg= From 296ce756164b8a7c110504fa7897e8a4206af14a Mon Sep 17 00:00:00 2001 From: Mohamed Mehany <7327188+mohamed-mehany@users.noreply.github.com> Date: Wed, 27 Sep 2023 01:15:53 +0200 Subject: [PATCH 02/11] Extending NoNewHeads threshold to 3s --- core/chains/evm/config/toml/defaults/WeMix_Testnet.toml | 8 +++++--- docs/CONFIG.md | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml b/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml index c5646631f32..dd20414f083 100644 --- a/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml @@ -1,10 +1,12 @@ ChainID = '1112' FinalityDepth = 1 -LogPollInterval = '1s' MinIncomingConfirmations = 1 # WeMix emits a block every 1 second, regardless of transactions -NoNewHeadsThreshold = '1s' -OCR.ContractConfirmations = 1 +LogPollInterval = '3s' +NoNewHeadsThreshold = '30s' + +[OCR] +ContractConfirmations = 1 [GasEstimator] EIP1559DynamicFees = true diff --git a/docs/CONFIG.md b/docs/CONFIG.md index d9aeeff7907..baa727f8cf3 100644 --- a/docs/CONFIG.md +++ b/docs/CONFIG.md @@ -3311,12 +3311,12 @@ BlockBackfillSkip = false FinalityDepth = 1 FinalityTagEnabled = false LogBackfillBatchSize = 1000 -LogPollInterval = '1s' +LogPollInterval = '3s' LogKeepBlocksDepth = 100000 MinIncomingConfirmations = 1 MinContractPayment = '0.00001 link' NonceAutoSync = true -NoNewHeadsThreshold = '1s' +NoNewHeadsThreshold = '30s' RPCDefaultBatchSize = 250 RPCBlockQueryDelay = 1 From 55d74f12427be7d7419dbe1ee7e30cc9fc7ab4e0 Mon Sep 17 00:00:00 2001 From: Mohamed Mehany <7327188+mohamed-mehany@users.noreply.github.com> Date: Thu, 28 Sep 2023 18:43:17 +0200 Subject: [PATCH 03/11] Adds WeMix contract loader --- integration-tests/contracts/contract_loader.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/integration-tests/contracts/contract_loader.go b/integration-tests/contracts/contract_loader.go index 4dda2d3f0c4..cfe7a35467e 100644 --- a/integration-tests/contracts/contract_loader.go +++ b/integration-tests/contracts/contract_loader.go @@ -64,6 +64,8 @@ func NewContractLoader(bcClient blockchain.EVMClient, logger zerolog.Logger) (Co return &OptimismContractLoader{NewEthereumContractLoader(clientImpl, logger)}, nil case *blockchain.PolygonZkEvmClient: return &PolygonZkEvmContractLoader{NewEthereumContractLoader(clientImpl, logger)}, nil + case *blockchain.WeMixClient: + return &WeMixContractLoader{NewEthereumContractLoader(clientImpl, logger)}, nil } return nil, errors.New("unknown blockchain client implementation for contract Loader, register blockchain client in NewContractLoader") } @@ -107,6 +109,11 @@ type PolygonZKEVMContractLoader struct { *EthereumContractLoader } +// WeMixContractLoader wraps for WeMix +type WeMixContractLoader struct { + *EthereumContractLoader +} + // NewEthereumContractLoader returns an instantiated instance of the ETH contract Loader func NewEthereumContractLoader(ethClient blockchain.EVMClient, logger zerolog.Logger) *EthereumContractLoader { return &EthereumContractLoader{ From eca81ff6f86efba6de79d5d9447aa158f01844d4 Mon Sep 17 00:00:00 2001 From: Mohamed Mehany <7327188+mohamed-mehany@users.noreply.github.com> Date: Fri, 29 Sep 2023 01:52:04 +0200 Subject: [PATCH 04/11] Downgrading to go 1.20.5 bullseye --- core/chainlink.Dockerfile | 2 +- core/chainlink.devspace.Dockerfile | 4 ++-- integration-tests/.tool-versions | 2 +- plugins/chainlink.Dockerfile | 4 ++-- tools/docker/cldev.Dockerfile | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/chainlink.Dockerfile b/core/chainlink.Dockerfile index be1fdb9053b..03d8621899c 100644 --- a/core/chainlink.Dockerfile +++ b/core/chainlink.Dockerfile @@ -1,5 +1,5 @@ # Build image: Chainlink binary -FROM golang:1.21-bullseye as buildgo +FROM golang:1.20.5-buster as buildgo RUN go version WORKDIR /chainlink diff --git a/core/chainlink.devspace.Dockerfile b/core/chainlink.devspace.Dockerfile index 9ec061ae40d..78bc74894cf 100644 --- a/core/chainlink.devspace.Dockerfile +++ b/core/chainlink.devspace.Dockerfile @@ -1,5 +1,5 @@ # Build image: Chainlink binary -FROM golang:1.21-bullseye as buildgo +FROM golang:1.20.5-buster as buildgo RUN go version WORKDIR /chainlink @@ -18,7 +18,7 @@ COPY . . RUN make install-chainlink # Final image: ubuntu with chainlink binary -FROM golang:1.21-bullseye +FROM golang:1.20.5-buster ARG CHAINLINK_USER=root ENV DEBIAN_FRONTEND noninteractive diff --git a/integration-tests/.tool-versions b/integration-tests/.tool-versions index 68b6d994197..8a715d61a2b 100644 --- a/integration-tests/.tool-versions +++ b/integration-tests/.tool-versions @@ -1,4 +1,4 @@ -golang 1.21.1 +golang 1.20.5 k3d 5.4.6 kubectl 1.25.5 nodejs 18.13.0 diff --git a/plugins/chainlink.Dockerfile b/plugins/chainlink.Dockerfile index 001ee30bf74..809d0c389aa 100644 --- a/plugins/chainlink.Dockerfile +++ b/plugins/chainlink.Dockerfile @@ -1,5 +1,5 @@ # Build image: Chainlink binary -FROM golang:1.21-bullseye as buildgo +FROM golang:1.20.5-buster as buildgo RUN go version WORKDIR /chainlink @@ -75,4 +75,4 @@ ENTRYPOINT ["chainlink"] HEALTHCHECK CMD curl -f http://localhost:6688/health || exit 1 -CMD ["local", "node"] \ No newline at end of file +CMD ["local", "node"] diff --git a/tools/docker/cldev.Dockerfile b/tools/docker/cldev.Dockerfile index 72f2f06d7ce..6ae183c3563 100644 --- a/tools/docker/cldev.Dockerfile +++ b/tools/docker/cldev.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.21-bullseye +FROM golang:1.20.5-bullseye ARG SRCROOT=/usr/local/src/chainlink WORKDIR ${SRCROOT} From 7306b004fab44de387673bf7585afd8eae1a9695 Mon Sep 17 00:00:00 2001 From: Mohamed Mehany <7327188+mohamed-mehany@users.noreply.github.com> Date: Fri, 6 Oct 2023 11:48:31 +0200 Subject: [PATCH 05/11] Revert "Downgrading to go 1.20.5 bullseye" This reverts commit 7eab839819456513dcf7f83ca8f08c97bdeb3835. --- core/chainlink.Dockerfile | 2 +- core/chainlink.devspace.Dockerfile | 4 ++-- integration-tests/.tool-versions | 2 +- plugins/chainlink.Dockerfile | 4 ++-- tools/docker/cldev.Dockerfile | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/chainlink.Dockerfile b/core/chainlink.Dockerfile index 03d8621899c..be1fdb9053b 100644 --- a/core/chainlink.Dockerfile +++ b/core/chainlink.Dockerfile @@ -1,5 +1,5 @@ # Build image: Chainlink binary -FROM golang:1.20.5-buster as buildgo +FROM golang:1.21-bullseye as buildgo RUN go version WORKDIR /chainlink diff --git a/core/chainlink.devspace.Dockerfile b/core/chainlink.devspace.Dockerfile index 78bc74894cf..9ec061ae40d 100644 --- a/core/chainlink.devspace.Dockerfile +++ b/core/chainlink.devspace.Dockerfile @@ -1,5 +1,5 @@ # Build image: Chainlink binary -FROM golang:1.20.5-buster as buildgo +FROM golang:1.21-bullseye as buildgo RUN go version WORKDIR /chainlink @@ -18,7 +18,7 @@ COPY . . RUN make install-chainlink # Final image: ubuntu with chainlink binary -FROM golang:1.20.5-buster +FROM golang:1.21-bullseye ARG CHAINLINK_USER=root ENV DEBIAN_FRONTEND noninteractive diff --git a/integration-tests/.tool-versions b/integration-tests/.tool-versions index 8a715d61a2b..68b6d994197 100644 --- a/integration-tests/.tool-versions +++ b/integration-tests/.tool-versions @@ -1,4 +1,4 @@ -golang 1.20.5 +golang 1.21.1 k3d 5.4.6 kubectl 1.25.5 nodejs 18.13.0 diff --git a/plugins/chainlink.Dockerfile b/plugins/chainlink.Dockerfile index 809d0c389aa..001ee30bf74 100644 --- a/plugins/chainlink.Dockerfile +++ b/plugins/chainlink.Dockerfile @@ -1,5 +1,5 @@ # Build image: Chainlink binary -FROM golang:1.20.5-buster as buildgo +FROM golang:1.21-bullseye as buildgo RUN go version WORKDIR /chainlink @@ -75,4 +75,4 @@ ENTRYPOINT ["chainlink"] HEALTHCHECK CMD curl -f http://localhost:6688/health || exit 1 -CMD ["local", "node"] +CMD ["local", "node"] \ No newline at end of file diff --git a/tools/docker/cldev.Dockerfile b/tools/docker/cldev.Dockerfile index 6ae183c3563..72f2f06d7ce 100644 --- a/tools/docker/cldev.Dockerfile +++ b/tools/docker/cldev.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.20.5-bullseye +FROM golang:1.21-bullseye ARG SRCROOT=/usr/local/src/chainlink WORKDIR ${SRCROOT} From 9dff9ed837c347a5a0a4720ccd31120eab19001c Mon Sep 17 00:00:00 2001 From: davidcauchi Date: Fri, 6 Oct 2023 16:54:50 +0200 Subject: [PATCH 06/11] Update testing branch --- integration-tests/go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 32b300a86b9..696e06b6c91 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -2380,8 +2380,6 @@ github.com/smartcontractkit/chainlink-testing-framework v1.18.4 h1:IAalKSqRDSGj1 github.com/smartcontractkit/chainlink-testing-framework v1.18.4/go.mod h1:zScXRqmvbyTFUooyLYrOp4+V/sFPUbFJNRc72YmnuIk= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306 h1:ko88+ZznniNJZbZPWAvHQU8SwKAdHngdDZ+pvVgB5ss= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= -github.com/smartcontractkit/chainlink-testing-framework v1.17.3-0.20230925111620-55c1e8ed492c h1:1nQ9Xy3VT4K6bmjPAkIEhGj1dNxwiajVtPAZZiI22Jw= -github.com/smartcontractkit/chainlink-testing-framework v1.17.3-0.20230925111620-55c1e8ed492c/go.mod h1:izzRx4cNihkVP9XY15isSCMW1QAlRK1w5eE23/MbZHM= github.com/smartcontractkit/grpc-proxy v0.0.0-20230731113816-f1be6620749f h1:hgJif132UCdjo8u43i7iPN1/MFnu49hv7lFGFftCHKU= github.com/smartcontractkit/grpc-proxy v0.0.0-20230731113816-f1be6620749f/go.mod h1:MvMXoufZAtqExNexqi4cjrNYE9MefKddKylxjS+//n0= github.com/smartcontractkit/libocr v0.0.0-20231020123319-d255366a6545 h1:qOsw2ETQD/Sb/W2xuYn2KPWjvvsWA0C+l19rWFq8iNg= From 84dcba88ecadeb73ce852827d754013f9db16a8f Mon Sep 17 00:00:00 2001 From: Mohamed Mehany <7327188+mohamed-mehany@users.noreply.github.com> Date: Mon, 16 Oct 2023 11:00:39 +0200 Subject: [PATCH 07/11] Excludes fee delegation transactions for Wemix --- .github/workflows/on-demand-ocr-soak-test.yml | 1 + .../config/toml/defaults/WeMix_Mainnet.toml | 14 +++ .../config/toml/defaults/WeMix_Testnet.toml | 4 +- .../evm/gas/block_history_estimator_test.go | 6 ++ core/chains/evm/gas/chain_specific.go | 7 ++ core/config/chaintype.go | 6 +- core/config/docs/chains-evm.toml | 2 +- core/services/chainlink/config_test.go | 4 +- docs/CONFIG.md | 85 ++++++++++++++++++- integration-tests/go.mod | 1 - integration-tests/go.sum | 8 +- 11 files changed, 120 insertions(+), 18 deletions(-) create mode 100644 core/chains/evm/config/toml/defaults/WeMix_Mainnet.toml diff --git a/.github/workflows/on-demand-ocr-soak-test.yml b/.github/workflows/on-demand-ocr-soak-test.yml index cbb75be00ee..b6ccad22467 100644 --- a/.github/workflows/on-demand-ocr-soak-test.yml +++ b/.github/workflows/on-demand-ocr-soak-test.yml @@ -29,6 +29,7 @@ on: - "KROMA_MAINNET" - "KROMA_SEPOLIA" - "WEMIX_TESTNET" + - "WEMIX_MAINNET" fundingPrivateKey: description: Private funding key (Skip for Simulated) required: false diff --git a/core/chains/evm/config/toml/defaults/WeMix_Mainnet.toml b/core/chains/evm/config/toml/defaults/WeMix_Mainnet.toml new file mode 100644 index 00000000000..ee50a9844a4 --- /dev/null +++ b/core/chains/evm/config/toml/defaults/WeMix_Mainnet.toml @@ -0,0 +1,14 @@ +ChainID = '1111' +ChainType = 'wemix' +FinalityDepth = 1 +MinIncomingConfirmations = 1 +# WeMix emits a block every 1 second, regardless of transactions +LogPollInterval = '3s' +NoNewHeadsThreshold = '30s' + +[OCR] +ContractConfirmations = 1 + +[GasEstimator] +EIP1559DynamicFees = true +TipCapDefault = '100 gwei' diff --git a/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml b/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml index dd20414f083..6cdb451eb1d 100644 --- a/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml @@ -1,4 +1,5 @@ ChainID = '1112' +ChainType = 'wemix' FinalityDepth = 1 MinIncomingConfirmations = 1 # WeMix emits a block every 1 second, regardless of transactions @@ -11,6 +12,3 @@ ContractConfirmations = 1 [GasEstimator] EIP1559DynamicFees = true TipCapDefault = '100 gwei' - -[GasEstimator.BlockHistory] -TransactionPercentile = 30 diff --git a/core/chains/evm/gas/block_history_estimator_test.go b/core/chains/evm/gas/block_history_estimator_test.go index 7f4d157e37a..decb68dbe99 100644 --- a/core/chains/evm/gas/block_history_estimator_test.go +++ b/core/chains/evm/gas/block_history_estimator_test.go @@ -1329,6 +1329,12 @@ func TestBlockHistoryEstimator_IsUsable(t *testing.T) { assert.Equal(t, true, bhe.IsUsable(tx2, block, cfg.ChainType(), geCfg.PriceMin(), logger.TestLogger(t))) }) + t.Run("returns false if transaction is of type 0x16 only on WeMix", func(t *testing.T) { + cfg.ChainTypeF = "wemix" + tx := evmtypes.Transaction{Type: 0x16, GasPrice: assets.NewWeiI(10), GasLimit: 42, Hash: utils.NewHash()} + assert.Equal(t, false, bhe.IsUsable(tx, block, cfg.ChainType(), geCfg.PriceMin(), logger.TestLogger(t))) + }) + t.Run("returns false if transaction has base fee higher than the gas price only on Celo", func(t *testing.T) { cfg.ChainTypeF = "celo" tx := evmtypes.Transaction{Type: 0x0, GasPrice: assets.NewWeiI(10), GasLimit: 42, Hash: utils.NewHash()} diff --git a/core/chains/evm/gas/chain_specific.go b/core/chains/evm/gas/chain_specific.go index 4d87b8b454e..5c0b256bd3f 100644 --- a/core/chains/evm/gas/chain_specific.go +++ b/core/chains/evm/gas/chain_specific.go @@ -42,5 +42,12 @@ func chainSpecificIsUsable(tx evmtypes.Transaction, baseFee *assets.Wei, chainTy return false } } + if chainType == config.ChainWeMix { + // WeMix specific transaction types that enables fee delegation. + // https://docs.wemix.com/v/en/design/fee-delegation + if tx.Type == 0x16 { + return false + } + } return true } diff --git a/core/config/chaintype.go b/core/config/chaintype.go index c99099ee616..0110f247b73 100644 --- a/core/config/chaintype.go +++ b/core/config/chaintype.go @@ -15,18 +15,18 @@ const ( ChainOptimismBedrock ChainType = "optimismBedrock" ChainXDai ChainType = "xdai" ChainCelo ChainType = "celo" + ChainWeMix ChainType = "wemix" ChainKroma ChainType = "kroma" ) var ErrInvalidChainType = fmt.Errorf("must be one of %s or omitted", strings.Join([]string{ string(ChainArbitrum), string(ChainMetis), string(ChainXDai), string(ChainOptimismBedrock), string(ChainCelo), - string(ChainKroma), -}, ", ")) + string(ChainKroma), string(ChainWeMix)}, ", ")) // IsValid returns true if the ChainType value is known or empty. func (c ChainType) IsValid() bool { switch c { - case "", ChainArbitrum, ChainMetis, ChainOptimismBedrock, ChainXDai, ChainCelo, ChainKroma: + case "", ChainArbitrum, ChainMetis, ChainOptimismBedrock, ChainXDai, ChainCelo, ChainKroma, ChainWeMix: return true } return false diff --git a/core/config/docs/chains-evm.toml b/core/config/docs/chains-evm.toml index 082bbd6cd19..c0cdfc7a310 100644 --- a/core/config/docs/chains-evm.toml +++ b/core/config/docs/chains-evm.toml @@ -14,7 +14,7 @@ BlockBackfillDepth = 10 # Default # BlockBackfillSkip enables skipping of very long backfills. BlockBackfillSkip = false # Default # ChainType is automatically detected from chain ID. Set this to force a certain chain type regardless of chain ID. -# Available types: arbitrum, metis, optimismBedrock, xdai, celo, kroma +# Available types: arbitrum, metis, optimismBedrock, xdai, celo, kroma, wemix ChainType = 'arbitrum' # Example # FinalityDepth is the number of blocks after which an ethereum transaction is considered "final". Note that the default is automatically set based on chain ID so it should not be necessary to change this under normal operation. # BlocksConsideredFinal determines how deeply we look back to ensure that transactions are confirmed onto the longest chain diff --git a/core/services/chainlink/config_test.go b/core/services/chainlink/config_test.go index 59a02f1dcf9..cc3fda167de 100644 --- a/core/services/chainlink/config_test.go +++ b/core/services/chainlink/config_test.go @@ -1190,7 +1190,7 @@ func TestConfig_Validate(t *testing.T) { - 1: 6 errors: - ChainType: invalid value (Foo): must not be set with this chain id - Nodes: missing: must have at least one node - - ChainType: invalid value (Foo): must be one of arbitrum, metis, xdai, optimismBedrock, celo, kroma or omitted + - ChainType: invalid value (Foo): must be one of arbitrum, metis, xdai, optimismBedrock, celo, kroma, wemix or omitted - HeadTracker.HistoryDepth: invalid value (30): must be equal to or greater than FinalityDepth - GasEstimator: 2 errors: - FeeCapDefault: invalid value (101 wei): must be equal to PriceMax (99 wei) since you are using FixedPrice estimation with gas bumping disabled in EIP1559 mode - PriceMax will be used as the FeeCap for transactions instead of FeeCapDefault @@ -1199,7 +1199,7 @@ func TestConfig_Validate(t *testing.T) { - 2: 5 errors: - ChainType: invalid value (Arbitrum): only "optimismBedrock" can be used with this chain id - Nodes: missing: must have at least one node - - ChainType: invalid value (Arbitrum): must be one of arbitrum, metis, xdai, optimismBedrock, celo, kroma or omitted + - ChainType: invalid value (Arbitrum): must be one of arbitrum, metis, xdai, optimismBedrock, celo, kroma, wemix or omitted - FinalityDepth: invalid value (0): must be greater than or equal to 1 - MinIncomingConfirmations: invalid value (0): must be greater than or equal to 1 - 3.Nodes: 5 errors: diff --git a/docs/CONFIG.md b/docs/CONFIG.md index baa727f8cf3..fd8822c1626 100644 --- a/docs/CONFIG.md +++ b/docs/CONFIG.md @@ -3302,12 +3302,92 @@ GasLimit = 5300000

+
WeMix Mainnet (1111)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +ChainType = 'wemix' +FinalityDepth = 1 +FinalityTagEnabled = false +LogBackfillBatchSize = 1000 +LogPollInterval = '3s' +LogKeepBlocksDepth = 100000 +MinIncomingConfirmations = 1 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '30s' +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '1m0s' + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '1 gwei' +LimitDefault = 500000 +LimitMax = 500000 +LimitMultiplier = '1' +LimitTransfer = 21000 +BumpMin = '5 gwei' +BumpPercent = 20 +BumpThreshold = 3 +EIP1559DynamicFees = true +FeeCapDefault = '100 gwei' +TipCapDefault = '100 gwei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 8 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 60 + +[HeadTracker] +HistoryDepth = 100 +MaxBufferSize = 3 +SamplingInterval = '1s' + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 5 +LeaseDuration = '0s' + +[OCR] +ContractConfirmations = 1 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5300000 +``` + +

+
WeMix Testnet (1112)

```toml AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false +ChainType = 'wemix' FinalityDepth = 1 FinalityTagEnabled = false LogBackfillBatchSize = 1000 @@ -3353,7 +3433,7 @@ BatchSize = 25 BlockHistorySize = 8 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 -TransactionPercentile = 30 +TransactionPercentile = 60 [HeadTracker] HistoryDepth = 100 @@ -3365,6 +3445,7 @@ PollFailureThreshold = 5 PollInterval = '10s' SelectionMode = 'HighestHead' SyncThreshold = 5 +LeaseDuration = '0s' [OCR] ContractConfirmations = 1 @@ -5151,7 +5232,7 @@ BlockBackfillSkip enables skipping of very long backfills. ChainType = 'arbitrum' # Example ``` ChainType is automatically detected from chain ID. Set this to force a certain chain type regardless of chain ID. -Available types: arbitrum, metis, optimismBedrock, xdai, celo, kroma +Available types: arbitrum, metis, optimismBedrock, xdai, celo, kroma, wemix ### FinalityDepth ```toml diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 8daa5a29e5b..0d19ac3404b 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -359,7 +359,6 @@ require ( github.com/opentracing-contrib/go-grpc v0.0.0-20210225150812-73cb765af46e // indirect github.com/opentracing-contrib/go-stdlib v1.0.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/otiai10/copy v1.14.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 696e06b6c91..785a7afe6e2 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -2187,10 +2187,6 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= -github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= -github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= -github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= -github.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= github.com/ovh/go-ovh v1.3.0 h1:mvZaddk4E4kLcXhzb+cxBsMPYp2pHqiQpWYkInsuZPQ= github.com/ovh/go-ovh v1.3.0/go.mod h1:AxitLZ5HBRPyUd+Zl60Ajaag+rNTdVXWIkzfrVuTXWA= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -2283,8 +2279,8 @@ github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3c github.com/prometheus/prometheus v0.43.1-0.20230327151049-211ae4f1f0a2 h1:i5hmbBzR+VeL5pPl1ZncsJ1bpg3SO66bwkE1msJBsMA= github.com/prometheus/prometheus v0.43.1-0.20230327151049-211ae4f1f0a2/go.mod h1:Mm42Acga98xgA+u5yTaC3ki3i0rJEJWFpbdHN7q2trk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/pyroscope-io/client v0.7.1 h1:yFRhj3vbgjBxehvxQmedmUWJQ4CAfCHhn+itPsuWsHw= -github.com/pyroscope-io/client v0.7.1/go.mod h1:4h21iOU4pUOq0prKyDlvYRL+SCKsBc5wKiEtV+rJGqU= +github.com/pyroscope-io/client v0.6.0 h1:rcUFgcnfmuyVYDYT+4d0zfqc8YedOyruHSsUb9ImaBw= +github.com/pyroscope-io/client v0.6.0/go.mod h1:4h21iOU4pUOq0prKyDlvYRL+SCKsBc5wKiEtV+rJGqU= github.com/pyroscope-io/godeltaprof v0.1.2 h1:MdlEmYELd5w+lvIzmZvXGNMVzW2Qc9jDMuJaPOR75g4= github.com/pyroscope-io/godeltaprof v0.1.2/go.mod h1:psMITXp90+8pFenXkKIpNhrfmI9saQnPbba27VIaiQE= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= From efdbd7f970e938978bed12d591e69c8ab78149c9 Mon Sep 17 00:00:00 2001 From: davidcauchi Date: Tue, 17 Oct 2023 11:02:31 +0200 Subject: [PATCH 08/11] Update testing branch --- integration-tests/go.mod | 1 + integration-tests/go.sum | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 0d19ac3404b..8daa5a29e5b 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -359,6 +359,7 @@ require ( github.com/opentracing-contrib/go-grpc v0.0.0-20210225150812-73cb765af46e // indirect github.com/opentracing-contrib/go-stdlib v1.0.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/otiai10/copy v1.14.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 785a7afe6e2..696e06b6c91 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -2187,6 +2187,10 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= +github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= +github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= +github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= +github.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= github.com/ovh/go-ovh v1.3.0 h1:mvZaddk4E4kLcXhzb+cxBsMPYp2pHqiQpWYkInsuZPQ= github.com/ovh/go-ovh v1.3.0/go.mod h1:AxitLZ5HBRPyUd+Zl60Ajaag+rNTdVXWIkzfrVuTXWA= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -2279,8 +2283,8 @@ github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3c github.com/prometheus/prometheus v0.43.1-0.20230327151049-211ae4f1f0a2 h1:i5hmbBzR+VeL5pPl1ZncsJ1bpg3SO66bwkE1msJBsMA= github.com/prometheus/prometheus v0.43.1-0.20230327151049-211ae4f1f0a2/go.mod h1:Mm42Acga98xgA+u5yTaC3ki3i0rJEJWFpbdHN7q2trk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/pyroscope-io/client v0.6.0 h1:rcUFgcnfmuyVYDYT+4d0zfqc8YedOyruHSsUb9ImaBw= -github.com/pyroscope-io/client v0.6.0/go.mod h1:4h21iOU4pUOq0prKyDlvYRL+SCKsBc5wKiEtV+rJGqU= +github.com/pyroscope-io/client v0.7.1 h1:yFRhj3vbgjBxehvxQmedmUWJQ4CAfCHhn+itPsuWsHw= +github.com/pyroscope-io/client v0.7.1/go.mod h1:4h21iOU4pUOq0prKyDlvYRL+SCKsBc5wKiEtV+rJGqU= github.com/pyroscope-io/godeltaprof v0.1.2 h1:MdlEmYELd5w+lvIzmZvXGNMVzW2Qc9jDMuJaPOR75g4= github.com/pyroscope-io/godeltaprof v0.1.2/go.mod h1:psMITXp90+8pFenXkKIpNhrfmI9saQnPbba27VIaiQE= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= From e782b1e59f90e4c1c204032c76abf72d49fd8914 Mon Sep 17 00:00:00 2001 From: Mohamed Mehany <7327188+mohamed-mehany@users.noreply.github.com> Date: Mon, 6 Nov 2023 20:18:49 +0100 Subject: [PATCH 09/11] Linting --- core/services/ocr/contract_tracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/services/ocr/contract_tracker.go b/core/services/ocr/contract_tracker.go index 3a216e025f0..2308fa3035d 100644 --- a/core/services/ocr/contract_tracker.go +++ b/core/services/ocr/contract_tracker.go @@ -401,7 +401,7 @@ func (t *OCRContractTracker) LatestBlockHeight(ctx context.Context) (blockheight // care about the block height; we have no way of getting the L1 block // height anyway return 0, nil - case "", config.ChainArbitrum, config.ChainCelo, config.ChainOptimismBedrock, config.ChainXDai, config.ChainKroma: + case "", config.ChainArbitrum, config.ChainCelo, config.ChainOptimismBedrock, config.ChainXDai, config.ChainKroma, config.ChainWeMix: // continue } latestBlockHeight := t.getLatestBlockHeight() From 00ea38bb1ea5619ef1b240d310253b1444f48517 Mon Sep 17 00:00:00 2001 From: Mohamed Mehany <7327188+mohamed-mehany@users.noreply.github.com> Date: Mon, 6 Nov 2023 20:29:56 +0100 Subject: [PATCH 10/11] Fix typo --- integration-tests/contracts/contract_deployer.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/integration-tests/contracts/contract_deployer.go b/integration-tests/contracts/contract_deployer.go index b7fae1bfa64..916971f82d3 100644 --- a/integration-tests/contracts/contract_deployer.go +++ b/integration-tests/contracts/contract_deployer.go @@ -169,20 +169,14 @@ func NewContractDeployer(bcClient blockchain.EVMClient, logger zerolog.Logger) ( return &ScrollContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil case *blockchain.PolygonZkEvmClient: return &PolygonZkEvmContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil -<<<<<<< HEAD case *blockchain.LineaClient: return &LineaContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil case *blockchain.FantomClient: return &FantomContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil -<<<<<<< HEAD case *blockchain.KromaClient: return &KromaContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil -======= -======= case *blockchain.WeMixClient: return &WeMixContractDeployer{NewEthereumContractDeployer(clientImpl, logger)}, nil ->>>>>>> 4b069998f8 (Adds WeMix testnet config) ->>>>>>> 673b7a894b (Adds WeMix testnet config) } return nil, errors.New("unknown blockchain client implementation for contract deployer, register blockchain client in NewContractDeployer") } From e66b31f8c1844b7ddab26b30006ee7f083612385 Mon Sep 17 00:00:00 2001 From: davidcauchi Date: Tue, 7 Nov 2023 11:28:35 +0100 Subject: [PATCH 11/11] Update CTF --- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 8daa5a29e5b..dab3cfa64b5 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -22,7 +22,7 @@ require ( github.com/scylladb/go-reflectx v1.0.1 github.com/segmentio/ksuid v1.0.4 github.com/slack-go/slack v0.12.2 - github.com/smartcontractkit/chainlink-testing-framework v1.18.4 + github.com/smartcontractkit/chainlink-testing-framework v1.18.5-0.20231107092923-3aa655167f65 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20231020123319-d255366a6545 github.com/smartcontractkit/ocr2keepers v0.7.28 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 696e06b6c91..e8ee06ff49e 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -2376,8 +2376,8 @@ github.com/smartcontractkit/chainlink-solana v1.0.3-0.20231023133638-72f4e799ab0 github.com/smartcontractkit/chainlink-solana v1.0.3-0.20231023133638-72f4e799ab05/go.mod h1:o0Pn1pbaUluboaK6/yhf8xf7TiFCkyFl6WUOdwqamuU= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20231024133459-1ef3a11319eb h1:HiluOfEVGOQTM6BTDImOqYdMZZ7qq7fkZ3TJdmItNr8= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20231024133459-1ef3a11319eb/go.mod h1:/30flFG4L/iCYAFeA3DUzR0xuHSxAMONiWTzyzvsNwo= -github.com/smartcontractkit/chainlink-testing-framework v1.18.4 h1:IAalKSqRDSGj10zE/JvFrngKGp7mEIVTPh5jTnsaCec= -github.com/smartcontractkit/chainlink-testing-framework v1.18.4/go.mod h1:zScXRqmvbyTFUooyLYrOp4+V/sFPUbFJNRc72YmnuIk= +github.com/smartcontractkit/chainlink-testing-framework v1.18.5-0.20231107092923-3aa655167f65 h1:/iRhwYy5KFsaS9Zo1T64QxAd11HGZB5p/LHI5oVc4BU= +github.com/smartcontractkit/chainlink-testing-framework v1.18.5-0.20231107092923-3aa655167f65/go.mod h1:zScXRqmvbyTFUooyLYrOp4+V/sFPUbFJNRc72YmnuIk= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306 h1:ko88+ZznniNJZbZPWAvHQU8SwKAdHngdDZ+pvVgB5ss= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= github.com/smartcontractkit/grpc-proxy v0.0.0-20230731113816-f1be6620749f h1:hgJif132UCdjo8u43i7iPN1/MFnu49hv7lFGFftCHKU=