diff --git a/assets/src/main/java/bisq/asset/coins/CloakCoin.java b/assets/src/main/java/bisq/asset/coins/CloakCoin.java new file mode 100644 index 00000000000..19b5d7727ed --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/CloakCoin.java @@ -0,0 +1,28 @@ +/* + * 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.Coin; +import bisq.asset.RegexAddressValidator; + +public class CloakCoin extends Coin { + + public CloakCoin() { + super("CloakCoin", "CLOAK", new RegexAddressValidator("^[B|C][a-km-zA-HJ-NP-Z1-9]{33}|^smY[a-km-zA-HJ-NP-Z1-9]{99}$")); + } +} 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 aacd6ed9118..e486f8b092e 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -17,6 +17,7 @@ bisq.asset.coins.BSQ$Regtest bisq.asset.coins.BSQ$Testnet bisq.asset.coins.Byteball bisq.asset.coins.Chaucha +bisq.asset.coins.CloakCoin bisq.asset.coins.Counterparty bisq.asset.coins.Croat bisq.asset.coins.Dash diff --git a/assets/src/test/java/bisq/asset/coins/CloakCoinTest.java b/assets/src/test/java/bisq/asset/coins/CloakCoinTest.java new file mode 100644 index 00000000000..4f6b3f7cf34 --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/CloakCoinTest.java @@ -0,0 +1,49 @@ +/* + * 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 CloakCoinTest extends AbstractAssetTest { + + public CloakCoinTest() { + super(new CloakCoin()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("C3MwbThsvquwA4Yg6recThXpAhR2hvRKws"); + assertValidAddress("B6MwbThsvquwA4Yg6recThXpAhR2hvKRsz"); + assertValidAddress("BCA31xPpijxiCuTQeYMpMTQsTH1m2jTg5t"); + assertValidAddress("smYmLVV33zExmaFyVp3AUjU3fJMK5E93kwzDfMnPLnEBQ7BoHZkSQhCP92hZz7Hm24yavCceNeQm8RHekqdvrhFe8gX7EdXNwnhQgQ"); + + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("1sA31xPpijxiCuTQeYMpMTQsTH1m2jTgtS"); + assertInvalidAddress("BsA31xPpijxiCuTQeYMpMTQsTH1m2jTgtSd"); + assertInvalidAddress("bech3ThsvquwA4Yg6recThXpAhR2hvRKws"); + assertInvalidAddress("smYmLYcVVzExmaFyVp3AUjU3fJMK5E93kwzDfMnPLnEBQ7BoHZkSQhCP92hZz7Hm24yavCceNeQm8RHekqdv"); + assertInvalidAddress("C3MwbThsvquwA4Yg6recThXpAhR2hvRKw"); + assertInvalidAddress(" B6MwbThsvquwA4Yg6recThXpAhR2hvKRsz"); + assertInvalidAddress("B6MwbThsvquwA4Yg6recThXpAhR2hvKRsz "); + } +}