diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 606121d8877..00000000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
deleted file mode 100644
index 6e6eec11483..00000000000
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/fileTemplates/internal/AnnotationType.java b/.idea/fileTemplates/internal/AnnotationType.java
deleted file mode 100644
index 471086f12fc..00000000000
--- a/.idea/fileTemplates/internal/AnnotationType.java
+++ /dev/null
@@ -1,4 +0,0 @@
-#parse("File Header.java")
-#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
-public @interface ${NAME} {
-}
diff --git a/.idea/fileTemplates/internal/Class.java b/.idea/fileTemplates/internal/Class.java
deleted file mode 100644
index 352bcb1f43d..00000000000
--- a/.idea/fileTemplates/internal/Class.java
+++ /dev/null
@@ -1,4 +0,0 @@
-#parse("File Header.java")
-#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
-class ${NAME} {
-}
diff --git a/.idea/fileTemplates/internal/Enum.java b/.idea/fileTemplates/internal/Enum.java
deleted file mode 100644
index cec22e643b3..00000000000
--- a/.idea/fileTemplates/internal/Enum.java
+++ /dev/null
@@ -1,4 +0,0 @@
-#parse("File Header.java")
-#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
-public enum ${NAME} {
-}
diff --git a/.idea/fileTemplates/internal/Interface.java b/.idea/fileTemplates/internal/Interface.java
deleted file mode 100644
index aaa2a5b4614..00000000000
--- a/.idea/fileTemplates/internal/Interface.java
+++ /dev/null
@@ -1,4 +0,0 @@
-#parse("File Header.java")
-#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
-public interface ${NAME} {
-}
diff --git a/assets/src/main/java/bisq/asset/CryptonoteAddressValidator.java b/assets/src/main/java/bisq/asset/CryptonoteAddressValidator.java
index e5ab3c8788b..6b6d1dcc1ed 100644
--- a/assets/src/main/java/bisq/asset/CryptonoteAddressValidator.java
+++ b/assets/src/main/java/bisq/asset/CryptonoteAddressValidator.java
@@ -53,14 +53,14 @@ else if (prefix.length() == 2 && address.length() == 95 + prefix.length()) {
//Non-supported prefix
return AddressValidationResult.invalidStructure();
}
- }
+ }
if (address.startsWith(subAddressPrefix)) {
if (subAddressPrefix.length() == 1 && address.length() == 94 + subAddressPrefix.length()) {
// XMR-type subaddress
return AddressValidationResult.validAddress();
- }
+ }
else if (subAddressPrefix.length() == 2 && address.length() == 95 + subAddressPrefix.length()) {
- // Aeon & Blur-type subaddress
+ // Aeon, Mask & Blur-type subaddress
return AddressValidationResult.validAddress();
}
else {
@@ -74,5 +74,3 @@ else if (subAddressPrefix.length() == 2 && address.length() == 95 + subAddressPr
}
}
}
-
-
diff --git a/.idea/fileTemplates/includes/File Header.java b/assets/src/main/java/bisq/asset/coins/Mask.java
similarity index 73%
rename from .idea/fileTemplates/includes/File Header.java
rename to assets/src/main/java/bisq/asset/coins/Mask.java
index 397d96c8a21..99217222152 100644
--- a/.idea/fileTemplates/includes/File Header.java
+++ b/assets/src/main/java/bisq/asset/coins/Mask.java
@@ -13,4 +13,15 @@
*
* You should have received a copy of the GNU Affero General Public License
* along with Bisq. If not, see .
- */
\ No newline at end of file
+ */
+
+package bisq.asset.coins;
+
+import bisq.asset.Coin;
+import bisq.asset.CryptonoteAddressValidator;
+
+public class Mask extends Coin {
+ public Mask() {
+ super("Mask", "MASK", new CryptonoteAddressValidator("M", "bT"));
+ }
+}
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 96349c48e36..3a3f77a9f41 100644
--- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset
+++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset
@@ -76,6 +76,7 @@ bisq.asset.coins.Loki
bisq.asset.coins.Madbyte
bisq.asset.coins.Madcoin
bisq.asset.coins.MaidSafeCoin
+bisq.asset.coins.Mask
bisq.asset.coins.MaxCoin
bisq.asset.coins.Mazacoin
bisq.asset.coins.MegaCoin
diff --git a/assets/src/test/java/bisq/asset/coins/MaskTest.java b/assets/src/test/java/bisq/asset/coins/MaskTest.java
new file mode 100644
index 00000000000..66203c5644c
--- /dev/null
+++ b/assets/src/test/java/bisq/asset/coins/MaskTest.java
@@ -0,0 +1,46 @@
+/*
+ * 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 MaskTest extends AbstractAssetTest {
+
+ public MaskTest() {
+ super(new Mask());
+ }
+
+ @Test
+ public void testValidAddresses() {
+ assertValidAddress("MbxYjp38aUXBuESwsFv8YmRvbQvMhNyJygU6ViLCjM4sUNqFjsHQim9dvzp9p8BVTjdsRkVNrC1Zy3NJRb18hav3CPe5eWn");
+ assertValidAddress("MeGcanFnSr4bJFuNoHogCBdDCsqDrNu5njPc1Yh1DfsTUTL5dLbbtE119f4vztxXu6fFCKWRmpqjABdDyGrzMDkhTC38WwS");
+ assertValidAddress("bTWEbW8kKVrZkDwyPs5t7BZXotMNyz5UY2QDJ6MjKT7ihA8kNKhoHDqPUiUB7jPxNpXLFkJsgL6TA1fo7yAzVUdm1hTopCocf");
+ assertValidAddress("bTXejHgtfTLWzhyz9fHHBDKTWrsM8MKnebZCKeue8mbDWaKRhnQ8VisGRXUgTvUhsDiwX6PxeP5A22DFf5UVEk431Vjt8m3GM");
+ }
+
+ @Test
+ public void testInvalidAddresses() {
+ assertInvalidAddress("");
+ assertInvalidAddress("MsopefFnSr4bJFuNoHogCBdDCsqDrNu5Pc1Yh1DfsTUTL5dLbbtE119f4vztxXu6fFCKWRmpqjABdDyGrzMDkhTC38gWw");
+ assertInvalidAddress("MeGcanuyt4bJFuNoHogCBdDCsqDrNu5njPc1Yh1DfsTUTL5dLbbtE119f4vztxXu6fFCKWRmpqujABdDyGrzMDkhTC38WwSx");
+ assertInvalidAddress("MrtcanFnSr4bJFuNoHogCBdDCsqDrNu5Pc1Yh1DfsTUTL5dLbbtE119f4vztxXu6fFCKWRmpqjABdDyGrzMDkhTC3rt4vb8Ww");
+ assertInvalidAddress("bBXejHgtfTLWzhyz9fHKBDKTWrsM8MKnebZCKeue8mbDWaKRhnQ8VisGRXUgTvUhsDiwX6PxeP5A22DFf5UVEk431Vjt8m3GM");
+ }
+}