a.smali
.class public final Lcom/cmcm/safewallet/data/coinprovider/eth/a;
.super Ljava/lang/Object;
.source "ETHExportProviderImpl.java"
# interfaces
.implements Lcom/cmcm/safewallet/data/c/c;
# instance fields
.field private TJ:Lorg/ethereum/geth/KeyStore;
# direct methods
.method public constructor <init>()V
.registers 7
.prologue
.line 28
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 29
new-instance v1, Ljava/io/File;
invoke-static {}, Lcom/cmcm/safewallet/entry/WalletApp;->lO()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v0
const-string v2, "store"
invoke-direct {v1, v0, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 30
new-instance v0, Lorg/ethereum/geth/KeyStore;
invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v1
const-wide/16 v2, 0x1000
const-wide/16 v4, 0x6
invoke-direct/range {v0 .. v5}, Lorg/ethereum/geth/KeyStore;-><init>(Ljava/lang/String;JJ)V
iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/eth/a;->TJ:Lorg/ethereum/geth/KeyStore;
.line 31
return-void
.end method
.method private aP(Ljava/lang/String;)Lorg/ethereum/geth/Account;
.registers 8
.prologue
.line 88
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/eth/a;->TJ:Lorg/ethereum/geth/KeyStore;
invoke-virtual {v0}, Lorg/ethereum/geth/KeyStore;->getAccounts()Lorg/ethereum/geth/Accounts;
move-result-object v1
.line 89
invoke-virtual {v1}, Lorg/ethereum/geth/Accounts;->size()J
move-result-wide v2
long-to-int v2, v2
.line 90
const/4 v0, 0x0
:goto_c
if-ge v0, v2, :cond_42
.line 92
:try_start_e
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "Address: "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
int-to-long v4, v0
invoke-virtual {v1, v4, v5}, Lorg/ethereum/geth/Accounts;->get(J)Lorg/ethereum/geth/Account;
move-result-object v4
invoke-virtual {v4}, Lorg/ethereum/geth/Account;->getAddress()Lorg/ethereum/geth/Address;
move-result-object v4
invoke-virtual {v4}, Lorg/ethereum/geth/Address;->getHex()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 93
int-to-long v4, v0
invoke-virtual {v1, v4, v5}, Lorg/ethereum/geth/Accounts;->get(J)Lorg/ethereum/geth/Account;
move-result-object v3
invoke-virtual {v3}, Lorg/ethereum/geth/Account;->getAddress()Lorg/ethereum/geth/Address;
move-result-object v3
invoke-virtual {v3}, Lorg/ethereum/geth/Address;->getHex()Ljava/lang/String;
move-result-object v3
invoke-virtual {v3, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_3f
.line 94
int-to-long v4, v0
invoke-virtual {v1, v4, v5}, Lorg/ethereum/geth/Accounts;->get(J)Lorg/ethereum/geth/Account;
:try_end_3c
.catch Ljava/lang/Exception; {:try_start_e .. :try_end_3c} :catch_3e
move-result-object v0
return-object v0
:catch_3e
move-exception v3
.line 90
:cond_3f
add-int/lit8 v0, v0, 0x1
goto :goto_c
.line 100
:cond_42
new-instance v0, Lcom/google/protobuf/ServiceException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Wallet with address: "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " not found"
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}, Lcom/google/protobuf/ServiceException;-><init>(Ljava/lang/String;)V
throw v0
.end method
# virtual methods
.method public final c(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 7
.prologue
.line 47
:try_start_0
invoke-direct {p0, p3}, Lcom/cmcm/safewallet/data/coinprovider/eth/a;->aP(Ljava/lang/String;)Lorg/ethereum/geth/Account;
move-result-object v1
.line 48
new-instance v0, Ljava/lang/String;
iget-object v2, p0, Lcom/cmcm/safewallet/data/coinprovider/eth/a;->TJ:Lorg/ethereum/geth/KeyStore;
invoke-virtual {v2, v1, p1, p2}, Lorg/ethereum/geth/KeyStore;->exportKey(Lorg/ethereum/geth/Account;Ljava/lang/String;Ljava/lang/String;)[B
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([B)V
:try_end_f
.catch Lcom/google/protobuf/ServiceException; {:try_start_0 .. :try_end_f} :catch_10
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_f} :catch_16
.line 55
:goto_f
return-object v0
.line 51
:catch_10
move-exception v0
invoke-virtual {v0}, Lcom/google/protobuf/ServiceException;->printStackTrace()V
.line 55
:goto_14
const/4 v0, 0x0
goto :goto_f
.line 53
:catch_16
move-exception v0
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_14
.end method
.method public final r(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 7
.prologue
.line 61
:try_start_0
invoke-static {}, Lcom/cmcm/safewallet/data/coinprovider/a/a;->iE()Lcom/cmcm/safewallet/data/coinprovider/a/a;
move-result-object v0
invoke-virtual {v0, p1, p2}, Lcom/cmcm/safewallet/data/coinprovider/a/a;->B(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 63
invoke-static {v0}, Lcom/cmcm/safewallet/utils/an;->ew(Ljava/lang/String;)[B
move-result-object v1
.line 64
array-length v2, v1
const/16 v3, 0x21
if-ne v2, v3, :cond_1b
.line 65
const/4 v0, 0x1
array-length v2, v1
invoke-static {v1, v0, v2}, Ljava/util/Arrays;->copyOfRange([BII)[B
move-result-object v0
.line 66
invoke-static {v0}, Lcom/cmcm/safewallet/utils/an;->S([B)Ljava/lang/String;
:try_end_1a
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1a} :catch_1c
move-result-object v0
.line 73
:cond_1b
:goto_1b
return-object v0
.line 71
:catch_1c
move-exception v0
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
.line 73
const/4 v0, 0x0
goto :goto_1b
.end method
.method public final s(Ljava/lang/String;Ljava/lang/String;)Z
.registers 4
.prologue
.line 79
:try_start_0
invoke-static {}, Lcom/cmcm/safewallet/data/coinprovider/a/a;->iE()Lcom/cmcm/safewallet/data/coinprovider/a/a;
move-result-object v0
invoke-virtual {v0, p2}, Lcom/cmcm/safewallet/data/coinprovider/a/a;->aA(Ljava/lang/String;)Z
:try_end_7
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_7} :catch_9
move-result v0
.line 83
:goto_8
return v0
.line 81
:catch_9
move-exception v0
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
.line 83
const/4 v0, 0x0
goto :goto_8
.end method