Inputs
StreamingFast Substreams module inputs
Last updated
Was this helpful?
StreamingFast Substreams module inputs
Last updated
Was this helpful?
inputs
overviewModules receive inputs
of three types:
source
map
store
params
source
An inputs
of type source
represents a chain-specific, Firehose-provisioned protobuf object. Learn more about the supported protocols and their corresponding message types in .
The source
inputs
type __ is defined in the Substreams manifest. It is important to specify the correct Block
object for the chain.
Clock
objectThe sf.substreams.v1.Clock
object is another source type available on any of the supported chains.
The sf.substreams.v1.Clock
represents:
Block
number
Block
ID
Block
timestamp
params
An inputs
of type params
represents a parameterizable module input. Those parameters can be specified either:
in the params
section of the manifest,
on the command-line (using substreams run -p
for instance),
by tweaking the protobuf objects directly when consuming from your favorite language
map
An input of type map
represents the output of another map
module. It defines a parent-child relationship between modules.
Important: The graph built by input dependencies is a Directed Acyclic Graph, which means there can be no circular dependencies.
Define the map
input type in the manifest and choose a name for the map
reflecting the logic contained within it.
store
A store inputs
type represents the state of another store
used by the Substreams module being created.
The developer defines the store
inputs
type in the Substreams manifest and gives the store
a descriptive name that reflects the logic contained within it, similar to a map
.
Store modules are set to get
mode by default:
Alternatively, set stores
to deltas
mode by using:
mode
Substreams uses two types of mode
for modules:
get
delta
A store
can only receive inputs
as read-only.
A store
cannot depend on itself.
get
modeget
mode provides a key-value store readily queryable and guaranteed to be in sync with the block being processed.
Tip: get
mode
is the default mode for modules.
delta
modedelta
mode enables you to loop through keys and decode values mutated in the module.
store
deltas
The protobuf model for StoreDeltas
is defined by using:
See the for more details.
The object's type is defined in the attribute of the map
module.
Learn more about maps
in the section.
delta
mode
modules are containing all the changes occurring in the store
module available in the same block.