Fixing With Trezor 1.5.1 and HWI 1.2.1 -  the issue is gone.
MODIFY
WalletWasabi.Gui/Controls/WalletExplorer/SendTabViewModel.cs
WalletWasabi.Gui/Controls/WalletExplorer/SendTabViewModel.cs
@@ -49,19 +49,10 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
using var cts = new CancellationTokenSource(TimeSpan.FromMinutes(3));
PSBT signedPsbt = null;
- try
- {
try
{
signedPsbt = await client.SignTxAsync(Wallet.KeyManager.MasterFingerprint.Value, result.Psbt, cts.Token);
}
- catch (PSBTException ex) when (ex.Message.Contains("NullFail"))
- {
- NotificationHelpers.Warning("Fall back to Unverified Inputs Mode, trying to sign again.");
-
- signedPsbt = await SignPsbtWithoutInputTxsAsync(client, Wallet.KeyManager.MasterFingerprint.Value, result.Psbt, cts.Token);
- }
- }
catch (HwiException)
{
await PinPadViewModel.UnlockAsync();
@@ -82,19 +73,6 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
ResetUi();
}
- public static async Task<PSBT> SignPsbtWithoutInputTxsAsync(HwiClient client, HDFingerprint value, PSBT psbt, CancellationToken token)
- {
- // Ledger Nano S hackfix https://github.com/MetacoSA/NBitcoin/pull/888
-
- var noinputtx = psbt.Clone();
- foreach (var input in noinputtx.Inputs)
- {
- input.NonWitnessUtxo = null;
- }
-
- return await client.SignTxAsync(value, noinputtx, token).ConfigureAwait(false);
- }
-
public string PayjoinEndPoint
{
get => _payjoinEndPoint;

MODIFY
WalletWasabi.Tests/AcceptanceTests/HwiKatas.cs
WalletWasabi.Tests/AcceptanceTests/HwiKatas.cs
@@ -227,9 +227,6 @@ namespace WalletWasabi.Tests.AcceptanceTests
// signtx request: reject
// signtx request: accept
// confirm transaction: accept and send
- // unverified inputs: continue
- // signtx request: accept
- // confirm transaction: accept and send
//
// --- USER INTERACTIONS ---
@@ -287,11 +284,7 @@ namespace WalletWasabi.Tests.AcceptanceTests
Assert.Equal(HwiErrorCode.BadArgument, ex.ErrorCode);
// USER: CONFIRM
- var nullFailEx = await Assert.ThrowsAsync<PSBTException>(async () => await client.SignTxAsync(deviceType, devicePath, Psbt, cts.Token));
- Assert.Equal(nullFailEx.Message.Contains("NullFail"), true);
-
- // USER: CONFIRM
- PSBT signedPsbt = await Gui.Controls.WalletExplorer.SendTabViewModel.SignPsbtWithoutInputTxsAsync(client, fingerprint, Psbt, cts.Token);
+ PSBT signedPsbt = await client.SignTxAsync(deviceType, devicePath, Psbt, cts.Token);
Transaction signedTx = signedPsbt.GetOriginalTransaction();
Assert.Equal(Psbt.GetOriginalTransaction().GetHash(), signedTx.GetHash());

Fixing With Trezor 1.5.1 and HWI 1.2.1 -  the issue is gone.