1 unstable release

new 0.1.0-pre1+solana.2.1.11 May 6, 2025

#59 in #subscriber

Download history 61/week @ 2025-05-01

61 downloads per month

AGPL-3.0

130KB
2.5K SLoC

Yellowstone Fumarole CLI

Fumarole CLI tool

Install

$ cargo install yellowstone-fumarole-cli

Usage

fume --help

Yellowstone Fumarole CLI

Usage: fume [OPTIONS] --config <CONFIG> <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 static config file
  -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

or with custom config path:

$ fume --config path/to/config.toml test-config

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

You can filter the stream content by adding one or multiple occurrence of the following options:

  • --tx-pubkey <base58 pubkey> : filter transaction by account keys.
  • --owner <base58 pubkey> : filter account update based on its owner
  • --account <base58 pubkey> : filter account update based on accout key.

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 --cg-name helloworld \
--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

~40–59MB
~1M SLoC