dpp/tests/fixtures/
get_document_transitions_fixture.rs

1use crate::data_contract::document_type::DocumentTypeRef;
2use crate::document::document_factory::DocumentFactory;
3use platform_value::{Bytes32, Identifier};
4use platform_version::version::PlatformVersion;
5use std::collections::BTreeMap;
6
7use crate::document::Document;
8use crate::state_transition::batch_transition::accessors::DocumentsBatchTransitionAccessorsV0;
9use crate::state_transition::batch_transition::batched_transition::BatchedTransition;
10use crate::state_transition::batch_transition::batched_transition::document_transition_action_type::DocumentTransitionActionType;
11use crate::tokens::token_payment_info::TokenPaymentInfo;
12
13pub fn get_batched_transitions_fixture<'a>(
14    documents: impl IntoIterator<
15        Item = (
16            DocumentTransitionActionType,
17            Vec<(
18                Document,
19                DocumentTypeRef<'a>,
20                Bytes32,
21                Option<TokenPaymentInfo>,
22            )>,
23        ),
24    >,
25    nonce_counter: &mut BTreeMap<(Identifier, Identifier), u64>, //IdentityID/ContractID -> nonce
26) -> Vec<BatchedTransition> {
27    let protocol_version = PlatformVersion::latest().protocol_version;
28    let document_factory =
29        DocumentFactory::new(protocol_version).expect("expected to get document factory");
30
31    document_factory
32        .create_state_transition(documents, nonce_counter)
33        .expect("the transitions should be created")
34        .transitions_iter()
35        .map(|batched_transition_ref| batched_transition_ref.to_owned_transition())
36        .collect()
37}