Ejemplo n.º 1
0
        private Task AddOrUpdateAsync(NdmConfig config)
        {
            Serialization.Rlp.Rlp rlp = _rlpDecoder.Encode(config);
            _database.Set(Keccak.Compute(config.Id), rlp.Bytes);

            return(Task.CompletedTask);
        }
Ejemplo n.º 2
0
 public void Setup()
 {
     _configId         = "ndm";
     _defaultConfig    = new NdmConfig();
     _configRepository = Substitute.For <IConfigRepository>();
     _configManager    = new ConfigManager(_defaultConfig, _configRepository);
 }
Ejemplo n.º 3
0
        public void Config_roundtrip()
        {
            NdmConfigDecoder.Init();
            NdmConfig ndmConfig = new NdmConfig();

            NdmConfigDecoder decoder = new NdmConfigDecoder();

            decoder.Decode(decoder.Encode(ndmConfig).Bytes.AsRlpStream()).Should().BeEquivalentTo(ndmConfig);
        }
 public void Setup()
 {
     _blockchainBridge = Substitute.For <INdmBlockchainBridge>();
     _wallet           = Substitute.For <IWallet>();
     _wallet.Sign(Arg.Any <Keccak>(), Arg.Any <Address>()).Returns(new Signature(new byte[65]));
     _configManager = Substitute.For <IConfigManager>();
     _config        = new NdmConfig();
     _configManager.GetAsync(ConfigId).Returns(_config);
     _transactionService = new TransactionService(_blockchainBridge, _wallet, _configManager, ConfigId, LimboLogs.Instance);
 }
Ejemplo n.º 5
0
 public void Setup()
 {
     _client        = Substitute.For <IHttpClient>();
     _configManager = Substitute.For <IConfigManager>();
     _config        = new NdmConfig();
     _configManager.GetAsync(ConfigId).Returns(_config);
     _timestamper     = new Timestamper(DateTime.UtcNow);
     _gasPriceService = new GasPriceService(_client, _configManager, ConfigId, _timestamper,
                                            LimboLogs.Instance);
 }
Ejemplo n.º 6
0
        public async Task given_store_config_in_database_equal_true_and_no_previous_config_it_should_be_added()
        {
            _defaultConfig.StoreConfigInDatabase = true;
            var config = new NdmConfig();
            await _configManager.UpdateAsync(config);

            await _configRepository.Received().AddAsync(config);

            await _configRepository.DidNotReceiveWithAnyArgs().UpdateAsync(Arg.Any <NdmConfig>());
        }
Ejemplo n.º 7
0
        public async Task given_store_config_in_database_equal_true_config_from_database_should_be_returned()
        {
            _defaultConfig.StoreConfigInDatabase = true;
            var configFromDatabase = new NdmConfig();

            _configRepository.GetAsync(_configId).Returns(configFromDatabase);
            var config = await _configManager.GetAsync(_configId);

            config.Should().Be(configFromDatabase);
        }
Ejemplo n.º 8
0
 public void Setup()
 {
     _blockchainBridge = Substitute.For <INdmBlockchainBridge>();
     _wallet           = Substitute.For <IWallet>();
     _configManager    = Substitute.For <IConfigManager>();
     _config           = new NdmConfig();
     _configManager.GetAsync(ConfigId).Returns(_config);
     _transactionService = new TransactionService(_blockchainBridge, _wallet, _configManager, ConfigId,
                                                  LimboLogs.Instance);
 }
Ejemplo n.º 9
0
 public void Setup()
 {
     _receiptRequestThreshold = 10000000000000000;
     _receiptsMergeThreshold  = 100000000000000000;
     _paymentClaimThreshold   = 1000000000000000000;
     _configManager           = Substitute.For <IConfigManager>();
     _config     = new NdmConfig();
     _logManager = LimboLogs.Instance;
     _configManager.GetAsync(ConfigId).Returns(_config);
     _providerThresholdsService = new ProviderThresholdsService(_configManager, ConfigId, _logManager);
 }
Ejemplo n.º 10
0
 public void Setup()
 {
     _ndmModule                = Substitute.For <INdmModule>();
     _ndmConsumersModule       = Substitute.For <INdmConsumersModule>();
     _configProvider           = Substitute.For <IConfigProvider>();
     _enableUnsecuredDevWallet = false;
     _ndmConfig                = new NdmConfig {
         Enabled = true, StoreConfigInDatabase = false
     };
     _initConfig = Substitute.For <IInitConfig>();
     _configProvider.GetConfig <INdmConfig>().Returns(_ndmConfig);
     _ndmInitializer = new NdmInitializer(_ndmModule, _ndmConsumersModule, LimboLogs.Instance);
 }
Ejemplo n.º 11
0
        public async Task UpdateAsync(NdmConfig config)
        {
            if (!_config.StoreConfigInDatabase)
            {
                return;
            }

            var existingConfig = await _repository.GetAsync(config.Id);

            if (existingConfig is null)
            {
                await _repository.AddAsync(config);

                return;
            }

            await _repository.UpdateAsync(config);
        }
Ejemplo n.º 12
0
 public void Setup()
 {
     _ndmModule          = Substitute.For <INdmModule>();
     _ndmConsumersModule = Substitute.For <INdmConsumersModule>();
     _configProvider     = Substitute.For <IConfigProvider>();
     _dbProvider         = Substitute.For <IDbProvider>();
     _blockTree          = Substitute.For <IBlockTree>();
     _txPool             = Substitute.For <ITxPool>();
     _txSender           = Substitute.For <ITxSender>();
     _specProvider       = Substitute.For <ISpecProvider>();
     _receiptFinder      = Substitute.For <IReceiptFinder>();
     _wallet             = Substitute.For <IWallet>();
     _filterStore        = Substitute.For <IFilterStore>();
     _filterManager      = Substitute.For <IFilterManager>();
     _timestamper        = Substitute.For <ITimestamper>();
     _ecdsa                       = Substitute.For <IEthereumEcdsa>();
     _rpcModuleProvider           = Substitute.For <IRpcModuleProvider>();
     _keyStore                    = Substitute.For <IKeyStore>();
     _jsonSerializer              = Substitute.For <IJsonSerializer>();
     _cryptoRandom                = Substitute.For <ICryptoRandom>();
     _enode                       = Substitute.For <IEnode>();
     _consumerChannelManager      = Substitute.For <INdmConsumerChannelManager>();
     _dataPublisher               = Substitute.For <INdmDataPublisher>();
     _grpcServer                  = Substitute.For <IGrpcServer>();
     _nodeStatsManager            = Substitute.For <INodeStatsManager>();
     _protocolsManager            = Substitute.For <IProtocolsManager>();
     _protocolValidator           = Substitute.For <IProtocolValidator>();
     _messageSerializationService = Substitute.For <IMessageSerializationService>();
     _webSocketsManager           = Substitute.For <IWebSocketsManager>();
     _logManager                  = LimboLogs.Instance;
     _blockProcessor              = Substitute.For <IBlockProcessor>();
     _jsonRpcClientProxy          = Substitute.For <IJsonRpcClientProxy>();
     _ethJsonRpcClientProxy       = Substitute.For <IEthJsonRpcClientProxy>();
     _httpClient                  = Substitute.For <IHttpClient>();
     _monitoringService           = Substitute.For <IMonitoringService>();
     _enableUnsecuredDevWallet    = false;
     _ndmConfig                   = new NdmConfig {
         Enabled = true, StoreConfigInDatabase = false
     };
     _configProvider.GetConfig <INdmConfig>().Returns(_ndmConfig);
     _ndmInitializer = new NdmInitializer(_ndmModule, _ndmConsumersModule, _logManager);
     _bloomStorage   = Substitute.For <IBloomStorage>();
 }
Ejemplo n.º 13
0
        public async Task OneTimeSetUp()
        {
            InitDecoders();
            SetUpSubstitutes();

            logManager  = NoErrorLimboLogs.Instance;
            timestamper = new Timestamper();

            config   = new NdmConfig();
            configId = config.Id;

            var configDb         = new MemDb(NdmDbNames.Configs);
            var configRepository = new ConfigRocksRepository(configDb, new NdmConfigDecoder());
            await configRepository.AddAsync(config);

            configManager = new ConfigManager(config, configRepository);

            config.ProviderAddress           = "c7f8522f15c189e00d2f895b4528b4f84516cd7b";
            config.ProviderColdWalletAddress = "c7f8522f15c189e00d2f895b4528b4f84516cd7b";

            config.ConsumerAddress = "a238812fb5c199ea051f89200028b4f08513cd6a";

            providerAddress   = new Address(config.ProviderAddress);
            coldWalletAddress = new Address(config.ProviderColdWalletAddress);

            var sessionDb = new MemDb(ProviderDbNames.ProviderSessions);

            sessionRepository = new ProviderSessionRocksRepository(sessionDb, new ProviderSessionDecoder());
            sessionManager    = new SessionManager(sessionRepository, timestamper, logManager);

            var consumersDb = new MemDb(ProviderDbNames.Consumers);

            consumerRepository = new ConsumerRocksRepository(consumersDb, new ConsumerDecoder());

            paymentClaimDb         = new MemDb(ProviderDbNames.PaymentClaims);
            paymentClaimRepository = new PaymentClaimRocksRepository(paymentClaimDb, new PaymentClaimDecoder());

            var dataAssetDb = new MemDb(ProviderDbNames.DataAssets);

            dataAssetRepository = new DataAssetRocksRepository(dataAssetDb, new DataAssetDecoder());

            ecdsa                     = new Ecdsa();
            abiEncoder                = new AbiEncoder();
            ndmDataPublisher          = new NdmDataPublisher();
            dataAvaliabilityValidator = new DataAvailabilityValidator();

            nodeId       = new PublicKey(new CryptoRandom().GenerateRandomBytes(64));
            providerName = "test";
            filesPath    = config.FilesPath;
            fileMaxSize  = config.FileMaxSize;
            requiredBlockConfirmations = config.BlockConfirmations;
            paymentGasLimit            = 70000;
            skipDepositVerification    = true;
            backgroundServicesDisabled = false;

            DataAsset dataAsset = new DataAsset(new Keccak(Keccak.OfAnEmptyString.ToString()), "TestDataAsset", "Testing", 1, DataAssetUnitType.Unit, 1, 10, new DataAssetRules(new DataAssetRule(10)), new DataAssetProvider(providerAddress, "provider"), null, QueryType.Query);

            await dataAssetRepository.AddAsync(dataAsset);

            paymentClaimProcessor.SendTransactionAsync(Arg.Any <PaymentClaim>(), Arg.Any <UInt256>()).Returns(new Keccak("0x77a0e79f851c097f81210d88eb59ed8f933336f65e88b0bde6506f2c6556c2b6"));

            gasPriceService.GetCurrentPaymentClaimGasPriceAsync().Returns(Task.FromResult(new UInt256(10)));

            providerService = new ProviderService(configManager, configId, consumerRepository, dataAssetRepository, providerDepositApprovalRepository, paymentClaimRepository, paymentClaimProcessor, sessionRepository, timestamper, ecdsa, abiEncoder, ndmDataPublisher, gasPriceService, dataAvaliabilityValidator, sessionManager, transactionVerifier, depositManager, refundPolicy, depositService, wallet, blockchainBridge, providerAddress, coldWalletAddress, nodeId, providerName, filesPath, fileMaxSize, requiredBlockConfirmations, paymentGasLimit, logManager, skipDepositVerification, backgroundServicesDisabled);
        }
Ejemplo n.º 14
0
 public ConfigManager(NdmConfig config, IConfigRepository repository)
 {
     _config     = config ?? throw new ArgumentNullException(nameof(config), "NDM config was not provided.");
     _repository = repository ?? throw new ArgumentNullException(nameof(repository), "NDM config repository was not provided.");
 }
Ejemplo n.º 15
0
 public Task AddAsync(NdmConfig config) => Configs.InsertOneAsync(config);
Ejemplo n.º 16
0
 public Task UpdateAsync(NdmConfig config) => AddOrUpdateAsync(config);
Ejemplo n.º 17
0
 public Task UpdateAsync(NdmConfig config) => Configs.ReplaceOneAsync(c => c.Id == config.Id, config);