mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-03-01 00:59:15 +01:00
* Editorconfig: Add space_before_self_closing setting This was a difference between the way dotnet-format and Rider format code. See https://www.jetbrains.com/help/rider/EditorConfig_Index.html * Editorconfig: Keep 4 spaces indentation for Swagger JSON files They are all formatted that way, let's keep it like that. * Apply dotnet-format, mostly white-space related changes
57 lines
2 KiB
C#
57 lines
2 KiB
C#
#nullable enable
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using BTCPayServer.Controllers;
|
|
using BTCPayServer.Data;
|
|
using BTCPayServer.Models.StoreViewModels;
|
|
using BTCPayServer.Payments;
|
|
using BTCPayServer.Payments.Lightning;
|
|
using BTCPayServer.Services.Apps;
|
|
using BTCPayServer.Services.Invoices;
|
|
using BTCPayServer.Services.Stores;
|
|
using BTCPayServer.Services.Wallets;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
using NBitcoin;
|
|
using NBitcoin.Secp256k1;
|
|
|
|
namespace BTCPayServer.Components.WalletNav
|
|
{
|
|
public class WalletNav : ViewComponent
|
|
{
|
|
private readonly BTCPayWalletProvider _walletProvider;
|
|
private readonly UIWalletsController _walletsController;
|
|
private readonly BTCPayNetworkProvider _networkProvider;
|
|
|
|
public WalletNav(
|
|
BTCPayWalletProvider walletProvider,
|
|
BTCPayNetworkProvider networkProvider,
|
|
UIWalletsController walletsController)
|
|
{
|
|
_walletProvider = walletProvider;
|
|
_networkProvider = networkProvider;
|
|
_walletsController = walletsController;
|
|
}
|
|
|
|
public async Task<IViewComponentResult> InvokeAsync(WalletId walletId)
|
|
{
|
|
var store = ViewContext.HttpContext.GetStoreData();
|
|
var network = _networkProvider.GetNetwork<BTCPayNetwork>(walletId.CryptoCode);
|
|
var wallet = _walletProvider.GetWallet(network);
|
|
var derivation = store.GetDerivationSchemeSettings(_networkProvider, walletId.CryptoCode);
|
|
var balance = await _walletsController.GetBalanceString(wallet, derivation?.AccountDerivation);
|
|
|
|
var vm = new WalletNavViewModel
|
|
{
|
|
WalletId = walletId,
|
|
Network = network,
|
|
Balance = balance,
|
|
Label = derivation?.Label ?? $"{store.StoreName} {walletId.CryptoCode} Wallet"
|
|
};
|
|
|
|
return View(vm);
|
|
}
|
|
}
|
|
}
|