|
1 | 1 | use derive_more::From; |
| 2 | +use documents_batch_transition::accessors::DocumentsBatchTransitionAccessorsV0; |
| 3 | +use documents_batch_transition::document_transition::DocumentTransition; |
2 | 4 | #[cfg(feature = "state-transition-serde-conversion")] |
3 | 5 | use serde::{Deserialize, Serialize}; |
4 | 6 |
|
@@ -343,17 +345,35 @@ impl StateTransition { |
343 | 345 | } |
344 | 346 |
|
345 | 347 | /// Returns state transition name |
346 | | - pub fn name(&self) -> &'static str { |
| 348 | + pub fn name(&self) -> String { |
347 | 349 | match self { |
348 | | - Self::DataContractCreate(_) => "DataContractCreate", |
349 | | - Self::DataContractUpdate(_) => "DataContractUpdate", |
350 | | - Self::DocumentsBatch(_) => "DocumentsBatch", |
351 | | - Self::IdentityCreate(_) => "IdentityCreate", |
352 | | - Self::IdentityTopUp(_) => "IdentityTopUp", |
353 | | - Self::IdentityCreditWithdrawal(_) => "IdentityCreditWithdrawal", |
354 | | - Self::IdentityUpdate(_) => "IdentityUpdate", |
355 | | - Self::IdentityCreditTransfer(_) => "IdentityCreditTransfer", |
356 | | - Self::MasternodeVote(_) => "MasternodeVote", |
| 350 | + Self::DataContractCreate(_) => "DataContractCreate".to_string(), |
| 351 | + Self::DataContractUpdate(_) => "DataContractUpdate".to_string(), |
| 352 | + Self::DocumentsBatch(documents_batch_transition) => { |
| 353 | + let mut document_transition_types = vec![]; |
| 354 | + match documents_batch_transition { |
| 355 | + DocumentsBatchTransition::V0(documents_batch_transition_v0) => { |
| 356 | + for transition in documents_batch_transition_v0.transitions().iter() { |
| 357 | + let document_transition_name = match transition { |
| 358 | + DocumentTransition::Create(_) => "Create", |
| 359 | + DocumentTransition::Replace(_) => "Replace", |
| 360 | + DocumentTransition::Delete(_) => "Delete", |
| 361 | + DocumentTransition::Transfer(_) => "Transfer", |
| 362 | + DocumentTransition::UpdatePrice(_) => "UpdatePrice", |
| 363 | + DocumentTransition::Purchase(_) => "Purchase", |
| 364 | + }; |
| 365 | + document_transition_types.push(document_transition_name); |
| 366 | + } |
| 367 | + } |
| 368 | + } |
| 369 | + format!("DocumentsBatch([{}])", document_transition_types.join(", ")) |
| 370 | + } |
| 371 | + Self::IdentityCreate(_) => "IdentityCreate".to_string(), |
| 372 | + Self::IdentityTopUp(_) => "IdentityTopUp".to_string(), |
| 373 | + Self::IdentityCreditWithdrawal(_) => "IdentityCreditWithdrawal".to_string(), |
| 374 | + Self::IdentityUpdate(_) => "IdentityUpdate".to_string(), |
| 375 | + Self::IdentityCreditTransfer(_) => "IdentityCreditTransfer".to_string(), |
| 376 | + Self::MasternodeVote(_) => "MasternodeVote".to_string(), |
357 | 377 | } |
358 | 378 | } |
359 | 379 |
|
|
0 commit comments