substreams-solana-macro

Crates.iosubstreams-solana-macro
lib.rssubstreams-solana-macro
version0.14.1
sourcesrc
created_at2023-07-07 16:19:58.670245
updated_at2024-10-18 15:58:45.57684
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
id910916
size7,187
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