Secp256k1Context.smali

.class public Lorg/bitcoin/Secp256k1Context;
.super Ljava/lang/Object;
.source "Secp256k1Context.java"


# static fields
.field private static final context:J

.field private static final enabled:Z

.field private static final log:Lorg/slf4j/Logger;


# direct methods
.method static constructor <clinit>()V
    .registers 5

    .prologue
    const/4 v3, 0x0

    .line 32
    const-class v0, Lorg/bitcoin/Secp256k1Context;

    invoke-static {v0}, Lorg/slf4j/LoggerFactory;->getLogger(Ljava/lang/Class;)Lorg/slf4j/Logger;

    move-result-object v0

    sput-object v0, Lorg/bitcoin/Secp256k1Context;->log:Lorg/slf4j/Logger;

    .line 35
    const/4 v2, 0x1

    .line 36
    const-wide/16 v0, -0x1

    .line 38
    :try_start_c
    const-string v4, "secp256k1"

    invoke-static {v4}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

    .line 39
    invoke-static {}, Lorg/bitcoin/Secp256k1Context;->secp256k1_init_context()J
    :try_end_14
    .catch Ljava/lang/UnsatisfiedLinkError; {:try_start_c .. :try_end_14} :catch_1a
    .catch Ljava/security/AccessControlException; {:try_start_c .. :try_end_14} :catch_26

    move-result-wide v0

    .line 47
    :goto_15
    sput-boolean v2, Lorg/bitcoin/Secp256k1Context;->enabled:Z

    .line 48
    sput-wide v0, Lorg/bitcoin/Secp256k1Context;->context:J

    .line 49
    return-void

    .line 40
    :catch_1a
    move-exception v2

    .line 41
    sget-object v4, Lorg/bitcoin/Secp256k1Context;->log:Lorg/slf4j/Logger;

    invoke-virtual {v2}, Ljava/lang/UnsatisfiedLinkError;->toString()Ljava/lang/String;

    move-result-object v2

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

    move v2, v3

    .line 46
    goto :goto_15

    .line 43
    :catch_26
    move-exception v2

    .line 44
    sget-object v4, Lorg/bitcoin/Secp256k1Context;->log:Lorg/slf4j/Logger;

    invoke-virtual {v2}, Ljava/security/AccessControlException;->toString()Ljava/lang/String;

    move-result-object v2

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

    move v2, v3

    .line 45
    goto :goto_15
.end method

.method public constructor <init>()V
    .registers 1

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

    return-void
.end method

.method public static getContext()J
    .registers 2

    .prologue
    .line 56
    sget-boolean v0, Lorg/bitcoin/Secp256k1Context;->enabled:Z

    if-nez v0, :cond_7

    .line 57
    const-wide/16 v0, -0x1

    .line 58
    :goto_6
    return-wide v0

    :cond_7
    sget-wide v0, Lorg/bitcoin/Secp256k1Context;->context:J

    goto :goto_6
.end method

.method public static isEnabled()Z
    .registers 1

    .prologue
    .line 52
    sget-boolean v0, Lorg/bitcoin/Secp256k1Context;->enabled:Z

    return v0
.end method

.method private static native secp256k1_init_context()J
.end method