|
CREATE TYPE block_event_type AS ENUM ('begin_block', 'end_block', '');
|
|
CREATE TABLE block_events (
|
|
id SERIAL PRIMARY KEY,
|
|
key VARCHAR NOT NULL,
|
|
value VARCHAR NOT NULL,
|
|
height INTEGER NOT NULL,
|
|
type block_event_type,
|
|
created_at TIMESTAMPTZ NOT NULL,
|
|
chain_id VARCHAR NOT NULL,
|
|
UNIQUE (key, height)
|
|
);
|
|
CREATE TABLE tx_results (
|
|
id SERIAL PRIMARY KEY,
|
|
tx_result BYTEA NOT NULL,
|
|
created_at TIMESTAMPTZ NOT NULL,
|
|
UNIQUE (tx_result)
|
|
);
|
|
CREATE TABLE tx_events (
|
|
id SERIAL PRIMARY KEY,
|
|
key VARCHAR NOT NULL,
|
|
value VARCHAR NOT NULL,
|
|
height INTEGER NOT NULL,
|
|
hash VARCHAR NOT NULL,
|
|
tx_result_id SERIAL,
|
|
created_at TIMESTAMPTZ NOT NULL,
|
|
chain_id VARCHAR NOT NULL,
|
|
UNIQUE (hash, key),
|
|
FOREIGN KEY (tx_result_id) REFERENCES tx_results(id) ON DELETE CASCADE
|
|
);
|
|
CREATE INDEX idx_block_events_key_value ON block_events(key, value);
|
|
CREATE INDEX idx_tx_events_key_value ON tx_events(key, value);
|
|
CREATE INDEX idx_tx_events_hash ON tx_events(hash);
|