20250502164500_init.up.sql 1.4 KB

1234567891011121314151617181920212223242526
  1. -- we use VARCHAR(40) for addresses and VARCHAR(64) for tx_hashes and 32 byte numbers
  2. CREATE TABLE request(
  3. chain_id VARCHAR(20) NOT NULL,
  4. network_id INTEGER NOT NULL,
  5. provider VARCHAR(40) NOT NULL,
  6. sequence INTEGER NOT NULL,
  7. created_at DATETIME NOT NULL,
  8. last_updated_at DATETIME NOT NULL,
  9. state VARCHAR(10) NOT NULL,
  10. request_block_number INT NOT NULL,
  11. request_tx_hash VARCHAR(64) NOT NULL,
  12. user_random_number VARCHAR(64) NOT NULL,
  13. sender VARCHAR(40) NOT NULL,
  14. reveal_block_number INT,
  15. reveal_tx_hash VARCHAR(64),
  16. provider_random_number VARCHAR(64),
  17. info TEXT,
  18. PRIMARY KEY (network_id, sequence, provider, request_tx_hash)
  19. );
  20. CREATE INDEX idx_request_sequence ON request (sequence);
  21. CREATE INDEX idx_request_network_id_created_at ON request (network_id, created_at);
  22. CREATE INDEX idx_request_created_at ON request (created_at);
  23. CREATE INDEX idx_request_request_tx_hash ON request (request_tx_hash) WHERE request_tx_hash IS NOT NULL;
  24. CREATE INDEX idx_request_reveal_tx_hash ON request (reveal_tx_hash) WHERE reveal_tx_hash IS NOT NULL;
  25. CREATE INDEX idx_request_sender ON request (sender) WHERE sender IS NOT NULL;