public LedgerTests() { _testScheduler = new TestScheduler(); _fakeRepository = Substitute.For <IAccountRepository>(); _hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256")); _mapperProvider = new TestMapperProvider(); _logger = Substitute.For <ILogger>(); _mempool = Substitute.For <IMempool <PublicEntryDao> >(); _deltaHashProvider = Substitute.For <IDeltaHashProvider>(); _receipts = Substitute.For <ITransactionRepository>(); _synchroniser = Substitute.For <ISynchroniser>(); _genesisHash = _hashProvider.ComputeUtf8MultiHash("genesis").ToCid(); _synchroniser.DeltaCache.GenesisHash.Returns(_genesisHash); _executor = Substitute.For <IDeltaExecutor>(); _stateProvider = Substitute.For <IStateProvider>(); _storageProvider = Substitute.For <IStorageProvider>(); _cryptoContext = new FfiWrapper(); _signingContext = new SigningContext { NetworkType = NetworkType.Devnet, SignatureType = SignatureType.TransactionPublic }; _deltaIndexService = new DeltaIndexService(new InMemoryRepository <DeltaIndexDao, string>()); }
public PoaTestNode(string name, IPrivateKey privateKey, IPeerSettings nodeSettings, IDfsService dfsService, IEnumerable <PeerId> knownPeerIds, IFileSystem parentTestFileSystem) { Name = name; _nodeSettings = nodeSettings; _nodeDirectory = parentTestFileSystem.GetCatalystDataDir(); _dfsService = dfsService; _rpcSettings = RpcSettingsHelper.GetRpcServerSettings(nodeSettings.Port + 100); _nodePeerId = nodeSettings.PeerId; _memPool = new Mempool(new MempoolService(new InMemoryRepository <PublicEntryDao, string>())); _peerRepository = new PeerRepository(new InMemoryRepository <Peer, string>()); var peersInRepo = knownPeerIds.Select(p => new Peer { PeerId = p, IsPoaNode = true, LastSeen = DateTime.UtcNow }).ToList(); _peerRepository.Add(peersInRepo); _deltaByNumber = new DeltaByNumberRepository(new InMemoryRepository <DeltaByNumber, string>()); _containerProvider = new ContainerProvider(new[] { Constants.NetworkConfigFile(NetworkType.Devnet), Constants.SerilogJsonConfigFile } .Select(f => Path.Combine(Constants.ConfigSubFolder, f)), parentTestFileSystem, TestContext.CurrentContext); RegisterNodeDependencies(_containerProvider.ContainerBuilder, excludedModules: new List <Type> { typeof(ApiModule), typeof(RpcServerModule) } ); _containerProvider.ConfigureContainerBuilder(true, true); OverrideContainerBuilderRegistrations(); _scope = _containerProvider.Container.BeginLifetimeScope(Name); _node = _scope.Resolve <ICatalystNode>(); var keyStore = _scope.Resolve <IKeyStore>(); var keyRegistry = _scope.Resolve <IKeyRegistry>(); keyRegistry.RemoveItemFromRegistry(KeyRegistryTypes.DefaultKey); keyRegistry.AddItemToRegistry(KeyRegistryTypes.DefaultKey, privateKey); keyStore.KeyStoreEncryptAsync(privateKey, nodeSettings.NetworkType, KeyRegistryTypes.DefaultKey) .ConfigureAwait(false).GetAwaiter() .GetResult(); }
public Ledger(IDeltaExecutor deltaExecutor, IStateProvider stateProvider, IStorageProvider storageProvider, ISnapshotableDb stateDb, ISnapshotableDb codeDb, IAccountRepository accounts, IDeltaHashProvider deltaHashProvider, ILedgerSynchroniser synchroniser, IMempool <PublicEntryDao> mempool, IMapperProvider mapperProvider, ILogger logger) { Accounts = accounts; _deltaExecutor = deltaExecutor; _stateProvider = stateProvider; _storageProvider = storageProvider; _stateDb = stateDb; _codeDb = codeDb; _synchroniser = synchroniser; _mempool = mempool; _mapperProvider = mapperProvider; _logger = logger; _deltaUpdatesSubscription = deltaHashProvider.DeltaHashUpdates.Subscribe(Update); LatestKnownDelta = _synchroniser.DeltaCache.GenesisHash; }
public CatalystNodePoa(IKeySigner keySigner, IPeerService peer, IConsensus consensus, IDfs dfs, ILedger ledger, ILogger logger, IPeerClient peerClient, IPeerSettings peerSettings, IMempool <PublicEntryDao> memPool, IContract contract = null) { _peer = peer; _peerClient = peerClient; _peerSettings = peerSettings; Consensus = consensus; _dfs = dfs; _ledger = ledger; _keySigner = keySigner; _logger = logger; _memPool = memPool; _contract = contract; var privateKey = keySigner.KeyStore.KeyStoreDecrypt(KeyRegistryTypes.DefaultKey); _publicKey = keySigner.CryptoContext.GetPublicKeyFromPrivateKey(privateKey); }
public GetMempoolRequestObserver(IPeerSettings peerSettings, IMempool <MempoolDocument> mempool, ILogger logger) : base(logger, peerSettings) { _mempool = mempool; }
public Web3EthApi(IStateReader stateReader, IDeltaResolver deltaResolver, IDeltaCache deltaCache, IDeltaExecutor executor, IStorageProvider storageProvider, IStateProvider stateProvider, ITransactionRepository receipts, ITransactionReceivedEvent transactionReceived, IPeerRepository peerRepository, IMempool <PublicEntryDao> mempoolRepository, IDfsService dfsService, IHashProvider hashProvider, SyncState syncState, IMapperProvider mapperProvider, IPeerSettings peerSettings) { _receipts = receipts; _transactionReceived = transactionReceived ?? throw new ArgumentNullException(nameof(transactionReceived)); HashProvider = hashProvider; _peerId = peerSettings.PeerId; _mempoolRepository = mempoolRepository; PeerRepository = peerRepository; _mapperProvider = mapperProvider; StateReader = stateReader ?? throw new ArgumentNullException(nameof(stateReader)); DeltaResolver = deltaResolver ?? throw new ArgumentNullException(nameof(deltaResolver)); DeltaCache = deltaCache ?? throw new ArgumentNullException(nameof(deltaCache)); Executor = executor ?? throw new ArgumentNullException(nameof(executor)); StorageProvider = storageProvider ?? throw new ArgumentNullException(nameof(storageProvider)); StateProvider = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider)); DfsService = dfsService; SyncState = syncState; }
public CatalystNodePoa(IKeySigner keySigner, IPeerService peer, IConsensus consensus, IDfsService dfsService, ILedger ledger, ILogger logger, IPeerClient peerClient, IPeerSettings peerSettings, IMempool <PublicEntryDao> memPool, ISynchroniser synchronizer, IPeerRepository peerRepository, IContract contract = null) { Guard.Argument(peerRepository, nameof(peerRepository)).NotNull(); _peer = peer; _peerClient = peerClient; _peerSettings = peerSettings; Consensus = consensus; _dfsService = dfsService; _ledger = ledger; _keySigner = keySigner; _logger = logger; _memPool = memPool; _contract = contract; _synchronizer = synchronizer; _peerRepository = peerRepository; var privateKey = keySigner.KeyStore.KeyStoreDecrypt(KeyRegistryTypes.DefaultKey); _publicKey = keySigner.CryptoContext.GetPublicKeyFromPrivateKey(privateKey); }
public DeltaTransactionRetriever(IMempool <PublicEntryDao> mempool, IMapperProvider mapperProvider, ITransactionComparer transactionComparer) { _mempool = mempool; _mapperProvider = mapperProvider; TransactionComparer = transactionComparer; }
public GetMempoolRequestObserver(IPeerSettings peerSettings, IMempool <PublicEntryDao> mempool, IMapperProvider mappingProvider, ILogger logger) : base(logger, peerSettings) { _mempool = mempool; _mappingProvider = mappingProvider; }
public TransactionReceivedEvent(ITransactionValidator validator, IMempool <PublicEntryDao> mempool, IBroadcastManager broadcastManager, IMapperProvider mapperProvider, ILogger logger) { _mapperProvider = mapperProvider; _broadcastManager = broadcastManager; _mempool = mempool; _validator = validator; _logger = logger; }
public TransactionReceivedEvent(ITransactionValidator validator, IMempool <MempoolDocument> mempool, IBroadcastManager broadcastManager, IPeerSettings peerSettings, ILogger logger) { _peerSettings = peerSettings; _broadcastManager = broadcastManager; _mempool = mempool; _validator = validator; _logger = logger; }
public TransactionReceivedEventTests() { var mapperProvider = new TestMapperProvider(); _mempool = Substitute.For <IMempool <PublicEntryDao> >(); _transactionValidator = Substitute.For <ITransactionValidator>(); _broadcastManager = Substitute.For <IBroadcastManager>(); _transactionReceivedEvent = new TransactionReceivedEvent(_transactionValidator, _mempool, _broadcastManager, mapperProvider, Substitute.For <ILogger>()); }
public LedgerTests() { _testScheduler = new TestScheduler(); _fakeRepository = Substitute.For <IAccountRepository>(); _hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("blake2b-256")); _logger = Substitute.For <ILogger>(); _mempool = Substitute.For <IMempool <MempoolDocument> >(); _deltaHashProvider = Substitute.For <IDeltaHashProvider>(); _ledgerSynchroniser = Substitute.For <ILedgerSynchroniser>(); _genesisHash = _hashProvider.ComputeUtf8MultiHash("genesis"); _ledgerSynchroniser.DeltaCache.GenesisHash.Returns(_genesisHash); _ledgerSynchroniser.DeltaCache.GenesisAddress.Returns(_genesisHash.ToBase32()); }
public TransactionReceivedEventTests() { _peerSettings = Substitute.For <IPeerSettings>(); _peerSettings.NetworkType.Returns(NetworkType.Devnet); _mempool = Substitute.For <IMempool <MempoolDocument> >(); _transactionValidator = Substitute.For <ITransactionValidator>(); _broadcastManager = Substitute.For <IBroadcastManager>(); _transactionReceivedEvent = new TransactionReceivedEvent(_transactionValidator, _mempool, _broadcastManager, _peerSettings, Substitute.For <ILogger>()); }
public Ledger(IAccountRepository accounts, IDeltaHashProvider deltaHashProvider, ILedgerSynchroniser synchroniser, IMempool <MempoolDocument> mempool, ILogger logger) { Accounts = accounts; _synchroniser = synchroniser; _mempool = mempool; _logger = logger; _deltaUpdatesSubscription = deltaHashProvider.DeltaHashUpdates.Subscribe(Update); LatestKnownDelta = _synchroniser.DeltaCache.GenesisHash; _cryptoContext = new FfiWrapper(); }
public Ledger(IDeltaExecutor deltaExecutor, IStateProvider stateProvider, IStorageProvider storageProvider, ISnapshotableDb stateDb, IDb codeDb, IAccountRepository accounts, IDeltaIndexService deltaIndexService, ITransactionRepository receipts, IDeltaHashProvider deltaHashProvider, ISynchroniser synchroniser, IMempool <PublicEntryDao> mempool, IMapperProvider mapperProvider, IHashProvider hashProvider, ILogger logger) { Accounts = accounts; _deltaExecutor = deltaExecutor; _stateProvider = stateProvider; _storageProvider = storageProvider; _stateDb = stateDb; _codeDb = codeDb; _mempool = mempool; _mapperProvider = mapperProvider; _hashProvider = hashProvider; _logger = logger; _receipts = receipts; _synchroniser = synchroniser; _deltaUpdatesSubscription = deltaHashProvider.DeltaHashUpdates.Subscribe(Update); _deltaIndexService = deltaIndexService; var latestDeltaIndex = _deltaIndexService.LatestDeltaIndex(); if (latestDeltaIndex != null) { _latestKnownDelta = latestDeltaIndex.Cid; _latestKnownDeltaNumber = (long)latestDeltaIndex.Height; return; } _latestKnownDelta = _synchroniser.DeltaCache.GenesisHash; WriteLatestKnownDelta(_latestKnownDelta); }
public PoaTestNode(string name, IPrivateKey privateKey, IPeerSettings nodeSettings, IEnumerable <PeerId> knownPeerIds, IFileSystem parentTestFileSystem, ITestOutputHelper output) { Name = name; _nodeSettings = nodeSettings; _nodeDirectory = parentTestFileSystem.GetCatalystDataDir().SubDirectoryInfo(Name); var nodeFileSystem = Substitute.ForPartsOf <FileSystem>(); nodeFileSystem.GetCatalystDataDir().Returns(_nodeDirectory); _rpcSettings = RpcSettingsHelper.GetRpcServerSettings(nodeSettings.Port + 100); _nodePeerId = nodeSettings.PeerId; var baseDfsFolder = Path.Combine(parentTestFileSystem.GetCatalystDataDir().FullName, "dfs"); var hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("blake2b-256")); _dfs = new DevDfs(parentTestFileSystem, hashProvider, baseDfsFolder); _memPool = new Mempool(new TestMempoolRepository(new InMemoryRepository <TransactionBroadcastDao, string>())); _peerRepository = Substitute.For <IPeerRepository>(); var peersInRepo = knownPeerIds.Select(p => new Peer { PeerId = p }).ToList(); _peerRepository.AsQueryable().Returns(peersInRepo.AsQueryable()); _peerRepository.GetAll().Returns(peersInRepo); _peerRepository.Get(Arg.Any <string>()).Returns(ci => { return(peersInRepo.First(p => p.DocumentId.Equals((string)ci[0]))); }); _containerProvider = new ContainerProvider(new[] { Constants.NetworkConfigFile(NetworkType.Devnet), Constants.SerilogJsonConfigFile } .Select(f => Path.Combine(Constants.ConfigSubFolder, f)), parentTestFileSystem, output); Program.RegisterNodeDependencies(_containerProvider.ContainerBuilder, excludedModules: new List <Type> { typeof(ApiModule), typeof(RpcServerModule) } ); _containerProvider.ConfigureContainerBuilder(true, true); OverrideContainerBuilderRegistrations(); _scope = _containerProvider.Container.BeginLifetimeScope(Name); _node = _scope.Resolve <ICatalystNode>(); var keyStore = _scope.Resolve <IKeyStore>(); var keyRegistry = _scope.Resolve <IKeyRegistry>(); keyRegistry.AddItemToRegistry(KeyRegistryTypes.DefaultKey, privateKey); keyStore.KeyStoreEncryptAsync(privateKey, nodeSettings.NetworkType, KeyRegistryTypes.DefaultKey).ConfigureAwait(false).GetAwaiter() .GetResult(); }
public DeltaTransactionRetriever(IMempool <MempoolDocument> mempool, ITransactionComparer transactionComparer) { _mempool = mempool; TransactionComparer = transactionComparer; }