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;