mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-17 14:04:26 +01:00
feat: add Reserved Addresses view with filtering, pagination and labels (#6796)
* feat: add reservedAt metadata when address is generated from receive * feat: add link to Reserved Addresses in wallet navigation * feat: add ReservedAddressesViewModel with labels and reserved timestamp * feat: implement Reserved Addresses view with filtering, pagination and label management * feat: add GetReservedAddressesWithDetails with label and timestamp support * feat: add ReservedAddresses endpoint * test: add Reserved Addresses view test with label, filter and pagination * test: use stable ID for filter input instead of placeholder * Moving Reserved Addresses to Receive page * feat: sync labels created via Label Manager using labelmanager:changed event * refactor: optimize GetReservedAddressesWithDetails using direct SQL query * feat: add link to filter Reserved Addresses by label from Wallet Labels view * refactor: remove legacy selenium test * test: add playwright tests with label filtering, pagination and redirect from Wallet Labels view * refactor: optimize Reserved Addresses filtering with Set and Safe.Json --------- Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
This commit is contained in:
@@ -763,6 +763,26 @@ namespace BTCPayServer.Controllers
|
||||
return RedirectToAction(nameof(WalletReceive), new { walletId, returnUrl = vm.ReturnUrl });
|
||||
}
|
||||
|
||||
[HttpGet("{walletId}/addresses")]
|
||||
public async Task<IActionResult> ReservedAddresses(
|
||||
[ModelBinder(typeof(WalletIdModelBinder))] WalletId walletId)
|
||||
{
|
||||
var paymentMethod = GetDerivationSchemeSettings(walletId);
|
||||
if (paymentMethod == null)
|
||||
return NotFound();
|
||||
|
||||
var labeledAddresses = await WalletRepository.GetReservedAddressesWithDetails(walletId);
|
||||
|
||||
var vm = new ReservedAddressesViewModel
|
||||
{
|
||||
WalletId = walletId.ToString(),
|
||||
CryptoCode = walletId.CryptoCode,
|
||||
Addresses = labeledAddresses
|
||||
};
|
||||
|
||||
return View(vm);
|
||||
}
|
||||
|
||||
private async Task SendFreeMoney(Cheater cheater, WalletId walletId, DerivationSchemeSettings paymentMethod)
|
||||
{
|
||||
var c = this.ExplorerClientProvider.GetExplorerClient(walletId.CryptoCode);
|
||||
|
||||
Reference in New Issue
Block a user