示例#1
0
        public void Setup()
        {
            _depositNodesHandlerFactory = Substitute.For <IDepositNodesHandlerFactory>();
            _sessionManager             = Substitute.For <ISessionManager>();
            _receiptsPolicies           = Substitute.For <IReceiptsPolicies>();
            _receiptProcessor           = Substitute.For <IReceiptProcessor>();
            _paymentClaimProcessor      = Substitute.For <IPaymentClaimProcessor>();
            _consumerRepository         = Substitute.For <IConsumerRepository>();
            _paymentClaimRepository     = Substitute.For <IPaymentClaimRepository>();
            _sessionRepository          = Substitute.For <IProviderSessionRepository>();
            _sessionRepository.BrowseAsync(Arg.Any <GetProviderSessions>()).Returns(PagedResult <ProviderSession> .Empty);
            _receiptRepository = Substitute.For <IReceiptRepository>();
            var unixTime = UnixTime.FromSeconds(100);

            _timestamper = Substitute.For <ITimestamper>();
            _timestamper.UnixTime.Returns(unixTime);
            _gasPriceService     = Substitute.For <IGasPriceService>();
            _logManager          = Substitute.For <ILogManager>();
            _wallet              = Substitute.For <IWallet>();
            _address             = Address.Zero;
            _consumer            = Address.Zero;
            _depositNodesHandler = new InMemoryDepositNodesHandler(Keccak.Zero, _consumer, DataAssetUnitType.Unit, 0,
                                                                   100, 0,
                                                                   0, 0, 0, 0, 0, 0, null, null, 0);
            _depositNodesHandlerFactory.CreateInMemory(Arg.Any <Keccak>(), _consumer, Arg.Any <DataAssetUnitType>(),
                                                       Arg.Any <uint>(), Arg.Any <uint>(), Arg.Any <UInt256>(), Arg.Any <uint>(), Arg.Any <uint>(), Arg.Any <uint>(),
                                                       Arg.Any <uint>(), Arg.Any <uint>(), Arg.Any <uint>(), Arg.Any <PaymentClaim>(),
                                                       Arg.Any <IEnumerable <DataDeliveryReceiptDetails> >(), Arg.Any <uint>()).Returns(_depositNodesHandler);
            _depositManager = new DepositManager(_depositNodesHandlerFactory, _sessionManager, _receiptsPolicies,
                                                 _wallet, _address, _receiptProcessor, _paymentClaimProcessor, _consumerRepository,
                                                 _paymentClaimRepository, _receiptRepository, _sessionRepository, _timestamper, _gasPriceService,
                                                 _logManager);
        }
示例#2
0
 public DepositManager(IDepositNodesHandlerFactory depositNodesHandlerFactory, ISessionManager sessionManager,
                       IReceiptsPolicies receiptsPolicies, IWallet wallet, Address providerAddress,
                       IReceiptProcessor receiptProcessor, IPaymentClaimProcessor paymentClaimProcessor,
                       IConsumerRepository consumerRepository, IPaymentClaimRepository paymentClaimRepository,
                       IReceiptRepository receiptRepository, IProviderSessionRepository sessionRepository,
                       ITimestamper timestamper, IGasPriceService gasPriceService, ILogManager logManager)
 {
     _depositNodesHandlerFactory = depositNodesHandlerFactory;
     _sessionManager             = sessionManager;
     _receiptsPolicies           = receiptsPolicies;
     _wallet                  = wallet;
     _providerAddress         = providerAddress;
     _receiptProcessor        = receiptProcessor;
     _paymentClaimProcessor   = paymentClaimProcessor;
     _consumerRepository      = consumerRepository;
     _paymentClaimRepository  = paymentClaimRepository;
     _receiptRepository       = receiptRepository;
     _sessionRepository       = sessionRepository;
     _timestamper             = timestamper;
     _gasPriceService         = gasPriceService;
     _logger                  = logManager.GetClassLogger();
     _wallet.AccountLocked   += OnAccountLocked;
     _wallet.AccountUnlocked += OnAccountUnlocked;
     _accountLocked           = !_wallet.IsUnlocked(_providerAddress);
 }
示例#3
0
 public InstantPaymentClaimProcessor(IPaymentClaimProcessor processor, IPaymentClaimRepository repository,
                                     ILogManager logManager)
 {
     _processor  = processor;
     _repository = repository;
     _logger     = logManager.GetClassLogger();
 }
示例#4
0
 public ProviderTransactionsService(ITransactionService transactionService,
                                    IPaymentClaimRepository paymentClaimRepository, ITimestamper timestamper, ILogManager logManager)
 {
     _transactionService     = transactionService ?? throw new ArgumentNullException(nameof(transactionService));
     _paymentClaimRepository = paymentClaimRepository ?? throw new ArgumentNullException(nameof(paymentClaimRepository));
     _timestamper            = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     _logger = logManager.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
 }
        public void SetUp()
        {
            PaymentClaimDecoder.Init();
            UnitsRangeDecoder.Init();
            TransactionInfoDecoder.Init();

            var memDb = new MemDb();

            repository = new PaymentClaimRocksRepository(memDb, new PaymentClaimDecoder());
        }
 public PaymentClaimProcessor(IGasPriceService gasPriceService, IConsumerRepository consumerRepository,
                              IPaymentClaimRepository paymentClaimRepository, IPaymentService paymentService, Address coldWalletAddress,
                              ITimestamper timestamper, IRlpObjectDecoder <UnitsRange> unitsRangeRlpDecoder, ILogManager logManager,
                              bool disableSendingPaymentClaimTransaction = false)
 {
     _gasPriceService        = gasPriceService;
     _consumerRepository     = consumerRepository;
     _paymentClaimRepository = paymentClaimRepository;
     _paymentService         = paymentService;
     _coldWalletAddress      = coldWalletAddress;
     _timestamper            = timestamper;
     _unitsRangeRlpDecoder   = unitsRangeRlpDecoder;
     _disableSendingPaymentClaimTransaction = disableSendingPaymentClaimTransaction;
     _logger = logManager.GetClassLogger();
 }
示例#7
0
 public void Setup()
 {
     _gasPrice               = 20.GWei();
     _gasPriceService        = Substitute.For <IGasPriceService>();
     _consumerRepository     = Substitute.For <IConsumerRepository>();
     _paymentClaimRepository = Substitute.For <IPaymentClaimRepository>();
     _paymentService         = Substitute.For <IPaymentService>();
     _coldWalletAddress      = Address.Zero;
     _consumerRlpDecoder     = Substitute.For <IRlpObjectDecoder <Consumer> >();
     _consumerRlpDecoder.Encode(Arg.Any <Consumer>()).ReturnsForAnyArgs(new Rlp(Array.Empty <byte>()));
     _unitsRangeRlpDecoder = Substitute.For <IRlpObjectDecoder <UnitsRange> >();
     _unitsRangeRlpDecoder.Encode(Arg.Any <UnitsRange>()).ReturnsForAnyArgs(new Rlp(Array.Empty <byte>()));
     _timestamper      = Substitute.For <ITimestamper>();
     _transaction      = Build.A.Transaction.TestObject;
     _transaction.Hash = TestItem.KeccakA;
     _gasPriceService.GetCurrentPaymentClaimGasPriceAsync().Returns(_gasPrice);
     _processor = new PaymentClaimProcessor(_gasPriceService, _consumerRepository, _paymentClaimRepository,
                                            _paymentService, _coldWalletAddress, _timestamper, _unitsRangeRlpDecoder, LimboLogs.Instance);
 }
示例#8
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);
        }
示例#9
0
 public ReportService(IConsumerRepository consumerRepository, IPaymentClaimRepository paymentClaimRepository)
 {
     _consumerRepository     = consumerRepository;
     _paymentClaimRepository = paymentClaimRepository;
 }