Spaces:
Runtime error
Runtime error
| -- schema.sql | |
| PRAGMA journal_mode=WAL; | |
| PRAGMA synchronous=NORMAL; | |
| CREATE TABLE IF NOT EXISTS meta ( | |
| key TEXT PRIMARY KEY, | |
| value TEXT | |
| ); | |
| -- Raw on-chain logs | |
| CREATE TABLE IF NOT EXISTS raw_logs ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| tx_hash TEXT NOT NULL, | |
| log_index INTEGER NOT NULL, | |
| block_number INTEGER NOT NULL, | |
| address TEXT NOT NULL, | |
| topics TEXT, -- JSON array string | |
| data TEXT, | |
| block_time INTEGER, -- unix epoch from block header | |
| received_at INTEGER, | |
| UNIQUE(tx_hash, log_index) | |
| ); | |
| -- Normalized ERC-20 transfers (POL only or all, your call) | |
| CREATE TABLE IF NOT EXISTS transfers ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| tx_hash TEXT NOT NULL, | |
| block_number INTEGER NOT NULL, | |
| log_index INTEGER NOT NULL, | |
| block_time INTEGER NOT NULL, | |
| from_address TEXT NOT NULL, | |
| to_address TEXT NOT NULL, | |
| amount_raw TEXT NOT NULL, -- 256-bit safe (store as decimal string) | |
| amount_dec TEXT NOT NULL, -- decimal string normalized | |
| token_address TEXT NOT NULL, | |
| received_at INTEGER, | |
| UNIQUE(tx_hash, log_index) | |
| ); | |
| CREATE INDEX IF NOT EXISTS idx_transfers_block ON transfers(block_number); | |
| CREATE INDEX IF NOT EXISTS idx_transfers_from ON transfers(from_address); | |
| CREATE INDEX IF NOT EXISTS idx_transfers_to ON transfers(to_address); | |
| CREATE INDEX IF NOT EXISTS idx_transfers_token ON transfers(token_address); | |
| -- Append-only snapshots; one row per update tick | |
| CREATE TABLE IF NOT EXISTS netflow ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| created_at INTEGER NOT NULL, -- unix epoch | |
| cumulative_value TEXT NOT NULL -- decimal string (POL units) | |
| ); | |
| -- Optional future multi-exchange support | |
| CREATE TABLE IF NOT EXISTS exchange_addresses ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| exchange_name TEXT NOT NULL, | |
| address TEXT NOT NULL, | |
| UNIQUE(exchange_name, address) | |
| ); | |
| CREATE INDEX IF NOT EXISTS idx_exaddr_exchange ON exchange_addresses(exchange_name); | |