-- +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;
|