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