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 balance 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 tx_type VARCHAR(40) NOT NULL
77);
78
79CREATE TABLE l2tx (
80 tx_id BYTEA PRIMARY KEY,
81 batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
82 position INT NOT NULL,
83 from_idx BIGINT NOT NULL,
84 to_idx BIGINT NOT NULL,
85 amount NUMERIC NOT NULL,
86 fee INT NOT NULL,
87 nonce BIGINT NOT NULL,
88 tx_type VARCHAR(40) NOT NULL
89);
90
91CREATE TABLE account (
92 idx BIGINT PRIMARY KEY,
93 token_id INT NOT NULL REFERENCES token (token_id),
94 batch_num BIGINT NOT NULL REFERENCES batch (batch_num) ON DELETE CASCADE,
95 bjj BYTEA NOT NULL,
96 eth_addr BYTEA NOT NULL
97);
98
99CREATE TABLE rollup_vars (
100 eth_block_num BIGINT PRIMARY KEY REFERENCES block (eth_block_num) ON DELETE CASCADE,
101 forge_l1_timeout BYTEA NOT NULL,
102 fee_l1_user_tx BYTEA NOT NULL,
103 fee_add_token BYTEA NOT NULL,
104 tokens_hez BYTEA NOT NULL,
105 governance BYTEA NOT NULL
106);
107
108CREATE TABLE consensus_vars (
109 eth_block_num BIGINT PRIMARY KEY REFERENCES block (eth_block_num) ON DELETE CASCADE,
110 slot_deadline INT NOT NULL,
111 close_auction_slots INT NOT NULL,
112 open_auction_slots INT NOT NULL,
113 min_bid_slots VARCHAR(200) NOT NULL,
114 outbidding INT NOT NULL,
115 donation_address BYTEA NOT NULL,
116 governance_address BYTEA NOT NULL,
117 allocation_ratio vARCHAR(200)
118);
119
120-- +migrate Down
121DROP TABLE consensus_vars;
122DROP TABLE rollup_vars;
123DROP TABLE account;
124DROP TABLE l2tx;
125DROP TABLE l1tx;
126DROP TABLE token;
127DROP TABLE bid;
128DROP TABLE exit_tree;
129DROP TABLE batch;
130DROP TABLE coordianator;
131DROP TABLE block;