mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-17 22:14:26 +01:00
Remove psbt ready view
The transaction info is now shown on the decoded PSBT page.
This commit is contained in:
committed by
Andrew Camilleri
parent
de3d966835
commit
b4c1f695a8
@@ -191,26 +191,6 @@ namespace BTCPayServer.Controllers
|
|||||||
return await _payjoinClient.RequestPayjoin(bip21, new PayjoinWallet(derivationSchemeSettings), psbt, cancellationToken);
|
return await _payjoinClient.RequestPayjoin(bip21, new PayjoinWallet(derivationSchemeSettings), psbt, cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("{walletId}/psbt/ready")]
|
|
||||||
public async Task<IActionResult> WalletPSBTReady(
|
|
||||||
[ModelBinder(typeof(WalletIdModelBinder))]
|
|
||||||
WalletId walletId,
|
|
||||||
WalletPSBTReadyViewModel vm)
|
|
||||||
{
|
|
||||||
if (vm is null)
|
|
||||||
return NotFound();
|
|
||||||
var network = NetworkProvider.GetNetwork<BTCPayNetwork>(walletId.CryptoCode);
|
|
||||||
var derivationSchemeSettings = GetDerivationSchemeSettings(walletId);
|
|
||||||
if (derivationSchemeSettings == null)
|
|
||||||
return NotFound();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
await FetchTransactionDetails(derivationSchemeSettings, vm, network);
|
|
||||||
}
|
|
||||||
catch { return BadRequest(); }
|
|
||||||
return View(nameof(WalletPSBTReady), vm);
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task FetchTransactionDetails(DerivationSchemeSettings derivationSchemeSettings, WalletPSBTReadyViewModel vm, BTCPayNetwork network)
|
private async Task FetchTransactionDetails(DerivationSchemeSettings derivationSchemeSettings, WalletPSBTReadyViewModel vm, BTCPayNetwork network)
|
||||||
{
|
{
|
||||||
var psbtObject = PSBT.Parse(vm.SigningContext.PSBT, network.NBitcoinNetwork);
|
var psbtObject = PSBT.Parse(vm.SigningContext.PSBT, network.NBitcoinNetwork);
|
||||||
@@ -316,11 +296,11 @@ namespace BTCPayServer.Controllers
|
|||||||
[HttpPost("{walletId}/psbt/ready")]
|
[HttpPost("{walletId}/psbt/ready")]
|
||||||
public async Task<IActionResult> WalletPSBTReady(
|
public async Task<IActionResult> WalletPSBTReady(
|
||||||
[ModelBinder(typeof(WalletIdModelBinder))]
|
[ModelBinder(typeof(WalletIdModelBinder))]
|
||||||
WalletId walletId, WalletPSBTReadyViewModel vm, string command = null, CancellationToken cancellationToken = default)
|
WalletId walletId, WalletPSBTViewModel vm, string command = null, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
if (command == null)
|
if (command == null)
|
||||||
return await WalletPSBTReady(walletId, vm);
|
return await WalletPSBT(walletId, vm);
|
||||||
PSBT psbt = null;
|
PSBT psbt;
|
||||||
var network = NetworkProvider.GetNetwork<BTCPayNetwork>(walletId.CryptoCode);
|
var network = NetworkProvider.GetNetwork<BTCPayNetwork>(walletId.CryptoCode);
|
||||||
DerivationSchemeSettings derivationSchemeSettings = null;
|
DerivationSchemeSettings derivationSchemeSettings = null;
|
||||||
try
|
try
|
||||||
@@ -334,7 +314,7 @@ namespace BTCPayServer.Controllers
|
|||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
vm.GlobalError = "Invalid PSBT";
|
vm.GlobalError = "Invalid PSBT";
|
||||||
return View(nameof(WalletPSBTReady), vm);
|
return View(nameof(WalletPSBT), vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (command)
|
switch (command)
|
||||||
@@ -410,7 +390,7 @@ namespace BTCPayServer.Controllers
|
|||||||
return await WalletPSBTReady(walletId, vm, "broadcast");
|
return await WalletPSBTReady(walletId, vm, "broadcast");
|
||||||
case "broadcast" when !psbt.IsAllFinalized() && !psbt.TryFinalize(out var errors):
|
case "broadcast" when !psbt.IsAllFinalized() && !psbt.TryFinalize(out var errors):
|
||||||
vm.SetErrors(errors);
|
vm.SetErrors(errors);
|
||||||
return View(nameof(WalletPSBTReady), vm);
|
return View(nameof(WalletPSBT), vm);
|
||||||
case "broadcast":
|
case "broadcast":
|
||||||
{
|
{
|
||||||
var transaction = psbt.ExtractTransaction();
|
var transaction = psbt.ExtractTransaction();
|
||||||
@@ -433,13 +413,13 @@ namespace BTCPayServer.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
vm.GlobalError = $"RPC Error while broadcasting: {broadcastResult.RPCCode} {broadcastResult.RPCCodeMessage} {broadcastResult.RPCMessage}";
|
vm.GlobalError = $"RPC Error while broadcasting: {broadcastResult.RPCCode} {broadcastResult.RPCCodeMessage} {broadcastResult.RPCMessage}";
|
||||||
return View(nameof(WalletPSBTReady), vm);
|
return View(nameof(WalletPSBT), vm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
vm.GlobalError = "Error while broadcasting: " + ex.Message;
|
vm.GlobalError = "Error while broadcasting: " + ex.Message;
|
||||||
return View(nameof(WalletPSBTReady), vm);
|
return View(nameof(WalletPSBT), vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TempData.HasStatusMessage())
|
if (!TempData.HasStatusMessage())
|
||||||
@@ -455,7 +435,7 @@ namespace BTCPayServer.Controllers
|
|||||||
});
|
});
|
||||||
default:
|
default:
|
||||||
vm.GlobalError = "Unknown command";
|
vm.GlobalError = "Unknown command";
|
||||||
return View(nameof(WalletPSBTReady), vm);
|
return View(nameof(WalletPSBT), vm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
@model WalletPSBTReadyViewModel
|
|
||||||
@{
|
|
||||||
Layout = "_LayoutWizard";
|
|
||||||
ViewData.SetActivePageAndTitle(WalletsNavPages.PSBT, "Review PSBT", Context.GetStoreData().StoreName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@section Navbar {
|
|
||||||
<a asp-action="WalletPSBT" asp-route-walletId="@Context.GetRouteValue("walletId")" onclick="history.back();return false;">
|
|
||||||
<vc:icon symbol="back" />
|
|
||||||
</a>
|
|
||||||
<a asp-action="WalletSend" asp-route-walletId="@Context.GetRouteValue("walletId")" class="cancel">
|
|
||||||
<vc:icon symbol="close" />
|
|
||||||
</a>
|
|
||||||
}
|
|
||||||
|
|
||||||
<header class="text-center">
|
|
||||||
<h1>@ViewData["PageTitle"]</h1>
|
|
||||||
|
|
||||||
@if (Model.CanCalculateBalance)
|
|
||||||
{
|
|
||||||
<p class="lead text-secondary mt-3">
|
|
||||||
If you broadcast this transaction, your balance will change:
|
|
||||||
<br>
|
|
||||||
@if (Model.Positive)
|
|
||||||
{
|
|
||||||
<span class="text-success">@Model.BalanceChange</span>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<span class="text-danger">@Model.BalanceChange</span>
|
|
||||||
}
|
|
||||||
</p>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<p class="lead text-secondary mt-3">This PSBT is already finalized. We can't properly detect which input or output belongs to you.</p>
|
|
||||||
}
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<partial name="_StatusMessage" />
|
|
||||||
|
|
||||||
@if (Model.GlobalError != null)
|
|
||||||
{
|
|
||||||
<div class="alert alert-danger alert-dismissible" role="alert">
|
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">
|
|
||||||
<vc:icon symbol="close" />
|
|
||||||
</button>
|
|
||||||
<span>@Model.GlobalError</span><br/>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
|
|
||||||
<partial name="_PSBTInfo" model="Model" />
|
|
||||||
|
|
||||||
<form method="post" asp-action="WalletPSBTReady" asp-route-walletId="@Context.GetRouteValue("walletId")" class="text-center">
|
|
||||||
<input type="hidden" asp-for="SigningKey" />
|
|
||||||
<input type="hidden" asp-for="SigningKeyPath" />
|
|
||||||
<partial name="SigningContext" for="SigningContext" />
|
|
||||||
@if (!Model.HasErrors)
|
|
||||||
{
|
|
||||||
@if (!string.IsNullOrEmpty(Model.SigningContext?.PayJoinBIP21))
|
|
||||||
{
|
|
||||||
<button type="submit" class="btn btn-primary" name="command" value="payjoin">Broadcast (Payjoin)</button>
|
|
||||||
<span class="mx-2">or</span>
|
|
||||||
<button type="submit" class="btn btn-secondary" name="command" value="broadcast">Broadcast (Simple)</button>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<button type="submit" class="btn btn-primary" name="command" value="broadcast">Broadcast it</button>
|
|
||||||
}
|
|
||||||
<span class="mx-2">or</span>
|
|
||||||
}
|
|
||||||
<button type="submit" class="btn btn-secondary" name="command" value="analyze-psbt">View PSBT</button>
|
|
||||||
</form>
|
|
||||||
Reference in New Issue
Block a user