public TransactionPreviewViewModel(Wallet wallet, TransactionInfo info, BuildTransactionResult transaction)
        {
            _wallet = wallet;
            _labels = SmartLabel.Empty;
            _info   = info;
            SetupCancel(enableCancel: false, enableCancelOnEscape: true, enableCancelOnPressed: false);
            EnableBack            = true;
            _confirmationTimeText = "";

            var destinationAmount = transaction.CalculateDestinationAmount().ToDecimal(MoneyUnit.BTC);
            var btcAmountText     = $"{destinationAmount} bitcoins ";
            var fiatAmountText    = destinationAmount.GenerateFiatText(_wallet.Synchronizer.UsdExchangeRate, "USD");

            AmountText = $"{btcAmountText}{fiatAmountText}";

            AddressText = info.Address.ToString();

            var fee         = transaction.Fee;
            var btcFeeText  = $"{fee.ToDecimal(MoneyUnit.Satoshi)} sats ";
            var fiatFeeText = fee.ToDecimal(MoneyUnit.BTC).GenerateFiatText(_wallet.Synchronizer.UsdExchangeRate, "USD");

            FeeText = $"{btcFeeText}{fiatFeeText}";

            PayJoinUrl = info.PayJoinClient?.PaymentUrl.AbsoluteUri;
            IsPayJoin  = PayJoinUrl is not null;

            if (PreferPsbtWorkflow)
            {
                SkipCommand = ReactiveCommand.CreateFromTask(async() => await OnConfirmAsync(transaction));
                NextCommand = ReactiveCommand.CreateFromTask(async() =>
                {
                    var saved = await TransactionHelpers.ExportTransactionToBinaryAsync(transaction);

                    if (saved)
                    {
                        Navigate().To(new SuccessViewModel("The PSBT has been successfully created."));
                    }
                });
                _nextButtonText = "Save PSBT file";
            }
            else
            {
                NextCommand     = ReactiveCommand.CreateFromTask(async() => await OnConfirmAsync(transaction));
                _nextButtonText = "Confirm";
            }
        }