PaymentChannelClientState$1.smali

.class Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;
.super Ljava/lang/Object;
.source "PaymentChannelClientState.java"

# interfaces
.implements Lorg/bitcoinj/wallet/listeners/WalletCoinsReceivedEventListener;


# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
    value = Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->initWalletListeners()V
.end annotation


# instance fields
.field final synthetic this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;


# direct methods
.method constructor <init>(Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;)V
    .registers 2

    .prologue
    .line 155
    iput-object p1, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

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

    return-void
.end method


# virtual methods
.method public onCoinsReceived(Lorg/bitcoinj/wallet/Wallet;Lorg/bitcoinj/core/Transaction;Lorg/bitcoinj/core/Coin;Lorg/bitcoinj/core/Coin;)V
    .registers 10

    .prologue
    .line 158
    iget-object v1, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

    monitor-enter v1

    .line 159
    :try_start_3
    iget-object v0, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

    invoke-virtual {v0}, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->getContractInternal()Lorg/bitcoinj/core/Transaction;

    move-result-object v0

    if-nez v0, :cond_d

    monitor-exit v1

    .line 169
    :goto_c
    return-void

    .line 160
    :cond_d
    iget-object v0, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

    invoke-virtual {v0, p2}, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->isSettlementTransaction(Lorg/bitcoinj/core/Transaction;)Z

    move-result v0

    if-eqz v0, :cond_50

    .line 161
    # getter for: Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->log:Lorg/slf4j/Logger;
    invoke-static {}, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->access$000()Lorg/slf4j/Logger;

    move-result-object v0

    const-string v2, "Close: transaction {} closed contract {}"

    invoke-virtual {p2}, Lorg/bitcoinj/core/Transaction;->getHash()Lorg/bitcoinj/core/Sha256Hash;

    move-result-object v3

    iget-object v4, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

    invoke-virtual {v4}, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->getContractInternal()Lorg/bitcoinj/core/Transaction;

    move-result-object v4

    invoke-virtual {v4}, Lorg/bitcoinj/core/Transaction;->getHash()Lorg/bitcoinj/core/Sha256Hash;

    move-result-object v4

    invoke-interface {v0, v2, v3, v4}, Lorg/slf4j/Logger;->info(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V

    .line 163
    iget-object v0, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

    iget-object v0, v0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->stateMachine:Lorg/bitcoinj/protocols/channels/StateMachine;

    sget-object v2, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$State;->CLOSED:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$State;

    invoke-virtual {v0, v2}, Lorg/bitcoinj/protocols/channels/StateMachine;->transition(Ljava/lang/Enum;)V

    .line 164
    iget-object v0, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

    iget-object v0, v0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->storedChannel:Lorg/bitcoinj/protocols/channels/StoredClientChannel;

    if-nez v0, :cond_40

    monitor-exit v1

    goto :goto_c

    .line 169
    :catchall_3d
    move-exception v0

    monitor-exit v1
    :try_end_3f
    .catchall {:try_start_3 .. :try_end_3f} :catchall_3d

    throw v0

    .line 165
    :cond_40
    :try_start_40
    iget-object v0, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

    iget-object v0, v0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->storedChannel:Lorg/bitcoinj/protocols/channels/StoredClientChannel;

    iput-object p2, v0, Lorg/bitcoinj/protocols/channels/StoredClientChannel;->close:Lorg/bitcoinj/core/Transaction;

    .line 166
    iget-object v0, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

    invoke-virtual {v0}, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->updateChannelInWallet()V

    .line 167
    iget-object v0, p0, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState$1;->this$0:Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;

    invoke-virtual {v0}, Lorg/bitcoinj/protocols/channels/PaymentChannelClientState;->watchCloseConfirmations()V

    .line 169
    :cond_50
    monitor-exit v1
    :try_end_51
    .catchall {:try_start_40 .. :try_end_51} :catchall_3d

    goto :goto_c
.end method