public DeterministicKey(ImmutableList<ChildNumber> childNumberPath,byte[] chainCode,BigInteger priv,@Nullable DeterministicKey parent,int depth,int parentFingerprint){
  super(priv,compressPoint(ECKey.publicPointFromPrivate(priv)));
  checkArgument(chainCode.length == 32);
  this.parent=parent;
  this.childNumberPath=checkNotNull(childNumberPath);
  this.chainCode=Arrays.copyOf(chainCode,chainCode.length);
  this.depth=depth;
  this.parentFingerprint=ascertainParentFingerprint(parent,parentFingerprint);
}

public DeterministicKey ( ImmutableList < ChildNumber > childNumberPath , byte [ ] chainCode , BigInteger priv , @ Nullable DeterministicKey parent , int depth , int parentFingerprint ) { super ( priv , compressPoint ( ECKey . publicPointFromPrivate ( priv ) ) ) ; checkArgument ( chainCode . length == 32 ) ; this . parent = parent ; this . childNumberPath = checkNotNull ( childNumberPath ) ; this . chainCode = Arrays . copyOf ( chainCode , chainCode . length ) ; this . depth = depth ; this . parentFingerprint = ascertainParentFingerprint ( parent , parentFingerprint ) ; }
constructs a key from its components , including its private key data and possibly - redundant information about its parent key . invoked when deserializing , but otherwise not something that you normally should use .
