From 92e400f02f0ef83e202cb63a2dab16a1656942de Mon Sep 17 00:00:00 2001 From: Jordan Krage Date: Mon, 20 Jan 2025 11:43:14 -0600 Subject: [PATCH] bump framework; remove generic result type --- core/chains/evm/txmgr/broadcaster_test.go | 1 + core/scripts/go.mod | 6 +- core/scripts/go.sum | 12 ++-- deployment/go.mod | 6 +- deployment/go.sum | 12 ++-- evm/client/chain_client.go | 81 +++++++++++------------ evm/client/chain_client_test.go | 58 ++++------------ evm/client/rpc_client.go | 31 +-------- evm/client/rpc_client_test.go | 4 +- evm/client/tx_simulator_test.go | 10 +-- go.mod | 13 ++-- go.sum | 12 ++-- integration-tests/go.mod | 6 +- integration-tests/go.sum | 12 ++-- integration-tests/load/go.mod | 6 +- integration-tests/load/go.sum | 12 ++-- 16 files changed, 108 insertions(+), 174 deletions(-) diff --git a/core/chains/evm/txmgr/broadcaster_test.go b/core/chains/evm/txmgr/broadcaster_test.go index 9bdd9614cb5..1504ac0dc9d 100644 --- a/core/chains/evm/txmgr/broadcaster_test.go +++ b/core/chains/evm/txmgr/broadcaster_test.go @@ -90,6 +90,7 @@ func NewTestEthBroadcaster( // Mark instance as test ethBroadcaster.XXXTestDisableUnstartedTxAutoProcessing() servicetest.Run(t, ethBroadcaster) + time.Sleep(time.Second) // let background initiate return ethBroadcaster } diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 67d4fc0b15d..5b859fc11c5 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -319,12 +319,12 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250128162345-af4c8fd4481a // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect - github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a // indirect - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab // indirect + github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 // indirect + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 // indirect github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 3c04e9775ed..0f5509412ef 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1347,18 +1347,18 @@ github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5/go.mod h1:pDZagSGjs9U+l4YIFhveDznMHqxuuz+5vRxvVgpbdr8= github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6AnNt+Wg64sVG+XSA49c= github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 h1:2uTP9u0Bs4NdVYvLYz3tYRnsAnpCQ4lM1bByC9OgqjI= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 h1:Pn3uc+xBlC3JWdPW41V2lL/tdF2nbUzt20w+ZpY2CVY= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 h1:KYsTFwGIIYCermWMjbKHWIkfMtCfpAKVULVqYQCiMb8= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120/go.mod h1:QEeoBYUdwiuzz+KqvEdymE7O4riUzH0o6pvfVIiXIoQ= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.2-0.20250110073248-456673e8eea2 h1:nTUoe7GZLw17nPLV5t3Vgf4U4pf+VW0Uko5xpNiKdKU= diff --git a/deployment/go.mod b/deployment/go.mod index 557dc60591d..02402669514 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -34,9 +34,9 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.0.0-20250203132120-f0d42463e405 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250128162345-af4c8fd4481a github.com/smartcontractkit/chainlink-common v0.4.2-0.20250130202959-6f1f48342e36 - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.2-0.20250110073248-456673e8eea2 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 @@ -420,7 +420,7 @@ require ( github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect - github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a // indirect + github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect diff --git a/deployment/go.sum b/deployment/go.sum index 39b7b1b32d7..948077a0b65 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1412,18 +1412,18 @@ github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5/go.mod h1:pDZagSGjs9U+l4YIFhveDznMHqxuuz+5vRxvVgpbdr8= github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6AnNt+Wg64sVG+XSA49c= github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 h1:2uTP9u0Bs4NdVYvLYz3tYRnsAnpCQ4lM1bByC9OgqjI= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 h1:Pn3uc+xBlC3JWdPW41V2lL/tdF2nbUzt20w+ZpY2CVY= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 h1:KYsTFwGIIYCermWMjbKHWIkfMtCfpAKVULVqYQCiMb8= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120/go.mod h1:QEeoBYUdwiuzz+KqvEdymE7O4riUzH0o6pvfVIiXIoQ= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.2-0.20250110073248-456673e8eea2 h1:nTUoe7GZLw17nPLV5t3Vgf4U4pf+VW0Uko5xpNiKdKU= diff --git a/evm/client/chain_client.go b/evm/client/chain_client.go index cec4f3c318d..df001f25f88 100644 --- a/evm/client/chain_client.go +++ b/evm/client/chain_client.go @@ -2,7 +2,6 @@ package client import ( "context" - "errors" "math/big" "sync" "time" @@ -102,7 +101,7 @@ type chainClient struct { *big.Int, *RPCClient, ] - txSender *multinode.TransactionSender[*types.Transaction, *SendTxResult, *big.Int, *RPCClient] + txSender *multinode.TransactionSender[*types.Transaction, struct{}, *big.Int, *RPCClient] logger logger.SugaredLogger chainType chaintype.ChainType clientErrors evmconfig.ClientErrors @@ -131,12 +130,12 @@ func NewChainClient( deathDeclarationDelay, ) - txSender := multinode.NewTransactionSender[*types.Transaction, *SendTxResult, *big.Int, *RPCClient]( + txSender := multinode.NewTransactionSender[*types.Transaction, struct{}, *big.Int, *RPCClient]( lggr, chainID, chainFamily, multiNode, - NewSendTxResult, + func(err error) multinode.SendTxReturnCode { return 0 }, 0, // use the default value provided by the implementation ) @@ -150,7 +149,7 @@ func NewChainClient( } func (c *chainClient) BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -165,7 +164,7 @@ func (c *chainClient) BalanceAt(ctx context.Context, account common.Address, blo // might not be properly handled and returned results might have weaker finality guarantees. It's highly recommended // to use HeadTracker to identify latest finalized block. func (c *chainClient) BatchCallContext(ctx context.Context, b []rpc.BatchElem) error { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return err } @@ -175,7 +174,7 @@ func (c *chainClient) BatchCallContext(ctx context.Context, b []rpc.BatchElem) e // Similar to BatchCallContext, ensure the provided BatchElem slice is passed through func (c *chainClient) BatchCallContextAll(ctx context.Context, b []rpc.BatchElem) error { if c.chainType == chaintype.ChainHedera { - activeRPC, err := c.multiNode.SelectRPC() + activeRPC, err := c.multiNode.SelectRPC(ctx) if err != nil { return err } @@ -187,7 +186,7 @@ func (c *chainClient) BatchCallContextAll(ctx context.Context, b []rpc.BatchElem defer wg.Wait() // Select main RPC to use for return value - main, selectionErr := c.multiNode.SelectRPC() + main, selectionErr := c.multiNode.SelectRPC(ctx) doFunc := func(ctx context.Context, rpc *RPCClient, isSendOnly bool) { if rpc == main { @@ -219,7 +218,7 @@ func (c *chainClient) BatchCallContextAll(ctx context.Context, b []rpc.BatchElem // TODO-1663: return custom Block type instead of geth's once client.go is deprecated. func (c *chainClient) BlockByHash(ctx context.Context, hash common.Hash) (b *types.Block, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return b, err } @@ -228,7 +227,7 @@ func (c *chainClient) BlockByHash(ctx context.Context, hash common.Hash) (b *typ // TODO-1663: return custom Block type instead of geth's once client.go is deprecated. func (c *chainClient) BlockByNumber(ctx context.Context, number *big.Int) (b *types.Block, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return b, err } @@ -236,7 +235,7 @@ func (c *chainClient) BlockByNumber(ctx context.Context, number *big.Int) (b *ty } func (c *chainClient) CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return err } @@ -244,7 +243,7 @@ func (c *chainClient) CallContext(ctx context.Context, result interface{}, metho } func (c *chainClient) CallContract(ctx context.Context, msg ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -252,7 +251,7 @@ func (c *chainClient) CallContract(ctx context.Context, msg ethereum.CallMsg, bl } func (c *chainClient) PendingCallContract(ctx context.Context, msg ethereum.CallMsg) ([]byte, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -265,7 +264,7 @@ func (c *chainClient) Close() { } func (c *chainClient) CodeAt(ctx context.Context, account common.Address, blockNumber *big.Int) ([]byte, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -285,14 +284,14 @@ func (c *chainClient) Dial(ctx context.Context) error { } func (c *chainClient) EstimateGas(ctx context.Context, call ethereum.CallMsg) (uint64, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return 0, err } return r.EstimateGas(ctx, call) } func (c *chainClient) FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([]types.Log, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -300,7 +299,7 @@ func (c *chainClient) FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([ } func (c *chainClient) HeaderByHash(ctx context.Context, h common.Hash) (head *types.Header, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return head, err } @@ -308,7 +307,7 @@ func (c *chainClient) HeaderByHash(ctx context.Context, h common.Hash) (head *ty } func (c *chainClient) HeaderByNumber(ctx context.Context, n *big.Int) (head *types.Header, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return head, err } @@ -316,7 +315,7 @@ func (c *chainClient) HeaderByNumber(ctx context.Context, n *big.Int) (head *typ } func (c *chainClient) HeadByHash(ctx context.Context, h common.Hash) (*evmtypes.Head, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -324,7 +323,7 @@ func (c *chainClient) HeadByHash(ctx context.Context, h common.Hash) (*evmtypes. } func (c *chainClient) HeadByNumber(ctx context.Context, n *big.Int) (*evmtypes.Head, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -336,7 +335,7 @@ func (c *chainClient) IsL2() bool { } func (c *chainClient) LINKBalance(ctx context.Context, address common.Address, linkAddress common.Address) (*commonassets.Link, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -344,7 +343,7 @@ func (c *chainClient) LINKBalance(ctx context.Context, address common.Address, l } func (c *chainClient) LatestBlockHeight(ctx context.Context) (*big.Int, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -356,7 +355,7 @@ func (c *chainClient) NodeStates() map[string]string { } func (c *chainClient) PendingCodeAt(ctx context.Context, account common.Address) (b []byte, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return b, err } @@ -365,7 +364,7 @@ func (c *chainClient) PendingCodeAt(ctx context.Context, account common.Address) // TODO-1663: change this to evmtypes.Nonce(int64) once client.go is deprecated. func (c *chainClient) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return 0, err } @@ -374,20 +373,16 @@ func (c *chainClient) PendingNonceAt(ctx context.Context, account common.Address } func (c *chainClient) SendTransaction(ctx context.Context, tx *types.Transaction) error { - var result *SendTxResult if c.chainType == chaintype.ChainHedera { - activeRPC, err := c.multiNode.SelectRPC() + activeRPC, err := c.multiNode.SelectRPC(ctx) if err != nil { return err } - result = activeRPC.SendTransaction(ctx, tx) - } else { - result = c.txSender.SendTransaction(ctx, tx) - } - if result == nil { - return errors.New("SendTransaction failed: result is nil") + _, _, err = activeRPC.SendTransaction(ctx, tx) + return err } - return result.Error() + _, _, err := c.txSender.SendTransaction(ctx, tx) + return err } func (c *chainClient) SendTransactionReturnCode(ctx context.Context, tx *types.Transaction, fromAddress common.Address) (multinode.SendTxReturnCode, error) { @@ -397,7 +392,7 @@ func (c *chainClient) SendTransactionReturnCode(ctx context.Context, tx *types.T } func (c *chainClient) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return 0, err } @@ -405,7 +400,7 @@ func (c *chainClient) NonceAt(ctx context.Context, account common.Address, block } func (c *chainClient) SubscribeFilterLogs(ctx context.Context, q ethereum.FilterQuery, ch chan<- types.Log) (s ethereum.Subscription, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return s, err } @@ -413,7 +408,7 @@ func (c *chainClient) SubscribeFilterLogs(ctx context.Context, q ethereum.Filter } func (c *chainClient) SubscribeToHeads(ctx context.Context) (<-chan *evmtypes.Head, ethereum.Subscription, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, nil, err } @@ -427,7 +422,7 @@ func (c *chainClient) SubscribeToHeads(ctx context.Context) (<-chan *evmtypes.He } func (c *chainClient) SuggestGasPrice(ctx context.Context) (p *big.Int, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return p, err } @@ -435,7 +430,7 @@ func (c *chainClient) SuggestGasPrice(ctx context.Context) (p *big.Int, err erro } func (c *chainClient) SuggestGasTipCap(ctx context.Context) (t *big.Int, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return t, err } @@ -443,7 +438,7 @@ func (c *chainClient) SuggestGasTipCap(ctx context.Context) (t *big.Int, err err } func (c *chainClient) TokenBalance(ctx context.Context, address common.Address, contractAddress common.Address) (*big.Int, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -451,7 +446,7 @@ func (c *chainClient) TokenBalance(ctx context.Context, address common.Address, } func (c *chainClient) TransactionByHash(ctx context.Context, txHash common.Hash) (*types.Transaction, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -460,7 +455,7 @@ func (c *chainClient) TransactionByHash(ctx context.Context, txHash common.Hash) // TODO-1663: return custom Receipt type instead of geth's once client.go is deprecated. func (c *chainClient) TransactionReceipt(ctx context.Context, txHash common.Hash) (receipt *types.Receipt, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return receipt, err } @@ -469,7 +464,7 @@ func (c *chainClient) TransactionReceipt(ctx context.Context, txHash common.Hash } func (c *chainClient) LatestFinalizedBlock(ctx context.Context) (*evmtypes.Head, error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return nil, err } @@ -477,7 +472,7 @@ func (c *chainClient) LatestFinalizedBlock(ctx context.Context) (*evmtypes.Head, } func (c *chainClient) FeeHistory(ctx context.Context, blockCount uint64, lastBlock *big.Int, rewardPercentiles []float64) (feeHistory *ethereum.FeeHistory, err error) { - r, err := c.multiNode.SelectRPC() + r, err := c.multiNode.SelectRPC(ctx) if err != nil { return feeHistory, err } diff --git a/evm/client/chain_client_test.go b/evm/client/chain_client_test.go index b03934e69f5..e0a9ac14b60 100644 --- a/evm/client/chain_client_test.go +++ b/evm/client/chain_client_test.go @@ -38,11 +38,21 @@ func mustNewChainClient(t *testing.T, wsURL string, sendonlys ...url.URL) client } func mustNewChainClientWithChainID(t *testing.T, wsURL string, chainID *big.Int, sendonlys ...url.URL) client.Client { + ctx := tests.Context(t) cfg := client.TestNodePoolConfig{ NodeSelectionMode: multinode.NodeSelectionModeRoundRobin, } - c, err := client.NewChainClientWithTestNode(t, cfg, time.Second*0, cfg.NodeLeaseDuration, wsURL, nil, sendonlys, 42, chainID) + c, err := client.NewChainClientWithTestNode(t, cfg, 0, cfg.NodeLeaseDuration, wsURL, nil, sendonlys, 42, chainID) require.NoError(t, err) + require.NoError(t, c.Dial(ctx)) + require.Eventually(t, func() bool { + for _, state := range c.NodeStates() { + if state == "Alive" { + return true + } + } + return false + }, time.Minute, time.Second, "no live nodes available") return c } @@ -83,8 +93,6 @@ func TestEthClient_TransactionReceipt(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) hash := common.HexToHash(txHash) receipt, err := ethClient.TransactionReceipt(tests.Context(t), hash) @@ -113,11 +121,9 @@ func TestEthClient_TransactionReceipt(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) hash := common.HexToHash(txHash) - _, err = ethClient.TransactionReceipt(tests.Context(t), hash) + _, err := ethClient.TransactionReceipt(tests.Context(t), hash) require.Equal(t, ethereum.NotFound, pkgerrors.Cause(err)) }) } @@ -149,8 +155,6 @@ func TestEthClient_PendingNonceAt(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) result, err := ethClient.PendingNonceAt(tests.Context(t), address) require.NoError(t, err) @@ -194,8 +198,6 @@ func TestEthClient_BalanceAt(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) result, err := ethClient.BalanceAt(tests.Context(t), address, nil) require.NoError(t, err) @@ -225,8 +227,6 @@ func TestEthClient_LatestBlockHeight(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) result, err := ethClient.LatestBlockHeight(tests.Context(t)) require.NoError(t, err) @@ -280,8 +280,6 @@ func TestEthClient_GetERC20Balance(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) result, err := ethClient.TokenBalance(ctx, userAddress, contractAddress) require.NoError(t, err) @@ -357,8 +355,6 @@ func TestEthClient_HeaderByNumber(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) ctx, cancel := context.WithTimeout(tests.Context(t), 5*time.Second) result, err := ethClient.HeadByNumber(ctx, expectedBlockNum) @@ -398,10 +394,8 @@ func TestEthClient_SendTransaction_NoSecondaryURL(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) - err = ethClient.SendTransaction(tests.Context(t), tx) + err := ethClient.SendTransaction(tests.Context(t), tx) assert.NoError(t, err) } @@ -437,8 +431,6 @@ func TestEthClient_SendTransaction_WithSecondaryURLs(t *testing.T) { require.NoError(t, err) ethClient := mustNewChainClient(t, wsURL, *sendonlyURL, *sendonlyURL) - err = ethClient.Dial(tests.Context(t)) - require.NoError(t, err) err = ethClient.SendTransaction(tests.Context(t), tx) require.NoError(t, err) @@ -486,8 +478,6 @@ func TestEthClient_SendTransactionReturnCode(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) errType, err := ethClient.SendTransactionReturnCode(tests.Context(t), tx, fromAddress) assert.Error(t, err) @@ -512,8 +502,6 @@ func TestEthClient_SendTransactionReturnCode(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) errType, err := ethClient.SendTransactionReturnCode(tests.Context(t), tx, fromAddress) assert.Error(t, err) @@ -537,8 +525,6 @@ func TestEthClient_SendTransactionReturnCode(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) errType, err := ethClient.SendTransactionReturnCode(tests.Context(t), tx, fromAddress) assert.NoError(t, err) @@ -563,8 +549,6 @@ func TestEthClient_SendTransactionReturnCode(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) errType, err := ethClient.SendTransactionReturnCode(tests.Context(t), tx, fromAddress) assert.Error(t, err) @@ -589,8 +573,6 @@ func TestEthClient_SendTransactionReturnCode(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) errType, err := ethClient.SendTransactionReturnCode(tests.Context(t), tx, fromAddress) assert.Error(t, err) @@ -615,8 +597,6 @@ func TestEthClient_SendTransactionReturnCode(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) errType, err := ethClient.SendTransactionReturnCode(tests.Context(t), tx, fromAddress) assert.Error(t, err) @@ -641,8 +621,6 @@ func TestEthClient_SendTransactionReturnCode(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) errType, err := ethClient.SendTransactionReturnCode(tests.Context(t), tx, fromAddress) assert.Error(t, err) @@ -667,8 +645,6 @@ func TestEthClient_SendTransactionReturnCode(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) errType, err := ethClient.SendTransactionReturnCode(tests.Context(t), tx, fromAddress) assert.Error(t, err) @@ -693,8 +669,6 @@ func TestEthClient_SendTransactionReturnCode(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) errType, err := ethClient.SendTransactionReturnCode(tests.Context(t), tx, fromAddress) assert.Error(t, err) @@ -723,8 +697,6 @@ func TestEthClient_SubscribeNewHead(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClientWithChainID(t, wsURL, chainId) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) headCh, sub, err := ethClient.SubscribeToHeads(ctx) require.NoError(t, err) @@ -777,10 +749,8 @@ func TestEthClient_BatchCallContext(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(tests.Context(t)) - require.NoError(t, err) - err = ethClient.BatchCallContext(context.Background(), b) + err := ethClient.BatchCallContext(context.Background(), b) require.NoError(t, err) for _, elem := range b { require.Equal(t, elem.Error.Error(), rpcError.Error()) diff --git a/evm/client/rpc_client.go b/evm/client/rpc_client.go index a8005c40d17..7f8845c8d04 100644 --- a/evm/client/rpc_client.go +++ b/evm/client/rpc_client.go @@ -106,7 +106,7 @@ type RPCClient struct { } var _ multinode.RPCClient[*big.Int, *evmtypes.Head] = (*RPCClient)(nil) -var _ multinode.SendTxRPCClient[*types.Transaction, *SendTxResult] = (*RPCClient)(nil) +var _ multinode.SendTxRPCClient[*types.Transaction, struct{}] = (*RPCClient)(nil) func NewRPCClient( cfg config.NodePool, @@ -701,29 +701,7 @@ func (r *RPCClient) BlockByNumberGeth(ctx context.Context, number *big.Int) (blo return } -type SendTxResult struct { - err error - code multinode.SendTxReturnCode -} - -var _ multinode.SendTxResult = (*SendTxResult)(nil) - -func NewSendTxResult(err error) *SendTxResult { - result := &SendTxResult{ - err: err, - } - return result -} - -func (r *SendTxResult) Error() error { - return r.err -} - -func (r *SendTxResult) Code() multinode.SendTxReturnCode { - return r.code -} - -func (r *RPCClient) SendTransaction(ctx context.Context, tx *types.Transaction) *SendTxResult { +func (r *RPCClient) SendTransaction(ctx context.Context, tx *types.Transaction) (struct{}, multinode.SendTxReturnCode, error) { ctx, cancel, ws, http := r.makeLiveQueryCtxAndSafeGetClients(ctx, r.largePayloadRPCTimeout) defer cancel() lggr := r.newRqLggr().With("tx", tx) @@ -740,10 +718,7 @@ func (r *RPCClient) SendTransaction(ctx context.Context, tx *types.Transaction) r.logResult(lggr, err, duration, r.getRPCDomain(), "SendTransaction") - return &SendTxResult{ - err: err, - code: ClassifySendError(err, r.clientErrors, logger.Sugared(logger.Nop()), tx, common.Address{}, r.chainType.IsL2()), - } + return struct{}{}, ClassifySendError(err, r.clientErrors, logger.Sugared(logger.Nop()), tx, common.Address{}, r.chainType.IsL2()), err } func (r *RPCClient) SimulateTransaction(ctx context.Context, tx *types.Transaction) error { diff --git a/evm/client/rpc_client_test.go b/evm/client/rpc_client_test.go index d0e2ac64c32..f04b7de61fa 100644 --- a/evm/client/rpc_client_test.go +++ b/evm/client/rpc_client_test.go @@ -651,8 +651,8 @@ func TestRpcClientLargePayloadTimeout(t *testing.T) { { Name: "SendTransaction", Fn: func(ctx context.Context, rpc *client.RPCClient) error { - result := rpc.SendTransaction(ctx, types.NewTx(&types.LegacyTx{})) - return result.Error() + _, _, err := rpc.SendTransaction(ctx, types.NewTx(&types.LegacyTx{})) + return err }, }, { diff --git a/evm/client/tx_simulator_test.go b/evm/client/tx_simulator_test.go index 6f82205dde9..c13a158b6a1 100644 --- a/evm/client/tx_simulator_test.go +++ b/evm/client/tx_simulator_test.go @@ -19,9 +19,9 @@ func TestSimulateTx_Default(t *testing.T) { fromAddress := testutils.NewAddress() toAddress := testutils.NewAddress() - ctx := tests.Context(t) t.Run("returns without error if simulation passes", func(t *testing.T) { + ctx := tests.Context(t) wsURL := testutils.NewWSServer(t, testutils.FixtureChainID, func(method string, params gjson.Result) (resp testutils.JSONRPCResponse) { switch method { case "eth_subscribe": @@ -38,8 +38,6 @@ func TestSimulateTx_Default(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(ctx) - require.NoError(t, err) msg := ethereum.CallMsg{ From: fromAddress, @@ -51,6 +49,7 @@ func TestSimulateTx_Default(t *testing.T) { }) t.Run("returns error if simulation returns zk out-of-counters error", func(t *testing.T) { + ctx := tests.Context(t) wsURL := testutils.NewWSServer(t, testutils.FixtureChainID, func(method string, params gjson.Result) (resp testutils.JSONRPCResponse) { switch method { case "eth_subscribe": @@ -69,8 +68,6 @@ func TestSimulateTx_Default(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(ctx) - require.NoError(t, err) msg := ethereum.CallMsg{ From: fromAddress, @@ -82,6 +79,7 @@ func TestSimulateTx_Default(t *testing.T) { }) t.Run("returns without error if simulation returns non-OOC error", func(t *testing.T) { + ctx := tests.Context(t) wsURL := testutils.NewWSServer(t, testutils.FixtureChainID, func(method string, params gjson.Result) (resp testutils.JSONRPCResponse) { switch method { case "eth_subscribe": @@ -99,8 +97,6 @@ func TestSimulateTx_Default(t *testing.T) { }).WSURL().String() ethClient := mustNewChainClient(t, wsURL) - err := ethClient.Dial(ctx) - require.NoError(t, err) msg := ethereum.CallMsg{ From: fromAddress, diff --git a/go.mod b/go.mod index 593688898a1..ded260104c7 100644 --- a/go.mod +++ b/go.mod @@ -83,10 +83,10 @@ require ( github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 github.com/smartcontractkit/chainlink-feeds v0.1.1 - github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab + github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de @@ -128,11 +128,6 @@ require ( k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 ) -require ( - github.com/bytecodealliance/wasmtime-go/v28 v28.0.0 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250128162345-af4c8fd4481a // indirect -) - require ( cel.dev/expr v0.17.0 // indirect cloud.google.com/go/auth v0.9.9 // indirect @@ -167,6 +162,7 @@ require ( github.com/blendle/zapdriver v1.3.1 // indirect github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect + github.com/bytecodealliance/wasmtime-go/v28 v28.0.0 // indirect github.com/bytedance/sonic v1.12.3 // indirect github.com/bytedance/sonic/loader v0.2.0 // indirect github.com/cenkalti/backoff v2.2.1+incompatible // indirect @@ -330,6 +326,7 @@ require ( github.com/sasha-s/go-deadlock v0.3.5 // indirect github.com/sethvargo/go-retry v0.2.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250128162345-af4c8fd4481a // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/sourcegraph/conc v0.3.0 // indirect diff --git a/go.sum b/go.sum index 02fcf4e474b..0b2c92fbd24 100644 --- a/go.sum +++ b/go.sum @@ -1124,16 +1124,16 @@ github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5/go.mod h1:pDZagSGjs9U+l4YIFhveDznMHqxuuz+5vRxvVgpbdr8= github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6AnNt+Wg64sVG+XSA49c= github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 h1:2uTP9u0Bs4NdVYvLYz3tYRnsAnpCQ4lM1bByC9OgqjI= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 h1:Pn3uc+xBlC3JWdPW41V2lL/tdF2nbUzt20w+ZpY2CVY= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 h1:KYsTFwGIIYCermWMjbKHWIkfMtCfpAKVULVqYQCiMb8= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120/go.mod h1:QEeoBYUdwiuzz+KqvEdymE7O4riUzH0o6pvfVIiXIoQ= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index ec8d87be549..2b4bd30a157 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -439,11 +439,11 @@ require ( github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect - github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a // indirect - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab // indirect + github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 // indirect + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 4ec9a332257..e358d59ae94 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1440,18 +1440,18 @@ github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5/go.mod h1:pDZagSGjs9U+l4YIFhveDznMHqxuuz+5vRxvVgpbdr8= github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6AnNt+Wg64sVG+XSA49c= github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 h1:2uTP9u0Bs4NdVYvLYz3tYRnsAnpCQ4lM1bByC9OgqjI= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 h1:Pn3uc+xBlC3JWdPW41V2lL/tdF2nbUzt20w+ZpY2CVY= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 h1:KYsTFwGIIYCermWMjbKHWIkfMtCfpAKVULVqYQCiMb8= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120/go.mod h1:QEeoBYUdwiuzz+KqvEdymE7O4riUzH0o6pvfVIiXIoQ= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 h1:E7k5Sym9WnMOc4X40lLnQb6BMosxi8DfUBU9pBJjHOQ= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index cf9866fe0de..9f813cbaab4 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -423,12 +423,12 @@ require ( github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect - github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a // indirect - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab // indirect + github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 // indirect + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 // indirect github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 // indirect github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 3cf9ac4a6f1..197250370c2 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1427,18 +1427,18 @@ github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5/go.mod h1:pDZagSGjs9U+l4YIFhveDznMHqxuuz+5vRxvVgpbdr8= github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6AnNt+Wg64sVG+XSA49c= github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47 h1:2uTP9u0Bs4NdVYvLYz3tYRnsAnpCQ4lM1bByC9OgqjI= +github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47 h1:Pn3uc+xBlC3JWdPW41V2lL/tdF2nbUzt20w+ZpY2CVY= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250205005735-a2f3ed28ca47/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120 h1:KYsTFwGIIYCermWMjbKHWIkfMtCfpAKVULVqYQCiMb8= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250204233306-2f104e2d9120/go.mod h1:QEeoBYUdwiuzz+KqvEdymE7O4riUzH0o6pvfVIiXIoQ= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 h1:E7k5Sym9WnMOc4X40lLnQb6BMosxi8DfUBU9pBJjHOQ=