Skip to content

Batch sender fixed - #177

Closed
stpatrickghost wants to merge 0 commit into
wraith-protocol:developfrom
stpatrickghost:Batch-sender-FIXED
Closed

Batch sender fixed#177
stpatrickghost wants to merge 0 commit into
wraith-protocol:developfrom
stpatrickghost:Batch-sender-FIXED

Conversation

@stpatrickghost

Copy link
Copy Markdown
Contributor

Summary

Batch-sender was emitting single-topic ANNOUNCE events, which broke
server-side topic-3 view-tag filtering and forced indexers to full-scan
its output. Per-transfer announcements now go through the announcer
contract, the same announcer_client::announce pattern splitter already
uses, so all three sources emit the v2 4-topic layout:

topics: ("announce", scheme_id, view_tag_bucket, metadata_kind)
data: (stealth_address, ephemeral_pub_key, metadata)

view_tag_bucket = metadata[0] as u32.

Issue #62 is an audit-doc correction only. splitter fund_split already
routes through the announcer; no splitter logic change.

Changes

  • stealth-batch-sender: drop inline (ANNOUNCE,) publish; call announcer
    instead. batch_send now takes announcer + scheme_id. Transfer gains
    metadata and uses BytesN<32> for the ephemeral key.
  • Unit + snapshot tests assert the 4-topic layout and view-tag derivation.
  • New integration test topic_filter.rs: topic-3 filter returns only the
    matching view-tag subset across announcer, splitter, and batch-sender.
  • EVENT_INDEXING_AUDIT.md: close Per-network deployment config validation #63 as resolved; close Independent third-party audit preparation pack #62 as a stale
    audit-doc finding.
  • Reference indexer processor: one announcement path for announcer,
    sender, splitter, and batch-sender. No batch-sender-specific
    single-topic handler.
  • bench-crossover and Cargo.toml/lock updated for the new API.
  • stealth-splitter Cargo.toml adds rlib so the integration test can
    link it. No splitter source change.

Test plan

  • cargo fmt --all -- --check
  • cargo test -p stealth-batch-sender
  • cargo test -p integration-tests --test topic_filter
  • cargo check -p stealth-batch-sender -p integration-tests -p stealth-splitter -p wraith-stellar-bench-crossover

Closes #159

@truthixify

Copy link
Copy Markdown
Contributor

Thanks for reopening this @stpatrickghost, and the cargo fmt drift from before is gone.

The stellar job now fails on something else, and it is not in batch-sender:

error[E0432]: unresolved import `wraith_metrics`
 --> stealth-splitter/src/lib.rs:7:5
7 | use wraith_metrics::{contract_ids, dimension_names, emit_metric, metric_names};

That import arrived with #171 (metrics wiring), which also added the matching dependency to stellar/stealth-splitter/Cargo.toml. Current develop has both halves and compiles fine. Your branch has the .rs half without the Cargo.toml half, which is the signature of a rebase or merge that took one side of a conflicted file.

Rather than patching the Cargo.toml by hand, rebase cleanly so you pick up both:

git fetch origin
git rebase origin/develop

Then confirm stellar/stealth-splitter/Cargo.toml contains wraith-metrics = { path = "../wraith-metrics" } under [dependencies] before pushing.

One small thing in your own diff: stellar/stealth-batch-sender/Cargo.toml gains a trailing whitespace line and loses its final newline. Harmless, but cargo fmt will not catch it, so worth tidying while you are there.

@stpatrickghost
stpatrickghost deleted the Batch-sender-FIXED branch August 29, 2026 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants