This commit is contained in:
Craig Raw 2025-08-19 16:17:53 +02:00
parent e12fdfa47c
commit 68966e5c26
2 changed files with 14 additions and 12 deletions

View file

@ -3,16 +3,16 @@ package com.sparrowwallet.drongo;
import java.util.Locale; import java.util.Locale;
public enum Network { public enum Network {
MAINNET("mainnet", "Mainnet", "mainnet", 0, "1", 5, "3", "bc", ExtendedKey.Header.xprv, ExtendedKey.Header.xpub, 128, 8332), MAINNET("mainnet", "Mainnet", "mainnet", 0, "1", 5, "3", "bc", "sp", ExtendedKey.Header.xprv, ExtendedKey.Header.xpub, 128, 8332),
TESTNET("testnet", "Testnet3", "testnet3", 111, "mn", 196, "2", "tb", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 239, 18332), TESTNET("testnet", "Testnet3", "testnet3", 111, "mn", 196, "2", "tb", "tsp", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 239, 18332),
REGTEST("regtest", "Regtest", "regtest", 111, "mn", 196, "2", "bcrt", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 239, 18443), REGTEST("regtest", "Regtest", "regtest", 111, "mn", 196, "2", "bcrt", "sprt", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 239, 18443),
SIGNET("signet", "Signet", "signet", 111, "mn", 196, "2", "tb", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 239, 38332), SIGNET("signet", "Signet", "signet", 111, "mn", 196, "2", "tb", "tsp", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 239, 38332),
TESTNET4("testnet4", "Testnet4", "testnet4", 111, "mn", 196, "2", "tb", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 239, 48332); TESTNET4("testnet4", "Testnet4", "testnet4", 111, "mn", 196, "2", "tb", "tsp", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 239, 48332);
public static final String BLOCK_HEIGHT_PROPERTY = "com.sparrowwallet.blockHeight"; public static final String BLOCK_HEIGHT_PROPERTY = "com.sparrowwallet.blockHeight";
private static final Network[] CANONICAL_VALUES = new Network[]{MAINNET, TESTNET, REGTEST, SIGNET}; private static final Network[] CANONICAL_VALUES = new Network[]{MAINNET, TESTNET, REGTEST, SIGNET};
Network(String name, String displayName, String home, int p2pkhAddressHeader, String p2pkhAddressPrefix, int p2shAddressHeader, String p2shAddressPrefix, String bech32AddressHrp, ExtendedKey.Header xprvHeader, ExtendedKey.Header xpubHeader, int dumpedPrivateKeyHeader, int defaultPort) { Network(String name, String displayName, String home, int p2pkhAddressHeader, String p2pkhAddressPrefix, int p2shAddressHeader, String p2shAddressPrefix, String bech32AddressHrp, String spAddressHrp, ExtendedKey.Header xprvHeader, ExtendedKey.Header xpubHeader, int dumpedPrivateKeyHeader, int defaultPort) {
this.name = name; this.name = name;
this.displayName = displayName; this.displayName = displayName;
this.home = home; this.home = home;
@ -21,6 +21,7 @@ public enum Network {
this.p2shAddressHeader = p2shAddressHeader; this.p2shAddressHeader = p2shAddressHeader;
this.p2shAddressPrefix = p2shAddressPrefix; this.p2shAddressPrefix = p2shAddressPrefix;
this.bech32AddressHrp = bech32AddressHrp; this.bech32AddressHrp = bech32AddressHrp;
this.spAddressHrp = spAddressHrp;
this.xprvHeader = xprvHeader; this.xprvHeader = xprvHeader;
this.xpubHeader = xpubHeader; this.xpubHeader = xpubHeader;
this.dumpedPrivateKeyHeader = dumpedPrivateKeyHeader; this.dumpedPrivateKeyHeader = dumpedPrivateKeyHeader;
@ -35,6 +36,7 @@ public enum Network {
private final int p2shAddressHeader; private final int p2shAddressHeader;
private final String p2shAddressPrefix; private final String p2shAddressPrefix;
private final String bech32AddressHrp; private final String bech32AddressHrp;
private final String spAddressHrp;
private final ExtendedKey.Header xprvHeader; private final ExtendedKey.Header xprvHeader;
private final ExtendedKey.Header xpubHeader; private final ExtendedKey.Header xpubHeader;
private final int dumpedPrivateKeyHeader; private final int dumpedPrivateKeyHeader;
@ -70,6 +72,10 @@ public enum Network {
return bech32AddressHrp; return bech32AddressHrp;
} }
public String getSilentPaymentsAddressHrp() {
return spAddressHrp;
}
public ExtendedKey.Header getXprvHeader() { public ExtendedKey.Header getXprvHeader() {
return xprvHeader; return xprvHeader;
} }

View file

@ -26,11 +26,7 @@ public class SilentPaymentAddress {
public String getAddress() { public String getAddress() {
byte[] keys = Utils.concat(scanAddress.getPubKey(), spendAddress.getPubKey()); byte[] keys = Utils.concat(scanAddress.getPubKey(), spendAddress.getPubKey());
return Bech32.encode(getHrp(), 0, Bech32.Encoding.BECH32M, keys); return Bech32.encode(Network.get().getSilentPaymentsAddressHrp(), 0, Bech32.Encoding.BECH32M, keys);
}
private static String getHrp() {
return Network.get() == Network.MAINNET ? "sp" : "tsp";
} }
public static SilentPaymentAddress from(String address) { public static SilentPaymentAddress from(String address) {
@ -39,7 +35,7 @@ public class SilentPaymentAddress {
throw new IllegalArgumentException("Invalid silent payments address encoding"); throw new IllegalArgumentException("Invalid silent payments address encoding");
} }
if(!getHrp().equals(data.hrp)) { if(!Network.get().getSilentPaymentsAddressHrp().equals(data.hrp)) {
throw new IllegalArgumentException("Invalid silent payments address hrp"); throw new IllegalArgumentException("Invalid silent payments address hrp");
} }