Skip to main content

dpns_contract/
lib.rs

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    230, 104, 198, 89, 175, 102, 174, 225, 231, 44, 24, 109, 222, 123, 91, 126, 10, 29, 113, 42, 9,
12    196, 13, 87, 33, 246, 34, 191, 83, 197, 49, 85,
13];
14
15pub const OWNER_ID_BYTES: [u8; 32] = [0; 32];
16
17pub const DPNS_DASH_TLD_DOCUMENT_ID: [u8; 32] = [
18    215, 242, 197, 63, 70, 169, 23, 171, 110, 91, 57, 162, 215, 188, 38, 11, 100, 146, 137, 69, 55,
19    68, 209, 224, 212, 242, 106, 141, 142, 255, 55, 207,
20];
21
22pub const DPNS_DASH_TLD_PREORDER_SALT: [u8; 32] = [
23    224, 181, 8, 197, 163, 104, 37, 162, 6, 105, 58, 31, 65, 74, 161, 62, 219, 236, 244, 60, 65,
24    227, 199, 153, 234, 158, 115, 123, 79, 154, 162, 38,
25];
26
27pub const ID: Identifier = Identifier(IdentifierBytes32(ID_BYTES));
28pub const OWNER_ID: Identifier = Identifier(IdentifierBytes32(OWNER_ID_BYTES));
29pub fn load_definitions(platform_version: &PlatformVersion) -> Result<Option<Value>, Error> {
30    match platform_version.system_data_contracts.dpns {
31        1 | 2 => Ok(None),
32        version => Err(Error::UnknownVersionMismatch {
33            method: "dpns_contract::load_definitions".to_string(),
34            known_versions: vec![1, 2],
35            received: version,
36        }),
37    }
38}
39pub fn load_documents_schemas(platform_version: &PlatformVersion) -> Result<Value, Error> {
40    match platform_version.system_data_contracts.dpns {
41        1 => v1::load_documents_schemas(),
42        2 => v2::load_documents_schemas(),
43        version => Err(Error::UnknownVersionMismatch {
44            method: "dpns_contract::load_documents_schemas".to_string(),
45            known_versions: vec![1, 2],
46            received: version,
47        }),
48    }
49}