Package org.bitcoinj.wallet
Class DeterministicKeyChain.Builder<T extends DeterministicKeyChain.Builder<T>>
- java.lang.Object
-
- org.bitcoinj.wallet.DeterministicKeyChain.Builder<T>
-
- Direct Known Subclasses:
MarriedKeyChain.Builder
- Enclosing class:
- DeterministicKeyChain
public static class DeterministicKeyChain.Builder<T extends DeterministicKeyChain.Builder<T>> extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected HDPath
accountPath
protected int
bits
protected long
creationTimeSecs
protected byte[]
entropy
protected boolean
isFollowing
protected Script.ScriptType
outputScriptType
protected java.lang.String
passphrase
protected java.security.SecureRandom
random
protected DeterministicSeed
seed
protected DeterministicKey
spendingKey
protected DeterministicKey
watchingKey
-
Constructor Summary
Constructors Modifier Constructor Description protected
Builder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description T
accountPath(java.util.List<ChildNumber> accountPath)
Use an account path other than the defaultDeterministicKeyChain.ACCOUNT_ZERO_PATH
.DeterministicKeyChain
build()
T
entropy(byte[] entropy, long creationTimeSecs)
Creates a deterministic key chain starting from the given entropy.protected java.lang.String
getPassphrase()
T
outputScriptType(Script.ScriptType outputScriptType)
T
passphrase(java.lang.String passphrase)
The passphrase to use with the generated mnemonic, or null if you would like to use the default empty string.T
random(java.security.SecureRandom random)
Generates a new key chain with 128 bits of entropy selected randomly from the givenSecureRandom
object.T
random(java.security.SecureRandom random, int bits)
Generates a new key chain with entropy selected randomly from the givenSecureRandom
object and of the requested size in bits.T
seed(DeterministicSeed seed)
Creates a deterministic key chain starting from the given seed.protected T
self()
T
spend(DeterministicKey accountKey)
Creates a key chain that can spend from the given account key.T
watch(DeterministicKey accountKey)
Creates a key chain that watches the given account key.T
watchAndFollow(DeterministicKey accountKey)
Creates a deterministic key chain with the given watch key and that follows some other keychain.
-
-
-
Field Detail
-
random
protected java.security.SecureRandom random
-
bits
protected int bits
-
passphrase
protected java.lang.String passphrase
-
creationTimeSecs
protected long creationTimeSecs
-
entropy
protected byte[] entropy
-
seed
protected DeterministicSeed seed
-
outputScriptType
protected Script.ScriptType outputScriptType
-
watchingKey
protected DeterministicKey watchingKey
-
isFollowing
protected boolean isFollowing
-
spendingKey
protected DeterministicKey spendingKey
-
accountPath
protected HDPath accountPath
-
-
Method Detail
-
self
protected T self()
-
entropy
public T entropy(byte[] entropy, long creationTimeSecs)
Creates a deterministic key chain starting from the given entropy. All keys yielded by this chain will be the same if the starting entropy is the same. You should provide the creation time in seconds since the UNIX epoch for the seed: this lets us know from what part of the chain we can expect to see derived keys appear.
-
seed
public T seed(DeterministicSeed seed)
Creates a deterministic key chain starting from the given seed. All keys yielded by this chain will be the same if the starting seed is the same.
-
random
public T random(java.security.SecureRandom random, int bits)
Generates a new key chain with entropy selected randomly from the givenSecureRandom
object and of the requested size in bits. The derived seed is further protected with a user selected passphrase (see BIP 39).- Parameters:
random
- the random number generator - use new SecureRandom().bits
- The number of bits of entropy to use when generating entropy. Either 128 (default), 192 or 256.
-
random
public T random(java.security.SecureRandom random)
Generates a new key chain with 128 bits of entropy selected randomly from the givenSecureRandom
object. The derived seed is further protected with a user selected passphrase (see BIP 39).- Parameters:
random
- the random number generator - use new SecureRandom().
-
watch
public T watch(DeterministicKey accountKey)
Creates a key chain that watches the given account key.
-
watchAndFollow
public T watchAndFollow(DeterministicKey accountKey)
Creates a deterministic key chain with the given watch key and that follows some other keychain. In a married wallet following keychain represents "spouse". Watch key has to be an account key.
-
spend
public T spend(DeterministicKey accountKey)
Creates a key chain that can spend from the given account key.
-
outputScriptType
public T outputScriptType(Script.ScriptType outputScriptType)
-
passphrase
public T passphrase(java.lang.String passphrase)
The passphrase to use with the generated mnemonic, or null if you would like to use the default empty string. Currently must be the empty string.
-
accountPath
public T accountPath(java.util.List<ChildNumber> accountPath)
Use an account path other than the defaultDeterministicKeyChain.ACCOUNT_ZERO_PATH
.
-
build
public DeterministicKeyChain build()
-
getPassphrase
protected java.lang.String getPassphrase()
-
-