Package org.bitcoinj.base
Enum BitcoinNetwork
- java.lang.Object
-
- java.lang.Enum<BitcoinNetwork>
-
- org.bitcoinj.base.BitcoinNetwork
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable<BitcoinNetwork>
,Network
public enum BitcoinNetwork extends java.lang.Enum<BitcoinNetwork> implements Network
A convenientenum
representation of a Bitcoin network.Note that the name of each
enum
constant is defined in uppercase as is the convention in Java. However, thecanonical
representation in bitcoinj for user-facing display and input of Bitcoin network names is lowercase (e.g. as a command-line parameter.) Implementations should use thetoString()
method for output and thefromString(String)
method for input of network values.
-
-
Enum Constant Summary
Enum Constants Enum Constant Description MAINNET
The main Bitcoin network, known as"mainnet"
, withid
string"org.bitcoin.production"
REGTEST
A local Bitcoin regression test network, known as"regtest"
, withid
string"org.bitcoin.regtest"
SIGNET
The Bitcoin signature-based test network, known as"signet"
, withid
string"org.bitcoin.signet"
TESTNET
The Bitcoin test network, known as"testnet"
, withid
string"org.bitcoin.test"
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
BITCOIN_SCHEME
Scheme part for Bitcoin URIs.static java.lang.String
ID_MAINNET
The ID string for the main, production network where people trade things.static java.lang.String
ID_REGTEST
The ID string for regtest mode.static java.lang.String
ID_SIGNET
The ID string for the signet.static java.lang.String
ID_TESTNET
The ID string for the testnet.static Coin
MAX_MONEY
The maximum money to be generated
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Address
checkAddress(Address address)
Check if an address is valid on this network.boolean
exceedsMaxMoney(Monetary amount)
Check if an amount exceeds the maximum allowed for a network (if the network has one)static java.util.Optional<BitcoinNetwork>
fromIdString(java.lang.String idString)
Find theBitcoinNetwork
from an ID Stringstatic java.util.Optional<BitcoinNetwork>
fromString(java.lang.String nameString)
Find theBitcoinNetwork
from a name string, e.g.boolean
hasMaxMoney()
Does this network have a fixed maximum number of coinsjava.lang.String
id()
boolean
isValidAddress(Address address)
Is address valid for this network.int
legacyAddressHeader()
Header byte of base58 encoded legacy P2PKH addresses for this network.int
legacyP2SHHeader()
Header byte of base58 encoded legacy P2SH addresses for this network.Coin
maxMoney()
Maximum number of coins for this network as aMonetary
value.java.lang.String
segwitAddressHrp()
Return the standard Bech32SegwitAddress.SegwitHrp
(as aString
) for this network.static java.util.List<java.lang.String>
strings()
java.lang.String
toString()
Return the canonical, lowercase, user-facingString
for anenum
.java.lang.String
uriScheme()
The URI scheme for Bitcoin.static BitcoinNetwork
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.static BitcoinNetwork[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
MAINNET
public static final BitcoinNetwork MAINNET
The main Bitcoin network, known as"mainnet"
, withid
string"org.bitcoin.production"
-
TESTNET
public static final BitcoinNetwork TESTNET
The Bitcoin test network, known as"testnet"
, withid
string"org.bitcoin.test"
-
SIGNET
public static final BitcoinNetwork SIGNET
The Bitcoin signature-based test network, known as"signet"
, withid
string"org.bitcoin.signet"
-
REGTEST
public static final BitcoinNetwork REGTEST
A local Bitcoin regression test network, known as"regtest"
, withid
string"org.bitcoin.regtest"
-
-
Field Detail
-
BITCOIN_SCHEME
public static final java.lang.String BITCOIN_SCHEME
Scheme part for Bitcoin URIs.- See Also:
- Constant Field Values
-
MAX_MONEY
public static final Coin MAX_MONEY
The maximum money to be generated
-
ID_MAINNET
public static final java.lang.String ID_MAINNET
The ID string for the main, production network where people trade things.
-
ID_TESTNET
public static final java.lang.String ID_TESTNET
The ID string for the testnet.
-
ID_SIGNET
public static final java.lang.String ID_SIGNET
The ID string for the signet.
-
ID_REGTEST
public static final java.lang.String ID_REGTEST
The ID string for regtest mode.
-
-
Method Detail
-
values
public static BitcoinNetwork[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (BitcoinNetwork c : BitcoinNetwork.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static BitcoinNetwork valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null
-
toString
public java.lang.String toString()
Return the canonical, lowercase, user-facingString
for anenum
. It is the lowercase value ofEnum.name()
and can be displayed to the user, used as a command-line parameter, etc.- Overrides:
toString
in classjava.lang.Enum<BitcoinNetwork>
- Returns:
- canonical lowercase name for this Bitcoin network
-
id
public java.lang.String id()
Return the network ID string as defined by (these were previously defined inNetworkParameters
)
-
legacyAddressHeader
public int legacyAddressHeader()
Header byte of base58 encoded legacy P2PKH addresses for this network.- Specified by:
legacyAddressHeader
in interfaceNetwork
- Returns:
- header byte as an
int
. - See Also:
LegacyAddress.AddressHeader
-
legacyP2SHHeader
public int legacyP2SHHeader()
Header byte of base58 encoded legacy P2SH addresses for this network.- Specified by:
legacyP2SHHeader
in interfaceNetwork
- Returns:
- header byte as an
int
. - See Also:
LegacyAddress.P2SHHeader
-
segwitAddressHrp
public java.lang.String segwitAddressHrp()
Return the standard Bech32SegwitAddress.SegwitHrp
(as aString
) for this network.- Specified by:
segwitAddressHrp
in interfaceNetwork
- Returns:
- The HRP as a (lowercase) string.
-
uriScheme
public java.lang.String uriScheme()
The URI scheme for Bitcoin.
-
hasMaxMoney
public boolean hasMaxMoney()
Description copied from interface:Network
Does this network have a fixed maximum number of coins- Specified by:
hasMaxMoney
in interfaceNetwork
- Returns:
true
if this network has a fixed maximum number of coins
-
maxMoney
public Coin maxMoney()
Description copied from interface:Network
Maximum number of coins for this network as aMonetary
value. Where not applicable, a very large number of coins is returned instead (e.g. the main coin issue for Dogecoin).
-
exceedsMaxMoney
public boolean exceedsMaxMoney(Monetary amount)
Description copied from interface:Network
Check if an amount exceeds the maximum allowed for a network (if the network has one)- Specified by:
exceedsMaxMoney
in interfaceNetwork
- Parameters:
amount
- A monetary amount- Returns:
- true if too big, false if an allowed amount
-
checkAddress
public Address checkAddress(Address address) throws java.lang.IllegalArgumentException
Check if an address is valid on this network. This is meant to be used as a precondition for a method or function that expects a valid address. If you are validating addresses provided externally, you probably want to useisValidAddress(Address)
to handle errors more gracefully. This method usesisValidAddress(Address)
internally which properly accounts for address normalization.- Parameters:
address
- Address to validate- Returns:
- The unmodified address if valid on this network
- Throws:
java.lang.IllegalArgumentException
- if address not valid on this network
-
isValidAddress
public boolean isValidAddress(Address address)
Is address valid for this network. Because we normalize thenetwork()
value in theAddress
type (see the JavaDoc forAddress.network()
) this method should be used in preference to simply verifying thataddress.network()
returns the desired network type.- Parameters:
address
- Address to validate- Returns:
true
if valid on this network,false
otherwise
-
fromString
public static java.util.Optional<BitcoinNetwork> fromString(java.lang.String nameString)
Find theBitcoinNetwork
from a name string, e.g. "mainnet", "testnet" or "signet". A number of common alternate names are allowed too, e.g. "main" or "prod".- Parameters:
nameString
- A name string- Returns:
- An
Optional
containing the matching enum or empty
-
fromIdString
public static java.util.Optional<BitcoinNetwork> fromIdString(java.lang.String idString)
Find theBitcoinNetwork
from an ID String- Parameters:
idString
- specifies the network- Returns:
- An
Optional
containing the matching enum or empty
-
strings
public static java.util.List<java.lang.String> strings()
- Returns:
- list of the names of all instances of this enum
-
-