69 lines
1.7 KiB
SQL
69 lines
1.7 KiB
SQL
-- 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; |