From a712031050a5ac65b79e3cfa817558812ed1945e Mon Sep 17 00:00:00 2001 From: Arda Nakisci Date: Tue, 24 Feb 2026 12:05:00 +0300 Subject: [PATCH] Rename DotrainGuiStateV1 to OrderBuilderStateV1 Renames gui_state_v1.rs to order_builder_state_v1.rs and updates the struct, KnownMagic variant, and KnownMeta variant accordingly. The magic number value is unchanged. --- crates/cli/src/meta/magic.rs | 6 +- crates/cli/src/meta/mod.rs | 6 +- crates/cli/src/meta/types/dotrain/mod.rs | 2 +- ..._state_v1.rs => order_builder_state_v1.rs} | 85 ++++++++++--------- 4 files changed, 50 insertions(+), 49 deletions(-) rename crates/cli/src/meta/types/dotrain/{gui_state_v1.rs => order_builder_state_v1.rs} (80%) diff --git a/crates/cli/src/meta/magic.rs b/crates/cli/src/meta/magic.rs index a547562e..5ac2ffd0 100644 --- a/crates/cli/src/meta/magic.rs +++ b/crates/cli/src/meta/magic.rs @@ -40,7 +40,7 @@ pub enum KnownMagic { /// Dotrain source code meta v1 DotrainSourceV1 = 0xffa15ef0fc437099, /// Dotrain instance meta v1 - DotrainGuiStateV1 = 0xffda7b2fb167c286, + OrderBuilderStateV1 = 0xffda7b2fb167c286, } impl KnownMagic { @@ -70,7 +70,7 @@ impl TryFrom for KnownMagic { } v if v == KnownMagic::RainlangSourceV1 as u64 => Ok(KnownMagic::RainlangSourceV1), v if v == KnownMagic::DotrainSourceV1 as u64 => Ok(KnownMagic::DotrainSourceV1), - v if v == KnownMagic::DotrainGuiStateV1 as u64 => Ok(KnownMagic::DotrainGuiStateV1), + v if v == KnownMagic::OrderBuilderStateV1 as u64 => Ok(KnownMagic::OrderBuilderStateV1), _ => Err(crate::error::Error::UnknownMagic), } } @@ -171,7 +171,7 @@ mod tests { #[test] fn test_dotrain_instance_meta_v1() { - let magic_number = KnownMagic::DotrainGuiStateV1; + let magic_number = KnownMagic::OrderBuilderStateV1; let magic_number_after_prefix = magic_number.to_prefix_bytes(); assert_eq!(hex::encode(magic_number_after_prefix), "ffda7b2fb167c286"); diff --git a/crates/cli/src/meta/mod.rs b/crates/cli/src/meta/mod.rs index 9c58ef1e..c60def1b 100644 --- a/crates/cli/src/meta/mod.rs +++ b/crates/cli/src/meta/mod.rs @@ -37,7 +37,7 @@ pub enum KnownMeta { RainlangSourceV1, AddressList, DotrainSourceV1, - DotrainGuiStateV1, + OrderBuilderStateV1, } impl TryFrom for KnownMeta { @@ -53,7 +53,7 @@ impl TryFrom for KnownMeta { KnownMagic::AddressList => Ok(KnownMeta::AddressList), KnownMagic::InterpreterCallerMetaV1 => Ok(KnownMeta::InterpreterCallerMetaV1), KnownMagic::DotrainSourceV1 => Ok(KnownMeta::DotrainSourceV1), - KnownMagic::DotrainGuiStateV1 => Ok(KnownMeta::DotrainGuiStateV1), + KnownMagic::OrderBuilderStateV1 => Ok(KnownMeta::OrderBuilderStateV1), KnownMagic::ExpressionDeployerV2BytecodeV1 => { Ok(KnownMeta::ExpressionDeployerV2BytecodeV1) } @@ -287,7 +287,7 @@ impl RainMetaDocumentV1Item { | KnownMagic::InterpreterCallerMetaV1 | KnownMagic::ExpressionDeployerV2BytecodeV1 | KnownMagic::DotrainSourceV1 - | KnownMagic::DotrainGuiStateV1 + | KnownMagic::OrderBuilderStateV1 | KnownMagic::RainlangSourceV1 => T::try_from(self), _ => Err(Error::UnsupportedMeta)?, } diff --git a/crates/cli/src/meta/types/dotrain/mod.rs b/crates/cli/src/meta/types/dotrain/mod.rs index dca54711..7cd1c487 100644 --- a/crates/cli/src/meta/types/dotrain/mod.rs +++ b/crates/cli/src/meta/types/dotrain/mod.rs @@ -1,4 +1,4 @@ /// Dotrain meta V1 implementations pub mod v1; pub mod source_v1; -pub mod gui_state_v1; +pub mod order_builder_state_v1; diff --git a/crates/cli/src/meta/types/dotrain/gui_state_v1.rs b/crates/cli/src/meta/types/dotrain/order_builder_state_v1.rs similarity index 80% rename from crates/cli/src/meta/types/dotrain/gui_state_v1.rs rename to crates/cli/src/meta/types/dotrain/order_builder_state_v1.rs index 1ca187e5..de84f909 100644 --- a/crates/cli/src/meta/types/dotrain/gui_state_v1.rs +++ b/crates/cli/src/meta/types/dotrain/order_builder_state_v1.rs @@ -41,7 +41,7 @@ impl_wasm_traits!(ShortenedTokenCfg); /// for a deployed order referencing a dotrain template #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] #[cfg_attr(target_family = "wasm", derive(Tsify))] -pub struct DotrainGuiStateV1 { +pub struct OrderBuilderStateV1 { /// Hash of the original dotrain template in Metaboard #[cfg_attr(target_family = "wasm", tsify(type = "`0x${string}`"))] pub dotrain_hash: B256, @@ -57,9 +57,9 @@ pub struct DotrainGuiStateV1 { pub selected_deployment: String, } #[cfg(target_family = "wasm")] -impl_wasm_traits!(DotrainGuiStateV1); +impl_wasm_traits!(OrderBuilderStateV1); -impl DotrainGuiStateV1 { +impl OrderBuilderStateV1 { /// Get the template hash pub fn dotrain_hash(&self) -> B256 { self.dotrain_hash @@ -81,48 +81,49 @@ impl DotrainGuiStateV1 { .collect() } - /// Extract DotrainGuiStateV1 from raw meta bytes + /// Extract OrderBuilderStateV1 from raw meta bytes /// - /// This function attempts to decode CBOR data and find a DotrainGuiStateV1 document + /// This function attempts to decode CBOR data and find a OrderBuilderStateV1 document /// among potentially multiple metadata items. /// /// Returns: - /// - Ok(Some(DotrainGuiStateV1)) if found and successfully parsed - /// - Ok(None) if no DotrainGuiStateV1 document found in the meta bytes + /// - Ok(Some(OrderBuilderStateV1)) if found and successfully parsed + /// - Ok(None) if no OrderBuilderStateV1 document found in the meta bytes /// - Err(Error) if there are parsing/decoding errors pub fn extract_from_meta(meta_bytes: &[u8]) -> Result, Error> { // Try to decode CBOR data let decoded_items = RainMetaDocumentV1Item::cbor_decode(meta_bytes)?; - // Look for DotrainGuiStateV1 among the decoded items + // Look for OrderBuilderStateV1 among the decoded items for item in decoded_items { if item.magic == KnownMagic::RainMetaDocumentV1 { - if let Some(instance) = DotrainGuiStateV1::extract_from_meta(item.payload.as_ref())? + if let Some(instance) = + OrderBuilderStateV1::extract_from_meta(item.payload.as_ref())? { return Ok(Some(instance)); } } - if item.magic == KnownMagic::DotrainGuiStateV1 { - let instance = DotrainGuiStateV1::try_from(item)?; + if item.magic == KnownMagic::OrderBuilderStateV1 { + let instance = OrderBuilderStateV1::try_from(item)?; return Ok(Some(instance)); } } - // No DotrainGuiStateV1 found + // No OrderBuilderStateV1 found Ok(None) } } -impl TryFrom for RainMetaDocumentV1Item { +impl TryFrom for RainMetaDocumentV1Item { type Error = Error; - fn try_from(value: DotrainGuiStateV1) -> Result { + fn try_from(value: OrderBuilderStateV1) -> Result { // Serialize the struct to CBOR bytes let cbor_bytes = serde_cbor::to_vec(&value).map_err(Error::SerdeCborError)?; Ok(RainMetaDocumentV1Item { payload: serde_bytes::ByteBuf::from(cbor_bytes), - magic: KnownMagic::DotrainGuiStateV1, + magic: KnownMagic::OrderBuilderStateV1, content_type: ContentType::OctetStream, content_encoding: ContentEncoding::None, content_language: ContentLanguage::None, @@ -130,20 +131,20 @@ impl TryFrom for RainMetaDocumentV1Item { } } -impl TryFrom for DotrainGuiStateV1 { +impl TryFrom for OrderBuilderStateV1 { type Error = Error; fn try_from(value: RainMetaDocumentV1Item) -> Result { // Check magic type - if value.magic != KnownMagic::DotrainGuiStateV1 { + if value.magic != KnownMagic::OrderBuilderStateV1 { return Err(Error::InvalidMetaMagic( - KnownMagic::DotrainGuiStateV1, + KnownMagic::OrderBuilderStateV1, value.magic, )); } // Deserialize CBOR from payload - let instance = serde_cbor::from_slice::(&value.payload) + let instance = serde_cbor::from_slice::(&value.payload) .map_err(Error::SerdeCborError)?; Ok(instance) @@ -157,7 +158,7 @@ mod tests { use crate::meta::KnownMagic; use crate::meta::types::dotrain::source_v1::DotrainSourceV1; - fn create_test_instance() -> DotrainGuiStateV1 { + fn create_test_instance() -> OrderBuilderStateV1 { let field_values = BTreeMap::from([( "amount".to_string(), ValueCfg { @@ -180,7 +181,7 @@ mod tests { ("output-0".to_string(), None), ]); - DotrainGuiStateV1 { + OrderBuilderStateV1 { dotrain_hash: B256::from([0x12; 32]), field_values, deposits: BTreeMap::new(), @@ -211,14 +212,14 @@ mod tests { let instance = create_test_instance(); let document_item: RainMetaDocumentV1Item = instance.clone().try_into().unwrap(); - assert_eq!(document_item.magic, KnownMagic::DotrainGuiStateV1); + assert_eq!(document_item.magic, KnownMagic::OrderBuilderStateV1); assert_eq!(document_item.content_type, ContentType::OctetStream); assert_eq!(document_item.content_encoding, ContentEncoding::None); assert_eq!(document_item.content_language, ContentLanguage::None); // Verify payload contains valid CBOR that can be deserialized back let deserialized_instance = - serde_cbor::from_slice::(&document_item.payload).unwrap(); + serde_cbor::from_slice::(&document_item.payload).unwrap(); assert_eq!(deserialized_instance, instance); } @@ -229,13 +230,13 @@ mod tests { let document_item = RainMetaDocumentV1Item { payload: serde_bytes::ByteBuf::from(cbor_bytes), - magic: KnownMagic::DotrainGuiStateV1, + magic: KnownMagic::OrderBuilderStateV1, content_type: ContentType::OctetStream, content_encoding: ContentEncoding::None, content_language: ContentLanguage::None, }; - let recovered_instance = DotrainGuiStateV1::try_from(document_item).unwrap(); + let recovered_instance = OrderBuilderStateV1::try_from(document_item).unwrap(); assert_eq!(recovered_instance, instance); } @@ -252,11 +253,11 @@ mod tests { content_language: ContentLanguage::None, }; - let result = DotrainGuiStateV1::try_from(document_item); + let result = OrderBuilderStateV1::try_from(document_item); assert!(result.is_err()); match result.unwrap_err() { Error::InvalidMetaMagic(expected, actual) => { - assert_eq!(expected, KnownMagic::DotrainGuiStateV1); + assert_eq!(expected, KnownMagic::OrderBuilderStateV1); assert_eq!(actual, KnownMagic::DotrainSourceV1); } _ => panic!("Expected InvalidMetaMagic error"), @@ -268,13 +269,13 @@ mod tests { let invalid_cbor = b"{ invalid cbor }"; let document_item = RainMetaDocumentV1Item { payload: serde_bytes::ByteBuf::from(invalid_cbor.to_vec()), - magic: KnownMagic::DotrainGuiStateV1, + magic: KnownMagic::OrderBuilderStateV1, content_type: ContentType::OctetStream, content_encoding: ContentEncoding::None, content_language: ContentLanguage::None, }; - let result = DotrainGuiStateV1::try_from(document_item); + let result = OrderBuilderStateV1::try_from(document_item); assert!(result.is_err()); match result.unwrap_err() { Error::SerdeCborError(_) => {} // Expected @@ -286,9 +287,9 @@ mod tests { fn test_conversion_roundtrip() { let original_instance = create_test_instance(); - // DotrainGuiStateV1 -> RainMetaDocumentV1Item -> DotrainGuiStateV1 + // OrderBuilderStateV1 -> RainMetaDocumentV1Item -> OrderBuilderStateV1 let document_item: RainMetaDocumentV1Item = original_instance.clone().try_into().unwrap(); - let recovered_instance = DotrainGuiStateV1::try_from(document_item).unwrap(); + let recovered_instance = OrderBuilderStateV1::try_from(document_item).unwrap(); assert_eq!(recovered_instance, original_instance); } @@ -308,8 +309,8 @@ mod tests { assert_eq!(decoded_items.len(), 1); let decoded_item = decoded_items.into_iter().next().unwrap(); - // Convert back to DotrainGuiStateV1 - let decoded_instance = DotrainGuiStateV1::try_from(decoded_item).unwrap(); + // Convert back to OrderBuilderStateV1 + let decoded_instance = OrderBuilderStateV1::try_from(decoded_item).unwrap(); // Verify roundtrip assert_eq!(decoded_instance, original_instance); @@ -321,7 +322,7 @@ mod tests { let document_item: RainMetaDocumentV1Item = original_instance.clone().try_into().unwrap(); let cbor_bytes = document_item.cbor_encode().unwrap(); - let result = DotrainGuiStateV1::extract_from_meta(&cbor_bytes).unwrap(); + let result = OrderBuilderStateV1::extract_from_meta(&cbor_bytes).unwrap(); assert!(result.is_some()); let extracted_instance = result.unwrap(); assert_eq!(extracted_instance, original_instance); @@ -334,13 +335,13 @@ mod tests { let document_item: RainMetaDocumentV1Item = source.into(); let cbor_bytes = document_item.cbor_encode().unwrap(); - let result = DotrainGuiStateV1::extract_from_meta(&cbor_bytes).unwrap(); + let result = OrderBuilderStateV1::extract_from_meta(&cbor_bytes).unwrap(); assert!(result.is_none()); } #[test] fn test_extract_from_meta_multiple_documents() { - // Create multiple documents, only one is DotrainGuiStateV1 + // Create multiple documents, only one is OrderBuilderStateV1 let instance = create_test_instance(); let instance_doc: RainMetaDocumentV1Item = instance.clone().try_into().unwrap(); let source = DotrainSourceV1("test code".to_string()); @@ -352,7 +353,7 @@ mod tests { RainMetaDocumentV1Item::cbor_encode_seq(&documents, KnownMagic::RainMetaDocumentV1) .unwrap(); - let result = DotrainGuiStateV1::extract_from_meta(&cbor_bytes).unwrap(); + let result = OrderBuilderStateV1::extract_from_meta(&cbor_bytes).unwrap(); assert!(result.is_some()); let extracted_instance = result.unwrap(); assert_eq!(extracted_instance, instance); @@ -362,7 +363,7 @@ mod tests { fn test_extract_from_meta_invalid_cbor() { let invalid_cbor = vec![0xFF, 0xFE, 0xFD, 0xFC]; - let result = DotrainGuiStateV1::extract_from_meta(&invalid_cbor); + let result = OrderBuilderStateV1::extract_from_meta(&invalid_cbor); assert!(result.is_err()); // Should be a CBOR decode error } @@ -371,24 +372,24 @@ mod tests { fn test_extract_from_meta_empty_data() { let empty_data = vec![]; - let result = DotrainGuiStateV1::extract_from_meta(&empty_data); + let result = OrderBuilderStateV1::extract_from_meta(&empty_data); assert!(result.is_err()); // Should be a CBOR decode error for empty data } #[test] fn test_extract_from_meta_corrupted_instance_data() { - // Create a document with DotrainGuiStateV1 magic but invalid CBOR payload + // Create a document with OrderBuilderStateV1 magic but invalid CBOR payload let corrupted_doc = RainMetaDocumentV1Item { payload: serde_bytes::ByteBuf::from("{ corrupted cbor }"), - magic: KnownMagic::DotrainGuiStateV1, + magic: KnownMagic::OrderBuilderStateV1, content_type: ContentType::OctetStream, content_encoding: ContentEncoding::None, content_language: ContentLanguage::None, }; let cbor_bytes = corrupted_doc.cbor_encode().unwrap(); - let result = DotrainGuiStateV1::extract_from_meta(&cbor_bytes); + let result = OrderBuilderStateV1::extract_from_meta(&cbor_bytes); assert!(result.is_err()); // Should be a CBOR deserialization error match result.unwrap_err() {