diff --git a/assets/src/main/java/bisq/asset/coins/Persona.java b/assets/src/main/java/bisq/asset/coins/Persona.java new file mode 100644 index 0000000000..1d449a0b60 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/Persona.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 Persona extends Coin { + + public Persona() { + super("Persona", "PRSN", new RegexAddressValidator("^[P][a-km-zA-HJ-NP-Z1-9]{33}$")); + } +} 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 b5a360bb8a..e19de61a30 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -41,6 +41,7 @@ bisq.asset.coins.MoX bisq.asset.coins.Namecoin bisq.asset.coins.Neos bisq.asset.coins.Noir +bisq.asset.coins.Persona bisq.asset.coins.Pinkcoin bisq.asset.coins.PIVX bisq.asset.coins.PZDC diff --git a/assets/src/test/java/bisq/asset/coins/PersonaTest.java b/assets/src/test/java/bisq/asset/coins/PersonaTest.java new file mode 100644 index 0000000000..ff4dd4a5c6 --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/PersonaTest.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 PersonaTest extends AbstractAssetTest { + + public PersonaTest() { + super(new Persona()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("PV5PbsyhkM1RkN41QiSXy7cisbZ4kBzm51"); + assertValidAddress("PJACMZ2tMMZzQ8H9mWPHJcB7uYP47BM2zA"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress(""); + assertInvalidAddress("LJACMZ2tMMZzQ8H9mWPHJcB7uYP47BM2zA"); + assertInvalidAddress("TJACMZ2tMMZzQ8H9mWPHJcB7uYP47BM2zA"); + assertInvalidAddress("PJACMZ2tMMZzQ8H9mWPHJcB7uYP47BM2zAA"); + assertInvalidAddress("PlACMZ2tMMZzQ8H9mWPHJcB7uYP47BM2zA"); + assertInvalidAddress("PIACMZ2tMMZzQ8H9mWPHJcB7uYP47BM2zA"); + assertInvalidAddress("POACMZ2tMMZzQ8H9mWPHJcB7uYP47BM2zA"); + assertInvalidAddress("P0ACMZ2tMMZzQ8H9mWPHJcB7uYP47BM2zA"); + } +} + +