You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.6 KiB
49 lines
1.6 KiB
|
|
# --- !Ups
|
|
|
|
CREATE TABLE transactions(
|
|
txid VARCHAR(64) NOT NULL,
|
|
blockhash VARCHAR(64) NOT NULL,
|
|
time BIGINT NOT NULL,
|
|
size INT NOT NULL,
|
|
-- constraints
|
|
CONSTRAINT transactions_txid_pk PRIMARY KEY (txid),
|
|
CONSTRAINT transactions_txid_format CHECK (txid ~ '^[a-f0-9]{64}$'),
|
|
CONSTRAINT transactions_blockhash_format CHECK (blockhash ~ '^[a-f0-9]{64}$')
|
|
);
|
|
|
|
CREATE INDEX transactions_blockhash_index ON transactions (blockhash);
|
|
|
|
|
|
CREATE TABLE transaction_inputs(
|
|
txid VARCHAR(64) NOT NULL,
|
|
index INT NOT NULL,
|
|
value DECIMAL(30, 15) NULL,
|
|
address VARCHAR(34) NULL,
|
|
-- constraints
|
|
CONSTRAINT transaction_inputs_txid_index_pk PRIMARY KEY (txid, index),
|
|
CONSTRAINT transaction_inputs_txid_format CHECK (txid ~ '^[a-f0-9]{64}$'),
|
|
CONSTRAINT transaction_inputs_address_format CHECK (address ~ '[a-zA-Z0-9]{34}$')
|
|
);
|
|
|
|
CREATE TABLE transaction_outputs(
|
|
txid VARCHAR(64) NOT NULL,
|
|
index INT NOT NULL,
|
|
value DECIMAL(30, 15) NOT NULL,
|
|
address VARCHAR(34) NULL,
|
|
tpos_owner_address VARCHAR(34) NULL,
|
|
tpos_merchant_address VARCHAR(34) NULL,
|
|
-- constraints
|
|
CONSTRAINT transaction_outputs_txid_index_pk PRIMARY KEY (txid, index),
|
|
CONSTRAINT transaction_outputs_txid_format CHECK (txid ~ '^[a-f0-9]{64}$'),
|
|
CONSTRAINT transaction_outputs_address_format CHECK (address ~ '[a-zA-Z0-9]{34}$'),
|
|
CONSTRAINT transaction_outputs_tpos_owner_address_format CHECK (address ~ '[a-zA-Z0-9]{34}$'),
|
|
CONSTRAINT transaction_outputs_tpos_merchant_address_format CHECK (address ~ '[a-zA-Z0-9]{34}$')
|
|
);
|
|
|
|
|
|
# --- !Downs
|
|
|
|
DROP TABLE transaction_outputs;
|
|
DROP TABLE transaction_inputs;
|
|
DROP TABLE transactions;
|
|
|