Bitcoin Coin use BitcoinAddressValidator

This commit is contained in:
Oscar Guindzberg 2020-09-09 16:55:30 -03:00
parent fe79369be6
commit 2ff9192372
No known key found for this signature in database
GPG Key ID: 209796BF2E1D4F75
2 changed files with 54 additions and 1 deletions

View File

@ -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 <http://www.gnu.org/licenses/>.
*/
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();
}
}

View File

@ -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);
}