HomePhabricator

[Chronik] Fix bug in MINT VAULT indexing

Description

[Chronik] Fix bug in MINT VAULT indexing

Summary:
Currently, MINT VAULT transactions that have no output quanitty will be indexed incorrectly once they are mined.

An example is this transaction, which is reported to have "Missing MINT vault", but in fact it does have a MINT vault.

The bug originates from an optimization that doesn't store "empty" token transactions; however, the indexer also stores whether a tx had a valid MINT vault, and assumes it doesn't if there's no corresponding entry in the DB.

The fix is very simple, we just always index MINT vault transactions that have a valid MINT vault input (and thus the FLAGS_HAS_MINT_VAULT flag is saved to the DB).

This requires a reindex of the DB; fixing the DB automatically it would require scanning all txs since the first known MINT vault GENESIS tx, which seems a bit overkill. Also, D16899 is another reason to reindex.

Test Plan: ./test/functional/test_runner.py chronik_token_slp_mint_vault

Reviewers: Fabien, #bitcoin_abc

Reviewed By: Fabien, #bitcoin_abc

Differential Revision: https://reviews.bitcoinabc.org/D16916

Details

Provenance
tobias_ruckAuthored on Wed, Oct 16, 08:05
tobias_ruckPushed on Wed, Oct 16, 11:23
Reviewer
Restricted Project
Differential Revision
D16916: [Chronik] Fix bug in MINT VAULT indexing
Parents
rABC674b82a9147f: [Iguana] Add to release
Branches
Unknown
Tags
Unknown