Substreams Ethereum
Substreams development kit for Ethereum chains, contains Rust Firehose Block model and helpers as well as utilities for Ethereum ABI encoding/decoding.
Usage
[package]
name = "substreams-acme"
version = 0.1.2
[lib]
crate-type = ["cdylib"]
[dependencies]
substreams-ethereum = "0.1.0"
Development
We manually keep in sync the rendered Rust Firehose Block models with the actual Protocol Buffer definitions file found in sf-ethereum 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
Release
Important Don't forget to replace
${version}
by your real version like0.1.3
!
- Ensure build and tests
- Ensure you are in a clean and pushed Git state
- Find & replace all occurrences of Regex
^version = "[^"]+"
in allCargo.toml
files toversion = "${version}"
- Find & replace all occurrences of Regex
^substreams-ethereum(-[^ =]+)\s*=\s*\{\s*version\s*=\s*"[^"]+"
in allCargo.toml
files tosubstreams-ethereum$1 = { version = "${version"
- Update the
CHANGELOG.md
to update the## Unreleased
header to become `## v0.1.2 - Commit everything with message
Preparing release of ${version}
. ./bin/release.sh v${version}
(Add-f
beforev${version}
to doing the real non-dry mode)- If everything went well,
git tag ${version}
- Git push everything
You can then update the https://github.com/streamingfast/substreams-template with the latest
Community
Need any help? Reach out!