@using System.Globalization @using BTCPayServer.Plugins.Altcoins; @using BTCPayServer.Components.TruncateCenter @using BTCPayServer.Services @using BTCPayServer.Services.Altcoins.Zcash.Payments @using BTCPayServer.Services.Altcoins.Zcash.UI @using BTCPayServer.Services.Invoices @inject DisplayFormatter DisplayFormatter @model IEnumerable @inject TransactionLinkProviders TransactionLinkProviders @inject PaymentMethodHandlerDictionary handlers @{ var payments = Model.Select(payment => { if (!handlers.TryGetValue(payment.PaymentMethodId, out var h) || h is not ZcashLikePaymentMethodHandler handler) return null; var m = new ZcashPaymentViewModel(); var onChainPaymentData = handler.ParsePaymentDetails(payment.Details); m.Crypto = handler.Network.CryptoCode; m.DepositAddress = payment.Destination; m.Amount = payment.Value.ToString(CultureInfo.InvariantCulture); var confirmationCount = onChainPaymentData.ConfirmationCount; if (confirmationCount >= handler.Network.MaxTrackedConfirmation) { m.Confirmations = "At least " + (handler.Network.MaxTrackedConfirmation); } else { m.Confirmations = confirmationCount.ToString(CultureInfo.InvariantCulture); } m.TransactionId = onChainPaymentData.TransactionId; m.ReceivedTime = payment.ReceivedTime; m.TransactionLink = TransactionLinkProviders.GetTransactionLink(m.Crypto, onChainPaymentData.TransactionId); return m; }).Where(c => c != null).ToList(); } @if (payments.Any()) {
Zcash Payments
@foreach (var payment in payments) { }
Crypto Destination Payment Proof Confirmations Paid
@payment.Crypto @payment.Confirmations @DisplayFormatter.Currency(payment.Amount, payment.Crypto)
}