Skip to content

Commit

Permalink
Add context.Context (via a lambda) to deployment.Environment. Plumb t…
Browse files Browse the repository at this point in the history
…his through in the test environment and devenv also. Mostly the ctx was already present for other reasons, but now we expose it through the environment for attaching to remote-calls that aren't already managed by a wrapper client.
  • Loading branch information
cgruber committed Nov 26, 2024
1 parent ae63cc6 commit feccbb4
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 9 deletions.
3 changes: 2 additions & 1 deletion deployment/ccip/changeset/test_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/ethereum/go-ethereum/core/types"
"github.com/pkg/errors"
"github.com/smartcontractkit/ccip-owner-contracts/pkg/gethwrappers"

"github.com/smartcontractkit/chainlink-ccip/pluginconfig"

commonconfig "github.com/smartcontractkit/chainlink-common/pkg/config"
Expand Down Expand Up @@ -200,7 +201,7 @@ func NewMemoryEnvironment(
require.NoError(t, node.App.Stop())
})
}
e := memory.NewMemoryEnvironmentFromChainsNodes(t, lggr, chains, nodes)
e := memory.NewMemoryEnvironmentFromChainsNodes(func() context.Context { return ctx }, lggr, chains, nodes)
envNodes, err := deployment.NodeInfo(e.NodeIDs, e.Offchain)
require.NoError(t, err)
e.ExistingAddresses = ab
Expand Down
3 changes: 3 additions & 0 deletions deployment/environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ type Environment struct {
Chains map[uint64]Chain
NodeIDs []string
Offchain OffchainClient
GetContext func() context.Context
}

func NewEnvironment(
Expand All @@ -85,6 +86,7 @@ func NewEnvironment(
chains map[uint64]Chain,
nodeIDs []string,
offchain OffchainClient,
ctx func() context.Context,
) *Environment {
return &Environment{
Name: name,
Expand All @@ -93,6 +95,7 @@ func NewEnvironment(
Chains: chains,
NodeIDs: nodeIDs,
Offchain: offchain,
GetContext: ctx,
}
}

Expand Down
7 changes: 4 additions & 3 deletions deployment/environment/devenv/environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ type EnvironmentConfig struct {
JDConfig JDConfig
}

func NewEnvironment(ctx context.Context, lggr logger.Logger, config EnvironmentConfig) (*deployment.Environment, *DON, error) {
func NewEnvironment(ctx func() context.Context, lggr logger.Logger, config EnvironmentConfig) (*deployment.Environment, *DON, error) {
chains, err := NewChains(lggr, config.Chains)
if err != nil {
return nil, nil, fmt.Errorf("failed to create chains: %w", err)
}
offChain, err := NewJDClient(ctx, config.JDConfig)
offChain, err := NewJDClient(ctx(), config.JDConfig)
if err != nil {
return nil, nil, fmt.Errorf("failed to create JD client: %w", err)
}
Expand All @@ -39,7 +39,7 @@ func NewEnvironment(ctx context.Context, lggr logger.Logger, config EnvironmentC
}
var nodeIDs []string
if jd.don != nil {
err = jd.don.CreateSupportedChains(ctx, config.Chains, *jd)
err = jd.don.CreateSupportedChains(ctx(), config.Chains, *jd)
if err != nil {
return nil, nil, err
}
Expand All @@ -53,5 +53,6 @@ func NewEnvironment(ctx context.Context, lggr logger.Logger, config EnvironmentC
chains,
nodeIDs,
offChain,
ctx,
), jd.don, nil
}
9 changes: 7 additions & 2 deletions deployment/environment/memory/environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (

chainsel "github.com/smartcontractkit/chain-selectors"

"github.com/smartcontractkit/chainlink-testing-framework/lib/utils/testcontext"
"github.com/smartcontractkit/chainlink/deployment"

"github.com/smartcontractkit/chainlink-common/pkg/logger"
Expand Down Expand Up @@ -110,10 +111,12 @@ func NewNodes(t *testing.T, logLevel zapcore.Level, chains map[uint64]deployment
return nodesByPeerID
}

func NewMemoryEnvironmentFromChainsNodes(t *testing.T,
func NewMemoryEnvironmentFromChainsNodes(
ctx func() context.Context,
lggr logger.Logger,
chains map[uint64]deployment.Chain,
nodes map[string]Node) deployment.Environment {
nodes map[string]Node,
) deployment.Environment {
var nodeIDs []string
for id := range nodes {
nodeIDs = append(nodeIDs, id)
Expand All @@ -125,6 +128,7 @@ func NewMemoryEnvironmentFromChainsNodes(t *testing.T,
chains,
nodeIDs, // Note these have the p2p_ prefix.
NewMemoryJobClient(nodes),
ctx,
)
}

Expand All @@ -143,5 +147,6 @@ func NewMemoryEnvironment(t *testing.T, lggr logger.Logger, logLevel zapcore.Lev
chains,
nodeIDs,
NewMemoryJobClient(nodes),
func() context.Context { return testcontext.Get(t) },
)
}
7 changes: 5 additions & 2 deletions deployment/keystone/deploy_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package keystone_test

import (
"context"
"encoding/json"
"fmt"
"os"
Expand All @@ -9,8 +10,10 @@ import (

"github.com/ethereum/go-ethereum/accounts/abi/bind"
chainsel "github.com/smartcontractkit/chain-selectors"

"github.com/smartcontractkit/chainlink-common/pkg/logger"
"github.com/smartcontractkit/chainlink-common/pkg/utils/tests"
"github.com/smartcontractkit/chainlink-testing-framework/lib/utils/testcontext"
"github.com/smartcontractkit/chainlink/deployment"
"github.com/smartcontractkit/chainlink/deployment/environment/clo"
"github.com/smartcontractkit/chainlink/deployment/environment/clo/models"
Expand All @@ -26,6 +29,7 @@ import (

func TestDeploy(t *testing.T) {
lggr := logger.Test(t)
ctx := testcontext.Get(t)

// sepolia; all nodes are on the this chain
sepoliaChainId := uint64(11155111)
Expand Down Expand Up @@ -100,7 +104,7 @@ func TestDeploy(t *testing.T) {
maps.Copy(allNodes, wfNodes)
maps.Copy(allNodes, cwNodes)
maps.Copy(allNodes, assetNodes)
env := memory.NewMemoryEnvironmentFromChainsNodes(t, lggr, allChains, allNodes)
env := memory.NewMemoryEnvironmentFromChainsNodes(func() context.Context { return ctx }, lggr, allChains, allNodes)

var ocr3Config = keystone.OracleConfigWithSecrets{
OracleConfig: keystone.OracleConfig{
Expand All @@ -109,7 +113,6 @@ func TestDeploy(t *testing.T) {
OCRSecrets: deployment.XXXGenerateTestOCRSecrets(),
}

ctx := tests.Context(t)
// explicitly deploy the contracts
cs, err := keystone.DeployContracts(lggr, &env, sepoliaChainSel)
require.NoError(t, err)
Expand Down
3 changes: 2 additions & 1 deletion integration-tests/testsetups/test_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package testsetups

import (
"bytes"
"context"
"fmt"
"math/big"
"os"
Expand Down Expand Up @@ -123,7 +124,7 @@ func NewLocalDevEnvironment(
testEnv, cfg)
require.NoError(t, err)

e, don, err := devenv.NewEnvironment(ctx, lggr, *envConfig)
e, don, err := devenv.NewEnvironment(func() context.Context { return ctx }, lggr, *envConfig)
require.NoError(t, err)
require.NotNil(t, e)
e.ExistingAddresses = ab
Expand Down

0 comments on commit feccbb4

Please sign in to comment.