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 slot_min_prices (
  9    eth_block_num BIGINT PRIMARY KEY REFERENCES block (eth_block_num) ON DELETE CASCADE,
 10    min_prices VARCHAR(200) NOT NULL
 11);
 12
 13CREATE TABLE coordianator (
 14    forger_addr BYTEA NOT NULL,
 15    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 16    beneficiary_addr BYTEA NOT NULL,
 17    withdraw_addr BYTEA NOT NULL,
 18    url VARCHAR(200) NOT NULL,
 19    PRIMARY KEY (forger_addr, eth_block_num)
 20);
 21
 22CREATE TABLE batch (
 23    batch_num BIGINT PRIMARY KEY,
 24    eth_block_num BIGINT REFERENCES block (eth_block_num) ON DELETE CASCADE,
 25    forger_addr BYTEA NOT NULL, -- fake foreign key for coordinator
 26    fees_collected BYTEA NOT NULL,
 27    state_root BYTEA NOT NULL,
 28    num_accounts BIGINT NOT NULL,
 29    exit_root BYTEA NOT NULL,
 30    forge_l1_txs_num BIGINT,
 31    slot_num BIGINT NOT NULL
 32);
 33
 34CREATE TABLE exit_tree (
 35    batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
 36    account_idx BIGINT NOT NULL,
 37    merkle_proof BYTEA NOT NULL,
 38    amount NUMERIC NOT NULL,
 39    nullifier BYTEA NOT NULL,
 40    PRIMARY KEY (batch_num, account_idx)
 41);
 42
 43CREATE TABLE bid (
 44    slot_num BIGINT NOT NULL,
 45    bid_value BYTEA NOT NULL, -- (check if we can do a max(), if not add float for order purposes)
 46    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 47    forger_addr BYTEA NOT NULL, -- fake foreign key for coordinator
 48    PRIMARY KEY (slot_num, bid_value)
 49);
 50
 51CREATE TABLE token (
 52    token_id INT PRIMARY KEY,
 53    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 54    eth_addr BYTEA UNIQUE NOT NULL,
 55    name VARCHAR(20) NOT NULL,
 56    symbol VARCHAR(10) NOT NULL,
 57    decimals INT NOT NULL
 58);
 59
 60CREATE TABLE l1tx (
 61    tx_id BYTEA PRIMARY KEY,
 62    to_forge_l1_txs_num BIGINT NOT NULL,
 63    position INT NOT NULL,
 64    user_origin BOOLEAN NOT NULL,
 65    from_idx BIGINT NOT NULL,
 66    from_eth_addr BYTEA NOT NULL,
 67    from_bjj BYTEA NOT NULL,
 68    to_idx BIGINT NOT NULL,
 69    token_id INT NOT NULL REFERENCES token (token_id),
 70    amount NUMERIC NOT NULL,
 71    load_amount BYTEA NOT NULL,
 72    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE
 73);
 74
 75CREATE TABLE l2tx (
 76    tx_id BYTEA PRIMARY KEY,
 77    batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
 78    position INT NOT NULL,
 79    from_idx BIGINT NOT NULL,
 80    to_idx BIGINT NOT NULL,
 81    amount NUMERIC NOT NULL,
 82    fee INT NOT NULL,
 83    nonce BIGINT NOT NULL
 84);
 85
 86CREATE TABLE account (
 87    idx BIGINT PRIMARY KEY,
 88    token_id INT NOT NULL REFERENCES token (token_id),
 89    batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
 90    bjj BYTEA NOT NULL,
 91    eth_addr BYTEA NOT NULL
 92);
 93
 94-- +migrate Down
 95DROP TABLE account;
 96DROP TABLE l2tx;
 97DROP TABLE l1tx;
 98DROP TABLE token;
 99DROP TABLE bid;
100DROP TABLE exit_tree;
101DROP TABLE batch;
102DROP TABLE coordianator;
103DROP TABLE slot_min_prices;
104DROP TABLE block;