From 2ff91923727e63df51b090d7d0f035cb6d7328be Mon Sep 17 00:00:00 2001 From: Oscar Guindzberg Date: Wed, 9 Sep 2020 16:55:30 -0300 Subject: [PATCH] Bitcoin Coin use BitcoinAddressValidator --- .../bisq/asset/BitcoinAddressValidator.java | 52 +++++++++++++++++++ .../main/java/bisq/asset/coins/Bitcoin.java | 3 +- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 assets/src/main/java/bisq/asset/BitcoinAddressValidator.java diff --git a/assets/src/main/java/bisq/asset/BitcoinAddressValidator.java b/assets/src/main/java/bisq/asset/BitcoinAddressValidator.java new file mode 100644 index 0000000000..133d066d02 --- /dev/null +++ b/assets/src/main/java/bisq/asset/BitcoinAddressValidator.java @@ -0,0 +1,52 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset; + +import org.bitcoinj.core.Address; +import org.bitcoinj.core.AddressFormatException; +import org.bitcoinj.core.NetworkParameters; +import org.bitcoinj.params.MainNetParams; + +/** + * {@link AddressValidator} for Bitcoin addresses. + * + * @author Oscar Guindzberg + */ +public class BitcoinAddressValidator implements AddressValidator { + + private final NetworkParameters networkParameters; + + public BitcoinAddressValidator() { + this(MainNetParams.get()); + } + + public BitcoinAddressValidator(NetworkParameters networkParameters) { + this.networkParameters = networkParameters; + } + + @Override + public AddressValidationResult validate(String address) { + try { + Address.fromString(networkParameters, address); + } catch (AddressFormatException ex) { + return AddressValidationResult.invalidAddress(ex); + } + + return AddressValidationResult.validAddress(); + } +} diff --git a/assets/src/main/java/bisq/asset/coins/Bitcoin.java b/assets/src/main/java/bisq/asset/coins/Bitcoin.java index d111826437..fa8a94f12e 100644 --- a/assets/src/main/java/bisq/asset/coins/Bitcoin.java +++ b/assets/src/main/java/bisq/asset/coins/Bitcoin.java @@ -18,6 +18,7 @@ package bisq.asset.coins; import bisq.asset.Base58AddressValidator; +import bisq.asset.BitcoinAddressValidator; import bisq.asset.Coin; import org.bitcoinj.core.NetworkParameters; @@ -28,7 +29,7 @@ import org.bitcoinj.params.TestNet3Params; public abstract class Bitcoin extends Coin { public Bitcoin(Network network, NetworkParameters networkParameters) { - super("Bitcoin", "BTC", new Base58AddressValidator(networkParameters), network); + super("Bitcoin", "BTC", new BitcoinAddressValidator(networkParameters), network); }