public void Setup()
        {
            _container?.Dispose();
            TestUtils.DeleteTestChainData();

            var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager(
                                                                          Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config2.json"),
                                                                          new RunOptions()
                                                                          ));

            containerBuilder.RegisterModule <BlockchainModule>();
            containerBuilder.RegisterModule <ConfigModule>();
            containerBuilder.RegisterModule <StorageModule>();
            containerBuilder.RegisterModule <ConsensusModule>();
            containerBuilder.RegisterModule <NetworkModule>();

            _container = containerBuilder.Build();

            _stateManager           = _container.Resolve <IStateManager>();
            _transactionManager     = _container.Resolve <ITransactionManager>();
            _transactionBuilder     = _container.Resolve <ITransactionBuilder>();
            _transactionSigner      = _container.Resolve <ITransactionSigner>();
            _transactionPool        = _container.Resolve <ITransactionPool>();
            _contractRegisterer     = _container.Resolve <IContractRegisterer>();
            _privateWallet          = _container.Resolve <IPrivateWallet>();
            _snapshotIndexer        = _container.Resolve <ISnapshotIndexRepository>();
            _networkManager         = _container.Resolve <INetworkManager>();
            _nodeRetrieval          = _container.Resolve <INodeRetrieval>();
            _systemContractReader   = _container.Resolve <ISystemContractReader>();
            _blockManager           = _container.Resolve <IBlockManager>();
            _validatorStatusManager = _container.Resolve <IValidatorStatusManager>();
            _configManager          = _container.Resolve <IConfigManager>();
            _consensusManager       = _container.Resolve <IConsensusManager>();
            if (TransactionUtils.ChainId(false) == 0)
            {
                var chainId    = _configManager.GetConfig <NetworkConfig>("network")?.ChainId;
                var newChainId = _configManager.GetConfig <NetworkConfig>("network")?.NewChainId;
                TransactionUtils.SetChainId((int)chainId !, (int)newChainId !);
                HardforkHeights.SetHardforkHeights(_configManager.GetConfig <HardforkConfig>("hardfork") ?? throw new InvalidOperationException());
            }

            ServiceBinder.BindService <GenericParameterAttributes>();
            _apiService = new BlockchainServiceWeb3(_transactionManager, _blockManager, _transactionPool,
                                                    _stateManager, _snapshotIndexer, _networkManager, _nodeRetrieval, _systemContractReader, _consensusManager);
        }
Exemple #2
0
 public RpcManager(
     ITransactionManager transactionManager,
     IBlockManager blockManager,
     IConfigManager configManager,
     IStateManager stateManager,
     ISnapshotIndexRepository snapshotIndexer,
     ITransactionPool transactionPool,
     IVirtualMachine virtualMachine,
     IContractRegisterer contractRegisterer,
     IValidatorStatusManager validatorStatusManager,
     ISystemContractReader systemContractReader,
     IBlockSynchronizer blockSynchronizer,
     ILocalTransactionRepository localTransactionRepository,
     ITransactionSigner transactionSigner,
     IPrivateWallet privateWallet,
     ITransactionBuilder transactionBuilder,
     IBlockchainEventFilter blockchainEventFilter,
     INetworkManager networkManager,
     INodeRetrieval nodeRetrieval,
     IConsensusManager consensusManager
     )
 {
     _transactionManager         = transactionManager;
     _blockManager               = blockManager;
     _configManager              = configManager;
     _stateManager               = stateManager;
     _snapshotIndexer            = snapshotIndexer;
     _transactionPool            = transactionPool;
     _contractRegisterer         = contractRegisterer;
     _validatorStatusManager     = validatorStatusManager;
     _systemContractReader       = systemContractReader;
     _blockSynchronizer          = blockSynchronizer;
     _localTransactionRepository = localTransactionRepository;
     _transactionSigner          = transactionSigner;
     _transactionBuilder         = transactionBuilder;
     _privateWallet              = privateWallet;
     _blockchainEventFilter      = blockchainEventFilter;
     _networkManager             = networkManager;
     _nodeRetrieval              = nodeRetrieval;
     _consensusManager           = consensusManager;
 }
Exemple #3
0
 public BlockchainServiceWeb3(
     ITransactionManager transactionManager,
     IBlockManager blockManager,
     ITransactionPool transactionPool,
     IStateManager stateManager,
     ISnapshotIndexRepository snapshotIndexer,
     INetworkManager networkManager,
     INodeRetrieval nodeRetrieval,
     ISystemContractReader systemContractReader,
     IConsensusManager consensusManager)
 {
     _transactionPool      = transactionPool;
     _transactionManager   = transactionManager;
     _blockManager         = blockManager;
     _stateManager         = stateManager;
     _snapshotIndexer      = snapshotIndexer;
     _networkManager       = networkManager;
     _nodeRetrieval        = nodeRetrieval;
     _systemContractReader = systemContractReader;
     _consensusManager     = consensusManager;
 }