diff --git a/BTCPayServer.Client/BTCPayServer.Client.csproj b/BTCPayServer.Client/BTCPayServer.Client.csproj index 56c8ae2a3..016b28a91 100644 --- a/BTCPayServer.Client/BTCPayServer.Client.csproj +++ b/BTCPayServer.Client/BTCPayServer.Client.csproj @@ -5,7 +5,7 @@ - + diff --git a/BTCPayServer/Controllers/WalletsController.PSBT.cs b/BTCPayServer/Controllers/WalletsController.PSBT.cs index 14e699719..399209141 100644 --- a/BTCPayServer/Controllers/WalletsController.PSBT.cs +++ b/BTCPayServer/Controllers/WalletsController.PSBT.cs @@ -324,7 +324,10 @@ namespace BTCPayServer.Controllers var extKey = ExtKey.Parse(vm.SigningKey, network.NBitcoinNetwork); proposedPayjoin = proposedPayjoin.SignAll(derivationSchemeSettings.AccountDerivation, extKey, - RootedKeyPath.Parse(vm.SigningKeyPath)); + RootedKeyPath.Parse(vm.SigningKeyPath), new SigningOptions() + { + EnforceLowR = !(vm.SigningContext?.EnforceLowR is false) + }); vm.SigningContext.PSBT = proposedPayjoin.ToBase64(); vm.SigningContext.OriginalPSBT = psbt.ToBase64(); proposedPayjoin.Finalize(); diff --git a/BTCPayServer/Controllers/WalletsController.cs b/BTCPayServer/Controllers/WalletsController.cs index 5c1985dd5..1c6f05256 100644 --- a/BTCPayServer/Controllers/WalletsController.cs +++ b/BTCPayServer/Controllers/WalletsController.cs @@ -914,7 +914,10 @@ namespace BTCPayServer.Controllers return View(viewModel); } - var changed = PSBTChanged(psbt, () => psbt.SignAll(settings.AccountDerivation, signingKey, rootedKeyPath)); + var changed = PSBTChanged(psbt, () => psbt.SignAll(settings.AccountDerivation, signingKey, rootedKeyPath, new SigningOptions() + { + EnforceLowR = !(viewModel.SigningContext?.EnforceLowR is false) + })); if (!changed) { ModelState.AddModelError(nameof(viewModel.SeedOrKey), "Impossible to sign the transaction. Probable cause: Incorrect account key path in wallet settings, PSBT already signed."); diff --git a/BTCPayServer/Views/Wallets/SigningContext.cshtml b/BTCPayServer/Views/Wallets/SigningContext.cshtml new file mode 100644 index 000000000..4c689271d --- /dev/null +++ b/BTCPayServer/Views/Wallets/SigningContext.cshtml @@ -0,0 +1,10 @@ +@model BTCPayServer.Models.WalletViewModels.SigningContextModel + +@if (Model != null) +{ + + + + + +}