github.com/status-im/status-go@v1.1.0/walletdatabase/migrations/sql/1691753758_initial.up.sql (about) 1 CREATE TABLE blocks ( 2 network_id UNSIGNED BIGINT NOT NULL, 3 address VARCHAR NOT NULL, 4 blk_number BIGINT NOT NULL, 5 blk_hash BIGINT NOT NULL, 6 loaded BOOL DEFAULT FALSE, 7 CONSTRAINT unique_mapping_for_account_to_block_per_network UNIQUE (address,blk_hash,network_id) 8 ); 9 10 CREATE TABLE blocks_ranges ( 11 network_id UNSIGNED BIGINT NOT NULL, 12 address VARCHAR NOT NULL, 13 blk_from BIGINT NOT NULL, 14 blk_to BIGINT NOT NULL, 15 balance BLOB, 16 nonce INTEGER); 17 18 CREATE TABLE blocks_ranges_sequential ( 19 network_id UNSIGNED BIGINT NOT NULL, 20 address VARCHAR NOT NULL, 21 blk_start BIGINT, 22 blk_first BIGINT NOT NULL, 23 blk_last BIGINT NOT NULL, 24 PRIMARY KEY (network_id, address) 25 ) WITHOUT ROWID; 26 27 CREATE TABLE pending_transactions ( 28 network_id UNSIGNED BIGINT NOT NULL, 29 hash VARCHAR NOT NULL, 30 timestamp UNSIGNED BIGINT NOT NULL, 31 from_address VARCHAR NOT NULL, 32 to_address VARCHAR, 33 symbol VARCHAR, 34 gas_price BLOB, 35 gas_limit BLOB, 36 value BLOB, 37 data TEXT, 38 type VARCHAR, 39 additional_data TEXT, 40 multi_transaction_id INT, 41 PRIMARY KEY (network_id, hash) 42 ) WITHOUT ROWID; 43 44 CREATE TABLE "saved_addresses" ( 45 address VARCHAR NOT NULL, 46 name TEXT NOT NULL, 47 favourite BOOLEAN NOT NULL DEFAULT FALSE, 48 removed BOOLEAN NOT NULL DEFAULT FALSE, 49 update_clock INT NOT NULL DEFAULT 0, 50 chain_short_names VARCHAR DEFAULT "", 51 ens_name VARCHAR DEFAULT "", 52 is_test BOOLEAN DEFAULT FALSE, 53 created_at INT DEFAULT 0, 54 PRIMARY KEY (address, ens_name, is_test) 55 ) WITHOUT ROWID; 56 57 CREATE TABLE token_balances ( 58 user_address VARCHAR NOT NULL, 59 token_name VARCHAR NOT NULL, 60 token_symbol VARCHAR NOT NULL, 61 token_address VARCHAR NOT NULL, 62 token_color VARCHAR NOT NULL DEFAULT "", 63 token_decimals INT NOT NULL, 64 token_description VARCHAR NOT NULL DEFAULT "", 65 token_url VARCHAR NOT NULL DEFAULT "", 66 balance VARCHAR NOT NULL, 67 chain_id INT NOT NULL, 68 PRIMARY KEY (user_address, chain_id, token_symbol) ON CONFLICT REPLACE 69 ); 70 71 CREATE TABLE tokens ( 72 address VARCHAR NOT NULL, 73 network_id UNSIGNED BIGINT NOT NULL, 74 name TEXT NOT NULL, 75 symbol VARCHAR NOT NULL, 76 decimals UNSIGNED INT, 77 color VARCHAR, 78 PRIMARY KEY (address, network_id) 79 ) WITHOUT ROWID; 80 81 CREATE TABLE visible_tokens ( 82 chain_id UNSIGNED INT, 83 address VARCHAR NOT NULL 84 ); 85 86 CREATE TABLE currency_format_cache ( 87 symbol VARCHAR NOT NULL, 88 display_decimals INT NOT NULL, 89 strip_trailing_zeroes BOOLEAN NOT NULL 90 ); 91 92 CREATE TABLE multi_transactions ( 93 from_address VARCHAR NOT NULL, 94 from_asset VARCHAR NOT NULL, 95 from_amount VARCHAR NOT NULL, 96 to_address VARCHAR NOT NULL, 97 to_asset VARCHAR NOT NULL, 98 type VARCHAR NOT NULL, 99 timestamp UNSIGNED BIGINT NOT NULL, 100 to_amount VARCHAR, 101 from_network_id UNSIGNED BIGINT, 102 to_network_id UNSIGNED BIGINT, 103 cross_tx_id VARCHAR DEFAULT "", 104 from_tx_hash BLOB, 105 to_tx_hash BLOB 106 ); 107 108 CREATE TABLE balance_history ( 109 chain_id UNSIGNED BIGINT NOT NULL, 110 address VARCHAR NOT NULL, 111 currency VARCHAR NOT NULL, 112 block BIGINT NOT NULL, 113 timestamp INT NOT NULL, 114 bitset INT NOT NULL, 115 balance BLOB 116 ); 117 118 CREATE TABLE price_cache ( 119 token VARCHAR NOT NULL, 120 currency VARCHAR NOT NULL, 121 price REAL NOT NULL 122 ); 123 124 CREATE TABLE IF NOT EXISTS collectibles_ownership_cache ( 125 chain_id UNSIGNED BIGINT NOT NULL, 126 contract_address VARCHAR NOT NULL, 127 token_id BLOB NOT NULL, 128 owner_address VARCHAR NOT NULL 129 ); 130 131 CREATE TABLE transfers ( 132 network_id UNSIGNED BIGINT NOT NULL, 133 hash VARCHAR NOT NULL, 134 address VARCHAR NOT NULL, 135 blk_hash VARCHAR NOT NULL, 136 tx BLOB, 137 sender VARCHAR, 138 receipt BLOB, 139 log BLOB, 140 type VARCHAR NOT NULL, 141 blk_number BIGINT NOT NULL, 142 timestamp UNSIGNED BIGINT NOT NULL, 143 loaded BOOL DEFAULT 1, 144 multi_transaction_id INT, 145 base_gas_fee TEXT NOT NULL DEFAULT "", 146 status INT, 147 receipt_type INT, 148 tx_hash BLOB, 149 log_index INT, 150 block_hash BLOB, 151 cumulative_gas_used INT, 152 contract_address TEXT, 153 gas_used INT, 154 tx_index INT, 155 tx_type INT, 156 protected BOOLEAN, 157 gas_limit UNSIGNED INT, 158 gas_price_clamped64 INT, 159 gas_tip_cap_clamped64 INT, 160 gas_fee_cap_clamped64 INT, 161 amount_padded128hex CHAR(32), 162 account_nonce INT, 163 size INT, 164 token_address BLOB, 165 token_id BLOB, 166 tx_from_address BLOB, 167 tx_to_address BLOB, 168 FOREIGN KEY(network_id,address,blk_hash) REFERENCES blocks(network_id,address,blk_hash) ON DELETE CASCADE, 169 CONSTRAINT unique_transfer_per_address_per_network UNIQUE (hash,address,network_id) 170 ); 171 172 CREATE INDEX balance_history_filter_entries ON balance_history (chain_id, address, currency, block, timestamp, bitset); 173 174 CREATE INDEX idx_transfers_blk_loaded ON transfers(blk_number, loaded); 175 176 CREATE UNIQUE INDEX price_cache_identify_entry ON price_cache (token, currency); 177 178 CREATE UNIQUE INDEX balance_history_identify_entry ON balance_history (chain_id, address, currency, block); 179 180 CREATE UNIQUE INDEX currency_format_cache_identify_entry ON currency_format_cache (symbol); 181 182 CREATE INDEX idx_transfers_filter 183 ON transfers (multi_transaction_id, loaded, timestamp, status, network_id, tx_from_address, tx_to_address, token_address, token_id, type); 184 185 CREATE INDEX idx_pending_transactions 186 ON pending_transactions (multi_transaction_id, from_address, to_address, network_id, timestamp, symbol); 187 188 CREATE INDEX idx_multi_transactions 189 ON multi_transactions (from_address, to_address, type, from_asset, timestamp, to_asset, from_amount, to_amount); 190 191 CREATE INDEX IF NOT EXISTS collectibles_ownership_filter_entries ON collectibles_ownership_cache (chain_id, owner_address);