dpp/tests/fixtures/
get_dpns_data_contract.rs

1use data_contracts::{DataContractSource, SystemDataContract};
2use platform_version::version::PlatformVersion;
3
4use crate::data_contract::created_data_contract::CreatedDataContract;
5use crate::data_contract::DataContractFactory;
6use crate::prelude::*;
7use crate::tests::utils::generate_random_identifier_struct;
8
9pub fn get_dpns_data_contract_fixture(
10    owner_id: Option<Identifier>,
11    identity_nonce: IdentityNonce,
12    protocol_version: u32,
13) -> CreatedDataContract {
14    let factory = DataContractFactory::new(protocol_version)
15        .expect("expected to create a factory for get_dpns_data_contract_fixture");
16
17    let owner_id = owner_id.unwrap_or_else(generate_random_identifier_struct);
18
19    let platform_version =
20        PlatformVersion::get(protocol_version).expect("expected to get platform version");
21
22    let DataContractSource {
23        document_schemas, ..
24    } = SystemDataContract::DPNS
25        .source(platform_version)
26        .expect("should return DPNS data contract source");
27
28    //Todo create config
29    factory
30        .create_with_value_config(
31            owner_id,
32            identity_nonce,
33            document_schemas.into(),
34            None,
35            None,
36        )
37        .expect("data in fixture should be correct")
38}