Ajaxify the wallet transaction list to avoid timeout (Fix #4987) (#5100)

* Ajaxify the wallet transaction list to avoid timeout (Fix #4987)

* Add cancellation to request to wallet transactions

* Fix tests

* Improve empty state

* Cleanups

---------

Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
This commit is contained in:
Nicolas Dorier
2023-06-22 16:09:53 +09:00
committed by GitHub
parent 13203c3e2b
commit 2eff45e65c
8 changed files with 126 additions and 130 deletions

View File

@@ -182,7 +182,8 @@ namespace BTCPayServer.Controllers.Greenfield
[FromQuery] TransactionStatus[]? statusFilter = null,
[FromQuery] string? labelFilter = null,
[FromQuery] int skip = 0,
[FromQuery] int limit = int.MaxValue
[FromQuery] int limit = int.MaxValue,
CancellationToken cancellationToken = default
)
{
if (IsInvalidWalletRequest(cryptoCode, out var network,
@@ -197,7 +198,7 @@ namespace BTCPayServer.Controllers.Greenfield
if (statusFilter?.Any() is true || !string.IsNullOrWhiteSpace(labelFilter))
preFiltering = false;
var txs = await wallet.FetchTransactionHistory(derivationScheme.AccountDerivation, preFiltering ? skip : 0,
preFiltering ? limit : int.MaxValue);
preFiltering ? limit : int.MaxValue, cancellationToken: cancellationToken);
if (!preFiltering)
{
var filteredList = new List<TransactionHistoryLine>(txs.Count);