From 7b96dd366e05e5c92e8416e5679505a17b366934 Mon Sep 17 00:00:00 2001 From: furszy <5377650+furszy@users.noreply.github.com> Date: Sun, 17 Feb 2019 18:14:29 +0100 Subject: [PATCH] List Veil (VEIL) Veil modifications base58 getParams reverted --- .../src/main/java/bisq/asset/coins/Veil.java | 57 +++++++++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../test/java/bisq/asset/coins/VeilTest.java | 45 +++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/Veil.java create mode 100644 assets/src/test/java/bisq/asset/coins/VeilTest.java diff --git a/assets/src/main/java/bisq/asset/coins/Veil.java b/assets/src/main/java/bisq/asset/coins/Veil.java new file mode 100644 index 0000000000..792cba487a --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/Veil.java @@ -0,0 +1,57 @@ +/* + * 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.coins; + +import bisq.asset.*; +import org.bitcoinj.core.Address; +import org.bitcoinj.core.AddressFormatException; + +public class Veil extends Coin { + + public Veil() { + super("Veil", "VEIL", new VeilAddressValidator()); + } + + public static class VeilAddressValidator extends Base58BitcoinAddressValidator { + + public VeilAddressValidator() { + super(new VeilParams()); + } + + @Override + public AddressValidationResult validate(String address) { + if (address.startsWith("V")) { + return super.validate(address); + }else if (address.startsWith("bv")){ + // TODO: Add bech32 support + return AddressValidationResult.invalidAddress("Bech32 addresses not supported on bisq"); + } + return AddressValidationResult.invalidStructure(); + } + } + + public static class VeilParams extends NetworkParametersAdapter { + + public VeilParams() { + addressHeader = 70; + p2shHeader = 5; + acceptableAddressCodes = new int[]{addressHeader, p2shHeader}; + } + } +} + diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index b2e508dd35..a7624012af 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -72,6 +72,7 @@ bisq.asset.coins.SUB1X bisq.asset.coins.TurtleCoin bisq.asset.coins.UnitedCommunityCoin bisq.asset.coins.Unobtanium +bisq.asset.coins.Veil bisq.asset.coins.Webchain bisq.asset.coins.WrkzCoin bisq.asset.coins.Zcash diff --git a/assets/src/test/java/bisq/asset/coins/VeilTest.java b/assets/src/test/java/bisq/asset/coins/VeilTest.java new file mode 100644 index 0000000000..68e9ca856a --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/VeilTest.java @@ -0,0 +1,45 @@ +/* + * 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.coins; + +import bisq.asset.AbstractAssetTest; +import org.junit.Test; + +public class VeilTest extends AbstractAssetTest { + + public VeilTest() { + super(new Veil()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("VS2oF2pouKoLPJCjY8D7E1dStmUtitACu7"); + assertValidAddress("VV8VtpWTsYFBnhnvgQVnTvqoTx7XRRevte"); + assertValidAddress("VRZF4Am891FS224uuNirsrEugqMyg3VxjJ"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhemqq"); + assertInvalidAddress("3EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQX"); + assertInvalidAddress("DRbnCYbuMXdKU4y8dya9EnocL47gFjErWeg"); + assertInvalidAddress("DTPAqTryNRCE2FgsxzohTtJXfCBODnG6Rc"); + assertInvalidAddress("DTPAqTryNRCE2FgsxzohTtJXfCB0DnG6Rc"); + assertInvalidAddress("DTPAqTryNRCE2FgsxzohTtJXfCBIDnG6Rc"); + } +}