MySQLFullPrunedBlockStore.smali

.class public Lorg/bitcoinj/store/MySQLFullPrunedBlockStore;
.super Lorg/bitcoinj/store/DatabaseFullPrunedBlockStore;
.source "MySQLFullPrunedBlockStore.java"


# static fields
.field private static final CREATE_HEADERS_TABLE:Ljava/lang/String; = "CREATE TABLE headers (\n    hash varbinary(28) NOT NULL,\n    chainwork varbinary(12) NOT NULL,\n    height integer NOT NULL,\n    header varbinary(80) NOT NULL,\n    wasundoable tinyint(1) NOT NULL,\n    CONSTRAINT headers_pk PRIMARY KEY (hash) USING BTREE \n)"

.field private static final CREATE_OPEN_OUTPUT_TABLE:Ljava/lang/String; = "CREATE TABLE openoutputs (\n    hash varbinary(32) NOT NULL,\n    `index` integer NOT NULL,\n    height integer NOT NULL,\n    value bigint NOT NULL,\n    scriptbytes mediumblob NOT NULL,\n    toaddress varchar(35),\n    addresstargetable tinyint(1),\n    coinbase boolean,\n    CONSTRAINT openoutputs_pk PRIMARY KEY (hash, `index`) USING BTREE \n)\n"

.field private static final CREATE_OUTPUTS_ADDRESSTARGETABLE_INDEX:Ljava/lang/String; = "CREATE INDEX openoutputs_addresstargetable_idx ON openoutputs (addresstargetable) USING btree"

.field private static final CREATE_OUTPUTS_ADDRESS_MULTI_INDEX:Ljava/lang/String; = "CREATE INDEX openoutputs_hash_index_height_toaddress_idx ON openoutputs (hash, `index`, height, toaddress) USING btree"

.field private static final CREATE_OUTPUTS_HASH_INDEX:Ljava/lang/String; = "CREATE INDEX openoutputs_hash_idx ON openoutputs (hash) USING btree"

.field private static final CREATE_OUTPUTS_TOADDRESS_INDEX:Ljava/lang/String; = "CREATE INDEX openoutputs_toaddress_idx ON openoutputs (toaddress) USING btree"

.field private static final CREATE_SETTINGS_TABLE:Ljava/lang/String; = "CREATE TABLE settings (\n    name varchar(32) NOT NULL,\n    value blob,\n    CONSTRAINT setting_pk PRIMARY KEY (name)  \n)\n"

.field private static final CREATE_UNDOABLE_TABLE:Ljava/lang/String; = "CREATE TABLE undoableblocks (\n    hash varbinary(28) NOT NULL,\n    height integer NOT NULL,\n    txoutchanges mediumblob,\n    transactions mediumblob,\n    CONSTRAINT undoableblocks_pk PRIMARY KEY (hash) USING BTREE \n)\n"

.field private static final CREATE_UNDOABLE_TABLE_INDEX:Ljava/lang/String; = "CREATE INDEX undoableblocks_height_idx ON undoableblocks (height) USING btree"

.field private static final DATABASE_CONNECTION_URL_PREFIX:Ljava/lang/String; = "jdbc:mysql://"

.field private static final DATABASE_DRIVER_CLASS:Ljava/lang/String; = "com.mysql.jdbc.Driver"

.field private static final DELETE_OPENOUTPUTS_SQL:Ljava/lang/String; = "DELETE FROM openoutputs WHERE hash = ? AND `index`= ?"

.field private static final INSERT_OPENOUTPUTS_SQL:Ljava/lang/String; = "INSERT INTO openoutputs (hash, `index`, height, value, scriptbytes, toaddress, addresstargetable, coinbase) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"

.field private static final MYSQL_DUPLICATE_KEY_ERROR_CODE:Ljava/lang/String; = "23000"

.field private static final SELECT_OPENOUTPUTS_SQL:Ljava/lang/String; = "SELECT height, value, scriptbytes, coinbase, toaddress, addresstargetable FROM openoutputs WHERE hash = ? AND `index` = ?"

.field private static final SELECT_TRANSACTION_OUTPUTS_SQL:Ljava/lang/String; = "SELECT hash, value, scriptbytes, height, `index`, coinbase, toaddress, addresstargetable FROM openoutputs where toaddress = ?"


# direct methods
.method public constructor <init>(Lorg/bitcoinj/core/NetworkParameters;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    .registers 14

    .prologue
    .line 98
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "jdbc:mysql://"

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

    invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string v1, "/"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    const/4 v6, 0x0

    move-object v0, p0

    move-object v1, p1

    move v3, p2

    move-object v4, p5

    move-object v5, p6

    invoke-direct/range {v0 .. v6}, Lorg/bitcoinj/store/DatabaseFullPrunedBlockStore;-><init>(Lorg/bitcoinj/core/NetworkParameters;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    .line 99
    return-void
.end method


# virtual methods
.method protected getCreateIndexesSQL()Ljava/util/List;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List",
            "<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .prologue
    .line 138
    new-instance v0, Ljava/util/ArrayList;

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

    .line 139
    const-string v1, "CREATE INDEX undoableblocks_height_idx ON undoableblocks (height) USING btree"

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

    .line 140
    const-string v1, "CREATE INDEX openoutputs_hash_index_height_toaddress_idx ON openoutputs (hash, `index`, height, toaddress) USING btree"

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

    .line 141
    const-string v1, "CREATE INDEX openoutputs_addresstargetable_idx ON openoutputs (addresstargetable) USING btree"

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

    .line 142
    const-string v1, "CREATE INDEX openoutputs_hash_idx ON openoutputs (hash) USING btree"

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

    .line 143
    const-string v1, "CREATE INDEX openoutputs_toaddress_idx ON openoutputs (toaddress) USING btree"

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

    .line 144
    return-object v0
.end method

.method protected getCreateSchemeSQL()Ljava/util/List;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List",
            "<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .prologue
    .line 150
    invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method protected getCreateTablesSQL()Ljava/util/List;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List",
            "<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .prologue
    .line 128
    new-instance v0, Ljava/util/ArrayList;

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

    .line 129
    const-string v1, "CREATE TABLE settings (\n    name varchar(32) NOT NULL,\n    value blob,\n    CONSTRAINT setting_pk PRIMARY KEY (name)  \n)\n"

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

    .line 130
    const-string v1, "CREATE TABLE headers (\n    hash varbinary(28) NOT NULL,\n    chainwork varbinary(12) NOT NULL,\n    height integer NOT NULL,\n    header varbinary(80) NOT NULL,\n    wasundoable tinyint(1) NOT NULL,\n    CONSTRAINT headers_pk PRIMARY KEY (hash) USING BTREE \n)"

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

    .line 131
    const-string v1, "CREATE TABLE undoableblocks (\n    hash varbinary(28) NOT NULL,\n    height integer NOT NULL,\n    txoutchanges mediumblob,\n    transactions mediumblob,\n    CONSTRAINT undoableblocks_pk PRIMARY KEY (hash) USING BTREE \n)\n"

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

    .line 132
    const-string v1, "CREATE TABLE openoutputs (\n    hash varbinary(32) NOT NULL,\n    `index` integer NOT NULL,\n    height integer NOT NULL,\n    value bigint NOT NULL,\n    scriptbytes mediumblob NOT NULL,\n    toaddress varchar(35),\n    addresstargetable tinyint(1),\n    coinbase boolean,\n    CONSTRAINT openoutputs_pk PRIMARY KEY (hash, `index`) USING BTREE \n)\n"

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

    .line 133
    return-object v0
.end method

.method protected getDatabaseDriverClass()Ljava/lang/String;
    .registers 2

    .prologue
    .line 155
    const-string v0, "com.mysql.jdbc.Driver"

    return-object v0
.end method

.method protected getDeleteOpenoutputsSQL()Ljava/lang/String;
    .registers 2

    .prologue
    .line 118
    const-string v0, "DELETE FROM openoutputs WHERE hash = ? AND `index`= ?"

    return-object v0
.end method

.method protected getDuplicateKeyErrorCode()Ljava/lang/String;
    .registers 2

    .prologue
    .line 103
    const-string v0, "23000"

    return-object v0
.end method

.method protected getInsertOpenoutputsSQL()Ljava/lang/String;
    .registers 2

    .prologue
    .line 113
    const-string v0, "INSERT INTO openoutputs (hash, `index`, height, value, scriptbytes, toaddress, addresstargetable, coinbase) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"

    return-object v0
.end method

.method protected getSelectOpenoutputsSQL()Ljava/lang/String;
    .registers 2

    .prologue
    .line 108
    const-string v0, "SELECT height, value, scriptbytes, coinbase, toaddress, addresstargetable FROM openoutputs WHERE hash = ? AND `index` = ?"

    return-object v0
.end method

.method protected getTrasactionOutputSelectSQL()Ljava/lang/String;
    .registers 2

    .prologue
    .line 123
    const-string v0, "SELECT hash, value, scriptbytes, height, `index`, coinbase, toaddress, addresstargetable FROM openoutputs where toaddress = ?"

    return-object v0
.end method