Beispiel #1
0
 public IObservable <Transaction> GetPendingTransactions() => ObservableExtensions
 .Using(
     async() => new DisposableFilter(await _filterService.NewPendingTransactionFilter.SendRequestAsync().ConfigureAwait(false), _filterService.UninstallFilter),
     filter => Observable
     .FromAsync(ct => _filterService.GetFilterChangesForBlockOrTransaction.SendRequestAsync(filter.ID))
     .SelectMany(transactionHashes => transactionHashes
                 .Select(hash => Observable.FromAsync(ct => _transactionsService.GetTransactionByHash.SendRequestAsync(hash)))
                 .ToObservable())
     .SelectMany(x => x)
     .Poll(_poller))
 .Publish()
 .RefCount();
Beispiel #2
0
 private IObservable <TBlock> GetBlocks <TBlock>(Func <string, object, Task <TBlock> > blockProvider) where TBlock : Block => ObservableExtensions
 .Using(
     async() => new DisposableFilter(await FilterService.NewBlockFilter.SendRequestAsync(), FilterService.UninstallFilter),
     filter => Observable
     .FromAsync(ct => FilterService.GetFilterChangesForBlockOrTransaction.SendRequestAsync(filter.ID))
     .SelectMany(blockHashes => blockHashes
                 .Select(hash => Observable.FromAsync(ct => blockProvider(hash, null)))
                 .ToObservable())
     .SelectMany(x => x)
     .Poll(Poller))
 .Publish()
 .RefCount();