52 lines
2.0 KiB
SQL
52 lines
2.0 KiB
SQL
-- store route input parameters
|
|
CREATE TABLE IF NOT EXISTS route_input_parameters (
|
|
uuid TEXT NOT NULL AS (json_extract(route_input_params_json, '$.uuid')),
|
|
route_input_params_json JSON NOT NULL
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_route_input_parameters_per_uuid ON route_input_parameters (uuid);
|
|
|
|
-- store route build tx parameters
|
|
CREATE TABLE IF NOT EXISTS route_build_tx_parameters (
|
|
uuid TEXT NOT NULL AS (json_extract(route_build_tx_params_json, '$.uuid')),
|
|
route_build_tx_params_json JSON NOT NULL,
|
|
FOREIGN KEY(uuid) REFERENCES route_input_parameters(uuid) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_route_build_tx_parameters_per_uuid ON route_build_tx_parameters (uuid);
|
|
|
|
-- store route paths
|
|
CREATE TABLE IF NOT EXISTS route_paths (
|
|
uuid TEXT NOT NULL,
|
|
path_idx INTEGER NOT NULL,
|
|
path_json JSON NOT NULL,
|
|
FOREIGN KEY(uuid) REFERENCES route_input_parameters(uuid) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_route_path_per_uuid_index ON route_paths (uuid, path_idx);
|
|
|
|
-- store route path transactions
|
|
CREATE TABLE IF NOT EXISTS route_path_transactions (
|
|
uuid TEXT NOT NULL,
|
|
path_idx INTEGER NOT NULL,
|
|
is_approval BOOLEAN NOT NULL,
|
|
chain_id UNSIGNED BIGINT NOT NULL,
|
|
tx_hash BLOB NOT NULL,
|
|
tx_args_json JSON NOT NULL,
|
|
hash_to_sign BLOB NOT NULL,
|
|
sig BLOB NOT NULL,
|
|
FOREIGN KEY(uuid, path_idx) REFERENCES route_paths(uuid, path_idx) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_route_path_transaction_per_uuid_path_idx_is_approval ON route_path_transactions (uuid, path_idx, is_approval);
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_route_path_transaction_per_chain_id_tx_hash ON route_path_transactions (chain_id, tx_hash);
|
|
|
|
-- store sent transactions
|
|
CREATE TABLE IF NOT EXISTS sent_transactions (
|
|
chain_id UNSIGNED BIGINT NOT NULL,
|
|
tx_hash BLOB NOT NULL,
|
|
tx_json JSON NOT NULL
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_sent_transactions_per_chain_id_tx_hash ON sent_transactions (chain_id, tx_hash);
|