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;