public BlockChain(Hash chainId, IChainManagerBasic chainManager, IBlockManagerBasic blockManager, ITransactionManager transactionManager, ITransactionTraceManager transactionTraceManager, IStateStore stateStore, IDataStore dataStore) : base( chainId, chainManager, blockManager, dataStore) { _transactionManager = transactionManager; _transactionTraceManager = transactionTraceManager; _stateStore = stateStore; _doingRollback = false; _prepareTerminated = false; _terminated = false; _logger = LogManager.GetLogger(nameof(BlockChain)); MessageHub.Instance.Subscribe <TerminationSignal>(signal => { if (signal.Module == TerminatedModuleEnum.BlockRollback) { if (!_doingRollback) { _terminated = true; MessageHub.Instance.Publish(new TerminatedModule(TerminatedModuleEnum.BlockRollback)); } else { _prepareTerminated = true; } } }); }
private void Initialize() { _transactionManager = new TransactionManager(_dataStore, _logger); _transactionReceiptManager = new TransactionReceiptManager(_database); _smartContractManager = new SmartContractManager(_dataStore); _transactionResultManager = new TransactionResultManager(_dataStore); _transactionTraceManager = new TransactionTraceManager(_dataStore); _functionMetadataService = new FunctionMetadataService(_dataStore, _logger); _chainManagerBasic = new ChainManagerBasic(_dataStore); _chainService = new ChainService(_chainManagerBasic, new BlockManagerBasic(_dataStore), _transactionManager, _transactionTraceManager, _dataStore, StateStore); _smartContractRunnerFactory = new SmartContractRunnerFactory(); /*var runner = new SmartContractRunner("../../../../AElf.SDK.CSharp/bin/Debug/netstandard2.0/"); * _smartContractRunnerFactory.AddRunner(0, runner);*/ var runner = new SmartContractRunner(ContractCodes.TestContractFolder); _smartContractRunnerFactory.AddRunner(0, runner); _concurrencyExecutingService = new SimpleExecutingService( new SmartContractService(_smartContractManager, _smartContractRunnerFactory, StateStore, _functionMetadataService), _transactionTraceManager, StateStore, new ChainContextService(_chainService)); _chainCreationService = new ChainCreationService(_chainService, new SmartContractService(new SmartContractManager(_dataStore), _smartContractRunnerFactory, StateStore, _functionMetadataService), _logger); _binaryMerkleTreeManager = new BinaryMerkleTreeManager(_dataStore); _chainContextService = new ChainContextService(_chainService); _stateStore = new StateStore(_database); }
public SimpleExecutingService(ISmartContractService smartContractService, ITransactionTraceManager transactionTraceManager, IStateStore stateStore, IChainContextService chainContextService) { _smartContractService = smartContractService; _transactionTraceManager = transactionTraceManager; _chainContextService = chainContextService; _stateStore = stateStore; }
public ChainService(IChainManagerBasic chainManager, IBlockManagerBasic blockManager, ITransactionManager transactionManager, ITransactionTraceManager transactionTraceManager, IDataStore dataStore, IStateStore stateStore) { _chainManager = chainManager; _blockManager = blockManager; _transactionManager = transactionManager; _transactionTraceManager = transactionTraceManager; _dataStore = dataStore; _stateStore = stateStore; }
public MockSetup(IDataStore dataStore, IStateStore stateStore, ITxHub txHub) { _dataStore = dataStore; _stateStore = stateStore; _smartContractManager = new SmartContractManager(_dataStore); _transactionManager = new TransactionManager(_dataStore); _transactionTraceManager = new TransactionTraceManager(_dataStore); _transactionResultManager = new TransactionResultManager(_dataStore); _smartContractRunnerFactory = new SmartContractRunnerFactory(); _concurrencyExecutingService = new SimpleExecutingService( new SmartContractService(_smartContractManager, _smartContractRunnerFactory, _stateStore, _functionMetadataService), _transactionTraceManager, _stateStore, new ChainContextService(GetChainService())); _txHub = txHub; _chainManagerBasic = new ChainManagerBasic(dataStore); }