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);