From 0386f1e739ffd01a3e7b5bf86c27fe1f0f7ca3fd Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Sun, 2 Apr 2017 20:19:03 -0500 Subject: [PATCH] Fix BSQ algo, add tx view --- .../resources/i18n/displayStrings.properties | 2 + .../core/btc/wallet/BsqWalletService.java | 44 ++- .../bisq/core/btc/wallet/WalletService.java | 23 +- .../io/bisq/core/dao/blockchain/BsqBlock.java | 11 +- .../dao/blockchain/BsqBlockchainManager.java | 59 ++-- .../blockchain/BsqBlockchainRpcService.java | 41 +-- .../dao/blockchain/BsqBlockchainService.java | 134 ++++---- .../io/bisq/core/dao/blockchain/BsqUTXO.java | 19 +- .../bisq/core/dao/blockchain/BsqUTXOMap.java | 8 +- .../java/io/bisq/core/dao/blockchain/Tx.java | 11 + .../io/bisq/core/dao/blockchain/TxInput.java | 9 + .../io/bisq/core/dao/blockchain/TxOutput.java | 13 +- .../io/bisq/core/user/BlockChainExplorer.java | 4 - .../java/io/bisq/core/user/Preferences.java | 24 +- .../blockchain/BsqBlockchainServiceTest.java | 32 +- .../bisq/gui/main/dao/wallet/BalanceUtil.java | 4 +- .../gui/main/dao/wallet/BsqWalletView.java | 6 +- .../gui/main/dao/wallet/send/BsqSendView.java | 56 ++-- .../dao/wallet/tx/BsqTransactionsView.java | 52 ---- .../gui/main/dao/wallet/tx/BsqTxListItem.java | 133 ++++++++ ...sqTransactionsView.fxml => BsqTxView.fxml} | 2 +- .../gui/main/dao/wallet/tx/BsqTxView.java | 287 ++++++++++++++++++ .../transactions/TransactionsListItem.java | 93 +++--- .../funds/transactions/TransactionsView.java | 24 +- .../createoffer/CreateOfferViewModel.java | 4 +- .../offer/takeoffer/TakeOfferViewModel.java | 4 +- .../java/io/bisq/gui/util/BsqFormatter.java | 2 +- .../util/validation/BsqAddressValidator.java | 54 ++++ .../gui/util/validation/BsqValidator.java | 93 ++++++ .../gui/util/validation/BtcValidator.java | 23 +- .../validation/SecurityDepositValidator.java | 2 +- 31 files changed, 951 insertions(+), 322 deletions(-) delete mode 100644 gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTransactionsView.java create mode 100644 gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxListItem.java rename gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/{BsqTransactionsView.fxml => BsqTxView.fxml} (97%) create mode 100644 gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxView.java create mode 100644 gui/src/main/java/io/bisq/gui/util/validation/BsqAddressValidator.java create mode 100644 gui/src/main/java/io/bisq/gui/util/validation/BsqValidator.java diff --git a/common/src/main/resources/i18n/displayStrings.properties b/common/src/main/resources/i18n/displayStrings.properties index c79fc13472..ae1696ace8 100644 --- a/common/src/main/resources/i18n/displayStrings.properties +++ b/common/src/main/resources/i18n/displayStrings.properties @@ -610,6 +610,7 @@ funds.locked.locked=Locked in MultiSig for trade with ID: {0} funds.tx.direction.sentTo=Sent to: funds.tx.direction.receivedWith=Received with: +funds.tx.txFeePaymentForBsqTx=Tx fee payment for BSQ tx funds.tx.createOfferFee=Maker fee: {0} funds.tx.takeOfferFee=Taker fee: {0} funds.tx.multiSigDeposit=MultiSig deposit: {0} @@ -1514,6 +1515,7 @@ validation.bic.letters=Bank and Country code must be letters validation.bic.invalidLocationCode=BIC contains invalid location code validation.bic.invalidBranchCode=BIC contains invalid branch code validation.btc.invalidFormat=Invalid format of the bitcoin address. +validation.bsq.invalidFormat=Invalid format of the BSQ address. validation.email.invalidAddress=Invalid address= validation.iban.invalidCountryCode=Country code invalid validation.iban.checkSumNotNumeric=Checksum must be numeric diff --git a/core/src/main/java/io/bisq/core/btc/wallet/BsqWalletService.java b/core/src/main/java/io/bisq/core/btc/wallet/BsqWalletService.java index bf929d17e8..21b7a49fea 100644 --- a/core/src/main/java/io/bisq/core/btc/wallet/BsqWalletService.java +++ b/core/src/main/java/io/bisq/core/btc/wallet/BsqWalletService.java @@ -19,21 +19,25 @@ package io.bisq.core.btc.wallet; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; -import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; import io.bisq.core.btc.Restrictions; import io.bisq.core.btc.exceptions.TransactionVerificationException; import io.bisq.core.btc.exceptions.WalletException; +import io.bisq.core.dao.blockchain.BsqBlock; import io.bisq.core.dao.blockchain.BsqBlockchainManager; import io.bisq.core.dao.blockchain.BsqUTXOMap; +import io.bisq.core.dao.blockchain.Tx; import io.bisq.core.provider.fee.FeeService; import io.bisq.core.user.Preferences; +import javafx.collections.FXCollections; +import javafx.collections.ListChangeListener; +import javafx.collections.ObservableList; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; import org.bitcoinj.core.*; import org.bitcoinj.script.Script; import org.bitcoinj.wallet.CoinSelection; import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.inject.Inject; import java.util.List; @@ -42,11 +46,13 @@ import java.util.stream.Collectors; import static com.google.common.base.Preconditions.checkArgument; +@Slf4j public class BsqWalletService extends WalletService { - private static final Logger log = LoggerFactory.getLogger(BsqWalletService.class); private final BsqBlockchainManager bsqBlockchainManager; private final BsqCoinSelector bsqCoinSelector; + @Getter + private final ObservableList walletBsqTransactions = FXCollections.observableArrayList(); /////////////////////////////////////////////////////////////////////////////////////////// @@ -73,44 +79,41 @@ public class BsqWalletService extends WalletService { wallet.addEventListener(new AbstractWalletEventListener() { @Override public void onCoinsReceived(Wallet wallet, Transaction tx, Coin prevBalance, Coin newBalance) { - onChange(); + //TODO do we need updateWalletBsqTransactions(); here? } @Override public void onCoinsSent(Wallet wallet, Transaction tx, Coin prevBalance, Coin newBalance) { - onChange(); + //TODO do we need updateWalletBsqTransactions(); here? } @Override public void onReorganize(Wallet wallet) { - onChange(); + updateWalletBsqTransactions(); } @Override public void onTransactionConfidenceChanged(Wallet wallet, Transaction tx) { - onChange(); } @Override public void onKeysAdded(List keys) { - onChange(); + updateWalletBsqTransactions(); } @Override public void onScriptsChanged(Wallet wallet, List