Skip to content

Batch sender fixed - #177

Open
stpatrickghost wants to merge 4 commits into
wraith-protocol:developfrom
stpatrickghost:Batch-sender-FIXED
Open

Batch sender fixed#177
stpatrickghost wants to merge 4 commits 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.

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