2 releases
0.1.0-pre1+solana.2.1.11 | May 6, 2025 |
---|---|
0.1.0-pre.2+solana.2.1 | May 16, 2025 |
#963 in Magic Beans
268 downloads per month
135KB
2.5K
SLoC
Yellowstone Fumarole CLI
Fumarole CLI tool
Install
$ cargo install yellowstone-fumarole-cli
Usage
fume help
Yellowstone Fumarole CLI
Usage: fume [OPTIONS] <COMMAND>
Commands:
test-config Test the connection to the fumarole service
get-info Get Persistent Subscriber Info
create Create Persistent Subscriber
delete Delete a Persistent Subscriber
list List all persistent subscribers
delete-all Delete all persistent subscribers
subscribe Subscribe to fumarole events
help Print this message or the help of the given subcommand(s)
Options:
--config <CONFIG> Path to the config file. If not specified, the default config file will be used. The default config file is ~/.fumarole/config.yaml. You can also set the FUMAROLE_CONFIG environment variable to specify the config file. If the config file is not found, the program will exit with an error
-v, --verbose... Increase logging verbosity
-q, --quiet... Decrease logging verbosity
-h, --help Print help
-V, --version Print version
Configuration file
Here's how to configure your config file:
[fumarole]
endpoints = ["https://fumarole.endpoint.rpcpool.com"]
x-token = "00000000-0000-0000-0000-000000000000"
You can test your configuration file with test-config
subcommand:
fume --config path/to/config.toml test-config
By default, if you don't provide --config
, fumarole CLI will use the value at FUMAROLE_CONFIG
environment variable if set,
otherwise fallback to ~/.fumarole/config.yaml
.
Create a Persistent Subscriber
fume create --name helloworld-1 \
List all persistent subscribers
fume list
Delete a persistent subscribers
fume delete --name helloworld
Delete all persistent subscribers
fume delete-all
Stream summary on terminal
To stream out from the CLI, you can use the stream
command and its various features!
fume subscribe --name helloworld
Filters
You can filter by event type : account, transaction, slot status and block meta:
fume subscribe --name <SUBSCRIBER_NAME> --include tx # This will only stream out transaction
fume subscribe --name <SUBSCRIBER_NAME> --include account,slot # This will only stream out account update and slot status
fume subscribe --name <SUBSCRIBER_NAME> --include all # This will stream everything : account update, transactions, slot status and block meta update.
You can also filter incoming Geyser events by account pubkeys, account owners and transaction account inclusion.
Here is an example to get all account updates owned by Token SPL program:
fume subscribe --name helloworld \
--owner TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Here is how to chain multiple filters together:
fume -- subscribe --name test1 \
--include tx,account
--owner metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s \
--owner TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--owner TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA \
--owner ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL \
--owner BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY \
--owner CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d \
--tx-account BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY
The above command stream all data required by DAS.
Note: This command serves more as a testing tool/playground for you to try it out as it only prints summarized data.
Dependencies
~42–60MB
~1M SLoC