From 8a3da80bd5a6d3ef3e78cd86fe7459797c4044df Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Mon, 25 Mar 2024 16:26:49 +0200 Subject: [PATCH 01/28] interfaces renaming --- factory/processing/processComponents.go | 25 ++++++++++--------- process/block/argProcessor.go | 15 +++++------ process/block/sovereign/interface.go | 8 +++--- process/block/sovereign/outgoingOperations.go | 14 +++++------ .../sovereign/outgoingOperationsFactory.go | 7 +++--- 5 files changed, 36 insertions(+), 33 deletions(-) diff --git a/factory/processing/processComponents.go b/factory/processing/processComponents.go index b8c64575e17..c5db7da535e 100644 --- a/factory/processing/processComponents.go +++ b/factory/processing/processComponents.go @@ -8,14 +8,6 @@ import ( "path/filepath" "time" - "github.com/multiversx/mx-chain-core-go/core" - "github.com/multiversx/mx-chain-core-go/core/check" - "github.com/multiversx/mx-chain-core-go/core/partitioning" - "github.com/multiversx/mx-chain-core-go/data" - "github.com/multiversx/mx-chain-core-go/data/alteredAccount" - dataBlock "github.com/multiversx/mx-chain-core-go/data/block" - "github.com/multiversx/mx-chain-core-go/data/outport" - "github.com/multiversx/mx-chain-core-go/data/receipt" nodeFactory "github.com/multiversx/mx-chain-go/cmd/node/factory" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/common/errChan" @@ -76,6 +68,15 @@ import ( updateDisabled "github.com/multiversx/mx-chain-go/update/disabled" updateFactory "github.com/multiversx/mx-chain-go/update/factory" "github.com/multiversx/mx-chain-go/update/trigger" + + "github.com/multiversx/mx-chain-core-go/core" + "github.com/multiversx/mx-chain-core-go/core/check" + "github.com/multiversx/mx-chain-core-go/core/partitioning" + "github.com/multiversx/mx-chain-core-go/data" + "github.com/multiversx/mx-chain-core-go/data/alteredAccount" + dataBlock "github.com/multiversx/mx-chain-core-go/data/block" + "github.com/multiversx/mx-chain-core-go/data/outport" + "github.com/multiversx/mx-chain-core-go/data/receipt" vmcommon "github.com/multiversx/mx-chain-vm-common-go" vmcommonBuiltInFunctions "github.com/multiversx/mx-chain-vm-common-go/builtInFunctions" ) @@ -173,8 +174,8 @@ type ProcessComponentsFactoryArgs struct { TxPreProcessorCreator preprocess.TxPreProcessorCreator ExtraHeaderSigVerifierHolder headerCheck.ExtraHeaderSigVerifierHolder OutGoingOperationsPool block.OutGoingOperationsPool - DataCodec sovereign.DataCodecProcessor - TopicsChecker sovereign.TopicsChecker + DataCodec sovereign.DataDecoderHandler + TopicsChecker sovereign.TopicsCheckerHandler } type processComponentsFactory struct { @@ -221,8 +222,8 @@ type processComponentsFactory struct { txPreprocessorCreator preprocess.TxPreProcessorCreator extraHeaderSigVerifierHolder headerCheck.ExtraHeaderSigVerifierHolder outGoingOperationsPool block.OutGoingOperationsPool - dataCodec sovereign.DataCodecProcessor - topicsChecker sovereign.TopicsChecker + dataCodec sovereign.DataDecoderHandler + topicsChecker sovereign.TopicsCheckerHandler } // NewProcessComponentsFactory will return a new instance of processComponentsFactory diff --git a/process/block/argProcessor.go b/process/block/argProcessor.go index cebb85e2a0a..674056e2b2a 100644 --- a/process/block/argProcessor.go +++ b/process/block/argProcessor.go @@ -1,11 +1,6 @@ package block import ( - "github.com/multiversx/mx-chain-core-go/core" - "github.com/multiversx/mx-chain-core-go/data" - "github.com/multiversx/mx-chain-core-go/data/typeConverters" - "github.com/multiversx/mx-chain-core-go/hashing" - "github.com/multiversx/mx-chain-core-go/marshal" nodeFactory "github.com/multiversx/mx-chain-go/cmd/node/factory" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/config" @@ -19,6 +14,12 @@ import ( "github.com/multiversx/mx-chain-go/sharding" "github.com/multiversx/mx-chain-go/sharding/nodesCoordinator" "github.com/multiversx/mx-chain-go/state" + + "github.com/multiversx/mx-chain-core-go/core" + "github.com/multiversx/mx-chain-core-go/data" + "github.com/multiversx/mx-chain-core-go/data/typeConverters" + "github.com/multiversx/mx-chain-core-go/hashing" + "github.com/multiversx/mx-chain-core-go/marshal" ) type coreComponentsHolder interface { @@ -98,8 +99,8 @@ type ArgBaseProcessor struct { ManagedPeersHolder common.ManagedPeersHolder ValidatorStatisticsProcessor process.ValidatorStatisticsProcessor OutGoingOperationsPool OutGoingOperationsPool - DataCodec sovereign.DataCodecProcessor - TopicsChecker sovereign.TopicsChecker + DataCodec sovereign.DataDecoderHandler + TopicsChecker sovereign.TopicsCheckerHandler } // ArgShardProcessor holds all dependencies required by the process data factory in order to create diff --git a/process/block/sovereign/interface.go b/process/block/sovereign/interface.go index 3a8d11b8797..0d5cf1e1ab9 100644 --- a/process/block/sovereign/interface.go +++ b/process/block/sovereign/interface.go @@ -12,8 +12,8 @@ type OutgoingOperationsFormatter interface { IsInterfaceNil() bool } -// DataCodecProcessor is the interface for serializing/deserializing data -type DataCodecProcessor interface { +// DataDecoderHandler is the interface for serializing/deserializing data +type DataDecoderHandler interface { SerializeEventData(eventData sovereign.EventData) ([]byte, error) DeserializeEventData(data []byte) (*sovereign.EventData, error) SerializeTokenData(tokenData sovereign.EsdtTokenData) ([]byte, error) @@ -22,8 +22,8 @@ type DataCodecProcessor interface { IsInterfaceNil() bool } -// TopicsChecker should be able to check the topics validity -type TopicsChecker interface { +// TopicsCheckerHandler should be able to check the topics validity +type TopicsCheckerHandler interface { CheckValidity(topics [][]byte) error IsInterfaceNil() bool } diff --git a/process/block/sovereign/outgoingOperations.go b/process/block/sovereign/outgoingOperations.go index 541651731e7..8758cf06eef 100644 --- a/process/block/sovereign/outgoingOperations.go +++ b/process/block/sovereign/outgoingOperations.go @@ -4,13 +4,13 @@ import ( "bytes" "fmt" + "github.com/multiversx/mx-chain-go/common" + "github.com/multiversx/mx-chain-go/errors" + "github.com/multiversx/mx-chain-core-go/core/check" "github.com/multiversx/mx-chain-core-go/data" "github.com/multiversx/mx-chain-core-go/data/sovereign" logger "github.com/multiversx/mx-chain-logger-go" - - "github.com/multiversx/mx-chain-go/common" - "github.com/multiversx/mx-chain-go/errors" ) var log = logger.GetOrCreate("outgoing-operations") @@ -29,14 +29,14 @@ type SubscribedEvent struct { type ArgsOutgoingOperations struct { SubscribedEvents []SubscribedEvent - DataCodec DataCodecProcessor - TopicsChecker TopicsChecker + DataCodec DataDecoderHandler + TopicsChecker TopicsCheckerHandler } type outgoingOperations struct { subscribedEvents []SubscribedEvent - dataCodec DataCodecProcessor - topicsChecker TopicsChecker + dataCodec DataDecoderHandler + topicsChecker TopicsCheckerHandler } // TODO: We should create a common base functionality from this component. Similar behavior is also found in diff --git a/process/block/sovereign/outgoingOperationsFactory.go b/process/block/sovereign/outgoingOperationsFactory.go index b36243420bb..f81b6d2160a 100644 --- a/process/block/sovereign/outgoingOperationsFactory.go +++ b/process/block/sovereign/outgoingOperationsFactory.go @@ -3,16 +3,17 @@ package sovereign import ( "fmt" - "github.com/multiversx/mx-chain-core-go/core" "github.com/multiversx/mx-chain-go/config" + + "github.com/multiversx/mx-chain-core-go/core" ) // CreateOutgoingOperationsFormatter creates an outgoing operations formatter func CreateOutgoingOperationsFormatter( events []config.SubscribedEvent, pubKeyConverter core.PubkeyConverter, - dataCodec DataCodecProcessor, - topicsChecker TopicsChecker, + dataCodec DataDecoderHandler, + topicsChecker TopicsCheckerHandler, ) (OutgoingOperationsFormatter, error) { subscribedEvents, err := getSubscribedEvents(events, pubKeyConverter) if err != nil { From 010790e4f40bbe0f368f4b24eef79c38c147573f Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Mon, 25 Mar 2024 18:53:00 +0200 Subject: [PATCH 02/28] factories added --- cmd/sovereignnode/sovereignNodeRunner.go | 62 +++++++++++-------- errors/errors.go | 6 ++ factory/interface.go | 22 ++++--- factory/processing/blockProcessorCreator.go | 7 +-- factory/processing/processComponents.go | 15 ++--- factory/processing/processComponents_test.go | 4 +- factory/runType/runTypeComponents.go | 19 +++++- factory/runType/runTypeComponentsHandler.go | 34 +++++++++- factory/runType/sovereignRunTypeComponents.go | 33 ++++++++-- .../sovereignRunTypeComponents_test.go | 22 ++++--- factory/sovereign/dataCodecFactory.go | 24 +++++++ factory/sovereign/dataCodecFactory_test.go | 1 + .../sovereign/sovereignDataCodecFactory.go | 33 ++++++++++ .../sovereignDataCodecFactory_test.go | 1 + .../sovereignTopicsCheckerFactory.go | 33 ++++++++++ .../sovereignTopicsCheckerFactory_test.go | 1 + factory/sovereign/topicCheckerFactory_test.go | 1 + factory/sovereign/topicsCheckerFactory.go | 24 +++++++ .../sovereignGenesisBlockCreator_test.go | 26 +++++--- node/nodeRunner.go | 17 +++-- process/block/argProcessor.go | 3 - process/block/baseProcess.go | 27 +++++--- process/block/baseProcess_test.go | 38 +++++++++--- process/block/interface.go | 8 ++- process/block/metablock_test.go | 2 - process/block/sovereign/interface.go | 12 ++++ .../block/sovereignBlockProcessorFactory.go | 4 +- process/mock/runTypeComponentsStub.go | 20 +++++- testscommon/components/components.go | 16 ++--- .../mainFactoryMocks/runTypeComponentStub.go | 14 +++++ testscommon/sovereign/dataCodecFactoryMock.go | 23 +++++++ .../sovereign/topicsCheckerFactoryMock.go | 23 +++++++ 32 files changed, 451 insertions(+), 124 deletions(-) create mode 100644 factory/sovereign/dataCodecFactory.go create mode 100644 factory/sovereign/dataCodecFactory_test.go create mode 100644 factory/sovereign/sovereignDataCodecFactory.go create mode 100644 factory/sovereign/sovereignDataCodecFactory_test.go create mode 100644 factory/sovereign/sovereignTopicsCheckerFactory.go create mode 100644 factory/sovereign/sovereignTopicsCheckerFactory_test.go create mode 100644 factory/sovereign/topicCheckerFactory_test.go create mode 100644 factory/sovereign/topicsCheckerFactory.go create mode 100644 testscommon/sovereign/dataCodecFactoryMock.go create mode 100644 testscommon/sovereign/topicsCheckerFactoryMock.go diff --git a/cmd/sovereignnode/sovereignNodeRunner.go b/cmd/sovereignnode/sovereignNodeRunner.go index 72bbf684725..690ce3a3184 100644 --- a/cmd/sovereignnode/sovereignNodeRunner.go +++ b/cmd/sovereignnode/sovereignNodeRunner.go @@ -310,8 +310,14 @@ func (snr *sovereignNodeRunner) executeOneComponentCreationCycle( return true, err } + log.Debug("creating args for runType components") + argsSovereignRunTypeComponents, err := snr.CreateArgsRunTypeComponents() + if err != nil { + return true, err + } + log.Debug("creating runType components") - managedRunTypeComponents, err := snr.CreateManagedRunTypeComponents(managedCoreComponents, *configs.SovereignExtraConfig) + managedRunTypeComponents, err := snr.CreateManagedRunTypeComponents(managedCoreComponents, *argsSovereignRunTypeComponents) if err != nil { return true, err } @@ -445,25 +451,12 @@ func (snr *sovereignNodeRunner) executeOneComponentCreationCycle( timeToWait := time.Second * time.Duration(snr.configs.SovereignExtraConfig.OutgoingSubscribedEvents.TimeToWaitForUnconfirmedOutGoingOperationInSeconds) outGoingOperationsPool := sovereignPool.NewOutGoingOperationPool(timeToWait) - codec := abi.NewDefaultCodec() - argsDataCodec := dataCodec.ArgsDataCodec{ - Serializer: abi.NewSerializer(codec), - } - - dataCodecProcessor, err := dataCodec.NewDataCodec(argsDataCodec) - if err != nil { - return true, err - } - - topicsChecker := incomingHeader.NewTopicsChecker() - incomingHeaderHandler, err := createIncomingHeaderProcessor( &configs.SovereignExtraConfig.NotifierConfig, managedDataComponents.Datapool(), configs.SovereignExtraConfig.MainChainNotarization.MainChainNotarizationStartRound, outGoingOperationsPool, - dataCodecProcessor, - topicsChecker, + managedRunTypeComponents, ) managedProcessComponents, err := snr.CreateManagedProcessComponents( @@ -480,8 +473,6 @@ func (snr *sovereignNodeRunner) executeOneComponentCreationCycle( nodesCoordinatorInstance, incomingHeaderHandler, outGoingOperationsPool, - dataCodecProcessor, - topicsChecker, ) if err != nil { return true, err @@ -1244,8 +1235,6 @@ func (snr *sovereignNodeRunner) CreateManagedProcessComponents( nodesCoordinator nodesCoordinator.NodesCoordinator, incomingHeaderHandler process.IncomingHeaderSubscriber, outGoingOperationsPool block.OutGoingOperationsPool, - dataCodec dataCodec.SovereignDataDecoder, - topicsChecker incomingHeader.TopicsChecker, ) (mainFactory.ProcessComponentsHandler, error) { configs := snr.configs configurationPaths := snr.configs.ConfigurationPathsHolder @@ -1375,8 +1364,6 @@ func (snr *sovereignNodeRunner) CreateManagedProcessComponents( TxPreProcessorCreator: preprocess.NewSovereignTxPreProcessorCreator(), ExtraHeaderSigVerifierHolder: extraHeaderSigVerifierHolder, OutGoingOperationsPool: outGoingOperationsPool, - DataCodec: dataCodec, - TopicsChecker: topicsChecker, } processComponentsFactory, err := processComp.NewProcessComponentsFactory(processArgs) if err != nil { @@ -1680,8 +1667,30 @@ func (snr *sovereignNodeRunner) CreateManagedCryptoComponents( return managedCryptoComponents, nil } +func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents() (*runType.ArgsSovereignRunTypeComponents, error) { + sovereignCfg := snr.configs.SovereignExtraConfig + + codec := abi.NewDefaultCodec() + argsDataCodec := dataCodec.ArgsDataCodec{ + Serializer: abi.NewSerializer(codec), + } + + dataCodecHandler, err := dataCodec.NewDataCodec(argsDataCodec) + if err != nil { + return nil, err + } + + topicsCheckerHandler := incomingHeader.NewTopicsChecker() + + return &runType.ArgsSovereignRunTypeComponents{ + Config: *sovereignCfg, + DataCodec: dataCodecHandler, + TopicsChecker: topicsCheckerHandler, + }, nil +} + // CreateManagedRunTypeComponents creates the managed runType components -func (snr *sovereignNodeRunner) CreateManagedRunTypeComponents(coreComp mainFactory.CoreComponentsHandler, cfg config.SovereignConfig) (mainFactory.RunTypeComponentsHandler, error) { +func (snr *sovereignNodeRunner) CreateManagedRunTypeComponents(coreComp mainFactory.CoreComponentsHandler, args runType.ArgsSovereignRunTypeComponents) (mainFactory.RunTypeComponentsHandler, error) { runTypeComponentsFactory, err := runType.NewRunTypeComponentsFactory(coreComp) if err != nil { return nil, fmt.Errorf("NewRunTypeComponentsFactory failed: %w", err) @@ -1689,7 +1698,7 @@ func (snr *sovereignNodeRunner) CreateManagedRunTypeComponents(coreComp mainFact sovereignRunTypeComponentsFactory, err := runType.NewSovereignRunTypeComponentsFactory( runTypeComponentsFactory, - cfg, + args, ) if err != nil { return nil, fmt.Errorf("NewSovereignRunTypeComponentsFactory failed: %w", err) @@ -1868,8 +1877,7 @@ func createIncomingHeaderProcessor( dataPool dataRetriever.PoolsHolder, mainChainNotarizationStartRound uint64, outGoingOperationsPool block.OutGoingOperationsPool, - dataCodec dataCodec.SovereignDataDecoder, - topicsChecker incomingHeader.TopicsChecker, + runTypeComponents mainFactory.RunTypeComponentsHolder, ) (process.IncomingHeaderSubscriber, error) { marshaller, err := marshallerFactory.NewMarshalizer(config.WebSocketConfig.MarshallerType) if err != nil { @@ -1887,8 +1895,8 @@ func createIncomingHeaderProcessor( Hasher: hasher, MainChainNotarizationStartRound: mainChainNotarizationStartRound, OutGoingOperationsPool: outGoingOperationsPool, - DataCodec: dataCodec, - TopicsChecker: topicsChecker, + DataCodec: runTypeComponents.DataCodecCreator().CreateDataCodec(), + TopicsChecker: runTypeComponents.TopicsCheckerCreator().CreateTopicsChecker(), } return incomingHeader.NewIncomingHeaderProcessor(argsIncomingHeaderHandler) diff --git a/errors/errors.go b/errors/errors.go index 0183b66fe22..ce252519aae 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -787,3 +787,9 @@ var ErrNilTopicsChecker = errors.New("nil topics checker") // ErrNilOperationsHasher signals that a nil outgoing operations hasher has been provided var ErrNilOperationsHasher = errors.New("nil outgoing operations hasher") + +// ErrNilDataCodecCreator signals that a nil data codec creator has been provided +var ErrNilDataCodecCreator = errors.New("nil data codec creator") + +// ErrNilTopicsCheckerCreator signals that a nil topics checker creator has been provided +var ErrNilTopicsCheckerCreator = errors.New("nil topics checker creator") diff --git a/factory/interface.go b/factory/interface.go index 42f1dfd7783..3611b1bcda3 100644 --- a/factory/interface.go +++ b/factory/interface.go @@ -5,15 +5,6 @@ import ( "math/big" "time" - "github.com/multiversx/mx-chain-core-go/core" - "github.com/multiversx/mx-chain-core-go/data" - "github.com/multiversx/mx-chain-core-go/data/block" - "github.com/multiversx/mx-chain-core-go/data/endProcess" - "github.com/multiversx/mx-chain-core-go/data/transaction" - "github.com/multiversx/mx-chain-core-go/data/typeConverters" - "github.com/multiversx/mx-chain-core-go/hashing" - "github.com/multiversx/mx-chain-core-go/marshal" - crypto "github.com/multiversx/mx-chain-crypto-go" "github.com/multiversx/mx-chain-go/cmd/node/factory" "github.com/multiversx/mx-chain-go/common" cryptoCommon "github.com/multiversx/mx-chain-go/common/crypto" @@ -34,6 +25,7 @@ import ( "github.com/multiversx/mx-chain-go/process" processBlock "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -48,6 +40,16 @@ import ( "github.com/multiversx/mx-chain-go/storage" "github.com/multiversx/mx-chain-go/update" "github.com/multiversx/mx-chain-go/vm" + + "github.com/multiversx/mx-chain-core-go/core" + "github.com/multiversx/mx-chain-core-go/data" + "github.com/multiversx/mx-chain-core-go/data/block" + "github.com/multiversx/mx-chain-core-go/data/endProcess" + "github.com/multiversx/mx-chain-core-go/data/transaction" + "github.com/multiversx/mx-chain-core-go/data/typeConverters" + "github.com/multiversx/mx-chain-core-go/hashing" + "github.com/multiversx/mx-chain-core-go/marshal" + crypto "github.com/multiversx/mx-chain-crypto-go" vmcommon "github.com/multiversx/mx-chain-vm-common-go" ) @@ -591,6 +593,8 @@ type RunTypeComponentsHolder interface { VmContainerMetaFactoryCreator() factoryVm.VmContainerCreator VmContainerShardFactoryCreator() factoryVm.VmContainerCreator AccountsCreator() state.AccountFactory + DataCodecCreator() sovereign.DataDecoderCreator + TopicsCheckerCreator() sovereign.TopicsCheckerCreator Create() error Close() error CheckSubcomponents() error diff --git a/factory/processing/blockProcessorCreator.go b/factory/processing/blockProcessorCreator.go index 7a48e5419d7..b54170847f2 100644 --- a/factory/processing/blockProcessorCreator.go +++ b/factory/processing/blockProcessorCreator.go @@ -4,8 +4,6 @@ import ( "errors" "fmt" - "github.com/multiversx/mx-chain-core-go/core" - dataBlock "github.com/multiversx/mx-chain-core-go/data/block" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/config" "github.com/multiversx/mx-chain-go/dataRetriever" @@ -41,6 +39,9 @@ import ( "github.com/multiversx/mx-chain-go/state/syncer" "github.com/multiversx/mx-chain-go/storage/txcache" "github.com/multiversx/mx-chain-go/vm" + + "github.com/multiversx/mx-chain-core-go/core" + dataBlock "github.com/multiversx/mx-chain-core-go/data/block" logger "github.com/multiversx/mx-chain-logger-go" vmcommon "github.com/multiversx/mx-chain-vm-common-go" "github.com/multiversx/mx-chain-vm-common-go/parsers" @@ -477,8 +478,6 @@ func (pcf *processComponentsFactory) newShardBlockProcessor( ManagedPeersHolder: pcf.crypto.ManagedPeersHolder(), ValidatorStatisticsProcessor: validatorStatisticsProcessor, OutGoingOperationsPool: pcf.outGoingOperationsPool, - DataCodec: pcf.dataCodec, - TopicsChecker: pcf.topicsChecker, } blockProcessor, err := pcf.createBlockProcessor(argumentsBaseProcessor) diff --git a/factory/processing/processComponents.go b/factory/processing/processComponents.go index c5db7da535e..69c47c852f1 100644 --- a/factory/processing/processComponents.go +++ b/factory/processing/processComponents.go @@ -42,7 +42,6 @@ import ( "github.com/multiversx/mx-chain-go/process/block/poolsCleaner" "github.com/multiversx/mx-chain-go/process/block/preprocess" "github.com/multiversx/mx-chain-go/process/block/processedMb" - "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/factory/interceptorscontainer" "github.com/multiversx/mx-chain-go/process/headerCheck" "github.com/multiversx/mx-chain-go/process/heartbeat/validator" @@ -174,8 +173,6 @@ type ProcessComponentsFactoryArgs struct { TxPreProcessorCreator preprocess.TxPreProcessorCreator ExtraHeaderSigVerifierHolder headerCheck.ExtraHeaderSigVerifierHolder OutGoingOperationsPool block.OutGoingOperationsPool - DataCodec sovereign.DataDecoderHandler - TopicsChecker sovereign.TopicsCheckerHandler } type processComponentsFactory struct { @@ -222,8 +219,6 @@ type processComponentsFactory struct { txPreprocessorCreator preprocess.TxPreProcessorCreator extraHeaderSigVerifierHolder headerCheck.ExtraHeaderSigVerifierHolder outGoingOperationsPool block.OutGoingOperationsPool - dataCodec sovereign.DataDecoderHandler - topicsChecker sovereign.TopicsCheckerHandler } // NewProcessComponentsFactory will return a new instance of processComponentsFactory @@ -271,8 +266,6 @@ func NewProcessComponentsFactory(args ProcessComponentsFactoryArgs) (*processCom txPreprocessorCreator: args.TxPreProcessorCreator, extraHeaderSigVerifierHolder: args.ExtraHeaderSigVerifierHolder, outGoingOperationsPool: args.OutGoingOperationsPool, - dataCodec: args.DataCodec, - topicsChecker: args.TopicsChecker, }, nil } @@ -2097,11 +2090,11 @@ func checkProcessComponentsArgs(args ProcessComponentsFactoryArgs) error { if check.IfNil(args.RunTypeComponents.SCResultsPreProcessorCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilSCResultsPreProcessorCreator) } - if check.IfNil(args.DataCodec) { - return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilDataCodec) + if check.IfNil(args.RunTypeComponents.DataCodecCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilDataCodecCreator) } - if check.IfNil(args.TopicsChecker) { - return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilTopicsChecker) + if check.IfNil(args.RunTypeComponents.TopicsCheckerCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilTopicsCheckerCreator) } return nil diff --git a/factory/processing/processComponents_test.go b/factory/processing/processComponents_test.go index 9129d1817f8..5239becb722 100644 --- a/factory/processing/processComponents_test.go +++ b/factory/processing/processComponents_test.go @@ -261,8 +261,6 @@ func createMockProcessComponentsFactoryArgs() processComp.ProcessComponentsFacto ExtraHeaderSigVerifierHolder: &headerSigVerifier.ExtraHeaderSigVerifierHolderMock{}, OutGoingOperationsPool: &sovereign.OutGoingOperationsPoolMock{}, IncomingHeaderSubscriber: &sovereign.IncomingHeaderSubscriberStub{}, - DataCodec: &sovereign.DataCodecMock{}, - TopicsChecker: &sovereign.TopicsCheckerMock{}, RunTypeComponents: components.GetRunTypeComponents(), } @@ -804,6 +802,8 @@ func getRunTypeComponentsMock() *mainFactoryMocks.RunTypeComponentsStub { SCResultsPreProcessorFactory: rt.SCResultsPreProcessorCreator(), VmContainerMetaFactory: rt.VmContainerMetaFactoryCreator(), VmContainerShardFactory: rt.VmContainerShardFactoryCreator(), + DataCodecFactory: rt.DataCodecCreator(), + TopicsCheckerFactory: rt.TopicsCheckerCreator(), } } diff --git a/factory/runType/runTypeComponents.go b/factory/runType/runTypeComponents.go index 412d8a82be2..2652d070bd3 100644 --- a/factory/runType/runTypeComponents.go +++ b/factory/runType/runTypeComponents.go @@ -3,16 +3,17 @@ package runType import ( "fmt" - "github.com/multiversx/mx-chain-core-go/core/check" "github.com/multiversx/mx-chain-go/consensus" "github.com/multiversx/mx-chain-go/dataRetriever/requestHandlers" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" "github.com/multiversx/mx-chain-go/errors" + sovereignFactory "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block" processBlock "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -24,6 +25,8 @@ import ( "github.com/multiversx/mx-chain-go/state" "github.com/multiversx/mx-chain-go/state/factory" storageFactory "github.com/multiversx/mx-chain-go/storage/factory" + + "github.com/multiversx/mx-chain-core-go/core/check" ) type runTypeComponentsFactory struct { @@ -51,6 +54,8 @@ type runTypeComponents struct { vmContainerMetaFactory factoryVm.VmContainerCreator vmContainerShardFactory factoryVm.VmContainerCreator accountsCreator state.AccountFactory + dataCodecCreator sovereign.DataDecoderCreator + topicsCheckerCreator sovereign.TopicsCheckerCreator } // NewRunTypeComponentsFactory will return a new instance of runTypeComponentsFactory @@ -160,6 +165,16 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { return nil, fmt.Errorf("runTypeComponentsFactory - NewAccountCreator failed: %w", err) } + dataCodecCreator, err := sovereignFactory.NewDataCodecFactory() + if err != nil { + return nil, fmt.Errorf("runTypeComponentsFactory - NewDataCodecFactory failed: %w", err) + } + + topicsCheckerCreator, err := sovereignFactory.NewTopicsCheckerFactory() + if err != nil { + return nil, fmt.Errorf("runTypeComponentsFactory - NewTopicsCheckerFactory failed: %w", err) + } + return &runTypeComponents{ blockChainHookHandlerCreator: blockChainHookHandlerFactory, epochStartBootstrapperCreator: epochStartBootstrapperFactory, @@ -180,6 +195,8 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { vmContainerMetaFactory: vmContainerMetaCreator, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, + dataCodecCreator: dataCodecCreator, + topicsCheckerCreator: topicsCheckerCreator, }, nil } diff --git a/factory/runType/runTypeComponentsHandler.go b/factory/runType/runTypeComponentsHandler.go index 37ece42a556..37fe10306b0 100644 --- a/factory/runType/runTypeComponentsHandler.go +++ b/factory/runType/runTypeComponentsHandler.go @@ -4,7 +4,6 @@ import ( "fmt" "sync" - "github.com/multiversx/mx-chain-core-go/core/check" "github.com/multiversx/mx-chain-go/consensus" "github.com/multiversx/mx-chain-go/dataRetriever/requestHandlers" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" @@ -14,6 +13,7 @@ import ( "github.com/multiversx/mx-chain-go/process" processBlock "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -22,6 +22,8 @@ import ( "github.com/multiversx/mx-chain-go/process/sync/storageBootstrap" "github.com/multiversx/mx-chain-go/process/track" "github.com/multiversx/mx-chain-go/state" + + "github.com/multiversx/mx-chain-core-go/core/check" ) var _ factory.ComponentHandler = (*managedRunTypeComponents)(nil) @@ -131,6 +133,12 @@ func (mrc *managedRunTypeComponents) CheckSubcomponents() error { if check.IfNil(mrc.scResultPreProcessorCreator) { return errors.ErrNilSCResultsPreProcessorCreator } + if check.IfNil(mrc.dataCodecCreator) { + return errors.ErrNilDataCodecCreator + } + if check.IfNil(mrc.topicsCheckerCreator) { + return errors.ErrNilTopicsCheckerCreator + } return nil } @@ -362,6 +370,30 @@ func (mrc *managedRunTypeComponents) AccountsCreator() state.AccountFactory { return mrc.runTypeComponents.accountsCreator } +// DataCodecCreator returns the data codec factory +func (mrc *managedRunTypeComponents) DataCodecCreator() sovereign.DataDecoderCreator { + mrc.mutStateComponents.RLock() + defer mrc.mutStateComponents.RUnlock() + + if check.IfNil(mrc.runTypeComponents) { + return nil + } + + return mrc.runTypeComponents.dataCodecCreator +} + +// TopicsCheckerCreator returns the topics checker factory +func (mrc *managedRunTypeComponents) TopicsCheckerCreator() sovereign.TopicsCheckerCreator { + mrc.mutStateComponents.RLock() + defer mrc.mutStateComponents.RUnlock() + + if check.IfNil(mrc.runTypeComponents) { + return nil + } + + return mrc.runTypeComponents.topicsCheckerCreator +} + // IsInterfaceNil returns true if the interface is nil func (mrc *managedRunTypeComponents) IsInterfaceNil() bool { return mrc == nil diff --git a/factory/runType/sovereignRunTypeComponents.go b/factory/runType/sovereignRunTypeComponents.go index 8d0645b3d03..e3726ef6e38 100644 --- a/factory/runType/sovereignRunTypeComponents.go +++ b/factory/runType/sovereignRunTypeComponents.go @@ -3,15 +3,16 @@ package runType import ( "fmt" - "github.com/multiversx/mx-chain-core-go/core/check" "github.com/multiversx/mx-chain-go/config" "github.com/multiversx/mx-chain-go/consensus" "github.com/multiversx/mx-chain-go/dataRetriever/requestHandlers" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" "github.com/multiversx/mx-chain-go/errors" + sovereignFactory "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -21,22 +22,34 @@ import ( "github.com/multiversx/mx-chain-go/process/track" "github.com/multiversx/mx-chain-go/state/factory" storageFactory "github.com/multiversx/mx-chain-go/storage/factory" + + "github.com/multiversx/mx-chain-core-go/core/check" ) +type ArgsSovereignRunTypeComponents struct { + Config config.SovereignConfig + DataCodec sovereign.DataDecoderHandler + TopicsChecker sovereign.TopicsCheckerHandler +} + type sovereignRunTypeComponentsFactory struct { *runTypeComponentsFactory - cfg config.SovereignConfig + cfg config.SovereignConfig + dataCodec sovereign.DataDecoderHandler + topicsChecker sovereign.TopicsCheckerHandler } // NewSovereignRunTypeComponentsFactory will return a new instance of runTypeComponentsFactory -func NewSovereignRunTypeComponentsFactory(fact *runTypeComponentsFactory, cfg config.SovereignConfig) (*sovereignRunTypeComponentsFactory, error) { +func NewSovereignRunTypeComponentsFactory(fact *runTypeComponentsFactory, args ArgsSovereignRunTypeComponents) (*sovereignRunTypeComponentsFactory, error) { if check.IfNil(fact) { return nil, errors.ErrNilRunTypeComponentsFactory } return &sovereignRunTypeComponentsFactory{ runTypeComponentsFactory: fact, - cfg: cfg, + cfg: args.Config, + dataCodec: args.DataCodec, + topicsChecker: args.TopicsChecker, }, nil } @@ -139,6 +152,16 @@ func (rcf *sovereignRunTypeComponentsFactory) Create() (*runTypeComponents, erro return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignAccountCreator failed: %w", err) } + dataCodecCreator, err := sovereignFactory.NewSovereignDataCodecFactory(rcf.dataCodec) + if err != nil { + return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignDataCodecFactory failed: %w", err) + } + + topicsCheckerCreator, err := sovereignFactory.NewSovereignTopicsCheckerFactory(rcf.topicsChecker) + if err != nil { + return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignTopicsCheckerFactory failed: %w", err) + } + return &runTypeComponents{ blockChainHookHandlerCreator: blockChainHookHandlerFactory, epochStartBootstrapperCreator: epochStartBootstrapperFactory, @@ -159,5 +182,7 @@ func (rcf *sovereignRunTypeComponentsFactory) Create() (*runTypeComponents, erro vmContainerMetaFactory: rtc.vmContainerMetaFactory, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, + dataCodecCreator: dataCodecCreator, + topicsCheckerCreator: topicsCheckerCreator, }, nil } diff --git a/factory/runType/sovereignRunTypeComponents_test.go b/factory/runType/sovereignRunTypeComponents_test.go index e66c994f600..7f6c04470c3 100644 --- a/factory/runType/sovereignRunTypeComponents_test.go +++ b/factory/runType/sovereignRunTypeComponents_test.go @@ -6,26 +6,32 @@ import ( "github.com/multiversx/mx-chain-go/config" "github.com/multiversx/mx-chain-go/errors" "github.com/multiversx/mx-chain-go/factory/runType" + "github.com/multiversx/mx-chain-go/testscommon/sovereign" + "github.com/stretchr/testify/require" ) -func createSovConfig() config.SovereignConfig { - return config.SovereignConfig{ - GenesisConfig: config.GenesisConfig{ - NativeESDT: "WEGLD", +func createSovRunTypeArgs() runType.ArgsSovereignRunTypeComponents { + return runType.ArgsSovereignRunTypeComponents{ + Config: config.SovereignConfig{ + GenesisConfig: config.GenesisConfig{ + NativeESDT: "WEGLD", + }, }, + DataCodec: &sovereign.DataCodecMock{}, + TopicsChecker: &sovereign.TopicsCheckerMock{}, } } func TestNewSovereignRunTypeComponentsFactory(t *testing.T) { t.Parallel() - srcf, err := runType.NewSovereignRunTypeComponentsFactory(nil, createSovConfig()) + srcf, err := runType.NewSovereignRunTypeComponentsFactory(nil, createSovRunTypeArgs()) require.Nil(t, srcf) require.ErrorIs(t, errors.ErrNilRunTypeComponentsFactory, err) rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) - srcf, err = runType.NewSovereignRunTypeComponentsFactory(rcf, createSovConfig()) + srcf, err = runType.NewSovereignRunTypeComponentsFactory(rcf, createSovRunTypeArgs()) require.NotNil(t, srcf) require.NoError(t, err) } @@ -34,7 +40,7 @@ func TestSovereignRunTypeComponentsFactory_Create(t *testing.T) { t.Parallel() rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) - srcf, _ := runType.NewSovereignRunTypeComponentsFactory(rcf, createSovConfig()) + srcf, _ := runType.NewSovereignRunTypeComponentsFactory(rcf, createSovRunTypeArgs()) rc, err := srcf.Create() require.NoError(t, err) @@ -45,7 +51,7 @@ func TestSovereignRunTypeComponentsFactory_Close(t *testing.T) { t.Parallel() rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) - srcf, _ := runType.NewSovereignRunTypeComponentsFactory(rcf, createSovConfig()) + srcf, _ := runType.NewSovereignRunTypeComponentsFactory(rcf, createSovRunTypeArgs()) rc, err := srcf.Create() require.NoError(t, err) diff --git a/factory/sovereign/dataCodecFactory.go b/factory/sovereign/dataCodecFactory.go new file mode 100644 index 00000000000..7959210538e --- /dev/null +++ b/factory/sovereign/dataCodecFactory.go @@ -0,0 +1,24 @@ +package sovereign + +import ( + "github.com/multiversx/mx-chain-go/common/disabled" + "github.com/multiversx/mx-chain-go/process/block/sovereign" +) + +type dataCodecFactory struct { +} + +// NewDataCodecFactory creates a new data codec factory +func NewDataCodecFactory() (*dataCodecFactory, error) { + return &dataCodecFactory{}, nil +} + +// CreateDataCodec creates a new data codec for the chain run type normal +func (dcf *dataCodecFactory) CreateDataCodec() sovereign.DataDecoderHandler { + return disabled.NewDisabledDataCodec() +} + +// IsInterfaceNil returns true if there is no value under the interface +func (dcf *dataCodecFactory) IsInterfaceNil() bool { + return dcf == nil +} diff --git a/factory/sovereign/dataCodecFactory_test.go b/factory/sovereign/dataCodecFactory_test.go new file mode 100644 index 00000000000..d03b345aeeb --- /dev/null +++ b/factory/sovereign/dataCodecFactory_test.go @@ -0,0 +1 @@ +package sovereign_test diff --git a/factory/sovereign/sovereignDataCodecFactory.go b/factory/sovereign/sovereignDataCodecFactory.go new file mode 100644 index 00000000000..d7a54a02685 --- /dev/null +++ b/factory/sovereign/sovereignDataCodecFactory.go @@ -0,0 +1,33 @@ +package sovereign + +import ( + "github.com/multiversx/mx-chain-go/errors" + "github.com/multiversx/mx-chain-go/process/block/sovereign" + + "github.com/multiversx/mx-chain-core-go/core/check" +) + +type sovereignDataCodecFactory struct { + dataCodec sovereign.DataDecoderHandler +} + +// NewSovereignDataCodecFactory creates a new sovereign data codec factory +func NewSovereignDataCodecFactory(dc sovereign.DataDecoderHandler) (*sovereignDataCodecFactory, error) { + if check.IfNil(dc) { + return nil, errors.ErrNilDataCodec + } + + return &sovereignDataCodecFactory{ + dataCodec: dc, + }, nil +} + +// CreateDataCodec creates a new data codec for the chain run type sovereign +func (sdcf *sovereignDataCodecFactory) CreateDataCodec() sovereign.DataDecoderHandler { + return sdcf.dataCodec +} + +// IsInterfaceNil returns true if there is no value under the interface +func (sdcf *sovereignDataCodecFactory) IsInterfaceNil() bool { + return sdcf == nil +} diff --git a/factory/sovereign/sovereignDataCodecFactory_test.go b/factory/sovereign/sovereignDataCodecFactory_test.go new file mode 100644 index 00000000000..d03b345aeeb --- /dev/null +++ b/factory/sovereign/sovereignDataCodecFactory_test.go @@ -0,0 +1 @@ +package sovereign_test diff --git a/factory/sovereign/sovereignTopicsCheckerFactory.go b/factory/sovereign/sovereignTopicsCheckerFactory.go new file mode 100644 index 00000000000..d6ae668686b --- /dev/null +++ b/factory/sovereign/sovereignTopicsCheckerFactory.go @@ -0,0 +1,33 @@ +package sovereign + +import ( + "github.com/multiversx/mx-chain-go/errors" + "github.com/multiversx/mx-chain-go/process/block/sovereign" + + "github.com/multiversx/mx-chain-core-go/core/check" +) + +type sovereignTopicsCheckerFactory struct { + topicsChecker sovereign.TopicsCheckerHandler +} + +// NewSovereignTopicsCheckerFactory creates a new sovereign topics checker factory +func NewSovereignTopicsCheckerFactory(tc sovereign.TopicsCheckerHandler) (*sovereignTopicsCheckerFactory, error) { + if check.IfNil(tc) { + return nil, errors.ErrNilTopicsChecker + } + + return &sovereignTopicsCheckerFactory{ + topicsChecker: tc, + }, nil +} + +// CreateTopicsChecker creates a new topics checker for the chain run type sovereign +func (stcf *sovereignTopicsCheckerFactory) CreateTopicsChecker() sovereign.TopicsCheckerHandler { + return stcf.topicsChecker +} + +// IsInterfaceNil returns true if there is no value under the interface +func (stcf *sovereignTopicsCheckerFactory) IsInterfaceNil() bool { + return stcf == nil +} diff --git a/factory/sovereign/sovereignTopicsCheckerFactory_test.go b/factory/sovereign/sovereignTopicsCheckerFactory_test.go new file mode 100644 index 00000000000..d03b345aeeb --- /dev/null +++ b/factory/sovereign/sovereignTopicsCheckerFactory_test.go @@ -0,0 +1 @@ +package sovereign_test diff --git a/factory/sovereign/topicCheckerFactory_test.go b/factory/sovereign/topicCheckerFactory_test.go new file mode 100644 index 00000000000..d03b345aeeb --- /dev/null +++ b/factory/sovereign/topicCheckerFactory_test.go @@ -0,0 +1 @@ +package sovereign_test diff --git a/factory/sovereign/topicsCheckerFactory.go b/factory/sovereign/topicsCheckerFactory.go new file mode 100644 index 00000000000..7a5a9052340 --- /dev/null +++ b/factory/sovereign/topicsCheckerFactory.go @@ -0,0 +1,24 @@ +package sovereign + +import ( + "github.com/multiversx/mx-chain-go/common/disabled" + "github.com/multiversx/mx-chain-go/process/block/sovereign" +) + +type topicsCheckerFactory struct { +} + +// NewTopicsCheckerFactory creates a new topics checker factory +func NewTopicsCheckerFactory() (*topicsCheckerFactory, error) { + return &topicsCheckerFactory{}, nil +} + +// CreateTopicsChecker creates a new topics checker for the chain run type normal +func (tcf *topicsCheckerFactory) CreateTopicsChecker() sovereign.TopicsCheckerHandler { + return disabled.NewDisabledTopicsChecker() +} + +// IsInterfaceNil returns true if there is no value under the interface +func (tcf *topicsCheckerFactory) IsInterfaceNil() bool { + return tcf == nil +} diff --git a/genesis/process/sovereignGenesisBlockCreator_test.go b/genesis/process/sovereignGenesisBlockCreator_test.go index eed2f08661e..6ab1cae3355 100644 --- a/genesis/process/sovereignGenesisBlockCreator_test.go +++ b/genesis/process/sovereignGenesisBlockCreator_test.go @@ -10,13 +10,6 @@ import ( "math/big" "testing" - "github.com/multiversx/mx-chain-core-go/core" - "github.com/multiversx/mx-chain-core-go/data" - "github.com/multiversx/mx-chain-core-go/data/block" - "github.com/multiversx/mx-chain-core-go/data/esdt" - "github.com/multiversx/mx-chain-core-go/data/transaction" - "github.com/multiversx/mx-chain-core-go/hashing" - "github.com/multiversx/mx-chain-core-go/marshal" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/common/holders" "github.com/multiversx/mx-chain-go/config" @@ -32,8 +25,17 @@ import ( "github.com/multiversx/mx-chain-go/testscommon/enableEpochsHandlerMock" "github.com/multiversx/mx-chain-go/testscommon/factory" "github.com/multiversx/mx-chain-go/testscommon/hashingMocks" + "github.com/multiversx/mx-chain-go/testscommon/sovereign" "github.com/multiversx/mx-chain-go/testscommon/state" "github.com/multiversx/mx-chain-go/vm" + + "github.com/multiversx/mx-chain-core-go/core" + "github.com/multiversx/mx-chain-core-go/data" + "github.com/multiversx/mx-chain-core-go/data/block" + "github.com/multiversx/mx-chain-core-go/data/esdt" + "github.com/multiversx/mx-chain-core-go/data/transaction" + "github.com/multiversx/mx-chain-core-go/hashing" + "github.com/multiversx/mx-chain-core-go/marshal" vmcommon "github.com/multiversx/mx-chain-vm-common-go" "github.com/stretchr/testify/require" ) @@ -87,10 +89,14 @@ func createSovRunTypeComps(t *testing.T) runTypeComponentsHandler { require.Nil(t, err) sovRunTypeFactory, err := factoryRunType.NewSovereignRunTypeComponentsFactory(runTypeFactory, - config.SovereignConfig{ - GenesisConfig: config.GenesisConfig{ - NativeESDT: sovereignNativeToken, + factoryRunType.ArgsSovereignRunTypeComponents{ + Config: config.SovereignConfig{ + GenesisConfig: config.GenesisConfig{ + NativeESDT: sovereignNativeToken, + }, }, + DataCodec: &sovereign.DataCodecMock{}, + TopicsChecker: &sovereign.TopicsCheckerMock{}, }, ) require.Nil(t, err) diff --git a/node/nodeRunner.go b/node/nodeRunner.go index 1acbb096718..f5f7c7cbee6 100644 --- a/node/nodeRunner.go +++ b/node/nodeRunner.go @@ -13,13 +13,6 @@ import ( "syscall" "time" - "github.com/google/gops/agent" - "github.com/multiversx/mx-chain-core-go/core" - "github.com/multiversx/mx-chain-core-go/core/check" - "github.com/multiversx/mx-chain-core-go/core/closing" - "github.com/multiversx/mx-chain-core-go/core/throttler" - "github.com/multiversx/mx-chain-core-go/data/endProcess" - outportCore "github.com/multiversx/mx-chain-core-go/data/outport" "github.com/multiversx/mx-chain-go/api/gin" "github.com/multiversx/mx-chain-go/api/shared" "github.com/multiversx/mx-chain-go/common" @@ -72,6 +65,14 @@ import ( "github.com/multiversx/mx-chain-go/storage/storageunit" trieStatistics "github.com/multiversx/mx-chain-go/trie/statistics" "github.com/multiversx/mx-chain-go/update/trigger" + + "github.com/google/gops/agent" + "github.com/multiversx/mx-chain-core-go/core" + "github.com/multiversx/mx-chain-core-go/core/check" + "github.com/multiversx/mx-chain-core-go/core/closing" + "github.com/multiversx/mx-chain-core-go/core/throttler" + "github.com/multiversx/mx-chain-core-go/data/endProcess" + outportCore "github.com/multiversx/mx-chain-core-go/data/outport" logger "github.com/multiversx/mx-chain-logger-go" ) @@ -1296,8 +1297,6 @@ func (nr *nodeRunner) CreateManagedProcessComponents( TxPreProcessorCreator: preprocess.NewTxPreProcessorCreator(), ExtraHeaderSigVerifierHolder: headerCheck.NewExtraHeaderSigVerifierHolder(), RunTypeComponents: runTypeComponents, - DataCodec: disabled.NewDisabledDataCodec(), - TopicsChecker: disabled.NewDisabledTopicsChecker(), } processComponentsFactory, err := processComp.NewProcessComponentsFactory(processArgs) if err != nil { diff --git a/process/block/argProcessor.go b/process/block/argProcessor.go index 674056e2b2a..08c739e9332 100644 --- a/process/block/argProcessor.go +++ b/process/block/argProcessor.go @@ -10,7 +10,6 @@ import ( "github.com/multiversx/mx-chain-go/outport" "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block/cutoff" - "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/sharding" "github.com/multiversx/mx-chain-go/sharding/nodesCoordinator" "github.com/multiversx/mx-chain-go/state" @@ -99,8 +98,6 @@ type ArgBaseProcessor struct { ManagedPeersHolder common.ManagedPeersHolder ValidatorStatisticsProcessor process.ValidatorStatisticsProcessor OutGoingOperationsPool OutGoingOperationsPool - DataCodec sovereign.DataDecoderHandler - TopicsChecker sovereign.TopicsCheckerHandler } // ArgShardProcessor holds all dependencies required by the process data factory in order to create diff --git a/process/block/baseProcess.go b/process/block/baseProcess.go index 52eb0cd0f81..d1fc610783c 100644 --- a/process/block/baseProcess.go +++ b/process/block/baseProcess.go @@ -10,16 +10,6 @@ import ( "sync" "time" - "github.com/multiversx/mx-chain-core-go/core" - "github.com/multiversx/mx-chain-core-go/core/check" - "github.com/multiversx/mx-chain-core-go/data" - "github.com/multiversx/mx-chain-core-go/data/block" - outportcore "github.com/multiversx/mx-chain-core-go/data/outport" - "github.com/multiversx/mx-chain-core-go/data/scheduled" - "github.com/multiversx/mx-chain-core-go/data/typeConverters" - "github.com/multiversx/mx-chain-core-go/display" - "github.com/multiversx/mx-chain-core-go/hashing" - "github.com/multiversx/mx-chain-core-go/marshal" nodeFactory "github.com/multiversx/mx-chain-go/cmd/node/factory" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/common/errChan" @@ -41,6 +31,17 @@ import ( "github.com/multiversx/mx-chain-go/state" "github.com/multiversx/mx-chain-go/state/parsers" "github.com/multiversx/mx-chain-go/storage/storageunit" + + "github.com/multiversx/mx-chain-core-go/core" + "github.com/multiversx/mx-chain-core-go/core/check" + "github.com/multiversx/mx-chain-core-go/data" + "github.com/multiversx/mx-chain-core-go/data/block" + outportcore "github.com/multiversx/mx-chain-core-go/data/outport" + "github.com/multiversx/mx-chain-core-go/data/scheduled" + "github.com/multiversx/mx-chain-core-go/data/typeConverters" + "github.com/multiversx/mx-chain-core-go/display" + "github.com/multiversx/mx-chain-core-go/hashing" + "github.com/multiversx/mx-chain-core-go/marshal" logger "github.com/multiversx/mx-chain-logger-go" ) @@ -588,6 +589,12 @@ func checkProcessorParameters(arguments ArgBaseProcessor) error { if check.IfNil(arguments.RunTypeComponents.AccountsCreator()) { return state.ErrNilAccountFactory } + if check.IfNil(arguments.RunTypeComponents.DataCodecCreator()) { + return errors.ErrNilDataCodecCreator + } + if check.IfNil(arguments.RunTypeComponents.TopicsCheckerCreator()) { + return errors.ErrNilTopicsCheckerCreator + } return nil } diff --git a/process/block/baseProcess_test.go b/process/block/baseProcess_test.go index 981cd1f90ed..b7a933b8428 100644 --- a/process/block/baseProcess_test.go +++ b/process/block/baseProcess_test.go @@ -14,16 +14,6 @@ import ( "testing" "time" - "github.com/multiversx/mx-chain-core-go/core" - "github.com/multiversx/mx-chain-core-go/core/keyValStorage" - "github.com/multiversx/mx-chain-core-go/data" - "github.com/multiversx/mx-chain-core-go/data/block" - "github.com/multiversx/mx-chain-core-go/data/rewardTx" - "github.com/multiversx/mx-chain-core-go/data/scheduled" - "github.com/multiversx/mx-chain-core-go/data/transaction" - "github.com/multiversx/mx-chain-core-go/data/typeConverters/uint64ByteSlice" - "github.com/multiversx/mx-chain-core-go/hashing" - "github.com/multiversx/mx-chain-core-go/marshal" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/config" "github.com/multiversx/mx-chain-go/dataRetriever" @@ -52,9 +42,21 @@ import ( "github.com/multiversx/mx-chain-go/testscommon/marshallerMock" "github.com/multiversx/mx-chain-go/testscommon/outport" "github.com/multiversx/mx-chain-go/testscommon/shardingMocks" + "github.com/multiversx/mx-chain-go/testscommon/sovereign" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" statusHandlerMock "github.com/multiversx/mx-chain-go/testscommon/statusHandler" storageStubs "github.com/multiversx/mx-chain-go/testscommon/storage" + + "github.com/multiversx/mx-chain-core-go/core" + "github.com/multiversx/mx-chain-core-go/core/keyValStorage" + "github.com/multiversx/mx-chain-core-go/data" + "github.com/multiversx/mx-chain-core-go/data/block" + "github.com/multiversx/mx-chain-core-go/data/rewardTx" + "github.com/multiversx/mx-chain-core-go/data/scheduled" + "github.com/multiversx/mx-chain-core-go/data/transaction" + "github.com/multiversx/mx-chain-core-go/data/typeConverters/uint64ByteSlice" + "github.com/multiversx/mx-chain-core-go/hashing" + "github.com/multiversx/mx-chain-core-go/marshal" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -806,6 +808,22 @@ func TestCheckProcessorNilParameters(t *testing.T) { }, expectedErr: state.ErrNilAccountFactory, }, + { + args: func() blproc.ArgBaseProcessor { + args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) + args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodecFactory: nil} + return args + }, + expectedErr: errorsMx.ErrNilDataCodecCreator, + }, + { + args: func() blproc.ArgBaseProcessor { + args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) + args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodecFactory: &sovereign.DataCodecFactoryMock{}, TopicsCheckerFactory: nil} + return args + }, + expectedErr: errorsMx.ErrNilTopicsCheckerCreator, + }, } for _, test := range tests { diff --git a/process/block/interface.go b/process/block/interface.go index 415c3d0213c..17e27c34b99 100644 --- a/process/block/interface.go +++ b/process/block/interface.go @@ -1,12 +1,14 @@ package block import ( - "github.com/multiversx/mx-chain-core-go/data" - sovereignCore "github.com/multiversx/mx-chain-core-go/data/sovereign" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block/bootstrapStorage" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/state" + + "github.com/multiversx/mx-chain-core-go/data" + sovereignCore "github.com/multiversx/mx-chain-core-go/data/sovereign" ) type blockProcessor interface { @@ -67,5 +69,7 @@ type HeaderValidatorCreator interface { type runTypeComponentsHolder interface { AccountsCreator() state.AccountFactory + DataCodecCreator() sovereign.DataDecoderCreator + TopicsCheckerCreator() sovereign.TopicsCheckerCreator IsInterfaceNil() bool } diff --git a/process/block/metablock_test.go b/process/block/metablock_test.go index 13f3edb87e8..a87b61674b4 100644 --- a/process/block/metablock_test.go +++ b/process/block/metablock_test.go @@ -161,8 +161,6 @@ func createMockMetaArguments( ValidatorStatisticsProcessor: &mock2.ValidatorStatisticsProcessorStub{}, OutGoingOperationsPool: &sovereign.OutGoingOperationsPoolMock{}, RunTypeComponents: components.GetRunTypeComponents(), - DataCodec: &sovereign.DataCodecMock{}, - TopicsChecker: &sovereign.TopicsCheckerMock{}, }, SCToProtocol: &mock.SCToProtocolStub{}, PendingMiniBlocksHandler: &mock.PendingMiniBlocksHandlerStub{}, diff --git a/process/block/sovereign/interface.go b/process/block/sovereign/interface.go index 0d5cf1e1ab9..a27587f01b5 100644 --- a/process/block/sovereign/interface.go +++ b/process/block/sovereign/interface.go @@ -22,8 +22,20 @@ type DataDecoderHandler interface { IsInterfaceNil() bool } +// DataDecoderCreator is an interface for creating data decoder +type DataDecoderCreator interface { + CreateDataCodec() DataDecoderHandler + IsInterfaceNil() bool +} + // TopicsCheckerHandler should be able to check the topics validity type TopicsCheckerHandler interface { CheckValidity(topics [][]byte) error IsInterfaceNil() bool } + +// TopicsCheckerCreator is an interface for creating topics checker +type TopicsCheckerCreator interface { + CreateTopicsChecker() TopicsCheckerHandler + IsInterfaceNil() bool +} diff --git a/process/block/sovereignBlockProcessorFactory.go b/process/block/sovereignBlockProcessorFactory.go index 6d53cabe871..526b48c9829 100644 --- a/process/block/sovereignBlockProcessorFactory.go +++ b/process/block/sovereignBlockProcessorFactory.go @@ -41,8 +41,8 @@ func (s *sovereignBlockProcessorFactory) CreateBlockProcessor(argumentsBaseProce outgoingOpFormatter, err := sovereign.CreateOutgoingOperationsFormatter( argumentsBaseProcessor.Config.SovereignConfig.OutgoingSubscribedEvents.SubscribedEvents, argumentsBaseProcessor.CoreComponents.AddressPubKeyConverter(), - argumentsBaseProcessor.DataCodec, - argumentsBaseProcessor.TopicsChecker) + argumentsBaseProcessor.RunTypeComponents.DataCodecCreator().CreateDataCodec(), + argumentsBaseProcessor.RunTypeComponents.TopicsCheckerCreator().CreateTopicsChecker()) if err != nil { return nil, err } diff --git a/process/mock/runTypeComponentsStub.go b/process/mock/runTypeComponentsStub.go index 4527fef1268..9109c9c6f4b 100644 --- a/process/mock/runTypeComponentsStub.go +++ b/process/mock/runTypeComponentsStub.go @@ -1,19 +1,25 @@ package mock import ( + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/state" + sovereignMocks "github.com/multiversx/mx-chain-go/testscommon/sovereign" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" ) // RunTypeComponentsStub - type RunTypeComponentsStub struct { - AccountCreator state.AccountFactory + AccountCreator state.AccountFactory + DataCodecFactory sovereign.DataDecoderCreator + TopicsCheckerFactory sovereign.TopicsCheckerCreator } // NewRunTypeComponentsStub - func NewRunTypeComponentsStub() *RunTypeComponentsStub { return &RunTypeComponentsStub{ - AccountCreator: &stateMock.AccountsFactoryStub{}, + AccountCreator: &stateMock.AccountsFactoryStub{}, + DataCodecFactory: &sovereignMocks.DataCodecFactoryMock{}, + TopicsCheckerFactory: &sovereignMocks.TopicsCheckerFactoryMock{}, } } @@ -22,6 +28,16 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { return r.AccountCreator } +// DataCodecCreator - +func (r *RunTypeComponentsStub) DataCodecCreator() sovereign.DataDecoderCreator { + return r.DataCodecFactory +} + +// TopicsCheckerCreator - +func (r *RunTypeComponentsStub) TopicsCheckerCreator() sovereign.TopicsCheckerCreator { + return r.TopicsCheckerFactory +} + // IsInterfaceNil - func (r *RunTypeComponentsStub) IsInterfaceNil() bool { return r == nil diff --git a/testscommon/components/components.go b/testscommon/components/components.go index 8d80bbaa652..d22d7c3ea9b 100644 --- a/testscommon/components/components.go +++ b/testscommon/components/components.go @@ -601,8 +601,6 @@ func GetProcessArgs( TxPreProcessorCreator: preprocess.NewTxPreProcessorCreator(), ExtraHeaderSigVerifierHolder: &headerSigVerifier.ExtraHeaderSigVerifierHolderMock{}, OutGoingOperationsPool: &sovereign.OutGoingOperationsPoolMock{}, - DataCodec: &sovereign.DataCodecMock{}, - TopicsChecker: &sovereign.TopicsCheckerMock{}, RunTypeComponents: GetRunTypeComponents(), } } @@ -858,7 +856,7 @@ func GetRunTypeComponents() factory.RunTypeComponentsHolder { // GetSovereignRunTypeComponents - func GetSovereignRunTypeComponents() factory.RunTypeComponentsHolder { runTypeComponentsFactory, _ := runType.NewRunTypeComponentsFactory(GetCoreComponents()) - sovereignComponentsFactory, _ := runType.NewSovereignRunTypeComponentsFactory(runTypeComponentsFactory, getSovConfig()) + sovereignComponentsFactory, _ := runType.NewSovereignRunTypeComponentsFactory(runTypeComponentsFactory, createSovRunTypeArgs()) managedRunTypeComponents, err := runType.NewManagedRunTypeComponents(sovereignComponentsFactory) if err != nil { log.Error("getRunTypeComponents NewManagedRunTypeComponents", "error", err.Error()) @@ -872,11 +870,15 @@ func GetSovereignRunTypeComponents() factory.RunTypeComponentsHolder { return managedRunTypeComponents } -func getSovConfig() config.SovereignConfig { - return config.SovereignConfig{ - GenesisConfig: config.GenesisConfig{ - NativeESDT: "WEGLD-ab47da", +func createSovRunTypeArgs() runType.ArgsSovereignRunTypeComponents { + return runType.ArgsSovereignRunTypeComponents{ + Config: config.SovereignConfig{ + GenesisConfig: config.GenesisConfig{ + NativeESDT: "WEGLD-ab47da", + }, }, + DataCodec: &sovereign.DataCodecMock{}, + TopicsChecker: &sovereign.TopicsCheckerMock{}, } } diff --git a/testscommon/mainFactoryMocks/runTypeComponentStub.go b/testscommon/mainFactoryMocks/runTypeComponentStub.go index 1d5efcc84d4..ebc1fd1b3ab 100644 --- a/testscommon/mainFactoryMocks/runTypeComponentStub.go +++ b/testscommon/mainFactoryMocks/runTypeComponentStub.go @@ -8,6 +8,7 @@ import ( "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -17,6 +18,7 @@ import ( "github.com/multiversx/mx-chain-go/process/track" "github.com/multiversx/mx-chain-go/state" testFactory "github.com/multiversx/mx-chain-go/testscommon/factory" + sovereignMocks "github.com/multiversx/mx-chain-go/testscommon/sovereign" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" ) @@ -41,6 +43,8 @@ type RunTypeComponentsStub struct { VmContainerMetaFactory factoryVm.VmContainerCreator VmContainerShardFactory factoryVm.VmContainerCreator AccountCreator state.AccountFactory + DataCodecFactory sovereign.DataDecoderCreator + TopicsCheckerFactory sovereign.TopicsCheckerCreator } // NewRunTypeComponentsStub - @@ -65,6 +69,8 @@ func NewRunTypeComponentsStub() *RunTypeComponentsStub { VmContainerMetaFactory: &testFactory.VMContainerMetaFactoryMock{}, VmContainerShardFactory: &testFactory.VMContainerShardFactoryMock{}, AccountCreator: &stateMock.AccountsFactoryStub{}, + DataCodecFactory: &sovereignMocks.DataCodecFactoryMock{}, + TopicsCheckerFactory: &sovereignMocks.TopicsCheckerFactoryMock{}, } } @@ -183,6 +189,14 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { return r.AccountCreator } +func (r *RunTypeComponentsStub) DataCodecCreator() sovereign.DataDecoderCreator { + return r.DataCodecFactory +} + +func (r *RunTypeComponentsStub) TopicsCheckerCreator() sovereign.TopicsCheckerCreator { + return r.TopicsCheckerFactory +} + // IsInterfaceNil - func (r *RunTypeComponentsStub) IsInterfaceNil() bool { return r == nil diff --git a/testscommon/sovereign/dataCodecFactoryMock.go b/testscommon/sovereign/dataCodecFactoryMock.go new file mode 100644 index 00000000000..9e5a7032964 --- /dev/null +++ b/testscommon/sovereign/dataCodecFactoryMock.go @@ -0,0 +1,23 @@ +package sovereign + +import ( + "github.com/multiversx/mx-chain-go/process/block/sovereign" +) + +// DataCodecFactoryMock - +type DataCodecFactoryMock struct { + CreateDataCodecCalled func() sovereign.DataDecoderCreator +} + +// CreateDataCodec - +func (dc *DataCodecFactoryMock) CreateDataCodec() sovereign.DataDecoderHandler { + if dc.CreateDataCodecCalled != nil { + return dc.CreateDataCodec() + } + return &DataCodecMock{} +} + +// IsInterfaceNil - +func (dc *DataCodecFactoryMock) IsInterfaceNil() bool { + return dc == nil +} diff --git a/testscommon/sovereign/topicsCheckerFactoryMock.go b/testscommon/sovereign/topicsCheckerFactoryMock.go new file mode 100644 index 00000000000..475d25f0a5d --- /dev/null +++ b/testscommon/sovereign/topicsCheckerFactoryMock.go @@ -0,0 +1,23 @@ +package sovereign + +import ( + "github.com/multiversx/mx-chain-go/process/block/sovereign" +) + +// TopicsCheckerFactoryMock - +type TopicsCheckerFactoryMock struct { + CreateTopicsCheckerCalled func() sovereign.TopicsCheckerCreator +} + +// CreateTopicsChecker - +func (tc *TopicsCheckerFactoryMock) CreateTopicsChecker() sovereign.TopicsCheckerHandler { + if tc.CreateTopicsCheckerCalled != nil { + return tc.CreateTopicsChecker() + } + return &TopicsCheckerMock{} +} + +// IsInterfaceNil - +func (tc *TopicsCheckerFactoryMock) IsInterfaceNil() bool { + return tc == nil +} From acfef0d3b759d7dcb580074136f3b8b70dc9ab3b Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Mon, 25 Mar 2024 19:07:22 +0200 Subject: [PATCH 03/28] resolve cyclic imports --- process/block/baseProcess_test.go | 4 ++-- process/block/sovereign/outgoingOperations_test.go | 6 +++--- process/mock/runTypeComponentsStub.go | 6 +++--- .../{sovereign => genericMocks}/dataCodecFactoryMock.go | 5 +++-- .../{sovereign => genericMocks}/topicsCheckerFactoryMock.go | 5 +++-- testscommon/mainFactoryMocks/runTypeComponentStub.go | 6 +++--- 6 files changed, 17 insertions(+), 15 deletions(-) rename testscommon/{sovereign => genericMocks}/dataCodecFactoryMock.go (78%) rename testscommon/{sovereign => genericMocks}/topicsCheckerFactoryMock.go (79%) diff --git a/process/block/baseProcess_test.go b/process/block/baseProcess_test.go index b7a933b8428..d2c57ca1ce6 100644 --- a/process/block/baseProcess_test.go +++ b/process/block/baseProcess_test.go @@ -37,12 +37,12 @@ import ( "github.com/multiversx/mx-chain-go/testscommon/economicsmocks" "github.com/multiversx/mx-chain-go/testscommon/enableEpochsHandlerMock" "github.com/multiversx/mx-chain-go/testscommon/epochNotifier" + "github.com/multiversx/mx-chain-go/testscommon/genericMocks" "github.com/multiversx/mx-chain-go/testscommon/hashingMocks" "github.com/multiversx/mx-chain-go/testscommon/mainFactoryMocks" "github.com/multiversx/mx-chain-go/testscommon/marshallerMock" "github.com/multiversx/mx-chain-go/testscommon/outport" "github.com/multiversx/mx-chain-go/testscommon/shardingMocks" - "github.com/multiversx/mx-chain-go/testscommon/sovereign" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" statusHandlerMock "github.com/multiversx/mx-chain-go/testscommon/statusHandler" storageStubs "github.com/multiversx/mx-chain-go/testscommon/storage" @@ -819,7 +819,7 @@ func TestCheckProcessorNilParameters(t *testing.T) { { args: func() blproc.ArgBaseProcessor { args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) - args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodecFactory: &sovereign.DataCodecFactoryMock{}, TopicsCheckerFactory: nil} + args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodecFactory: &genericMocks.DataCodecFactoryMock{}, TopicsCheckerFactory: nil} return args }, expectedErr: errorsMx.ErrNilTopicsCheckerCreator, diff --git a/process/block/sovereign/outgoingOperations_test.go b/process/block/sovereign/outgoingOperations_test.go index 04b29e49f74..600e0ce561a 100644 --- a/process/block/sovereign/outgoingOperations_test.go +++ b/process/block/sovereign/outgoingOperations_test.go @@ -5,14 +5,14 @@ import ( "math/big" "testing" + "github.com/multiversx/mx-chain-go/errors" + sovTests "github.com/multiversx/mx-chain-go/testscommon/sovereign" + "github.com/multiversx/mx-chain-core-go/core" "github.com/multiversx/mx-chain-core-go/data" "github.com/multiversx/mx-chain-core-go/data/sovereign" transactionData "github.com/multiversx/mx-chain-core-go/data/transaction" "github.com/stretchr/testify/require" - - "github.com/multiversx/mx-chain-go/errors" - sovTests "github.com/multiversx/mx-chain-go/testscommon/sovereign" ) func createEvents() []SubscribedEvent { diff --git a/process/mock/runTypeComponentsStub.go b/process/mock/runTypeComponentsStub.go index 9109c9c6f4b..927293c1fd4 100644 --- a/process/mock/runTypeComponentsStub.go +++ b/process/mock/runTypeComponentsStub.go @@ -3,7 +3,7 @@ package mock import ( "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/state" - sovereignMocks "github.com/multiversx/mx-chain-go/testscommon/sovereign" + "github.com/multiversx/mx-chain-go/testscommon/genericMocks" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" ) @@ -18,8 +18,8 @@ type RunTypeComponentsStub struct { func NewRunTypeComponentsStub() *RunTypeComponentsStub { return &RunTypeComponentsStub{ AccountCreator: &stateMock.AccountsFactoryStub{}, - DataCodecFactory: &sovereignMocks.DataCodecFactoryMock{}, - TopicsCheckerFactory: &sovereignMocks.TopicsCheckerFactoryMock{}, + DataCodecFactory: &genericMocks.DataCodecFactoryMock{}, + TopicsCheckerFactory: &genericMocks.TopicsCheckerFactoryMock{}, } } diff --git a/testscommon/sovereign/dataCodecFactoryMock.go b/testscommon/genericMocks/dataCodecFactoryMock.go similarity index 78% rename from testscommon/sovereign/dataCodecFactoryMock.go rename to testscommon/genericMocks/dataCodecFactoryMock.go index 9e5a7032964..d007e291343 100644 --- a/testscommon/sovereign/dataCodecFactoryMock.go +++ b/testscommon/genericMocks/dataCodecFactoryMock.go @@ -1,7 +1,8 @@ -package sovereign +package genericMocks import ( "github.com/multiversx/mx-chain-go/process/block/sovereign" + sovereign2 "github.com/multiversx/mx-chain-go/testscommon/sovereign" ) // DataCodecFactoryMock - @@ -14,7 +15,7 @@ func (dc *DataCodecFactoryMock) CreateDataCodec() sovereign.DataDecoderHandler { if dc.CreateDataCodecCalled != nil { return dc.CreateDataCodec() } - return &DataCodecMock{} + return &sovereign2.DataCodecMock{} } // IsInterfaceNil - diff --git a/testscommon/sovereign/topicsCheckerFactoryMock.go b/testscommon/genericMocks/topicsCheckerFactoryMock.go similarity index 79% rename from testscommon/sovereign/topicsCheckerFactoryMock.go rename to testscommon/genericMocks/topicsCheckerFactoryMock.go index 475d25f0a5d..c1d2149b1c1 100644 --- a/testscommon/sovereign/topicsCheckerFactoryMock.go +++ b/testscommon/genericMocks/topicsCheckerFactoryMock.go @@ -1,7 +1,8 @@ -package sovereign +package genericMocks import ( "github.com/multiversx/mx-chain-go/process/block/sovereign" + sovereign2 "github.com/multiversx/mx-chain-go/testscommon/sovereign" ) // TopicsCheckerFactoryMock - @@ -14,7 +15,7 @@ func (tc *TopicsCheckerFactoryMock) CreateTopicsChecker() sovereign.TopicsChecke if tc.CreateTopicsCheckerCalled != nil { return tc.CreateTopicsChecker() } - return &TopicsCheckerMock{} + return &sovereign2.TopicsCheckerMock{} } // IsInterfaceNil - diff --git a/testscommon/mainFactoryMocks/runTypeComponentStub.go b/testscommon/mainFactoryMocks/runTypeComponentStub.go index ebc1fd1b3ab..33dff7fbcc7 100644 --- a/testscommon/mainFactoryMocks/runTypeComponentStub.go +++ b/testscommon/mainFactoryMocks/runTypeComponentStub.go @@ -18,7 +18,7 @@ import ( "github.com/multiversx/mx-chain-go/process/track" "github.com/multiversx/mx-chain-go/state" testFactory "github.com/multiversx/mx-chain-go/testscommon/factory" - sovereignMocks "github.com/multiversx/mx-chain-go/testscommon/sovereign" + "github.com/multiversx/mx-chain-go/testscommon/genericMocks" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" ) @@ -69,8 +69,8 @@ func NewRunTypeComponentsStub() *RunTypeComponentsStub { VmContainerMetaFactory: &testFactory.VMContainerMetaFactoryMock{}, VmContainerShardFactory: &testFactory.VMContainerShardFactoryMock{}, AccountCreator: &stateMock.AccountsFactoryStub{}, - DataCodecFactory: &sovereignMocks.DataCodecFactoryMock{}, - TopicsCheckerFactory: &sovereignMocks.TopicsCheckerFactoryMock{}, + DataCodecFactory: &genericMocks.DataCodecFactoryMock{}, + TopicsCheckerFactory: &genericMocks.TopicsCheckerFactoryMock{}, } } From 725f2caab00632bf501386526d62876f8b1da7fc Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Mon, 25 Mar 2024 19:24:13 +0200 Subject: [PATCH 04/28] fix tests --- integrationTests/testProcessorNode.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/integrationTests/testProcessorNode.go b/integrationTests/testProcessorNode.go index f158f1d0eba..b7df8ed4472 100644 --- a/integrationTests/testProcessorNode.go +++ b/integrationTests/testProcessorNode.go @@ -31,6 +31,10 @@ import ( ed25519SingleSig "github.com/multiversx/mx-chain-crypto-go/signing/ed25519/singlesig" "github.com/multiversx/mx-chain-crypto-go/signing/mcl" mclsig "github.com/multiversx/mx-chain-crypto-go/signing/mcl/singlesig" + vmcommon "github.com/multiversx/mx-chain-vm-common-go" + "github.com/multiversx/mx-chain-vm-common-go/parsers" + wasmConfig "github.com/multiversx/mx-chain-vm-go/config" + nodeFactory "github.com/multiversx/mx-chain-go/cmd/node/factory" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/common/enablers" @@ -129,9 +133,6 @@ import ( "github.com/multiversx/mx-chain-go/vm" vmProcess "github.com/multiversx/mx-chain-go/vm/process" "github.com/multiversx/mx-chain-go/vm/systemSmartContracts/defaults" - vmcommon "github.com/multiversx/mx-chain-vm-common-go" - "github.com/multiversx/mx-chain-vm-common-go/parsers" - wasmConfig "github.com/multiversx/mx-chain-vm-go/config" ) var zero = big.NewInt(0) @@ -3283,6 +3284,8 @@ func GetDefaultRunTypeComponents(consensusModel consensus.ConsensusModel) *mainF BootstrapperFactory: rt.BootstrapperCreator(), SCResultsPreProcessorFactory: rt.SCResultsPreProcessorCreator(), ConsensusModelType: consensusModel, + DataCodecFactory: rt.DataCodecCreator(), + TopicsCheckerFactory: rt.TopicsCheckerCreator(), } } From 1ab643514e6d53e11d0f99c30690e4742a4f9715 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 10:05:09 +0200 Subject: [PATCH 05/28] fix runtype components tests --- .../runType/runTypeComponentsHandler_test.go | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/factory/runType/runTypeComponentsHandler_test.go b/factory/runType/runTypeComponentsHandler_test.go index 1f85190280c..a8169dd70ff 100644 --- a/factory/runType/runTypeComponentsHandler_test.go +++ b/factory/runType/runTypeComponentsHandler_test.go @@ -3,8 +3,6 @@ package runType_test import ( "testing" - "github.com/multiversx/mx-chain-core-go/hashing" - "github.com/multiversx/mx-chain-core-go/marshal" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/errors" "github.com/multiversx/mx-chain-go/factory" @@ -13,6 +11,9 @@ import ( factoryMock "github.com/multiversx/mx-chain-go/testscommon/factory" "github.com/multiversx/mx-chain-go/testscommon/hashingMocks" "github.com/multiversx/mx-chain-go/testscommon/marshallerMock" + + "github.com/multiversx/mx-chain-core-go/hashing" + "github.com/multiversx/mx-chain-core-go/marshal" "github.com/stretchr/testify/require" ) @@ -47,6 +48,7 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.Nil(t, managedRunTypeComponents.BlockChainHookHandlerCreator()) require.Nil(t, managedRunTypeComponents.EpochStartBootstrapperCreator()) require.Nil(t, managedRunTypeComponents.BootstrapperFromStorageCreator()) + require.Nil(t, managedRunTypeComponents.BootstrapperCreator()) require.Nil(t, managedRunTypeComponents.BlockProcessorCreator()) require.Nil(t, managedRunTypeComponents.ForkDetectorCreator()) require.Nil(t, managedRunTypeComponents.BlockTrackerCreator()) @@ -55,12 +57,22 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.Nil(t, managedRunTypeComponents.ScheduledTxsExecutionCreator()) require.Nil(t, managedRunTypeComponents.TransactionCoordinatorCreator()) require.Nil(t, managedRunTypeComponents.ValidatorStatisticsProcessorCreator()) + require.Nil(t, managedRunTypeComponents.AdditionalStorageServiceCreator()) + require.Nil(t, managedRunTypeComponents.SCProcessorCreator()) + require.Nil(t, managedRunTypeComponents.SCResultsPreProcessorCreator()) + require.Nil(t, managedRunTypeComponents.ConsensusModel()) + require.Nil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) + require.Nil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) + require.Nil(t, managedRunTypeComponents.AccountsCreator()) + require.Nil(t, managedRunTypeComponents.DataCodecCreator()) + require.Nil(t, managedRunTypeComponents.TopicsCheckerCreator()) err = managedRunTypeComponents.Create() require.NoError(t, err) require.NotNil(t, managedRunTypeComponents.BlockChainHookHandlerCreator()) require.NotNil(t, managedRunTypeComponents.EpochStartBootstrapperCreator()) require.NotNil(t, managedRunTypeComponents.BootstrapperFromStorageCreator()) + require.NotNil(t, managedRunTypeComponents.BootstrapperCreator()) require.NotNil(t, managedRunTypeComponents.BlockProcessorCreator()) require.NotNil(t, managedRunTypeComponents.ForkDetectorCreator()) require.NotNil(t, managedRunTypeComponents.BlockTrackerCreator()) @@ -69,6 +81,15 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.NotNil(t, managedRunTypeComponents.ScheduledTxsExecutionCreator()) require.NotNil(t, managedRunTypeComponents.TransactionCoordinatorCreator()) require.NotNil(t, managedRunTypeComponents.ValidatorStatisticsProcessorCreator()) + require.NotNil(t, managedRunTypeComponents.AdditionalStorageServiceCreator()) + require.NotNil(t, managedRunTypeComponents.SCProcessorCreator()) + require.NotNil(t, managedRunTypeComponents.SCResultsPreProcessorCreator()) + require.NotNil(t, managedRunTypeComponents.ConsensusModel()) + require.NotNil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) + require.NotNil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) + require.NotNil(t, managedRunTypeComponents.AccountsCreator()) + require.NotNil(t, managedRunTypeComponents.DataCodecCreator()) + require.NotNil(t, managedRunTypeComponents.TopicsCheckerCreator()) require.Equal(t, factory.RunTypeComponentsName, managedRunTypeComponents.String()) require.NoError(t, managedRunTypeComponents.Close()) From d267d764d2206b22c9a96270a02d1a363cdf8c8f Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 11:00:38 +0200 Subject: [PATCH 06/28] new unit tests, runtype tests fixes --- errors/errors.go | 12 ++ factory/processing/processComponents.go | 49 ++++-- factory/processing/processComponents_test.go | 159 ++++++++++++++++-- factory/runType/runTypeComponents.go | 19 +-- factory/runType/runTypeComponentsHandler.go | 12 ++ factory/sovereign/dataCodecFactory.go | 4 +- factory/sovereign/dataCodecFactory_test.go | 25 +++ .../sovereignDataCodecFactory_test.go | 36 ++++ .../sovereignTopicsCheckerFactory_test.go | 36 ++++ factory/sovereign/topicCheckerFactory_test.go | 1 - factory/sovereign/topicsCheckerFactory.go | 4 +- .../sovereign/topicsCheckerFactory_test.go | 26 +++ .../genericMocks/dataCodecFactoryMock.go | 4 +- .../genericMocks/topicsCheckerFactoryMock.go | 4 +- 14 files changed, 342 insertions(+), 49 deletions(-) delete mode 100644 factory/sovereign/topicCheckerFactory_test.go create mode 100644 factory/sovereign/topicsCheckerFactory_test.go diff --git a/errors/errors.go b/errors/errors.go index ce252519aae..6edf5c2d295 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -793,3 +793,15 @@ var ErrNilDataCodecCreator = errors.New("nil data codec creator") // ErrNilTopicsCheckerCreator signals that a nil topics checker creator has been provided var ErrNilTopicsCheckerCreator = errors.New("nil topics checker creator") + +// ErrInvalidConsensusModel signals that an invalid consensus model has been provided +var ErrInvalidConsensusModel = errors.New("invalid consensus model") + +// ErrNilVmContainerMetaFactoryCreator signals that a nil vm container meta factory creator has been provided +var ErrNilVmContainerMetaFactoryCreator = errors.New("nil vm container meta factory creator") + +// ErrNilVmContainerShardFactoryCreator signals that a nil vm container shard factory creator has been provided +var ErrNilVmContainerShardFactoryCreator = errors.New("nil vm container shard factory creator") + +// ErrNilAccountsCreator signals that a nil accoutns creator has been provided +var ErrNilAccountsCreator = errors.New("nil accounts creator") diff --git a/factory/processing/processComponents.go b/factory/processing/processComponents.go index 69c47c852f1..48f8c49a8c2 100644 --- a/factory/processing/processComponents.go +++ b/factory/processing/processComponents.go @@ -2060,36 +2060,63 @@ func checkProcessComponentsArgs(args ProcessComponentsFactoryArgs) error { if check.IfNil(args.RunTypeComponents) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilRunTypeComponents) } + if check.IfNil(args.RunTypeComponents.BlockChainHookHandlerCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilBlockChainHookHandlerCreator) + } if check.IfNil(args.RunTypeComponents.BlockProcessorCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilBlockProcessorCreator) } + if check.IfNil(args.RunTypeComponents.BlockTrackerCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilBlockTrackerCreator) + } + if check.IfNil(args.RunTypeComponents.BootstrapperFromStorageCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilBootstrapperFromStorageCreator) + } + if check.IfNil(args.RunTypeComponents.BootstrapperCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilBootstrapperCreator) + } + if check.IfNil(args.RunTypeComponents.EpochStartBootstrapperCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilEpochStartBootstrapperCreator) + } + if check.IfNil(args.RunTypeComponents.ForkDetectorCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilForkDetectorCreator) + } + if check.IfNil(args.RunTypeComponents.HeaderValidatorCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilHeaderValidatorCreator) + } if check.IfNil(args.RunTypeComponents.RequestHandlerCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilRequestHandlerCreator) } if check.IfNil(args.RunTypeComponents.ScheduledTxsExecutionCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilScheduledTxsExecutionCreator) } - if check.IfNil(args.RunTypeComponents.BlockTrackerCreator()) { - return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilBlockTrackerCreator) - } if check.IfNil(args.RunTypeComponents.TransactionCoordinatorCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilTransactionCoordinatorCreator) } - if check.IfNil(args.RunTypeComponents.HeaderValidatorCreator()) { - return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilHeaderValidatorCreator) - } - if check.IfNil(args.RunTypeComponents.ForkDetectorCreator()) { - return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilForkDetectorCreator) - } if check.IfNil(args.RunTypeComponents.ValidatorStatisticsProcessorCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilValidatorStatisticsProcessorCreator) } - if check.IfNil(args.RunTypeComponents.SCProcessorCreator()) { - return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilSCProcessorCreator) + if check.IfNil(args.RunTypeComponents.AdditionalStorageServiceCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilAdditionalStorageServiceCreator) } if check.IfNil(args.RunTypeComponents.SCResultsPreProcessorCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilSCResultsPreProcessorCreator) } + if check.IfNil(args.RunTypeComponents.SCProcessorCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilSCProcessorCreator) + } + if args.RunTypeComponents.ConsensusModel() == consensus.ConsensusModelInvalid { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrInvalidConsensusModel) + } + if check.IfNil(args.RunTypeComponents.VmContainerMetaFactoryCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilVmContainerMetaFactoryCreator) + } + if check.IfNil(args.RunTypeComponents.VmContainerShardFactoryCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilVmContainerShardFactoryCreator) + } + if check.IfNil(args.RunTypeComponents.AccountsCreator()) { + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilAccountsCreator) + } if check.IfNil(args.RunTypeComponents.DataCodecCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilDataCodecCreator) } diff --git a/factory/processing/processComponents_test.go b/factory/processing/processComponents_test.go index 5239becb722..65a341790f5 100644 --- a/factory/processing/processComponents_test.go +++ b/factory/processing/processComponents_test.go @@ -9,22 +9,11 @@ import ( "sync" "testing" - "github.com/multiversx/mx-chain-core-go/core" - "github.com/multiversx/mx-chain-core-go/core/keyValStorage" - coreData "github.com/multiversx/mx-chain-core-go/data" - dataBlock "github.com/multiversx/mx-chain-core-go/data/block" - "github.com/multiversx/mx-chain-core-go/data/endProcess" - outportCore "github.com/multiversx/mx-chain-core-go/data/outport" - "github.com/multiversx/mx-chain-core-go/hashing/blake2b" - "github.com/multiversx/mx-chain-core-go/hashing/keccak" - "github.com/multiversx/mx-chain-core-go/marshal" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/common/factory" disabledStatistics "github.com/multiversx/mx-chain-go/common/statistics/disabled" "github.com/multiversx/mx-chain-go/config" + "github.com/multiversx/mx-chain-go/consensus" requesterscontainer "github.com/multiversx/mx-chain-go/dataRetriever/factory/requestersContainer" "github.com/multiversx/mx-chain-go/dataRetriever/factory/resolverscontainer" errorsMx "github.com/multiversx/mx-chain-go/errors" @@ -65,6 +54,18 @@ import ( testState "github.com/multiversx/mx-chain-go/testscommon/state" "github.com/multiversx/mx-chain-go/testscommon/statusHandler" updateMocks "github.com/multiversx/mx-chain-go/update/mock" + + "github.com/multiversx/mx-chain-core-go/core" + "github.com/multiversx/mx-chain-core-go/core/keyValStorage" + coreData "github.com/multiversx/mx-chain-core-go/data" + dataBlock "github.com/multiversx/mx-chain-core-go/data/block" + "github.com/multiversx/mx-chain-core-go/data/endProcess" + outportCore "github.com/multiversx/mx-chain-core-go/data/outport" + "github.com/multiversx/mx-chain-core-go/hashing/blake2b" + "github.com/multiversx/mx-chain-core-go/hashing/keccak" + "github.com/multiversx/mx-chain-core-go/marshal" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) const ( @@ -773,6 +774,138 @@ func TestNewProcessComponentsFactory(t *testing.T) { require.True(t, errors.Is(err, errorsMx.ErrNilSCProcessorCreator)) require.Nil(t, pcf) }) + t.Run("nil BlockChainHookHandlerCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.BlockChainHookHandlerFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilBlockChainHookHandlerCreator)) + require.Nil(t, pcf) + }) + t.Run("nil BootstrapperFromStorageCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.BootstrapperFromStorageFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilBootstrapperFromStorageCreator)) + require.Nil(t, pcf) + }) + t.Run("nil BootstrapperCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.BootstrapperFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilBootstrapperCreator)) + require.Nil(t, pcf) + }) + t.Run("nil EpochStartBootstrapperCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.EpochStartBootstrapperFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilEpochStartBootstrapperCreator)) + require.Nil(t, pcf) + }) + t.Run("nil AdditionalStorageServiceCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.AdditionalStorageServiceFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilAdditionalStorageServiceCreator)) + require.Nil(t, pcf) + }) + t.Run("nil SmartContractResultPreProcessorCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.SCResultsPreProcessorFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilSCResultsPreProcessorCreator)) + require.Nil(t, pcf) + }) + t.Run("invalid ConsensusModel should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.ConsensusModelType = consensus.ConsensusModelInvalid + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrInvalidConsensusModel)) + require.Nil(t, pcf) + }) + t.Run("nil VmContainerMetaCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.VmContainerMetaFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilVmContainerMetaFactoryCreator)) + require.Nil(t, pcf) + }) + t.Run("nil VmContainerShardCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.VmContainerShardFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilVmContainerShardFactoryCreator)) + require.Nil(t, pcf) + }) + t.Run("nil AccountCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.AccountCreator = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilAccountsCreator)) + require.Nil(t, pcf) + }) + t.Run("nil DataDecoderCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.DataCodecFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilDataCodecCreator)) + require.Nil(t, pcf) + }) + t.Run("nil TopicsCheckerCreator should error", func(t *testing.T) { + t.Parallel() + + args := createMockProcessComponentsFactoryArgs() + rtMock := getRunTypeComponentsMock() + rtMock.TopicsCheckerFactory = nil + args.RunTypeComponents = rtMock + pcf, err := processComp.NewProcessComponentsFactory(args) + require.True(t, errors.Is(err, errorsMx.ErrNilTopicsCheckerCreator)) + require.Nil(t, pcf) + }) t.Run("should work", func(t *testing.T) { t.Parallel() @@ -798,10 +931,12 @@ func getRunTypeComponentsMock() *mainFactoryMocks.RunTypeComponentsStub { ValidatorStatisticsProcessorFactory: rt.ValidatorStatisticsProcessorCreator(), AdditionalStorageServiceFactory: rt.AdditionalStorageServiceCreator(), SCProcessorFactory: rt.SCProcessorCreator(), + ConsensusModelType: rt.ConsensusModel(), BootstrapperFactory: rt.BootstrapperCreator(), SCResultsPreProcessorFactory: rt.SCResultsPreProcessorCreator(), VmContainerMetaFactory: rt.VmContainerMetaFactoryCreator(), VmContainerShardFactory: rt.VmContainerShardFactoryCreator(), + AccountCreator: rt.AccountsCreator(), DataCodecFactory: rt.DataCodecCreator(), TopicsCheckerFactory: rt.TopicsCheckerCreator(), } diff --git a/factory/runType/runTypeComponents.go b/factory/runType/runTypeComponents.go index 2652d070bd3..bc0e2a58b66 100644 --- a/factory/runType/runTypeComponents.go +++ b/factory/runType/runTypeComponents.go @@ -77,9 +77,6 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { } epochStartBootstrapperFactory := bootstrap.NewEpochStartBootstrapperFactory() - if err != nil { - return nil, fmt.Errorf("runTypeComponentsFactory - NewEpochStartBootstrapperFactory failed: %w", err) - } bootstrapperFromStorageFactory, err := storageBootstrap.NewShardStorageBootstrapperFactory() if err != nil { @@ -107,9 +104,6 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { } requestHandlerFactory := requestHandlers.NewResolverRequestHandlerFactory() - if err != nil { - return nil, fmt.Errorf("runTypeComponentsFactory - NewResolverRequestHandlerFactory failed: %w", err) - } headerValidatorFactory, err := block.NewShardHeaderValidatorFactory() if err != nil { @@ -142,9 +136,6 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { } scProcessorCreator := processProxy.NewSCProcessProxyFactory() - if err != nil { - return nil, fmt.Errorf("runTypeComponentsFactory - NewSCProcessProxyFactory failed: %w", err) - } vmContainerMetaCreator, err := factoryVm.NewVmContainerMetaFactory(blockChainHookHandlerFactory) if err != nil { @@ -165,15 +156,9 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { return nil, fmt.Errorf("runTypeComponentsFactory - NewAccountCreator failed: %w", err) } - dataCodecCreator, err := sovereignFactory.NewDataCodecFactory() - if err != nil { - return nil, fmt.Errorf("runTypeComponentsFactory - NewDataCodecFactory failed: %w", err) - } + dataCodecCreator := sovereignFactory.NewDataCodecFactory() - topicsCheckerCreator, err := sovereignFactory.NewTopicsCheckerFactory() - if err != nil { - return nil, fmt.Errorf("runTypeComponentsFactory - NewTopicsCheckerFactory failed: %w", err) - } + topicsCheckerCreator := sovereignFactory.NewTopicsCheckerFactory() return &runTypeComponents{ blockChainHookHandlerCreator: blockChainHookHandlerFactory, diff --git a/factory/runType/runTypeComponentsHandler.go b/factory/runType/runTypeComponentsHandler.go index 37fe10306b0..d14efcdee93 100644 --- a/factory/runType/runTypeComponentsHandler.go +++ b/factory/runType/runTypeComponentsHandler.go @@ -133,6 +133,18 @@ func (mrc *managedRunTypeComponents) CheckSubcomponents() error { if check.IfNil(mrc.scResultPreProcessorCreator) { return errors.ErrNilSCResultsPreProcessorCreator } + if mrc.consensusModel == consensus.ConsensusModelInvalid { + return errors.ErrInvalidConsensusModel + } + if check.IfNil(mrc.vmContainerMetaFactory) { + return errors.ErrNilVmContainerMetaFactoryCreator + } + if check.IfNil(mrc.vmContainerShardFactory) { + return errors.ErrNilVmContainerShardFactoryCreator + } + if check.IfNil(mrc.accountsCreator) { + return errors.ErrNilAccountsCreator + } if check.IfNil(mrc.dataCodecCreator) { return errors.ErrNilDataCodecCreator } diff --git a/factory/sovereign/dataCodecFactory.go b/factory/sovereign/dataCodecFactory.go index 7959210538e..458c1b5d9e3 100644 --- a/factory/sovereign/dataCodecFactory.go +++ b/factory/sovereign/dataCodecFactory.go @@ -9,8 +9,8 @@ type dataCodecFactory struct { } // NewDataCodecFactory creates a new data codec factory -func NewDataCodecFactory() (*dataCodecFactory, error) { - return &dataCodecFactory{}, nil +func NewDataCodecFactory() *dataCodecFactory { + return &dataCodecFactory{} } // CreateDataCodec creates a new data codec for the chain run type normal diff --git a/factory/sovereign/dataCodecFactory_test.go b/factory/sovereign/dataCodecFactory_test.go index d03b345aeeb..bbb7ef797c0 100644 --- a/factory/sovereign/dataCodecFactory_test.go +++ b/factory/sovereign/dataCodecFactory_test.go @@ -1 +1,26 @@ package sovereign_test + +import ( + "fmt" + "testing" + + "github.com/multiversx/mx-chain-go/factory/sovereign" + + "github.com/stretchr/testify/require" +) + +func TestNewDataCodecFactory(t *testing.T) { + t.Parallel() + + dataCodecFactory := sovereign.NewDataCodecFactory() + require.False(t, dataCodecFactory.IsInterfaceNil()) +} + +func TestDataCodecFactory_CreateDataCodec(t *testing.T) { + t.Parallel() + + dataCodecFactory := sovereign.NewDataCodecFactory() + dataCodec := dataCodecFactory.CreateDataCodec() + require.NotNil(t, dataCodec) + require.Equal(t, "*disabled.dataCodec", fmt.Sprintf("%T", dataCodec)) +} diff --git a/factory/sovereign/sovereignDataCodecFactory_test.go b/factory/sovereign/sovereignDataCodecFactory_test.go index d03b345aeeb..121966fa885 100644 --- a/factory/sovereign/sovereignDataCodecFactory_test.go +++ b/factory/sovereign/sovereignDataCodecFactory_test.go @@ -1 +1,37 @@ package sovereign_test + +import ( + "fmt" + "testing" + + "github.com/multiversx/mx-chain-go/errors" + "github.com/multiversx/mx-chain-go/factory/sovereign" + sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" + + "github.com/stretchr/testify/require" +) + +func TestNewSovereignDataCodecFactory(t *testing.T) { + t.Parallel() + + t.Run("nil data codec should fail", func(t *testing.T) { + sovereignDataCodecFactory, err := sovereign.NewSovereignDataCodecFactory(nil) + require.Equal(t, errors.ErrNilDataCodec, err) + require.True(t, sovereignDataCodecFactory.IsInterfaceNil()) + }) + + t.Run("should work", func(t *testing.T) { + sovereignDataCodecFactory, err := sovereign.NewSovereignDataCodecFactory(&sovereignMock.DataCodecMock{}) + require.Nil(t, err) + require.False(t, sovereignDataCodecFactory.IsInterfaceNil()) + }) +} + +func TestSovereignDataCodecFactory_CreateDataCodec(t *testing.T) { + t.Parallel() + + sovereignDataCodecFactory, _ := sovereign.NewSovereignDataCodecFactory(&sovereignMock.DataCodecMock{}) + sovereignDataCodec := sovereignDataCodecFactory.CreateDataCodec() + require.NotNil(t, sovereignDataCodec) + require.Equal(t, "*sovereign.DataCodecMock", fmt.Sprintf("%T", sovereignDataCodec)) +} diff --git a/factory/sovereign/sovereignTopicsCheckerFactory_test.go b/factory/sovereign/sovereignTopicsCheckerFactory_test.go index d03b345aeeb..aa21381eabf 100644 --- a/factory/sovereign/sovereignTopicsCheckerFactory_test.go +++ b/factory/sovereign/sovereignTopicsCheckerFactory_test.go @@ -1 +1,37 @@ package sovereign_test + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/multiversx/mx-chain-go/errors" + "github.com/multiversx/mx-chain-go/factory/sovereign" + sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" +) + +func TestNewSovereignTopicsCheckerFactory(t *testing.T) { + t.Parallel() + + t.Run("nil topics checker should fail", func(t *testing.T) { + sovereignTopicsCheckerFactory, err := sovereign.NewSovereignTopicsCheckerFactory(nil) + require.Equal(t, errors.ErrNilTopicsChecker, err) + require.True(t, sovereignTopicsCheckerFactory.IsInterfaceNil()) + }) + + t.Run("should work", func(t *testing.T) { + sovereignTopicsCheckerFactory, err := sovereign.NewSovereignTopicsCheckerFactory(&sovereignMock.TopicsCheckerMock{}) + require.Nil(t, err) + require.False(t, sovereignTopicsCheckerFactory.IsInterfaceNil()) + }) +} + +func TestSovereignTopicsCheckerFactory_CreateTopicsChecker(t *testing.T) { + t.Parallel() + + sovereignTopicsCheckerFactory, _ := sovereign.NewSovereignTopicsCheckerFactory(&sovereignMock.TopicsCheckerMock{}) + sovereignTopicsChecker := sovereignTopicsCheckerFactory.CreateTopicsChecker() + require.NotNil(t, sovereignTopicsChecker) + require.Equal(t, "*sovereign.TopicsCheckerMock", fmt.Sprintf("%T", sovereignTopicsChecker)) +} diff --git a/factory/sovereign/topicCheckerFactory_test.go b/factory/sovereign/topicCheckerFactory_test.go deleted file mode 100644 index d03b345aeeb..00000000000 --- a/factory/sovereign/topicCheckerFactory_test.go +++ /dev/null @@ -1 +0,0 @@ -package sovereign_test diff --git a/factory/sovereign/topicsCheckerFactory.go b/factory/sovereign/topicsCheckerFactory.go index 7a5a9052340..64bfe9bfce7 100644 --- a/factory/sovereign/topicsCheckerFactory.go +++ b/factory/sovereign/topicsCheckerFactory.go @@ -9,8 +9,8 @@ type topicsCheckerFactory struct { } // NewTopicsCheckerFactory creates a new topics checker factory -func NewTopicsCheckerFactory() (*topicsCheckerFactory, error) { - return &topicsCheckerFactory{}, nil +func NewTopicsCheckerFactory() *topicsCheckerFactory { + return &topicsCheckerFactory{} } // CreateTopicsChecker creates a new topics checker for the chain run type normal diff --git a/factory/sovereign/topicsCheckerFactory_test.go b/factory/sovereign/topicsCheckerFactory_test.go new file mode 100644 index 00000000000..10426b84343 --- /dev/null +++ b/factory/sovereign/topicsCheckerFactory_test.go @@ -0,0 +1,26 @@ +package sovereign_test + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/multiversx/mx-chain-go/factory/sovereign" +) + +func TestNewTopicsCheckerFactory(t *testing.T) { + t.Parallel() + + topicsCheckerFactory := sovereign.NewTopicsCheckerFactory() + require.False(t, topicsCheckerFactory.IsInterfaceNil()) +} + +func TestTopicsCheckerFactory_CreateTopicsChecker(t *testing.T) { + t.Parallel() + + topicsCheckerFactory := sovereign.NewTopicsCheckerFactory() + topicsChecker := topicsCheckerFactory.CreateTopicsChecker() + require.NotNil(t, topicsChecker) + require.Equal(t, "*disabled.topicsChecker", fmt.Sprintf("%T", topicsChecker)) +} diff --git a/testscommon/genericMocks/dataCodecFactoryMock.go b/testscommon/genericMocks/dataCodecFactoryMock.go index d007e291343..0d618313a03 100644 --- a/testscommon/genericMocks/dataCodecFactoryMock.go +++ b/testscommon/genericMocks/dataCodecFactoryMock.go @@ -2,7 +2,7 @@ package genericMocks import ( "github.com/multiversx/mx-chain-go/process/block/sovereign" - sovereign2 "github.com/multiversx/mx-chain-go/testscommon/sovereign" + sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" ) // DataCodecFactoryMock - @@ -15,7 +15,7 @@ func (dc *DataCodecFactoryMock) CreateDataCodec() sovereign.DataDecoderHandler { if dc.CreateDataCodecCalled != nil { return dc.CreateDataCodec() } - return &sovereign2.DataCodecMock{} + return &sovereignMock.DataCodecMock{} } // IsInterfaceNil - diff --git a/testscommon/genericMocks/topicsCheckerFactoryMock.go b/testscommon/genericMocks/topicsCheckerFactoryMock.go index c1d2149b1c1..2a7b27f8754 100644 --- a/testscommon/genericMocks/topicsCheckerFactoryMock.go +++ b/testscommon/genericMocks/topicsCheckerFactoryMock.go @@ -2,7 +2,7 @@ package genericMocks import ( "github.com/multiversx/mx-chain-go/process/block/sovereign" - sovereign2 "github.com/multiversx/mx-chain-go/testscommon/sovereign" + sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" ) // TopicsCheckerFactoryMock - @@ -15,7 +15,7 @@ func (tc *TopicsCheckerFactoryMock) CreateTopicsChecker() sovereign.TopicsChecke if tc.CreateTopicsCheckerCalled != nil { return tc.CreateTopicsChecker() } - return &sovereign2.TopicsCheckerMock{} + return &sovereignMock.TopicsCheckerMock{} } // IsInterfaceNil - From 2a280377293f4fed54fd8a4bc863526fd723272d Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 11:29:13 +0200 Subject: [PATCH 07/28] fix unit tests --- factory/runType/runTypeComponentsHandler_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/factory/runType/runTypeComponentsHandler_test.go b/factory/runType/runTypeComponentsHandler_test.go index a8169dd70ff..1e638ac92e2 100644 --- a/factory/runType/runTypeComponentsHandler_test.go +++ b/factory/runType/runTypeComponentsHandler_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/multiversx/mx-chain-go/common" + "github.com/multiversx/mx-chain-go/consensus" "github.com/multiversx/mx-chain-go/errors" "github.com/multiversx/mx-chain-go/factory" "github.com/multiversx/mx-chain-go/factory/runType" @@ -60,7 +61,7 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.Nil(t, managedRunTypeComponents.AdditionalStorageServiceCreator()) require.Nil(t, managedRunTypeComponents.SCProcessorCreator()) require.Nil(t, managedRunTypeComponents.SCResultsPreProcessorCreator()) - require.Nil(t, managedRunTypeComponents.ConsensusModel()) + require.Equal(t, consensus.ConsensusModelInvalid, managedRunTypeComponents.ConsensusModel()) require.Nil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) require.Nil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) require.Nil(t, managedRunTypeComponents.AccountsCreator()) From bc66e6d72c1c195890c6e1b4acf7a4840e780bd0 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 11:31:20 +0200 Subject: [PATCH 08/28] fix unit tests --- factory/runType/runTypeComponentsHandler_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/factory/runType/runTypeComponentsHandler_test.go b/factory/runType/runTypeComponentsHandler_test.go index 1e638ac92e2..6a09b97915e 100644 --- a/factory/runType/runTypeComponentsHandler_test.go +++ b/factory/runType/runTypeComponentsHandler_test.go @@ -85,7 +85,7 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.NotNil(t, managedRunTypeComponents.AdditionalStorageServiceCreator()) require.NotNil(t, managedRunTypeComponents.SCProcessorCreator()) require.NotNil(t, managedRunTypeComponents.SCResultsPreProcessorCreator()) - require.NotNil(t, managedRunTypeComponents.ConsensusModel()) + require.NotEqual(t, consensus.ConsensusModelInvalid, managedRunTypeComponents.ConsensusModel()) require.NotNil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) require.NotNil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) require.NotNil(t, managedRunTypeComponents.AccountsCreator()) From a710cd78438060c392c24e559206c10b3002f8e5 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 12:08:15 +0200 Subject: [PATCH 09/28] import fixes --- factory/sovereign/sovereignTopicsCheckerFactory_test.go | 4 ++-- factory/sovereign/topicsCheckerFactory_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/factory/sovereign/sovereignTopicsCheckerFactory_test.go b/factory/sovereign/sovereignTopicsCheckerFactory_test.go index aa21381eabf..124b6638bd5 100644 --- a/factory/sovereign/sovereignTopicsCheckerFactory_test.go +++ b/factory/sovereign/sovereignTopicsCheckerFactory_test.go @@ -4,11 +4,11 @@ import ( "fmt" "testing" - "github.com/stretchr/testify/require" - "github.com/multiversx/mx-chain-go/errors" "github.com/multiversx/mx-chain-go/factory/sovereign" sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" + + "github.com/stretchr/testify/require" ) func TestNewSovereignTopicsCheckerFactory(t *testing.T) { diff --git a/factory/sovereign/topicsCheckerFactory_test.go b/factory/sovereign/topicsCheckerFactory_test.go index 10426b84343..aad1702f6ae 100644 --- a/factory/sovereign/topicsCheckerFactory_test.go +++ b/factory/sovereign/topicsCheckerFactory_test.go @@ -4,9 +4,9 @@ import ( "fmt" "testing" - "github.com/stretchr/testify/require" - "github.com/multiversx/mx-chain-go/factory/sovereign" + + "github.com/stretchr/testify/require" ) func TestNewTopicsCheckerFactory(t *testing.T) { From 7651b2919ac9c50a1567354e1ead3139618a5c78 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 12:20:18 +0200 Subject: [PATCH 10/28] moved interfaces --- factory/runType/runTypeComponents.go | 5 ++--- factory/sovereign/interface.go | 17 +++++++++++++++++ process/block/sovereign/interface.go | 12 ------------ 3 files changed, 19 insertions(+), 15 deletions(-) create mode 100644 factory/sovereign/interface.go diff --git a/factory/runType/runTypeComponents.go b/factory/runType/runTypeComponents.go index bc0e2a58b66..4427e18c9cd 100644 --- a/factory/runType/runTypeComponents.go +++ b/factory/runType/runTypeComponents.go @@ -13,7 +13,6 @@ import ( "github.com/multiversx/mx-chain-go/process/block" processBlock "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" - "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -54,8 +53,8 @@ type runTypeComponents struct { vmContainerMetaFactory factoryVm.VmContainerCreator vmContainerShardFactory factoryVm.VmContainerCreator accountsCreator state.AccountFactory - dataCodecCreator sovereign.DataDecoderCreator - topicsCheckerCreator sovereign.TopicsCheckerCreator + dataCodecCreator sovereignFactory.DataDecoderCreator + topicsCheckerCreator sovereignFactory.TopicsCheckerCreator } // NewRunTypeComponentsFactory will return a new instance of runTypeComponentsFactory diff --git a/factory/sovereign/interface.go b/factory/sovereign/interface.go new file mode 100644 index 00000000000..b81ab306dc8 --- /dev/null +++ b/factory/sovereign/interface.go @@ -0,0 +1,17 @@ +package sovereign + +import ( + "github.com/multiversx/mx-chain-go/process/block/sovereign" +) + +// DataDecoderCreator is an interface for creating data decoder +type DataDecoderCreator interface { + CreateDataCodec() sovereign.DataDecoderHandler + IsInterfaceNil() bool +} + +// TopicsCheckerCreator is an interface for creating topics checker +type TopicsCheckerCreator interface { + CreateTopicsChecker() sovereign.TopicsCheckerHandler + IsInterfaceNil() bool +} diff --git a/process/block/sovereign/interface.go b/process/block/sovereign/interface.go index a27587f01b5..0d5cf1e1ab9 100644 --- a/process/block/sovereign/interface.go +++ b/process/block/sovereign/interface.go @@ -22,20 +22,8 @@ type DataDecoderHandler interface { IsInterfaceNil() bool } -// DataDecoderCreator is an interface for creating data decoder -type DataDecoderCreator interface { - CreateDataCodec() DataDecoderHandler - IsInterfaceNil() bool -} - // TopicsCheckerHandler should be able to check the topics validity type TopicsCheckerHandler interface { CheckValidity(topics [][]byte) error IsInterfaceNil() bool } - -// TopicsCheckerCreator is an interface for creating topics checker -type TopicsCheckerCreator interface { - CreateTopicsChecker() TopicsCheckerHandler - IsInterfaceNil() bool -} From 21aad66a0749a9acbd2802874052f0048ca10bf9 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 12:26:05 +0200 Subject: [PATCH 11/28] fixed imports --- factory/interface.go | 6 +++--- factory/runType/runTypeComponents.go | 10 +++++----- factory/runType/runTypeComponentsHandler.go | 6 +++--- process/block/interface.go | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/factory/interface.go b/factory/interface.go index 3611b1bcda3..ce477a7eeb9 100644 --- a/factory/interface.go +++ b/factory/interface.go @@ -15,6 +15,7 @@ import ( "github.com/multiversx/mx-chain-go/dblookupext" "github.com/multiversx/mx-chain-go/epochStart" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" + factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/genesis" heartbeatData "github.com/multiversx/mx-chain-go/heartbeat/data" @@ -25,7 +26,6 @@ import ( "github.com/multiversx/mx-chain-go/process" processBlock "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" - "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -593,8 +593,8 @@ type RunTypeComponentsHolder interface { VmContainerMetaFactoryCreator() factoryVm.VmContainerCreator VmContainerShardFactoryCreator() factoryVm.VmContainerCreator AccountsCreator() state.AccountFactory - DataCodecCreator() sovereign.DataDecoderCreator - TopicsCheckerCreator() sovereign.TopicsCheckerCreator + DataCodecCreator() factorySovereign.DataDecoderCreator + TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator Create() error Close() error CheckSubcomponents() error diff --git a/factory/runType/runTypeComponents.go b/factory/runType/runTypeComponents.go index 4427e18c9cd..aeffa36b6cd 100644 --- a/factory/runType/runTypeComponents.go +++ b/factory/runType/runTypeComponents.go @@ -7,7 +7,7 @@ import ( "github.com/multiversx/mx-chain-go/dataRetriever/requestHandlers" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" "github.com/multiversx/mx-chain-go/errors" - sovereignFactory "github.com/multiversx/mx-chain-go/factory/sovereign" + factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block" @@ -53,8 +53,8 @@ type runTypeComponents struct { vmContainerMetaFactory factoryVm.VmContainerCreator vmContainerShardFactory factoryVm.VmContainerCreator accountsCreator state.AccountFactory - dataCodecCreator sovereignFactory.DataDecoderCreator - topicsCheckerCreator sovereignFactory.TopicsCheckerCreator + dataCodecCreator factorySovereign.DataDecoderCreator + topicsCheckerCreator factorySovereign.TopicsCheckerCreator } // NewRunTypeComponentsFactory will return a new instance of runTypeComponentsFactory @@ -155,9 +155,9 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { return nil, fmt.Errorf("runTypeComponentsFactory - NewAccountCreator failed: %w", err) } - dataCodecCreator := sovereignFactory.NewDataCodecFactory() + dataCodecCreator := factorySovereign.NewDataCodecFactory() - topicsCheckerCreator := sovereignFactory.NewTopicsCheckerFactory() + topicsCheckerCreator := factorySovereign.NewTopicsCheckerFactory() return &runTypeComponents{ blockChainHookHandlerCreator: blockChainHookHandlerFactory, diff --git a/factory/runType/runTypeComponentsHandler.go b/factory/runType/runTypeComponentsHandler.go index d14efcdee93..79e4ba77ba9 100644 --- a/factory/runType/runTypeComponentsHandler.go +++ b/factory/runType/runTypeComponentsHandler.go @@ -9,11 +9,11 @@ import ( "github.com/multiversx/mx-chain-go/epochStart/bootstrap" "github.com/multiversx/mx-chain-go/errors" "github.com/multiversx/mx-chain-go/factory" + factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process" processBlock "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" - "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -383,7 +383,7 @@ func (mrc *managedRunTypeComponents) AccountsCreator() state.AccountFactory { } // DataCodecCreator returns the data codec factory -func (mrc *managedRunTypeComponents) DataCodecCreator() sovereign.DataDecoderCreator { +func (mrc *managedRunTypeComponents) DataCodecCreator() factorySovereign.DataDecoderCreator { mrc.mutStateComponents.RLock() defer mrc.mutStateComponents.RUnlock() @@ -395,7 +395,7 @@ func (mrc *managedRunTypeComponents) DataCodecCreator() sovereign.DataDecoderCre } // TopicsCheckerCreator returns the topics checker factory -func (mrc *managedRunTypeComponents) TopicsCheckerCreator() sovereign.TopicsCheckerCreator { +func (mrc *managedRunTypeComponents) TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator { mrc.mutStateComponents.RLock() defer mrc.mutStateComponents.RUnlock() diff --git a/process/block/interface.go b/process/block/interface.go index 17e27c34b99..99f4faec528 100644 --- a/process/block/interface.go +++ b/process/block/interface.go @@ -2,9 +2,9 @@ package block import ( "github.com/multiversx/mx-chain-go/common" + factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block/bootstrapStorage" - "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/state" "github.com/multiversx/mx-chain-core-go/data" @@ -69,7 +69,7 @@ type HeaderValidatorCreator interface { type runTypeComponentsHolder interface { AccountsCreator() state.AccountFactory - DataCodecCreator() sovereign.DataDecoderCreator - TopicsCheckerCreator() sovereign.TopicsCheckerCreator + DataCodecCreator() factorySovereign.DataDecoderCreator + TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator IsInterfaceNil() bool } From 9f397cd693cd538959dc23c920429e0ee197091c Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 12:31:46 +0200 Subject: [PATCH 12/28] fixed imports --- process/mock/runTypeComponentsStub.go | 10 +++++----- testscommon/genericMocks/dataCodecFactoryMock.go | 3 ++- testscommon/genericMocks/topicsCheckerFactoryMock.go | 3 ++- testscommon/mainFactoryMocks/runTypeComponentStub.go | 10 +++++----- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/process/mock/runTypeComponentsStub.go b/process/mock/runTypeComponentsStub.go index 927293c1fd4..880e926d0ac 100644 --- a/process/mock/runTypeComponentsStub.go +++ b/process/mock/runTypeComponentsStub.go @@ -1,7 +1,7 @@ package mock import ( - "github.com/multiversx/mx-chain-go/process/block/sovereign" + factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" "github.com/multiversx/mx-chain-go/state" "github.com/multiversx/mx-chain-go/testscommon/genericMocks" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" @@ -10,8 +10,8 @@ import ( // RunTypeComponentsStub - type RunTypeComponentsStub struct { AccountCreator state.AccountFactory - DataCodecFactory sovereign.DataDecoderCreator - TopicsCheckerFactory sovereign.TopicsCheckerCreator + DataCodecFactory factorySovereign.DataDecoderCreator + TopicsCheckerFactory factorySovereign.TopicsCheckerCreator } // NewRunTypeComponentsStub - @@ -29,12 +29,12 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { } // DataCodecCreator - -func (r *RunTypeComponentsStub) DataCodecCreator() sovereign.DataDecoderCreator { +func (r *RunTypeComponentsStub) DataCodecCreator() factorySovereign.DataDecoderCreator { return r.DataCodecFactory } // TopicsCheckerCreator - -func (r *RunTypeComponentsStub) TopicsCheckerCreator() sovereign.TopicsCheckerCreator { +func (r *RunTypeComponentsStub) TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator { return r.TopicsCheckerFactory } diff --git a/testscommon/genericMocks/dataCodecFactoryMock.go b/testscommon/genericMocks/dataCodecFactoryMock.go index 0d618313a03..2f194e16e12 100644 --- a/testscommon/genericMocks/dataCodecFactoryMock.go +++ b/testscommon/genericMocks/dataCodecFactoryMock.go @@ -1,13 +1,14 @@ package genericMocks import ( + factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" "github.com/multiversx/mx-chain-go/process/block/sovereign" sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" ) // DataCodecFactoryMock - type DataCodecFactoryMock struct { - CreateDataCodecCalled func() sovereign.DataDecoderCreator + CreateDataCodecCalled func() factorySovereign.DataDecoderCreator } // CreateDataCodec - diff --git a/testscommon/genericMocks/topicsCheckerFactoryMock.go b/testscommon/genericMocks/topicsCheckerFactoryMock.go index 2a7b27f8754..cbddc0d171d 100644 --- a/testscommon/genericMocks/topicsCheckerFactoryMock.go +++ b/testscommon/genericMocks/topicsCheckerFactoryMock.go @@ -1,13 +1,14 @@ package genericMocks import ( + factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" "github.com/multiversx/mx-chain-go/process/block/sovereign" sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" ) // TopicsCheckerFactoryMock - type TopicsCheckerFactoryMock struct { - CreateTopicsCheckerCalled func() sovereign.TopicsCheckerCreator + CreateTopicsCheckerCalled func() factorySovereign.TopicsCheckerCreator } // CreateTopicsChecker - diff --git a/testscommon/mainFactoryMocks/runTypeComponentStub.go b/testscommon/mainFactoryMocks/runTypeComponentStub.go index 33dff7fbcc7..48b45531ded 100644 --- a/testscommon/mainFactoryMocks/runTypeComponentStub.go +++ b/testscommon/mainFactoryMocks/runTypeComponentStub.go @@ -4,11 +4,11 @@ import ( "github.com/multiversx/mx-chain-go/consensus" "github.com/multiversx/mx-chain-go/dataRetriever/requestHandlers" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" + factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" - "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -43,8 +43,8 @@ type RunTypeComponentsStub struct { VmContainerMetaFactory factoryVm.VmContainerCreator VmContainerShardFactory factoryVm.VmContainerCreator AccountCreator state.AccountFactory - DataCodecFactory sovereign.DataDecoderCreator - TopicsCheckerFactory sovereign.TopicsCheckerCreator + DataCodecFactory factorySovereign.DataDecoderCreator + TopicsCheckerFactory factorySovereign.TopicsCheckerCreator } // NewRunTypeComponentsStub - @@ -189,11 +189,11 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { return r.AccountCreator } -func (r *RunTypeComponentsStub) DataCodecCreator() sovereign.DataDecoderCreator { +func (r *RunTypeComponentsStub) DataCodecCreator() factorySovereign.DataDecoderCreator { return r.DataCodecFactory } -func (r *RunTypeComponentsStub) TopicsCheckerCreator() sovereign.TopicsCheckerCreator { +func (r *RunTypeComponentsStub) TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator { return r.TopicsCheckerFactory } From 99b4166557648de13213a0235608082590fbe96d Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 15:20:37 +0200 Subject: [PATCH 13/28] fix imports --- factory/runType/sovereignRunTypeComponents.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/factory/runType/sovereignRunTypeComponents.go b/factory/runType/sovereignRunTypeComponents.go index e3726ef6e38..74f99a1eeb3 100644 --- a/factory/runType/sovereignRunTypeComponents.go +++ b/factory/runType/sovereignRunTypeComponents.go @@ -8,7 +8,7 @@ import ( "github.com/multiversx/mx-chain-go/dataRetriever/requestHandlers" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" "github.com/multiversx/mx-chain-go/errors" - sovereignFactory "github.com/multiversx/mx-chain-go/factory/sovereign" + factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" @@ -152,12 +152,12 @@ func (rcf *sovereignRunTypeComponentsFactory) Create() (*runTypeComponents, erro return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignAccountCreator failed: %w", err) } - dataCodecCreator, err := sovereignFactory.NewSovereignDataCodecFactory(rcf.dataCodec) + dataCodecCreator, err := factorySovereign.NewSovereignDataCodecFactory(rcf.dataCodec) if err != nil { return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignDataCodecFactory failed: %w", err) } - topicsCheckerCreator, err := sovereignFactory.NewSovereignTopicsCheckerFactory(rcf.topicsChecker) + topicsCheckerCreator, err := factorySovereign.NewSovereignTopicsCheckerFactory(rcf.topicsChecker) if err != nil { return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignTopicsCheckerFactory failed: %w", err) } From 6bb322edfe56b335722e824d4507f714a303a178 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 17:36:42 +0200 Subject: [PATCH 14/28] deleted factories, using only component --- cmd/sovereignnode/sovereignNodeRunner.go | 4 +- factory/interface.go | 6 +-- factory/processing/processComponents.go | 4 +- factory/processing/processComponents_test.go | 10 ++--- factory/runType/runTypeComponents.go | 15 ++++---- factory/runType/runTypeComponentsHandler.go | 18 ++++----- .../runType/runTypeComponentsHandler_test.go | 8 ++-- factory/runType/sovereignRunTypeComponents.go | 15 ++------ factory/sovereign/dataCodecFactory.go | 24 ------------ factory/sovereign/dataCodecFactory_test.go | 26 ------------- factory/sovereign/interface.go | 17 --------- .../sovereign/sovereignDataCodecFactory.go | 33 ----------------- .../sovereignDataCodecFactory_test.go | 37 ------------------- .../sovereignTopicsCheckerFactory.go | 33 ----------------- .../sovereignTopicsCheckerFactory_test.go | 37 ------------------- factory/sovereign/topicsCheckerFactory.go | 24 ------------ .../sovereign/topicsCheckerFactory_test.go | 26 ------------- integrationTests/testProcessorNode.go | 4 +- process/block/baseProcess.go | 4 +- process/block/baseProcess_test.go | 6 +-- process/block/interface.go | 6 +-- .../block/sovereignBlockProcessorFactory.go | 4 +- process/mock/runTypeComponentsStub.go | 28 +++++++------- .../genericMocks/dataCodecFactoryMock.go | 25 ------------- .../genericMocks/topicsCheckerFactoryMock.go | 25 ------------- .../mainFactoryMocks/runTypeComponentStub.go | 20 +++++----- 26 files changed, 73 insertions(+), 386 deletions(-) delete mode 100644 factory/sovereign/dataCodecFactory.go delete mode 100644 factory/sovereign/dataCodecFactory_test.go delete mode 100644 factory/sovereign/interface.go delete mode 100644 factory/sovereign/sovereignDataCodecFactory.go delete mode 100644 factory/sovereign/sovereignDataCodecFactory_test.go delete mode 100644 factory/sovereign/sovereignTopicsCheckerFactory.go delete mode 100644 factory/sovereign/sovereignTopicsCheckerFactory_test.go delete mode 100644 factory/sovereign/topicsCheckerFactory.go delete mode 100644 factory/sovereign/topicsCheckerFactory_test.go delete mode 100644 testscommon/genericMocks/dataCodecFactoryMock.go delete mode 100644 testscommon/genericMocks/topicsCheckerFactoryMock.go diff --git a/cmd/sovereignnode/sovereignNodeRunner.go b/cmd/sovereignnode/sovereignNodeRunner.go index 690ce3a3184..fe01ad8f44a 100644 --- a/cmd/sovereignnode/sovereignNodeRunner.go +++ b/cmd/sovereignnode/sovereignNodeRunner.go @@ -1895,8 +1895,8 @@ func createIncomingHeaderProcessor( Hasher: hasher, MainChainNotarizationStartRound: mainChainNotarizationStartRound, OutGoingOperationsPool: outGoingOperationsPool, - DataCodec: runTypeComponents.DataCodecCreator().CreateDataCodec(), - TopicsChecker: runTypeComponents.TopicsCheckerCreator().CreateTopicsChecker(), + DataCodec: runTypeComponents.DataCodecHandler(), + TopicsChecker: runTypeComponents.TopicsCheckerHandler(), } return incomingHeader.NewIncomingHeaderProcessor(argsIncomingHeaderHandler) diff --git a/factory/interface.go b/factory/interface.go index ce477a7eeb9..cf0457fb968 100644 --- a/factory/interface.go +++ b/factory/interface.go @@ -15,7 +15,6 @@ import ( "github.com/multiversx/mx-chain-go/dblookupext" "github.com/multiversx/mx-chain-go/epochStart" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" - factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/genesis" heartbeatData "github.com/multiversx/mx-chain-go/heartbeat/data" @@ -26,6 +25,7 @@ import ( "github.com/multiversx/mx-chain-go/process" processBlock "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -593,8 +593,8 @@ type RunTypeComponentsHolder interface { VmContainerMetaFactoryCreator() factoryVm.VmContainerCreator VmContainerShardFactoryCreator() factoryVm.VmContainerCreator AccountsCreator() state.AccountFactory - DataCodecCreator() factorySovereign.DataDecoderCreator - TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator + DataCodecHandler() sovereign.DataDecoderHandler + TopicsCheckerHandler() sovereign.TopicsCheckerHandler Create() error Close() error CheckSubcomponents() error diff --git a/factory/processing/processComponents.go b/factory/processing/processComponents.go index 48f8c49a8c2..ecaedbdfda3 100644 --- a/factory/processing/processComponents.go +++ b/factory/processing/processComponents.go @@ -2117,10 +2117,10 @@ func checkProcessComponentsArgs(args ProcessComponentsFactoryArgs) error { if check.IfNil(args.RunTypeComponents.AccountsCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilAccountsCreator) } - if check.IfNil(args.RunTypeComponents.DataCodecCreator()) { + if check.IfNil(args.RunTypeComponents.DataCodecHandler()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilDataCodecCreator) } - if check.IfNil(args.RunTypeComponents.TopicsCheckerCreator()) { + if check.IfNil(args.RunTypeComponents.TopicsCheckerHandler()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilTopicsCheckerCreator) } diff --git a/factory/processing/processComponents_test.go b/factory/processing/processComponents_test.go index 65a341790f5..0a0406d9fdc 100644 --- a/factory/processing/processComponents_test.go +++ b/factory/processing/processComponents_test.go @@ -889,18 +889,18 @@ func TestNewProcessComponentsFactory(t *testing.T) { args := createMockProcessComponentsFactoryArgs() rtMock := getRunTypeComponentsMock() - rtMock.DataCodecFactory = nil + rtMock.DataCodec = nil args.RunTypeComponents = rtMock pcf, err := processComp.NewProcessComponentsFactory(args) require.True(t, errors.Is(err, errorsMx.ErrNilDataCodecCreator)) require.Nil(t, pcf) }) - t.Run("nil TopicsCheckerCreator should error", func(t *testing.T) { + t.Run("nil TopicsCheckerHandler should error", func(t *testing.T) { t.Parallel() args := createMockProcessComponentsFactoryArgs() rtMock := getRunTypeComponentsMock() - rtMock.TopicsCheckerFactory = nil + rtMock.TopicsChecker = nil args.RunTypeComponents = rtMock pcf, err := processComp.NewProcessComponentsFactory(args) require.True(t, errors.Is(err, errorsMx.ErrNilTopicsCheckerCreator)) @@ -937,8 +937,8 @@ func getRunTypeComponentsMock() *mainFactoryMocks.RunTypeComponentsStub { VmContainerMetaFactory: rt.VmContainerMetaFactoryCreator(), VmContainerShardFactory: rt.VmContainerShardFactoryCreator(), AccountCreator: rt.AccountsCreator(), - DataCodecFactory: rt.DataCodecCreator(), - TopicsCheckerFactory: rt.TopicsCheckerCreator(), + DataCodec: rt.DataCodecHandler(), + TopicsChecker: rt.TopicsCheckerHandler(), } } diff --git a/factory/runType/runTypeComponents.go b/factory/runType/runTypeComponents.go index aeffa36b6cd..bba98fb526a 100644 --- a/factory/runType/runTypeComponents.go +++ b/factory/runType/runTypeComponents.go @@ -3,16 +3,17 @@ package runType import ( "fmt" + "github.com/multiversx/mx-chain-go/common/disabled" "github.com/multiversx/mx-chain-go/consensus" "github.com/multiversx/mx-chain-go/dataRetriever/requestHandlers" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" "github.com/multiversx/mx-chain-go/errors" - factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block" processBlock "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -53,8 +54,8 @@ type runTypeComponents struct { vmContainerMetaFactory factoryVm.VmContainerCreator vmContainerShardFactory factoryVm.VmContainerCreator accountsCreator state.AccountFactory - dataCodecCreator factorySovereign.DataDecoderCreator - topicsCheckerCreator factorySovereign.TopicsCheckerCreator + dataCodecHandler sovereign.DataDecoderHandler + topicsCheckerHandler sovereign.TopicsCheckerHandler } // NewRunTypeComponentsFactory will return a new instance of runTypeComponentsFactory @@ -155,9 +156,9 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { return nil, fmt.Errorf("runTypeComponentsFactory - NewAccountCreator failed: %w", err) } - dataCodecCreator := factorySovereign.NewDataCodecFactory() + dataCodec := disabled.NewDisabledDataCodec() - topicsCheckerCreator := factorySovereign.NewTopicsCheckerFactory() + topicsChecker := disabled.NewDisabledTopicsChecker() return &runTypeComponents{ blockChainHookHandlerCreator: blockChainHookHandlerFactory, @@ -179,8 +180,8 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { vmContainerMetaFactory: vmContainerMetaCreator, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, - dataCodecCreator: dataCodecCreator, - topicsCheckerCreator: topicsCheckerCreator, + dataCodecHandler: dataCodec, + topicsCheckerHandler: topicsChecker, }, nil } diff --git a/factory/runType/runTypeComponentsHandler.go b/factory/runType/runTypeComponentsHandler.go index 79e4ba77ba9..dfb3adae2ea 100644 --- a/factory/runType/runTypeComponentsHandler.go +++ b/factory/runType/runTypeComponentsHandler.go @@ -9,11 +9,11 @@ import ( "github.com/multiversx/mx-chain-go/epochStart/bootstrap" "github.com/multiversx/mx-chain-go/errors" "github.com/multiversx/mx-chain-go/factory" - factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process" processBlock "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -145,10 +145,10 @@ func (mrc *managedRunTypeComponents) CheckSubcomponents() error { if check.IfNil(mrc.accountsCreator) { return errors.ErrNilAccountsCreator } - if check.IfNil(mrc.dataCodecCreator) { + if check.IfNil(mrc.dataCodecHandler) { return errors.ErrNilDataCodecCreator } - if check.IfNil(mrc.topicsCheckerCreator) { + if check.IfNil(mrc.topicsCheckerHandler) { return errors.ErrNilTopicsCheckerCreator } return nil @@ -382,8 +382,8 @@ func (mrc *managedRunTypeComponents) AccountsCreator() state.AccountFactory { return mrc.runTypeComponents.accountsCreator } -// DataCodecCreator returns the data codec factory -func (mrc *managedRunTypeComponents) DataCodecCreator() factorySovereign.DataDecoderCreator { +// DataCodecHandler returns the data codec factory +func (mrc *managedRunTypeComponents) DataCodecHandler() sovereign.DataDecoderHandler { mrc.mutStateComponents.RLock() defer mrc.mutStateComponents.RUnlock() @@ -391,11 +391,11 @@ func (mrc *managedRunTypeComponents) DataCodecCreator() factorySovereign.DataDec return nil } - return mrc.runTypeComponents.dataCodecCreator + return mrc.runTypeComponents.dataCodecHandler } -// TopicsCheckerCreator returns the topics checker factory -func (mrc *managedRunTypeComponents) TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator { +// TopicsCheckerHandler returns the topics checker factory +func (mrc *managedRunTypeComponents) TopicsCheckerHandler() sovereign.TopicsCheckerHandler { mrc.mutStateComponents.RLock() defer mrc.mutStateComponents.RUnlock() @@ -403,7 +403,7 @@ func (mrc *managedRunTypeComponents) TopicsCheckerCreator() factorySovereign.Top return nil } - return mrc.runTypeComponents.topicsCheckerCreator + return mrc.runTypeComponents.topicsCheckerHandler } // IsInterfaceNil returns true if the interface is nil diff --git a/factory/runType/runTypeComponentsHandler_test.go b/factory/runType/runTypeComponentsHandler_test.go index 6a09b97915e..50ec0c1ce15 100644 --- a/factory/runType/runTypeComponentsHandler_test.go +++ b/factory/runType/runTypeComponentsHandler_test.go @@ -65,8 +65,8 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.Nil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) require.Nil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) require.Nil(t, managedRunTypeComponents.AccountsCreator()) - require.Nil(t, managedRunTypeComponents.DataCodecCreator()) - require.Nil(t, managedRunTypeComponents.TopicsCheckerCreator()) + require.Nil(t, managedRunTypeComponents.DataCodecHandler()) + require.Nil(t, managedRunTypeComponents.TopicsCheckerHandler()) err = managedRunTypeComponents.Create() require.NoError(t, err) @@ -89,8 +89,8 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.NotNil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) require.NotNil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) require.NotNil(t, managedRunTypeComponents.AccountsCreator()) - require.NotNil(t, managedRunTypeComponents.DataCodecCreator()) - require.NotNil(t, managedRunTypeComponents.TopicsCheckerCreator()) + require.NotNil(t, managedRunTypeComponents.DataCodecHandler()) + require.NotNil(t, managedRunTypeComponents.TopicsCheckerHandler()) require.Equal(t, factory.RunTypeComponentsName, managedRunTypeComponents.String()) require.NoError(t, managedRunTypeComponents.Close()) diff --git a/factory/runType/sovereignRunTypeComponents.go b/factory/runType/sovereignRunTypeComponents.go index 74f99a1eeb3..848e370c49c 100644 --- a/factory/runType/sovereignRunTypeComponents.go +++ b/factory/runType/sovereignRunTypeComponents.go @@ -8,7 +8,6 @@ import ( "github.com/multiversx/mx-chain-go/dataRetriever/requestHandlers" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" "github.com/multiversx/mx-chain-go/errors" - factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" @@ -152,15 +151,9 @@ func (rcf *sovereignRunTypeComponentsFactory) Create() (*runTypeComponents, erro return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignAccountCreator failed: %w", err) } - dataCodecCreator, err := factorySovereign.NewSovereignDataCodecFactory(rcf.dataCodec) - if err != nil { - return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignDataCodecFactory failed: %w", err) - } + dataCodec := rcf.dataCodec - topicsCheckerCreator, err := factorySovereign.NewSovereignTopicsCheckerFactory(rcf.topicsChecker) - if err != nil { - return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignTopicsCheckerFactory failed: %w", err) - } + topicsChecker := rcf.topicsChecker return &runTypeComponents{ blockChainHookHandlerCreator: blockChainHookHandlerFactory, @@ -182,7 +175,7 @@ func (rcf *sovereignRunTypeComponentsFactory) Create() (*runTypeComponents, erro vmContainerMetaFactory: rtc.vmContainerMetaFactory, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, - dataCodecCreator: dataCodecCreator, - topicsCheckerCreator: topicsCheckerCreator, + dataCodecHandler: dataCodec, + topicsCheckerHandler: topicsChecker, }, nil } diff --git a/factory/sovereign/dataCodecFactory.go b/factory/sovereign/dataCodecFactory.go deleted file mode 100644 index 458c1b5d9e3..00000000000 --- a/factory/sovereign/dataCodecFactory.go +++ /dev/null @@ -1,24 +0,0 @@ -package sovereign - -import ( - "github.com/multiversx/mx-chain-go/common/disabled" - "github.com/multiversx/mx-chain-go/process/block/sovereign" -) - -type dataCodecFactory struct { -} - -// NewDataCodecFactory creates a new data codec factory -func NewDataCodecFactory() *dataCodecFactory { - return &dataCodecFactory{} -} - -// CreateDataCodec creates a new data codec for the chain run type normal -func (dcf *dataCodecFactory) CreateDataCodec() sovereign.DataDecoderHandler { - return disabled.NewDisabledDataCodec() -} - -// IsInterfaceNil returns true if there is no value under the interface -func (dcf *dataCodecFactory) IsInterfaceNil() bool { - return dcf == nil -} diff --git a/factory/sovereign/dataCodecFactory_test.go b/factory/sovereign/dataCodecFactory_test.go deleted file mode 100644 index bbb7ef797c0..00000000000 --- a/factory/sovereign/dataCodecFactory_test.go +++ /dev/null @@ -1,26 +0,0 @@ -package sovereign_test - -import ( - "fmt" - "testing" - - "github.com/multiversx/mx-chain-go/factory/sovereign" - - "github.com/stretchr/testify/require" -) - -func TestNewDataCodecFactory(t *testing.T) { - t.Parallel() - - dataCodecFactory := sovereign.NewDataCodecFactory() - require.False(t, dataCodecFactory.IsInterfaceNil()) -} - -func TestDataCodecFactory_CreateDataCodec(t *testing.T) { - t.Parallel() - - dataCodecFactory := sovereign.NewDataCodecFactory() - dataCodec := dataCodecFactory.CreateDataCodec() - require.NotNil(t, dataCodec) - require.Equal(t, "*disabled.dataCodec", fmt.Sprintf("%T", dataCodec)) -} diff --git a/factory/sovereign/interface.go b/factory/sovereign/interface.go deleted file mode 100644 index b81ab306dc8..00000000000 --- a/factory/sovereign/interface.go +++ /dev/null @@ -1,17 +0,0 @@ -package sovereign - -import ( - "github.com/multiversx/mx-chain-go/process/block/sovereign" -) - -// DataDecoderCreator is an interface for creating data decoder -type DataDecoderCreator interface { - CreateDataCodec() sovereign.DataDecoderHandler - IsInterfaceNil() bool -} - -// TopicsCheckerCreator is an interface for creating topics checker -type TopicsCheckerCreator interface { - CreateTopicsChecker() sovereign.TopicsCheckerHandler - IsInterfaceNil() bool -} diff --git a/factory/sovereign/sovereignDataCodecFactory.go b/factory/sovereign/sovereignDataCodecFactory.go deleted file mode 100644 index d7a54a02685..00000000000 --- a/factory/sovereign/sovereignDataCodecFactory.go +++ /dev/null @@ -1,33 +0,0 @@ -package sovereign - -import ( - "github.com/multiversx/mx-chain-go/errors" - "github.com/multiversx/mx-chain-go/process/block/sovereign" - - "github.com/multiversx/mx-chain-core-go/core/check" -) - -type sovereignDataCodecFactory struct { - dataCodec sovereign.DataDecoderHandler -} - -// NewSovereignDataCodecFactory creates a new sovereign data codec factory -func NewSovereignDataCodecFactory(dc sovereign.DataDecoderHandler) (*sovereignDataCodecFactory, error) { - if check.IfNil(dc) { - return nil, errors.ErrNilDataCodec - } - - return &sovereignDataCodecFactory{ - dataCodec: dc, - }, nil -} - -// CreateDataCodec creates a new data codec for the chain run type sovereign -func (sdcf *sovereignDataCodecFactory) CreateDataCodec() sovereign.DataDecoderHandler { - return sdcf.dataCodec -} - -// IsInterfaceNil returns true if there is no value under the interface -func (sdcf *sovereignDataCodecFactory) IsInterfaceNil() bool { - return sdcf == nil -} diff --git a/factory/sovereign/sovereignDataCodecFactory_test.go b/factory/sovereign/sovereignDataCodecFactory_test.go deleted file mode 100644 index 121966fa885..00000000000 --- a/factory/sovereign/sovereignDataCodecFactory_test.go +++ /dev/null @@ -1,37 +0,0 @@ -package sovereign_test - -import ( - "fmt" - "testing" - - "github.com/multiversx/mx-chain-go/errors" - "github.com/multiversx/mx-chain-go/factory/sovereign" - sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" - - "github.com/stretchr/testify/require" -) - -func TestNewSovereignDataCodecFactory(t *testing.T) { - t.Parallel() - - t.Run("nil data codec should fail", func(t *testing.T) { - sovereignDataCodecFactory, err := sovereign.NewSovereignDataCodecFactory(nil) - require.Equal(t, errors.ErrNilDataCodec, err) - require.True(t, sovereignDataCodecFactory.IsInterfaceNil()) - }) - - t.Run("should work", func(t *testing.T) { - sovereignDataCodecFactory, err := sovereign.NewSovereignDataCodecFactory(&sovereignMock.DataCodecMock{}) - require.Nil(t, err) - require.False(t, sovereignDataCodecFactory.IsInterfaceNil()) - }) -} - -func TestSovereignDataCodecFactory_CreateDataCodec(t *testing.T) { - t.Parallel() - - sovereignDataCodecFactory, _ := sovereign.NewSovereignDataCodecFactory(&sovereignMock.DataCodecMock{}) - sovereignDataCodec := sovereignDataCodecFactory.CreateDataCodec() - require.NotNil(t, sovereignDataCodec) - require.Equal(t, "*sovereign.DataCodecMock", fmt.Sprintf("%T", sovereignDataCodec)) -} diff --git a/factory/sovereign/sovereignTopicsCheckerFactory.go b/factory/sovereign/sovereignTopicsCheckerFactory.go deleted file mode 100644 index d6ae668686b..00000000000 --- a/factory/sovereign/sovereignTopicsCheckerFactory.go +++ /dev/null @@ -1,33 +0,0 @@ -package sovereign - -import ( - "github.com/multiversx/mx-chain-go/errors" - "github.com/multiversx/mx-chain-go/process/block/sovereign" - - "github.com/multiversx/mx-chain-core-go/core/check" -) - -type sovereignTopicsCheckerFactory struct { - topicsChecker sovereign.TopicsCheckerHandler -} - -// NewSovereignTopicsCheckerFactory creates a new sovereign topics checker factory -func NewSovereignTopicsCheckerFactory(tc sovereign.TopicsCheckerHandler) (*sovereignTopicsCheckerFactory, error) { - if check.IfNil(tc) { - return nil, errors.ErrNilTopicsChecker - } - - return &sovereignTopicsCheckerFactory{ - topicsChecker: tc, - }, nil -} - -// CreateTopicsChecker creates a new topics checker for the chain run type sovereign -func (stcf *sovereignTopicsCheckerFactory) CreateTopicsChecker() sovereign.TopicsCheckerHandler { - return stcf.topicsChecker -} - -// IsInterfaceNil returns true if there is no value under the interface -func (stcf *sovereignTopicsCheckerFactory) IsInterfaceNil() bool { - return stcf == nil -} diff --git a/factory/sovereign/sovereignTopicsCheckerFactory_test.go b/factory/sovereign/sovereignTopicsCheckerFactory_test.go deleted file mode 100644 index 124b6638bd5..00000000000 --- a/factory/sovereign/sovereignTopicsCheckerFactory_test.go +++ /dev/null @@ -1,37 +0,0 @@ -package sovereign_test - -import ( - "fmt" - "testing" - - "github.com/multiversx/mx-chain-go/errors" - "github.com/multiversx/mx-chain-go/factory/sovereign" - sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" - - "github.com/stretchr/testify/require" -) - -func TestNewSovereignTopicsCheckerFactory(t *testing.T) { - t.Parallel() - - t.Run("nil topics checker should fail", func(t *testing.T) { - sovereignTopicsCheckerFactory, err := sovereign.NewSovereignTopicsCheckerFactory(nil) - require.Equal(t, errors.ErrNilTopicsChecker, err) - require.True(t, sovereignTopicsCheckerFactory.IsInterfaceNil()) - }) - - t.Run("should work", func(t *testing.T) { - sovereignTopicsCheckerFactory, err := sovereign.NewSovereignTopicsCheckerFactory(&sovereignMock.TopicsCheckerMock{}) - require.Nil(t, err) - require.False(t, sovereignTopicsCheckerFactory.IsInterfaceNil()) - }) -} - -func TestSovereignTopicsCheckerFactory_CreateTopicsChecker(t *testing.T) { - t.Parallel() - - sovereignTopicsCheckerFactory, _ := sovereign.NewSovereignTopicsCheckerFactory(&sovereignMock.TopicsCheckerMock{}) - sovereignTopicsChecker := sovereignTopicsCheckerFactory.CreateTopicsChecker() - require.NotNil(t, sovereignTopicsChecker) - require.Equal(t, "*sovereign.TopicsCheckerMock", fmt.Sprintf("%T", sovereignTopicsChecker)) -} diff --git a/factory/sovereign/topicsCheckerFactory.go b/factory/sovereign/topicsCheckerFactory.go deleted file mode 100644 index 64bfe9bfce7..00000000000 --- a/factory/sovereign/topicsCheckerFactory.go +++ /dev/null @@ -1,24 +0,0 @@ -package sovereign - -import ( - "github.com/multiversx/mx-chain-go/common/disabled" - "github.com/multiversx/mx-chain-go/process/block/sovereign" -) - -type topicsCheckerFactory struct { -} - -// NewTopicsCheckerFactory creates a new topics checker factory -func NewTopicsCheckerFactory() *topicsCheckerFactory { - return &topicsCheckerFactory{} -} - -// CreateTopicsChecker creates a new topics checker for the chain run type normal -func (tcf *topicsCheckerFactory) CreateTopicsChecker() sovereign.TopicsCheckerHandler { - return disabled.NewDisabledTopicsChecker() -} - -// IsInterfaceNil returns true if there is no value under the interface -func (tcf *topicsCheckerFactory) IsInterfaceNil() bool { - return tcf == nil -} diff --git a/factory/sovereign/topicsCheckerFactory_test.go b/factory/sovereign/topicsCheckerFactory_test.go deleted file mode 100644 index aad1702f6ae..00000000000 --- a/factory/sovereign/topicsCheckerFactory_test.go +++ /dev/null @@ -1,26 +0,0 @@ -package sovereign_test - -import ( - "fmt" - "testing" - - "github.com/multiversx/mx-chain-go/factory/sovereign" - - "github.com/stretchr/testify/require" -) - -func TestNewTopicsCheckerFactory(t *testing.T) { - t.Parallel() - - topicsCheckerFactory := sovereign.NewTopicsCheckerFactory() - require.False(t, topicsCheckerFactory.IsInterfaceNil()) -} - -func TestTopicsCheckerFactory_CreateTopicsChecker(t *testing.T) { - t.Parallel() - - topicsCheckerFactory := sovereign.NewTopicsCheckerFactory() - topicsChecker := topicsCheckerFactory.CreateTopicsChecker() - require.NotNil(t, topicsChecker) - require.Equal(t, "*disabled.topicsChecker", fmt.Sprintf("%T", topicsChecker)) -} diff --git a/integrationTests/testProcessorNode.go b/integrationTests/testProcessorNode.go index b7df8ed4472..2d85b3cd51e 100644 --- a/integrationTests/testProcessorNode.go +++ b/integrationTests/testProcessorNode.go @@ -3284,8 +3284,8 @@ func GetDefaultRunTypeComponents(consensusModel consensus.ConsensusModel) *mainF BootstrapperFactory: rt.BootstrapperCreator(), SCResultsPreProcessorFactory: rt.SCResultsPreProcessorCreator(), ConsensusModelType: consensusModel, - DataCodecFactory: rt.DataCodecCreator(), - TopicsCheckerFactory: rt.TopicsCheckerCreator(), + DataCodec: rt.DataCodecHandler(), + TopicsChecker: rt.TopicsCheckerHandler(), } } diff --git a/process/block/baseProcess.go b/process/block/baseProcess.go index d1fc610783c..22c04322147 100644 --- a/process/block/baseProcess.go +++ b/process/block/baseProcess.go @@ -589,10 +589,10 @@ func checkProcessorParameters(arguments ArgBaseProcessor) error { if check.IfNil(arguments.RunTypeComponents.AccountsCreator()) { return state.ErrNilAccountFactory } - if check.IfNil(arguments.RunTypeComponents.DataCodecCreator()) { + if check.IfNil(arguments.RunTypeComponents.DataCodecHandler()) { return errors.ErrNilDataCodecCreator } - if check.IfNil(arguments.RunTypeComponents.TopicsCheckerCreator()) { + if check.IfNil(arguments.RunTypeComponents.TopicsCheckerHandler()) { return errors.ErrNilTopicsCheckerCreator } diff --git a/process/block/baseProcess_test.go b/process/block/baseProcess_test.go index d2c57ca1ce6..09215fedae4 100644 --- a/process/block/baseProcess_test.go +++ b/process/block/baseProcess_test.go @@ -37,12 +37,12 @@ import ( "github.com/multiversx/mx-chain-go/testscommon/economicsmocks" "github.com/multiversx/mx-chain-go/testscommon/enableEpochsHandlerMock" "github.com/multiversx/mx-chain-go/testscommon/epochNotifier" - "github.com/multiversx/mx-chain-go/testscommon/genericMocks" "github.com/multiversx/mx-chain-go/testscommon/hashingMocks" "github.com/multiversx/mx-chain-go/testscommon/mainFactoryMocks" "github.com/multiversx/mx-chain-go/testscommon/marshallerMock" "github.com/multiversx/mx-chain-go/testscommon/outport" "github.com/multiversx/mx-chain-go/testscommon/shardingMocks" + "github.com/multiversx/mx-chain-go/testscommon/sovereign" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" statusHandlerMock "github.com/multiversx/mx-chain-go/testscommon/statusHandler" storageStubs "github.com/multiversx/mx-chain-go/testscommon/storage" @@ -811,7 +811,7 @@ func TestCheckProcessorNilParameters(t *testing.T) { { args: func() blproc.ArgBaseProcessor { args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) - args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodecFactory: nil} + args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodec: nil} return args }, expectedErr: errorsMx.ErrNilDataCodecCreator, @@ -819,7 +819,7 @@ func TestCheckProcessorNilParameters(t *testing.T) { { args: func() blproc.ArgBaseProcessor { args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) - args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodecFactory: &genericMocks.DataCodecFactoryMock{}, TopicsCheckerFactory: nil} + args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodec: &sovereign.DataCodecMock{}, TopicsChecker: nil} return args }, expectedErr: errorsMx.ErrNilTopicsCheckerCreator, diff --git a/process/block/interface.go b/process/block/interface.go index 99f4faec528..fc1a0127c62 100644 --- a/process/block/interface.go +++ b/process/block/interface.go @@ -2,9 +2,9 @@ package block import ( "github.com/multiversx/mx-chain-go/common" - factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block/bootstrapStorage" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/state" "github.com/multiversx/mx-chain-core-go/data" @@ -69,7 +69,7 @@ type HeaderValidatorCreator interface { type runTypeComponentsHolder interface { AccountsCreator() state.AccountFactory - DataCodecCreator() factorySovereign.DataDecoderCreator - TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator + DataCodecHandler() sovereign.DataDecoderHandler + TopicsCheckerHandler() sovereign.TopicsCheckerHandler IsInterfaceNil() bool } diff --git a/process/block/sovereignBlockProcessorFactory.go b/process/block/sovereignBlockProcessorFactory.go index 526b48c9829..a3e387c3307 100644 --- a/process/block/sovereignBlockProcessorFactory.go +++ b/process/block/sovereignBlockProcessorFactory.go @@ -41,8 +41,8 @@ func (s *sovereignBlockProcessorFactory) CreateBlockProcessor(argumentsBaseProce outgoingOpFormatter, err := sovereign.CreateOutgoingOperationsFormatter( argumentsBaseProcessor.Config.SovereignConfig.OutgoingSubscribedEvents.SubscribedEvents, argumentsBaseProcessor.CoreComponents.AddressPubKeyConverter(), - argumentsBaseProcessor.RunTypeComponents.DataCodecCreator().CreateDataCodec(), - argumentsBaseProcessor.RunTypeComponents.TopicsCheckerCreator().CreateTopicsChecker()) + argumentsBaseProcessor.RunTypeComponents.DataCodecHandler(), + argumentsBaseProcessor.RunTypeComponents.TopicsCheckerHandler()) if err != nil { return nil, err } diff --git a/process/mock/runTypeComponentsStub.go b/process/mock/runTypeComponentsStub.go index 880e926d0ac..40ea96a5d58 100644 --- a/process/mock/runTypeComponentsStub.go +++ b/process/mock/runTypeComponentsStub.go @@ -1,25 +1,25 @@ package mock import ( - factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/state" - "github.com/multiversx/mx-chain-go/testscommon/genericMocks" + sovereignMocks "github.com/multiversx/mx-chain-go/testscommon/sovereign" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" ) // RunTypeComponentsStub - type RunTypeComponentsStub struct { - AccountCreator state.AccountFactory - DataCodecFactory factorySovereign.DataDecoderCreator - TopicsCheckerFactory factorySovereign.TopicsCheckerCreator + AccountCreator state.AccountFactory + DataCodec sovereign.DataDecoderHandler + TopicsChecker sovereign.TopicsCheckerHandler } // NewRunTypeComponentsStub - func NewRunTypeComponentsStub() *RunTypeComponentsStub { return &RunTypeComponentsStub{ - AccountCreator: &stateMock.AccountsFactoryStub{}, - DataCodecFactory: &genericMocks.DataCodecFactoryMock{}, - TopicsCheckerFactory: &genericMocks.TopicsCheckerFactoryMock{}, + AccountCreator: &stateMock.AccountsFactoryStub{}, + DataCodec: &sovereignMocks.DataCodecMock{}, + TopicsChecker: &sovereignMocks.TopicsCheckerMock{}, } } @@ -28,14 +28,14 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { return r.AccountCreator } -// DataCodecCreator - -func (r *RunTypeComponentsStub) DataCodecCreator() factorySovereign.DataDecoderCreator { - return r.DataCodecFactory +// DataCodecHandler - +func (r *RunTypeComponentsStub) DataCodecHandler() sovereign.DataDecoderHandler { + return r.DataCodec } -// TopicsCheckerCreator - -func (r *RunTypeComponentsStub) TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator { - return r.TopicsCheckerFactory +// TopicsCheckerHandler - +func (r *RunTypeComponentsStub) TopicsCheckerHandler() sovereign.TopicsCheckerHandler { + return r.TopicsChecker } // IsInterfaceNil - diff --git a/testscommon/genericMocks/dataCodecFactoryMock.go b/testscommon/genericMocks/dataCodecFactoryMock.go deleted file mode 100644 index 2f194e16e12..00000000000 --- a/testscommon/genericMocks/dataCodecFactoryMock.go +++ /dev/null @@ -1,25 +0,0 @@ -package genericMocks - -import ( - factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" - "github.com/multiversx/mx-chain-go/process/block/sovereign" - sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" -) - -// DataCodecFactoryMock - -type DataCodecFactoryMock struct { - CreateDataCodecCalled func() factorySovereign.DataDecoderCreator -} - -// CreateDataCodec - -func (dc *DataCodecFactoryMock) CreateDataCodec() sovereign.DataDecoderHandler { - if dc.CreateDataCodecCalled != nil { - return dc.CreateDataCodec() - } - return &sovereignMock.DataCodecMock{} -} - -// IsInterfaceNil - -func (dc *DataCodecFactoryMock) IsInterfaceNil() bool { - return dc == nil -} diff --git a/testscommon/genericMocks/topicsCheckerFactoryMock.go b/testscommon/genericMocks/topicsCheckerFactoryMock.go deleted file mode 100644 index cbddc0d171d..00000000000 --- a/testscommon/genericMocks/topicsCheckerFactoryMock.go +++ /dev/null @@ -1,25 +0,0 @@ -package genericMocks - -import ( - factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" - "github.com/multiversx/mx-chain-go/process/block/sovereign" - sovereignMock "github.com/multiversx/mx-chain-go/testscommon/sovereign" -) - -// TopicsCheckerFactoryMock - -type TopicsCheckerFactoryMock struct { - CreateTopicsCheckerCalled func() factorySovereign.TopicsCheckerCreator -} - -// CreateTopicsChecker - -func (tc *TopicsCheckerFactoryMock) CreateTopicsChecker() sovereign.TopicsCheckerHandler { - if tc.CreateTopicsCheckerCalled != nil { - return tc.CreateTopicsChecker() - } - return &sovereignMock.TopicsCheckerMock{} -} - -// IsInterfaceNil - -func (tc *TopicsCheckerFactoryMock) IsInterfaceNil() bool { - return tc == nil -} diff --git a/testscommon/mainFactoryMocks/runTypeComponentStub.go b/testscommon/mainFactoryMocks/runTypeComponentStub.go index 48b45531ded..31a525f32f2 100644 --- a/testscommon/mainFactoryMocks/runTypeComponentStub.go +++ b/testscommon/mainFactoryMocks/runTypeComponentStub.go @@ -4,11 +4,11 @@ import ( "github.com/multiversx/mx-chain-go/consensus" "github.com/multiversx/mx-chain-go/dataRetriever/requestHandlers" "github.com/multiversx/mx-chain-go/epochStart/bootstrap" - factorySovereign "github.com/multiversx/mx-chain-go/factory/sovereign" factoryVm "github.com/multiversx/mx-chain-go/factory/vm" "github.com/multiversx/mx-chain-go/process" "github.com/multiversx/mx-chain-go/process/block" "github.com/multiversx/mx-chain-go/process/block/preprocess" + "github.com/multiversx/mx-chain-go/process/block/sovereign" "github.com/multiversx/mx-chain-go/process/coordinator" "github.com/multiversx/mx-chain-go/process/peer" "github.com/multiversx/mx-chain-go/process/smartContract/hooks" @@ -18,7 +18,7 @@ import ( "github.com/multiversx/mx-chain-go/process/track" "github.com/multiversx/mx-chain-go/state" testFactory "github.com/multiversx/mx-chain-go/testscommon/factory" - "github.com/multiversx/mx-chain-go/testscommon/genericMocks" + sovereignMocks "github.com/multiversx/mx-chain-go/testscommon/sovereign" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" ) @@ -43,8 +43,8 @@ type RunTypeComponentsStub struct { VmContainerMetaFactory factoryVm.VmContainerCreator VmContainerShardFactory factoryVm.VmContainerCreator AccountCreator state.AccountFactory - DataCodecFactory factorySovereign.DataDecoderCreator - TopicsCheckerFactory factorySovereign.TopicsCheckerCreator + DataCodec sovereign.DataDecoderHandler + TopicsChecker sovereign.TopicsCheckerHandler } // NewRunTypeComponentsStub - @@ -69,8 +69,8 @@ func NewRunTypeComponentsStub() *RunTypeComponentsStub { VmContainerMetaFactory: &testFactory.VMContainerMetaFactoryMock{}, VmContainerShardFactory: &testFactory.VMContainerShardFactoryMock{}, AccountCreator: &stateMock.AccountsFactoryStub{}, - DataCodecFactory: &genericMocks.DataCodecFactoryMock{}, - TopicsCheckerFactory: &genericMocks.TopicsCheckerFactoryMock{}, + DataCodec: &sovereignMocks.DataCodecMock{}, + TopicsChecker: &sovereignMocks.TopicsCheckerMock{}, } } @@ -189,12 +189,12 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { return r.AccountCreator } -func (r *RunTypeComponentsStub) DataCodecCreator() factorySovereign.DataDecoderCreator { - return r.DataCodecFactory +func (r *RunTypeComponentsStub) DataCodecHandler() sovereign.DataDecoderHandler { + return r.DataCodec } -func (r *RunTypeComponentsStub) TopicsCheckerCreator() factorySovereign.TopicsCheckerCreator { - return r.TopicsCheckerFactory +func (r *RunTypeComponentsStub) TopicsCheckerHandler() sovereign.TopicsCheckerHandler { + return r.TopicsChecker } // IsInterfaceNil - From 0ebba8a38a96baa34c20f891dd936a6ca78ae4d5 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 17:40:12 +0200 Subject: [PATCH 15/28] errors fixes --- errors/errors.go | 6 ------ factory/processing/processComponents.go | 4 ++-- factory/processing/processComponents_test.go | 4 ++-- factory/runType/runTypeComponentsHandler.go | 4 ++-- process/block/baseProcess.go | 4 ++-- process/block/baseProcess_test.go | 4 ++-- 6 files changed, 10 insertions(+), 16 deletions(-) diff --git a/errors/errors.go b/errors/errors.go index 6edf5c2d295..b6b8488b7c3 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -788,12 +788,6 @@ var ErrNilTopicsChecker = errors.New("nil topics checker") // ErrNilOperationsHasher signals that a nil outgoing operations hasher has been provided var ErrNilOperationsHasher = errors.New("nil outgoing operations hasher") -// ErrNilDataCodecCreator signals that a nil data codec creator has been provided -var ErrNilDataCodecCreator = errors.New("nil data codec creator") - -// ErrNilTopicsCheckerCreator signals that a nil topics checker creator has been provided -var ErrNilTopicsCheckerCreator = errors.New("nil topics checker creator") - // ErrInvalidConsensusModel signals that an invalid consensus model has been provided var ErrInvalidConsensusModel = errors.New("invalid consensus model") diff --git a/factory/processing/processComponents.go b/factory/processing/processComponents.go index ecaedbdfda3..085bbc16b7e 100644 --- a/factory/processing/processComponents.go +++ b/factory/processing/processComponents.go @@ -2118,10 +2118,10 @@ func checkProcessComponentsArgs(args ProcessComponentsFactoryArgs) error { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilAccountsCreator) } if check.IfNil(args.RunTypeComponents.DataCodecHandler()) { - return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilDataCodecCreator) + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilDataCodec) } if check.IfNil(args.RunTypeComponents.TopicsCheckerHandler()) { - return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilTopicsCheckerCreator) + return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilTopicsChecker) } return nil diff --git a/factory/processing/processComponents_test.go b/factory/processing/processComponents_test.go index 0a0406d9fdc..eff716d673a 100644 --- a/factory/processing/processComponents_test.go +++ b/factory/processing/processComponents_test.go @@ -892,7 +892,7 @@ func TestNewProcessComponentsFactory(t *testing.T) { rtMock.DataCodec = nil args.RunTypeComponents = rtMock pcf, err := processComp.NewProcessComponentsFactory(args) - require.True(t, errors.Is(err, errorsMx.ErrNilDataCodecCreator)) + require.True(t, errors.Is(err, errorsMx.ErrNilDataCodec)) require.Nil(t, pcf) }) t.Run("nil TopicsCheckerHandler should error", func(t *testing.T) { @@ -903,7 +903,7 @@ func TestNewProcessComponentsFactory(t *testing.T) { rtMock.TopicsChecker = nil args.RunTypeComponents = rtMock pcf, err := processComp.NewProcessComponentsFactory(args) - require.True(t, errors.Is(err, errorsMx.ErrNilTopicsCheckerCreator)) + require.True(t, errors.Is(err, errorsMx.ErrNilTopicsChecker)) require.Nil(t, pcf) }) t.Run("should work", func(t *testing.T) { diff --git a/factory/runType/runTypeComponentsHandler.go b/factory/runType/runTypeComponentsHandler.go index dfb3adae2ea..4042dc30b7f 100644 --- a/factory/runType/runTypeComponentsHandler.go +++ b/factory/runType/runTypeComponentsHandler.go @@ -146,10 +146,10 @@ func (mrc *managedRunTypeComponents) CheckSubcomponents() error { return errors.ErrNilAccountsCreator } if check.IfNil(mrc.dataCodecHandler) { - return errors.ErrNilDataCodecCreator + return errors.ErrNilDataCodec } if check.IfNil(mrc.topicsCheckerHandler) { - return errors.ErrNilTopicsCheckerCreator + return errors.ErrNilTopicsChecker } return nil } diff --git a/process/block/baseProcess.go b/process/block/baseProcess.go index 22c04322147..63c0ee2cd6c 100644 --- a/process/block/baseProcess.go +++ b/process/block/baseProcess.go @@ -590,10 +590,10 @@ func checkProcessorParameters(arguments ArgBaseProcessor) error { return state.ErrNilAccountFactory } if check.IfNil(arguments.RunTypeComponents.DataCodecHandler()) { - return errors.ErrNilDataCodecCreator + return errors.ErrNilDataCodec } if check.IfNil(arguments.RunTypeComponents.TopicsCheckerHandler()) { - return errors.ErrNilTopicsCheckerCreator + return errors.ErrNilTopicsChecker } return nil diff --git a/process/block/baseProcess_test.go b/process/block/baseProcess_test.go index 09215fedae4..241192d2bf2 100644 --- a/process/block/baseProcess_test.go +++ b/process/block/baseProcess_test.go @@ -814,7 +814,7 @@ func TestCheckProcessorNilParameters(t *testing.T) { args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodec: nil} return args }, - expectedErr: errorsMx.ErrNilDataCodecCreator, + expectedErr: errorsMx.ErrNilDataCodec, }, { args: func() blproc.ArgBaseProcessor { @@ -822,7 +822,7 @@ func TestCheckProcessorNilParameters(t *testing.T) { args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodec: &sovereign.DataCodecMock{}, TopicsChecker: nil} return args }, - expectedErr: errorsMx.ErrNilTopicsCheckerCreator, + expectedErr: errorsMx.ErrNilTopicsChecker, }, } From 4f3604177c0277b8b4ab8dda2dc12513dd0e9320 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 26 Mar 2024 18:05:14 +0200 Subject: [PATCH 16/28] fixes for imports --- integrationTests/testProcessorNode.go | 46 +++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/integrationTests/testProcessorNode.go b/integrationTests/testProcessorNode.go index 2d85b3cd51e..afbece50b7e 100644 --- a/integrationTests/testProcessorNode.go +++ b/integrationTests/testProcessorNode.go @@ -12,29 +12,6 @@ import ( "sync/atomic" "time" - "github.com/multiversx/mx-chain-core-go/core" - "github.com/multiversx/mx-chain-core-go/core/check" - "github.com/multiversx/mx-chain-core-go/core/partitioning" - "github.com/multiversx/mx-chain-core-go/core/pubkeyConverter" - "github.com/multiversx/mx-chain-core-go/core/versioning" - "github.com/multiversx/mx-chain-core-go/data" - dataBlock "github.com/multiversx/mx-chain-core-go/data/block" - "github.com/multiversx/mx-chain-core-go/data/endProcess" - dataTransaction "github.com/multiversx/mx-chain-core-go/data/transaction" - "github.com/multiversx/mx-chain-core-go/data/typeConverters/uint64ByteSlice" - "github.com/multiversx/mx-chain-core-go/hashing/keccak" - "github.com/multiversx/mx-chain-core-go/hashing/sha256" - "github.com/multiversx/mx-chain-core-go/marshal" - crypto "github.com/multiversx/mx-chain-crypto-go" - "github.com/multiversx/mx-chain-crypto-go/signing" - "github.com/multiversx/mx-chain-crypto-go/signing/ed25519" - ed25519SingleSig "github.com/multiversx/mx-chain-crypto-go/signing/ed25519/singlesig" - "github.com/multiversx/mx-chain-crypto-go/signing/mcl" - mclsig "github.com/multiversx/mx-chain-crypto-go/signing/mcl/singlesig" - vmcommon "github.com/multiversx/mx-chain-vm-common-go" - "github.com/multiversx/mx-chain-vm-common-go/parsers" - wasmConfig "github.com/multiversx/mx-chain-vm-go/config" - nodeFactory "github.com/multiversx/mx-chain-go/cmd/node/factory" "github.com/multiversx/mx-chain-go/common" "github.com/multiversx/mx-chain-go/common/enablers" @@ -133,6 +110,29 @@ import ( "github.com/multiversx/mx-chain-go/vm" vmProcess "github.com/multiversx/mx-chain-go/vm/process" "github.com/multiversx/mx-chain-go/vm/systemSmartContracts/defaults" + + "github.com/multiversx/mx-chain-core-go/core" + "github.com/multiversx/mx-chain-core-go/core/check" + "github.com/multiversx/mx-chain-core-go/core/partitioning" + "github.com/multiversx/mx-chain-core-go/core/pubkeyConverter" + "github.com/multiversx/mx-chain-core-go/core/versioning" + "github.com/multiversx/mx-chain-core-go/data" + dataBlock "github.com/multiversx/mx-chain-core-go/data/block" + "github.com/multiversx/mx-chain-core-go/data/endProcess" + dataTransaction "github.com/multiversx/mx-chain-core-go/data/transaction" + "github.com/multiversx/mx-chain-core-go/data/typeConverters/uint64ByteSlice" + "github.com/multiversx/mx-chain-core-go/hashing/keccak" + "github.com/multiversx/mx-chain-core-go/hashing/sha256" + "github.com/multiversx/mx-chain-core-go/marshal" + crypto "github.com/multiversx/mx-chain-crypto-go" + "github.com/multiversx/mx-chain-crypto-go/signing" + "github.com/multiversx/mx-chain-crypto-go/signing/ed25519" + ed25519SingleSig "github.com/multiversx/mx-chain-crypto-go/signing/ed25519/singlesig" + "github.com/multiversx/mx-chain-crypto-go/signing/mcl" + mclsig "github.com/multiversx/mx-chain-crypto-go/signing/mcl/singlesig" + vmcommon "github.com/multiversx/mx-chain-vm-common-go" + "github.com/multiversx/mx-chain-vm-common-go/parsers" + wasmConfig "github.com/multiversx/mx-chain-vm-go/config" ) var zero = big.NewInt(0) From c57bbad6251ba5d8ffeafb1fd8f74aea3c68b42d Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Wed, 27 Mar 2024 11:45:27 +0200 Subject: [PATCH 17/28] nil checks and unit tests --- factory/runType/sovereignRunTypeComponents.go | 6 ++++ .../sovereignRunTypeComponents_test.go | 35 ++++++++++++++----- .../mainFactoryMocks/runTypeComponentStub.go | 2 ++ 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/factory/runType/sovereignRunTypeComponents.go b/factory/runType/sovereignRunTypeComponents.go index 848e370c49c..72765c1d7af 100644 --- a/factory/runType/sovereignRunTypeComponents.go +++ b/factory/runType/sovereignRunTypeComponents.go @@ -43,6 +43,12 @@ func NewSovereignRunTypeComponentsFactory(fact *runTypeComponentsFactory, args A if check.IfNil(fact) { return nil, errors.ErrNilRunTypeComponentsFactory } + if check.IfNil(args.DataCodec) { + return nil, errors.ErrNilDataCodec + } + if check.IfNil(args.TopicsChecker) { + return nil, errors.ErrNilTopicsChecker + } return &sovereignRunTypeComponentsFactory{ runTypeComponentsFactory: fact, diff --git a/factory/runType/sovereignRunTypeComponents_test.go b/factory/runType/sovereignRunTypeComponents_test.go index 7f6c04470c3..0c245192e00 100644 --- a/factory/runType/sovereignRunTypeComponents_test.go +++ b/factory/runType/sovereignRunTypeComponents_test.go @@ -26,14 +26,33 @@ func createSovRunTypeArgs() runType.ArgsSovereignRunTypeComponents { func TestNewSovereignRunTypeComponentsFactory(t *testing.T) { t.Parallel() - srcf, err := runType.NewSovereignRunTypeComponentsFactory(nil, createSovRunTypeArgs()) - require.Nil(t, srcf) - require.ErrorIs(t, errors.ErrNilRunTypeComponentsFactory, err) - - rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) - srcf, err = runType.NewSovereignRunTypeComponentsFactory(rcf, createSovRunTypeArgs()) - require.NotNil(t, srcf) - require.NoError(t, err) + t.Run("nil runType components factory", func(t *testing.T) { + srcf, err := runType.NewSovereignRunTypeComponentsFactory(nil, createSovRunTypeArgs()) + require.Nil(t, srcf) + require.ErrorIs(t, errors.ErrNilRunTypeComponentsFactory, err) + }) + t.Run("nil data codec", func(t *testing.T) { + rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) + sovArgs := createSovRunTypeArgs() + sovArgs.DataCodec = nil + srcf, err := runType.NewSovereignRunTypeComponentsFactory(rcf, sovArgs) + require.Nil(t, srcf) + require.ErrorIs(t, errors.ErrNilDataCodec, err) + }) + t.Run("nil topics checker", func(t *testing.T) { + rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) + sovArgs := createSovRunTypeArgs() + sovArgs.TopicsChecker = nil + srcf, err := runType.NewSovereignRunTypeComponentsFactory(rcf, sovArgs) + require.Nil(t, srcf) + require.ErrorIs(t, errors.ErrNilTopicsChecker, err) + }) + t.Run("should work", func(t *testing.T) { + rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) + srcf, err := runType.NewSovereignRunTypeComponentsFactory(rcf, createSovRunTypeArgs()) + require.NotNil(t, srcf) + require.NoError(t, err) + }) } func TestSovereignRunTypeComponentsFactory_Create(t *testing.T) { diff --git a/testscommon/mainFactoryMocks/runTypeComponentStub.go b/testscommon/mainFactoryMocks/runTypeComponentStub.go index 31a525f32f2..d97e30f3e9b 100644 --- a/testscommon/mainFactoryMocks/runTypeComponentStub.go +++ b/testscommon/mainFactoryMocks/runTypeComponentStub.go @@ -189,10 +189,12 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { return r.AccountCreator } +// DataCodecHandler - func (r *RunTypeComponentsStub) DataCodecHandler() sovereign.DataDecoderHandler { return r.DataCodec } +// TopicsCheckerHandler - func (r *RunTypeComponentsStub) TopicsCheckerHandler() sovereign.TopicsCheckerHandler { return r.TopicsChecker } From cf7fa5ce7f180f16ea49c2bdb947d63f4974405f Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Mon, 1 Apr 2024 12:12:25 +0300 Subject: [PATCH 18/28] fixes after merge --- integrationTests/realcomponents/processorRunner.go | 6 ++---- node/chainSimulator/components/processComponents.go | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/integrationTests/realcomponents/processorRunner.go b/integrationTests/realcomponents/processorRunner.go index 5fb31205536..ecf4841d9b3 100644 --- a/integrationTests/realcomponents/processorRunner.go +++ b/integrationTests/realcomponents/processorRunner.go @@ -13,8 +13,9 @@ import ( "github.com/multiversx/mx-chain-core-go/data/endProcess" "github.com/multiversx/mx-chain-core-go/data/esdt" "github.com/multiversx/mx-chain-core-go/data/transaction" + "github.com/stretchr/testify/require" + "github.com/multiversx/mx-chain-go/common" - "github.com/multiversx/mx-chain-go/common/disabled" "github.com/multiversx/mx-chain-go/common/forking" "github.com/multiversx/mx-chain-go/common/ordering" "github.com/multiversx/mx-chain-go/config" @@ -50,7 +51,6 @@ import ( "github.com/multiversx/mx-chain-go/storage/storageunit" "github.com/multiversx/mx-chain-go/testscommon/headerSigVerifier" "github.com/multiversx/mx-chain-go/update/trigger" - "github.com/stretchr/testify/require" ) // ProcessorRunner is a test emulation to the nodeRunner component @@ -478,8 +478,6 @@ func (pr *ProcessorRunner) createProcessComponents(tb testing.TB) { TxPreProcessorCreator: preprocess.NewTxPreProcessorCreator(), ExtraHeaderSigVerifierHolder: &headerSigVerifier.ExtraHeaderSigVerifierHolderMock{}, RunTypeComponents: pr.RunTypeComponents, - TopicsChecker: disabled.NewDisabledTopicsChecker(), - DataCodec: disabled.NewDisabledDataCodec(), } processFactory, err := factoryProcessing.NewProcessComponentsFactory(argsProcess) diff --git a/node/chainSimulator/components/processComponents.go b/node/chainSimulator/components/processComponents.go index 358acb86386..c4ebcc88f78 100644 --- a/node/chainSimulator/components/processComponents.go +++ b/node/chainSimulator/components/processComponents.go @@ -7,8 +7,9 @@ import ( "path/filepath" "time" + vmcommon "github.com/multiversx/mx-chain-vm-common-go" + "github.com/multiversx/mx-chain-go/common" - disabled2 "github.com/multiversx/mx-chain-go/common/disabled" "github.com/multiversx/mx-chain-go/common/forking" "github.com/multiversx/mx-chain-go/common/ordering" "github.com/multiversx/mx-chain-go/config" @@ -35,7 +36,6 @@ import ( "github.com/multiversx/mx-chain-go/testscommon/components" "github.com/multiversx/mx-chain-go/update" "github.com/multiversx/mx-chain-go/update/trigger" - vmcommon "github.com/multiversx/mx-chain-vm-common-go" ) // ArgsProcessComponentsHolder will hold the components needed for process components @@ -225,8 +225,6 @@ func CreateProcessComponents(args ArgsProcessComponentsHolder) (*processComponen GenesisBlockCreatorFactory: process2.NewGenesisBlockCreatorFactory(), GenesisMetaBlockChecker: processComp.NewGenesisMetaBlockChecker(), ExtraHeaderSigVerifierHolder: headerCheck.NewExtraHeaderSigVerifierHolder(), - DataCodec: disabled2.NewDisabledDataCodec(), - TopicsChecker: disabled2.NewDisabledTopicsChecker(), TxPreProcessorCreator: preprocess.NewTxPreProcessorCreator(), InterceptorsContainerFactoryCreator: interceptorscontainer.NewShardInterceptorsContainerFactoryCreator(), RequesterContainerFactoryCreator: requesterscontainer.NewShardRequestersContainerFactoryCreator(), From 00a92935a5b008a21cad46890f1e79cb16e577d9 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 9 Apr 2024 17:16:47 +0300 Subject: [PATCH 19/28] fixes after review --- cmd/sovereignnode/sovereignNodeRunner.go | 1 + factory/runType/runTypeComponents.go | 8 ++----- factory/runType/sovereignRunTypeComponents.go | 8 ++----- process/block/baseProcess_test.go | 22 +++++++++++++++---- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/cmd/sovereignnode/sovereignNodeRunner.go b/cmd/sovereignnode/sovereignNodeRunner.go index 033955a3d7e..1d55c465cec 100644 --- a/cmd/sovereignnode/sovereignNodeRunner.go +++ b/cmd/sovereignnode/sovereignNodeRunner.go @@ -1667,6 +1667,7 @@ func (snr *sovereignNodeRunner) CreateManagedCryptoComponents( return managedCryptoComponents, nil } +// CreateArgsRunTypeComponents creates the arguments for sovereign runType components func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents() (*runType.ArgsSovereignRunTypeComponents, error) { sovereignCfg := snr.configs.SovereignExtraConfig diff --git a/factory/runType/runTypeComponents.go b/factory/runType/runTypeComponents.go index bba98fb526a..990f5652be4 100644 --- a/factory/runType/runTypeComponents.go +++ b/factory/runType/runTypeComponents.go @@ -156,10 +156,6 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { return nil, fmt.Errorf("runTypeComponentsFactory - NewAccountCreator failed: %w", err) } - dataCodec := disabled.NewDisabledDataCodec() - - topicsChecker := disabled.NewDisabledTopicsChecker() - return &runTypeComponents{ blockChainHookHandlerCreator: blockChainHookHandlerFactory, epochStartBootstrapperCreator: epochStartBootstrapperFactory, @@ -180,8 +176,8 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { vmContainerMetaFactory: vmContainerMetaCreator, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, - dataCodecHandler: dataCodec, - topicsCheckerHandler: topicsChecker, + dataCodecHandler: disabled.NewDisabledDataCodec(), + topicsCheckerHandler: disabled.NewDisabledTopicsChecker(), }, nil } diff --git a/factory/runType/sovereignRunTypeComponents.go b/factory/runType/sovereignRunTypeComponents.go index 72765c1d7af..754ae352402 100644 --- a/factory/runType/sovereignRunTypeComponents.go +++ b/factory/runType/sovereignRunTypeComponents.go @@ -157,10 +157,6 @@ func (rcf *sovereignRunTypeComponentsFactory) Create() (*runTypeComponents, erro return nil, fmt.Errorf("sovereignRunTypeComponentsFactory - NewSovereignAccountCreator failed: %w", err) } - dataCodec := rcf.dataCodec - - topicsChecker := rcf.topicsChecker - return &runTypeComponents{ blockChainHookHandlerCreator: blockChainHookHandlerFactory, epochStartBootstrapperCreator: epochStartBootstrapperFactory, @@ -181,7 +177,7 @@ func (rcf *sovereignRunTypeComponentsFactory) Create() (*runTypeComponents, erro vmContainerMetaFactory: rtc.vmContainerMetaFactory, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, - dataCodecHandler: dataCodec, - topicsCheckerHandler: topicsChecker, + dataCodecHandler: rcf.dataCodec, + topicsCheckerHandler: rcf.topicsChecker, }, nil } diff --git a/process/block/baseProcess_test.go b/process/block/baseProcess_test.go index 8f22671b994..034ae2d99bc 100644 --- a/process/block/baseProcess_test.go +++ b/process/block/baseProcess_test.go @@ -43,7 +43,6 @@ import ( "github.com/multiversx/mx-chain-go/testscommon/marshallerMock" "github.com/multiversx/mx-chain-go/testscommon/outport" "github.com/multiversx/mx-chain-go/testscommon/shardingMocks" - "github.com/multiversx/mx-chain-go/testscommon/sovereign" stateMock "github.com/multiversx/mx-chain-go/testscommon/state" statusHandlerMock "github.com/multiversx/mx-chain-go/testscommon/statusHandler" storageStubs "github.com/multiversx/mx-chain-go/testscommon/storage" @@ -805,7 +804,9 @@ func TestCheckProcessorNilParameters(t *testing.T) { { args: func() blproc.ArgBaseProcessor { args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) - args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: nil} + rtMock := getRunTypeComponentsMock() + rtMock.AccountCreator = nil + args.RunTypeComponents = rtMock return args }, expectedErr: state.ErrNilAccountFactory, @@ -813,7 +814,9 @@ func TestCheckProcessorNilParameters(t *testing.T) { { args: func() blproc.ArgBaseProcessor { args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) - args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodec: nil} + rtMock := getRunTypeComponentsMock() + rtMock.DataCodec = nil + args.RunTypeComponents = rtMock return args }, expectedErr: errorsMx.ErrNilDataCodec, @@ -821,7 +824,9 @@ func TestCheckProcessorNilParameters(t *testing.T) { { args: func() blproc.ArgBaseProcessor { args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) - args.RunTypeComponents = &mock.RunTypeComponentsStub{AccountCreator: &stateMock.AccountsFactoryStub{}, DataCodec: &sovereign.DataCodecMock{}, TopicsChecker: nil} + rtMock := getRunTypeComponentsMock() + rtMock.TopicsChecker = nil + args.RunTypeComponents = rtMock return args }, expectedErr: errorsMx.ErrNilTopicsChecker, @@ -840,6 +845,15 @@ func TestCheckProcessorNilParameters(t *testing.T) { require.True(t, errors.Is(err, core.ErrInvalidEnableEpochsHandler)) } +func getRunTypeComponentsMock() *mock.RunTypeComponentsStub { + rt := components.GetRunTypeComponents() + return &mock.RunTypeComponentsStub{ + AccountCreator: rt.AccountsCreator(), + DataCodec: rt.DataCodecHandler(), + TopicsChecker: rt.TopicsCheckerHandler(), + } +} + func TestBlockProcessor_CheckBlockValidity(t *testing.T) { t.Parallel() From 58fea7523715227d992db8ba4f50ebd5591bfdbc Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Wed, 10 Apr 2024 09:39:43 +0300 Subject: [PATCH 20/28] fixes after review --- cmd/sovereignnode/sovereignNodeRunner.go | 30 +++++++++---------- factory/runType/sovereignRunTypeComponents.go | 13 ++++---- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/cmd/sovereignnode/sovereignNodeRunner.go b/cmd/sovereignnode/sovereignNodeRunner.go index 1d55c465cec..262a3fde838 100644 --- a/cmd/sovereignnode/sovereignNodeRunner.go +++ b/cmd/sovereignnode/sovereignNodeRunner.go @@ -309,13 +309,13 @@ func (snr *sovereignNodeRunner) executeOneComponentCreationCycle( } log.Debug("creating args for runType components") - argsSovereignRunTypeComponents, err := snr.CreateArgsRunTypeComponents() + argsSovereignRunTypeComponents, err := snr.CreateArgsRunTypeComponents(managedCoreComponents) if err != nil { return true, err } log.Debug("creating runType components") - managedRunTypeComponents, err := snr.CreateManagedRunTypeComponents(managedCoreComponents, *argsSovereignRunTypeComponents) + managedRunTypeComponents, err := snr.CreateManagedRunTypeComponents(*argsSovereignRunTypeComponents) if err != nil { return true, err } @@ -1668,7 +1668,7 @@ func (snr *sovereignNodeRunner) CreateManagedCryptoComponents( } // CreateArgsRunTypeComponents creates the arguments for sovereign runType components -func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents() (*runType.ArgsSovereignRunTypeComponents, error) { +func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents(coreComp mainFactory.CoreComponentsHandler) (*runType.ArgsSovereignRunTypeComponents, error) { sovereignCfg := snr.configs.SovereignExtraConfig codec := abi.NewDefaultCodec() @@ -1683,24 +1683,22 @@ func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents() (*runType.ArgsSove topicsCheckerHandler := incomingHeader.NewTopicsChecker() - return &runType.ArgsSovereignRunTypeComponents{ - Config: *sovereignCfg, - DataCodec: dataCodecHandler, - TopicsChecker: topicsCheckerHandler, - }, nil -} - -// CreateManagedRunTypeComponents creates the managed runType components -func (snr *sovereignNodeRunner) CreateManagedRunTypeComponents(coreComp mainFactory.CoreComponentsHandler, args runType.ArgsSovereignRunTypeComponents) (mainFactory.RunTypeComponentsHandler, error) { runTypeComponentsFactory, err := runType.NewRunTypeComponentsFactory(coreComp) if err != nil { return nil, fmt.Errorf("NewRunTypeComponentsFactory failed: %w", err) } - sovereignRunTypeComponentsFactory, err := runType.NewSovereignRunTypeComponentsFactory( - runTypeComponentsFactory, - args, - ) + return &runType.ArgsSovereignRunTypeComponents{ + RunTypeComponentsFactory: runTypeComponentsFactory, + Config: *sovereignCfg, + DataCodec: dataCodecHandler, + TopicsChecker: topicsCheckerHandler, + }, nil +} + +// CreateManagedRunTypeComponents creates the managed runType components +func (snr *sovereignNodeRunner) CreateManagedRunTypeComponents(args runType.ArgsSovereignRunTypeComponents) (mainFactory.RunTypeComponentsHandler, error) { + sovereignRunTypeComponentsFactory, err := runType.NewSovereignRunTypeComponentsFactory(args) if err != nil { return nil, fmt.Errorf("NewSovereignRunTypeComponentsFactory failed: %w", err) } diff --git a/factory/runType/sovereignRunTypeComponents.go b/factory/runType/sovereignRunTypeComponents.go index 754ae352402..b4ebe238f13 100644 --- a/factory/runType/sovereignRunTypeComponents.go +++ b/factory/runType/sovereignRunTypeComponents.go @@ -26,9 +26,10 @@ import ( ) type ArgsSovereignRunTypeComponents struct { - Config config.SovereignConfig - DataCodec sovereign.DataDecoderHandler - TopicsChecker sovereign.TopicsCheckerHandler + RunTypeComponentsFactory *runTypeComponentsFactory + Config config.SovereignConfig + DataCodec sovereign.DataDecoderHandler + TopicsChecker sovereign.TopicsCheckerHandler } type sovereignRunTypeComponentsFactory struct { @@ -39,8 +40,8 @@ type sovereignRunTypeComponentsFactory struct { } // NewSovereignRunTypeComponentsFactory will return a new instance of runTypeComponentsFactory -func NewSovereignRunTypeComponentsFactory(fact *runTypeComponentsFactory, args ArgsSovereignRunTypeComponents) (*sovereignRunTypeComponentsFactory, error) { - if check.IfNil(fact) { +func NewSovereignRunTypeComponentsFactory(args ArgsSovereignRunTypeComponents) (*sovereignRunTypeComponentsFactory, error) { + if check.IfNil(args.RunTypeComponentsFactory) { return nil, errors.ErrNilRunTypeComponentsFactory } if check.IfNil(args.DataCodec) { @@ -51,7 +52,7 @@ func NewSovereignRunTypeComponentsFactory(fact *runTypeComponentsFactory, args A } return &sovereignRunTypeComponentsFactory{ - runTypeComponentsFactory: fact, + runTypeComponentsFactory: args.RunTypeComponentsFactory, cfg: args.Config, dataCodec: args.DataCodec, topicsChecker: args.TopicsChecker, From 74fdb53c155a396d99bdc2bdc4e735124a0167ce Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Wed, 10 Apr 2024 09:43:35 +0300 Subject: [PATCH 21/28] tests fixes --- .../sovereignRunTypeComponents_test.go | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/factory/runType/sovereignRunTypeComponents_test.go b/factory/runType/sovereignRunTypeComponents_test.go index 0c245192e00..a107b770220 100644 --- a/factory/runType/sovereignRunTypeComponents_test.go +++ b/factory/runType/sovereignRunTypeComponents_test.go @@ -12,7 +12,10 @@ import ( ) func createSovRunTypeArgs() runType.ArgsSovereignRunTypeComponents { + rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) + return runType.ArgsSovereignRunTypeComponents{ + RunTypeComponentsFactory: rcf, Config: config.SovereignConfig{ GenesisConfig: config.GenesisConfig{ NativeESDT: "WEGLD", @@ -27,29 +30,28 @@ func TestNewSovereignRunTypeComponentsFactory(t *testing.T) { t.Parallel() t.Run("nil runType components factory", func(t *testing.T) { - srcf, err := runType.NewSovereignRunTypeComponentsFactory(nil, createSovRunTypeArgs()) + sovArgs := createSovRunTypeArgs() + sovArgs.RunTypeComponentsFactory = nil + srcf, err := runType.NewSovereignRunTypeComponentsFactory(sovArgs) require.Nil(t, srcf) require.ErrorIs(t, errors.ErrNilRunTypeComponentsFactory, err) }) t.Run("nil data codec", func(t *testing.T) { - rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) sovArgs := createSovRunTypeArgs() sovArgs.DataCodec = nil - srcf, err := runType.NewSovereignRunTypeComponentsFactory(rcf, sovArgs) + srcf, err := runType.NewSovereignRunTypeComponentsFactory(sovArgs) require.Nil(t, srcf) require.ErrorIs(t, errors.ErrNilDataCodec, err) }) t.Run("nil topics checker", func(t *testing.T) { - rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) sovArgs := createSovRunTypeArgs() sovArgs.TopicsChecker = nil - srcf, err := runType.NewSovereignRunTypeComponentsFactory(rcf, sovArgs) + srcf, err := runType.NewSovereignRunTypeComponentsFactory(sovArgs) require.Nil(t, srcf) require.ErrorIs(t, errors.ErrNilTopicsChecker, err) }) t.Run("should work", func(t *testing.T) { - rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) - srcf, err := runType.NewSovereignRunTypeComponentsFactory(rcf, createSovRunTypeArgs()) + srcf, err := runType.NewSovereignRunTypeComponentsFactory(createSovRunTypeArgs()) require.NotNil(t, srcf) require.NoError(t, err) }) @@ -58,8 +60,7 @@ func TestNewSovereignRunTypeComponentsFactory(t *testing.T) { func TestSovereignRunTypeComponentsFactory_Create(t *testing.T) { t.Parallel() - rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) - srcf, _ := runType.NewSovereignRunTypeComponentsFactory(rcf, createSovRunTypeArgs()) + srcf, _ := runType.NewSovereignRunTypeComponentsFactory(createSovRunTypeArgs()) rc, err := srcf.Create() require.NoError(t, err) @@ -69,8 +70,7 @@ func TestSovereignRunTypeComponentsFactory_Create(t *testing.T) { func TestSovereignRunTypeComponentsFactory_Close(t *testing.T) { t.Parallel() - rcf, _ := runType.NewRunTypeComponentsFactory(createCoreComponents()) - srcf, _ := runType.NewSovereignRunTypeComponentsFactory(rcf, createSovRunTypeArgs()) + srcf, _ := runType.NewSovereignRunTypeComponentsFactory(createSovRunTypeArgs()) rc, err := srcf.Create() require.NoError(t, err) From 0a6dad176a5961901b8981dfdb0d5fb7fb2d5ae7 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Wed, 10 Apr 2024 09:48:43 +0300 Subject: [PATCH 22/28] components fixes --- testscommon/components/components.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/testscommon/components/components.go b/testscommon/components/components.go index 44df85d9ef7..81f6fd550cc 100644 --- a/testscommon/components/components.go +++ b/testscommon/components/components.go @@ -897,12 +897,7 @@ func GetRunTypeComponentsWithCoreComp(coreComponents factory.CoreComponentsHandl // GetSovereignRunTypeComponents - func GetSovereignRunTypeComponents() factory.RunTypeComponentsHolder { - runTypeComponentsFactory, _ := runType.NewRunTypeComponentsFactory(&mockCoreComp.CoreComponentsStub{ - HasherField: &hashingMocks.HasherMock{}, - InternalMarshalizerField: &marshallerMock.MarshalizerMock{}, - EnableEpochsHandlerField: &enableEpochsHandlerMock.EnableEpochsHandlerStub{}, - }) - sovereignComponentsFactory, _ := runType.NewSovereignRunTypeComponentsFactory(runTypeComponentsFactory, createSovRunTypeArgs()) + sovereignComponentsFactory, _ := runType.NewSovereignRunTypeComponentsFactory(createSovRunTypeArgs()) managedRunTypeComponents, err := runType.NewManagedRunTypeComponents(sovereignComponentsFactory) if err != nil { log.Error("getRunTypeComponents NewManagedRunTypeComponents", "error", err.Error()) @@ -917,7 +912,14 @@ func GetSovereignRunTypeComponents() factory.RunTypeComponentsHolder { } func createSovRunTypeArgs() runType.ArgsSovereignRunTypeComponents { + runTypeComponentsFactory, _ := runType.NewRunTypeComponentsFactory(&mockCoreComp.CoreComponentsStub{ + HasherField: &hashingMocks.HasherMock{}, + InternalMarshalizerField: &marshallerMock.MarshalizerMock{}, + EnableEpochsHandlerField: &enableEpochsHandlerMock.EnableEpochsHandlerStub{}, + }) + return runType.ArgsSovereignRunTypeComponents{ + RunTypeComponentsFactory: runTypeComponentsFactory, Config: config.SovereignConfig{ GenesisConfig: config.GenesisConfig{ NativeESDT: "WEGLD-ab47da", From b0dea1e1a36d1c04c127cf1ab22936aa9b773ab6 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Wed, 10 Apr 2024 09:51:01 +0300 Subject: [PATCH 23/28] components fixes --- genesis/process/sovereignGenesisBlockCreator_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/genesis/process/sovereignGenesisBlockCreator_test.go b/genesis/process/sovereignGenesisBlockCreator_test.go index 6ab1cae3355..c851b16fc3c 100644 --- a/genesis/process/sovereignGenesisBlockCreator_test.go +++ b/genesis/process/sovereignGenesisBlockCreator_test.go @@ -88,8 +88,9 @@ func createSovRunTypeComps(t *testing.T) runTypeComponentsHandler { }) require.Nil(t, err) - sovRunTypeFactory, err := factoryRunType.NewSovereignRunTypeComponentsFactory(runTypeFactory, + sovRunTypeFactory, err := factoryRunType.NewSovereignRunTypeComponentsFactory( factoryRunType.ArgsSovereignRunTypeComponents{ + RunTypeComponentsFactory: runTypeFactory, Config: config.SovereignConfig{ GenesisConfig: config.GenesisConfig{ NativeESDT: sovereignNativeToken, From a913adb3f7e5a81f59293829d67439c0f81e852b Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Wed, 10 Apr 2024 18:01:00 +0300 Subject: [PATCH 24/28] renamings and stuff --- cmd/sovereignnode/sovereignNodeRunner.go | 6 +- factory/interface.go | 2 +- factory/processing/processComponents.go | 2 +- factory/processing/processComponents_test.go | 2 +- factory/runType/runTypeComponents.go | 4 +- factory/runType/runTypeComponentsHandler.go | 108 +++++++++--------- .../runType/runTypeComponentsHandler_test.go | 4 +- factory/runType/sovereignRunTypeComponents.go | 2 +- integrationTests/testProcessorNode.go | 2 +- process/block/baseProcess.go | 2 +- process/block/baseProcess_test.go | 2 +- process/block/interface.go | 2 +- .../block/sovereignBlockProcessorFactory.go | 2 +- process/mock/runTypeComponentsStub.go | 2 +- .../mainFactoryMocks/runTypeComponentStub.go | 4 +- 15 files changed, 73 insertions(+), 73 deletions(-) diff --git a/cmd/sovereignnode/sovereignNodeRunner.go b/cmd/sovereignnode/sovereignNodeRunner.go index 262a3fde838..e6091dd5bef 100644 --- a/cmd/sovereignnode/sovereignNodeRunner.go +++ b/cmd/sovereignnode/sovereignNodeRunner.go @@ -1676,7 +1676,7 @@ func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents(coreComp mainFactory Serializer: abi.NewSerializer(codec), } - dataCodecHandler, err := dataCodec.NewDataCodec(argsDataCodec) + dataDecoderHandler, err := dataCodec.NewDataCodec(argsDataCodec) if err != nil { return nil, err } @@ -1691,7 +1691,7 @@ func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents(coreComp mainFactory return &runType.ArgsSovereignRunTypeComponents{ RunTypeComponentsFactory: runTypeComponentsFactory, Config: *sovereignCfg, - DataCodec: dataCodecHandler, + DataCodec: dataDecoderHandler, TopicsChecker: topicsCheckerHandler, }, nil } @@ -1894,7 +1894,7 @@ func createIncomingHeaderProcessor( Hasher: hasher, MainChainNotarizationStartRound: mainChainNotarizationStartRound, OutGoingOperationsPool: outGoingOperationsPool, - DataCodec: runTypeComponents.DataCodecHandler(), + DataCodec: runTypeComponents.DataDecoderHandler(), TopicsChecker: runTypeComponents.TopicsCheckerHandler(), } diff --git a/factory/interface.go b/factory/interface.go index 1ce4d23df11..3d369b6a997 100644 --- a/factory/interface.go +++ b/factory/interface.go @@ -595,7 +595,7 @@ type RunTypeComponentsHolder interface { VmContainerMetaFactoryCreator() factoryVm.VmContainerCreator VmContainerShardFactoryCreator() factoryVm.VmContainerCreator AccountsCreator() state.AccountFactory - DataCodecHandler() sovereign.DataDecoderHandler + DataDecoderHandler() sovereign.DataDecoderHandler TopicsCheckerHandler() sovereign.TopicsCheckerHandler Create() error Close() error diff --git a/factory/processing/processComponents.go b/factory/processing/processComponents.go index a3eb264dc8d..d5ad51c91fa 100644 --- a/factory/processing/processComponents.go +++ b/factory/processing/processComponents.go @@ -2148,7 +2148,7 @@ func checkProcessComponentsArgs(args ProcessComponentsFactoryArgs) error { if check.IfNil(args.RunTypeComponents.AccountsCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilAccountsCreator) } - if check.IfNil(args.RunTypeComponents.DataCodecHandler()) { + if check.IfNil(args.RunTypeComponents.DataDecoderHandler()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilDataCodec) } if check.IfNil(args.RunTypeComponents.TopicsCheckerHandler()) { diff --git a/factory/processing/processComponents_test.go b/factory/processing/processComponents_test.go index c328cd50047..50dd201d1cb 100644 --- a/factory/processing/processComponents_test.go +++ b/factory/processing/processComponents_test.go @@ -958,7 +958,7 @@ func getRunTypeComponentsMock() *mainFactoryMocks.RunTypeComponentsStub { VmContainerMetaFactory: rt.VmContainerMetaFactoryCreator(), VmContainerShardFactory: rt.VmContainerShardFactoryCreator(), AccountCreator: rt.AccountsCreator(), - DataCodec: rt.DataCodecHandler(), + DataCodec: rt.DataDecoderHandler(), TopicsChecker: rt.TopicsCheckerHandler(), } } diff --git a/factory/runType/runTypeComponents.go b/factory/runType/runTypeComponents.go index 990f5652be4..e3f60a62a41 100644 --- a/factory/runType/runTypeComponents.go +++ b/factory/runType/runTypeComponents.go @@ -54,7 +54,7 @@ type runTypeComponents struct { vmContainerMetaFactory factoryVm.VmContainerCreator vmContainerShardFactory factoryVm.VmContainerCreator accountsCreator state.AccountFactory - dataCodecHandler sovereign.DataDecoderHandler + dataDecoderHandler sovereign.DataDecoderHandler topicsCheckerHandler sovereign.TopicsCheckerHandler } @@ -176,7 +176,7 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { vmContainerMetaFactory: vmContainerMetaCreator, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, - dataCodecHandler: disabled.NewDisabledDataCodec(), + dataDecoderHandler: disabled.NewDisabledDataCodec(), topicsCheckerHandler: disabled.NewDisabledTopicsChecker(), }, nil } diff --git a/factory/runType/runTypeComponentsHandler.go b/factory/runType/runTypeComponentsHandler.go index 4042dc30b7f..f1d666b4c1c 100644 --- a/factory/runType/runTypeComponentsHandler.go +++ b/factory/runType/runTypeComponentsHandler.go @@ -32,8 +32,8 @@ var _ factory.RunTypeComponentsHolder = (*managedRunTypeComponents)(nil) type managedRunTypeComponents struct { *runTypeComponents - factory runTypeComponentsCreator - mutStateComponents sync.RWMutex + factory runTypeComponentsCreator + mutRunTypeComponents sync.RWMutex } // NewManagedRunTypeComponents returns a news instance of managedRunTypeComponents @@ -55,17 +55,17 @@ func (mrc *managedRunTypeComponents) Create() error { return fmt.Errorf("%w: %v", errors.ErrRunTypeComponentsFactoryCreate, err) } - mrc.mutStateComponents.Lock() + mrc.mutRunTypeComponents.Lock() mrc.runTypeComponents = rtc - mrc.mutStateComponents.Unlock() + mrc.mutRunTypeComponents.Unlock() return nil } // Close will close all underlying subcomponents func (mrc *managedRunTypeComponents) Close() error { - mrc.mutStateComponents.Lock() - defer mrc.mutStateComponents.Unlock() + mrc.mutRunTypeComponents.Lock() + defer mrc.mutRunTypeComponents.Unlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -82,8 +82,8 @@ func (mrc *managedRunTypeComponents) Close() error { // CheckSubcomponents verifies all subcomponents func (mrc *managedRunTypeComponents) CheckSubcomponents() error { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return errors.ErrNilRunTypeComponents @@ -145,7 +145,7 @@ func (mrc *managedRunTypeComponents) CheckSubcomponents() error { if check.IfNil(mrc.accountsCreator) { return errors.ErrNilAccountsCreator } - if check.IfNil(mrc.dataCodecHandler) { + if check.IfNil(mrc.dataDecoderHandler) { return errors.ErrNilDataCodec } if check.IfNil(mrc.topicsCheckerHandler) { @@ -156,8 +156,8 @@ func (mrc *managedRunTypeComponents) CheckSubcomponents() error { // AdditionalStorageServiceCreator returns the additional storage service creator func (mrc *managedRunTypeComponents) AdditionalStorageServiceCreator() process.AdditionalStorageServiceCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -168,8 +168,8 @@ func (mrc *managedRunTypeComponents) AdditionalStorageServiceCreator() process.A // BlockProcessorCreator returns the block processor creator func (mrc *managedRunTypeComponents) BlockProcessorCreator() processBlock.BlockProcessorCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -180,8 +180,8 @@ func (mrc *managedRunTypeComponents) BlockProcessorCreator() processBlock.BlockP // BlockChainHookHandlerCreator returns the blockchain hook handler creator func (mrc *managedRunTypeComponents) BlockChainHookHandlerCreator() hooks.BlockChainHookHandlerCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -192,8 +192,8 @@ func (mrc *managedRunTypeComponents) BlockChainHookHandlerCreator() hooks.BlockC // BootstrapperFromStorageCreator returns the bootstrapper from storage creator func (mrc *managedRunTypeComponents) BootstrapperFromStorageCreator() storageBootstrap.BootstrapperFromStorageCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -204,8 +204,8 @@ func (mrc *managedRunTypeComponents) BootstrapperFromStorageCreator() storageBoo // BootstrapperCreator returns the bootstrapper creator func (mrc *managedRunTypeComponents) BootstrapperCreator() storageBootstrap.BootstrapperCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -216,8 +216,8 @@ func (mrc *managedRunTypeComponents) BootstrapperCreator() storageBootstrap.Boot // BlockTrackerCreator returns the block tracker creator func (mrc *managedRunTypeComponents) BlockTrackerCreator() track.BlockTrackerCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -228,8 +228,8 @@ func (mrc *managedRunTypeComponents) BlockTrackerCreator() track.BlockTrackerCre // EpochStartBootstrapperCreator returns the epoch start bootstrapper creator func (mrc *managedRunTypeComponents) EpochStartBootstrapperCreator() bootstrap.EpochStartBootstrapperCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -240,8 +240,8 @@ func (mrc *managedRunTypeComponents) EpochStartBootstrapperCreator() bootstrap.E // ForkDetectorCreator returns the fork detector creator func (mrc *managedRunTypeComponents) ForkDetectorCreator() processSync.ForkDetectorCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -252,8 +252,8 @@ func (mrc *managedRunTypeComponents) ForkDetectorCreator() processSync.ForkDetec // HeaderValidatorCreator returns the header validator creator func (mrc *managedRunTypeComponents) HeaderValidatorCreator() processBlock.HeaderValidatorCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -264,8 +264,8 @@ func (mrc *managedRunTypeComponents) HeaderValidatorCreator() processBlock.Heade // RequestHandlerCreator returns the request handler creator func (mrc *managedRunTypeComponents) RequestHandlerCreator() requestHandlers.RequestHandlerCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -276,8 +276,8 @@ func (mrc *managedRunTypeComponents) RequestHandlerCreator() requestHandlers.Req // ScheduledTxsExecutionCreator returns the scheduled transactions execution creator func (mrc *managedRunTypeComponents) ScheduledTxsExecutionCreator() preprocess.ScheduledTxsExecutionCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -288,8 +288,8 @@ func (mrc *managedRunTypeComponents) ScheduledTxsExecutionCreator() preprocess.S // TransactionCoordinatorCreator returns the transaction coordinator creator func (mrc *managedRunTypeComponents) TransactionCoordinatorCreator() coordinator.TransactionCoordinatorCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -300,8 +300,8 @@ func (mrc *managedRunTypeComponents) TransactionCoordinatorCreator() coordinator // ValidatorStatisticsProcessorCreator returns the validator statistics processor creator func (mrc *managedRunTypeComponents) ValidatorStatisticsProcessorCreator() peer.ValidatorStatisticsProcessorCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -312,8 +312,8 @@ func (mrc *managedRunTypeComponents) ValidatorStatisticsProcessorCreator() peer. // SCProcessorCreator returns the smart contract processor creator func (mrc *managedRunTypeComponents) SCProcessorCreator() scrCommon.SCProcessorCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -324,8 +324,8 @@ func (mrc *managedRunTypeComponents) SCProcessorCreator() scrCommon.SCProcessorC // SCResultsPreProcessorCreator returns the smart contract result pre-processor creator func (mrc *managedRunTypeComponents) SCResultsPreProcessorCreator() preprocess.SmartContractResultPreProcessorCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -336,8 +336,8 @@ func (mrc *managedRunTypeComponents) SCResultsPreProcessorCreator() preprocess.S // ConsensusModel returns the consensus model func (mrc *managedRunTypeComponents) ConsensusModel() consensus.ConsensusModel { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return consensus.ConsensusModelInvalid @@ -348,8 +348,8 @@ func (mrc *managedRunTypeComponents) ConsensusModel() consensus.ConsensusModel { // VmContainerMetaFactoryCreator returns the vm container meta factory creator func (mrc *managedRunTypeComponents) VmContainerMetaFactoryCreator() factoryVm.VmContainerCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -360,8 +360,8 @@ func (mrc *managedRunTypeComponents) VmContainerMetaFactoryCreator() factoryVm.V // VmContainerShardFactoryCreator returns the vm container shard factory creator func (mrc *managedRunTypeComponents) VmContainerShardFactoryCreator() factoryVm.VmContainerCreator { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -372,8 +372,8 @@ func (mrc *managedRunTypeComponents) VmContainerShardFactoryCreator() factoryVm. // AccountsCreator returns the accounts factory func (mrc *managedRunTypeComponents) AccountsCreator() state.AccountFactory { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil @@ -382,22 +382,22 @@ func (mrc *managedRunTypeComponents) AccountsCreator() state.AccountFactory { return mrc.runTypeComponents.accountsCreator } -// DataCodecHandler returns the data codec factory -func (mrc *managedRunTypeComponents) DataCodecHandler() sovereign.DataDecoderHandler { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() +// DataDecoderHandler returns the data codec factory +func (mrc *managedRunTypeComponents) DataDecoderHandler() sovereign.DataDecoderHandler { + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil } - return mrc.runTypeComponents.dataCodecHandler + return mrc.runTypeComponents.dataDecoderHandler } // TopicsCheckerHandler returns the topics checker factory func (mrc *managedRunTypeComponents) TopicsCheckerHandler() sovereign.TopicsCheckerHandler { - mrc.mutStateComponents.RLock() - defer mrc.mutStateComponents.RUnlock() + mrc.mutRunTypeComponents.RLock() + defer mrc.mutRunTypeComponents.RUnlock() if check.IfNil(mrc.runTypeComponents) { return nil diff --git a/factory/runType/runTypeComponentsHandler_test.go b/factory/runType/runTypeComponentsHandler_test.go index 50ec0c1ce15..27bfe4c5bb4 100644 --- a/factory/runType/runTypeComponentsHandler_test.go +++ b/factory/runType/runTypeComponentsHandler_test.go @@ -65,7 +65,7 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.Nil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) require.Nil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) require.Nil(t, managedRunTypeComponents.AccountsCreator()) - require.Nil(t, managedRunTypeComponents.DataCodecHandler()) + require.Nil(t, managedRunTypeComponents.DataDecoderHandler()) require.Nil(t, managedRunTypeComponents.TopicsCheckerHandler()) err = managedRunTypeComponents.Create() @@ -89,7 +89,7 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.NotNil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) require.NotNil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) require.NotNil(t, managedRunTypeComponents.AccountsCreator()) - require.NotNil(t, managedRunTypeComponents.DataCodecHandler()) + require.NotNil(t, managedRunTypeComponents.DataDecoderHandler()) require.NotNil(t, managedRunTypeComponents.TopicsCheckerHandler()) require.Equal(t, factory.RunTypeComponentsName, managedRunTypeComponents.String()) diff --git a/factory/runType/sovereignRunTypeComponents.go b/factory/runType/sovereignRunTypeComponents.go index b4ebe238f13..3613f2952a9 100644 --- a/factory/runType/sovereignRunTypeComponents.go +++ b/factory/runType/sovereignRunTypeComponents.go @@ -178,7 +178,7 @@ func (rcf *sovereignRunTypeComponentsFactory) Create() (*runTypeComponents, erro vmContainerMetaFactory: rtc.vmContainerMetaFactory, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, - dataCodecHandler: rcf.dataCodec, + dataDecoderHandler: rcf.dataCodec, topicsCheckerHandler: rcf.topicsChecker, }, nil } diff --git a/integrationTests/testProcessorNode.go b/integrationTests/testProcessorNode.go index 2db91b4c381..18285d8194f 100644 --- a/integrationTests/testProcessorNode.go +++ b/integrationTests/testProcessorNode.go @@ -3318,7 +3318,7 @@ func GetDefaultRunTypeComponents(consensusModel consensus.ConsensusModel) *mainF SCResultsPreProcessorFactory: rt.SCResultsPreProcessorCreator(), AccountCreator: rt.AccountsCreator(), ConsensusModelType: consensusModel, - DataCodec: rt.DataCodecHandler(), + DataCodec: rt.DataDecoderHandler(), TopicsChecker: rt.TopicsCheckerHandler(), } } diff --git a/process/block/baseProcess.go b/process/block/baseProcess.go index 3214ba88ff8..a0a7294c911 100644 --- a/process/block/baseProcess.go +++ b/process/block/baseProcess.go @@ -597,7 +597,7 @@ func checkProcessorParameters(arguments ArgBaseProcessor) error { if check.IfNil(arguments.RunTypeComponents.AccountsCreator()) { return state.ErrNilAccountFactory } - if check.IfNil(arguments.RunTypeComponents.DataCodecHandler()) { + if check.IfNil(arguments.RunTypeComponents.DataDecoderHandler()) { return errors.ErrNilDataCodec } if check.IfNil(arguments.RunTypeComponents.TopicsCheckerHandler()) { diff --git a/process/block/baseProcess_test.go b/process/block/baseProcess_test.go index 034ae2d99bc..03002d2f67b 100644 --- a/process/block/baseProcess_test.go +++ b/process/block/baseProcess_test.go @@ -849,7 +849,7 @@ func getRunTypeComponentsMock() *mock.RunTypeComponentsStub { rt := components.GetRunTypeComponents() return &mock.RunTypeComponentsStub{ AccountCreator: rt.AccountsCreator(), - DataCodec: rt.DataCodecHandler(), + DataCodec: rt.DataDecoderHandler(), TopicsChecker: rt.TopicsCheckerHandler(), } } diff --git a/process/block/interface.go b/process/block/interface.go index fc1a0127c62..772da7673ed 100644 --- a/process/block/interface.go +++ b/process/block/interface.go @@ -69,7 +69,7 @@ type HeaderValidatorCreator interface { type runTypeComponentsHolder interface { AccountsCreator() state.AccountFactory - DataCodecHandler() sovereign.DataDecoderHandler + DataDecoderHandler() sovereign.DataDecoderHandler TopicsCheckerHandler() sovereign.TopicsCheckerHandler IsInterfaceNil() bool } diff --git a/process/block/sovereignBlockProcessorFactory.go b/process/block/sovereignBlockProcessorFactory.go index a3e387c3307..d12389ff4b5 100644 --- a/process/block/sovereignBlockProcessorFactory.go +++ b/process/block/sovereignBlockProcessorFactory.go @@ -41,7 +41,7 @@ func (s *sovereignBlockProcessorFactory) CreateBlockProcessor(argumentsBaseProce outgoingOpFormatter, err := sovereign.CreateOutgoingOperationsFormatter( argumentsBaseProcessor.Config.SovereignConfig.OutgoingSubscribedEvents.SubscribedEvents, argumentsBaseProcessor.CoreComponents.AddressPubKeyConverter(), - argumentsBaseProcessor.RunTypeComponents.DataCodecHandler(), + argumentsBaseProcessor.RunTypeComponents.DataDecoderHandler(), argumentsBaseProcessor.RunTypeComponents.TopicsCheckerHandler()) if err != nil { return nil, err diff --git a/process/mock/runTypeComponentsStub.go b/process/mock/runTypeComponentsStub.go index 40ea96a5d58..a360c18a72d 100644 --- a/process/mock/runTypeComponentsStub.go +++ b/process/mock/runTypeComponentsStub.go @@ -29,7 +29,7 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { } // DataCodecHandler - -func (r *RunTypeComponentsStub) DataCodecHandler() sovereign.DataDecoderHandler { +func (r *RunTypeComponentsStub) DataDecoderHandler() sovereign.DataDecoderHandler { return r.DataCodec } diff --git a/testscommon/mainFactoryMocks/runTypeComponentStub.go b/testscommon/mainFactoryMocks/runTypeComponentStub.go index d97e30f3e9b..7482d989f69 100644 --- a/testscommon/mainFactoryMocks/runTypeComponentStub.go +++ b/testscommon/mainFactoryMocks/runTypeComponentStub.go @@ -189,8 +189,8 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { return r.AccountCreator } -// DataCodecHandler - -func (r *RunTypeComponentsStub) DataCodecHandler() sovereign.DataDecoderHandler { +// DataDecoderHandler - +func (r *RunTypeComponentsStub) DataDecoderHandler() sovereign.DataDecoderHandler { return r.DataCodec } From 01443e40a5c5b8a9db7dea6ec0017c947c2a365c Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Thu, 11 Apr 2024 10:22:14 +0300 Subject: [PATCH 25/28] consensul model TODO --- factory/processing/processComponents.go | 1 + 1 file changed, 1 insertion(+) diff --git a/factory/processing/processComponents.go b/factory/processing/processComponents.go index d5ad51c91fa..2a7fd3196b0 100644 --- a/factory/processing/processComponents.go +++ b/factory/processing/processComponents.go @@ -2136,6 +2136,7 @@ func checkProcessComponentsArgs(args ProcessComponentsFactoryArgs) error { if check.IfNil(args.RunTypeComponents.SCProcessorCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilSCProcessorCreator) } + // TODO make sure consensus model is correct on higher level if args.RunTypeComponents.ConsensusModel() == consensus.ConsensusModelInvalid { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrInvalidConsensusModel) } From 74a3d3fe37ebb478541ab8a5f4ac528ed010e97c Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Mon, 15 Apr 2024 13:28:10 +0300 Subject: [PATCH 26/28] fixes after review --- cmd/sovereignnode/sovereignNodeRunner.go | 4 +--- factory/processing/processComponents.go | 2 +- factory/runType/runTypeComponentsHandler_test.go | 2 +- process/block/baseProcess_test.go | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/cmd/sovereignnode/sovereignNodeRunner.go b/cmd/sovereignnode/sovereignNodeRunner.go index e6091dd5bef..c345b71f276 100644 --- a/cmd/sovereignnode/sovereignNodeRunner.go +++ b/cmd/sovereignnode/sovereignNodeRunner.go @@ -1681,8 +1681,6 @@ func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents(coreComp mainFactory return nil, err } - topicsCheckerHandler := incomingHeader.NewTopicsChecker() - runTypeComponentsFactory, err := runType.NewRunTypeComponentsFactory(coreComp) if err != nil { return nil, fmt.Errorf("NewRunTypeComponentsFactory failed: %w", err) @@ -1692,7 +1690,7 @@ func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents(coreComp mainFactory RunTypeComponentsFactory: runTypeComponentsFactory, Config: *sovereignCfg, DataCodec: dataDecoderHandler, - TopicsChecker: topicsCheckerHandler, + TopicsChecker: incomingHeader.NewTopicsChecker(), }, nil } diff --git a/factory/processing/processComponents.go b/factory/processing/processComponents.go index 2a7fd3196b0..e739428b7fa 100644 --- a/factory/processing/processComponents.go +++ b/factory/processing/processComponents.go @@ -2136,7 +2136,7 @@ func checkProcessComponentsArgs(args ProcessComponentsFactoryArgs) error { if check.IfNil(args.RunTypeComponents.SCProcessorCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilSCProcessorCreator) } - // TODO make sure consensus model is correct on higher level + // TODO make sure consensus model is correct on higher level - task MX-15366 if args.RunTypeComponents.ConsensusModel() == consensus.ConsensusModelInvalid { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrInvalidConsensusModel) } diff --git a/factory/runType/runTypeComponentsHandler_test.go b/factory/runType/runTypeComponentsHandler_test.go index 27bfe4c5bb4..e225a4bb15a 100644 --- a/factory/runType/runTypeComponentsHandler_test.go +++ b/factory/runType/runTypeComponentsHandler_test.go @@ -85,7 +85,7 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.NotNil(t, managedRunTypeComponents.AdditionalStorageServiceCreator()) require.NotNil(t, managedRunTypeComponents.SCProcessorCreator()) require.NotNil(t, managedRunTypeComponents.SCResultsPreProcessorCreator()) - require.NotEqual(t, consensus.ConsensusModelInvalid, managedRunTypeComponents.ConsensusModel()) + require.Equal(t, consensus.ConsensusModelV1, managedRunTypeComponents.ConsensusModel()) require.NotNil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) require.NotNil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) require.NotNil(t, managedRunTypeComponents.AccountsCreator()) diff --git a/process/block/baseProcess_test.go b/process/block/baseProcess_test.go index 03002d2f67b..2c1f36236d2 100644 --- a/process/block/baseProcess_test.go +++ b/process/block/baseProcess_test.go @@ -846,7 +846,7 @@ func TestCheckProcessorNilParameters(t *testing.T) { } func getRunTypeComponentsMock() *mock.RunTypeComponentsStub { - rt := components.GetRunTypeComponents() + rt := mock.NewRunTypeComponentsStub() return &mock.RunTypeComponentsStub{ AccountCreator: rt.AccountsCreator(), DataCodec: rt.DataDecoderHandler(), From 2f96d57d59a383fbf6bc63567f0e3e9114aa1516 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Mon, 15 Apr 2024 13:53:20 +0300 Subject: [PATCH 27/28] fixes after review, renamed everywhere to DataCodec --- cmd/sovereignnode/dataCodec/dataCodec_test.go | 2 +- cmd/sovereignnode/dataCodec/interface.go | 4 ++-- .../incomingHeader/incomingEventsProcessor.go | 2 +- .../incomingHeader/incomingHeaderProcessor.go | 2 +- cmd/sovereignnode/sovereignNodeRunner.go | 6 +++--- factory/interface.go | 2 +- factory/processing/processComponents.go | 2 +- factory/processing/processComponents_test.go | 4 ++-- factory/runType/runTypeComponents.go | 4 ++-- factory/runType/runTypeComponentsHandler.go | 8 ++++---- factory/runType/runTypeComponentsHandler_test.go | 4 ++-- factory/runType/sovereignRunTypeComponents.go | 6 +++--- integrationTests/testProcessorNode.go | 2 +- process/block/baseProcess.go | 2 +- process/block/baseProcess_test.go | 15 +++------------ process/block/interface.go | 2 +- process/block/sovereign/interface.go | 4 ++-- process/block/sovereign/outgoingOperations.go | 4 ++-- .../block/sovereign/outgoingOperationsFactory.go | 2 +- process/block/sovereignBlockProcessorFactory.go | 2 +- process/mock/runTypeComponentsStub.go | 4 ++-- .../mainFactoryMocks/runTypeComponentStub.go | 6 +++--- 22 files changed, 40 insertions(+), 49 deletions(-) diff --git a/cmd/sovereignnode/dataCodec/dataCodec_test.go b/cmd/sovereignnode/dataCodec/dataCodec_test.go index 4e6d4e40b31..731adb3e340 100644 --- a/cmd/sovereignnode/dataCodec/dataCodec_test.go +++ b/cmd/sovereignnode/dataCodec/dataCodec_test.go @@ -13,7 +13,7 @@ import ( "github.com/stretchr/testify/require" ) -func createDataCodec() SovereignDataDecoder { +func createDataCodec() SovereignDataCodec { codec := abi.NewDefaultCodec() args := ArgsDataCodec{ Serializer: abi.NewSerializer(codec), diff --git a/cmd/sovereignnode/dataCodec/interface.go b/cmd/sovereignnode/dataCodec/interface.go index fb9d1c4b14e..0928ccf7cc6 100644 --- a/cmd/sovereignnode/dataCodec/interface.go +++ b/cmd/sovereignnode/dataCodec/interface.go @@ -27,8 +27,8 @@ type OperationDataEncoder interface { SerializeOperation(operation sovereign.Operation) ([]byte, error) } -// SovereignDataDecoder is the interface for serializing/deserializing data -type SovereignDataDecoder interface { +// SovereignDataCodec is the interface for serializing/deserializing data +type SovereignDataCodec interface { SerializeEventData(eventData sovereign.EventData) ([]byte, error) DeserializeEventData(data []byte) (*sovereign.EventData, error) SerializeTokenData(tokenData sovereign.EsdtTokenData) ([]byte, error) diff --git a/cmd/sovereignnode/incomingHeader/incomingEventsProcessor.go b/cmd/sovereignnode/incomingHeader/incomingEventsProcessor.go index cf71b099e73..553aea12d9e 100644 --- a/cmd/sovereignnode/incomingHeader/incomingEventsProcessor.go +++ b/cmd/sovereignnode/incomingHeader/incomingEventsProcessor.go @@ -58,7 +58,7 @@ type eventsResult struct { type incomingEventsProcessor struct { marshaller marshal.Marshalizer hasher hashing.Hasher - dataCodec dataCodec.SovereignDataDecoder + dataCodec dataCodec.SovereignDataCodec topicsChecker TopicsChecker } diff --git a/cmd/sovereignnode/incomingHeader/incomingHeaderProcessor.go b/cmd/sovereignnode/incomingHeader/incomingHeaderProcessor.go index a8d06cef1e5..2f3ad57ed8c 100644 --- a/cmd/sovereignnode/incomingHeader/incomingHeaderProcessor.go +++ b/cmd/sovereignnode/incomingHeader/incomingHeaderProcessor.go @@ -27,7 +27,7 @@ type ArgsIncomingHeaderProcessor struct { Marshaller marshal.Marshalizer Hasher hashing.Hasher MainChainNotarizationStartRound uint64 - DataCodec dataCodec.SovereignDataDecoder + DataCodec dataCodec.SovereignDataCodec TopicsChecker TopicsChecker } diff --git a/cmd/sovereignnode/sovereignNodeRunner.go b/cmd/sovereignnode/sovereignNodeRunner.go index c345b71f276..3e51f160352 100644 --- a/cmd/sovereignnode/sovereignNodeRunner.go +++ b/cmd/sovereignnode/sovereignNodeRunner.go @@ -1676,7 +1676,7 @@ func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents(coreComp mainFactory Serializer: abi.NewSerializer(codec), } - dataDecoderHandler, err := dataCodec.NewDataCodec(argsDataCodec) + dataCodecHandler, err := dataCodec.NewDataCodec(argsDataCodec) if err != nil { return nil, err } @@ -1689,7 +1689,7 @@ func (snr *sovereignNodeRunner) CreateArgsRunTypeComponents(coreComp mainFactory return &runType.ArgsSovereignRunTypeComponents{ RunTypeComponentsFactory: runTypeComponentsFactory, Config: *sovereignCfg, - DataCodec: dataDecoderHandler, + DataCodec: dataCodecHandler, TopicsChecker: incomingHeader.NewTopicsChecker(), }, nil } @@ -1892,7 +1892,7 @@ func createIncomingHeaderProcessor( Hasher: hasher, MainChainNotarizationStartRound: mainChainNotarizationStartRound, OutGoingOperationsPool: outGoingOperationsPool, - DataCodec: runTypeComponents.DataDecoderHandler(), + DataCodec: runTypeComponents.DataCodecHandler(), TopicsChecker: runTypeComponents.TopicsCheckerHandler(), } diff --git a/factory/interface.go b/factory/interface.go index 3d369b6a997..23dfc2e9313 100644 --- a/factory/interface.go +++ b/factory/interface.go @@ -595,7 +595,7 @@ type RunTypeComponentsHolder interface { VmContainerMetaFactoryCreator() factoryVm.VmContainerCreator VmContainerShardFactoryCreator() factoryVm.VmContainerCreator AccountsCreator() state.AccountFactory - DataDecoderHandler() sovereign.DataDecoderHandler + DataCodecHandler() sovereign.DataCodecHandler TopicsCheckerHandler() sovereign.TopicsCheckerHandler Create() error Close() error diff --git a/factory/processing/processComponents.go b/factory/processing/processComponents.go index e739428b7fa..c58ef22a3cc 100644 --- a/factory/processing/processComponents.go +++ b/factory/processing/processComponents.go @@ -2149,7 +2149,7 @@ func checkProcessComponentsArgs(args ProcessComponentsFactoryArgs) error { if check.IfNil(args.RunTypeComponents.AccountsCreator()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilAccountsCreator) } - if check.IfNil(args.RunTypeComponents.DataDecoderHandler()) { + if check.IfNil(args.RunTypeComponents.DataCodecHandler()) { return fmt.Errorf("%s: %w", baseErrMessage, errorsMx.ErrNilDataCodec) } if check.IfNil(args.RunTypeComponents.TopicsCheckerHandler()) { diff --git a/factory/processing/processComponents_test.go b/factory/processing/processComponents_test.go index 50dd201d1cb..083b679fe22 100644 --- a/factory/processing/processComponents_test.go +++ b/factory/processing/processComponents_test.go @@ -905,7 +905,7 @@ func TestNewProcessComponentsFactory(t *testing.T) { require.True(t, errors.Is(err, errorsMx.ErrNilAccountsCreator)) require.Nil(t, pcf) }) - t.Run("nil DataDecoderCreator should error", func(t *testing.T) { + t.Run("nil DataCodecHandler should error", func(t *testing.T) { t.Parallel() args := createMockProcessComponentsFactoryArgs() @@ -958,7 +958,7 @@ func getRunTypeComponentsMock() *mainFactoryMocks.RunTypeComponentsStub { VmContainerMetaFactory: rt.VmContainerMetaFactoryCreator(), VmContainerShardFactory: rt.VmContainerShardFactoryCreator(), AccountCreator: rt.AccountsCreator(), - DataCodec: rt.DataDecoderHandler(), + DataCodec: rt.DataCodecHandler(), TopicsChecker: rt.TopicsCheckerHandler(), } } diff --git a/factory/runType/runTypeComponents.go b/factory/runType/runTypeComponents.go index e3f60a62a41..e8b758e9c6d 100644 --- a/factory/runType/runTypeComponents.go +++ b/factory/runType/runTypeComponents.go @@ -54,7 +54,7 @@ type runTypeComponents struct { vmContainerMetaFactory factoryVm.VmContainerCreator vmContainerShardFactory factoryVm.VmContainerCreator accountsCreator state.AccountFactory - dataDecoderHandler sovereign.DataDecoderHandler + dataCodecHandler sovereign.DataCodecHandler topicsCheckerHandler sovereign.TopicsCheckerHandler } @@ -176,7 +176,7 @@ func (rcf *runTypeComponentsFactory) Create() (*runTypeComponents, error) { vmContainerMetaFactory: vmContainerMetaCreator, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, - dataDecoderHandler: disabled.NewDisabledDataCodec(), + dataCodecHandler: disabled.NewDisabledDataCodec(), topicsCheckerHandler: disabled.NewDisabledTopicsChecker(), }, nil } diff --git a/factory/runType/runTypeComponentsHandler.go b/factory/runType/runTypeComponentsHandler.go index f1d666b4c1c..126ec6f5cbc 100644 --- a/factory/runType/runTypeComponentsHandler.go +++ b/factory/runType/runTypeComponentsHandler.go @@ -145,7 +145,7 @@ func (mrc *managedRunTypeComponents) CheckSubcomponents() error { if check.IfNil(mrc.accountsCreator) { return errors.ErrNilAccountsCreator } - if check.IfNil(mrc.dataDecoderHandler) { + if check.IfNil(mrc.dataCodecHandler) { return errors.ErrNilDataCodec } if check.IfNil(mrc.topicsCheckerHandler) { @@ -382,8 +382,8 @@ func (mrc *managedRunTypeComponents) AccountsCreator() state.AccountFactory { return mrc.runTypeComponents.accountsCreator } -// DataDecoderHandler returns the data codec factory -func (mrc *managedRunTypeComponents) DataDecoderHandler() sovereign.DataDecoderHandler { +// DataCodecHandler returns the data codec factory +func (mrc *managedRunTypeComponents) DataCodecHandler() sovereign.DataCodecHandler { mrc.mutRunTypeComponents.RLock() defer mrc.mutRunTypeComponents.RUnlock() @@ -391,7 +391,7 @@ func (mrc *managedRunTypeComponents) DataDecoderHandler() sovereign.DataDecoderH return nil } - return mrc.runTypeComponents.dataDecoderHandler + return mrc.runTypeComponents.dataCodecHandler } // TopicsCheckerHandler returns the topics checker factory diff --git a/factory/runType/runTypeComponentsHandler_test.go b/factory/runType/runTypeComponentsHandler_test.go index e225a4bb15a..8bd02d83173 100644 --- a/factory/runType/runTypeComponentsHandler_test.go +++ b/factory/runType/runTypeComponentsHandler_test.go @@ -65,7 +65,7 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.Nil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) require.Nil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) require.Nil(t, managedRunTypeComponents.AccountsCreator()) - require.Nil(t, managedRunTypeComponents.DataDecoderHandler()) + require.Nil(t, managedRunTypeComponents.DataCodecHandler()) require.Nil(t, managedRunTypeComponents.TopicsCheckerHandler()) err = managedRunTypeComponents.Create() @@ -89,7 +89,7 @@ func TestManagedRunTypeComponents_Create(t *testing.T) { require.NotNil(t, managedRunTypeComponents.VmContainerMetaFactoryCreator()) require.NotNil(t, managedRunTypeComponents.VmContainerShardFactoryCreator()) require.NotNil(t, managedRunTypeComponents.AccountsCreator()) - require.NotNil(t, managedRunTypeComponents.DataDecoderHandler()) + require.NotNil(t, managedRunTypeComponents.DataCodecHandler()) require.NotNil(t, managedRunTypeComponents.TopicsCheckerHandler()) require.Equal(t, factory.RunTypeComponentsName, managedRunTypeComponents.String()) diff --git a/factory/runType/sovereignRunTypeComponents.go b/factory/runType/sovereignRunTypeComponents.go index 3613f2952a9..9bc0a9745b3 100644 --- a/factory/runType/sovereignRunTypeComponents.go +++ b/factory/runType/sovereignRunTypeComponents.go @@ -28,14 +28,14 @@ import ( type ArgsSovereignRunTypeComponents struct { RunTypeComponentsFactory *runTypeComponentsFactory Config config.SovereignConfig - DataCodec sovereign.DataDecoderHandler + DataCodec sovereign.DataCodecHandler TopicsChecker sovereign.TopicsCheckerHandler } type sovereignRunTypeComponentsFactory struct { *runTypeComponentsFactory cfg config.SovereignConfig - dataCodec sovereign.DataDecoderHandler + dataCodec sovereign.DataCodecHandler topicsChecker sovereign.TopicsCheckerHandler } @@ -178,7 +178,7 @@ func (rcf *sovereignRunTypeComponentsFactory) Create() (*runTypeComponents, erro vmContainerMetaFactory: rtc.vmContainerMetaFactory, vmContainerShardFactory: vmContainerShardCreator, accountsCreator: accountsCreator, - dataDecoderHandler: rcf.dataCodec, + dataCodecHandler: rcf.dataCodec, topicsCheckerHandler: rcf.topicsChecker, }, nil } diff --git a/integrationTests/testProcessorNode.go b/integrationTests/testProcessorNode.go index 18285d8194f..2db91b4c381 100644 --- a/integrationTests/testProcessorNode.go +++ b/integrationTests/testProcessorNode.go @@ -3318,7 +3318,7 @@ func GetDefaultRunTypeComponents(consensusModel consensus.ConsensusModel) *mainF SCResultsPreProcessorFactory: rt.SCResultsPreProcessorCreator(), AccountCreator: rt.AccountsCreator(), ConsensusModelType: consensusModel, - DataCodec: rt.DataDecoderHandler(), + DataCodec: rt.DataCodecHandler(), TopicsChecker: rt.TopicsCheckerHandler(), } } diff --git a/process/block/baseProcess.go b/process/block/baseProcess.go index a0a7294c911..3214ba88ff8 100644 --- a/process/block/baseProcess.go +++ b/process/block/baseProcess.go @@ -597,7 +597,7 @@ func checkProcessorParameters(arguments ArgBaseProcessor) error { if check.IfNil(arguments.RunTypeComponents.AccountsCreator()) { return state.ErrNilAccountFactory } - if check.IfNil(arguments.RunTypeComponents.DataDecoderHandler()) { + if check.IfNil(arguments.RunTypeComponents.DataCodecHandler()) { return errors.ErrNilDataCodec } if check.IfNil(arguments.RunTypeComponents.TopicsCheckerHandler()) { diff --git a/process/block/baseProcess_test.go b/process/block/baseProcess_test.go index 2c1f36236d2..ec84f4e5430 100644 --- a/process/block/baseProcess_test.go +++ b/process/block/baseProcess_test.go @@ -804,7 +804,7 @@ func TestCheckProcessorNilParameters(t *testing.T) { { args: func() blproc.ArgBaseProcessor { args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) - rtMock := getRunTypeComponentsMock() + rtMock := mock.NewRunTypeComponentsStub() rtMock.AccountCreator = nil args.RunTypeComponents = rtMock return args @@ -814,7 +814,7 @@ func TestCheckProcessorNilParameters(t *testing.T) { { args: func() blproc.ArgBaseProcessor { args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) - rtMock := getRunTypeComponentsMock() + rtMock := mock.NewRunTypeComponentsStub() rtMock.DataCodec = nil args.RunTypeComponents = rtMock return args @@ -824,7 +824,7 @@ func TestCheckProcessorNilParameters(t *testing.T) { { args: func() blproc.ArgBaseProcessor { args := createArgBaseProcessor(coreComponents, dataComponents, bootstrapComponents, statusComponents) - rtMock := getRunTypeComponentsMock() + rtMock := mock.NewRunTypeComponentsStub() rtMock.TopicsChecker = nil args.RunTypeComponents = rtMock return args @@ -845,15 +845,6 @@ func TestCheckProcessorNilParameters(t *testing.T) { require.True(t, errors.Is(err, core.ErrInvalidEnableEpochsHandler)) } -func getRunTypeComponentsMock() *mock.RunTypeComponentsStub { - rt := mock.NewRunTypeComponentsStub() - return &mock.RunTypeComponentsStub{ - AccountCreator: rt.AccountsCreator(), - DataCodec: rt.DataDecoderHandler(), - TopicsChecker: rt.TopicsCheckerHandler(), - } -} - func TestBlockProcessor_CheckBlockValidity(t *testing.T) { t.Parallel() diff --git a/process/block/interface.go b/process/block/interface.go index 772da7673ed..e1f4f89ae45 100644 --- a/process/block/interface.go +++ b/process/block/interface.go @@ -69,7 +69,7 @@ type HeaderValidatorCreator interface { type runTypeComponentsHolder interface { AccountsCreator() state.AccountFactory - DataDecoderHandler() sovereign.DataDecoderHandler + DataCodecHandler() sovereign.DataCodecHandler TopicsCheckerHandler() sovereign.TopicsCheckerHandler IsInterfaceNil() bool } diff --git a/process/block/sovereign/interface.go b/process/block/sovereign/interface.go index 0d5cf1e1ab9..a579472347e 100644 --- a/process/block/sovereign/interface.go +++ b/process/block/sovereign/interface.go @@ -12,8 +12,8 @@ type OutgoingOperationsFormatter interface { IsInterfaceNil() bool } -// DataDecoderHandler is the interface for serializing/deserializing data -type DataDecoderHandler interface { +// DataCodecHandler is the interface for serializing/deserializing data +type DataCodecHandler interface { SerializeEventData(eventData sovereign.EventData) ([]byte, error) DeserializeEventData(data []byte) (*sovereign.EventData, error) SerializeTokenData(tokenData sovereign.EsdtTokenData) ([]byte, error) diff --git a/process/block/sovereign/outgoingOperations.go b/process/block/sovereign/outgoingOperations.go index 8758cf06eef..5321e027bc8 100644 --- a/process/block/sovereign/outgoingOperations.go +++ b/process/block/sovereign/outgoingOperations.go @@ -29,13 +29,13 @@ type SubscribedEvent struct { type ArgsOutgoingOperations struct { SubscribedEvents []SubscribedEvent - DataCodec DataDecoderHandler + DataCodec DataCodecHandler TopicsChecker TopicsCheckerHandler } type outgoingOperations struct { subscribedEvents []SubscribedEvent - dataCodec DataDecoderHandler + dataCodec DataCodecHandler topicsChecker TopicsCheckerHandler } diff --git a/process/block/sovereign/outgoingOperationsFactory.go b/process/block/sovereign/outgoingOperationsFactory.go index f81b6d2160a..44386ca079b 100644 --- a/process/block/sovereign/outgoingOperationsFactory.go +++ b/process/block/sovereign/outgoingOperationsFactory.go @@ -12,7 +12,7 @@ import ( func CreateOutgoingOperationsFormatter( events []config.SubscribedEvent, pubKeyConverter core.PubkeyConverter, - dataCodec DataDecoderHandler, + dataCodec DataCodecHandler, topicsChecker TopicsCheckerHandler, ) (OutgoingOperationsFormatter, error) { subscribedEvents, err := getSubscribedEvents(events, pubKeyConverter) diff --git a/process/block/sovereignBlockProcessorFactory.go b/process/block/sovereignBlockProcessorFactory.go index d12389ff4b5..a3e387c3307 100644 --- a/process/block/sovereignBlockProcessorFactory.go +++ b/process/block/sovereignBlockProcessorFactory.go @@ -41,7 +41,7 @@ func (s *sovereignBlockProcessorFactory) CreateBlockProcessor(argumentsBaseProce outgoingOpFormatter, err := sovereign.CreateOutgoingOperationsFormatter( argumentsBaseProcessor.Config.SovereignConfig.OutgoingSubscribedEvents.SubscribedEvents, argumentsBaseProcessor.CoreComponents.AddressPubKeyConverter(), - argumentsBaseProcessor.RunTypeComponents.DataDecoderHandler(), + argumentsBaseProcessor.RunTypeComponents.DataCodecHandler(), argumentsBaseProcessor.RunTypeComponents.TopicsCheckerHandler()) if err != nil { return nil, err diff --git a/process/mock/runTypeComponentsStub.go b/process/mock/runTypeComponentsStub.go index a360c18a72d..54f291c1f7c 100644 --- a/process/mock/runTypeComponentsStub.go +++ b/process/mock/runTypeComponentsStub.go @@ -10,7 +10,7 @@ import ( // RunTypeComponentsStub - type RunTypeComponentsStub struct { AccountCreator state.AccountFactory - DataCodec sovereign.DataDecoderHandler + DataCodec sovereign.DataCodecHandler TopicsChecker sovereign.TopicsCheckerHandler } @@ -29,7 +29,7 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { } // DataCodecHandler - -func (r *RunTypeComponentsStub) DataDecoderHandler() sovereign.DataDecoderHandler { +func (r *RunTypeComponentsStub) DataCodecHandler() sovereign.DataCodecHandler { return r.DataCodec } diff --git a/testscommon/mainFactoryMocks/runTypeComponentStub.go b/testscommon/mainFactoryMocks/runTypeComponentStub.go index 7482d989f69..50b5355ea0c 100644 --- a/testscommon/mainFactoryMocks/runTypeComponentStub.go +++ b/testscommon/mainFactoryMocks/runTypeComponentStub.go @@ -43,7 +43,7 @@ type RunTypeComponentsStub struct { VmContainerMetaFactory factoryVm.VmContainerCreator VmContainerShardFactory factoryVm.VmContainerCreator AccountCreator state.AccountFactory - DataCodec sovereign.DataDecoderHandler + DataCodec sovereign.DataCodecHandler TopicsChecker sovereign.TopicsCheckerHandler } @@ -189,8 +189,8 @@ func (r *RunTypeComponentsStub) AccountsCreator() state.AccountFactory { return r.AccountCreator } -// DataDecoderHandler - -func (r *RunTypeComponentsStub) DataDecoderHandler() sovereign.DataDecoderHandler { +// DataCodecHandler - +func (r *RunTypeComponentsStub) DataCodecHandler() sovereign.DataCodecHandler { return r.DataCodec } From 9569ac8613183a77d31d861f2a91fe0bc50c0cb9 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 16 Apr 2024 10:01:08 +0300 Subject: [PATCH 28/28] TODO Added for RunType subcomponents --- factory/runType/runTypeComponentsHandler_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/factory/runType/runTypeComponentsHandler_test.go b/factory/runType/runTypeComponentsHandler_test.go index 8bd02d83173..e6da728da04 100644 --- a/factory/runType/runTypeComponentsHandler_test.go +++ b/factory/runType/runTypeComponentsHandler_test.go @@ -120,6 +120,7 @@ func TestManagedRunTypeComponents_CheckSubcomponents(t *testing.T) { err = managedRunTypeComponents.Create() require.NoError(t, err) + //TODO check for nil each subcomponent - MX-15371 err = managedRunTypeComponents.CheckSubcomponents() require.NoError(t, err)