0.5.1-pre.002
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: kb-app-demo-desktop/src/demo_decode_replay.rs
|
||||
// version: 39
|
||||
// version: 40
|
||||
|
||||
//! Tauri commands and UI payloads for contextual instruction decode replay.
|
||||
|
||||
@@ -319,8 +319,8 @@ pub(crate) struct DemoDecodeReplayObserver<'a> {
|
||||
pub(crate) cancel_requested: &'a std::sync::atomic::AtomicBool,
|
||||
}
|
||||
|
||||
impl kb_pipeline::DecodeReplayObserver for crate::DemoDecodeReplayObserver<'_> {
|
||||
fn on_progress(&self, event: &kb_pipeline::DecodeReplayProgressEvent) {
|
||||
impl ks_pipeline::DecodeReplayObserver for crate::DemoDecodeReplayObserver<'_> {
|
||||
fn on_progress(&self, event: &ks_pipeline::DecodeReplayProgressEvent) {
|
||||
let payload = crate::DemoDecodeReplayProgressPayload {
|
||||
campaign_id: self.campaign_id.clone(),
|
||||
timestamp: event.timestamp.clone(),
|
||||
@@ -385,7 +385,7 @@ pub(crate) fn demo_decode_replay_options(
|
||||
return format!("{}@{}", identity.name, identity.version);
|
||||
})
|
||||
.collect::<std::vec::Vec<_>>();
|
||||
let programs = kb_program_ids::registered_program_ids()
|
||||
let programs = ks_program_ids::registered_program_ids()
|
||||
.iter()
|
||||
.map(|entry| {
|
||||
return crate::DemoDecodeReplayProgramOption {
|
||||
@@ -398,7 +398,7 @@ pub(crate) fn demo_decode_replay_options(
|
||||
tracing::debug!(
|
||||
target: crate::TRACING_TARGET,
|
||||
action = "load_options",
|
||||
pipeline_version = kb_pipeline::DECODE_PIPELINE_VERSION,
|
||||
pipeline_version = ks_pipeline::DECODE_PIPELINE_VERSION,
|
||||
decoder_count = decoder_options.len(),
|
||||
materializer_names = ?materializer_names,
|
||||
default_limit = 100_u32,
|
||||
@@ -407,7 +407,7 @@ pub(crate) fn demo_decode_replay_options(
|
||||
"return contextual decode replay options"
|
||||
);
|
||||
return crate::DemoDecodeReplayOptionsPayload {
|
||||
pipeline_version: kb_pipeline::DECODE_PIPELINE_VERSION.to_string(),
|
||||
pipeline_version: ks_pipeline::DECODE_PIPELINE_VERSION.to_string(),
|
||||
decoders: decoder_options,
|
||||
materializer_names,
|
||||
programs,
|
||||
@@ -423,7 +423,7 @@ pub(crate) async fn demo_decode_replay_execute(
|
||||
state: tauri::State<'_, crate::AppState>,
|
||||
request: crate::DemoDecodeReplayRequest,
|
||||
) -> std::result::Result<crate::DemoDecodeReplaySummaryPayload, std::string::String> {
|
||||
let campaign_id = kb_pipeline::new_decode_campaign_id();
|
||||
let campaign_id = ks_pipeline::new_decode_campaign_id();
|
||||
tracing::debug!(
|
||||
target: crate::TRACING_TARGET,
|
||||
action = "execute",
|
||||
@@ -510,7 +510,7 @@ pub(crate) async fn demo_decode_replay_execute(
|
||||
campaign_id: pipeline_request.campaign_id.clone(),
|
||||
cancel_requested: state.demo_decode_replay_cancel_requested(),
|
||||
};
|
||||
let summary_result = kb_pipeline::execute_decode_replay(
|
||||
let summary_result = ks_pipeline::execute_decode_replay(
|
||||
&store,
|
||||
&pipeline_request,
|
||||
decoders.as_slice(),
|
||||
@@ -582,7 +582,7 @@ pub(crate) async fn demo_decode_replay_diagnostics(
|
||||
})
|
||||
.map(crate::table_snapshot_from_pg)
|
||||
.collect();
|
||||
let coverage_result = kb_store::DecodePipelineStore::list_decode_coverage_summary(
|
||||
let coverage_result = ks_store::DecodePipelineStore::list_decode_coverage_summary(
|
||||
&store,
|
||||
std::option::Option::None,
|
||||
std::option::Option::None,
|
||||
@@ -605,7 +605,7 @@ pub(crate) async fn demo_decode_replay_annotations(
|
||||
state: tauri::State<'_, crate::AppState>,
|
||||
request: crate::DemoTransactionAnnotationRequest,
|
||||
) -> std::result::Result<std::vec::Vec<crate::DemoTransactionAnnotationRow>, std::string::String> {
|
||||
let filter_result = kb_store::MaterializedEventFilter::new(
|
||||
let filter_result = ks_store::MaterializedEventFilter::new(
|
||||
std::option::Option::Some("materializer.transaction.annotations".to_string()),
|
||||
std::option::Option::Some("transaction_annotation".to_string()),
|
||||
request.signature_contains,
|
||||
@@ -622,7 +622,7 @@ pub(crate) async fn demo_decode_replay_annotations(
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
};
|
||||
let rows_result =
|
||||
kb_store::DecodePipelineStore::list_materialized_events(&store, &filter).await;
|
||||
ks_store::DecodePipelineStore::list_materialized_events(&store, &filter).await;
|
||||
let rows = match rows_result {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error.to_string()),
|
||||
@@ -656,39 +656,39 @@ fn register_active_campaign(
|
||||
return std::result::Result::Ok(());
|
||||
}
|
||||
|
||||
fn available_materializers() -> std::vec::Vec<std::sync::Arc<dyn kb_lib::MtApiEventMaterializer>> {
|
||||
fn available_materializers() -> std::vec::Vec<std::sync::Arc<dyn ks_lib::MtApiEventMaterializer>> {
|
||||
return std::vec![
|
||||
std::sync::Arc::new(kb_lib::MtAdminMaterializer),
|
||||
std::sync::Arc::new(kb_lib::MtComplianceAuditMaterializer),
|
||||
std::sync::Arc::new(kb_lib::MtFeesMaterializer),
|
||||
std::sync::Arc::new(kb_lib::MtLifecycleMaterializer),
|
||||
std::sync::Arc::new(kb_lib::MtMetadataMetaplexTokenMetadataMaterializer),
|
||||
std::sync::Arc::new(kb_lib::MtMetadataSolanaProgramMaterializer),
|
||||
std::sync::Arc::new(kb_lib::MtMetadataToken2022Materializer),
|
||||
std::sync::Arc::new(kb_lib::MtStakingMaterializer),
|
||||
std::sync::Arc::new(kb_lib::MtTokenAccountsMaterializer),
|
||||
std::sync::Arc::new(kb_lib::MtRiskMaterializer),
|
||||
std::sync::Arc::new(kb_lib::MtTransactionAnnotationMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtAdminMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtComplianceAuditMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtFeesMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtLifecycleMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtMetadataMetaplexTokenMetadataMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtMetadataSolanaProgramMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtMetadataToken2022Materializer),
|
||||
std::sync::Arc::new(ks_lib::MtStakingMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtTokenAccountsMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtRiskMaterializer),
|
||||
std::sync::Arc::new(ks_lib::MtTransactionAnnotationMaterializer),
|
||||
];
|
||||
}
|
||||
|
||||
fn available_decoders() -> std::vec::Vec<std::sync::Arc<dyn kb_lib::DcApiInstructionDecoder>> {
|
||||
fn available_decoders() -> std::vec::Vec<std::sync::Arc<dyn ks_lib::DcApiInstructionDecoder>> {
|
||||
return std::vec![
|
||||
std::sync::Arc::new(kb_lib::DcSolanaCoreDecoder),
|
||||
std::sync::Arc::new(kb_lib::DcMetadataMetaplexTokenMetadataDecoder),
|
||||
std::sync::Arc::new(kb_lib::DcMetadataSolanaProgramMetadataDecoder),
|
||||
std::sync::Arc::new(kb_lib::DcSplAssociatedTokenAccountDecoder),
|
||||
std::sync::Arc::new(kb_lib::DcSplElgamalRegistryDecoder),
|
||||
std::sync::Arc::new(kb_lib::DcSplMemoDecoder),
|
||||
std::sync::Arc::new(kb_lib::DcSplTokenDecoder),
|
||||
std::sync::Arc::new(kb_lib::DcSplToken2022Decoder),
|
||||
std::sync::Arc::new(ks_lib::DcSolanaCoreDecoder),
|
||||
std::sync::Arc::new(ks_lib::DcMetadataMetaplexTokenMetadataDecoder),
|
||||
std::sync::Arc::new(ks_lib::DcMetadataSolanaProgramMetadataDecoder),
|
||||
std::sync::Arc::new(ks_lib::DcSplAssociatedTokenAccountDecoder),
|
||||
std::sync::Arc::new(ks_lib::DcSplElgamalRegistryDecoder),
|
||||
std::sync::Arc::new(ks_lib::DcSplMemoDecoder),
|
||||
std::sync::Arc::new(ks_lib::DcSplTokenDecoder),
|
||||
std::sync::Arc::new(ks_lib::DcSplToken2022Decoder),
|
||||
];
|
||||
}
|
||||
|
||||
fn build_pipeline_request(
|
||||
request: crate::DemoDecodeReplayRequest,
|
||||
campaign_id: std::string::String,
|
||||
) -> std::result::Result<kb_pipeline::DecodeReplayRequest, std::string::String> {
|
||||
) -> std::result::Result<ks_pipeline::DecodeReplayRequest, std::string::String> {
|
||||
let states_result = processing_states(request.instruction_state.as_str());
|
||||
let states = match states_result {
|
||||
std::result::Result::Ok(value) => value,
|
||||
@@ -703,7 +703,7 @@ fn build_pipeline_request(
|
||||
},
|
||||
_ => std::vec::Vec::new(),
|
||||
};
|
||||
let selection_result = kb_store::DecodeSelectionFilter::new(
|
||||
let selection_result = ks_store::DecodeSelectionFilter::new(
|
||||
signatures,
|
||||
states,
|
||||
std::option::Option::None,
|
||||
@@ -718,11 +718,11 @@ fn build_pipeline_request(
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error.to_string()),
|
||||
};
|
||||
let dispatch_policy = if request.all_compatible {
|
||||
kb_pipeline::DecodeDispatchPolicy::AllCompatible
|
||||
ks_pipeline::DecodeDispatchPolicy::AllCompatible
|
||||
} else {
|
||||
kb_pipeline::DecodeDispatchPolicy::HighestPriority
|
||||
ks_pipeline::DecodeDispatchPolicy::HighestPriority
|
||||
};
|
||||
let pipeline_request = kb_pipeline::DecodeReplayRequest {
|
||||
let pipeline_request = ks_pipeline::DecodeReplayRequest {
|
||||
campaign_id,
|
||||
selection,
|
||||
decoder_names: request.decoder_names,
|
||||
@@ -773,31 +773,31 @@ fn text_sample(values: &[std::string::String], limit: usize) -> std::vec::Vec<&s
|
||||
|
||||
fn processing_states(
|
||||
value: &str,
|
||||
) -> std::result::Result<std::vec::Vec<kb_store::CoreInstructionProcessingState>, std::string::String>
|
||||
) -> std::result::Result<std::vec::Vec<ks_store::CoreInstructionProcessingState>, std::string::String>
|
||||
{
|
||||
return match value.trim() {
|
||||
"incomplete_signatures" | "actionable" => std::result::Result::Ok(std::vec![
|
||||
kb_store::CoreInstructionProcessingState::Pending,
|
||||
kb_store::CoreInstructionProcessingState::Failed,
|
||||
kb_store::CoreInstructionProcessingState::ReplayRequested,
|
||||
ks_store::CoreInstructionProcessingState::Pending,
|
||||
ks_store::CoreInstructionProcessingState::Failed,
|
||||
ks_store::CoreInstructionProcessingState::ReplayRequested,
|
||||
]),
|
||||
"pending" => {
|
||||
std::result::Result::Ok(std::vec![kb_store::CoreInstructionProcessingState::Pending])
|
||||
std::result::Result::Ok(std::vec![ks_store::CoreInstructionProcessingState::Pending])
|
||||
},
|
||||
"failed" => {
|
||||
std::result::Result::Ok(std::vec![kb_store::CoreInstructionProcessingState::Failed])
|
||||
std::result::Result::Ok(std::vec![ks_store::CoreInstructionProcessingState::Failed])
|
||||
},
|
||||
"replay_requested" => std::result::Result::Ok(std::vec![
|
||||
kb_store::CoreInstructionProcessingState::ReplayRequested
|
||||
ks_store::CoreInstructionProcessingState::ReplayRequested
|
||||
]),
|
||||
"decoded" => {
|
||||
std::result::Result::Ok(std::vec![kb_store::CoreInstructionProcessingState::Decoded])
|
||||
std::result::Result::Ok(std::vec![ks_store::CoreInstructionProcessingState::Decoded])
|
||||
},
|
||||
"ignored" => {
|
||||
std::result::Result::Ok(std::vec![kb_store::CoreInstructionProcessingState::Ignored])
|
||||
std::result::Result::Ok(std::vec![ks_store::CoreInstructionProcessingState::Ignored])
|
||||
},
|
||||
"materialized" => std::result::Result::Ok(std::vec![
|
||||
kb_store::CoreInstructionProcessingState::Materialized
|
||||
ks_store::CoreInstructionProcessingState::Materialized
|
||||
]),
|
||||
_ => std::result::Result::Err("unsupported instruction processing state".to_string()),
|
||||
};
|
||||
@@ -823,7 +823,7 @@ fn split_lines(text: std::option::Option<&str>) -> std::vec::Vec<std::string::St
|
||||
}
|
||||
|
||||
fn summary_payload(
|
||||
summary: kb_pipeline::DecodeReplaySummary,
|
||||
summary: ks_pipeline::DecodeReplaySummary,
|
||||
) -> crate::DemoDecodeReplaySummaryPayload {
|
||||
return crate::DemoDecodeReplaySummaryPayload {
|
||||
campaign_id: summary.campaign_id,
|
||||
@@ -861,7 +861,7 @@ fn summary_payload(
|
||||
}
|
||||
|
||||
fn coverage_payload(
|
||||
value: kb_store::DecodeCoverageSummaryRow,
|
||||
value: ks_store::DecodeCoverageSummaryRow,
|
||||
) -> crate::DemoDecodeCoverageSummaryPayload {
|
||||
return crate::DemoDecodeCoverageSummaryPayload {
|
||||
processor_name: value.processor_name,
|
||||
@@ -882,7 +882,7 @@ fn coverage_payload(
|
||||
}
|
||||
|
||||
fn annotation_payload(
|
||||
row: kb_store::MaterializedEventQueryRow,
|
||||
row: ks_store::MaterializedEventQueryRow,
|
||||
) -> std::result::Result<crate::DemoTransactionAnnotationRow, std::string::String> {
|
||||
if row.processor_name != "materializer.transaction.annotations"
|
||||
|| row.materialized_family != "transaction_annotation"
|
||||
@@ -994,31 +994,31 @@ fn required_annotation_text(
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
fn ata_observation(entry: &str) -> kb_lib::DcApiDecodedObservation {
|
||||
return kb_lib::DcApiDecodedObservation {
|
||||
fn ata_observation(entry: &str) -> ks_lib::DcApiDecodedObservation {
|
||||
return ks_lib::DcApiDecodedObservation {
|
||||
event_key: format!("ata:{entry}:0"),
|
||||
event: kb_lib::MdDecodedProtocolEvent {
|
||||
signature: kb_lib::MdSignature("signature".to_string()),
|
||||
slot: kb_lib::MdSlot(1),
|
||||
instruction_path: kb_lib::MdInstructionPath("0".to_string()),
|
||||
program_id: kb_lib::MdProgramId(
|
||||
kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string(),
|
||||
event: ks_lib::MdDecodedProtocolEvent {
|
||||
signature: ks_lib::MdSignature("signature".to_string()),
|
||||
slot: ks_lib::MdSlot(1),
|
||||
instruction_path: ks_lib::MdInstructionPath("0".to_string()),
|
||||
program_id: ks_lib::MdProgramId(
|
||||
ks_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string(),
|
||||
),
|
||||
protocol_code: kb_lib::MdProtocolCode("spl.associated_token_account".to_string()),
|
||||
surface_code: kb_lib::MdSurfaceCode("spl.associated_token_account".to_string()),
|
||||
event_code: kb_lib::MdEventCode(format!("spl.associated_token_account.{entry}")),
|
||||
event_name: kb_lib::MdEventName(entry.to_string()),
|
||||
event_family: kb_lib::MdEventFamily::Lifecycle,
|
||||
source_kind: kb_lib::MdEventSourceKind::Instruction,
|
||||
confidence: kb_lib::MdDecoderConfidence::ManualExact,
|
||||
protocol_code: ks_lib::MdProtocolCode("spl.associated_token_account".to_string()),
|
||||
surface_code: ks_lib::MdSurfaceCode("spl.associated_token_account".to_string()),
|
||||
event_code: ks_lib::MdEventCode(format!("spl.associated_token_account.{entry}")),
|
||||
event_name: ks_lib::MdEventName(entry.to_string()),
|
||||
event_family: ks_lib::MdEventFamily::Lifecycle,
|
||||
source_kind: ks_lib::MdEventSourceKind::Instruction,
|
||||
confidence: ks_lib::MdDecoderConfidence::ManualExact,
|
||||
},
|
||||
payload_json: serde_json::json!({}),
|
||||
transaction_failed: false,
|
||||
transaction_error: std::option::Option::None,
|
||||
observation_committed: true,
|
||||
proof: kb_lib::DcApiDecoderProof {
|
||||
kind: kb_lib::DcApiDecoderProofKind::Manual,
|
||||
confidence: kb_lib::MdDecoderConfidence::ManualExact,
|
||||
proof: ks_lib::DcApiDecoderProof {
|
||||
kind: ks_lib::DcApiDecoderProofKind::Manual,
|
||||
confidence: ks_lib::MdDecoderConfidence::ManualExact,
|
||||
evidence: std::vec!["fixture".to_string()],
|
||||
},
|
||||
};
|
||||
@@ -1028,21 +1028,21 @@ mod tests {
|
||||
program_id: &str,
|
||||
surface: &str,
|
||||
entry: &str,
|
||||
) -> kb_lib::DcApiDecodedObservation {
|
||||
return kb_lib::DcApiDecodedObservation {
|
||||
) -> ks_lib::DcApiDecodedObservation {
|
||||
return ks_lib::DcApiDecodedObservation {
|
||||
event_key: format!("{surface}:{entry}:0"),
|
||||
event: kb_lib::MdDecodedProtocolEvent {
|
||||
signature: kb_lib::MdSignature("signature".to_string()),
|
||||
slot: kb_lib::MdSlot(1),
|
||||
instruction_path: kb_lib::MdInstructionPath("0".to_string()),
|
||||
program_id: kb_lib::MdProgramId(program_id.to_string()),
|
||||
protocol_code: kb_lib::MdProtocolCode(surface.to_string()),
|
||||
surface_code: kb_lib::MdSurfaceCode(surface.to_string()),
|
||||
event_code: kb_lib::MdEventCode(format!("{surface}.{entry}")),
|
||||
event_name: kb_lib::MdEventName(entry.to_string()),
|
||||
event_family: kb_lib::MdEventFamily::Metadata,
|
||||
source_kind: kb_lib::MdEventSourceKind::Instruction,
|
||||
confidence: kb_lib::MdDecoderConfidence::ManualExact,
|
||||
event: ks_lib::MdDecodedProtocolEvent {
|
||||
signature: ks_lib::MdSignature("signature".to_string()),
|
||||
slot: ks_lib::MdSlot(1),
|
||||
instruction_path: ks_lib::MdInstructionPath("0".to_string()),
|
||||
program_id: ks_lib::MdProgramId(program_id.to_string()),
|
||||
protocol_code: ks_lib::MdProtocolCode(surface.to_string()),
|
||||
surface_code: ks_lib::MdSurfaceCode(surface.to_string()),
|
||||
event_code: ks_lib::MdEventCode(format!("{surface}.{entry}")),
|
||||
event_name: ks_lib::MdEventName(entry.to_string()),
|
||||
event_family: ks_lib::MdEventFamily::Metadata,
|
||||
source_kind: ks_lib::MdEventSourceKind::Instruction,
|
||||
confidence: ks_lib::MdDecoderConfidence::ManualExact,
|
||||
},
|
||||
payload_json: serde_json::json!({
|
||||
"programId": program_id,
|
||||
@@ -1053,9 +1053,9 @@ mod tests {
|
||||
transaction_failed: false,
|
||||
transaction_error: std::option::Option::None,
|
||||
observation_committed: true,
|
||||
proof: kb_lib::DcApiDecoderProof {
|
||||
kind: kb_lib::DcApiDecoderProofKind::Manual,
|
||||
confidence: kb_lib::MdDecoderConfidence::ManualExact,
|
||||
proof: ks_lib::DcApiDecoderProof {
|
||||
kind: ks_lib::DcApiDecoderProofKind::Manual,
|
||||
confidence: ks_lib::MdDecoderConfidence::ManualExact,
|
||||
evidence: std::vec!["fixture".to_string()],
|
||||
},
|
||||
};
|
||||
@@ -1114,19 +1114,19 @@ mod tests {
|
||||
fn metadata_materializer_ownership_is_exact_in_the_runtime_registry() {
|
||||
for (program_id, surface, entry, expected) in [
|
||||
(
|
||||
kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID,
|
||||
ks_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID,
|
||||
"metadata.metaplex_token_metadata",
|
||||
"create_metadata_account_v3",
|
||||
"materializer.metadata.metaplex_token_metadata",
|
||||
),
|
||||
(
|
||||
kb_program_ids::METADATA_SOLANA_PROGRAM_METADATA_PROGRAM_ID,
|
||||
ks_program_ids::METADATA_SOLANA_PROGRAM_METADATA_PROGRAM_ID,
|
||||
"metadata.solana_program_metadata",
|
||||
"initialize",
|
||||
"materializer.metadata.solana_program_metadata",
|
||||
),
|
||||
(
|
||||
kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID,
|
||||
ks_program_ids::SPL_TOKEN_2022_PROGRAM_ID,
|
||||
"spl.token_2022",
|
||||
"initialize_token_metadata",
|
||||
"materializer.metadata.token_2022",
|
||||
@@ -1274,7 +1274,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn committed_annotation_row_is_mapped_to_ui_safe_contract() {
|
||||
let row = kb_store::MaterializedEventQueryRow {
|
||||
let row = ks_store::MaterializedEventQueryRow {
|
||||
processor_name: "materializer.transaction.annotations".to_string(),
|
||||
processor_version: "0.4.3".to_string(),
|
||||
input_key: "input".to_string(),
|
||||
@@ -1288,7 +1288,7 @@ mod tests {
|
||||
payload_json: serde_json::json!({
|
||||
"instructionPath": "1/0",
|
||||
"generation": "v4",
|
||||
"programId": kb_program_ids::SPL_MEMO_V4_PROGRAM_ID,
|
||||
"programId": ks_program_ids::SPL_MEMO_V4_PROGRAM_ID,
|
||||
"text": "annotation",
|
||||
"payloadLengthBytes": 10,
|
||||
"payloadSha256": "11",
|
||||
@@ -1310,7 +1310,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn malformed_annotation_payload_fails_closed() {
|
||||
let row = kb_store::MaterializedEventQueryRow {
|
||||
let row = ks_store::MaterializedEventQueryRow {
|
||||
processor_name: "materializer.transaction.annotations".to_string(),
|
||||
processor_version: "0.4.3".to_string(),
|
||||
input_key: "input".to_string(),
|
||||
|
||||
Reference in New Issue
Block a user