Substreams Database Change

github crates.io docs.rs GitHub Workflow Status

substreams-sink-database-changes contains all the definitions for database changes which can be emitted by a substream.

Used by

Install

```bash

The Rust crate is named substreams-database-change for historical reasons

cargo add substreams-database-change ```

Quickstart

Cargo.toml

toml [dependencies] substreams = "0.5" substreams-database-change = "1.0"

src/lib.rs

```rust use substreams::errors::Error; use substreamsdatabasechange::pb::database::{DatabaseChanges, table_change::Operation};

[substreams::handlers::map]

fn dbout( ... some stores ... ) -> Result { // Initialize Database Changes container let mut databasechanges: DatabaseChanges = Default::default();

// Push change
database_changes.push_change("transfer", "primary-key", 0, Operation::Create)
    .change("key1", ("previous1", "value1"))
    .change("key2", ("previous2", "value2"))

Ok(database_changes)

} ```

Re-generate Protobuf

Be sure to have buf CLI installed (https://buf.build/docs/installation/) and run:

bash buf generate proto