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");
+ }
+}