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 coordiantor (
 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    from_idx BIGINT NOT NULL,
 63    to_idx BIGINT NOT NULL,
 64    token_id INT NOT NULL REFERENCES token (token_id),
 65    amount NUMERIC NOT NULL,
 66    nonce BIGINT NOT NULL,
 67    fee INT NOT NULL,
 68    eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
 69    to_forge_l1_txs_num BIGINT NOT NULL,
 70    position INT NOT NULL,
 71    origin_user BOOLEAN NOT NULL,
 72    from_eth_addr BYTEA NOT NULL,
 73    from_bjj BYTEA NOT NULL,
 74    load_amount BYTEA NOT NULL
 75);
 76
 77CREATE TABLE l2tx (
 78    tx_id BYTEA PRIMARY KEY,
 79    batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
 80    position INT NOT NULL,
 81    from_idx BIGINT NOT NULL,
 82    to_idx BIGINT NOT NULL,
 83    amount NUMERIC NOT NULL,
 84    fee INT NOT NULL,
 85    nonce BIGINT NOT NULL
 86);
 87
 88CREATE TABLE account (
 89    idx BIGINT PRIMARY KEY,
 90    token_id INT NOT NULL REFERENCES token (token_id),
 91    batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
 92    bjj BYTEA NOT NULL,
 93    eth_addr BYTEA NOT NULL
 94);
 95
 96-- +migrate Down
 97DROP TABLE account;
 98DROP TABLE l2tx;
 99DROP TABLE l1tx;
100DROP TABLE token;
101DROP TABLE bid;
102DROP TABLE exit_tree;
103DROP TABLE batch;
104DROP TABLE coordiantor;
105DROP TABLE slot_min_prices;
106DROP TABLE block;