arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/db/historydb/migrations/001_init.sql
db/historydb/migrations/001_init.sqlRaw
  1-- +migrate Up
  2CREATE TABLE block (
  3    eth_block_num BIGINT PRIMARY KEY,
  4    timestamp TIMESTAMP WITHOUT TIME ZONE NOT NULL,
  5    hash BYTEA NOT NULL
  6);
  7
  8CREATE TABLE coordianator (
  9    forger_addr BYTEA NOT NULL,
 10    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 11    withdraw_addr BYTEA NOT NULL,
 12    url VARCHAR(200) NOT NULL,
 13    PRIMARY KEY (forger_addr, eth_block_num)
 14);
 15
 16CREATE TABLE batch (
 17    batch_num BIGINT PRIMARY KEY,
 18    eth_block_num BIGINT REFERENCES block (eth_block_num) ON DELETE CASCADE,
 19    forger_addr BYTEA NOT NULL, -- fake foreign key for coordinator
 20    fees_collected BYTEA NOT NULL,
 21    state_root BYTEA NOT NULL,
 22    num_accounts BIGINT NOT NULL,
 23    exit_root BYTEA NOT NULL,
 24    forge_l1_txs_num BIGINT,
 25    slot_num BIGINT NOT NULL
 26);
 27
 28CREATE TABLE exit_tree (
 29    batch_num BIGINT REFERENCES batch (batch_num) ON DELETE CASCADE,
 30    account_idx BIGINT,
 31    merkle_proof BYTEA NOT NULL,
 32    balance NUMERIC NOT NULL,
 33    nullifier BYTEA NOT NULL,
 34    PRIMARY KEY (batch_num, account_idx)
 35);
 36
 37CREATE TABLE withdrawal (
 38    batch_num BIGINT,
 39    account_idx BIGINT,
 40    eth_block_num BIGINT REFERENCES block (eth_block_num) ON DELETE CASCADE,
 41    FOREIGN KEY (batch_num, account_idx) REFERENCES exit_tree (batch_num, account_idx) ON DELETE CASCADE,
 42    PRIMARY KEY (batch_num, account_idx)
 43);
 44
 45CREATE TABLE bid (
 46    slot_num BIGINT NOT NULL,
 47    bid_value BYTEA NOT NULL, -- (check if we can do a max(), if not add float for order purposes)
 48    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 49    forger_addr BYTEA NOT NULL, -- fake foreign key for coordinator
 50    PRIMARY KEY (slot_num, bid_value)
 51);
 52
 53CREATE TABLE token (
 54    token_id INT PRIMARY KEY,
 55    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 56    eth_addr BYTEA UNIQUE NOT NULL,
 57    name VARCHAR(20) NOT NULL,
 58    symbol VARCHAR(10) NOT NULL,
 59    decimals INT NOT NULL
 60);
 61
 62CREATE TABLE l1tx (
 63    tx_id BYTEA PRIMARY KEY,
 64    to_forge_l1_txs_num BIGINT NOT NULL,
 65    position INT NOT NULL,
 66    user_origin BOOLEAN NOT NULL,
 67    from_idx BIGINT NOT NULL,
 68    from_eth_addr BYTEA NOT NULL,
 69    from_bjj BYTEA NOT NULL,
 70    to_idx BIGINT NOT NULL,
 71    token_id INT NOT NULL REFERENCES token (token_id),
 72    amount NUMERIC NOT NULL,
 73    load_amount BYTEA NOT NULL,
 74    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 75    tx_type VARCHAR(40) NOT NULL
 76);
 77
 78CREATE TABLE l2tx (
 79    tx_id BYTEA PRIMARY KEY,
 80    batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
 81    position INT NOT NULL,
 82    from_idx BIGINT NOT NULL,
 83    to_idx BIGINT NOT NULL,
 84    amount NUMERIC NOT NULL,
 85    fee INT NOT NULL,
 86    nonce BIGINT NOT NULL,
 87    tx_type VARCHAR(40) NOT NULL
 88);
 89
 90CREATE TABLE account (
 91    idx BIGINT PRIMARY KEY,
 92    token_id INT NOT NULL REFERENCES token (token_id),
 93    batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
 94    bjj BYTEA NOT NULL,
 95    eth_addr BYTEA NOT NULL
 96);
 97
 98CREATE TABLE rollup_vars (
 99    eth_block_num BIGINT PRIMARY KEY REFERENCES block (eth_block_num) ON DELETE CASCADE,
100    forge_l1_timeout BYTEA NOT NULL,
101    fee_l1_user_tx BYTEA NOT NULL,
102    fee_add_token BYTEA NOT NULL,
103    tokens_hez BYTEA NOT NULL,
104    governance BYTEA NOT NULL
105);
106
107CREATE TABLE consensus_vars (
108    eth_block_num BIGINT PRIMARY KEY REFERENCES block (eth_block_num) ON DELETE CASCADE,
109    slot_deadline INT NOT NULL,
110    close_auction_slots INT NOT NULL,
111    open_auction_slots INT NOT NULL,
112    min_bid_slots VARCHAR(200) NOT NULL,
113    outbidding INT NOT NULL,
114    donation_address BYTEA NOT NULL,
115    governance_address BYTEA NOT NULL,
116    allocation_ratio vARCHAR(200)
117);
118
119-- +migrate Down
120DROP TABLE consensus_vars;
121DROP TABLE rollup_vars;
122DROP TABLE account;
123DROP TABLE l2tx;
124DROP TABLE l1tx;
125DROP TABLE token;
126DROP TABLE bid;
127DROP TABLE exit_tree;
128DROP TABLE batch;
129DROP TABLE coordianator;
130DROP TABLE block;