public MoneroLikeStoreController(MoneroLikeConfiguration moneroLikeConfiguration,
                                  StoreRepository storeRepository, MoneroRPCProvider moneroRpcProvider,
                                  BTCPayNetworkProvider btcPayNetworkProvider)
 {
     _MoneroLikeConfiguration = moneroLikeConfiguration;
     _StoreRepository         = storeRepository;
     _MoneroRpcProvider       = moneroRpcProvider;
     _BtcPayNetworkProvider   = btcPayNetworkProvider;
 }
 public MoneroRPCProvider(MoneroLikeConfiguration moneroLikeConfiguration, EventAggregator eventAggregator, IHttpClientFactory httpClientFactory)
 {
     _moneroLikeConfiguration = moneroLikeConfiguration;
     _eventAggregator         = eventAggregator;
     DaemonRpcClients         =
         _moneroLikeConfiguration.MoneroLikeConfigurationItems.ToImmutableDictionary(pair => pair.Key,
                                                                                     pair => new JsonRpcClient(pair.Value.DaemonRpcUri, "", "", httpClientFactory.CreateClient()));
     WalletRpcClients =
         _moneroLikeConfiguration.MoneroLikeConfigurationItems.ToImmutableDictionary(pair => pair.Key,
                                                                                     pair => new JsonRpcClient(pair.Value.InternalWalletRpcUri, "", "", httpClientFactory.CreateClient()));
 }
Exemple #3
0
 public MoneroListener(InvoiceRepository invoiceRepository,
                       EventAggregator eventAggregator,
                       MoneroRPCProvider moneroRpcProvider,
                       MoneroLikeConfiguration moneroLikeConfiguration,
                       BTCPayNetworkProvider networkProvider,
                       ILogger <MoneroListener> logger)
 {
     _invoiceRepository       = invoiceRepository;
     _eventAggregator         = eventAggregator;
     _moneroRpcProvider       = moneroRpcProvider;
     _MoneroLikeConfiguration = moneroLikeConfiguration;
     _networkProvider         = networkProvider;
     _logger = logger;
 }
        private static MoneroLikeConfiguration ConfigureMoneroLikeConfiguration(this IServiceProvider serviceProvider)
        {
            var configuration         = serviceProvider.GetService <IConfiguration>();
            var btcPayNetworkProvider = serviceProvider.GetService <BTCPayNetworkProvider>();
            var result = new MoneroLikeConfiguration();

            var supportedChains = configuration.GetOrDefault <string>("chains", string.Empty)
                                  .Split(',', StringSplitOptions.RemoveEmptyEntries)
                                  .Select(t => t.ToUpperInvariant());

            var supportedNetworks = btcPayNetworkProvider.Filter(supportedChains.ToArray()).GetAll()
                                    .OfType <MoneroLikeSpecificBtcPayNetwork>();

            foreach (var moneroLikeSpecificBtcPayNetwork in supportedNetworks)
            {
                var daemonUri =
                    configuration.GetOrDefault <Uri>($"{moneroLikeSpecificBtcPayNetwork.CryptoCode}_daemon_uri",
                                                     null);
                var walletDaemonUri =
                    configuration.GetOrDefault <Uri>(
                        $"{moneroLikeSpecificBtcPayNetwork.CryptoCode}_wallet_daemon_uri", null);
                var walletDaemonWalletDirectory =
                    configuration.GetOrDefault <string>(
                        $"{moneroLikeSpecificBtcPayNetwork.CryptoCode}_wallet_daemon_walletdir", null);
                if (daemonUri == null || walletDaemonUri == null)
                {
                    throw new ConfigException($"{moneroLikeSpecificBtcPayNetwork.CryptoCode} is misconfigured");
                }

                result.MoneroLikeConfigurationItems.Add(moneroLikeSpecificBtcPayNetwork.CryptoCode, new MoneroLikeConfigurationItem()
                {
                    DaemonRpcUri         = daemonUri,
                    InternalWalletRpcUri = walletDaemonUri,
                    WalletDirectory      = walletDaemonWalletDirectory
                });
            }
            return(result);
        }
 public MoneroLikeSummaryUpdaterHostedService(MoneroRPCProvider moneroRpcProvider, MoneroLikeConfiguration moneroLikeConfiguration)
 {
     _MoneroRpcProvider       = moneroRpcProvider;
     _moneroLikeConfiguration = moneroLikeConfiguration;
 }