Files
vz-kore-adapter/init.sql
2026-07-04 02:10:41 +00:00

119 lines
3.4 KiB
SQL

-- Vector Zulu KoreID Adapter Schema
-- Extends the existing vz_oracle database on Charlie
-- KoreID sequence table (per spec)
CREATE TABLE IF NOT EXISTS kore_sequence (
mmyy CHAR(4) NOT NULL,
ct CHAR(2) NOT NULL,
t CHAR(1) NOT NULL,
net CHAR(5) NOT NULL,
ccc CHAR(3) NOT NULL,
parent_seq INT NOT NULL DEFAULT 0,
current_seq INT NOT NULL DEFAULT 0,
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
PRIMARY KEY (mmyy, ct, t, net, ccc)
);
-- KoreID GUID registry (per spec)
CREATE TABLE IF NOT EXISTS kore_guid_registry (
guid UUID PRIMARY KEY,
koreid TEXT NOT NULL UNIQUE,
event_type TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
-- Outbound events posted to KoreChain
CREATE TABLE IF NOT EXISTS kore_outbound_events (
id BIGSERIAL PRIMARY KEY,
koreid TEXT NOT NULL UNIQUE,
guid UUID,
event_type TEXT,
currency TEXT,
token_symbol TEXT,
tx_hash TEXT,
amount NUMERIC(28,8),
status TEXT NOT NULL DEFAULT 'PENDING',
response_koreid TEXT,
posted_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_kore_outbound_status ON kore_outbound_events(status);
CREATE INDEX IF NOT EXISTS idx_kore_outbound_tx ON kore_outbound_events(tx_hash);
CREATE INDEX IF NOT EXISTS idx_kore_outbound_posted ON kore_outbound_events(posted_at DESC);
-- Lookup tables (populate with values from Bryan's spec)
CREATE TABLE IF NOT EXISTS kore_id_type (
code CHAR(2) PRIMARY KEY,
name TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS kore_treasury (
code CHAR(1) PRIMARY KEY,
name TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS kore_network (
code CHAR(5) PRIMARY KEY,
name TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS kore_network_current (
code CHAR(8) PRIMARY KEY,
name TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS kore_currency (
code CHAR(3) PRIMARY KEY,
name TEXT NOT NULL
);
-- Seed placeholder values (replace with Bryan's actual codes)
INSERT INTO kore_id_type (code, name) VALUES
('a1', 'MINT'),
('a2', 'BURN'),
('a3', 'TRANSFER'),
('a4', 'RESERVE_UPDATE'),
('a5', 'SWAP'),
('a6', 'ONRAMP'),
('a7', 'OFFRAMP'),
('b1', 'EXTERNAL_RESPONSE'),
('b2', 'VZ_CHILD')
ON CONFLICT DO NOTHING;
INSERT INTO kore_treasury (code, name) VALUES
('1', 'VECTOR_ZULU'),
('2', 'SOVEREIGN_GLOBAL'),
('3', 'KORE_COLLECTIVE'),
('4', 'MERIDIAN')
ON CONFLICT DO NOTHING;
INSERT INTO kore_network (code, name) VALUES
('f4e50', 'KORECHAIN'),
('0a1b0', 'ETHEREUM'),
('03e80', 'AMITIS'),
('00154', 'TRON')
ON CONFLICT DO NOTHING;
INSERT INTO kore_network_current (code, name) VALUES
('0a1b03e8', 'ETHEREUM_MAINNET'),
('03e80015', 'AMITIS_MAINNET'),
('f4e5b231', 'KORECHAIN_MAINNET'),
('001540ab', 'TRON_MAINNET')
ON CONFLICT DO NOTHING;
INSERT INTO kore_currency (code, name) VALUES
('001', 'USD'),
('002', 'GBP'),
('003', 'EUR'),
('004', 'CHF'),
('005', 'JPY'),
('006', 'SGD'),
('010', 'BTC'),
('011', 'ETH'),
('012', 'USDT'),
('013', 'USDC'),
('020', 'GPSC'),
('030', 'AMTS')
ON CONFLICT DO NOTHING;