full_sync and light_sync receipt tables and light receipt repository methods and test

This commit is contained in:
Ian Norden
2019-04-05 16:36:48 -05:00
parent 4d0f7ee1bb
commit c1940c3e58
15 changed files with 304 additions and 30 deletions
@@ -1,5 +1,5 @@
-- +goose Up
CREATE TABLE receipts
CREATE TABLE full_sync_receipts
(
id SERIAL PRIMARY KEY,
transaction_id INTEGER NOT NULL REFERENCES full_sync_transactions (id) ON DELETE CASCADE,
@@ -13,4 +13,4 @@ CREATE TABLE receipts
-- +goose Down
DROP TABLE receipts;
DROP TABLE full_sync_receipts;
@@ -1,5 +1,5 @@
-- +goose Up
CREATE INDEX transaction_id_index ON receipts (transaction_id);
CREATE INDEX transaction_id_index ON full_sync_receipts (transaction_id);
-- +goose Down
DROP INDEX transaction_id_index;
@@ -8,7 +8,7 @@ ALTER TABLE logs
ALTER TABLE logs
ADD CONSTRAINT receipts_fk
FOREIGN KEY (receipt_id)
REFERENCES receipts (id)
REFERENCES full_sync_receipts (id)
ON DELETE CASCADE;
@@ -1,44 +1,44 @@
-- +goose Up
ALTER TABLE receipts
ALTER TABLE full_sync_receipts
ADD COLUMN block_id INT;
UPDATE receipts
UPDATE full_sync_receipts
SET block_id = (
SELECT block_id FROM full_sync_transactions WHERE full_sync_transactions.id = receipts.transaction_id
SELECT block_id FROM full_sync_transactions WHERE full_sync_transactions.id = full_sync_receipts.transaction_id
);
ALTER TABLE receipts
ALTER TABLE full_sync_receipts
ALTER COLUMN block_id SET NOT NULL;
ALTER TABLE receipts
ALTER TABLE full_sync_receipts
ADD CONSTRAINT blocks_fk
FOREIGN KEY (block_id)
REFERENCES blocks (id)
ON DELETE CASCADE;
ALTER TABLE receipts
ALTER TABLE full_sync_receipts
DROP COLUMN transaction_id;
-- +goose Down
ALTER TABLE receipts
ALTER TABLE full_sync_receipts
ADD COLUMN transaction_id INT;
CREATE INDEX transaction_id_index ON receipts (transaction_id);
CREATE INDEX transaction_id_index ON full_sync_receipts (transaction_id);
UPDATE receipts
UPDATE full_sync_receipts
SET transaction_id = (
SELECT id FROM full_sync_transactions WHERE full_sync_transactions.hash = receipts.tx_hash
SELECT id FROM full_sync_transactions WHERE full_sync_transactions.hash = full_sync_receipts.tx_hash
);
ALTER TABLE receipts
ALTER TABLE full_sync_receipts
ALTER COLUMN transaction_id SET NOT NULL;
ALTER TABLE receipts
ALTER TABLE full_sync_receipts
ADD CONSTRAINT transaction_fk
FOREIGN KEY (transaction_id)
REFERENCES full_sync_transactions (id)
ON DELETE CASCADE;
ALTER TABLE receipts
ALTER TABLE full_sync_receipts
DROP COLUMN block_id;
@@ -2,15 +2,15 @@
CREATE TABLE light_sync_transactions (
id SERIAL PRIMARY KEY,
header_id INTEGER NOT NULL REFERENCES headers(id) ON DELETE CASCADE,
hash TEXT,
gas_limit NUMERIC,
gas_price NUMERIC,
hash VARCHAR(66),
gas_limit NUMERIC,
gas_price NUMERIC,
input_data BYTEA,
nonce NUMERIC,
raw BYTEA,
tx_from TEXT,
tx_from VARCHAR(44),
tx_index INTEGER,
tx_to TEXT,
tx_to VARCHAR(44),
"value" NUMERIC,
UNIQUE (header_id, hash)
);
@@ -0,0 +1,17 @@
-- +goose Up
CREATE TABLE light_sync_receipts(
id SERIAL PRIMARY KEY,
transaction_id INTEGER NOT NULL REFERENCES light_sync_transactions(id) ON DELETE CASCADE,
header_id INTEGER NOT NULL REFERENCES headers(id) ON DELETE CASCADE,
contract_address VARCHAR(42),
cumulative_gas_used NUMERIC,
gas_used NUMERIC,
state_root VARCHAR(66),
status INTEGER,
tx_hash VARCHAR(66),
UNIQUE(header_id, transaction_id)
);
-- +goose Down
DROP TABLE light_sync_receipts;