51 lines
1.6 KiB
SQL
51 lines
1.6 KiB
SQL
/*
|
|
* Copyright 2024 - Nym Technologies SA <contact@nymtech.net>
|
|
* SPDX-License-Identifier: GPL-3.0-only
|
|
*/
|
|
|
|
CREATE TABLE metadata (
|
|
id INTEGER PRIMARY KEY CHECK (id = 0),
|
|
latest_network_id INTEGER REFERENCES network(id),
|
|
|
|
master_mnemonic TEXT NOT NULL,
|
|
rpc_endpoint TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE network (
|
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT NOT NULL,
|
|
created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
|
|
|
mixnet_contract_id INTEGER NOT NULL REFERENCES contract(id),
|
|
vesting_contract_id INTEGER NOT NULL REFERENCES contract(id),
|
|
ecash_contract_id INTEGER NOT NULL REFERENCES contract(id),
|
|
cw3_multisig_contract_id INTEGER NOT NULL REFERENCES contract(id),
|
|
cw4_group_contract_id INTEGER NOT NULL REFERENCES contract(id),
|
|
dkg_contract_id INTEGER NOT NULL REFERENCES contract(id),
|
|
|
|
rewarder_address TEXT NOT NULL REFERENCES account(address),
|
|
ecash_holding_account_address TEXT NOT NULL REFERENCES account(address)
|
|
);
|
|
|
|
CREATE TABLE contract (
|
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT NOT NULL,
|
|
address TEXT NOT NULL,
|
|
admin_address TEXT NOT NULL REFERENCES account(address)
|
|
);
|
|
|
|
CREATE TABLE account (
|
|
address TEXT NOT NULL UNIQUE,
|
|
-- for the future 'import' feature this will have to be nullable
|
|
mnemonic TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE node (
|
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
identity_key TEXT NOT NULL,
|
|
network_id INTEGER NOT NULL REFERENCES network(id),
|
|
|
|
-- i.e. mixnode or gateway
|
|
bonded_type TEXT NOT NULL,
|
|
owner_address TEXT NOT NULL REFERENCES account(address)
|
|
); |