mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-03-10 17:26:05 +01:00
Fix crash on /wallets/transactions with non zero skip parameter (Fix #5183)
This commit is contained in:
parent
583813883c
commit
56fa3fe8f2
4 changed files with 10 additions and 3 deletions
|
@ -55,7 +55,7 @@ namespace BTCPayServer.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual async Task<IEnumerable<OnChainWalletTransactionData>> ShowOnChainWalletTransactions(
|
public virtual async Task<IEnumerable<OnChainWalletTransactionData>> ShowOnChainWalletTransactions(
|
||||||
string storeId, string cryptoCode, TransactionStatus[] statusFilter = null, string labelFilter = null,
|
string storeId, string cryptoCode, TransactionStatus[] statusFilter = null, string labelFilter = null, int skip = 0,
|
||||||
CancellationToken token = default)
|
CancellationToken token = default)
|
||||||
{
|
{
|
||||||
var query = new Dictionary<string, object>();
|
var query = new Dictionary<string, object>();
|
||||||
|
@ -67,6 +67,10 @@ namespace BTCPayServer.Client
|
||||||
{
|
{
|
||||||
query.Add(nameof(labelFilter), labelFilter);
|
query.Add(nameof(labelFilter), labelFilter);
|
||||||
}
|
}
|
||||||
|
if (skip != 0)
|
||||||
|
{
|
||||||
|
query.Add(nameof(skip), skip);
|
||||||
|
}
|
||||||
var response =
|
var response =
|
||||||
await _httpClient.SendAsync(
|
await _httpClient.SendAsync(
|
||||||
CreateHttpRequest($"api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/transactions", query), token);
|
CreateHttpRequest($"api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/transactions", query), token);
|
||||||
|
|
|
@ -3212,6 +3212,9 @@ namespace BTCPayServer.Tests
|
||||||
});
|
});
|
||||||
var transaction = await client.GetOnChainWalletTransaction(walletId.StoreId, walletId.CryptoCode, txdata.TransactionHash.ToString());
|
var transaction = await client.GetOnChainWalletTransaction(walletId.StoreId, walletId.CryptoCode, txdata.TransactionHash.ToString());
|
||||||
|
|
||||||
|
// Check skip doesn't crash
|
||||||
|
await client.ShowOnChainWalletTransactions(walletId.StoreId, walletId.CryptoCode, skip: 1);
|
||||||
|
|
||||||
Assert.Equal(transaction.TransactionHash, txdata.TransactionHash);
|
Assert.Equal(transaction.TransactionHash, txdata.TransactionHash);
|
||||||
Assert.Equal(String.Empty, transaction.Comment);
|
Assert.Equal(String.Empty, transaction.Comment);
|
||||||
#pragma warning disable CS0612 // Type or member is obsolete
|
#pragma warning disable CS0612 // Type or member is obsolete
|
||||||
|
|
|
@ -759,7 +759,7 @@ namespace BTCPayServer.Controllers.Greenfield
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task<IEnumerable<OnChainWalletTransactionData>> ShowOnChainWalletTransactions(
|
public override async Task<IEnumerable<OnChainWalletTransactionData>> ShowOnChainWalletTransactions(
|
||||||
string storeId, string cryptoCode, TransactionStatus[] statusFilter = null, string labelFilter = null,
|
string storeId, string cryptoCode, TransactionStatus[] statusFilter = null, string labelFilter = null, int skip = 0,
|
||||||
CancellationToken token = default)
|
CancellationToken token = default)
|
||||||
{
|
{
|
||||||
return GetFromActionResult<IEnumerable<OnChainWalletTransactionData>>(
|
return GetFromActionResult<IEnumerable<OnChainWalletTransactionData>>(
|
||||||
|
|
|
@ -252,7 +252,7 @@ namespace BTCPayServer.Services.Wallets
|
||||||
{
|
{
|
||||||
wallet_id = NBXplorer.Client.DBUtils.nbxv1_get_wallet_id(Network.CryptoCode, derivationStrategyBase.ToString()),
|
wallet_id = NBXplorer.Client.DBUtils.nbxv1_get_wallet_id(Network.CryptoCode, derivationStrategyBase.ToString()),
|
||||||
code = Network.CryptoCode,
|
code = Network.CryptoCode,
|
||||||
count = count,
|
count = count == int.MaxValue ? null : count,
|
||||||
skip = skip,
|
skip = skip,
|
||||||
interval = interval is TimeSpan t ? t : TimeSpan.FromDays(365 * 1000)
|
interval = interval is TimeSpan t ? t : TimeSpan.FromDays(365 * 1000)
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Reference in a new issue