Remove useless parameter from CollectSignature

This commit is contained in:
nicolas.dorier
2025-03-26 10:45:09 +09:00
committed by rockstardev
parent 2427740e79
commit d40359f12f
2 changed files with 6 additions and 11 deletions

View File

@@ -1356,7 +1356,7 @@ namespace BTCPayServer.Controllers
if (vm.SigningContext.PendingTransactionId is not null) if (vm.SigningContext.PendingTransactionId is not null)
{ {
var psbt = PSBT.Parse(vm.SigningContext.PSBT, NetworkProvider.GetNetwork<BTCPayNetwork>(walletId.CryptoCode).NBitcoinNetwork); var psbt = PSBT.Parse(vm.SigningContext.PSBT, NetworkProvider.GetNetwork<BTCPayNetwork>(walletId.CryptoCode).NBitcoinNetwork);
var pendingTransaction = await _pendingTransactionService.CollectSignature(walletId.CryptoCode, psbt, CancellationToken.None); var pendingTransaction = await _pendingTransactionService.CollectSignature(psbt, CancellationToken.None);
if (pendingTransaction != null) if (pendingTransaction != null)
return RedirectToAction(nameof(WalletTransactions), new { walletId = walletId.ToString() }); return RedirectToAction(nameof(WalletTransactions), new { walletId = walletId.ToString() });

View File

@@ -147,19 +147,14 @@ public class PendingTransactionService(
return pendingTransaction; return pendingTransaction;
} }
public async Task<PendingTransaction?> CollectSignature(string cryptoCode, PSBT psbt, CancellationToken cancellationToken) public async Task<PendingTransaction?> CollectSignature(PSBT psbt, CancellationToken cancellationToken)
{ {
var network = networkProvider.GetNetwork<BTCPayNetwork>(cryptoCode); var cryptoCode = psbt.Network.NetworkSet.CryptoCode;
if (network is null)
{
return null;
}
var txId = psbt.GetGlobalTransaction().GetHash(); var txId = psbt.GetGlobalTransaction().GetHash();
await using var ctx = dbContextFactory.CreateContext(); await using var ctx = dbContextFactory.CreateContext();
var pendingTransaction = var pendingTransaction =
await ctx.PendingTransactions.FindAsync(new object[] { cryptoCode, txId.ToString() }, cancellationToken); await ctx.PendingTransactions.FindAsync(new object[] { cryptoCode, txId.ToString() }, cancellationToken);
if (pendingTransaction is null || pendingTransaction.State != PendingTransactionState.Pending) if (pendingTransaction?.State is not PendingTransactionState.Pending)
{ {
return null; return null;
} }
@@ -170,7 +165,7 @@ public class PendingTransactionService(
return null; return null;
} }
var dbPsbt = PSBT.Parse(blob.PSBT, network.NBitcoinNetwork); var dbPsbt = PSBT.Parse(blob.PSBT, psbt.Network);
// Deduplicate: Check if this exact PSBT (Base64) was already collected // Deduplicate: Check if this exact PSBT (Base64) was already collected
var newPsbtBase64 = psbt.ToBase64(); var newPsbtBase64 = psbt.ToBase64();
@@ -181,7 +176,7 @@ public class PendingTransactionService(
foreach (var collectedSignature in blob.CollectedSignatures) foreach (var collectedSignature in blob.CollectedSignatures)
{ {
var collectedPsbt = PSBT.Parse(collectedSignature.ReceivedPSBT, network.NBitcoinNetwork); var collectedPsbt = PSBT.Parse(collectedSignature.ReceivedPSBT, psbt.Network);
dbPsbt.Combine(collectedPsbt); // combine changes the object dbPsbt.Combine(collectedPsbt); // combine changes the object
} }