public void UpdateTransaction(BuildTransactionResult transactionResult, TransactionInfo info)
    {
        _transaction = transactionResult;

        ConfirmationTimeText = $"Approximately {TextHelpers.TimeSpanToFriendlyString(info.ConfirmationTimeSpan)} ";

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

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

        var fee         = _transaction.Fee;
        var feeText     = fee.ToFeeDisplayUnitString();
        var fiatFeeText = fee.ToDecimal(MoneyUnit.BTC).GenerateFiatText(_wallet.Synchronizer.UsdExchangeRate, "USD");

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

        TransactionHasChange =
            _transaction.InnerWalletOutputs.Any(x => x.ScriptPubKey != _address.ScriptPubKey);

        TransactionHasPockets = !info.IsPrivate;

        Labels = SmartLabel.Merge(transactionResult.SpentCoins.Select(x => x.GetLabels(info.PrivateCoinThreshold)));
        var exactPocketUsed = Labels.Count() == info.UserLabels.Count() && Labels.All(label => info.UserLabels.Contains(label, StringComparer.OrdinalIgnoreCase));

        TransactionHasPockets = Labels.Any() && !exactPocketUsed;

        IsCustomFeeUsed = info.IsCustomFeeUsed;
        IsOtherPocketSelectionPossible = info.IsOtherPocketSelectionPossible;
    }