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    beneficiary_addr BYTEA NOT NULL,
 12    withdraw_addr BYTEA NOT NULL,
 13    url VARCHAR(200) NOT NULL,
 14    PRIMARY KEY (forger_addr, eth_block_num)
 15);
 16
 17CREATE TABLE batch (
 18    batch_num BIGINT PRIMARY KEY,
 19    eth_block_num BIGINT REFERENCES block (eth_block_num) ON DELETE CASCADE,
 20    forger_addr BYTEA NOT NULL, -- fake foreign key for coordinator
 21    fees_collected BYTEA NOT NULL,
 22    state_root BYTEA NOT NULL,
 23    num_accounts BIGINT NOT NULL,
 24    exit_root BYTEA NOT NULL,
 25    forge_l1_txs_num BIGINT,
 26    slot_num BIGINT NOT NULL
 27);
 28
 29CREATE TABLE exit_tree (
 30    batch_num BIGINT REFERENCES batch (batch_num) ON DELETE CASCADE,
 31    account_idx BIGINT,
 32    merkle_proof BYTEA NOT NULL,
 33    amount NUMERIC NOT NULL,
 34    nullifier BYTEA NOT NULL,
 35    PRIMARY KEY (batch_num, account_idx)
 36);
 37
 38CREATE TABLE withdrawal (
 39    batch_num BIGINT,
 40    account_idx BIGINT,
 41    eth_block_num BIGINT REFERENCES block (eth_block_num) ON DELETE CASCADE,
 42    FOREIGN KEY (batch_num, account_idx) REFERENCES exit_tree (batch_num, account_idx) ON DELETE CASCADE,
 43    PRIMARY KEY (batch_num, account_idx)
 44);
 45
 46CREATE TABLE bid (
 47    slot_num BIGINT NOT NULL,
 48    bid_value BYTEA NOT NULL, -- (check if we can do a max(), if not add float for order purposes)
 49    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 50    forger_addr BYTEA NOT NULL, -- fake foreign key for coordinator
 51    PRIMARY KEY (slot_num, bid_value)
 52);
 53
 54CREATE TABLE token (
 55    token_id INT PRIMARY KEY,
 56    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 57    eth_addr BYTEA UNIQUE NOT NULL,
 58    name VARCHAR(20) NOT NULL,
 59    symbol VARCHAR(10) NOT NULL,
 60    decimals INT NOT NULL
 61);
 62
 63CREATE TABLE l1tx (
 64    tx_id BYTEA PRIMARY KEY,
 65    to_forge_l1_txs_num BIGINT NOT NULL,
 66    position INT NOT NULL,
 67    user_origin BOOLEAN NOT NULL,
 68    from_idx BIGINT NOT NULL,
 69    from_eth_addr BYTEA NOT NULL,
 70    from_bjj BYTEA NOT NULL,
 71    to_idx BIGINT NOT NULL,
 72    token_id INT NOT NULL REFERENCES token (token_id),
 73    amount NUMERIC NOT NULL,
 74    load_amount BYTEA NOT NULL,
 75    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE
 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);
 88
 89CREATE TABLE account (
 90    idx BIGINT PRIMARY KEY,
 91    token_id INT NOT NULL REFERENCES token (token_id),
 92    batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
 93    bjj BYTEA NOT NULL,
 94    eth_addr BYTEA NOT NULL
 95);
 96
 97CREATE TABLE rollup_vars (
 98    eth_block_num BIGINT PRIMARY KEY REFERENCES block (eth_block_num) ON DELETE CASCADE,
 99    forge_l1_timeout BYTEA NOT NULL,
100    fee_l1_user_tx BYTEA NOT NULL,
101    fee_add_token BYTEA NOT NULL,
102    tokens_hez BYTEA NOT NULL,
103    governance BYTEA NOT NULL
104);
105
106CREATE TABLE consensus_vars (
107    eth_block_num BIGINT PRIMARY KEY REFERENCES block (eth_block_num) ON DELETE CASCADE,
108    slot_deadline INT NOT NULL,
109    close_auction_slots INT NOT NULL,
110    open_auction_slots INT NOT NULL,
111    min_bid_slots VARCHAR(200) NOT NULL,
112    outbidding INT NOT NULL,
113    donation_address BYTEA NOT NULL,
114    governance_address BYTEA NOT NULL,
115    allocation_ratio vARCHAR(200)
116);
117
118-- +migrate Down
119DROP TABLE consensus_vars;
120DROP TABLE rollup_vars;
121DROP TABLE account;
122DROP TABLE l2tx;
123DROP TABLE l1tx;
124DROP TABLE token;
125DROP TABLE bid;
126DROP TABLE exit_tree;
127DROP TABLE batch;
128DROP TABLE coordianator;
129DROP TABLE block;