-- +migrate Up CREATE TABLE block ( eth_block_num BIGINT PRIMARY KEY, timestamp TIMESTAMP WITHOUT TIME ZONE NOT NULL, hash BYTEA NOT NULL ); CREATE TABLE slot_min_prices ( eth_block_num BIGINT PRIMARY KEY REFERENCES block (eth_block_num) ON DELETE CASCADE, min_prices VARCHAR(200) NOT NULL ); CREATE TABLE coordiantor ( forger_addr BYTEA NOT NULL, eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE, beneficiary_addr BYTEA NOT NULL, withdraw_addr BYTEA NOT NULL, url VARCHAR(200) NOT NULL, PRIMARY KEY (forger_addr, eth_block_num) ); CREATE TABLE batch ( batch_num BIGINT PRIMARY KEY, eth_block_num BIGINT REFERENCES block (eth_block_num) ON DELETE CASCADE, forger_addr BYTEA NOT NULL, -- fake foreign key for coordinator fees_collected BYTEA NOT NULL, state_root BYTEA NOT NULL, num_accounts BIGINT NOT NULL, exit_root BYTEA NOT NULL, forge_l1_txs_num BIGINT, slot_num BIGINT NOT NULL ); CREATE TABLE exit_tree ( batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE, account_idx BIGINT NOT NULL, merkle_proof BYTEA NOT NULL, amount NUMERIC NOT NULL, nullifier BYTEA NOT NULL, PRIMARY KEY (batch_num, account_idx) ); CREATE TABLE bid ( slot_num BIGINT NOT NULL, bid_value BYTEA NOT NULL, -- (check if we can do a max(), if not add float for order purposes) eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE, forger_addr BYTEA NOT NULL, -- fake foreign key for coordinator PRIMARY KEY (slot_num, bid_value) ); CREATE TABLE token ( token_id INT PRIMARY KEY, eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE, eth_addr BYTEA UNIQUE NOT NULL, name VARCHAR(20) NOT NULL, symbol VARCHAR(10) NOT NULL, decimals INT NOT NULL ); CREATE TABLE l1tx ( tx_id BYTEA PRIMARY KEY, from_idx BIGINT NOT NULL, to_idx BIGINT NOT NULL, token_id INT NOT NULL REFERENCES token (token_id), amount NUMERIC NOT NULL, nonce BIGINT NOT NULL, fee INT NOT NULL, eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE, to_forge_l1_txs_num BIGINT NOT NULL, position INT NOT NULL, origin_user BOOLEAN NOT NULL, from_eth_addr BYTEA NOT NULL, from_bjj BYTEA NOT NULL, load_amount BYTEA NOT NULL ); CREATE TABLE l2tx ( tx_id BYTEA PRIMARY KEY, batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE, position INT NOT NULL, from_idx BIGINT NOT NULL, to_idx BIGINT NOT NULL, amount NUMERIC NOT NULL, fee INT NOT NULL, nonce BIGINT NOT NULL ); CREATE TABLE account ( idx BIGINT PRIMARY KEY, token_id INT NOT NULL REFERENCES token (token_id), batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE, bjj BYTEA NOT NULL, eth_addr BYTEA NOT NULL ); -- +migrate Down DROP TABLE account; DROP TABLE l2tx; DROP TABLE l1tx; DROP TABLE token; DROP TABLE bid; DROP TABLE exit_tree; DROP TABLE batch; DROP TABLE coordiantor; DROP TABLE slot_min_prices; DROP TABLE block;