TestNet3Params.smali
.class public Lorg/bitcoinj/params/TestNet3Params;
.super Lorg/bitcoinj/params/AbstractBitcoinNetParams;
.source "TestNet3Params.java"
# static fields
.field private static instance:Lorg/bitcoinj/params/TestNet3Params;
.field private static final testnetDiffDate:Ljava/util/Date;
# direct methods
.method static constructor <clinit>()V
.registers 4
.prologue
.line 89
new-instance v0, Ljava/util/Date;
const-wide v2, 0x1357e4efc00L
invoke-direct {v0, v2, v3}, Ljava/util/Date;-><init>(J)V
sput-object v0, Lorg/bitcoinj/params/TestNet3Params;->testnetDiffDate:Ljava/util/Date;
return-void
.end method
.method public constructor <init>()V
.registers 11
.prologue
const-wide/32 v8, 0x1d00ffff
const/16 v7, 0x64
const/4 v6, 0x2
const/4 v5, 0x1
const/4 v4, 0x0
.line 39
invoke-direct {p0}, Lorg/bitcoinj/params/AbstractBitcoinNetParams;-><init>()V
.line 40
const-string v0, "org.bitcoin.test"
iput-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->id:Ljava/lang/String;
.line 42
const-wide/32 v0, 0xb110907
iput-wide v0, p0, Lorg/bitcoinj/params/TestNet3Params;->packetMagic:J
.line 43
const/16 v0, 0x7e0
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->interval:I
.line 44
const v0, 0x127500
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->targetTimespan:I
.line 45
invoke-static {v8, v9}, Lorg/bitcoinj/core/Utils;->decodeCompactBits(J)Ljava/math/BigInteger;
move-result-object v0
iput-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->maxTarget:Ljava/math/BigInteger;
.line 46
const/16 v0, 0x479d
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->port:I
.line 47
const/16 v0, 0x6f
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->addressHeader:I
.line 48
const/16 v0, 0xc4
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->p2shHeader:I
.line 49
new-array v0, v6, [I
iget v1, p0, Lorg/bitcoinj/params/TestNet3Params;->addressHeader:I
aput v1, v0, v4
iget v1, p0, Lorg/bitcoinj/params/TestNet3Params;->p2shHeader:I
aput v1, v0, v5
iput-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->acceptableAddressCodes:[I
.line 50
const/16 v0, 0xef
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->dumpedPrivateKeyHeader:I
.line 51
iget-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->genesisBlock:Lorg/bitcoinj/core/Block;
const-wide/32 v2, 0x4d49e5da
invoke-virtual {v0, v2, v3}, Lorg/bitcoinj/core/Block;->setTime(J)V
.line 52
iget-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->genesisBlock:Lorg/bitcoinj/core/Block;
invoke-virtual {v0, v8, v9}, Lorg/bitcoinj/core/Block;->setDifficultyTarget(J)V
.line 53
iget-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->genesisBlock:Lorg/bitcoinj/core/Block;
const-wide/32 v2, 0x18aea41a
invoke-virtual {v0, v2, v3}, Lorg/bitcoinj/core/Block;->setNonce(J)V
.line 54
iput v7, p0, Lorg/bitcoinj/params/TestNet3Params;->spendableCoinbaseDepth:I
.line 55
const v0, 0x33450
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->subsidyDecreaseBlockCount:I
.line 56
iget-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->genesisBlock:Lorg/bitcoinj/core/Block;
invoke-virtual {v0}, Lorg/bitcoinj/core/Block;->getHashAsString()Ljava/lang/String;
move-result-object v0
.line 57
const-string v1, "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
invoke-static {v0}, Lcom/google/common/base/n;->checkState(Z)V
.line 58
sget-object v0, Lorg/bitcoinj/core/Utils;->HEX:Lcom/google/common/io/BaseEncoding;
const-string v1, "04302390343f91cc401d56d68b123028bf52e5fca1939df127f63c6467cdf9c8e2c14b61104cf817d0b780da337893ecc4aaff1309e536162dabbdb45200ca2b0a"
invoke-virtual {v0, v1}, Lcom/google/common/io/BaseEncoding;->m(Ljava/lang/CharSequence;)[B
move-result-object v0
iput-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->alertSigningKey:[B
.line 60
const/4 v0, 0x4
new-array v0, v0, [Ljava/lang/String;
const-string v1, "testnet-seed.bitcoin.jonasschnelli.ch"
aput-object v1, v0, v4
const-string v1, "testnet-seed.bluematt.me"
aput-object v1, v0, v5
const-string v1, "testnet-seed.bitcoin.petertodd.org"
aput-object v1, v0, v6
const/4 v1, 0x3
const-string v2, "testnet-seed.bitcoin.schildbach.de"
aput-object v2, v0, v1
iput-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->dnsSeeds:[Ljava/lang/String;
.line 66
const/4 v0, 0x0
iput-object v0, p0, Lorg/bitcoinj/params/TestNet3Params;->addrSeeds:[I
.line 67
const v0, 0x43587cf
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->bip32HeaderPub:I
.line 68
const v0, 0x4358394
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->bip32HeaderPriv:I
.line 70
const/16 v0, 0x33
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->majorityEnforceBlockUpgrade:I
.line 71
const/16 v0, 0x4b
iput v0, p0, Lorg/bitcoinj/params/TestNet3Params;->majorityRejectBlockOutdated:I
.line 72
iput v7, p0, Lorg/bitcoinj/params/TestNet3Params;->majorityWindow:I
.line 73
return-void
.end method
.method public static declared-synchronized get()Lorg/bitcoinj/params/TestNet3Params;
.registers 2
.prologue
.line 77
const-class v1, Lorg/bitcoinj/params/TestNet3Params;
monitor-enter v1
:try_start_3
sget-object v0, Lorg/bitcoinj/params/TestNet3Params;->instance:Lorg/bitcoinj/params/TestNet3Params;
if-nez v0, :cond_e
.line 78
new-instance v0, Lorg/bitcoinj/params/TestNet3Params;
invoke-direct {v0}, Lorg/bitcoinj/params/TestNet3Params;-><init>()V
sput-object v0, Lorg/bitcoinj/params/TestNet3Params;->instance:Lorg/bitcoinj/params/TestNet3Params;
.line 80
:cond_e
sget-object v0, Lorg/bitcoinj/params/TestNet3Params;->instance:Lorg/bitcoinj/params/TestNet3Params;
:try_end_10
.catchall {:try_start_3 .. :try_end_10} :catchall_12
monitor-exit v1
return-object v0
.line 77
:catchall_12
move-exception v0
monitor-exit v1
throw v0
.end method
# virtual methods
.method public checkDifficultyTransitions(Lorg/bitcoinj/core/StoredBlock;Lorg/bitcoinj/core/Block;Lorg/bitcoinj/store/BlockStore;)V
.registers 8
.prologue
.line 94
invoke-virtual {p0, p1}, Lorg/bitcoinj/params/TestNet3Params;->isDifficultyTransitionPoint(Lorg/bitcoinj/core/StoredBlock;)Z
move-result v0
if-nez v0, :cond_a1
invoke-virtual {p2}, Lorg/bitcoinj/core/Block;->getTime()Ljava/util/Date;
move-result-object v0
sget-object v1, Lorg/bitcoinj/params/TestNet3Params;->testnetDiffDate:Ljava/util/Date;
invoke-virtual {v0, v1}, Ljava/util/Date;->after(Ljava/util/Date;)Z
move-result v0
if-eqz v0, :cond_a1
.line 95
invoke-virtual {p1}, Lorg/bitcoinj/core/StoredBlock;->getHeader()Lorg/bitcoinj/core/Block;
move-result-object v0
.line 100
invoke-virtual {p2}, Lorg/bitcoinj/core/Block;->getTimeSeconds()J
move-result-wide v2
invoke-virtual {v0}, Lorg/bitcoinj/core/Block;->getTimeSeconds()J
move-result-wide v0
sub-long v0, v2, v0
.line 103
const-wide/16 v2, 0x0
cmp-long v2, v0, v2
if-ltz v2, :cond_a4
const-wide/16 v2, 0x4b0
cmp-long v0, v0, v2
if-gtz v0, :cond_a4
.line 107
:goto_2c
invoke-virtual {p1}, Lorg/bitcoinj/core/StoredBlock;->getHeader()Lorg/bitcoinj/core/Block;
move-result-object v0
invoke-virtual {p0}, Lorg/bitcoinj/params/TestNet3Params;->getGenesisBlock()Lorg/bitcoinj/core/Block;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/bitcoinj/core/Block;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_5c
.line 108
invoke-virtual {p1}, Lorg/bitcoinj/core/StoredBlock;->getHeight()I
move-result v0
invoke-virtual {p0}, Lorg/bitcoinj/params/TestNet3Params;->getInterval()I
move-result v1
rem-int/2addr v0, v1
if-eqz v0, :cond_5c
.line 109
invoke-virtual {p1}, Lorg/bitcoinj/core/StoredBlock;->getHeader()Lorg/bitcoinj/core/Block;
move-result-object v0
invoke-virtual {v0}, Lorg/bitcoinj/core/Block;->getDifficultyTargetAsInteger()Ljava/math/BigInteger;
move-result-object v0
invoke-virtual {p0}, Lorg/bitcoinj/params/TestNet3Params;->getMaxTarget()Ljava/math/BigInteger;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_5c
.line 110
invoke-virtual {p1, p3}, Lorg/bitcoinj/core/StoredBlock;->getPrev(Lorg/bitcoinj/store/BlockStore;)Lorg/bitcoinj/core/StoredBlock;
move-result-object p1
goto :goto_2c
.line 111
:cond_5c
invoke-virtual {p1}, Lorg/bitcoinj/core/StoredBlock;->getHeader()Lorg/bitcoinj/core/Block;
move-result-object v0
invoke-virtual {v0}, Lorg/bitcoinj/core/Block;->getDifficultyTargetAsInteger()Ljava/math/BigInteger;
move-result-object v0
.line 112
invoke-virtual {p2}, Lorg/bitcoinj/core/Block;->getDifficultyTargetAsInteger()Ljava/math/BigInteger;
move-result-object v1
.line 113
invoke-virtual {v0, v1}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a4
.line 114
new-instance v0, Lorg/bitcoinj/core/VerificationException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Testnet block transition that is not allowed: "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 115
invoke-virtual {p1}, Lorg/bitcoinj/core/StoredBlock;->getHeader()Lorg/bitcoinj/core/Block;
move-result-object v2
invoke-virtual {v2}, Lorg/bitcoinj/core/Block;->getDifficultyTarget()J
move-result-wide v2
invoke-static {v2, v3}, Ljava/lang/Long;->toHexString(J)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " vs "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 116
invoke-virtual {p2}, Lorg/bitcoinj/core/Block;->getDifficultyTarget()J
move-result-wide v2
invoke-static {v2, v3}, Ljava/lang/Long;->toHexString(J)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lorg/bitcoinj/core/VerificationException;-><init>(Ljava/lang/String;)V
throw v0
.line 119
:cond_a1
invoke-super {p0, p1, p2, p3}, Lorg/bitcoinj/params/AbstractBitcoinNetParams;->checkDifficultyTransitions(Lorg/bitcoinj/core/StoredBlock;Lorg/bitcoinj/core/Block;Lorg/bitcoinj/store/BlockStore;)V
.line 121
:cond_a4
return-void
.end method
.method public getPaymentProtocolId()Ljava/lang/String;
.registers 2
.prologue
.line 85
const-string v0, "test"
return-object v0
.end method