-- +goose Up -- +goose StatementBegin create table batch ( -- batch index BIGINT NOT NULL, hash VARCHAR NOT NULL, start_chunk_index BIGINT NOT NULL, start_chunk_hash VARCHAR NOT NULL, end_chunk_index BIGINT NOT NULL, end_chunk_hash VARCHAR NOT NULL, state_root VARCHAR NOT NULL, withdraw_root VARCHAR NOT NULL, parent_batch_hash VARCHAR NOT NULL, batch_header BYTEA NOT NULL, -- proof chunk_proofs_status SMALLINT NOT NULL DEFAULT 1, proving_status SMALLINT NOT NULL DEFAULT 1, proof BYTEA DEFAULT NULL, prover_assigned_at TIMESTAMP(0) DEFAULT NULL, proved_at TIMESTAMP(0) DEFAULT NULL, proof_time_sec INTEGER DEFAULT NULL, -- rollup rollup_status SMALLINT NOT NULL DEFAULT 1, commit_tx_hash VARCHAR DEFAULT NULL, committed_at TIMESTAMP(0) DEFAULT NULL, finalize_tx_hash VARCHAR DEFAULT NULL, finalized_at TIMESTAMP(0) DEFAULT NULL, -- gas oracle oracle_status SMALLINT NOT NULL DEFAULT 1, oracle_tx_hash VARCHAR DEFAULT NULL, -- metadata created_at TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP(0) DEFAULT NULL ); create unique index batch_index_uindex on batch (index) where deleted_at IS NULL; create unique index batch_hash_uindex on batch (hash) where deleted_at IS NULL; comment on column batch.chunk_proofs_status is 'undefined, pending, ready'; comment on column batch.proving_status is 'undefined, unassigned, assigned, proved (deprecated), verified, failed'; comment on column batch.rollup_status is 'undefined, pending, committing, committed, finalizing, finalized, commit_failed, finalize_failed'; -- +goose StatementEnd -- +goose Down -- +goose StatementBegin drop table if exists batch; -- +goose StatementEnd