fix monero issue

This commit is contained in:
Kukks
2022-11-21 19:55:13 +01:00
parent bf597495ff
commit eda0f7327e
2 changed files with 13 additions and 5 deletions

View File

@@ -17,6 +17,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Payments
public string TransactionId { get; set; }
public BTCPayNetworkBase Network { get; set; }
public long LockTime { get; set; } = 0;
public string GetPaymentId()
{
@@ -35,11 +36,17 @@ namespace BTCPayServer.Services.Altcoins.Monero.Payments
public bool PaymentCompleted(PaymentEntity entity)
{
return ConfirmationCount >= (Network as MoneroLikeSpecificBtcPayNetwork).MaxTrackedConfirmation;
return
ConfirmationCount >= LockTime &&
ConfirmationCount >= (Network as MoneroLikeSpecificBtcPayNetwork).MaxTrackedConfirmation;
}
public bool PaymentConfirmed(PaymentEntity entity, SpeedPolicy speedPolicy)
{
if (ConfirmationCount < LockTime)
{
return false;
}
switch (speedPolicy)
{
case SpeedPolicy.HighSpeed:

View File

@@ -240,7 +240,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Services
return HandlePaymentData(cryptoCode, transfer.Address, transfer.Amount, transfer.SubaddrIndex.Major,
transfer.SubaddrIndex.Minor, transfer.Txid, transfer.Confirmations, transfer.Height, invoice,
transfer.SubaddrIndex.Minor, transfer.Txid, transfer.Confirmations, transfer.Height, transfer.UnlockTime,invoice,
updatedPaymentEntities);
}));
}
@@ -302,7 +302,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Services
transfer.Transfer.Txid,
transfer.Transfer.Confirmations,
transfer.Transfer.Height
, invoice, paymentsToUpdate);
, transfer.Transfer.UnlockTime,invoice, paymentsToUpdate);
}
if (paymentsToUpdate.Any())
@@ -320,7 +320,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Services
private async Task HandlePaymentData(string cryptoCode, string address, long totalAmount, long subaccountIndex,
long subaddressIndex,
string txId, long confirmations, long blockHeight, InvoiceEntity invoice,
string txId, long confirmations, long blockHeight, long locktime, InvoiceEntity invoice,
BlockingCollection<(PaymentEntity Payment, InvoiceEntity invoice)> paymentsToUpdate)
{
//construct the payment data
@@ -333,7 +333,8 @@ namespace BTCPayServer.Services.Altcoins.Monero.Services
ConfirmationCount = confirmations,
Amount = totalAmount,
BlockHeight = blockHeight,
Network = _networkProvider.GetNetwork(cryptoCode)
Network = _networkProvider.GetNetwork(cryptoCode),
LockTime = locktime
};
//check if this tx exists as a payment to this invoice already