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 Object
  • Field Details

    • random

      protected SecureRandom random
    • bits

      protected int bits
    • passphrase

      protected 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
  • Constructor Details

    • Builder

      protected Builder()
  • Method Details

    • 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(SecureRandom random, int bits)
      Generates a new key chain with entropy selected randomly from the given SecureRandom 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(SecureRandom random)
      Generates a new key chain with 128 bits of entropy selected randomly from the given SecureRandom 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(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(List<ChildNumber> accountPath)
      Use an account path other than the default DeterministicKeyChain.ACCOUNT_ZERO_PATH.
    • build

      public DeterministicKeyChain build()
    • getPassphrase

      protected String getPassphrase()