diff --git a/src/main/java/com/sparrowwallet/drongo/address/Address.java b/src/main/java/com/sparrowwallet/drongo/address/Address.java index 1fcf9f8..421e383 100644 --- a/src/main/java/com/sparrowwallet/drongo/address/Address.java +++ b/src/main/java/com/sparrowwallet/drongo/address/Address.java @@ -56,6 +56,17 @@ public abstract class Address { public int hashCode() { return getAddress().hashCode(); } + + /* Convienience function to try all valid network types when parsing address string */ + public static Address fromStringAnyNetwork(String address) throws InvalidAddressException { + for (Network network : Network.values()) { + try { + return Address.fromString(network, address); + } catch (InvalidAddressException e) { + } + } + throw new InvalidAddressException("Could not parse invalid address " + address); + } public static Address fromString(Network network, String address) throws InvalidAddressException { Exception nested = null; diff --git a/src/main/java/com/sparrowwallet/drongo/protocol/Network.java b/src/main/java/com/sparrowwallet/drongo/protocol/Network.java index 2da7b5b..c311941 100644 --- a/src/main/java/com/sparrowwallet/drongo/protocol/Network.java +++ b/src/main/java/com/sparrowwallet/drongo/protocol/Network.java @@ -1,8 +1,8 @@ package com.sparrowwallet.drongo.protocol; public enum Network { - TESTNET("tb", "mn2", 111, 196), - BITCOIN("bc", "13", 0, 5); + BITCOIN("bc", "13", 0, 5), + TESTNET("tb", "mn2", 111, 196); public final String hrp; public final String legacyPrefixes; diff --git a/src/main/java/com/sparrowwallet/drongo/protocol/Script.java b/src/main/java/com/sparrowwallet/drongo/protocol/Script.java index 145285a..b1f2e51 100644 --- a/src/main/java/com/sparrowwallet/drongo/protocol/Script.java +++ b/src/main/java/com/sparrowwallet/drongo/protocol/Script.java @@ -3,7 +3,6 @@ package com.sparrowwallet.drongo.protocol; import com.sparrowwallet.drongo.Utils; import com.sparrowwallet.drongo.address.*; import com.sparrowwallet.drongo.crypto.ECKey; -import com.sparrowwallet.drongo.protocol.Network; import org.bouncycastle.util.encoders.Hex; import java.io.ByteArrayInputStream; diff --git a/src/main/java/com/sparrowwallet/drongo/protocol/ScriptType.java b/src/main/java/com/sparrowwallet/drongo/protocol/ScriptType.java index 4cd2caf..77fc1dd 100644 --- a/src/main/java/com/sparrowwallet/drongo/protocol/ScriptType.java +++ b/src/main/java/com/sparrowwallet/drongo/protocol/ScriptType.java @@ -6,7 +6,6 @@ import com.sparrowwallet.drongo.address.*; import com.sparrowwallet.drongo.crypto.ChildNumber; import com.sparrowwallet.drongo.crypto.ECKey; import com.sparrowwallet.drongo.policy.PolicyType; -import com.sparrowwallet.drongo.protocol.Network; import java.util.*; import java.util.stream.Collectors; diff --git a/src/main/java/com/sparrowwallet/drongo/psbt/PSBT.java b/src/main/java/com/sparrowwallet/drongo/psbt/PSBT.java index 90bf11b..c54c7c1 100644 --- a/src/main/java/com/sparrowwallet/drongo/psbt/PSBT.java +++ b/src/main/java/com/sparrowwallet/drongo/psbt/PSBT.java @@ -355,6 +355,10 @@ public class PSBT { return null; } + + public Network getNetwork() { + return network; + } public Long getFee() { long fee = 0L;