github.com/0xPolygon/supernets2-node@v0.0.0-20230711153321-2fe574524eaa/db/migrations/state/0001.sql (about) 1 -- +migrate Down 2 DROP SCHEMA IF EXISTS state CASCADE; 3 4 -- +migrate Up 5 CREATE SCHEMA state; 6 7 CREATE TABLE state.block 8 ( --L1 block 9 block_num BIGINT PRIMARY KEY, 10 block_hash VARCHAR NOT NULL, 11 parent_hash VARCHAR, 12 received_at TIMESTAMP WITH TIME ZONE NOT NULL 13 ); 14 15 CREATE TABLE state.forced_batch 16 ( 17 forced_batch_num BIGINT PRIMARY KEY, 18 global_exit_root VARCHAR, 19 timestamp TIMESTAMP WITH TIME ZONE NOT NULL, 20 raw_txs_data VARCHAR, 21 coinbase VARCHAR, 22 block_num BIGINT NOT NULL REFERENCES state.block (block_num) ON DELETE CASCADE 23 ); 24 25 CREATE TABLE state.batch 26 ( --batch abstraction: will be created through trusted state 27 batch_num BIGINT PRIMARY KEY, 28 global_exit_root VARCHAR, 29 local_exit_root VARCHAR, 30 state_root VARCHAR, 31 acc_input_hash VARCHAR, 32 timestamp TIMESTAMP WITH TIME ZONE, 33 coinbase VARCHAR, 34 raw_txs_data BYTEA, 35 forced_batch_num BIGINT REFERENCES state.forced_batch(forced_batch_num) 36 ); 37 38 CREATE TABLE state.virtual_batch 39 ( --virtual state 40 batch_num BIGINT PRIMARY KEY REFERENCES state.batch (batch_num) ON DELETE CASCADE, 41 tx_hash VARCHAR, 42 coinbase VARCHAR, 43 block_num BIGINT NOT NULL REFERENCES state.block (block_num) ON DELETE CASCADE 44 ); 45 46 CREATE TABLE state.verified_batch 47 ( --consolidated state 48 batch_num BIGINT PRIMARY KEY REFERENCES state.virtual_batch (batch_num) ON DELETE CASCADE, 49 tx_hash VARCHAR, 50 aggregator VARCHAR, 51 state_root VARCHAR, 52 block_num BIGINT NOT NULL REFERENCES state.block (block_num) ON DELETE CASCADE, 53 is_trusted BOOLEAN DEFAULT true 54 ); 55 56 CREATE TABLE state.l2block 57 ( 58 block_num BIGINT PRIMARY KEY, 59 block_hash VARCHAR NOT NULL, 60 header jsonb, 61 uncles jsonb, 62 parent_hash VARCHAR, 63 state_root VARCHAR, 64 received_at TIMESTAMP WITH TIME ZONE NOT NULL, 65 created_at TIMESTAMP WITH TIME ZONE NOT NULL, 66 batch_num BIGINT NOT NULL REFERENCES state.batch (batch_num) ON DELETE CASCADE 67 ); 68 69 CREATE TABLE state.transaction 70 ( 71 hash VARCHAR PRIMARY KEY, 72 encoded VARCHAR NOT NULL, 73 decoded jsonb, 74 l2_block_num BIGINT NOT NULL REFERENCES state.l2block (block_num) ON DELETE CASCADE 75 ); 76 77 CREATE TABLE state.exit_root 78 ( 79 id SERIAL PRIMARY KEY, 80 block_num BIGINT NOT NULL REFERENCES state.block (block_num) ON DELETE CASCADE, 81 timestamp TIMESTAMP WITH TIME ZONE NOT NULL, 82 mainnet_exit_root BYTEA, 83 rollup_exit_root BYTEA, 84 global_exit_root BYTEA 85 ); 86 87 CREATE TABLE state.sync_info 88 ( 89 last_batch_num_seen BIGINT, 90 last_batch_num_consolidated BIGINT, 91 init_sync_batch BIGINT 92 ); 93 94 -- Insert default values into sync_info table 95 INSERT INTO state.sync_info (last_batch_num_seen, last_batch_num_consolidated, init_sync_batch) 96 VALUES (0, 0, 0); 97 98 CREATE TABLE state.receipt 99 ( 100 tx_hash VARCHAR NOT NULL PRIMARY KEY REFERENCES state.transaction (hash) ON DELETE CASCADE, 101 type integer, 102 post_state BYTEA, 103 status BIGINT, 104 cumulative_gas_used BIGINT, 105 gas_used BIGINT, 106 block_num BIGINT NOT NULL REFERENCES state.l2block (block_num) ON DELETE CASCADE, 107 tx_index integer, 108 contract_address VARCHAR 109 ); 110 111 CREATE TABLE state.log 112 ( 113 tx_hash VARCHAR NOT NULL REFERENCES state.transaction (hash) ON DELETE CASCADE, 114 log_index integer, 115 address VARCHAR NOT NULL, 116 data VARCHAR, 117 topic0 VARCHAR NOT NULL, 118 topic1 VARCHAR, 119 topic2 VARCHAR, 120 topic3 VARCHAR, 121 PRIMARY KEY (tx_hash, log_index) 122 ); 123 124 CREATE TABLE state.proof 125 ( 126 batch_num BIGINT NOT NULL REFERENCES state.batch (batch_num) ON DELETE CASCADE, 127 batch_num_final BIGINT NOT NULL REFERENCES state.batch (batch_num) ON DELETE CASCADE, 128 proof VARCHAR, 129 proof_id VARCHAR, 130 input_prover VARCHAR, 131 prover VARCHAR, 132 generating BOOLEAN DEFAULT FALSE, 133 PRIMARY KEY (batch_num, batch_num_final) 134 ); 135 136 CREATE TABLE IF NOT EXISTS state.sequences 137 ( --Allowed Verifications 138 from_batch_num BIGINT REFERENCES state.batch (batch_num) ON DELETE CASCADE, 139 to_batch_num BIGINT REFERENCES state.batch (batch_num) ON DELETE CASCADE 140 ); 141 142 CREATE TABLE state.monitored_txs 143 ( 144 owner VARCHAR NOT NULL, 145 id VARCHAR NOT NULL, 146 from_addr VARCHAR NOT NULL, 147 to_addr VARCHAR, 148 nonce DECIMAL(78, 0) NOT NULL, 149 value DECIMAL(78, 0), 150 data VARCHAR, 151 gas DECIMAL(78, 0) NOT NULL, 152 gas_price DECIMAL(78, 0) NOT NULL, 153 status VARCHAR NOT NULL, 154 history VARCHAR[], 155 block_num BIGINT, 156 created_at TIMESTAMP WITH TIME ZONE NOT NULL, 157 updated_at TIMESTAMP WITH TIME ZONE NOT NULL, 158 PRIMARY KEY (owner, id) 159 ); 160 161 CREATE TABLE state.debug 162 ( 163 error_type VARCHAR, 164 timestamp timestamp, 165 payload VARCHAR 166 );