1mod error;
2pub mod v1;
3pub mod v2;
4
5pub use crate::error::Error;
6use platform_value::{Identifier, IdentifierBytes32};
7use platform_version::version::PlatformVersion;
8use serde_json::Value;
9
10pub const ID_BYTES: [u8; 32] = [
11 162, 161, 180, 172, 111, 239, 34, 234, 42, 26, 104, 232, 18, 54, 68, 179, 87, 135, 95, 107, 65,
12 44, 24, 16, 146, 129, 193, 70, 231, 178, 113, 188,
13];
14
15pub const OWNER_ID_BYTES: [u8; 32] = [0; 32];
16
17pub const ID: Identifier = Identifier(IdentifierBytes32(ID_BYTES));
18pub const OWNER_ID: Identifier = Identifier(IdentifierBytes32(OWNER_ID_BYTES));
19
20pub fn load_definitions(platform_version: &PlatformVersion) -> Result<Option<Value>, Error> {
21 match platform_version.system_data_contracts.dashpay {
22 1 | 2 => Ok(None),
23 version => Err(Error::UnknownVersionMismatch {
24 method: "dashpay_contract::load_definitions".to_string(),
25 known_versions: vec![1, 2],
26 received: version,
27 }),
28 }
29}
30pub fn load_documents_schemas(platform_version: &PlatformVersion) -> Result<Value, Error> {
31 match platform_version.system_data_contracts.dashpay {
32 1 => v1::load_documents_schemas(),
33 2 => v2::load_documents_schemas(),
34 version => Err(Error::UnknownVersionMismatch {
35 method: "dashpay_contract::load_documents_schemas".to_string(),
36 known_versions: vec![1, 2],
37 received: version,
38 }),
39 }
40}