dpp/tests/fixtures/
get_dashpay_contract_fixture.rs

1use crate::{
2    data_contract::DataContractFactory, prelude::Identifier,
3    tests::utils::generate_random_identifier_struct,
4};
5
6use crate::data_contract::created_data_contract::CreatedDataContract;
7use crate::prelude::IdentityNonce;
8use data_contracts::SystemDataContract;
9use platform_version::version::PlatformVersion;
10
11pub fn get_dashpay_contract_fixture(
12    owner_id: Option<Identifier>,
13    identity_nonce: IdentityNonce,
14    protocol_version: u32,
15) -> CreatedDataContract {
16    let factory = DataContractFactory::new(protocol_version).expect("expected to create factory");
17
18    let platform_version = PlatformVersion::get(protocol_version).expect("expected to get version");
19
20    let dashpay_schema = SystemDataContract::Dashpay
21        .source(platform_version)
22        .expect("DPNS contract must be defined")
23        .document_schemas;
24    let owner_id = owner_id.unwrap_or_else(generate_random_identifier_struct);
25
26    factory
27        .create_with_value_config(owner_id, identity_nonce, dashpay_schema.into(), None, None)
28        .expect("data in fixture should be correct")
29}