CREATE TABLE IF NOT EXISTS tx ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, tx_hash VARCHAR(66) NOT NULL UNIQUE, block_number INT NOT NULL, date_block TIMESTAMP NOT NULL, success BOOLEAN NOT NULL ); CREATE TABLE IF NOT EXISTS token_transfer ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, tx_id INT REFERENCES tx(id), sender_address VARCHAR(42) NOT NULL, recipient_address VARCHAR(42) NOT NULL, contract_address VARCHAR(42) NOT NULL DEFAULT '0x0000000000000000000000000000000000000000', transfer_value NUMERIC NOT NULL ); CREATE TABLE IF NOT EXISTS token_mint ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, tx_id INT REFERENCES tx(id), minter_address VARCHAR(42) NOT NULL, recipient_address VARCHAR(42) NOT NULL, contract_address VARCHAR(42) NOT NULL DEFAULT '0x0000000000000000000000000000000000000000', mint_value NUMERIC NOT NULL ); CREATE TABLE IF NOT EXISTS token_burn ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, tx_id INT REFERENCES tx(id), burner_address VARCHAR(42) NOT NULL, contract_address VARCHAR(42) NOT NULL DEFAULT '0x0000000000000000000000000000000000000000', burn_value NUMERIC NOT NULL ); CREATE TABLE IF NOT EXISTS faucet_give ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, tx_id INT REFERENCES tx(id), token_address VARCHAR(42) NOT NULL, recipient_address VARCHAR(42) NOT NULL, contract_address VARCHAR(42) NOT NULL DEFAULT '0x0000000000000000000000000000000000000000', give_value NUMERIC NOT NULL ); CREATE TABLE IF NOT EXISTS pool_swap ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, tx_id INT REFERENCES tx(id), initiator_address VARCHAR(42) NOT NULL, token_in_address VARCHAR(42) NOT NULL, token_out_address VARCHAR(42) NOT NULL, in_value NUMERIC NOT NULL, out_value NUMERIC NOT NULL, contract_address VARCHAR(42) NOT NULL DEFAULT '0x0000000000000000000000000000000000000000', fee NUMERIC NOT NULL ); CREATE TABLE IF NOT EXISTS pool_deposit ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, tx_id INT REFERENCES tx(id), initiator_address VARCHAR(42) NOT NULL, token_in_address VARCHAR(42) NOT NULL, contract_address VARCHAR(42) NOT NULL DEFAULT '0x0000000000000000000000000000000000000000', in_value NUMERIC NOT NULL ); CREATE TABLE IF NOT EXISTS tokens ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, contract_address VARCHAR(42) UNIQUE NOT NULL DEFAULT '0x0000000000000000000000000000000000000000', token_name TEXT NOT NULL, token_symbol TEXT NOT NULL, token_decimals INT NOT NULL, sink_address VARCHAR(42) NOT NULL DEFAULT '0x0000000000000000000000000000000000000000' ); CREATE TABLE IF NOT EXISTS pools ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, contract_address VARCHAR(42) UNIQUE NOT NULL DEFAULT '0x0000000000000000000000000000000000000000', pool_name TEXT NOT NULL, pool_symbol TEXT NOT NULL );