diff --git a/src/main/java/bisq/asset/coins/RavenCoin.java b/src/main/java/bisq/asset/coins/RavenCoin.java new file mode 100644 index 0000000..9d50605 --- /dev/null +++ b/src/main/java/bisq/asset/coins/RavenCoin.java @@ -0,0 +1,33 @@ +package bisq.asset.coins; + +import bisq.asset.Base58BitcoinAddressValidator; +import bisq.asset.Coin; +import bisq.asset.NetworkParametersAdapter; + +public class RavenCoin extends Coin { + + public RavenCoin() { + super("RavenCoin", "RVN", new Base58BitcoinAddressValidator(new RavenCoinParams())); + } + + private static class RavenCoinParams extends NetworkParametersAdapter { + + public RavenCoinParams() { + + this.interval = INTERVAL; + this.targetTimespan = TARGET_TIMESPAN; + this.dumpedPrivateKeyHeader = 0x80; + + //Similar to BTC address format but with different header + this.addressHeader = 60; + this.p2shHeader = 23; + this.acceptableAddressCodes = new int[]{this.addressHeader, this.p2shHeader}; + + this.port = 8767; + this.bip32HeaderPub = 0x0488B21E; + this.bip32HeaderPriv = 0x0488ADE4; + this.packetMagic = 0x5241564EL; + this.dnsSeeds = new String[]{"seed-raven.ravencoin.org", "seed-raven.bitactivate.com"}; + } + } +} diff --git a/src/main/resources/META-INF/services/bisq.asset.Asset b/src/main/resources/META-INF/services/bisq.asset.Asset index 6474d48..de2bfdf 100644 --- a/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/src/main/resources/META-INF/services/bisq.asset.Asset @@ -94,6 +94,7 @@ bisq.asset.coins.PIVX bisq.asset.coins.PostCoin bisq.asset.coins.Pranacoin bisq.asset.coins.PRiVCY +bisq.asset.coins.RavenCoin bisq.asset.coins.ReddCoin bisq.asset.coins.Ringo bisq.asset.coins.Roicoin diff --git a/src/test/java/bisq/asset/coins/RavenCoinTest.java b/src/test/java/bisq/asset/coins/RavenCoinTest.java new file mode 100644 index 0000000..47375a6 --- /dev/null +++ b/src/test/java/bisq/asset/coins/RavenCoinTest.java @@ -0,0 +1,27 @@ +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; + +import org.junit.Test; + +public class RavenCoinTest extends AbstractAssetTest { + + public RavenCoinTest() { + super(new RavenCoin()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("RWXTRxy1zmzwZCqM3K2VU9Cv81fB1SNfPK"); + assertValidAddress("RVQQXRM4JUFNCEqgtwYUHKMCBrtDA7L7yQ"); + assertValidAddress("RAhn7QDyWLRRLazm5PBhB8iM58tgrKfbs5"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhemqq"); + assertInvalidAddress("RVQQXdaJUF4343gtwYUHKMCBrtDA7L7yQ"); + assertInvalidAddress("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhek#"); + assertInvalidAddress("RVQ23RM4JUFNCEqgtwYUHKMCBrtDA7L7yQ"); + } +}