a.smali

.class public final Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;
.super Ljava/lang/Object;
.source "BTCTransactionHelper.java"


# instance fields
.field private RZ:Linfo/blockchain/api/blockexplorer/BlockExplorer;

.field private Sa:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/String;",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field

.field private Sb:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;"
        }
    .end annotation
.end field

.field private Sc:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method public constructor <init>()V
    .registers 2

    .prologue
    .line 38
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 39
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->Sa:Ljava/util/HashMap;

    .line 40
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->Sb:Ljava/util/HashMap;

    .line 41
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->Sc:Ljava/util/HashMap;

    .line 42
    new-instance v0, Linfo/blockchain/api/blockexplorer/BlockExplorer;

    invoke-direct {v0}, Linfo/blockchain/api/blockexplorer/BlockExplorer;-><init>()V

    iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->RZ:Linfo/blockchain/api/blockexplorer/BlockExplorer;

    .line 43
    return-void
.end method

.method private static a(Ljava/util/HashMap;)Ljava/math/BigInteger;
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/String;",
            "Ljava/math/BigInteger;",
            ">;)",
            "Ljava/math/BigInteger;"
        }
    .end annotation

    .prologue
    .line 441
    sget-object v0, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    .line 443
    invoke-virtual {p0}, Ljava/util/HashMap;->values()Ljava/util/Collection;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;

    move-result-object v2

    move-object v1, v0

    :goto_b
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_1d

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/math/BigInteger;

    .line 444
    invoke-virtual {v1, v0}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v0

    move-object v1, v0

    .line 445
    goto :goto_b

    .line 447
    :cond_1d
    return-object v1
.end method

.method private static a(Ljava/util/HashMap;Ljava/util/HashMap;Ljava/math/BigInteger;Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;)Ljava/math/BigInteger;
    .registers 7
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/String;",
            "Ljava/math/BigInteger;",
            ">;",
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/String;",
            "Ljava/math/BigInteger;",
            ">;",
            "Ljava/math/BigInteger;",
            "Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;",
            ")",
            "Ljava/math/BigInteger;"
        }
    .end annotation

    .prologue
    .line 453
    sget-object v0, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    .line 455
    invoke-virtual {p0}, Ljava/util/HashMap;->values()Ljava/util/Collection;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;

    move-result-object v2

    move-object v1, v0

    :goto_b
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_1d

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/math/BigInteger;

    .line 456
    invoke-virtual {v1, v0}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v0

    move-object v1, v0

    .line 457
    goto :goto_b

    .line 459
    :cond_1d
    invoke-virtual {p1}, Ljava/util/HashMap;->values()Ljava/util/Collection;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;

    move-result-object v2

    :goto_25
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_36

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/math/BigInteger;

    .line 460
    invoke-virtual {v1, v0}, Ljava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v1

    goto :goto_25

    .line 463
    :cond_36
    sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->TRANSFERRED:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    if-ne p3, v0, :cond_3e

    .line 464
    invoke-virtual {v1, p2}, Ljava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v1

    .line 467
    :cond_3e
    return-object v1
.end method

.method private a(Ljava/util/ArrayList;Ljava/util/List;Linfo/blockchain/api/data/MultiAddress;)Ljava/util/List;
    .registers 15
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/ArrayList",
            "<",
            "Ljava/lang/String;",
            ">;",
            "Ljava/util/List",
            "<",
            "Ljava/lang/String;",
            ">;",
            "Linfo/blockchain/api/data/MultiAddress;",
            ")",
            "Ljava/util/List",
            "<",
            "Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;",
            ">;"
        }
    .end annotation

    .prologue
    .line 228
    new-instance v2, Ljava/util/ArrayList;

    invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V

    .line 231
    invoke-virtual {p3}, Linfo/blockchain/api/data/MultiAddress;->getAddresses()Ljava/util/ArrayList;

    move-result-object v0

    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v1

    :goto_d
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_3c

    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Linfo/blockchain/api/data/AddressSummary;

    .line 232
    iget-object v3, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->Sb:Ljava/util/HashMap;

    invoke-virtual {v0}, Linfo/blockchain/api/data/AddressSummary;->getAddress()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v0}, Linfo/blockchain/api/data/AddressSummary;->getAccountIndex()I

    move-result v5

    invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v5

    invoke-virtual {v3, v4, v5}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 233
    iget-object v3, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->Sc:Ljava/util/HashMap;

    invoke-virtual {v0}, Linfo/blockchain/api/data/AddressSummary;->getAddress()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v0}, Linfo/blockchain/api/data/AddressSummary;->getChangeIndex()I

    move-result v0

    invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v0

    invoke-virtual {v3, v4, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_d

    .line 236
    :cond_3c
    invoke-virtual {p3}, Linfo/blockchain/api/data/MultiAddress;->getTxs()Ljava/util/ArrayList;

    move-result-object v0

    .line 237
    if-nez v0, :cond_44

    move-object v0, v2

    .line 414
    :goto_43
    return-object v0

    .line 242
    :cond_44
    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :goto_48
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_1d9

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    move-object v1, v0

    check-cast v1, Linfo/blockchain/api/data/Transaction;

    .line 246
    new-instance v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;

    invoke-direct {v4}, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;-><init>()V

    .line 247
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    .line 248
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sw:Ljava/util/HashMap;

    .line 251
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sx:Ljava/util/HashMap;

    .line 252
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sy:Ljava/util/HashMap;

    .line 254
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getResult()Ljava/math/BigInteger;

    move-result-object v0

    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getFee()Ljava/math/BigInteger;

    move-result-object v5

    invoke-virtual {v0, v5}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v0

    invoke-virtual {v0}, Ljava/math/BigInteger;->signum()I

    move-result v0

    if-nez v0, :cond_df

    .line 255
    sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->TRANSFERRED:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 2045
    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Su:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 265
    :goto_8c
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getInputs()Ljava/util/ArrayList;

    move-result-object v0

    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v5

    :cond_94
    :goto_94
    invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_101

    invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Linfo/blockchain/api/data/Input;

    .line 267
    invoke-virtual {v0}, Linfo/blockchain/api/data/Input;->getPrevOut()Linfo/blockchain/api/data/Output;

    move-result-object v0

    .line 268
    if-eqz v0, :cond_94

    .line 270
    invoke-virtual {v0}, Linfo/blockchain/api/data/Output;->getAddr()Ljava/lang/String;

    move-result-object v6

    .line 271
    invoke-virtual {v0}, Linfo/blockchain/api/data/Output;->getValue()Ljava/math/BigInteger;

    move-result-object v7

    .line 272
    if-eqz v6, :cond_f9

    .line 275
    invoke-virtual {v0}, Linfo/blockchain/api/data/Output;->getXpub()Linfo/blockchain/api/data/Xpub;

    move-result-object v0

    .line 276
    if-eqz v0, :cond_c2

    .line 279
    invoke-virtual {p1, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 280
    iget-object v8, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sx:Ljava/util/HashMap;

    invoke-virtual {v0}, Linfo/blockchain/api/data/Xpub;->getM()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v8, v6, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 284
    :cond_c2
    invoke-interface {p2, v6}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    .line 294
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    invoke-virtual {v0, v6}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_f3

    .line 295
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    invoke-virtual {v0, v6}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/math/BigInteger;

    invoke-virtual {v0, v7}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v0

    .line 296
    iget-object v7, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    invoke-virtual {v7, v6, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_94

    .line 256
    :cond_df
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getResult()Ljava/math/BigInteger;

    move-result-object v0

    invoke-virtual {v0}, Ljava/math/BigInteger;->signum()I

    move-result v0

    if-lez v0, :cond_ee

    .line 257
    sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->RECEIVED:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 3045
    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Su:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    goto :goto_8c

    .line 259
    :cond_ee
    sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->SENT:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 4045
    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Su:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    goto :goto_8c

    .line 298
    :cond_f3
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    invoke-virtual {v0, v6, v7}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_94

    .line 303
    :cond_f9
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    const-string v6, "[--address_decode_error--]"

    invoke-virtual {v0, v6, v7}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_94

    .line 311
    :cond_101
    new-instance v5, Ljava/util/HashMap;

    invoke-direct {v5}, Ljava/util/HashMap;-><init>()V

    .line 314
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getOut()Ljava/util/ArrayList;

    move-result-object v0

    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v6

    :cond_10e
    :goto_10e
    invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_183

    invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Linfo/blockchain/api/data/Output;

    .line 316
    invoke-virtual {v0}, Linfo/blockchain/api/data/Output;->getAddr()Ljava/lang/String;

    move-result-object v7

    .line 317
    invoke-virtual {v0}, Linfo/blockchain/api/data/Output;->getValue()Ljava/math/BigInteger;

    move-result-object v8

    .line 318
    if-eqz v7, :cond_10e

    .line 320
    invoke-virtual {v0}, Linfo/blockchain/api/data/Output;->getXpub()Linfo/blockchain/api/data/Xpub;

    move-result-object v0

    .line 321
    if-eqz v0, :cond_14f

    .line 324
    invoke-virtual {p1, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 325
    invoke-virtual {v0}, Linfo/blockchain/api/data/Xpub;->getPath()Ljava/lang/String;

    move-result-object v9

    const-string v10, "M/0/"

    invoke-virtual {v9, v10}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v9

    if-eqz v9, :cond_14b

    .line 326
    iget-object v9, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sw:Ljava/util/HashMap;

    invoke-virtual {v9, v7, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 327
    iget-object v8, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sy:Ljava/util/HashMap;

    invoke-virtual {v0}, Linfo/blockchain/api/data/Xpub;->getM()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v8, v7, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 355
    :goto_147
    invoke-interface {p2, v7}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    goto :goto_10e

    .line 330
    :cond_14b
    invoke-virtual {v5, v7, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_147

    .line 335
    :cond_14f
    invoke-virtual {p1, v7}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_17d

    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    invoke-virtual {v0}, Ljava/util/HashMap;->keySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0, v7}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_17d

    .line 5041
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Su:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 337
    sget-object v9, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->SENT:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    if-ne v0, v9, :cond_16b

    .line 338
    sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->TRANSFERRED:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 5045
    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Su:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 342
    :cond_16b
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    invoke-virtual {v0, v7}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_179

    .line 343
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sw:Ljava/util/HashMap;

    invoke-virtual {v0, v7, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_147

    .line 345
    :cond_179
    invoke-virtual {v5, v7, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_147

    .line 350
    :cond_17d
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sw:Ljava/util/HashMap;

    invoke-virtual {v0, v7, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_147

    .line 376
    :cond_183
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    iget-object v6, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sw:Ljava/util/HashMap;

    .line 6041
    iget-object v7, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Su:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 376
    invoke-static {p1, v0, v6, v7}, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->a(Ljava/util/List;Ljava/util/HashMap;Ljava/util/HashMap;Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;)V

    .line 382
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getHash()Ljava/lang/String;

    move-result-object v0

    .line 7037
    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->hash:Ljava/lang/String;

    .line 383
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getTime()J

    move-result-wide v6

    .line 7053
    iput-wide v6, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->time:J

    .line 384
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->isDoubleSpend()Z

    .line 385
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getFee()Ljava/math/BigInteger;

    move-result-object v0

    .line 7077
    iput-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->fee:Ljava/math/BigInteger;

    .line 8041
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Su:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 387
    sget-object v6, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->RECEIVED:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    if-ne v0, v6, :cond_1cd

    .line 388
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sw:Ljava/util/HashMap;

    invoke-static {v0}, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->a(Ljava/util/HashMap;)Ljava/math/BigInteger;

    .line 400
    :goto_1ac
    invoke-virtual {p3}, Linfo/blockchain/api/data/MultiAddress;->getInfo()Linfo/blockchain/api/data/Info;

    move-result-object v0

    invoke-virtual {v0}, Linfo/blockchain/api/data/Info;->getLatestBlock()Linfo/blockchain/api/data/RawBlock;

    move-result-object v0

    invoke-virtual {v0}, Linfo/blockchain/api/data/RawBlock;->getHeight()J

    .line 401
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getBlockHeight()J

    .line 408
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->Sa:Ljava/util/HashMap;

    .line 9113
    iget-object v1, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sx:Ljava/util/HashMap;

    .line 408
    invoke-virtual {v0, v1}, Ljava/util/HashMap;->putAll(Ljava/util/Map;)V

    .line 409
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->Sa:Ljava/util/HashMap;

    .line 9121
    iget-object v1, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sy:Ljava/util/HashMap;

    .line 409
    invoke-virtual {v0, v1}, Ljava/util/HashMap;->putAll(Ljava/util/Map;)V

    .line 411
    invoke-interface {v2, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto/16 :goto_48

    .line 391
    :cond_1cd
    iget-object v0, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Sv:Ljava/util/HashMap;

    .line 394
    invoke-virtual {v1}, Linfo/blockchain/api/data/Transaction;->getFee()Ljava/math/BigInteger;

    move-result-object v6

    .line 9041
    iget-object v7, v4, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;->Su:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    .line 391
    invoke-static {v0, v5, v6, v7}, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->a(Ljava/util/HashMap;Ljava/util/HashMap;Ljava/math/BigInteger;Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;)Ljava/math/BigInteger;

    goto :goto_1ac

    :cond_1d9
    move-object v0, v2

    .line 414
    goto/16 :goto_43
.end method

.method private static a(Ljava/util/List;Ljava/util/HashMap;Ljava/util/HashMap;Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;)V
    .registers 6
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List",
            "<",
            "Ljava/lang/String;",
            ">;",
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/String;",
            "Ljava/math/BigInteger;",
            ">;",
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/String;",
            "Ljava/math/BigInteger;",
            ">;",
            "Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;",
            ")V"
        }
    .end annotation

    .prologue
    .line 421
    invoke-virtual {p1}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v1

    .line 422
    :cond_8
    :goto_8
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_2a

    .line 423
    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    .line 424
    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v0

    invoke-interface {p0, v0}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_8

    sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->SENT:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    invoke-virtual {p3, v0}, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_8

    .line 425
    invoke-interface {v1}, Ljava/util/Iterator;->remove()V

    goto :goto_8

    .line 429
    :cond_2a
    invoke-virtual {p2}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v1

    .line 430
    :cond_32
    :goto_32
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_54

    .line 431
    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    .line 432
    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v0

    invoke-interface {p0, v0}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_32

    sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->RECEIVED:Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;

    invoke-virtual {p3, v0}, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary$Direction;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_32

    .line 433
    invoke-interface {v1}, Ljava/util/Iterator;->remove()V

    goto :goto_32

    .line 436
    :cond_54
    return-void
.end method


# virtual methods
.method public final c(Ljava/lang/String;II)Ljava/util/List;
    .registers 11
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "II)",
            "Ljava/util/List",
            "<",
            "Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/TransactionSummary;",
            ">;"
        }
    .end annotation

    .prologue
    const/4 v5, 0x1

    const/4 v4, 0x0

    .line 46
    new-instance v1, Ljava/util/ArrayList;

    invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V

    .line 47
    new-instance v6, Ljava/util/ArrayList;

    invoke-direct {v6}, Ljava/util/ArrayList;-><init>()V

    .line 48
    invoke-virtual {v1, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 1066
    const-string v0, "Get transactions. limit %d, offset %d"

    const/4 v2, 0x2

    new-array v2, v2, [Ljava/lang/Object;

    invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v3

    aput-object v3, v2, v4

    invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v3

    aput-object v3, v2, v5

    invoke-static {v0, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    .line 1078
    const-string v0, "Fetching multiaddress for %d accounts/addresses"

    new-array v2, v5, [Ljava/lang/Object;

    invoke-interface {v1}, Ljava/util/List;->size()I

    move-result v3

    invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v3

    aput-object v3, v2, v4

    invoke-static {v0, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    .line 1080
    if-eqz p1, :cond_79

    const-string v0, "all"

    invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_79

    .line 1082
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->RZ:Linfo/blockchain/api/blockexplorer/BlockExplorer;

    const/4 v2, 0x0

    sget-object v3, Linfo/blockchain/api/blockexplorer/FilterType;->RemoveUnspendable:Linfo/blockchain/api/blockexplorer/FilterType;

    invoke-virtual {v3}, Linfo/blockchain/api/blockexplorer/FilterType;->getFilterInt()I

    move-result v3

    move v4, p2

    move v5, p3

    invoke-virtual/range {v0 .. v5}, Linfo/blockchain/api/blockexplorer/BlockExplorer;->getMultiAddress(Ljava/util/List;Ljava/lang/String;III)Lretrofit2/Call;

    move-result-object v0

    invoke-interface {v0}, Lretrofit2/Call;->execute()Lretrofit2/Response;

    move-result-object v0

    .line 1084
    invoke-virtual {v0}, Lretrofit2/Response;->isSuccessful()Z

    move-result v2

    if-eqz v2, :cond_6b

    .line 1085
    invoke-virtual {v0}, Lretrofit2/Response;->body()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Linfo/blockchain/api/data/MultiAddress;

    .line 1069
    :goto_5d
    if-eqz v0, :cond_65

    invoke-virtual {v0}, Linfo/blockchain/api/data/MultiAddress;->getTxs()Ljava/util/ArrayList;

    move-result-object v2

    if-nez v2, :cond_a7

    .line 1070
    :cond_65
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    :goto_6a
    return-object v0

    .line 1087
    :cond_6b
    new-instance v1, Ljava/lang/RuntimeException;

    invoke-virtual {v0}, Lretrofit2/Response;->errorBody()Lokhttp3/aq;

    move-result-object v0

    invoke-virtual {v0}, Lokhttp3/aq;->string()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 1091
    :cond_79
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->RZ:Linfo/blockchain/api/blockexplorer/BlockExplorer;

    sget-object v2, Linfo/blockchain/api/blockexplorer/FilterType;->RemoveUnspendable:Linfo/blockchain/api/blockexplorer/FilterType;

    invoke-virtual {v2}, Linfo/blockchain/api/blockexplorer/FilterType;->getFilterInt()I

    move-result v3

    move-object v2, p1

    move v4, p2

    move v5, p3

    invoke-virtual/range {v0 .. v5}, Linfo/blockchain/api/blockexplorer/BlockExplorer;->getMultiAddress(Ljava/util/List;Ljava/lang/String;III)Lretrofit2/Call;

    move-result-object v0

    invoke-interface {v0}, Lretrofit2/Call;->execute()Lretrofit2/Response;

    move-result-object v0

    .line 1093
    invoke-virtual {v0}, Lretrofit2/Response;->isSuccessful()Z

    move-result v2

    if-eqz v2, :cond_99

    .line 1094
    invoke-virtual {v0}, Lretrofit2/Response;->body()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Linfo/blockchain/api/data/MultiAddress;

    goto :goto_5d

    .line 1096
    :cond_99
    new-instance v1, Ljava/lang/RuntimeException;

    invoke-virtual {v0}, Lretrofit2/Response;->errorBody()Lokhttp3/aq;

    move-result-object v0

    invoke-virtual {v0}, Lokhttp3/aq;->string()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 1073
    :cond_a7
    invoke-direct {p0, v1, v6, v0}, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/a;->a(Ljava/util/ArrayList;Ljava/util/List;Linfo/blockchain/api/data/MultiAddress;)Ljava/util/List;

    move-result-object v0

    goto :goto_6a
.end method