DeterministicKeyChain$Builder.smali
.class public Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
.super Ljava/lang/Object;
.source "DeterministicKeyChain.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder",
"<TT;>;>",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field protected bits:I
.field protected entropy:[B
.field protected passphrase:Ljava/lang/String;
.field protected random:Ljava/security/SecureRandom;
.field protected seed:Lorg/bitcoinj/wallet/DeterministicSeed;
.field protected seedCreationTimeSecs:J
.field protected watchingKey:Lorg/bitcoinj/crypto/DeterministicKey;
# direct methods
.method protected constructor <init>()V
.registers 2
.prologue
.line 172
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 165
const/16 v0, 0x80
iput v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->bits:I
.line 173
return-void
.end method
# virtual methods
.method public build()Lorg/bitcoinj/wallet/DeterministicKeyChain;
.registers 7
.prologue
const/4 v2, 0x1
const/4 v1, 0x0
.line 241
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->random:Ljava/security/SecureRandom;
if-nez v0, :cond_12
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->entropy:[B
if-nez v0, :cond_12
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seed:Lorg/bitcoinj/wallet/DeterministicSeed;
if-nez v0, :cond_12
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->watchingKey:Lorg/bitcoinj/crypto/DeterministicKey;
if-eqz v0, :cond_3a
:cond_12
move v0, v2
:goto_13
const-string v3, "Must provide either entropy or random or seed or watchingKey"
invoke-static {v0, v3}, Lcom/google/common/base/n;->checkState(ZLjava/lang/Object;)V
.line 242
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->passphrase:Ljava/lang/String;
if-eqz v0, :cond_20
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seed:Lorg/bitcoinj/wallet/DeterministicSeed;
if-nez v0, :cond_21
:cond_20
move v1, v2
:cond_21
const-string v0, "Passphrase must not be specified with seed"
invoke-static {v1, v0}, Lcom/google/common/base/n;->checkState(ZLjava/lang/Object;)V
.line 245
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->random:Ljava/security/SecureRandom;
if-eqz v0, :cond_3c
.line 247
new-instance v0, Lorg/bitcoinj/wallet/DeterministicKeyChain;
iget-object v1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->random:Ljava/security/SecureRandom;
iget v2, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->bits:I
invoke-virtual {p0}, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->getPassphrase()Ljava/lang/String;
move-result-object v3
iget-wide v4, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seedCreationTimeSecs:J
invoke-direct/range {v0 .. v5}, Lorg/bitcoinj/wallet/DeterministicKeyChain;-><init>(Ljava/security/SecureRandom;ILjava/lang/String;J)V
.line 258
:goto_39
return-object v0
:cond_3a
move v0, v1
.line 241
goto :goto_13
.line 248
:cond_3c
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->entropy:[B
if-eqz v0, :cond_4e
.line 249
new-instance v0, Lorg/bitcoinj/wallet/DeterministicKeyChain;
iget-object v1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->entropy:[B
invoke-virtual {p0}, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->getPassphrase()Ljava/lang/String;
move-result-object v2
iget-wide v4, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seedCreationTimeSecs:J
invoke-direct {v0, v1, v2, v4, v5}, Lorg/bitcoinj/wallet/DeterministicKeyChain;-><init>([BLjava/lang/String;J)V
goto :goto_39
.line 250
:cond_4e
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seed:Lorg/bitcoinj/wallet/DeterministicSeed;
if-eqz v0, :cond_61
.line 251
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seed:Lorg/bitcoinj/wallet/DeterministicSeed;
iget-wide v2, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seedCreationTimeSecs:J
invoke-virtual {v0, v2, v3}, Lorg/bitcoinj/wallet/DeterministicSeed;->setCreationTimeSeconds(J)V
.line 252
new-instance v0, Lorg/bitcoinj/wallet/DeterministicKeyChain;
iget-object v1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seed:Lorg/bitcoinj/wallet/DeterministicSeed;
invoke-direct {v0, v1}, Lorg/bitcoinj/wallet/DeterministicKeyChain;-><init>(Lorg/bitcoinj/wallet/DeterministicSeed;)V
goto :goto_39
.line 254
:cond_61
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->watchingKey:Lorg/bitcoinj/crypto/DeterministicKey;
iget-wide v2, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seedCreationTimeSecs:J
invoke-virtual {v0, v2, v3}, Lorg/bitcoinj/crypto/DeterministicKey;->setCreationTimeSeconds(J)V
.line 255
new-instance v0, Lorg/bitcoinj/wallet/DeterministicKeyChain;
iget-object v1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->watchingKey:Lorg/bitcoinj/crypto/DeterministicKey;
invoke-direct {v0, v1}, Lorg/bitcoinj/wallet/DeterministicKeyChain;-><init>(Lorg/bitcoinj/crypto/DeterministicKey;)V
goto :goto_39
.end method
.method public entropy([B)Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"([B)TT;"
}
.end annotation
.prologue
.line 186
iput-object p1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->entropy:[B
.line 187
invoke-virtual {p0}, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->self()Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
move-result-object v0
return-object v0
.end method
.method protected getPassphrase()Ljava/lang/String;
.registers 2
.prologue
.line 262
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->passphrase:Ljava/lang/String;
if-eqz v0, :cond_7
iget-object v0, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->passphrase:Ljava/lang/String;
:goto_6
return-object v0
:cond_7
const-string v0, ""
goto :goto_6
.end method
.method public passphrase(Ljava/lang/String;)Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")TT;"
}
.end annotation
.prologue
.line 236
iput-object p1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->passphrase:Ljava/lang/String;
.line 237
invoke-virtual {p0}, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->self()Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
move-result-object v0
return-object v0
.end method
.method public random(Ljava/security/SecureRandom;)Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/security/SecureRandom;",
")TT;"
}
.end annotation
.prologue
.line 219
iput-object p1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->random:Ljava/security/SecureRandom;
.line 220
invoke-virtual {p0}, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->self()Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
move-result-object v0
return-object v0
.end method
.method public random(Ljava/security/SecureRandom;I)Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/security/SecureRandom;",
"I)TT;"
}
.end annotation
.prologue
.line 207
iput-object p1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->random:Ljava/security/SecureRandom;
.line 208
iput p2, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->bits:I
.line 209
invoke-virtual {p0}, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->self()Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
move-result-object v0
return-object v0
.end method
.method public seed(Lorg/bitcoinj/wallet/DeterministicSeed;)Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/bitcoinj/wallet/DeterministicSeed;",
")TT;"
}
.end annotation
.prologue
.line 195
iput-object p1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seed:Lorg/bitcoinj/wallet/DeterministicSeed;
.line 196
invoke-virtual {p0}, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->self()Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
move-result-object v0
return-object v0
.end method
.method public seedCreationTimeSecs(J)Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)TT;"
}
.end annotation
.prologue
.line 229
iput-wide p1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->seedCreationTimeSecs:J
.line 230
invoke-virtual {p0}, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->self()Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
move-result-object v0
return-object v0
.end method
.method protected self()Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()TT;"
}
.end annotation
.prologue
.line 177
return-object p0
.end method
.method public watchingKey(Lorg/bitcoinj/crypto/DeterministicKey;)Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/bitcoinj/crypto/DeterministicKey;",
")TT;"
}
.end annotation
.prologue
.line 224
iput-object p1, p0, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->watchingKey:Lorg/bitcoinj/crypto/DeterministicKey;
.line 225
invoke-virtual {p0}, Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;->self()Lorg/bitcoinj/wallet/DeterministicKeyChain$Builder;
move-result-object v0
return-object v0
.end method