Skip to content

Applying blocks APIs #903

@evanlinjin

Description

@evanlinjin

We need a set of APIs to easily apply blocks to a keychain tracker. I propse the following:

  • ChainGraph::<ConfirmationTime>::from_block(block): This creates a chain graph with two checkpoints (one for the block at height and one for prev block hash).
  • KeychainTracker::apply_update_relevant(scan: KeychainScan), does this same thing as apply_update but doesn't not take transactions that don't send to or from things in the txout index. Also add determine_relevant_changeset.
  • ChainGraph::apply_update_relevant(|tx| is_this_relevant(tx)) same as above except you can pass a predicate (also needs the changeset option).

In addition to adding these APIs it looks like KeychainTracker::determine_changeset has a TODO in it that needs to be fixed before this whole workflow will work properly:

Old ticket: LLFourn/bdk_core_staging#193

Metadata

Metadata

Labels

new featureNew feature or request

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions