Ejemplo n.º 1
0
 public SessionManager(IProviderSessionRepository sessionRepository, ITimestamper timestamper,
                       ILogManager logManager)
 {
     _sessionRepository = sessionRepository;
     _timestamper       = timestamper;
     _logger            = logManager.GetClassLogger();
 }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
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);
 }
Ejemplo n.º 4
0
 public ReceiptProcessor(IProviderSessionRepository sessionRepository, IAbiEncoder abiEncoder, IEcdsa ecdsa,
                         ILogManager logManager)
 {
     _sessionRepository = sessionRepository;
     _abiEncoder        = abiEncoder;
     _ecdsa             = ecdsa;
     _logger            = logManager.GetClassLogger();
 }
Ejemplo n.º 5
0
 public void SetUp()
 {
     _sessionRepository = Substitute.For <IProviderSessionRepository>();
     _encoder           = Substitute.For <IAbiEncoder>();
     _signer            = Substitute.For <IEcdsa>();
     _peer      = Substitute.For <INdmProviderPeer>();
     _publicKey = new PublicKey(new byte[64]);
     _session   = new ProviderSession(Keccak.Zero, Keccak.Zero, Keccak.Zero, _publicKey.Address,
                                      _publicKey, TestItem.AddressB, TestItem.PublicKeyB, 0, 0);
     _session.SetDataAvailability(DataAvailability.Available);
     _session.Start(0);
     _processor = new ReceiptProcessor(_sessionRepository, _encoder, _signer, LimboLogs.Instance);
 }
Ejemplo n.º 6
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);
        }