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;