Add full monorepo: virtual-banker, backend, frontend, docs, scripts, deployment

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
defiQUG
2026-02-10 11:32:49 -08:00
parent aafcd913c2
commit 88bc76da91
815 changed files with 125522 additions and 264 deletions

View File

@@ -0,0 +1,72 @@
-- Add ISO 8601 compliant timestamp columns to blocks and transactions
-- This migration adds timestamp_iso columns that store ISO 8601 formatted timestamps
-- Add timestamp_iso column to blocks table
ALTER TABLE blocks ADD COLUMN IF NOT EXISTS timestamp_iso VARCHAR(30);
-- Create index for timestamp_iso on blocks
CREATE INDEX IF NOT EXISTS idx_blocks_chain_timestamp_iso ON blocks(chain_id, timestamp_iso);
-- Add timestamp_iso column to transactions table
-- This will be populated from the block timestamp via trigger
ALTER TABLE transactions ADD COLUMN IF NOT EXISTS timestamp_iso VARCHAR(30);
-- Create index for timestamp_iso on transactions
CREATE INDEX IF NOT EXISTS idx_transactions_chain_timestamp_iso ON transactions(chain_id, timestamp_iso);
-- Function to update timestamp_iso from timestamp
CREATE OR REPLACE FUNCTION update_timestamp_iso()
RETURNS TRIGGER AS $$
BEGIN
NEW.timestamp_iso := to_char(NEW.timestamp, 'YYYY-MM-DD"T"HH24:MI:SS"Z"');
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- Trigger to automatically update timestamp_iso when timestamp changes in blocks
DROP TRIGGER IF EXISTS trigger_blocks_timestamp_iso ON blocks;
CREATE TRIGGER trigger_blocks_timestamp_iso
BEFORE INSERT OR UPDATE OF timestamp ON blocks
FOR EACH ROW
EXECUTE FUNCTION update_timestamp_iso();
-- Function to update transaction timestamp_iso from block timestamp
CREATE OR REPLACE FUNCTION update_transaction_timestamp_iso()
RETURNS TRIGGER AS $$
DECLARE
block_timestamp TIMESTAMP;
BEGIN
-- Get the block timestamp
SELECT b.timestamp INTO block_timestamp
FROM blocks b
WHERE b.chain_id = NEW.chain_id AND b.number = NEW.block_number;
-- If block timestamp exists, format it as ISO 8601
IF block_timestamp IS NOT NULL THEN
NEW.timestamp_iso := to_char(block_timestamp, 'YYYY-MM-DD"T"HH24:MI:SS"Z"');
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- Trigger to automatically update timestamp_iso when transaction is inserted/updated
DROP TRIGGER IF EXISTS trigger_transactions_timestamp_iso ON transactions;
CREATE TRIGGER trigger_transactions_timestamp_iso
BEFORE INSERT OR UPDATE OF block_number ON transactions
FOR EACH ROW
EXECUTE FUNCTION update_transaction_timestamp_iso();
-- Backfill existing blocks with ISO timestamps
UPDATE blocks
SET timestamp_iso = to_char(timestamp, 'YYYY-MM-DD"T"HH24:MI:SS"Z"')
WHERE timestamp_iso IS NULL;
-- Backfill existing transactions with ISO timestamps from blocks
UPDATE transactions t
SET timestamp_iso = to_char(b.timestamp, 'YYYY-MM-DD"T"HH24:MI:SS"Z"')
FROM blocks b
WHERE t.chain_id = b.chain_id
AND t.block_number = b.number
AND t.timestamp_iso IS NULL;