diff --git a/.golangci.yml b/.golangci.yml index f91dd058355..cb8c8b9fb6c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,6 +1,10 @@ version: "2" run: allow-parallel-runners: true + build-tags: + - integration + - dev + - trace linters: enable: - containedctx diff --git a/core/capabilities/ccip/ccipevm/pluginconfig.go b/core/capabilities/ccip/ccipevm/pluginconfig.go index e826bf8430f..533c1f50768 100644 --- a/core/capabilities/ccip/ccipevm/pluginconfig.go +++ b/core/capabilities/ccip/ccipevm/pluginconfig.go @@ -11,8 +11,6 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ocrimpls" ) -const defaultCommitGasLimit = 500_000 - // InitializePluginConfig returns a PluginConfig for EVM chains. func InitializePluginConfig(lggr logger.Logger, extraDataCodec ccipocr3.ExtraDataCodecBundle) ccipcommon.PluginConfig { return ccipcommon.PluginConfig{ diff --git a/core/capabilities/remote/executable/hasher.go b/core/capabilities/remote/executable/hasher.go index 85f6a4c41dd..1ab4e56c3cf 100644 --- a/core/capabilities/remote/executable/hasher.go +++ b/core/capabilities/remote/executable/hasher.go @@ -132,7 +132,6 @@ func (r *writeReportExcludeSignaturesHasher) Hash(msg *types.MessageBody) ([32]b } default: return [32]byte{}, fmt.Errorf("unexpected report family: %s", family) - } req.Payload = payload diff --git a/core/cmd/solana_transaction_commands_test.go b/core/cmd/solana_transaction_commands_test.go index d0d20fe451a..447c9ae4418 100644 --- a/core/cmd/solana_transaction_commands_test.go +++ b/core/cmd/solana_transaction_commands_test.go @@ -64,7 +64,7 @@ func TestShell_SolanaSendSol(t *testing.T) { {amount: "0", expErr: "amount must be greater than zero"}, {amount: "asdf", expErr: "invalid amount:"}, } { - tt := tt + t.Run(tt.amount, func(t *testing.T) { startBal, err := balance(from.PublicKey(), url) require.NoError(t, err) @@ -86,7 +86,7 @@ func TestShell_SolanaSendSol(t *testing.T) { } // Check CLI output - require.Greater(t, len(r.Renders), 0) + require.NotEmpty(t, r.Renders) renderer := r.Renders[len(r.Renders)-1] renderedMsg := renderer.(*cmd.SolanaMsgPresenter) t.Logf("%+v\n", renderedMsg) diff --git a/core/scripts/cre/environment/examples/workflows/v2/proof-of-reserve/cron-based/types/types.go b/core/scripts/cre/environment/examples/workflows/v2/proof-of-reserve/cron-based/types/types.go index f89350e5636..8604a11d8ad 100644 --- a/core/scripts/cre/environment/examples/workflows/v2/proof-of-reserve/cron-based/types/types.go +++ b/core/scripts/cre/environment/examples/workflows/v2/proof-of-reserve/cron-based/types/types.go @@ -1,4 +1,4 @@ -package types +package types //nolint:revive // meaningless name already referenced import ( "github.com/ethereum/go-ethereum/common" diff --git a/core/services/chainlink/config_general_dev_test.go b/core/services/chainlink/config_general_dev_test.go index 78558fbdcc2..7baa26529fa 100644 --- a/core/services/chainlink/config_general_dev_test.go +++ b/core/services/chainlink/config_general_dev_test.go @@ -7,8 +7,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - - "github.com/smartcontractkit/chainlink/v2/core/logger" ) // Tests in this file only run in dev mode @@ -18,7 +16,7 @@ func TestTOMLGeneralConfig_DevModeInsecureConfig(t *testing.T) { t.Parallel() t.Run("all insecure configs are false by default", func(t *testing.T) { - config, err := GeneralConfigOpts{}.New(logger.TestLogger(t)) + config, err := GeneralConfigOpts{}.New() require.NoError(t, err) assert.False(t, config.Insecure().DevWebServer()) @@ -34,24 +32,26 @@ func TestTOMLGeneralConfig_DevModeInsecureConfig(t *testing.T) { *c.Insecure.DisableRateLimiting = true *c.Insecure.InfiniteDepthQueries = true *c.Insecure.OCRDevelopmentMode = true - }}.New(logger.TestLogger(t)) + }}.New() require.NoError(t, err) assert.True(t, config.Insecure().DevWebServer()) assert.True(t, config.Insecure().DisableRateLimiting()) assert.True(t, config.Insecure().InfiniteDepthQueries()) - assert.True(t, config.OCRDevelopmentMode()) + assert.True(t, config.Insecure().OCRDevelopmentMode()) }) t.Run("ParseConfig accepts insecure values on dev builds", func(t *testing.T) { - opts := GeneralConfigOpts{} - err := opts.ParseConfig(` - [insecure] - DevWebServer = true - `) - cfg, err := opts.init() + opts := GeneralConfigOpts{ + ConfigStrings: []string{` +[insecure] +DevWebServer = true +`, + }, + } + cfg, err := opts.New() require.NoError(t, err) - err = cfg.c.Validate() + err = cfg.Validate() require.NoError(t, err) }) } diff --git a/core/services/gateway/handlers/capabilities/handler_test.go b/core/services/gateway/handlers/capabilities/handler_test.go index bef48685961..bce99e9928d 100644 --- a/core/services/gateway/handlers/capabilities/handler_test.go +++ b/core/services/gateway/handlers/capabilities/handler_test.go @@ -31,18 +31,6 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/services/gateway/network/mocks" ) -const ( - defaultSendChannelBufferSize = 1000 - privateKey1 = "65456ffb8af4a2b93959256a8e04f6f2fe0943579fb3c9c3350593aabb89023f" - privateKey2 = "65456ffb8af4a2b93959256a8e04f6f2fe0943579fb3c9c3350593aabb89023e" - triggerID1 = "5" - triggerID2 = "6" - workflowID1 = "15c631d295ef5e32deb99a10ee6804bc4af13855687559d7ff6552ac6dbb2ce0" - workflowExecutionID1 = "95ef5e32deb99a10ee6804bc4af13855687559d7ff6552ac6dbb2ce0abbadeed" - owner1 = "0x00000000000000000000000000000000000000aa" - address1 = "0x853d51d5d9935964267a5050aC53aa63ECA39bc5" -) - func setupHandler(t *testing.T) (*handler, *mocks.HTTPClient, *handlermocks.DON, []gwcommon.TestNode) { lggr := logger.Test(t) httpClient := mocks.NewHTTPClient(t) diff --git a/core/services/gateway/handlers/vault/handler.go b/core/services/gateway/handlers/vault/handler.go index a9668788d14..f073999feb7 100644 --- a/core/services/gateway/handlers/vault/handler.go +++ b/core/services/gateway/handlers/vault/handler.go @@ -646,27 +646,6 @@ func (h *handler) handleSecretsDelete(ctx context.Context, ar *activeRequest) er return h.fanOutToVaultNodes(ctx, l, ar) } -func (h *handler) handleSecretsGet(ctx context.Context, ar *activeRequest) error { - l := logger.With(h.lggr, "method", ar.req.Method, "requestID", ar.req.ID) - - secretsGetRequest := &vaultcommon.GetSecretsRequest{} - if err := json.Unmarshal(*ar.req.Params, &secretsGetRequest); err != nil { - return h.sendResponse(ctx, ar, h.errorResponse(ar.req, api.UserMessageParseError, err, nil)) - } - for _, getRequest := range secretsGetRequest.Requests { - if getRequest.Id != nil && getRequest.Id.Namespace == "" { - getRequest.Id.Namespace = vaulttypes.DefaultNamespace - } - } - err := h.ValidateGetSecretsRequest(secretsGetRequest) - if err != nil { - l.Warnw("failed to validate get secrets request", "error", err) - return h.sendResponse(ctx, ar, h.errorResponse(ar.req, api.InvalidParamsError, fmt.Errorf("failed to validate get secrets request: %w", err), nil)) - } - - return h.fanOutToVaultNodes(ctx, l, ar) -} - func (h *handler) handleSecretsList(ctx context.Context, ar *activeRequest) error { l := logger.With(h.lggr, "method", ar.req.Method, "requestID", ar.req.ID) diff --git a/core/services/llo/channeldefinitions/onchain_channel_definition_cache.go b/core/services/llo/channeldefinitions/onchain_channel_definition_cache.go index fcf890a2431..551806283ce 100644 --- a/core/services/llo/channeldefinitions/onchain_channel_definition_cache.go +++ b/core/services/llo/channeldefinitions/onchain_channel_definition_cache.go @@ -184,7 +184,6 @@ type HTTPClient interface { // sets up the initial state, and applies any provided options. The cache must be started via Start() // before it begins polling and fetching definitions. func NewChannelDefinitionCache(lggr logger.Logger, orm ChannelDefinitionCacheORM, client HTTPClient, lp logpoller.LogPoller, addr common.Address, donID uint32, fromBlock int64, options ...Option) llotypes.ChannelDefinitionCache { - cdc := &channelDefinitionCache{ orm: orm, client: client, diff --git a/core/services/llo/observation/data_source.go b/core/services/llo/observation/data_source.go index 794ff3fc365..6681377d404 100644 --- a/core/services/llo/observation/data_source.go +++ b/core/services/llo/observation/data_source.go @@ -137,7 +137,6 @@ func (d *dataSource) Observe(ctx context.Context, streamValues llo.StreamValues, // Based on the expected maxObservationDuration determine the pace of the observation loop // and for how long to cache the observations. func (d *dataSource) startObservationLoop(loopStartedCh chan struct{}) { - // atomically set the observation loop started flag to true // or return if it's already started if !d.observationLoopStarted.CompareAndSwap(false, true) { diff --git a/core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/core/trigger.go b/core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/core/trigger.go index d4beff1bf52..db5dda399a2 100644 --- a/core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/core/trigger.go +++ b/core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/core/trigger.go @@ -41,7 +41,7 @@ func PackTrigger(id *big.Int, trig triggerWrapper) ([]byte, error) { } trigger, err = utilsABI.Pack("_conditionalTrigger", &trig) case types.LogTrigger: - logTrig := ac.IAutomationV21PlusCommonLogTrigger(trig) + logTrig := trig trigger, err = utilsABI.Pack("_logTrigger", &logTrig) default: err = fmt.Errorf("unknown trigger type: %d", upkeepType) diff --git a/core/services/ocr2/plugins/vault/plugin.go b/core/services/ocr2/plugins/vault/plugin.go index 0bff2ef57ea..624851aee7c 100644 --- a/core/services/ocr2/plugins/vault/plugin.go +++ b/core/services/ocr2/plugins/vault/plugin.go @@ -1073,7 +1073,6 @@ func (r *ReportingPlugin) ValidateObservation(ctx context.Context, seqNr uint64, return errors.New("duplicate item found in pending queue item observation") } seen[sha] = true - } return nil diff --git a/core/services/ocr2/plugins/vault/plugin_test.go b/core/services/ocr2/plugins/vault/plugin_test.go index 390462fb0f9..df4bc838134 100644 --- a/core/services/ocr2/plugins/vault/plugin_test.go +++ b/core/services/ocr2/plugins/vault/plugin_test.go @@ -184,7 +184,7 @@ func TestPlugin_ReportingPluginFactory_UseDKGResult(t *testing.T) { rpf, err := NewReportingPluginFactory(lggr, store, orm, &dkgrecipientKey, lpk, limits.Factory{Settings: cresettings.DefaultGetter}) require.NoError(t, err) - instanceIDString := string(instanceID) + instanceIDString := instanceID rpCfg := vaultcommon.ReportingPluginConfig{ DKGInstanceID: &instanceIDString, } diff --git a/core/services/registrysyncer/syncer_test.go b/core/services/registrysyncer/syncer_test.go index 78ba924a13f..49e9fccc87f 100644 --- a/core/services/registrysyncer/syncer_test.go +++ b/core/services/registrysyncer/syncer_test.go @@ -42,7 +42,6 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/pgtest" "github.com/smartcontractkit/chainlink/v2/core/services/registrysyncer" syncerMocks "github.com/smartcontractkit/chainlink/v2/core/services/registrysyncer/mocks" - captestutils "github.com/smartcontractkit/chainlink/v2/core/services/relay/evm/capabilities/testutils" ) var writeChainCapability = kcr_v1.CapabilitiesRegistryCapability{ @@ -591,16 +590,6 @@ func TestSyncer_LocalNode(t *testing.T) { assert.Equal(t, expectedNode, node) } -// Add this helper struct to implement the ContractReaderFactory interface -type testContractReaderFactory struct { - backendTH *captestutils.EVMBackendTH - t *testing.T -} - -func (f *testContractReaderFactory) NewContractReader(ctx context.Context, bytes []byte) (types.ContractReader, error) { - return f.backendTH.NewContractReader(ctx, f.t, bytes) -} - func newTestSyncer( lggr logger.Logger, getPeerID func() (p2ptypes.PeerID, error), diff --git a/core/services/relay/dummy/llo_provider.go b/core/services/relay/dummy/llo_provider.go index b5fd1ca645f..83cac3e29ac 100644 --- a/core/services/relay/dummy/llo_provider.go +++ b/core/services/relay/dummy/llo_provider.go @@ -8,12 +8,11 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/services" - commontypes "github.com/smartcontractkit/chainlink-common/pkg/types" - relaytypes "github.com/smartcontractkit/chainlink-common/pkg/types" + "github.com/smartcontractkit/chainlink-common/pkg/types" llotypes "github.com/smartcontractkit/chainlink-common/pkg/types/llo" ) -var _ commontypes.LLOProvider = (*lloProvider)(nil) +var _ types.LLOProvider = (*lloProvider)(nil) type Transmitter interface { services.Service @@ -21,7 +20,7 @@ type Transmitter interface { } type lloProvider struct { - cp commontypes.ConfigProvider + cp types.ConfigProvider transmitter Transmitter logger logger.Logger channelDefinitionCache llotypes.ChannelDefinitionCache @@ -32,11 +31,11 @@ type lloProvider struct { func NewLLOProvider( lggr logger.Logger, - cp commontypes.ConfigProvider, + cp types.ConfigProvider, transmitter Transmitter, channelDefinitionCache llotypes.ChannelDefinitionCache, shouldRetireCache llotypes.ShouldRetireCache, -) relaytypes.LLOProvider { +) types.LLOProvider { return &lloProvider{ cp, transmitter, diff --git a/core/services/relay/evm/capabilities/testutils/backend.go b/core/services/relay/evm/capabilities/testutils/backend.go index edfbe569291..d362869f84b 100644 --- a/core/services/relay/evm/capabilities/testutils/backend.go +++ b/core/services/relay/evm/capabilities/testutils/backend.go @@ -9,7 +9,6 @@ import ( "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core" ethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/ethclient/simulated" "github.com/stretchr/testify/require" @@ -63,7 +62,7 @@ func NewEVMBackendTH(t *testing.T) *EVMBackendTH { } // Setup simulated go-ethereum EVM backend - genesisData := core.GenesisAlloc{ + genesisData := ethtypes.GenesisAlloc{ ownerAddress: {Balance: assets.Ether(100000).ToInt()}, } diff --git a/core/services/relay/evm/evmtesting/run_tests.go b/core/services/relay/evm/evmtesting/run_tests.go index e345dc8e58e..6887903a85a 100644 --- a/core/services/relay/evm/evmtesting/run_tests.go +++ b/core/services/relay/evm/evmtesting/run_tests.go @@ -12,7 +12,6 @@ import ( "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink-common/pkg/types" - clcommontypes "github.com/smartcontractkit/chainlink-common/pkg/types" "github.com/smartcontractkit/chainlink-common/pkg/types/query" "github.com/smartcontractkit/chainlink-common/pkg/types/query/primitives" "github.com/smartcontractkit/chainlink-evm/pkg/read" @@ -63,7 +62,7 @@ func RunContractReaderEvmTests[T TestingT[T]](t T, it *EVMChainComponentsInterfa SubmitTransactionToCW(t, it, cw, "triggerEventWithDynamicTopic", DynamicEvent{Field: anyString}, bindings[0], types.Unconfirmed) input := struct{ Field string }{Field: anyString} - tp := cr.(clcommontypes.ContractTypeProvider) + tp := cr.(types.ContractTypeProvider) readName := types.BoundContract{ Address: bindings[0].Address, @@ -162,9 +161,9 @@ func RunContractReaderEvmTests[T TestingT[T]](t T, it *EVMChainComponentsInterfa addr := common.BigToAddress(big.NewInt(42)) ctx := it.Helper.Context(t) - err := reader.Bind(ctx, []clcommontypes.BoundContract{{Name: AnyContractName, Address: addr.Hex()}}) + err := reader.Bind(ctx, []types.BoundContract{{Name: AnyContractName, Address: addr.Hex()}}) - require.ErrorIs(t, err, read.NoContractExistsError{Err: clcommontypes.ErrInternal, Address: addr}) + require.ErrorIs(t, err, read.NoContractExistsError{Err: types.ErrInternal, Address: addr}) }, }, } @@ -338,7 +337,7 @@ func RunContractReaderInLoopTests[T TestingT[T]](t T, it ChainComponentsInterfac } } -func triggerFourTopics[T TestingT[T]](t T, it *EVMChainComponentsInterfaceTester[T], cw clcommontypes.ContractWriter, bindings []clcommontypes.BoundContract, i1, i2, i3 int32) { +func triggerFourTopics[T TestingT[T]](t T, it *EVMChainComponentsInterfaceTester[T], cw types.ContractWriter, bindings []types.BoundContract, i1, i2, i3 int32) { type DynamicEvent struct { Field1 int32 Field2 int32 @@ -347,7 +346,7 @@ func triggerFourTopics[T TestingT[T]](t T, it *EVMChainComponentsInterfaceTester SubmitTransactionToCW(t, it, cw, "triggerWithFourTopics", DynamicEvent{Field1: i1, Field2: i2, Field3: i3}, bindings[0], types.Unconfirmed) } -func triggerFourTopicsWithHashed[T TestingT[T]](t T, it *EVMChainComponentsInterfaceTester[T], cw clcommontypes.ContractWriter, bindings []clcommontypes.BoundContract, i1 string, i2 [32]uint8, i3 [32]byte) { +func triggerFourTopicsWithHashed[T TestingT[T]](t T, it *EVMChainComponentsInterfaceTester[T], cw types.ContractWriter, bindings []types.BoundContract, i1 string, i2 [32]uint8, i3 [32]byte) { type DynamicEvent struct { Field1 string Field2 [32]uint8 @@ -357,7 +356,7 @@ func triggerFourTopicsWithHashed[T TestingT[T]](t T, it *EVMChainComponentsInter } // triggerStaticBytes emits a staticBytes events and returns the expected event bytes. -func triggerStaticBytes[T TestingT[T]](t T, it ChainComponentsInterfaceTester[T], cw clcommontypes.ContractWriter, bindings []clcommontypes.BoundContract, val1, val2, val3 uint32, val4 uint64, val5, val6, val7 [32]byte, raw []byte) { +func triggerStaticBytes[T TestingT[T]](t T, it ChainComponentsInterfaceTester[T], cw types.ContractWriter, bindings []types.BoundContract, val1, val2, val3 uint32, val4 uint64, val5, val6, val7 [32]byte, raw []byte) { type StaticBytesEvent struct { Val1 uint32 Val2 uint32 diff --git a/core/services/ring/utils.go b/core/services/ring/utils.go index b9232b8e118..c7269805420 100644 --- a/core/services/ring/utils.go +++ b/core/services/ring/utils.go @@ -9,7 +9,6 @@ import ( "github.com/cespare/xxhash/v2" ) -var errInvalidRing = errors.New("RingOCR invalid ring for consistent hashing") var errInvalidMember = errors.New("RingOCR invalid member for consistent hashing") var ErrNoHealthyShards = errors.New("no healthy shards for routing") diff --git a/core/services/workflows/models.go b/core/services/workflows/models.go index 52f2c99c596..07ec4585aef 100644 --- a/core/services/workflows/models.go +++ b/core/services/workflows/models.go @@ -102,7 +102,6 @@ type step struct { workflows.Vertex capability capabilities.ExecutableCapability info capabilities.CapabilityInfo - config *values.Map } type triggerCapability struct { diff --git a/core/services/workflows/syncer/engine_registry_test.go b/core/services/workflows/syncer/engine_registry_test.go index 8dec866d10a..cc9f828284f 100644 --- a/core/services/workflows/syncer/engine_registry_test.go +++ b/core/services/workflows/syncer/engine_registry_test.go @@ -15,7 +15,6 @@ import ( func TestEngineRegistry(t *testing.T) { var srv services.Service = &fakeService{} - const id1 = "foo" owner := []byte{1, 2, 3, 4, 5} name := "my-workflow" workflowID := types.WorkflowID([32]byte{0, 1, 2, 3, 4}) diff --git a/core/web/jobs_controller_test.go b/core/web/jobs_controller_test.go index 7503318419f..9fbb08435a7 100644 --- a/core/web/jobs_controller_test.go +++ b/core/web/jobs_controller_test.go @@ -743,7 +743,7 @@ func TestJobsController_Update_NonExistentID(t *testing.T) { DS1BridgeName: bridge2.Name.String(), DS2BridgeName: bridge.Name.String(), Name: "updated OCR job", - TransmitterAddress: app.Keys[0].EIP55Address.String(), + TransmitterAddress: app.Keys[0].String(), EVMChainID: cltest.FixtureChainID.String(), }) require.NoError(t, err) diff --git a/core/web/nodes_controller.go b/core/web/nodes_controller.go index 8852ba424c7..1407efaa688 100644 --- a/core/web/nodes_controller.go +++ b/core/web/nodes_controller.go @@ -19,7 +19,6 @@ type NodesController interface { } type NetworkScopedNodeStatuser struct { - network string relayers chainlink.RelayerChainInteroperators } diff --git a/core/web/resolver/bridge_test.go b/core/web/resolver/bridge_test.go index 5e24ec632d0..7f5ddf7f010 100644 --- a/core/web/resolver/bridge_test.go +++ b/core/web/resolver/bridge_test.go @@ -7,7 +7,6 @@ import ( "net/url" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -369,7 +368,7 @@ func Test_DeleteBridgeMutation(t *testing.T) { link := assets.Link{} err = json.Unmarshal([]byte(`"1"`), &link) - assert.NoError(t, err) + require.NoError(t, err) mutation := ` mutation DeleteBridge($id: ID!) { diff --git a/core/web/resolver/csa_keys_test.go b/core/web/resolver/csa_keys_test.go index 44a3149d908..4fbc2977d60 100644 --- a/core/web/resolver/csa_keys_test.go +++ b/core/web/resolver/csa_keys_test.go @@ -6,8 +6,8 @@ import ( "fmt" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink-common/keystore/corekeys/csakey" "github.com/smartcontractkit/chainlink/v2/core/services/keystore" @@ -36,7 +36,7 @@ func Test_CSAKeysQuery(t *testing.T) { for range 5 { k, err := csakey.NewV2() - assert.NoError(t, err) + require.NoError(t, err) fakeKeys = append(fakeKeys, k) expectedKeys = append(expectedKeys, expectedKey{ @@ -51,7 +51,7 @@ func Test_CSAKeysQuery(t *testing.T) { "results": expectedKeys, }, }) - assert.NoError(t, err) + require.NoError(t, err) expectedResult := string(d) testCases := []GQLTestCase{ @@ -91,7 +91,7 @@ func Test_CreateCSAKey(t *testing.T) { }` fakeKey, err := csakey.NewV2() - assert.NoError(t, err) + require.NoError(t, err) expected := ` { @@ -159,7 +159,7 @@ func Test_DeleteCSAKey(t *testing.T) { }` fakeKey, err := csakey.NewV2() - assert.NoError(t, err) + require.NoError(t, err) expected := ` { diff --git a/core/web/resolver/job_error_test.go b/core/web/resolver/job_error_test.go index 6f47c4e1145..137a831d8f6 100644 --- a/core/web/resolver/job_error_test.go +++ b/core/web/resolver/job_error_test.go @@ -8,8 +8,8 @@ import ( gqlerrors "github.com/graph-gophers/graphql-go/errors" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink/v2/core/services/job" "github.com/smartcontractkit/chainlink/v2/core/utils/stringutils" @@ -112,7 +112,7 @@ func TestResolver_DismissJobError(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) gError := errors.New("error") diff --git a/core/web/resolver/job_test.go b/core/web/resolver/job_test.go index 14273507ac2..794e4960180 100644 --- a/core/web/resolver/job_test.go +++ b/core/web/resolver/job_test.go @@ -11,8 +11,8 @@ import ( "github.com/google/uuid" gqlerrors "github.com/graph-gophers/graphql-go/errors" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" "gopkg.in/guregu/null.v4" "github.com/smartcontractkit/chainlink-common/pkg/sqlutil" @@ -329,7 +329,7 @@ func TestResolver_CreateJob(t *testing.T) { }, } jb, err := directrequest.ValidatedDirectRequestSpec(spec) - assert.NoError(t, err) + require.NoError(t, err) d, err := json.Marshal(map[string]any{ "createJob": map[string]any{ @@ -343,7 +343,7 @@ func TestResolver_CreateJob(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) gError := errors.New("error") @@ -443,7 +443,7 @@ func TestResolver_DeleteJob(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) gError := errors.New("error") diff --git a/core/web/resolver/log_test.go b/core/web/resolver/log_test.go index 7aa242c025a..48ae6fa0764 100644 --- a/core/web/resolver/log_test.go +++ b/core/web/resolver/log_test.go @@ -6,7 +6,7 @@ import ( gqlerrors "github.com/graph-gophers/graphql-go/errors" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" "github.com/smartcontractkit/chainlink/v2/core/config" @@ -120,7 +120,7 @@ func TestResolver_GlobalLogLevel(t *testing.T) { var warnLvl zapcore.Level err := warnLvl.UnmarshalText([]byte("warn")) - assert.NoError(t, err) + require.NoError(t, err) testCases := []GQLTestCase{ unauthorizedTestCase(GQLTestCase{query: query}, "globalLogLevel"), @@ -170,7 +170,7 @@ func TestResolver_SetGlobalLogLevel(t *testing.T) { var errorLvl zapcore.Level err := errorLvl.UnmarshalText([]byte("error")) - assert.NoError(t, err) + require.NoError(t, err) gError := errors.New("error") diff --git a/core/web/resolver/ocr2_keys_test.go b/core/web/resolver/ocr2_keys_test.go index 1673811ad71..75c36f03c2a 100644 --- a/core/web/resolver/ocr2_keys_test.go +++ b/core/web/resolver/ocr2_keys_test.go @@ -9,7 +9,6 @@ import ( gqlerrors "github.com/graph-gophers/graphql-go/errors" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -65,7 +64,7 @@ func TestResolver_GetOCR2KeyBundles(t *testing.T) { "results": expectedBundles, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) testCases := []GQLTestCase{ @@ -142,7 +141,7 @@ func TestResolver_CreateOCR2KeyBundle(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) variables := map[string]any{ @@ -232,7 +231,7 @@ func TestResolver_DeleteOCR2KeyBundle(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) gError := errors.New("error") diff --git a/core/web/resolver/ocr_test.go b/core/web/resolver/ocr_test.go index ee6f628e446..3b846518b78 100644 --- a/core/web/resolver/ocr_test.go +++ b/core/web/resolver/ocr_test.go @@ -6,8 +6,8 @@ import ( "math/big" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink-common/keystore/corekeys/ocrkey" "github.com/smartcontractkit/chainlink/v2/core/services/keystore" @@ -47,7 +47,7 @@ func TestResolver_GetOCRKeyBundles(t *testing.T) { "results": expectedBundles, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) testCases := []GQLTestCase{ @@ -98,7 +98,7 @@ func TestResolver_OCRCreateBundle(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) testCases := []GQLTestCase{ @@ -156,7 +156,7 @@ func TestResolver_OCRDeleteBundle(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) testCases := []GQLTestCase{ diff --git a/core/web/resolver/p2p_test.go b/core/web/resolver/p2p_test.go index 964d43028cd..222cc4b9f5c 100644 --- a/core/web/resolver/p2p_test.go +++ b/core/web/resolver/p2p_test.go @@ -7,8 +7,8 @@ import ( "math/big" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink-common/keystore/corekeys/p2pkey" "github.com/smartcontractkit/chainlink/v2/core/services/keystore" @@ -46,7 +46,7 @@ func TestResolver_GetP2PKeys(t *testing.T) { "results": expectedKeys, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) testCases := []GQLTestCase{ @@ -95,7 +95,7 @@ func TestResolver_CreateP2PKey(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) testCases := []GQLTestCase{ @@ -145,7 +145,7 @@ func TestResolver_DeleteP2PKey(t *testing.T) { } peerID, err := p2pkey.MakePeerID(fakeKey.ID()) - assert.NoError(t, err) + require.NoError(t, err) d, err := json.Marshal(map[string]any{ "deleteP2PKey": map[string]any{ @@ -156,7 +156,7 @@ func TestResolver_DeleteP2PKey(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) testCases := []GQLTestCase{ diff --git a/core/web/resolver/vrf_test.go b/core/web/resolver/vrf_test.go index e2ee97592be..2315c3786b1 100644 --- a/core/web/resolver/vrf_test.go +++ b/core/web/resolver/vrf_test.go @@ -8,8 +8,8 @@ import ( "testing" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink-common/keystore/corekeys/vrfkey" "github.com/smartcontractkit/chainlink/v2/core/services/keystore" @@ -41,7 +41,7 @@ func TestResolver_GetVRFKey(t *testing.T) { fakeKey := vrfkey.MustNewV2XXXTestingOnly(big.NewInt(1)) uncompressed, err := fakeKey.PublicKey.StringUncompressed() - assert.NoError(t, err) + require.NoError(t, err) d, err := json.Marshal(map[string]any{ "vrfKey": map[string]any{ @@ -53,7 +53,7 @@ func TestResolver_GetVRFKey(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) variables := map[string]any{ @@ -123,7 +123,7 @@ func TestResolver_GetVRFKeys(t *testing.T) { for range 2 { fakeKey := vrfkey.MustNewV2XXXTestingOnly(big.NewInt(1)) uncompressed, err := fakeKey.PublicKey.StringUncompressed() - assert.NoError(t, err) + require.NoError(t, err) fakeKeys = append(fakeKeys, fakeKey) expectedKeys = append(expectedKeys, map[string]string{ @@ -139,7 +139,7 @@ func TestResolver_GetVRFKeys(t *testing.T) { "results": expectedKeys, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) testCases := []GQLTestCase{ @@ -179,7 +179,7 @@ func TestResolver_CreateVRFKey(t *testing.T) { fakeKey := vrfkey.MustNewV2XXXTestingOnly(big.NewInt(1)) uncompressed, err := fakeKey.PublicKey.StringUncompressed() - assert.NoError(t, err) + require.NoError(t, err) d, err := json.Marshal(map[string]any{ "createVRFKey": map[string]any{ @@ -191,7 +191,7 @@ func TestResolver_CreateVRFKey(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) testCases := []GQLTestCase{ @@ -238,7 +238,7 @@ func TestResolver_DeleteVRFKey(t *testing.T) { fakeKey := vrfkey.MustNewV2XXXTestingOnly(big.NewInt(1)) uncompressed, err := fakeKey.PublicKey.StringUncompressed() - assert.NoError(t, err) + require.NoError(t, err) d, err := json.Marshal(map[string]any{ "deleteVRFKey": map[string]any{ @@ -250,7 +250,7 @@ func TestResolver_DeleteVRFKey(t *testing.T) { }, }, }) - assert.NoError(t, err) + require.NoError(t, err) expected := string(d) variables := map[string]any{ diff --git a/deployment/ccip/changeset/solana_v0_1_0/cs_set_ocr3.go b/deployment/ccip/changeset/solana_v0_1_0/cs_set_ocr3.go index 9d3e2f17ad0..1d76d15b40b 100644 --- a/deployment/ccip/changeset/solana_v0_1_0/cs_set_ocr3.go +++ b/deployment/ccip/changeset/solana_v0_1_0/cs_set_ocr3.go @@ -6,6 +6,7 @@ import ( "github.com/gagliardetto/solana-go" chain_selectors "github.com/smartcontractkit/chain-selectors" + cldf_solana "github.com/smartcontractkit/chainlink-deployments-framework/chain/solana" cldf "github.com/smartcontractkit/chainlink-deployments-framework/deployment" diff --git a/deployment/common/view/nops.go b/deployment/common/view/nops.go index 8bebfc851f9..549936dbc03 100644 --- a/deployment/common/view/nops.go +++ b/deployment/common/view/nops.go @@ -11,6 +11,7 @@ import ( "strings" chain_selectors "github.com/smartcontractkit/chain-selectors" + "github.com/smartcontractkit/chainlink-deployments-framework/offchain/jd" "github.com/smartcontractkit/chainlink-common/pkg/logger" diff --git a/integration-tests/smoke/ccip/ccip_messaging_test.go b/integration-tests/smoke/ccip/ccip_messaging_test.go index 2be213ec664..97616322e70 100644 --- a/integration-tests/smoke/ccip/ccip_messaging_test.go +++ b/integration-tests/smoke/ccip/ccip_messaging_test.go @@ -16,6 +16,7 @@ import ( "github.com/stretchr/testify/assert" chainsel "github.com/smartcontractkit/chain-selectors" + soltestutils "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/testutils" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/v0_1_1/ccip_offramp" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/v0_1_1/test_ccip_receiver" diff --git a/integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go b/integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go index 0464b85f4a5..3d77444f370 100644 --- a/integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go +++ b/integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go @@ -15,6 +15,7 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" chain_selectors "github.com/smartcontractkit/chain-selectors" + module_lock_release_token_pool "github.com/smartcontractkit/chainlink-sui/bindings/generated/ccip/ccip_token_pools/lock_release_token_pool" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_2_0/router" diff --git a/system-tests/tests/smoke/cre/v2_vault_don_test.go b/system-tests/tests/smoke/cre/v2_vault_don_test.go index 1b6ce9e1b82..1da54331587 100644 --- a/system-tests/tests/smoke/cre/v2_vault_don_test.go +++ b/system-tests/tests/smoke/cre/v2_vault_don_test.go @@ -237,84 +237,6 @@ func executeVaultSecretsUpdateTest(t *testing.T, encryptedSecret, secretID, owne framework.L.Info().Msg("Secret updated successfully") } -func executeVaultSecretsGetTest(t *testing.T, secretID, owner, gatewayURL string, sethClient *seth.Client, wfRegistryContract *workflow_registry_v2_wrapper.WorkflowRegistry) { - uniqueRequestID := uuid.New().String() - framework.L.Info().Msg("Getting secret...") - secretsGetRequest := jsonrpc.Request[vault_helpers.GetSecretsRequest]{ - Version: jsonrpc.JsonRpcVersion, - Method: vaulttypes.MethodSecretsGet, - Params: &vault_helpers.GetSecretsRequest{ - Requests: []*vault_helpers.SecretRequest{ - { - Id: &vault_helpers.SecretIdentifier{ - Key: secretID, - Owner: owner, - }, - }, - }, - }, - ID: uniqueRequestID, - } - requestBody, err := json.Marshal(secretsGetRequest) - require.NoError(t, err, "failed to marshal secrets request") - statusCode, httpResponseBody := sendVaultRequestToGateway(t, gatewayURL, requestBody) - require.Equal(t, http.StatusOK, statusCode, "Gateway endpoint should respond with 200 OK") - framework.L.Info().Msg("Checking jsonResponse structure...") - var jsonResponse jsonrpc.Response[json.RawMessage] - err = json.Unmarshal(httpResponseBody, &jsonResponse) - require.NoError(t, err, "failed to unmarshal http response body") - framework.L.Info().Msgf("JSON Body: %v", jsonResponse) - if jsonResponse.Error != nil { - require.Empty(t, jsonResponse.Error.Error()) - } - require.Equal(t, jsonrpc.JsonRpcVersion, jsonResponse.Version) - require.Equal(t, uniqueRequestID, jsonResponse.ID) - require.Equal(t, vaulttypes.MethodSecretsGet, jsonResponse.Method) - - /* - * The json unmarshaling is not compatible with the proto oneof in vault_helpers.SecretResponse - * The Data and Error fields are oneof fields in the proto definition, but when unmarshaling to JSON, - * the JSON unmarshaler does not handle oneof fields correctly, leading to issues. - * To work around this, we define custom response types that match the expected structure. - * This allows us to unmarshal the JSON response correctly and access the fields as expected. - */ - type EncryptedShares struct { - Shares []string `protobuf:"bytes,1,rep,name=shares,proto3" json:"shares,omitempty"` - EncryptionKey string `protobuf:"bytes,2,opt,name=encryption_key,json=encryptionKey,proto3" json:"encryption_key,omitempty"` - } - type SecretData struct { - EncryptedValue string `protobuf:"bytes,2,opt,name=encrypted_value,json=encryptedValue,proto3" json:"encrypted_value,omitempty"` - EncryptedDecryptionKeyShares []*EncryptedShares `protobuf:"bytes,3,rep,name=encrypted_decryption_key_shares,json=encryptedDecryptionKeyShares,proto3" json:"encrypted_decryption_key_shares,omitempty"` - } - type SecretResponse struct { - ID *vault_helpers.SecretIdentifier `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Data *SecretData `protobuf:"bytes,2,opt,name=data,proto3"` - Error string `protobuf:"bytes,3,opt,name=error,proto3"` - } - type GetSecretsResponse struct { - Responses []*SecretResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` - } - /* - * - * - * - * - */ - - var getSecretsResponse GetSecretsResponse - err = json.Unmarshal(*jsonResponse.Result, &getSecretsResponse) - require.NoError(t, err, "failed to unmarshal getResponse") - - require.Len(t, getSecretsResponse.Responses, 1, "Expected one secret in the response") - result0 := getSecretsResponse.Responses[0] - require.Empty(t, result0.Error) - require.Equal(t, secretID, result0.ID.Key) - require.Equal(t, owner, result0.ID.Owner) - require.Equal(t, vaulttypes.DefaultNamespace, result0.ID.Namespace) - - framework.L.Info().Msg("Secret get successful") -} - func executeVaultSecretsListTest(t *testing.T, secretID, owner, gatewayURL string, sethClient *seth.Client, wfRegistryContract *workflow_registry_v2_wrapper.WorkflowRegistry) { framework.L.Info().Msg("Listing secret...") uniqueRequestID := uuid.New().String()