Skip to content

Commit

Permalink
Merge 5630cf7 into 9a551a5
Browse files Browse the repository at this point in the history
  • Loading branch information
iulianpascalau committed May 17, 2023
2 parents 9a551a5 + 5630cf7 commit 6fdf983
Show file tree
Hide file tree
Showing 18 changed files with 1,364 additions and 373 deletions.
2 changes: 1 addition & 1 deletion api/middleware/responseLogger.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func (rlm *responseLoggerMiddleware) logRequestAndResponse(c *gin.Context, durat
reqBody := c.Request.Body
reqBodyBytes, err := ioutil.ReadAll(reqBody)
if err != nil {
log.Error(err.Error())
log.Debug(err.Error())

Check warning on line 69 in api/middleware/responseLogger.go

View check run for this annotation

Codecov / codecov/patch

api/middleware/responseLogger.go#L69

Added line #L69 was not covered by tests
return
}

Expand Down
225 changes: 0 additions & 225 deletions factory/processing/blockProcessorCreator.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@ import (
"github.com/multiversx/mx-chain-go/dataRetriever"
debugFactory "github.com/multiversx/mx-chain-go/debug/factory"
"github.com/multiversx/mx-chain-go/epochStart"
"github.com/multiversx/mx-chain-go/epochStart/bootstrap/disabled"
metachainEpochStart "github.com/multiversx/mx-chain-go/epochStart/metachain"
mainFactory "github.com/multiversx/mx-chain-go/factory"
"github.com/multiversx/mx-chain-go/genesis"
processDisabled "github.com/multiversx/mx-chain-go/genesis/process/disabled"
"github.com/multiversx/mx-chain-go/outport"
processOutport "github.com/multiversx/mx-chain-go/outport/process"
factoryOutportProvider "github.com/multiversx/mx-chain-go/outport/process/factory"
Expand All @@ -35,7 +33,6 @@ import (
"github.com/multiversx/mx-chain-go/process/smartContract/hooks/counters"
"github.com/multiversx/mx-chain-go/process/throttle"
"github.com/multiversx/mx-chain-go/process/transaction"
"github.com/multiversx/mx-chain-go/process/txsimulator"
"github.com/multiversx/mx-chain-go/state"
"github.com/multiversx/mx-chain-go/storage/txcache"
"github.com/multiversx/mx-chain-go/vm"
Expand All @@ -46,7 +43,6 @@ import (

type blockProcessorAndVmFactories struct {
blockProcessor process.BlockProcessor
vmFactoryForTxSimulate process.VirtualMachinesContainerFactory
vmFactoryForProcessing process.VirtualMachinesContainerFactory
}

Expand All @@ -59,7 +55,6 @@ func (pcf *processComponentsFactory) newBlockProcessor(
headerValidator process.HeaderConstructionValidator,
blockTracker process.BlockTracker,
pendingMiniBlocksHandler process.PendingMiniBlocksHandler,
txSimulatorProcessorArgs *txsimulator.ArgsTxSimulator,
wasmVMChangeLocker common.Locker,
scheduledTxsExecutionHandler process.ScheduledTxsExecutionHandler,
processedMiniBlocksTracker process.ProcessedMiniBlocksTracker,
Expand All @@ -75,7 +70,6 @@ func (pcf *processComponentsFactory) newBlockProcessor(
headerValidator,
blockTracker,
pcf.smartContractParser,
txSimulatorProcessorArgs,
wasmVMChangeLocker,
scheduledTxsExecutionHandler,
processedMiniBlocksTracker,
Expand All @@ -92,7 +86,6 @@ func (pcf *processComponentsFactory) newBlockProcessor(
headerValidator,
blockTracker,
pendingMiniBlocksHandler,
txSimulatorProcessorArgs,
wasmVMChangeLocker,
scheduledTxsExecutionHandler,
processedMiniBlocksTracker,
Expand All @@ -113,7 +106,6 @@ func (pcf *processComponentsFactory) newShardBlockProcessor(
headerValidator process.HeaderConstructionValidator,
blockTracker process.BlockTracker,
smartContractParser genesis.InitialSmartContractParser,
txSimulatorProcessorArgs *txsimulator.ArgsTxSimulator,
wasmVMChangeLocker common.Locker,
scheduledTxsExecutionHandler process.ScheduledTxsExecutionHandler,
processedMiniBlocksTracker process.ProcessedMiniBlocksTracker,
Expand Down Expand Up @@ -289,11 +281,6 @@ func (pcf *processComponentsFactory) newShardBlockProcessor(

scheduledTxsExecutionHandler.SetTransactionProcessor(transactionProcessor)

vmFactoryTxSimulator, err := pcf.createShardTxSimulatorProcessor(txSimulatorProcessorArgs, argsNewScProcessor, argsNewTxProcessor, esdtTransferParser, wasmVMChangeLocker, mapDNSAddresses)
if err != nil {
return nil, err
}

blockSizeThrottler, err := throttle.NewBlockSizeThrottle(
pcf.config.BlockSizeThrottleConfig.MinSizeInBytes,
pcf.config.BlockSizeThrottleConfig.MaxSizeInBytes,
Expand Down Expand Up @@ -441,7 +428,6 @@ func (pcf *processComponentsFactory) newShardBlockProcessor(

return &blockProcessorAndVmFactories{
blockProcessor: blockProcessor,
vmFactoryForTxSimulate: vmFactoryTxSimulator,
vmFactoryForProcessing: vmFactory,
}, nil
}
Expand All @@ -455,7 +441,6 @@ func (pcf *processComponentsFactory) newMetaBlockProcessor(
headerValidator process.HeaderConstructionValidator,
blockTracker process.BlockTracker,
pendingMiniBlocksHandler process.PendingMiniBlocksHandler,
txSimulatorProcessorArgs *txsimulator.ArgsTxSimulator,
wasmVMChangeLocker common.Locker,
scheduledTxsExecutionHandler process.ScheduledTxsExecutionHandler,
processedMiniBlocksTracker process.ProcessedMiniBlocksTracker,
Expand Down Expand Up @@ -597,11 +582,6 @@ func (pcf *processComponentsFactory) newMetaBlockProcessor(

scheduledTxsExecutionHandler.SetTransactionProcessor(transactionProcessor)

vmFactoryTxSimulator, err := pcf.createMetaTxSimulatorProcessor(txSimulatorProcessorArgs, argsNewScProcessor, txTypeHandler)
if err != nil {
return nil, err
}

blockSizeThrottler, err := throttle.NewBlockSizeThrottle(pcf.config.BlockSizeThrottleConfig.MinSizeInBytes, pcf.config.BlockSizeThrottleConfig.MaxSizeInBytes)
if err != nil {
return nil, err
Expand Down Expand Up @@ -898,7 +878,6 @@ func (pcf *processComponentsFactory) newMetaBlockProcessor(

blockProcessorComponents := &blockProcessorAndVmFactories{
blockProcessor: metaProcessor,
vmFactoryForTxSimulate: vmFactoryTxSimulator,
vmFactoryForProcessing: vmFactory,
}

Expand Down Expand Up @@ -949,210 +928,6 @@ func (pcf *processComponentsFactory) createOutportDataProvider(
})
}

func (pcf *processComponentsFactory) createShardTxSimulatorProcessor(
txSimulatorProcessorArgs *txsimulator.ArgsTxSimulator,
scProcArgs smartContract.ArgsNewSmartContractProcessor,
txProcArgs transaction.ArgsNewTxProcessor,
esdtTransferParser vmcommon.ESDTTransferParser,
wasmVMChangeLocker common.Locker,
mapDNSAddresses map[string]struct{},
) (process.VirtualMachinesContainerFactory, error) {
readOnlyAccountsDB, err := txsimulator.NewReadOnlyAccountsDB(pcf.state.AccountsAdapterAPI())
if err != nil {
return nil, err
}

argsFactory := shard.ArgsNewIntermediateProcessorsContainerFactory{
ShardCoordinator: pcf.bootstrapComponents.ShardCoordinator(),
Marshalizer: pcf.coreData.InternalMarshalizer(),
Hasher: pcf.coreData.Hasher(),
PubkeyConverter: pcf.coreData.AddressPubKeyConverter(),
Store: disabled.NewChainStorer(),
PoolsHolder: pcf.data.Datapool(),
EconomicsFee: &processDisabled.FeeHandler{},
EnableEpochsHandler: pcf.coreData.EnableEpochsHandler(),
}

interimProcFactory, err := shard.NewIntermediateProcessorsContainerFactory(argsFactory)
if err != nil {
return nil, err
}

builtInFuncFactory, err := pcf.createBuiltInFunctionContainer(readOnlyAccountsDB, mapDNSAddresses)
if err != nil {
return nil, err
}

smartContractStorageSimulate := pcf.config.SmartContractsStorageSimulate
vmFactory, err := pcf.createVMFactoryShard(
readOnlyAccountsDB,
builtInFuncFactory.BuiltInFunctionContainer(),
esdtTransferParser,
wasmVMChangeLocker,
smartContractStorageSimulate,
builtInFuncFactory.NFTStorageHandler(),
builtInFuncFactory.ESDTGlobalSettingsHandler(),
)
if err != nil {
return nil, err
}

vmContainer, err := vmFactory.Create()
if err != nil {
return nil, err
}

scProcArgs.VmContainer = vmContainer

interimProcContainer, err := interimProcFactory.Create()
if err != nil {
return nil, err
}

scForwarder, err := interimProcContainer.Get(dataBlock.SmartContractResultBlock)
if err != nil {
return nil, err
}
scProcArgs.ScrForwarder = scForwarder
scProcArgs.BlockChainHook = vmFactory.BlockChainHookImpl()

receiptTxInterim, err := interimProcContainer.Get(dataBlock.ReceiptBlock)
if err != nil {
return nil, err
}
txProcArgs.ReceiptForwarder = receiptTxInterim

badTxInterim, err := interimProcContainer.Get(dataBlock.InvalidBlock)
if err != nil {
return nil, err
}
scProcArgs.BadTxForwarder = badTxInterim
txProcArgs.BadTxForwarder = badTxInterim

scProcArgs.TxFeeHandler = &processDisabled.FeeHandler{}
txProcArgs.TxFeeHandler = &processDisabled.FeeHandler{}

scProcArgs.AccountsDB = readOnlyAccountsDB
scProcArgs.VMOutputCacher = txSimulatorProcessorArgs.VMOutputCacher
scProcessor, err := smartContract.NewSmartContractProcessor(scProcArgs)
if err != nil {
return nil, err
}
txProcArgs.ScProcessor = scProcessor

txProcArgs.Accounts = readOnlyAccountsDB

txSimulatorProcessorArgs.TransactionProcessor, err = transaction.NewTxProcessor(txProcArgs)
if err != nil {
return nil, err
}

txSimulatorProcessorArgs.IntermediateProcContainer = interimProcContainer

return vmFactory, nil
}

func (pcf *processComponentsFactory) createMetaTxSimulatorProcessor(
txSimulatorProcessorArgs *txsimulator.ArgsTxSimulator,
scProcArgs smartContract.ArgsNewSmartContractProcessor,
txTypeHandler process.TxTypeHandler,
) (process.VirtualMachinesContainerFactory, error) {
argsFactory := metachain.ArgsNewIntermediateProcessorsContainerFactory{
ShardCoordinator: pcf.bootstrapComponents.ShardCoordinator(),
Marshalizer: pcf.coreData.InternalMarshalizer(),
Hasher: pcf.coreData.Hasher(),
PubkeyConverter: pcf.coreData.AddressPubKeyConverter(),
Store: disabled.NewChainStorer(),
PoolsHolder: pcf.data.Datapool(),
EconomicsFee: &processDisabled.FeeHandler{},
EnableEpochsHandler: pcf.coreData.EnableEpochsHandler(),
}

interimProcFactory, err := metachain.NewIntermediateProcessorsContainerFactory(argsFactory)
if err != nil {
return nil, err
}

interimProcContainer, err := interimProcFactory.Create()
if err != nil {
return nil, err
}

scForwarder, err := interimProcContainer.Get(dataBlock.SmartContractResultBlock)
if err != nil {
return nil, err
}
scProcArgs.ScrForwarder = scForwarder

badTxInterim, err := interimProcContainer.Get(dataBlock.InvalidBlock)
if err != nil {
return nil, err
}
scProcArgs.BadTxForwarder = badTxInterim
scProcArgs.VMOutputCacher = txSimulatorProcessorArgs.VMOutputCacher

scProcArgs.TxFeeHandler = &processDisabled.FeeHandler{}

scProcArgs.VMOutputCacher = txSimulatorProcessorArgs.VMOutputCacher

readOnlyAccountsDB, err := txsimulator.NewReadOnlyAccountsDB(pcf.state.AccountsAdapterAPI())
if err != nil {
return nil, err
}

builtInFuncFactory, err := pcf.createBuiltInFunctionContainer(readOnlyAccountsDB, make(map[string]struct{}))
if err != nil {
return nil, err
}

vmFactory, err := pcf.createVMFactoryMeta(
readOnlyAccountsDB,
builtInFuncFactory.BuiltInFunctionContainer(),
pcf.config.SmartContractsStorageSimulate,
builtInFuncFactory.NFTStorageHandler(),
builtInFuncFactory.ESDTGlobalSettingsHandler(),
)
if err != nil {
return nil, err
}

vmContainer, err := vmFactory.Create()
if err != nil {
return nil, err
}

scProcArgs.VmContainer = vmContainer
scProcArgs.BlockChainHook = vmFactory.BlockChainHookImpl()

scProcessor, err := smartContract.NewSmartContractProcessor(scProcArgs)
if err != nil {
return nil, err
}

argsNewMetaTx := transaction.ArgsNewMetaTxProcessor{
Hasher: pcf.coreData.Hasher(),
Marshalizer: pcf.coreData.InternalMarshalizer(),
Accounts: readOnlyAccountsDB,
PubkeyConv: pcf.coreData.AddressPubKeyConverter(),
ShardCoordinator: pcf.bootstrapComponents.ShardCoordinator(),
ScProcessor: scProcessor,
TxTypeHandler: txTypeHandler,
EconomicsFee: &processDisabled.FeeHandler{},
EnableEpochsHandler: pcf.coreData.EnableEpochsHandler(),
TxVersionChecker: pcf.coreData.TxVersionChecker(),
GuardianChecker: pcf.bootstrapComponents.GuardedAccountHandler(),
}

txSimulatorProcessorArgs.TransactionProcessor, err = transaction.NewMetaTxProcessor(argsNewMetaTx)
if err != nil {
return nil, err
}

txSimulatorProcessorArgs.IntermediateProcContainer = interimProcContainer

return vmFactory, nil
}

func (pcf *processComponentsFactory) createVMFactoryShard(
accounts state.AccountsAdapter,
builtInFuncs vmcommon.BuiltInFunctionContainer,
Expand Down
14 changes: 2 additions & 12 deletions factory/processing/blockProcessorCreator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@ import (
dataComp "github.com/multiversx/mx-chain-go/factory/data"
"github.com/multiversx/mx-chain-go/factory/mock"
processComp "github.com/multiversx/mx-chain-go/factory/processing"
"github.com/multiversx/mx-chain-go/process/txsimulator"
"github.com/multiversx/mx-chain-go/state"
factoryState "github.com/multiversx/mx-chain-go/state/factory"
"github.com/multiversx/mx-chain-go/state/storagePruningManager/disabled"
"github.com/multiversx/mx-chain-go/storage/txcache"
"github.com/multiversx/mx-chain-go/testscommon"
componentsMock "github.com/multiversx/mx-chain-go/testscommon/components"
"github.com/multiversx/mx-chain-go/testscommon/hashingMocks"
Expand All @@ -40,7 +38,7 @@ func Test_newBlockProcessorCreatorForShard(t *testing.T) {
_, err = pcf.Create()
require.NoError(t, err)

bp, vmFactoryForSimulate, err := pcf.NewBlockProcessor(
bp, err := pcf.NewBlockProcessor(
&testscommon.RequestHandlerStub{},
&mock.ForkDetectorStub{},
&mock.EpochStartTriggerStub{},
Expand All @@ -49,9 +47,6 @@ func Test_newBlockProcessorCreatorForShard(t *testing.T) {
&mock.HeaderValidatorStub{},
&mock.BlockTrackerStub{},
&mock.PendingMiniBlocksHandlerStub{},
&txsimulator.ArgsTxSimulator{
VMOutputCacher: txcache.NewDisabledCache(),
},
&sync.RWMutex{},
&testscommon.ScheduledTxsExecutionStub{},
&testscommon.ProcessedMiniBlocksTrackerStub{},
Expand All @@ -60,7 +55,6 @@ func Test_newBlockProcessorCreatorForShard(t *testing.T) {

require.NoError(t, err)
require.NotNil(t, bp)
require.NotNil(t, vmFactoryForSimulate)
}

func Test_newBlockProcessorCreatorForMeta(t *testing.T) {
Expand Down Expand Up @@ -160,7 +154,7 @@ func Test_newBlockProcessorCreatorForMeta(t *testing.T) {
_, err = pcf.Create()
require.NoError(t, err)

bp, vmFactoryForSimulate, err := pcf.NewBlockProcessor(
bp, err := pcf.NewBlockProcessor(
&testscommon.RequestHandlerStub{},
&mock.ForkDetectorStub{},
&mock.EpochStartTriggerStub{},
Expand All @@ -169,9 +163,6 @@ func Test_newBlockProcessorCreatorForMeta(t *testing.T) {
&mock.HeaderValidatorStub{},
&mock.BlockTrackerStub{},
&mock.PendingMiniBlocksHandlerStub{},
&txsimulator.ArgsTxSimulator{
VMOutputCacher: txcache.NewDisabledCache(),
},
&sync.RWMutex{},
&testscommon.ScheduledTxsExecutionStub{},
&testscommon.ProcessedMiniBlocksTrackerStub{},
Expand All @@ -180,7 +171,6 @@ func Test_newBlockProcessorCreatorForMeta(t *testing.T) {

require.NoError(t, err)
require.NotNil(t, bp)
require.NotNil(t, vmFactoryForSimulate)
}

func createAccountAdapter(
Expand Down

0 comments on commit 6fdf983

Please sign in to comment.