v0.1.0-pre.061

This commit is contained in:
2026-07-28 18:41:30 +02:00
parent c7bad46f50
commit f40fb78817
527 changed files with 4598 additions and 4114 deletions

View File

@@ -1,5 +1,5 @@
// file: kb-app-demo-desktop/src/demo_spl_ata.rs
// version: 4
// version: 7
//! Thin Tauri adapter for ATA execution, derivation and lifecycle journal reads.
@@ -19,7 +19,7 @@ pub(crate) struct DemoExecutionSplAtaRequest {
pub(crate) wallet_owner: std::string::String,
/// Mint account.
pub(crate) mint: std::string::String,
/// `classic` or `token2022`.
/// `classic` or `token_2022`.
pub(crate) token_program: std::string::String,
/// `create` or `create_idempotent`.
pub(crate) mode: std::string::String,
@@ -43,7 +43,7 @@ pub(crate) struct DemoSplAtaDerivationRequest {
pub(crate) profile_name: std::string::String,
/// Mint account.
pub(crate) mint: std::string::String,
/// `classic` or `token2022`.
/// `classic` or `token_2022`.
pub(crate) token_program: std::string::String,
}
@@ -185,8 +185,8 @@ pub(crate) fn parse_token_program(
) -> std::result::Result<kb_lib::ExSplAssociatedTokenProgram, std::string::String> {
return match value.trim() {
"classic" => std::result::Result::Ok(kb_lib::ExSplAssociatedTokenProgram::Classic),
"token2022" => std::result::Result::Ok(kb_lib::ExSplAssociatedTokenProgram::Token2022),
_ => std::result::Result::Err("Token Program must be classic or token2022".to_string()),
"token_2022" => std::result::Result::Ok(kb_lib::ExSplAssociatedTokenProgram::Token2022),
_ => std::result::Result::Err("Token Program must be classic or token_2022".to_string()),
};
}
@@ -247,8 +247,10 @@ pub(crate) fn demo_spl_ata_summary_payload(
});
let idempotence_validated = summary.idempotence_replay.as_ref().is_some_and(|replay| {
return replay.failed_inputs == 0
&& replay.processing_error_inputs == 0
&& replay.processors.iter().all(|processor| {
return processor.failed == 0
&& processor.processing_errors == 0
&& processor.materialized_outputs == 0
&& processor.materialization_refused == 0;
});
@@ -289,6 +291,7 @@ pub(crate) fn demo_spl_ata_summary_payload(
"completed": value.completed,
"unmatched": value.unmatched,
"failedInputs": value.failed_inputs,
"processingErrorInputs": value.processing_error_inputs,
"cancelled": value.cancelled
});
}),
@@ -299,6 +302,7 @@ pub(crate) fn demo_spl_ata_summary_payload(
"completed": value.completed,
"unmatched": value.unmatched,
"failedInputs": value.failed_inputs,
"processingErrorInputs": value.processing_error_inputs,
"cancelled": value.cancelled,
"materializedOutputs": value.processors.iter().map(|processor| {
return processor.materialized_outputs;
@@ -397,15 +401,15 @@ pub(crate) fn journal_row(row: kb_store::MaterializedEventQueryRow) -> crate::De
#[cfg(test)]
mod tests {
#[test]
fn classic_and_token2022_derivations_are_distinct_and_canonical() {
fn classic_and_token_2022_derivations_are_distinct_and_canonical() {
let wallet = kb_program_ids::SYSTEM_PROGRAM_ID;
let mint = "So11111111111111111111111111111111111111112";
let classic = crate::derive_ata(wallet, mint, kb_program_ids::SPL_TOKEN_PROGRAM_ID)
.unwrap_or_else(|error| panic!("classic derivation failed: {error}"));
let token2022 = crate::derive_ata(wallet, mint, kb_program_ids::SPL_TOKEN2022_PROGRAM_ID)
let token_2022 = crate::derive_ata(wallet, mint, kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID)
.unwrap_or_else(|error| panic!("Token-2022 derivation failed: {error}"));
assert_eq!(classic, "aqxoAhCwpy3oB1BpNw9hL1HdLYLgPpbPjzxDrrQj3Fs");
assert_eq!(token2022, "2sZUUBGq1i6aE47ZoxCaCW89jmYm2EXLPPmNMgMDXHMS");
assert_eq!(token_2022, "2sZUUBGq1i6aE47ZoxCaCW89jmYm2EXLPPmNMgMDXHMS");
}
#[test]