substreams-solana

Crates.iosubstreams-solana
lib.rssubstreams-solana
version0.14.1
sourcesrc
created_at2022-06-04 02:04:44.407923
updated_at2024-10-18 15:59:13.468829
descriptionSubstreams development kit for Solana chains, contains Block model and helpers.
homepagehttps://substreams.streamingfast.io/
repositoryhttps://github.com/streamingfast/substreams-solana/tree/develop/substreams-solana
max_upload_size
id599532
size6,523
Stéphane Duchesneau (sduchesneau)

documentation

README

Substreams Solana

Substreams development kit for Solana chains, contains Rust Firehose Block model and helpers

Usage

  • Cargo.toml:
[package]
name = "my-package"
version = "0.1.0"

[lib]
crate-type = ["cdylib"]

[dependencies]
substreams-solana = "0.13"

Protobuf Extern paths

If you have other protobuf objects that refer to the sf.solana.type.v1 types, like the Solana Substreams Foundational Modules you must inform the Protobuf code generator to generate subtreams_solana::pb::sf::solana::type::v1 for messages pointing to sf.solana.type.v1.

Add or modify the buf.gen.yaml file so that it has an extern_path=... option defined like this:

version: v1
plugins:
- plugin: buf.build/community/neoeinstein-prost:v0.2.2 # check compatibility with your 'prost' crate
  out: ./src/pb
  opt:
    - file_descriptor_set=false
    - extern_path=.sf.solana.type.v1=::substreams_solana::pb::sf::solana::type::v1

- plugin: buf.build/community/neoeinstein-prost-crate:v0.3.1 # check compatibility with your 'prost' crate
  out: ./src/pb
  opt:
    - no_features

When you run substreams protogen or buf generate proto, it will generate links to substreams-solana library enabling you to leverage all helpers added by the library to Solana types.

Development

We manually keep in sync the rendered Rust Firehose Block models with the actual Protocol Buffer definitions file found in sf-solana and we commit them to Git.

This means changes to Protobuf files must be manually re-generated and commit, see below for how to do it.

Regenerate Rust Firehose Block from Protobuf

./gen.sh

Community

Need any help? Reach out!

License

Apache 2.0

Commit count: 0

cargo fmt