diff --git a/src/main/java/bisq/asset/coins/MobitGlobal.java b/src/main/java/bisq/asset/coins/MobitGlobal.java new file mode 100644 index 0000000..c4e1eb8 --- /dev/null +++ b/src/main/java/bisq/asset/coins/MobitGlobal.java @@ -0,0 +1,56 @@ +/* + * 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.AddressValidationResult; +import bisq.asset.Base58BitcoinAddressValidator; +import bisq.asset.Coin; +import bisq.asset.NetworkParametersAdapter; + +public class MobitGlobal extends Coin { + + public MobitGlobal() { + super("MobitGlobal", "MBGL", new MobitGlobalAddressValidator()); + } + + + public static class MobitGlobalAddressValidator extends Base58BitcoinAddressValidator { + + public MobitGlobalAddressValidator() { + super(new MobitGlobalParams()); + } + + @Override + public AddressValidationResult validate(String address) { + if (!address.matches("^[M][a-zA-Z1-9]{33}$")) + return AddressValidationResult.invalidStructure(); + + return super.validate(address); + } + } + + + public static class MobitGlobalParams extends NetworkParametersAdapter { + + public MobitGlobalParams() { + addressHeader = 50; + p2shHeader = 110; + acceptableAddressCodes = new int[]{addressHeader, p2shHeader}; + } + } +} diff --git a/src/main/resources/META-INF/services/bisq.asset.Asset b/src/main/resources/META-INF/services/bisq.asset.Asset index ea8a817..dfd8b57 100644 --- a/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/src/main/resources/META-INF/services/bisq.asset.Asset @@ -72,6 +72,7 @@ bisq.asset.coins.Mazacoin bisq.asset.coins.MegaCoin bisq.asset.coins.MFCoin bisq.asset.coins.MicroCoin +bisq.asset.coins.MobitGlobal bisq.asset.coins.Monero bisq.asset.coins.Motion bisq.asset.coins.Myriadcoin diff --git a/src/test/java/bisq/asset/coins/MobitGlobalTest.java b/src/test/java/bisq/asset/coins/MobitGlobalTest.java new file mode 100644 index 0000000..92be634 --- /dev/null +++ b/src/test/java/bisq/asset/coins/MobitGlobalTest.java @@ -0,0 +1,44 @@ +/* + * 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 MobitGlobalTest extends AbstractAssetTest { + + public MobitGlobalTest() { + super(new MobitGlobal()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("MKDLXTdJs1AtAJhoRddLBSimXCE6SXbyMq"); + assertValidAddress("MGr2WYY9kSLPozEcsCWSEumXNX2AJXggUR"); + assertValidAddress("MUe1HzGqzcunR1wUxHTqX9cuQNMnEjiN7D"); + assertValidAddress("MWRqbYKkQcSvtHq4GFrPvYGf8GFGsLNPcE"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("AWGfbG22DNhgP2rsKfqyFxCwi1u68BbHAA1"); + assertInvalidAddress("AWGfbG22DNhgP2rsKfqyFxCwi1u68BbHAB"); + assertInvalidAddress("AWGfbG22DNhgP2rsKfqyFxCwi1u68BbHA#"); + } +}