@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.Services @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.PaymentMethodId = handler.PaymentMethodId; m.DepositAddress = payment.Destination; m.Amount = payment.Value.ToString(CultureInfo.InvariantCulture); var confReq = ZcashListener.ConfirmationsRequired(payment.InvoiceEntity.SpeedPolicy); var confCount = onChainPaymentData.ConfirmationCount; confCount = Math.Min(confReq, confCount); m.Confirmations = $"{confCount} / {confReq}"; m.TransactionId = onChainPaymentData.TransactionId; m.ReceivedTime = payment.ReceivedTime; m.TransactionLink = TransactionLinkProviders.GetTransactionLink(m.PaymentMethodId, onChainPaymentData.TransactionId); m.Currency = payment.Currency; return m; }).Where(c => c != null).ToList(); } @if (payments.Any()) {
Zcash Payments
@foreach (var payment in payments) { }
Payment Method Destination Payment Proof Confirmations Paid
@payment.PaymentMethodId @payment.Confirmations @DisplayFormatter.Currency(payment.Amount, payment.Currency)
}