public override async Task <IPaymentMethodDetails> CreatePaymentMethodDetails(InvoiceLogs logs, ZcashSupportedPaymentMethod supportedPaymentMethod, PaymentMethod paymentMethod, StoreData store, ZcashLikeSpecificBtcPayNetwork network, object preparePaymentObject) { if (preparePaymentObject is null) { return(new ZcashLikeOnChainPaymentMethodDetails() { Activated = false }); } if (!_ZcashRpcProvider.IsAvailable(network.CryptoCode)) { throw new PaymentMethodUnavailableException($"Node or wallet not available"); } var invoice = paymentMethod.ParentEntity; if (!(preparePaymentObject is Prepare ZcashPrepare)) { throw new ArgumentException(); } var feeRatePerKb = await ZcashPrepare.GetFeeRate; var address = await ZcashPrepare.ReserveAddress(invoice.Id); var feeRatePerByte = feeRatePerKb.Fee / 1024; return(new ZcashLikeOnChainPaymentMethodDetails() { NextNetworkFee = ZcashMoney.Convert(feeRatePerByte * 100), AccountIndex = supportedPaymentMethod.AccountIndex, AddressIndex = address.AddressIndex, DepositAddress = address.Address, Activated = true }); }
public decimal GetValue() { return(ZcashMoney.Convert(Amount)); }