ScriptBuilder.smali
.class public Lorg/bitcoinj/script/ScriptBuilder;
.super Ljava/lang/Object;
.source "ScriptBuilder.java"
# instance fields
.field private chunks:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Lorg/bitcoinj/script/ScriptChunk;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.registers 2
.prologue
.line 46
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 1232
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
.line 47
iput-object v0, p0, Lorg/bitcoinj/script/ScriptBuilder;->chunks:Ljava/util/List;
.line 48
return-void
.end method
.method public constructor <init>(Lorg/bitcoinj/script/Script;)V
.registers 4
.prologue
.line 51
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 52
new-instance v0, Ljava/util/ArrayList;
invoke-virtual {p1}, Lorg/bitcoinj/script/Script;->getChunks()Ljava/util/List;
move-result-object v1
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
iput-object v0, p0, Lorg/bitcoinj/script/ScriptBuilder;->chunks:Ljava/util/List;
.line 53
return-void
.end method
.method public static createCLTVPaymentChannelInput(Lorg/bitcoinj/crypto/TransactionSignature;Lorg/bitcoinj/crypto/TransactionSignature;)Lorg/bitcoinj/script/Script;
.registers 4
.prologue
.line 478
invoke-virtual {p0}, Lorg/bitcoinj/crypto/TransactionSignature;->encodeToBitcoin()[B
move-result-object v0
invoke-virtual {p1}, Lorg/bitcoinj/crypto/TransactionSignature;->encodeToBitcoin()[B
move-result-object v1
invoke-static {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->createCLTVPaymentChannelInput([B[B)Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createCLTVPaymentChannelInput([B[B)Lorg/bitcoinj/script/Script;
.registers 4
.prologue
.line 482
new-instance v0, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v0}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
.line 483
invoke-virtual {v0, p0}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 484
invoke-virtual {v0, p1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 485
const/4 v1, 0x1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->smallNum(I)Lorg/bitcoinj/script/ScriptBuilder;
.line 486
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createCLTVPaymentChannelOutput(Ljava/math/BigInteger;Lorg/bitcoinj/core/ECKey;Lorg/bitcoinj/core/ECKey;)Lorg/bitcoinj/script/Script;
.registers 6
.prologue
.line 441
const/4 v0, 0x0
invoke-static {p0, v0}, Lorg/bitcoinj/core/Utils;->encodeMPI(Ljava/math/BigInteger;Z)[B
move-result-object v0
invoke-static {v0}, Lorg/bitcoinj/core/Utils;->reverseBytes([B)[B
move-result-object v0
.line 442
array-length v1, v0
const/4 v2, 0x5
if-le v1, v2, :cond_15
.line 443
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Time too large to encode as 5-byte int"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 445
:cond_15
new-instance v1, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v1}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
const/16 v2, 0x63
invoke-virtual {v1, v2}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v1
.line 446
invoke-virtual {p2}, Lorg/bitcoinj/core/ECKey;->getPubKey()[B
move-result-object v2
invoke-virtual {v1, v2}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v1
const/16 v2, 0xad
invoke-virtual {v1, v2}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v1
const/16 v2, 0x67
.line 447
invoke-virtual {v1, v2}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v1
.line 448
invoke-virtual {v1, v0}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
const/16 v1, 0xb1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
const/16 v1, 0x75
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
const/16 v1, 0x68
.line 449
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
.line 450
invoke-virtual {p1}, Lorg/bitcoinj/core/ECKey;->getPubKey()[B
move-result-object v1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
const/16 v1, 0xac
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
.line 445
return-object v0
.end method
.method public static createCLTVPaymentChannelP2SHInput([B[BLorg/bitcoinj/script/Script;)Lorg/bitcoinj/script/Script;
.registers 5
.prologue
.line 469
new-instance v0, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v0}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
.line 470
invoke-virtual {v0, p0}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 471
invoke-virtual {v0, p1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 472
const/4 v1, 0x1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->smallNum(I)Lorg/bitcoinj/script/ScriptBuilder;
.line 473
invoke-virtual {p2}, Lorg/bitcoinj/script/Script;->getProgram()[B
move-result-object v1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 474
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createCLTVPaymentChannelP2SHRefund(Lorg/bitcoinj/crypto/TransactionSignature;Lorg/bitcoinj/script/Script;)Lorg/bitcoinj/script/Script;
.registers 5
.prologue
const/4 v2, 0x0
.line 461
new-instance v0, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v0}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
.line 462
invoke-virtual {p0}, Lorg/bitcoinj/crypto/TransactionSignature;->encodeToBitcoin()[B
move-result-object v1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 463
const/4 v1, 0x1
new-array v1, v1, [B
aput-byte v2, v1, v2
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 464
invoke-virtual {p1}, Lorg/bitcoinj/script/Script;->getProgram()[B
move-result-object v1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 465
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createCLTVPaymentChannelRefund(Lorg/bitcoinj/crypto/TransactionSignature;)Lorg/bitcoinj/script/Script;
.registers 4
.prologue
const/4 v2, 0x0
.line 454
new-instance v0, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v0}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
.line 455
invoke-virtual {p0}, Lorg/bitcoinj/crypto/TransactionSignature;->encodeToBitcoin()[B
move-result-object v1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 456
const/4 v1, 0x1
new-array v1, v1, [B
aput-byte v2, v1, v2
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 457
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createInputScript(Lorg/bitcoinj/crypto/TransactionSignature;)Lorg/bitcoinj/script/Script;
.registers 3
.prologue
.line 258
if-eqz p0, :cond_14
invoke-virtual {p0}, Lorg/bitcoinj/crypto/TransactionSignature;->encodeToBitcoin()[B
move-result-object v0
.line 259
:goto_6
new-instance v1, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v1}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
invoke-virtual {v1, v0}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.line 258
:cond_14
const/4 v0, 0x0
new-array v0, v0, [B
goto :goto_6
.end method
.method public static createInputScript(Lorg/bitcoinj/crypto/TransactionSignature;Lorg/bitcoinj/core/ECKey;)Lorg/bitcoinj/script/Script;
.registers 5
.prologue
.line 248
invoke-virtual {p1}, Lorg/bitcoinj/core/ECKey;->getPubKey()[B
move-result-object v1
.line 249
if-eqz p0, :cond_1c
invoke-virtual {p0}, Lorg/bitcoinj/crypto/TransactionSignature;->encodeToBitcoin()[B
move-result-object v0
.line 250
:goto_a
new-instance v2, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v2}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
invoke-virtual {v2, v0}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.line 249
:cond_1c
const/4 v0, 0x0
new-array v0, v0, [B
goto :goto_a
.end method
.method public static createMultiSigInputScript(Ljava/util/List;)Lorg/bitcoinj/script/Script;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Lorg/bitcoinj/crypto/TransactionSignature;",
">;)",
"Lorg/bitcoinj/script/Script;"
}
.end annotation
.prologue
.line 279
new-instance v1, Ljava/util/ArrayList;
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v0
invoke-direct {v1, v0}, Ljava/util/ArrayList;-><init>(I)V
.line 280
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_d
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_21
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/bitcoinj/crypto/TransactionSignature;
.line 281
invoke-virtual {v0}, Lorg/bitcoinj/crypto/TransactionSignature;->encodeToBitcoin()[B
move-result-object v0
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_d
.line 284
:cond_21
const/4 v0, 0x0
invoke-static {v1, v0}, Lorg/bitcoinj/script/ScriptBuilder;->createMultiSigInputScriptBytes(Ljava/util/List;[B)Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static varargs createMultiSigInputScript([Lorg/bitcoinj/crypto/TransactionSignature;)Lorg/bitcoinj/script/Script;
.registers 2
.prologue
.line 289
invoke-static {p0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
invoke-static {v0}, Lorg/bitcoinj/script/ScriptBuilder;->createMultiSigInputScript(Ljava/util/List;)Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createMultiSigInputScriptBytes(Ljava/util/List;)Lorg/bitcoinj/script/Script;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<[B>;)",
"Lorg/bitcoinj/script/Script;"
}
.end annotation
.prologue
.line 294
const/4 v0, 0x0
invoke-static {p0, v0}, Lorg/bitcoinj/script/ScriptBuilder;->createMultiSigInputScriptBytes(Ljava/util/List;[B)Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createMultiSigInputScriptBytes(Ljava/util/List;[B)Lorg/bitcoinj/script/Script;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<[B>;[B)",
"Lorg/bitcoinj/script/Script;"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 322
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v0
const/16 v2, 0x10
if-gt v0, v2, :cond_29
const/4 v0, 0x1
:goto_a
invoke-static {v0}, Lcom/google/common/base/n;->checkArgument(Z)V
.line 323
new-instance v2, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v2}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
.line 324
invoke-virtual {v2, v1}, Lorg/bitcoinj/script/ScriptBuilder;->smallNum(I)Lorg/bitcoinj/script/ScriptBuilder;
.line 325
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_19
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_2b
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
.line 326
invoke-virtual {v2, v0}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
goto :goto_19
:cond_29
move v0, v1
.line 322
goto :goto_a
.line 327
:cond_2b
if-eqz p1, :cond_30
.line 328
invoke-virtual {v2, p1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 329
:cond_30
invoke-virtual {v2}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createMultiSigOutputScript(ILjava/util/List;)Lorg/bitcoinj/script/Script;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/util/List",
"<",
"Lorg/bitcoinj/core/ECKey;",
">;)",
"Lorg/bitcoinj/script/Script;"
}
.end annotation
.prologue
const/4 v1, 0x1
const/4 v2, 0x0
.line 264
if-lez p0, :cond_3d
move v0, v1
:goto_5
invoke-static {v0}, Lcom/google/common/base/n;->checkArgument(Z)V
.line 265
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
if-gt p0, v0, :cond_3f
move v0, v1
:goto_f
invoke-static {v0}, Lcom/google/common/base/n;->checkArgument(Z)V
.line 266
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
const/16 v3, 0x10
if-gt v0, v3, :cond_41
:goto_1a
invoke-static {v1}, Lcom/google/common/base/n;->checkArgument(Z)V
.line 267
new-instance v1, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v1}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
.line 268
invoke-virtual {v1, p0}, Lorg/bitcoinj/script/ScriptBuilder;->smallNum(I)Lorg/bitcoinj/script/ScriptBuilder;
.line 269
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_29
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_43
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/bitcoinj/core/ECKey;
.line 270
invoke-virtual {v0}, Lorg/bitcoinj/core/ECKey;->getPubKey()[B
move-result-object v0
invoke-virtual {v1, v0}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
goto :goto_29
:cond_3d
move v0, v2
.line 264
goto :goto_5
:cond_3f
move v0, v2
.line 265
goto :goto_f
:cond_41
move v1, v2
.line 266
goto :goto_1a
.line 272
:cond_43
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
invoke-virtual {v1, v0}, Lorg/bitcoinj/script/ScriptBuilder;->smallNum(I)Lorg/bitcoinj/script/ScriptBuilder;
.line 273
const/16 v0, 0xae
invoke-virtual {v1, v0}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
.line 274
invoke-virtual {v1}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createOpReturnScript([B)Lorg/bitcoinj/script/Script;
.registers 3
.prologue
.line 436
array-length v0, p0
const/16 v1, 0x50
if-gt v0, v1, :cond_1d
const/4 v0, 0x1
:goto_6
invoke-static {v0}, Lcom/google/common/base/n;->checkArgument(Z)V
.line 437
new-instance v0, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v0}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
const/16 v1, 0x6a
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
invoke-virtual {v0, p0}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.line 436
:cond_1d
const/4 v0, 0x0
goto :goto_6
.end method
.method public static createOutputScript(Lorg/bitcoinj/core/Address;)Lorg/bitcoinj/script/Script;
.registers 4
.prologue
const/16 v2, 0xa9
.line 219
invoke-virtual {p0}, Lorg/bitcoinj/core/Address;->isP2SHAddress()Z
move-result v0
if-eqz v0, :cond_24
.line 221
new-instance v0, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v0}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
.line 222
invoke-virtual {v0, v2}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
.line 223
invoke-virtual {p0}, Lorg/bitcoinj/core/Address;->getHash160()[B
move-result-object v1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
const/16 v1, 0x87
.line 224
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
.line 225
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
.line 228
:goto_23
return-object v0
:cond_24
new-instance v0, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v0}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
const/16 v1, 0x76
.line 229
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
.line 230
invoke-virtual {v0, v2}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
.line 231
invoke-virtual {p0}, Lorg/bitcoinj/core/Address;->getHash160()[B
move-result-object v1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
const/16 v1, 0x88
.line 232
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
const/16 v1, 0xac
.line 233
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
.line 234
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
goto :goto_23
.end method
.method public static createOutputScript(Lorg/bitcoinj/core/ECKey;)Lorg/bitcoinj/script/Script;
.registers 3
.prologue
.line 240
new-instance v0, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v0}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
invoke-virtual {p0}, Lorg/bitcoinj/core/ECKey;->getPubKey()[B
move-result-object v1
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
const/16 v1, 0xac
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createP2SHMultiSigInputScript(Ljava/util/List;Lorg/bitcoinj/script/Script;)Lorg/bitcoinj/script/Script;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Lorg/bitcoinj/crypto/TransactionSignature;",
">;",
"Lorg/bitcoinj/script/Script;",
")",
"Lorg/bitcoinj/script/Script;"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 303
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 304
if-nez p0, :cond_17
.line 306
invoke-virtual {p1}, Lorg/bitcoinj/script/Script;->getNumberOfSignaturesRequiredToSpend()I
move-result v3
move v0, v1
.line 307
:goto_d
if-ge v0, v3, :cond_2f
.line 308
new-array v4, v1, [B
invoke-interface {v2, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 307
add-int/lit8 v0, v0, 0x1
goto :goto_d
.line 310
:cond_17
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_1b
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_2f
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/bitcoinj/crypto/TransactionSignature;
.line 311
invoke-virtual {v0}, Lorg/bitcoinj/crypto/TransactionSignature;->encodeToBitcoin()[B
move-result-object v0
invoke-interface {v2, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_1b
.line 314
:cond_2f
invoke-virtual {p1}, Lorg/bitcoinj/script/Script;->getProgram()[B
move-result-object v0
invoke-static {v2, v0}, Lorg/bitcoinj/script/ScriptBuilder;->createMultiSigInputScriptBytes(Ljava/util/List;[B)Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createP2SHOutputScript(ILjava/util/List;)Lorg/bitcoinj/script/Script;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/util/List",
"<",
"Lorg/bitcoinj/core/ECKey;",
">;)",
"Lorg/bitcoinj/script/Script;"
}
.end annotation
.prologue
.line 416
invoke-static {p0, p1}, Lorg/bitcoinj/script/ScriptBuilder;->createRedeemScript(ILjava/util/List;)Lorg/bitcoinj/script/Script;
move-result-object v0
.line 417
invoke-static {v0}, Lorg/bitcoinj/script/ScriptBuilder;->createP2SHOutputScript(Lorg/bitcoinj/script/Script;)Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createP2SHOutputScript(Lorg/bitcoinj/script/Script;)Lorg/bitcoinj/script/Script;
.registers 2
.prologue
.line 407
invoke-virtual {p0}, Lorg/bitcoinj/script/Script;->getProgram()[B
move-result-object v0
invoke-static {v0}, Lorg/bitcoinj/core/Utils;->sha256hash160([B)[B
move-result-object v0
.line 408
invoke-static {v0}, Lorg/bitcoinj/script/ScriptBuilder;->createP2SHOutputScript([B)Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static createP2SHOutputScript([B)Lorg/bitcoinj/script/Script;
.registers 3
.prologue
.line 399
array-length v0, p0
const/16 v1, 0x14
if-ne v0, v1, :cond_23
const/4 v0, 0x1
:goto_6
invoke-static {v0}, Lcom/google/common/base/n;->checkArgument(Z)V
.line 400
new-instance v0, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v0}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
const/16 v1, 0xa9
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
invoke-virtual {v0, p0}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
const/16 v1, 0x87
invoke-virtual {v0, v1}, Lorg/bitcoinj/script/ScriptBuilder;->op(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
invoke-virtual {v0}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.line 399
:cond_23
const/4 v0, 0x0
goto :goto_6
.end method
.method public static createRedeemScript(ILjava/util/List;)Lorg/bitcoinj/script/Script;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/util/List",
"<",
"Lorg/bitcoinj/core/ECKey;",
">;)",
"Lorg/bitcoinj/script/Script;"
}
.end annotation
.prologue
.line 425
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0, p1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
.line 426
sget-object v1, Lorg/bitcoinj/core/ECKey;->PUBKEY_COMPARATOR:Ljava/util/Comparator;
invoke-static {v0, v1}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 427
invoke-static {p0, v0}, Lorg/bitcoinj/script/ScriptBuilder;->createMultiSigOutputScript(ILjava/util/List;)Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
.end method
.method public static updateScriptWithSignature(Lorg/bitcoinj/script/Script;[BIII)Lorg/bitcoinj/script/Script;
.registers 15
.prologue
const/4 v4, 0x1
const/4 v2, 0x0
.line 344
new-instance v5, Lorg/bitcoinj/script/ScriptBuilder;
invoke-direct {v5}, Lorg/bitcoinj/script/ScriptBuilder;-><init>()V
.line 345
invoke-virtual {p0}, Lorg/bitcoinj/script/Script;->getChunks()Ljava/util/List;
move-result-object v6
.line 346
invoke-interface {v6}, Ljava/util/List;->size()I
move-result v7
.line 351
sub-int v0, v7, p4
add-int/lit8 v0, v0, -0x1
invoke-interface {v6, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/bitcoinj/script/ScriptChunk;
invoke-virtual {v0, v2}, Lorg/bitcoinj/script/ScriptChunk;->equalsOpCode(I)Z
move-result v0
.line 352
const-string v1, "ScriptSig is already filled with signatures"
invoke-static {v0, v1}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V
.line 355
invoke-interface {v6, v2, p3}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_2a
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_3a
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/bitcoinj/script/ScriptChunk;
.line 356
invoke-virtual {v5, v0}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(Lorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
goto :goto_2a
.line 361
:cond_3a
sub-int v0, v7, p4
invoke-interface {v6, p3, v0}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v8
move v1, v2
move v3, v2
:goto_46
invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_67
invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/bitcoinj/script/ScriptChunk;
.line 362
if-ne v3, p2, :cond_5a
.line 364
invoke-virtual {v5, p1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
.line 365
add-int/lit8 v3, v3, 0x1
move v1, v4
.line 367
:cond_5a
invoke-virtual {v0, v2}, Lorg/bitcoinj/script/ScriptChunk;->equalsOpCode(I)Z
move-result v9
if-nez v9, :cond_a3
.line 368
invoke-virtual {v5, v0}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(Lorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
.line 369
add-int/lit8 v0, v3, 0x1
:goto_65
move v3, v0
.line 371
goto :goto_46
.line 374
:cond_67
:goto_67
sub-int v0, v7, p3
sub-int/2addr v0, p4
if-ge v3, v0, :cond_81
.line 375
if-ne v3, p2, :cond_76
.line 377
invoke-virtual {v5, p1}, Lorg/bitcoinj/script/ScriptBuilder;->data([B)Lorg/bitcoinj/script/ScriptBuilder;
move v0, v4
.line 382
:goto_72
add-int/lit8 v3, v3, 0x1
move v1, v0
goto :goto_67
.line 380
:cond_76
new-instance v0, Lorg/bitcoinj/script/ScriptChunk;
const/4 v8, 0x0
invoke-direct {v0, v2, v8}, Lorg/bitcoinj/script/ScriptChunk;-><init>(I[B)V
invoke-virtual {v5, v0}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(Lorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
move v0, v1
goto :goto_72
.line 386
:cond_81
sub-int v0, v7, p4
invoke-interface {v6, v0, v7}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_8b
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_9b
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/bitcoinj/script/ScriptChunk;
.line 387
invoke-virtual {v5, v0}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(Lorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
goto :goto_8b
.line 389
:cond_9b
invoke-static {v1}, Lcom/google/common/base/n;->checkState(Z)V
.line 390
invoke-virtual {v5}, Lorg/bitcoinj/script/ScriptBuilder;->build()Lorg/bitcoinj/script/Script;
move-result-object v0
return-object v0
:cond_a3
move v0, v3
goto :goto_65
.end method
# virtual methods
.method public addChunk(ILorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
.registers 4
.prologue
.line 62
iget-object v0, p0, Lorg/bitcoinj/script/ScriptBuilder;->chunks:Ljava/util/List;
invoke-interface {v0, p1, p2}, Ljava/util/List;->add(ILjava/lang/Object;)V
.line 63
return-object p0
.end method
.method public addChunk(Lorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
.registers 3
.prologue
.line 57
iget-object v0, p0, Lorg/bitcoinj/script/ScriptBuilder;->chunks:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
invoke-virtual {p0, v0, p1}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(ILorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
return-object v0
.end method
.method protected bigNum(IJ)Lorg/bitcoinj/script/ScriptBuilder;
.registers 14
.prologue
const-wide/16 v8, 0x0
const/4 v2, 0x0
.line 178
cmp-long v0, p2, v8
if-nez v0, :cond_14
.line 179
new-array v0, v2, [B
.line 209
:goto_9
new-instance v1, Lorg/bitcoinj/script/ScriptChunk;
array-length v2, v0
invoke-direct {v1, v2, v0}, Lorg/bitcoinj/script/ScriptChunk;-><init>(I[B)V
invoke-virtual {p0, p1, v1}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(ILorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
return-object v0
.line 181
:cond_14
new-instance v3, Ljava/util/Stack;
invoke-direct {v3}, Ljava/util/Stack;-><init>()V
.line 182
cmp-long v0, p2, v8
if-gez v0, :cond_37
const/4 v0, 0x1
move v1, v0
.line 183
:goto_1f
invoke-static {p2, p3}, Ljava/lang/Math;->abs(J)J
move-result-wide v4
.line 185
:goto_23
cmp-long v0, v4, v8
if-eqz v0, :cond_39
.line 186
const-wide/16 v6, 0xff
and-long/2addr v6, v4
long-to-int v0, v6
int-to-byte v0, v0
invoke-static {v0}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v0
invoke-virtual {v3, v0}, Ljava/util/Stack;->push(Ljava/lang/Object;)Ljava/lang/Object;
.line 187
const/16 v0, 0x8
shr-long/2addr v4, v0
goto :goto_23
:cond_37
move v1, v2
.line 182
goto :goto_1f
.line 190
:cond_39
invoke-virtual {v3}, Ljava/util/Stack;->peek()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Byte;
invoke-virtual {v0}, Ljava/lang/Byte;->byteValue()B
move-result v0
and-int/lit16 v0, v0, 0x80
if-eqz v0, :cond_6d
.line 193
if-eqz v1, :cond_6b
const/16 v0, 0x80
:goto_4b
int-to-byte v0, v0
invoke-static {v0}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v0
invoke-virtual {v3, v0}, Ljava/util/Stack;->push(Ljava/lang/Object;)Ljava/lang/Object;
.line 201
:cond_53
:goto_53
invoke-virtual {v3}, Ljava/util/Stack;->size()I
move-result v0
new-array v1, v0, [B
.line 202
:goto_59
array-length v0, v1
if-ge v2, v0, :cond_84
.line 203
invoke-virtual {v3, v2}, Ljava/util/Stack;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Byte;
invoke-virtual {v0}, Ljava/lang/Byte;->byteValue()B
move-result v0
aput-byte v0, v1, v2
.line 202
add-int/lit8 v2, v2, 0x1
goto :goto_59
:cond_6b
move v0, v2
.line 193
goto :goto_4b
.line 194
:cond_6d
if-eqz v1, :cond_53
.line 198
invoke-virtual {v3}, Ljava/util/Stack;->pop()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Byte;
invoke-virtual {v0}, Ljava/lang/Byte;->byteValue()B
move-result v0
or-int/lit16 v0, v0, 0x80
int-to-byte v0, v0
invoke-static {v0}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v0
invoke-virtual {v3, v0}, Ljava/util/Stack;->push(Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_53
:cond_84
move-object v0, v1
goto :goto_9
.end method
.method protected bigNum(J)Lorg/bitcoinj/script/ScriptBuilder;
.registers 4
.prologue
.line 152
iget-object v0, p0, Lorg/bitcoinj/script/ScriptBuilder;->chunks:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
invoke-virtual {p0, v0, p1, p2}, Lorg/bitcoinj/script/ScriptBuilder;->bigNum(IJ)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
return-object v0
.end method
.method public build()Lorg/bitcoinj/script/Script;
.registers 3
.prologue
.line 214
new-instance v0, Lorg/bitcoinj/script/Script;
iget-object v1, p0, Lorg/bitcoinj/script/ScriptBuilder;->chunks:Ljava/util/List;
invoke-direct {v0, v1}, Lorg/bitcoinj/script/Script;-><init>(Ljava/util/List;)V
return-object v0
.end method
.method public data(I[B)Lorg/bitcoinj/script/ScriptBuilder;
.registers 8
.prologue
const/16 v2, 0x4c
const/4 v1, 0x1
const/4 v0, 0x0
.line 88
array-length v3, p2
invoke-static {p2, v3}, Ljava/util/Arrays;->copyOf([BI)[B
move-result-object v3
.line 90
array-length v4, p2
if-nez v4, :cond_16
.line 107
:goto_c
new-instance v1, Lorg/bitcoinj/script/ScriptChunk;
invoke-direct {v1, v0, v3}, Lorg/bitcoinj/script/ScriptChunk;-><init>(I[B)V
invoke-virtual {p0, p1, v1}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(ILorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
return-object v0
.line 92
:cond_16
array-length v4, p2
if-ne v4, v1, :cond_28
.line 93
aget-byte v0, p2, v0
.line 94
if-lez v0, :cond_26
const/16 v2, 0x10
if-gt v0, v2, :cond_26
.line 95
invoke-static {v0}, Lorg/bitcoinj/script/Script;->encodeToOpN(I)I
move-result v0
goto :goto_c
:cond_26
move v0, v1
.line 98
goto :goto_c
:cond_28
array-length v0, p2
if-ge v0, v2, :cond_2d
.line 99
array-length v0, p2
goto :goto_c
.line 100
:cond_2d
array-length v0, p2
const/16 v1, 0x100
if-ge v0, v1, :cond_34
move v0, v2
.line 101
goto :goto_c
.line 102
:cond_34
array-length v0, p2
const/high16 v1, 0x10000
if-ge v0, v1, :cond_3c
.line 103
const/16 v0, 0x4d
goto :goto_c
.line 105
:cond_3c
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Unimplemented"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public data([B)Lorg/bitcoinj/script/ScriptBuilder;
.registers 3
.prologue
.line 79
array-length v0, p1
if-nez v0, :cond_9
.line 80
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lorg/bitcoinj/script/ScriptBuilder;->smallNum(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
.line 82
:goto_8
return-object v0
:cond_9
iget-object v0, p0, Lorg/bitcoinj/script/ScriptBuilder;->chunks:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
invoke-virtual {p0, v0, p1}, Lorg/bitcoinj/script/ScriptBuilder;->data(I[B)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
goto :goto_8
.end method
.method public number(IJ)Lorg/bitcoinj/script/ScriptBuilder;
.registers 8
.prologue
.line 127
const-wide/16 v0, 0x0
cmp-long v0, p2, v0
if-ltz v0, :cond_1c
const-wide/16 v0, 0x10
cmp-long v0, p2, v0
if-gez v0, :cond_1c
.line 128
new-instance v0, Lorg/bitcoinj/script/ScriptChunk;
long-to-int v1, p2
invoke-static {v1}, Lorg/bitcoinj/script/Script;->encodeToOpN(I)I
move-result v1
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lorg/bitcoinj/script/ScriptChunk;-><init>(I[B)V
invoke-virtual {p0, p1, v0}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(ILorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
.line 130
:goto_1b
return-object v0
:cond_1c
invoke-virtual {p0, p1, p2, p3}, Lorg/bitcoinj/script/ScriptBuilder;->bigNum(IJ)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
goto :goto_1b
.end method
.method public number(J)Lorg/bitcoinj/script/ScriptBuilder;
.registers 6
.prologue
.line 115
const-wide/16 v0, 0x0
cmp-long v0, p1, v0
if-ltz v0, :cond_12
const-wide/16 v0, 0x10
cmp-long v0, p1, v0
if-gez v0, :cond_12
.line 116
long-to-int v0, p1
invoke-virtual {p0, v0}, Lorg/bitcoinj/script/ScriptBuilder;->smallNum(I)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
.line 118
:goto_11
return-object v0
:cond_12
invoke-virtual {p0, p1, p2}, Lorg/bitcoinj/script/ScriptBuilder;->bigNum(J)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
goto :goto_11
.end method
.method public op(I)Lorg/bitcoinj/script/ScriptBuilder;
.registers 3
.prologue
.line 68
iget-object v0, p0, Lorg/bitcoinj/script/ScriptBuilder;->chunks:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
invoke-virtual {p0, v0, p1}, Lorg/bitcoinj/script/ScriptBuilder;->op(II)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
return-object v0
.end method
.method public op(II)Lorg/bitcoinj/script/ScriptBuilder;
.registers 5
.prologue
.line 73
const/16 v0, 0x4e
if-le p2, v0, :cond_13
const/4 v0, 0x1
:goto_5
invoke-static {v0}, Lcom/google/common/base/n;->checkArgument(Z)V
.line 74
new-instance v0, Lorg/bitcoinj/script/ScriptChunk;
const/4 v1, 0x0
invoke-direct {v0, p2, v1}, Lorg/bitcoinj/script/ScriptChunk;-><init>(I[B)V
invoke-virtual {p0, p1, v0}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(ILorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
return-object v0
.line 73
:cond_13
const/4 v0, 0x0
goto :goto_5
.end method
.method public smallNum(I)Lorg/bitcoinj/script/ScriptBuilder;
.registers 3
.prologue
.line 141
iget-object v0, p0, Lorg/bitcoinj/script/ScriptBuilder;->chunks:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
invoke-virtual {p0, v0, p1}, Lorg/bitcoinj/script/ScriptBuilder;->smallNum(II)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
return-object v0
.end method
.method public smallNum(II)Lorg/bitcoinj/script/ScriptBuilder;
.registers 7
.prologue
const/4 v1, 0x1
const/4 v2, 0x0
.line 162
if-ltz p2, :cond_22
move v0, v1
:goto_5
const-string v3, "Cannot encode negative numbers with smallNum"
invoke-static {v0, v3}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V
.line 163
const/16 v0, 0x10
if-gt p2, v0, :cond_24
:goto_e
const-string v0, "Cannot encode numbers larger than 16 with smallNum"
invoke-static {v1, v0}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V
.line 164
new-instance v0, Lorg/bitcoinj/script/ScriptChunk;
invoke-static {p2}, Lorg/bitcoinj/script/Script;->encodeToOpN(I)I
move-result v1
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lorg/bitcoinj/script/ScriptChunk;-><init>(I[B)V
invoke-virtual {p0, p1, v0}, Lorg/bitcoinj/script/ScriptBuilder;->addChunk(ILorg/bitcoinj/script/ScriptChunk;)Lorg/bitcoinj/script/ScriptBuilder;
move-result-object v0
return-object v0
:cond_22
move v0, v2
.line 162
goto :goto_5
:cond_24
move v1, v2
.line 163
goto :goto_e
.end method