Proto commits in rpcpool/yellowstone-grpc

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:f300267
Author:Louis-Vincent Boudreault
Committer:GitHub

V4.1 transition next (#801) * feat(grpc): add deshred transaction support Introduces `SubscribeDeshred`, a new RPC endpoint for subscribing to deshred transactions. These are transactions received when entries are formed from shreds, before execution occurs. At this stage, no `TransactionStatusMeta` is available. Address lookup tables are resolved during deshred, making both static and dynamically loaded account keys available for filtering (`account_include`, `account_exclude`, `account_required`). The new endpoint uses a separate `SubscribeUpdateDeshred` response type with its own `FilteredUpdateDeshred` server-side encoding, keeping deshred streams fully independent from the main `Subscribe` RPC. On the plugin side, implements the `notify_deshred_transaction` hook from the geyser plugin interface and adds configuration to enable these notifications. Includes comprehensive filter tests for vote filtering, account include/exclude with static and loaded (ALT) addresses, account required, and pong generation. * separating messages from deshred channel (#760) * agave 4.1.0-rc.0 * Updated deps and move to agave 4.1.0 * fix clippy + broadened the semver range for solana crates * fix CHANGELOG --------- Co-authored-by: leafaar <yyyyrrzb@gmail.com> Co-authored-by: Synestraa <synestraa@gmail.com>

The documentation is generated from this commit.

Commit:bfb33b1
Author:Louis-Vincent
Committer:Louis-Vincent

agave 4.1.0-rc.0

The documentation is generated from this commit.

Commit:de5d0b4
Author:Ozodimgba
Committer:GitHub

str-526: add subscribeGossip endpoint for contact info streaming

Commit:89c594e
Author:Cameron Podd
Committer:GitHub

Add token_accounts filter for ATA owner expansion on transaction subscriptions (#762) * test(geyser): failing tests for optional token_accounts filter Adds an optional `token_accounts` field (#30) to SubscribeRequestFilterTransactions in the proto, plus 22 tests covering the desired behavior: - mode parsing accepts none/all/balanceChanged and rejects others - mode=None preserves legacy account_include/exclude/required semantics - mode=all matches an owner present in pre OR post token balances - mode=balanceChanged matches an owner whose amount changed, who is newly created, or whose account was closed; ignores unchanged owners - include/exclude/required apply uniformly to the effective set - multi-ATA owner keyed by account_index, not collapsed by owner alone - unparseable owner strings are silently skipped - empty balances do not panic - transactions_status path honors the new field - token_accounts alone counts as a non-"any" constraint for limits - invalid mode string is rejected at filter construction The matching logic in FilterTransactions::get_updates is intentionally not yet wired to the new field; 12 of these 22 tests fail. The next commit adds the per-tx token-balance owner expansion that makes them pass. * feat(geyser): server-side token_accounts filter implementation Wires the optional `token_accounts` field on SubscribeRequestFilterTransactions to per-transaction matching. When the mode is set, account_include / account_exclude / account_required are evaluated against an effective account set that unions the real account keys with the owners of pre/post token balances on the transaction. The mode controls which owners are included: - "none" (default): no expansion. Legacy behavior preserved. - "all": every parseable owner in pre OR post token balances. - "balanceChanged": owners whose token balance changed (compared by account_index), or whose account was closed. The expansion set is rebuilt fresh for every (filter, tx) pair. Caching is intentionally not introduced; downstream forks that care about the per-tx cost can layer it on. The mode=None path is free — it returns an empty set and never touches the meta token balances. All 22 tests added in the previous commit now pass; the full yellowstone-grpc-geyser test suite (91 tests) passes across three runs. cargo clippy --all-features --all-targets is clean. * Refactor * perf(geyser): cache token_account owners per-tx via OnceLock Switches the per-(filter, tx) owner-set recompute to a per-tx OnceLock cache attached to MessageTransactionInfo, so the pre/post token-balance scan runs at most once per (tx, mode) regardless of how many filters evaluate against the tx. Two new fields on MessageTransactionInfo, mirroring the existing pre_encoded OnceLock: - token_owners_all: OnceLock<HashSet<Pubkey>> - token_owners_changed: OnceLock<HashSet<Pubkey>> Each is built lazily on first read. mode=None never touches either cache (the closure returns None and falls through to the plain account_keys check), so non-ATA subscribers pay zero cost. Adds four cache-semantic tests: - cache_is_lazy_and_per_mode - cache_is_reused_across_filter_evaluations - cache_separates_all_and_balance_changed_modes - cache_untouched_when_mode_is_none Full geyser suite stable at 95/95 across three runs. cargo clippy --all-features --all-targets clean. * review(geyser): switch token_accounts to proto enum + Option<Mode> Addresses lvboudre's review on rpcpool/yellowstone-grpc#762: * Proto: replace `optional string token_accounts` with a proper enum TokenAccountExpansionControlFlag { ALL=0, BALANCE_CHANGED=1 } and keep the field on SubscribeRequestFilterTransactions `optional`. Absence already encodes "no expansion"; no string parsing on the server. * Rust: drop the redundant TokenAccountsMode::None variant; the field on FilterTransactionsInner is now Option<TokenAccountsMode> so absence is encoded by Option::None (matches the proto's optional). * Examples: update examples/rust/{client,tx-blocktime}.rs and the napi validation tests with token_accounts: None on SubscribeRequestFilterTransactions literals. * cargo +nightly fmt to satisfy CI/CD. Tests adapted: TokenAccountsMode::parse → from_proto, invalid-mode test now passes a bogus i32 (99) instead of a bogus string. 95/95 geyser tests pass over three consecutive runs; cargo clippy clean; cargo +nightly fmt --check clean.

Commit:a45cdda
Author:leafaar
Committer:Louis-Vincent

chore: bump to agave 4.1.0-beta.2

Commit:b1a2f99
Author:leafaar
Committer:leafaar

chore: bump to agave 4.1.0-beta.2

Commit:486c210
Author:Ozodimgba
Committer:GitHub

STR-450: Cuckoo filter account subscriptions #732

Commit:f7c5faf
Author:Leafaar
Committer:GitHub

chore: bump to agave 4.0.0-rc.0 (#736) - bump agave monorepo deps to 4.0.0-rc.0 (geyser-plugin-interface, account-decoder, storage-proto, transaction-context, transaction-status) - bump matching Solana SDK crates (account 3.4.0, hash 4.2.0, message 3.1.0, pubkey 4.1.0, signature 3.3.0, transaction 3.1.0, keypair 3.1.0, clock 3.0.1, spl-token-2022-interface 2.1.0) - bump rust toolchain to 1.94.1 (required by agave 4.0.0-rc.0) - proto: add commission_bps field to Reward (SIMD-0291) - geyser: wire commission_bps through convert_to / convert_from - geyser: update TransactionReturnData import path to solana_transaction_context::transaction::TransactionReturnData - fix new clippy 1.94 lints (iter_kv_map, manual_is_multiple_of) - yellowstone-grpc-geyser 12.3.0 -> 13.0.0 - yellowstone-grpc-proto 12.2.0 -> 12.3.0 - changelog: add entries for #735 (grpc method in bandwidth metrics) and #733 (mac noop core affinity) which were missing

Commit:1b0ee39
Author:Leafaar
Committer:GitHub

feat(proto): add slot updates and V2 shred fields to deshred protos (#726)

Commit:0dfae93
Author:leafaar
Committer:leafaar

feat(grpc): add deshred transaction support Introduces `SubscribeDeshred`, a new RPC endpoint for subscribing to deshred transactions. These are transactions received when entries are formed from shreds, before execution occurs. At this stage, no `TransactionStatusMeta` is available. Address lookup tables are resolved during deshred, making both static and dynamically loaded account keys available for filtering (`account_include`, `account_exclude`, `account_required`). The new endpoint uses a separate `SubscribeUpdateDeshred` response type with its own `FilteredUpdateDeshred` server-side encoding, keeping deshred streams fully independent from the main `Subscribe` RPC. On the plugin side, implements the `notify_deshred_transaction` hook from the geyser plugin interface and adds configuration to enable these notifications. Includes comprehensive filter tests for vote filtering, account include/exclude with static and loaded (ALT) addresses, account required, and pong generation.

Commit:00cb5fe
Author:leafaar
Committer:leafaar

chore: bump to agave 4.0.0-beta.6

Commit:643db75
Author:leafaar

chore: bump to agave 4.0.0-beta.2

Commit:683abbb
Author:Leafaar
Committer:GitHub

feat: add deshred-transaction proto support (#684)

Commit:c4f0dbf
Author:leafaar

feat(grpc): add loaded addresses (ALT) support for deshred transactions Address lookup tables are now resolved during deshred, so both static account keys and dynamically loaded addresses are available. This updates the deshred subscription to propagate loaded addresses to clients and use them for filtering. Filter fields renamed from `static_account_*` to `account_*` with new `account_required` field to match the regular transaction filter interface.

Commit:dad2ef9
Author:leafaar

feat(grpc): add deshred transaction subscription support Introduces `SubscribeDeshred`, a new RPC endpoint for subscribing to deshred transactions. These are transactions received when entries are formed from shreds, before execution occurs. At this stage, no `TransactionStatusMeta` is available and address lookup tables have not been resolved, meaning only static account keys from the transaction message can be used for filtering. The new endpoint uses `SubscribeDeshredRequest` which contains a filter map for deshred transactions and an optional ping field. Filters support vote transaction filtering and static account include/exclude lists. On the plugin side, implements the `notify_deshred_transaction` hook from the geyser plugin interface and adds configuration to enable these notifications.

Commit:1b3d7d4
Author:Linus Kendall
Committer:GitHub

Add comment to SubscribeUnconfirmedUpdate message Added comment to clarify purpose of the oneof field.

Commit:5b5de4c
Author:Linus Kendall
Committer:GitHub

Reorder fields in SubscribeUnconfirmedRequestFilterTransactions

Commit:a53c308
Author:Linus Kendall
Committer:GitHub

Add additional type

Commit:ee12d03
Author:Linus Kendall
Committer:GitHub

Add SubscriberUnconfirmed RPC and request messages Added SubscriberUnconfirmed RPC and related messages for unconfirmed transactions.

Commit:0c9519c
Author:Louis-Vincent Boudreault
Committer:GitHub

migrated to v3

Commit:7ee766f
Author:leafaar

feat(proto): add option to include/exclude pre/post accounts on txn

Commit:59a7913
Author:leafaar
Committer:leafaar

feat(proto): add encoding support for pre/post accounts

Commit:ae011c5
Author:leafaar
Committer:leafaar

feat(proto): add pre/post account changes in txn

Commit:66944c4
Author:leafaar

feat(proto): add pre/post account changes in txn

Commit:77f05d3
Author:leafaar

chore(plugin): remove timestamp leftovers

Commit:fbbdaea
Author:Wilfred Almeida
Committer:GitHub

refactor: add leftover files from `message_hash` removal Signed-off-by: GitHub <noreply@github.com>

Commit:73c43e1
Author:Wilfred Almeida
Committer:GitHub

feat: agave 3.0 dependency upgrades, ci fixes, version bumps, changelog Signed-off-by: GitHub <noreply@github.com>

Commit:5809d9b
Author:Wilfred Almeida
Committer:GitHub

reafactor: upgrade dependencies to agave 3 and fix errors

Commit:ba086e0
Author:Louis-Vincent

updated geyser v2 poc to latest master changes

Commit:0098fcd
Author:Louis-Vincent

Merge branch 'master' into v2-poc

Commit:ea2a0d2
Author:Wilfred Almeida
Committer:GitHub

upgrade dependencies to 2.3.x (#598) * upgrade dependencies to 2.3.x Signed-off-by: GitHub <noreply@github.com> * fix version number in changelog Signed-off-by: GitHub <noreply@github.com> --------- Signed-off-by: GitHub <noreply@github.com>

Commit:c62b23b
Author:Wilfred Almeida
Committer:GitHub

upgrade dependencies to 2.3.x Signed-off-by: GitHub <noreply@github.com>

Commit:bce993d
Author:Louis-Vincent
Committer:Louis-Vincent

v2: first draft of geyser grpc v2

Commit:82bea23
Author:Kirill Fomichev
Committer:GitHub

backport: SubscribeReplayInfo (#583) * TS SDK version bump and Cargo.lock update (#569) * bump TS SDK version Signed-off-by: GitHub <noreply@github.com> * update deny.toml Signed-off-by: GitHub <noreply@github.com> * Bumping action version, setting up rust version to match compile one Signed-off-by: GitHub <noreply@github.com> * update Cargo.lock Signed-off-by: GitHub <noreply@github.com> --------- Signed-off-by: GitHub <noreply@github.com> * fix: Slot update message now handles levels missing from CommitmentLevel (#557) * fix: Slot update message now handles levels missing from CommitmentLevel * bump version, changelog --------- Co-authored-by: Kirill Fomichev <fanatid@ya.ru> * proto: add unary method `SubscribeReplayInfo` (#578) --------- Signed-off-by: GitHub <noreply@github.com> Co-authored-by: Wilfred Almeida <60785452+WilfredAlmeida@users.noreply.github.com> Co-authored-by: tangchaoliziya <62239642+tangchaoliziya@users.noreply.github.com>

Commit:a884a0b
Author:Kirill Fomichev
Committer:GitHub

proto: add unary method `SubscribeReplayInfo` (#578)

Commit:d36f8ba
Author:Kirill Fomichev
Committer:GitHub

proto: add enum `SlotStatus` (#529)

Commit:924ee5a
Author:Kirill Fomichev
Committer:GitHub

proto: add field `interslot_updates` (#527)

Commit:239dc3b
Author:Linus Kendall
Committer:GitHub

New way to specify slot commitment levels

Commit:663fa6a
Author:lvboudre
Committer:GitHub

fumarole: added ListConsumerGroups,DeleteConsumerGroup and (#500)

Commit:fe58ada
Author:Kirill Fomichev
Committer:Kirill Fomichev

proto: add `from_slot` (#477)

Commit:5376d13
Author:Kirill Fomichev
Committer:Kirill Fomichev

proto: add field `created_at` to update message (#479)

Commit:5bf7570
Author:Kirill Fomichev
Committer:GitHub

proto: add `from_slot` (#477)

Commit:103b54a
Author:Kirill Fomichev
Committer:GitHub

proto: add field `created_at` to update message (#479)

Commit:6f5f225
Author:Kirill Fomichev
Committer:GitHub

solana: upgrade to v2.1.1 (#468)

Commit:fe7d83e
Author:Louis-Vincent

added fumarole proto

Commit:5ac20df
Author:Kirill Fomichev
Committer:GitHub

proto: add txn_signature filter (#445)

Commit:d6e3786
Author:Kirill Fomichev
Committer:GitHub

proto: add lamports filter (#369)

Commit:03b2cc2
Author:Louis-Vincent

added get slot lag info method

Commit:928f9c1
Author:Louis-Vincent

added consumer group label

Commit:479d5a4
Author:Louis-Vincent
Committer:Louis-Vincent

remove timeline translation stuff

Commit:e642400
Author:Louis-Vincent
Committer:Louis-Vincent

remove optional from consumer_group_id

Commit:b134f6b
Author:Louis-Vincent
Committer:Louis-Vincent

renamed fields for yellowstone-log

Commit:3614800
Author:Louis-Vincent
Committer:Louis-Vincent

proto: added yellowstone-log.proto

Commit:35431c6
Author:Jordan Sinko
Committer:Kirill Fomichev

proto: fix go_package location (#380)

Commit:98ff94f
Author:Jordan Sinko
Committer:GitHub

proto: fix go_package location (#380)

Commit:0ccdc41
Author:Kirill Fomichev
Committer:GitHub

solana: update to 2.0.2 (#377)

Commit:d20d71c
Author:Kirill Fomichev
Committer:GitHub

proto: fix go_package location (#376)

Commit:45c3a35
Author:Kirill Fomichev
Committer:Kirill Fomichev

extend proto, example

Commit:a0c9908
Author:Louis-Vincent
Committer:Louis-Vincent

proto: remove proto package

This commit does not contain any .proto files.

Commit:9d5b251
Author:lvboudre
Committer:GitHub

tools: remove yellowstone-log (#368)

Commit:559592b
Author:Louis-Vincent

leader in progress

Commit:d693db1
Author:Louis-Vincent
Committer:Louis-Vincent

wip

Commit:27b1aa9
Author:Louis-Vincent

added fencing token

Commit:6e074b0
Author:Louis-Vincent
Committer:Louis-Vincent

wip

Commit:f7e2f5c
Author:lvboudre
Committer:GitHub

tools: decoupled grpc from consumer_source (#351) * tools: decoupled grpc from consumer_source * add protobuf-compiler in test dependencies

Commit:f28384f
Author:lvboudre
Committer:GitHub

tools: add commitment level supports for consumer + better metadata (#350)

Commit:98a3140
Author:lvboudre
Committer:GitHub

tools: scylladb cosumer and refactor scylla sink

Commit:4959006
Author:Louis-Vincent

fix proto endpoint bad naming

Commit:b91a0b8
Author:Louis-Vincent

fix formatting and added docs

Commit:3bb1f56
Author:Louis-Vincent

Added scylladb consumer module + refactory scylladb sink

Commit:a6d8b5b
Author:Louis-Vincent
Committer:Louis-Vincent

wip

Commit:1170167
Author:Louis-Vincent
Committer:Louis-Vincent

wip

Commit:f8d2d30
Author:Kirill Fomichev
Committer:Kirill Fomichev

geyser: add `transactions_status` filter (#310)

Commit:baa1a8b
Author:Kirill Fomichev
Committer:GitHub

geyser: add `transactions_status` filter (#310)

Commit:24d18a7
Author:Kirill Fomichev
Committer:GitHub

proto: add `starting_transaction_index` to entry message (#289)

Commit:7a800d9
Author:Kirill Fomichev

solana: update to 1.18.3

Commit:01faea2
Author:Kirill Fomichev
Committer:GitHub

proto: add `entries_count` to block meta message (#283)

Commit:d06953c
Author:Godmode Galactus
Committer:Linus Kendall

Ximplement getting banking stage errors over geyser with accounts

Commit:928b648
Author:mergify[bot]
Committer:GitHub

v1.16: proto: add optional field `ping` to `SubscribeRequest` (backport of #227) (#229) (cherry picked from commit 7bd3596c34d1e8dff9867d1d8f94a4bebe67ca0f) Co-authored-by: Kirill Fomichev <fanatid@ya.ru>

Commit:7bd3596
Author:Kirill Fomichev
Committer:GitHub

proto: add optional field `ping` to `SubscribeRequest` (#227)

Commit:4af74ea
Author:mergify[bot]
Committer:GitHub

v1.16: proto: add optional field `filter_by_commitment` to Slots filter (backport of #223) (#224) (cherry picked from commit c5f2601dd082ed4441c2e72e54a81799bb438f0a) Co-authored-by: Kirill Fomichev <fanatid@ya.ru>

Commit:c5f2601
Author:Kirill Fomichev
Committer:GitHub

proto: add optional field `filter_by_commitment` to Slots filter (#223)

Commit:06f06ee
Author:Godmode Galactus
Committer:Godmode Galactus

implement getting banking stage errors over geyser with accounts

Commit:0f5f33f
Author:Kirill Fomichev
Committer:Kirill Fomichev

geyser: include entries to block message (#169)

Commit:366f2f3
Author:Kirill Fomichev
Committer:Kirill Fomichev

geyser: add Entry message (#163)

Commit:f2cfba9
Author:Kirill Fomichev
Committer:GitHub

geyser: include entries to block message (#169)

Commit:b482e67
Author:Kirill Fomichev
Committer:GitHub

geyser: add Entry message (#163)

Commit:0323f98
Author:Kirill Fomichev
Committer:Kirill Fomichev

geyser: add accounts to block message (#160)

Commit:6562dee
Author:Kirill Fomichev
Committer:GitHub

geyser: add accounts to block message (#160)

Commit:1b6c833
Author:Kirill Fomichev
Committer:Kirill Fomichev

proto: add `account_include` to Blocks filter (#155)

Commit:4585913
Author:Kirill Fomichev
Committer:GitHub

proto: add `account_include` to Blocks filter (#155)

Commit:6db9c9d
Author:Kirill Fomichev
Committer:Kirill Fomichev

geyser: add TokenAccountState to accounts filter (#154)

Commit:1486ebd
Author:Kirill Fomichev
Committer:GitHub

geyser: add TokenAccountState to accounts filter (#154)

Commit:e1ea5cf
Author:Nikita Baksalyar
Committer:Kirill Fomichev

backport: v1.0.0+solana.1.16.1

Commit:ef9c079
Author:Kirill Fomichev
Committer:GitHub

geyser: support data_slice for accounts (#150)

Commit:dc91705
Author:Kirill Fomichev
Committer:Kirill Fomichev

PoC: get_program_accounts

Commit:ac74df8
Author:Kirill Fomichev
Committer:Kirill Fomichev

move get_version

Commit:06c994b
Author:Kirill Fomichev
Committer:Kirill Fomichev

geyser: send task per connection (#145)

Commit:b7fa0cd
Author:Kirill Fomichev
Committer:Kirill Fomichev

geyser: send task per connection (#145)

Commit:7e2d01a
Author:Kirill Fomichev
Committer:GitHub

backport v0.7.0 (#136) * 111 add logical and to transaction subscriptiosn (#121) * feat: #111 - Add account_required logic to FilterTransactions * test: Test empty parameters for account and transactions. * feat: #111 test cases * feat: add ping,get_latest_blockhash,get_block_height,get_slot for yellowstone-grpc-client * ci: add tests check to clippy (#125) * rust client: add unary methods to example (#126) * plugin: remove connection after disconnect (#127) * change clippy rule * plugin: remove connection after disconnect * grpc, proto: add commitment level (#128) * grpc, proto: add getVersion (#130) * grpc, proto: add unary is_blockhash_valid (#132) * version: bump (#133) --------- Co-authored-by: cairo <shuimuliang@gmail.com>