Crates.io | substreams-database-change |
lib.rs | substreams-database-change |
version | 2.0.0 |
source | src |
created_at | 2022-11-26 14:40:12.162357 |
updated_at | 2024-10-16 19:24:18.445265 |
description | Substreams database change containg helpers |
homepage | https://substreams.streamingfast.io/ |
repository | https://github.com/streamingfast/substreams-sink-database-changes |
max_upload_size | |
id | 723296 |
size | 78,281 |
substreams-sink-database-changes
contains all the definitions for database changes which can be emitted by a substream.
# The Rust crate is named substreams-database-change for historical reasons
cargo add substreams-database-change
Cargo.toml
[dependencies]
substreams = "0.5"
substreams-database-change = "1.0"
src/lib.rs
use substreams::errors::Error;
use substreams_database_change::pb::database::{DatabaseChanges, table_change::Operation};
#[substreams::handlers::map]
fn db_out(
... some stores ...
) -> Result<DatabaseChanges, Error> {
// Initialize Database Changes container
let mut database_changes: 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)
}
Be sure to have buf
CLI installed (https://buf.build/docs/installation/) and run:
buf generate proto