Class BitcoinAddress
java.lang.Object
com.codename1.crypto.bitcoin.BitcoinAddress
A Bitcoin address of any standard type, tied to its network.
| Type | Starts with (mainnet) | Built from |
|---|---|---|
P2PKH |
1 |
p2pkh(byte[], BitcoinNetwork) |
P2SH |
3 |
p2sh(Script, BitcoinNetwork), p2shP2wpkh(byte[], BitcoinNetwork) (BIP-49) |
P2WPKH |
bc1q |
p2wpkh(byte[], BitcoinNetwork) (BIP-84) |
P2WSH |
bc1q |
p2wsh(Script, BitcoinNetwork) |
P2TR |
bc1p |
p2tr(byte[], BitcoinNetwork) (BIP-86) |
parse(String, BitcoinNetwork) reads any of them, refusing an address of another network and a Bech32 address
with the wrong checksum variant; getScriptPubKey() is what a transaction pays to.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intPay to public key hash.static final intPay to script hash.static final intTaproot, SegWit v1.static final intNative SegWit v0 key hash.static final intNative SegWit v0 script hash.static final intA SegWit version this library knows no spending rules for (v2 to v16). -
Method Summary
Modifier and TypeMethodDescriptionbooleanIndicates whether some other object is "equal to" this one.static BitcoinAddressfromScript(Script script, BitcoinNetwork network) The address that a standard output script pays to.The network.The output script that pays this address.intgetType()The address type,P2PKHtoWITNESS_UNKNOWN.inthashCode()Returns a hash code value for the object.static booleanisValid(String address, BitcoinNetwork network) Tells whetherparse(String, BitcoinNetwork)accepts the address for the network.static BitcoinAddressp2pkh(byte[] publicKey, BitcoinNetwork network) A legacy address of a public key (compressed or not; the form changes the address).static BitcoinAddressp2sh(Script redeemScript, BitcoinNetwork network) The P2SH address of a redeem script.static BitcoinAddressp2shP2wpkh(byte[] compressedPublicKey, BitcoinNetwork network) The BIP-49 nested SegWit address: P2WPKH wrapped in P2SH.static BitcoinAddressp2tr(byte[] internalKey, byte[] merkleRoot, BitcoinNetwork network) The Taproot address of an internal key committing to a script tree's Merkle root.static BitcoinAddressp2tr(byte[] internalKey, BitcoinNetwork network) The Taproot address of an x-only internal key with no script tree, as BIP-86 wallets derive it; a 33-byte compressed key is accepted and reduced to its x coordinate.static BitcoinAddressp2wpkh(byte[] compressedPublicKey, BitcoinNetwork network) A native SegWit address of a compressed public key.static BitcoinAddressp2wsh(Script witnessScript, BitcoinNetwork network) The P2WSH address of a witness script.static BitcoinAddressparse(String address, BitcoinNetwork network) Parses an address of the given network.toString()The address text.
-
Field Details
-
P2PKH
public static final int P2PKHPay to public key hash.- See Also:
-
P2SH
public static final int P2SHPay to script hash.- See Also:
-
P2WPKH
public static final int P2WPKHNative SegWit v0 key hash.- See Also:
-
P2WSH
public static final int P2WSHNative SegWit v0 script hash.- See Also:
-
P2TR
public static final int P2TRTaproot, SegWit v1.- See Also:
-
WITNESS_UNKNOWN
public static final int WITNESS_UNKNOWNA SegWit version this library knows no spending rules for (v2 to v16).- See Also:
-
-
Method Details
-
p2pkh
A legacy address of a public key (compressed or not; the form changes the address). -
p2wpkh
A native SegWit address of a compressed public key. -
p2shP2wpkh
The BIP-49 nested SegWit address: P2WPKH wrapped in P2SH. -
p2sh
The P2SH address of a redeem script. -
p2wsh
The P2WSH address of a witness script. -
p2tr
The Taproot address of an x-only internal key with no script tree, as BIP-86 wallets derive it; a 33-byte compressed key is accepted and reduced to its x coordinate. -
p2tr
The Taproot address of an internal key committing to a script tree's Merkle root. -
fromScript
The address that a standard output script pays to.
Throws
IllegalArgumentException: for a script with no address form (bare multisig,OP_RETURN)
-
parse
Parses an address of the given network.
Throws
IllegalArgumentException: for a malformed address, a bad checksum or an address of another network
-
isValid
Tells whetherparse(String, BitcoinNetwork)accepts the address for the network. -
getType
public int getType()The address type,P2PKHtoWITNESS_UNKNOWN. -
getNetwork
The network. -
getScriptPubKey
The output script that pays this address. -
toString
-
equals
Description copied from class:ObjectIndicates whether some other object is "equal to" this one. The equals method implements an equivalence relation: It is reflexive: for any reference value x, x.equals(x) should return true. It is symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. It is transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true. It is consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified. For any non-null reference value x, x.equals(null) should return false. The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any reference values x and y, this method returns true if and only if x and y refer to the same object (x==y has the value true). -
hashCode
public int hashCode()Description copied from class:ObjectReturns a hash code value for the object. This method is supported for the benefit of hashtables such as those provided by java.util.Hashtable. The general contract of hashCode is: Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result. It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hashtables. As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)
-