v0.4.7-pre.015
This commit is contained in:
@@ -1,8 +1,13 @@
|
||||
<!-- file: kb-app-demo-desktop/CHANGELOG.md -->
|
||||
<!-- version: 22 -->
|
||||
<!-- version: 23 -->
|
||||
|
||||
# CHANGELOG — kb-app-demo-desktop
|
||||
|
||||
## 0.4.7-pre.15
|
||||
- expose l’étape NFT « rendre les metadata immutables » dans le runner cohérent ;
|
||||
- prépare cette étape depuis le contexte confirmé de l’étape précédente ;
|
||||
- maintient les lectures de postcondition et la matérialisation sur le PDA metadata.
|
||||
|
||||
## 0.4.7-pre.014
|
||||
|
||||
- Afficher les cinq parcours Metaplex Devnet dans le runner Metadata.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: kb-app-demo-desktop/src/demo_execution_metadata.rs
|
||||
// version: 13
|
||||
// version: 14
|
||||
|
||||
//! Thin desktop adapters for metadata execution demo scenarios.
|
||||
|
||||
@@ -475,7 +475,8 @@ pub(crate) async fn demo_execution_metadata_prepare_step(
|
||||
std::option::Option::Some(value) if !value.trim().is_empty() => value,
|
||||
_ => {
|
||||
return std::result::Result::Err(
|
||||
"prepare and submit the Create step before preparing Update".to_string(),
|
||||
"prepare and submit the previous NFT lifecycle step before continuing"
|
||||
.to_string(),
|
||||
);
|
||||
},
|
||||
};
|
||||
@@ -494,7 +495,7 @@ pub(crate) async fn demo_execution_metadata_prepare_step(
|
||||
return match previous_value.get(name).and_then(serde_json::Value::as_str) {
|
||||
std::option::Option::Some(value) => std::result::Result::Ok(value.to_string()),
|
||||
std::option::Option::None => std::result::Result::Err(format!(
|
||||
"previous Create step does not contain `{name}`"
|
||||
"previous scenario step does not contain `{name}`"
|
||||
)),
|
||||
};
|
||||
};
|
||||
@@ -506,14 +507,18 @@ pub(crate) async fn demo_execution_metadata_prepare_step(
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
};
|
||||
let master_edition = match string_field("master_edition") {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
};
|
||||
let authority = match string_field("authority") {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
};
|
||||
let master_edition =
|
||||
match previous_value.get("master_edition").and_then(serde_json::Value::as_str) {
|
||||
std::option::Option::Some(value) => value.to_string(),
|
||||
std::option::Option::None => std::string::String::new(),
|
||||
};
|
||||
let immutable_transition = scenario.asset_family
|
||||
== kb_pipeline_demo_scenarios::MetaplexTokenMetadataAssetFamily::Nft
|
||||
&& step_index == 2;
|
||||
let value = serde_json::json!({
|
||||
"operation": "update_as_update_authority_v2",
|
||||
"authority": authority.clone(),
|
||||
@@ -527,8 +532,16 @@ pub(crate) async fn demo_execution_metadata_prepare_step(
|
||||
"AsUpdateAuthorityV2": {
|
||||
"new_update_authority": null,
|
||||
"data": null,
|
||||
"primary_sale_happened": true,
|
||||
"is_mutable": null,
|
||||
"primary_sale_happened": if immutable_transition {
|
||||
serde_json::Value::Null
|
||||
} else {
|
||||
serde_json::json!(true)
|
||||
},
|
||||
"is_mutable": if immutable_transition {
|
||||
serde_json::json!(false)
|
||||
} else {
|
||||
serde_json::Value::Null
|
||||
},
|
||||
"collection": "None",
|
||||
"collection_details": "None",
|
||||
"uses": "None",
|
||||
@@ -543,7 +556,11 @@ pub(crate) async fn demo_execution_metadata_prepare_step(
|
||||
metadata,
|
||||
master_edition,
|
||||
crate::pretty_json(&value),
|
||||
"metadata_created".to_string(),
|
||||
if immutable_transition {
|
||||
"metadata_immutable".to_string()
|
||||
} else {
|
||||
"metadata_created".to_string()
|
||||
},
|
||||
)
|
||||
};
|
||||
let metadata_read = serde_json::json!({
|
||||
@@ -580,7 +597,14 @@ pub(crate) async fn demo_execution_metadata_prepare_step(
|
||||
scenario_id: scenario.id,
|
||||
step_index,
|
||||
operation: operation.clone(),
|
||||
label: format!("Étape {} — {}", step_index + 1, operation),
|
||||
label: if scenario.asset_family
|
||||
== kb_pipeline_demo_scenarios::MetaplexTokenMetadataAssetFamily::Nft
|
||||
&& step_index == 2
|
||||
{
|
||||
"Étape 3 — rendre les metadata immutables".to_string()
|
||||
} else {
|
||||
format!("Étape {} — {}", step_index + 1, operation)
|
||||
},
|
||||
operation_json,
|
||||
preflight_reads_json: crate::pretty_json(&preflight_reads),
|
||||
postcondition_reads_json: crate::pretty_json(&postcondition_reads),
|
||||
|
||||
Reference in New Issue
Block a user