Ejemplo n.º 1
0
 public InitModule(IEthJsonRpcClientProxy ethJsonRpcClientProxy, IRunnerValidator runnerValidator,
                   string network)
 {
     _ethJsonRpcClientProxy = ethJsonRpcClientProxy;
     _runnerValidator       = runnerValidator;
     _network = network;
 }
Ejemplo n.º 2
0
        public ConsumerServicesBackgroundProcessor(IAccountService accountService, IRefundClaimant refundClaimant,
                                                   IDepositConfirmationService depositConfirmationService, IEthPriceService ethPriceService,
                                                   IGasPriceService gasPriceService, IBlockProcessor blockProcessor,
                                                   IDepositDetailsRepository depositRepository, IConsumerNotifier consumerNotifier, ILogManager logManager,
                                                   bool useDepositTimer = false, IEthJsonRpcClientProxy ethJsonRpcClientProxy = null,
                                                   uint depositTimer    = 10000)
        {
            _accountService             = accountService;
            _refundClaimant             = refundClaimant;
            _depositConfirmationService = depositConfirmationService;
            _ethPriceService            = ethPriceService;
            _gasPriceService            = gasPriceService;
            _blockProcessor             = blockProcessor;
            _depositRepository          = depositRepository;
            _consumerNotifier           = consumerNotifier;
            _useDepositTimer            = useDepositTimer;
            _ethJsonRpcClientProxy      = ethJsonRpcClientProxy;
            _logger = logManager.GetClassLogger();
            if (_useDepositTimer)
            {
                _depositTimer = new Timer(depositTimer);
            }

            _ethPriceService.UpdateAsync();
            _gasPriceService.UpdateAsync();
        }
Ejemplo n.º 3
0
 public DataModule(IEthJsonRpcClientProxy ethJsonRpcClientProxy, string address)
 {
     _ethJsonRpcClientProxy = ethJsonRpcClientProxy;
     _address  = new Address(address);
     _interval = TimeSpan.FromSeconds(5);
     _timer    = new Timer(Update, null, TimeSpan.Zero, _interval);
 }
Ejemplo n.º 4
0
 public void Setup()
 {
     _configProvider            = Substitute.For <IConfigProvider>();
     _configManager             = Substitute.For <IConfigManager>();
     _ndmConfig                 = new NdmConfig();
     _baseDbPath                = "db";
     _rocksProvider             = Substitute.For <IDbProvider>();
     _mongoProvider             = Substitute.For <IMongoProvider>();
     _logManager                = Substitute.For <ILogManager>();
     _blockTree                 = Substitute.For <IBlockTree>();
     _specProvider              = Substitute.For <ISpecProvider>();
     _transactionPool           = Substitute.For <ITxPool>();
     _receiptStorage            = Substitute.For <IReceiptStorage>();
     _filterStore               = Substitute.For <IFilterStore>();
     _filterManager             = Substitute.For <IFilterManager>();
     _wallet                    = Substitute.For <IWallet>();
     _timestamper               = Substitute.For <ITimestamper>();
     _ecdsa                     = Substitute.For <IEthereumEcdsa>();
     _keyStore                  = Substitute.For <IKeyStore>();
     _rpcModuleProvider         = Substitute.For <IRpcModuleProvider>();
     _jsonSerializer            = Substitute.For <IJsonSerializer>();
     _cryptoRandom              = Substitute.For <ICryptoRandom>();
     _enode                     = Substitute.For <IEnode>();
     _ndmConsumerChannelManager = Substitute.For <INdmConsumerChannelManager>();
     _ndmDataPublisher          = Substitute.For <INdmDataPublisher>();
     _grpcServer                = Substitute.For <IGrpcServer>();
     _ethRequestService         = Substitute.For <IEthRequestService>();
     _notifier                  = Substitute.For <INdmNotifier>();
     _enableUnsecuredDevWallet  = false;
     _blockProcessor            = Substitute.For <IBlockProcessor>();
     _jsonRpcClientProxy        = Substitute.For <IJsonRpcClientProxy>();
     _ethJsonRpcClientProxy     = Substitute.For <IEthJsonRpcClientProxy>();
     _httpClient                = Substitute.For <IHttpClient>();
     _ndmModule                 = new NdmModule();
 }
Ejemplo n.º 5
0
 public TransferModule(IEthJsonRpcClientProxy ethJsonRpcClientProxy, IJsonRpcWalletClientProxy
                       jsonRpcWalletClientProxy, Address address, decimal balanceEth)
 {
     _ethJsonRpcClientProxy    = ethJsonRpcClientProxy;
     _jsonRpcWalletClientProxy = jsonRpcWalletClientProxy;
     _address    = address;
     _balanceEth = balanceEth;
     _interval   = TimeSpan.FromSeconds(5);
     _timer      = new Timer(Update, null, TimeSpan.Zero, _interval);
 }
Ejemplo n.º 6
0
 public NdmCreatedServices(Address consumerAddress,
                           IAbiEncoder abiEncoder, IRlpDecoder <DataAsset> dataAssetRlpDecoder, IDepositService depositService,
                           INdmDataPublisher ndmDataPublisher, IJsonRpcNdmConsumerChannel jsonRpcNdmConsumerChannel,
                           INdmConsumerChannelManager ndmConsumerChannelManager, INdmBlockchainBridge blockchainBridge,
                           IEthJsonRpcClientProxy ethJsonRpcClientProxy)
 {
     ConsumerAddress           = consumerAddress;
     AbiEncoder                = abiEncoder;
     DataAssetRlpDecoder       = dataAssetRlpDecoder;
     DepositService            = depositService;
     NdmDataPublisher          = ndmDataPublisher;
     JsonRpcNdmConsumerChannel = jsonRpcNdmConsumerChannel;
     NdmConsumerChannelManager = ndmConsumerChannelManager;
     BlockchainBridge          = blockchainBridge;
     EthJsonRpcClientProxy     = ethJsonRpcClientProxy;
 }
Ejemplo n.º 7
0
 public NdmRequiredServices(IConfigProvider configProvider, IConfigManager configManager, INdmConfig ndmConfig,
                            string baseDbPath, IDbProvider rocksProvider, IMongoProvider mongoProvider, ILogManager logManager,
                            IBlockTree blockTree, ITxPool transactionPool, ISpecProvider specProvider, IReceiptStorage receiptStorage,
                            IFilterStore filterStore, IFilterManager filterManager, IWallet wallet, ITimestamper timestamper,
                            IEthereumEcdsa ecdsa, IKeyStore keyStore, IRpcModuleProvider rpcModuleProvider,
                            IJsonSerializer jsonSerializer, ICryptoRandom cryptoRandom, IEnode enode,
                            INdmConsumerChannelManager ndmConsumerChannelManager, INdmDataPublisher ndmDataPublisher,
                            IGrpcServer grpcServer, IEthRequestService ethRequestService, INdmNotifier notifier,
                            bool enableUnsecuredDevWallet, IBlockProcessor blockProcessor, IJsonRpcClientProxy jsonRpcClientProxy,
                            IEthJsonRpcClientProxy ethJsonRpcClientProxy, IHttpClient httpClient, IMonitoringService monitoringService)
 {
     ConfigProvider            = configProvider;
     ConfigManager             = configManager;
     NdmConfig                 = ndmConfig;
     BaseDbPath                = baseDbPath;
     RocksProvider             = rocksProvider;
     MongoProvider             = mongoProvider;
     LogManager                = logManager;
     BlockTree                 = blockTree;
     TransactionPool           = transactionPool;
     SpecProvider              = specProvider;
     ReceiptStorage            = receiptStorage;
     FilterStore               = filterStore;
     FilterManager             = filterManager;
     Wallet                    = wallet;
     Timestamper               = timestamper;
     Ecdsa                     = ecdsa;
     KeyStore                  = keyStore;
     RpcModuleProvider         = rpcModuleProvider;
     JsonSerializer            = jsonSerializer;
     CryptoRandom              = cryptoRandom;
     Enode                     = enode;
     NdmConsumerChannelManager = ndmConsumerChannelManager;
     NdmDataPublisher          = ndmDataPublisher;
     GrpcServer                = grpcServer;
     EthRequestService         = ethRequestService;
     Notifier                  = notifier;
     EnableUnsecuredDevWallet  = enableUnsecuredDevWallet;
     BlockProcessor            = blockProcessor;
     JsonRpcClientProxy        = jsonRpcClientProxy;
     EthJsonRpcClientProxy     = ethJsonRpcClientProxy;
     HttpClient                = httpClient;
     MonitoringService         = monitoringService;
 }
Ejemplo n.º 8
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>();
 }
 public ConsumerServicesBackgroundProcessor(IAccountService accountService, IRefundClaimant refundClaimant,
                                            IDepositConfirmationService depositConfirmationService, IBlockProcessor blockProcessor,
                                            IDepositDetailsRepository depositRepository, IConsumerNotifier consumerNotifier, ILogManager logManager,
                                            uint tryClaimRefundsIntervalMilliseconds     = 60000, bool useDepositTimer = false,
                                            IEthJsonRpcClientProxy ethJsonRpcClientProxy = null, uint depositTimer     = 10000)
 {
     _accountService             = accountService;
     _refundClaimant             = refundClaimant;
     _depositConfirmationService = depositConfirmationService;
     _blockProcessor             = blockProcessor;
     _depositRepository          = depositRepository;
     _consumerNotifier           = consumerNotifier;
     _useDepositTimer            = useDepositTimer;
     _ethJsonRpcClientProxy      = ethJsonRpcClientProxy;
     _logger           = logManager.GetClassLogger();
     _refundClaimTimer = new Timer(tryClaimRefundsIntervalMilliseconds);
     if (_useDepositTimer)
     {
         _depositTimer = new Timer(depositTimer);
     }
 }
Ejemplo n.º 10
0
        public virtual async Task <INdmCapabilityConnector> InitAsync(IConfigProvider configProvider,
                                                                      IDbProvider dbProvider, string baseDbPath, IBlockTree blockTree, ITxPool txPool, ISpecProvider specProvider,
                                                                      IReceiptStorage receiptStorage, IWallet wallet, IFilterStore filterStore, IFilterManager filterManager,
                                                                      ITimestamper timestamper, IEthereumEcdsa ecdsa, IRpcModuleProvider rpcModuleProvider, IKeyStore keyStore,
                                                                      IJsonSerializer jsonSerializer, ICryptoRandom cryptoRandom, IEnode enode,
                                                                      INdmConsumerChannelManager consumerChannelManager, INdmDataPublisher dataPublisher, IGrpcServer grpcServer,
                                                                      INodeStatsManager nodeStatsManager, IProtocolsManager protocolsManager,
                                                                      IProtocolValidator protocolValidator, IMessageSerializationService messageSerializationService,
                                                                      bool enableUnsecuredDevWallet, IWebSocketsManager webSocketsManager, ILogManager logManager,
                                                                      IBlockProcessor blockProcessor, IJsonRpcClientProxy jsonRpcClientProxy,
                                                                      IEthJsonRpcClientProxy ethJsonRpcClientProxy, IHttpClient httpClient, IMonitoringService monitoringService)
        {
            var(config, services, faucet, ethRequestService, accountService, consumerService, consumerAddress,
                providerAddress) = await PreInitAsync(configProvider, dbProvider, baseDbPath, blockTree, txPool,
                                                      specProvider, receiptStorage, wallet, filterStore, filterManager, timestamper, ecdsa, rpcModuleProvider,
                                                      keyStore, jsonSerializer, cryptoRandom, enode, consumerChannelManager, dataPublisher, grpcServer,
                                                      enableUnsecuredDevWallet, webSocketsManager, logManager, blockProcessor, jsonRpcClientProxy,
                                                      ethJsonRpcClientProxy, httpClient, monitoringService);

            if (!config.Enabled)
            {
                return(default);
Ejemplo n.º 11
0
 public void Setup()
 {
     _client = Substitute.For <IJsonRpcClientProxy>();
     _proxy  = new EthJsonRpcClientProxy(_client);
 }
 public NdmBlockchainBridgeProxy(IEthJsonRpcClientProxy proxy)
 {
     _proxy = proxy ?? throw new ArgumentNullException(nameof(proxy));
 }
Ejemplo n.º 13
0
 public EthModuleProxy(IEthJsonRpcClientProxy proxy)
 {
     _proxy = proxy;
 }
Ejemplo n.º 14
0
 public EthModuleProxyFactory(IEthJsonRpcClientProxy ethJsonRpcClientProxy, IWallet wallet)
 {
     _ethJsonRpcClientProxy = ethJsonRpcClientProxy;
     _wallet = wallet;
 }
 public void Setup()
 {
     _proxy     = Substitute.For <IEthJsonRpcClientProxy>();
     _ndmBridge = new NdmBlockchainBridgeProxy(_proxy);
 }
Ejemplo n.º 16
0
 public EthModuleProxyFactory(IEthJsonRpcClientProxy?ethJsonRpcClientProxy, IWallet?wallet)
 {
     _ethJsonRpcClientProxy = ethJsonRpcClientProxy ?? throw new ArgumentNullException(nameof(ethJsonRpcClientProxy));
     _wallet = wallet ?? throw new ArgumentNullException(nameof(wallet));
 }
Ejemplo n.º 17
0
        public INdmServices Init(NdmRequiredServices services)
        {
            AddDecoders();
            var config          = services.NdmConfig;
            var providerAddress = string.IsNullOrWhiteSpace(config.ProviderAddress)
                ? Address.Zero
                : new Address(config.ProviderAddress);
            var consumerAddress = string.IsNullOrWhiteSpace(config.ConsumerAddress)
                ? Address.Zero
                : new Address(config.ConsumerAddress);
            var contractAddress = string.IsNullOrWhiteSpace(config.ContractAddress)
                ? Address.Zero
                : new Address(config.ContractAddress);

            UnlockHardcodedAccounts(providerAddress, consumerAddress, services.Wallet);

            var logManager              = services.LogManager;
            var jsonSerializer          = services.JsonSerializer;
            var readOnlyTree            = new ReadOnlyBlockTree(services.BlockTree);
            var readOnlyDbProvider      = new ReadOnlyDbProvider(services.RocksProvider, false);
            var readOnlyTxProcessingEnv = new ReadOnlyTxProcessingEnv(readOnlyDbProvider, readOnlyTree,
                                                                      services.SpecProvider, logManager);
            var blockchainBridge = new BlockchainBridge(
                readOnlyTxProcessingEnv.StateReader,
                readOnlyTxProcessingEnv.StateProvider,
                readOnlyTxProcessingEnv.StorageProvider,
                readOnlyTxProcessingEnv.BlockTree,
                services.TransactionPool,
                services.ReceiptStorage,
                services.FilterStore,
                services.FilterManager,
                services.Wallet,
                readOnlyTxProcessingEnv.TransactionProcessor,
                services.Ecdsa);
            var dataAssetRlpDecoder = new DataAssetDecoder();
            var encoder             = new AbiEncoder();

            IEthJsonRpcClientProxy ethJsonRpcClientProxy = null;
            INdmBlockchainBridge   ndmBlockchainBridge;

            if (config.ProxyEnabled)
            {
                ethJsonRpcClientProxy = new EthJsonRpcClientProxy(new JsonRpcClientProxy(
                                                                      new DefaultHttpClient(new HttpClient(), jsonSerializer, logManager),
                                                                      config.JsonRpcUrlProxies));
                ndmBlockchainBridge = new NdmBlockchainBridgeProxy(ethJsonRpcClientProxy);
            }
            else
            {
                ndmBlockchainBridge = new NdmBlockchainBridge(blockchainBridge, services.TransactionPool);
            }

            var depositService = new DepositService(ndmBlockchainBridge, services.TransactionPool, encoder,
                                                    services.Wallet, contractAddress, logManager);
            var ndmConsumerChannelManager = services.NdmConsumerChannelManager;
            var ndmDataPublisher          = services.NdmDataPublisher;
            var jsonRpcNdmConsumerChannel = new JsonRpcNdmConsumerChannel();

//            ndmConsumerChannelManager.Add(jsonRpcNdmConsumerChannel);

            return(new Services(services, new NdmCreatedServices(consumerAddress, encoder, dataAssetRlpDecoder,
                                                                 depositService, ndmDataPublisher, jsonRpcNdmConsumerChannel, ndmConsumerChannelManager,
                                                                 ndmBlockchainBridge, ethJsonRpcClientProxy)));
        }
Ejemplo n.º 18
0
        public void constructor_should_throw_exception_if_client_argument_is_null()
        {
            Action act = () => _proxy = new EthJsonRpcClientProxy(null);

            act.Should().Throw <ArgumentNullException>();
        }
Ejemplo n.º 19
0
 public EthRpcModuleProxy(IEthJsonRpcClientProxy proxy, IWallet wallet)
 {
     _proxy  = proxy;
     _wallet = wallet;
 }
Ejemplo n.º 20
0
 public BalanceModule(IEthJsonRpcClientProxy ethJsonRpcClientProxy, string address)
 {
     _ethJsonRpcClientProxy = ethJsonRpcClientProxy;
     _address = new Address(address);
     _timer   = new Timer(Update, null, TimeSpan.Zero, TimeSpan.FromSeconds(2));
 }