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