/* * Copyright 2024 - Nym Technologies SA * 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) );