Skip to content

chainhook predicates scan command fails with critical error #716

@ryanwaits

Description

@ryanwaits

When trying to scan Stacks predicates, chainhook predicates scan fails when looking for a non-existent stacks_signers.sqlite database file.

$ chainhook predicates scan stx-transfer.json --mainnet
Jul 09 14:22:42.326 INFO A Stacks chainstate already exists, skipping TSV chainstante import
Jul 09 14:22:42.329 CRIT could not find /Users/ryanwaits/Code/hiro/cache/stacks_signers.sqlite

  Observations

  1. New Database Requirement: In v1.9.0 chainhook added support for Stacks signer messages, which requires a SQLite database at {cache_dir}/stacks_signers.sqlite to store signer message data.

  2. Missing Initialization Logic: The scan command expects this database to already exist but doesn't create it automatically. The code at at

destination_path.push("stacks_signers.sqlite");
tries to open an existing database connection without first ensuring the database exists.

Reproduction Steps

  1. Fresh installation: brew install chainhook
  2. Create a basic Stacks predicate JSON file
  3. Run: chainhook predicates scan predicate.json --mainnet
  4. Error: CRIT could not find /path/to/cache/stacks_signers.sqlite

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions