69 lines
1.7 KiB
MySQL
69 lines
1.7 KiB
MySQL
|
-- schema version control
|
||
|
CREATE TABLE version
|
||
|
(
|
||
|
version INTEGER
|
||
|
) STRICT;
|
||
|
INSERT INTO version
|
||
|
VALUES (1);
|
||
|
|
||
|
-- network is the valid network for all other table data
|
||
|
CREATE TABLE network
|
||
|
(
|
||
|
name TEXT UNIQUE NOT NULL
|
||
|
) STRICT;
|
||
|
|
||
|
-- keychain is the json serialized keychain structure as JSONB,
|
||
|
-- descriptor is the complete descriptor string,
|
||
|
-- descriptor_id is a sha256::Hash id of the descriptor string w/o the checksum,
|
||
|
-- last revealed index is a u32
|
||
|
CREATE TABLE keychain
|
||
|
(
|
||
|
keychain BLOB PRIMARY KEY NOT NULL,
|
||
|
descriptor TEXT NOT NULL,
|
||
|
descriptor_id BLOB NOT NULL,
|
||
|
last_revealed INTEGER
|
||
|
) STRICT;
|
||
|
|
||
|
-- hash is block hash hex string,
|
||
|
-- block height is a u32,
|
||
|
CREATE TABLE block
|
||
|
(
|
||
|
hash TEXT PRIMARY KEY NOT NULL,
|
||
|
height INTEGER NOT NULL
|
||
|
) STRICT;
|
||
|
|
||
|
-- txid is transaction hash hex string (reversed)
|
||
|
-- whole_tx is a consensus encoded transaction,
|
||
|
-- last seen is a u64 unix epoch seconds
|
||
|
CREATE TABLE tx
|
||
|
(
|
||
|
txid TEXT PRIMARY KEY NOT NULL,
|
||
|
whole_tx BLOB,
|
||
|
last_seen INTEGER
|
||
|
) STRICT;
|
||
|
|
||
|
-- Outpoint txid hash hex string (reversed)
|
||
|
-- Outpoint vout
|
||
|
-- TxOut value as SATs
|
||
|
-- TxOut script consensus encoded
|
||
|
CREATE TABLE txout
|
||
|
(
|
||
|
txid TEXT NOT NULL,
|
||
|
vout INTEGER NOT NULL,
|
||
|
value INTEGER NOT NULL,
|
||
|
script BLOB NOT NULL,
|
||
|
PRIMARY KEY (txid, vout)
|
||
|
) STRICT;
|
||
|
|
||
|
-- join table between anchor and tx
|
||
|
-- block hash hex string
|
||
|
-- anchor is a json serialized Anchor structure as JSONB,
|
||
|
-- txid is transaction hash hex string (reversed)
|
||
|
CREATE TABLE anchor_tx
|
||
|
(
|
||
|
block_hash TEXT NOT NULL,
|
||
|
anchor BLOB NOT NULL,
|
||
|
txid TEXT NOT NULL REFERENCES tx (txid),
|
||
|
UNIQUE (anchor, txid),
|
||
|
FOREIGN KEY (block_hash) REFERENCES block(hash)
|
||
|
) STRICT;
|