diff --git a/crates/core/component/compact-block/src/component/manager.rs b/crates/core/component/compact-block/src/component/manager.rs index 8824a0c16a..dfd777a9e0 100644 --- a/crates/core/component/compact-block/src/component/manager.rs +++ b/crates/core/component/compact-block/src/component/manager.rs @@ -91,6 +91,8 @@ trait Inner: StateWrite { let note_payloads = self .pending_note_payloads() .into_iter() + // Filter out notes with the compact block exclusion flag set. + .filter(|(_pos, note, _source)| !note.sync_exclude) // Strip the sources of transaction IDs .map(|(pos, note, source)| (pos, (note, source.stripped()).into())); let rolled_up_payloads = self diff --git a/crates/core/component/shielded-pool/src/component/action_handler/spend.rs b/crates/core/component/shielded-pool/src/component/action_handler/spend.rs index ee4c1ace85..8d2f6cb52b 100644 --- a/crates/core/component/shielded-pool/src/component/action_handler/spend.rs +++ b/crates/core/component/shielded-pool/src/component/action_handler/spend.rs @@ -46,6 +46,8 @@ impl ActionHandler for Spend { let source = state.get_current_source().expect("source should be set"); + // TODO: if the request body has the "don't store in compact block" bit set, + // then we should not store this nullifier in the compact block. state.nullify(self.body.nullifier, source).await; // Also record an ABCI event for transaction indexing.