pub const CHAIN_WS_URL: &str = "ws://127.0.0.1:9944";
pub const INDEXER_WS_URL: &str = "ws://127.0.0.1:8172";
pub const IPFS_API_URL: &str = "http://127.0.0.1:5001";
pub const GENESIS_HASH: &str = "0xd6be38e4049024b2a41d76e8d6dc3fa38173d85c74c4c2d3966669c082199219";
pub const ITEM_ID_NAMESPACE: u32 = 1000;
pub const MAX_PARENTS: usize = 32;
pub const MAX_LINKS: usize = 128;
pub const MAX_MENTIONS: usize = 256;
pub mod flags {
pub const REVISIONABLE: u8 = 1 << 0;
pub const RETRACTABLE: u8 = 1 << 1;
pub const RETRACTED: u8 = 1 << 2;
}
pub const VALID_PUBLISH_FLAGS: u8 = flags::REVISIONABLE | flags::RETRACTABLE;
pub const DEFAULT_ITEM_FLAGS: u8 = flags::REVISIONABLE | flags::RETRACTABLE;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn default_item_flags_are_within_valid_mask() {
assert_eq!(DEFAULT_ITEM_FLAGS & VALID_PUBLISH_FLAGS, DEFAULT_ITEM_FLAGS);
assert_eq!(DEFAULT_ITEM_FLAGS & flags::RETRACTED, 0);
}
#[test]
fn flags_are_distinct_bits() {
assert_ne!(flags::REVISIONABLE, flags::RETRACTABLE);
assert_ne!(flags::REVISIONABLE, flags::RETRACTED);
assert_ne!(flags::RETRACTABLE, flags::RETRACTED);
assert_eq!(flags::REVISIONABLE & flags::RETRACTABLE, 0);
assert_eq!(flags::REVISIONABLE & flags::RETRACTED, 0);
assert_eq!(flags::RETRACTABLE & flags::RETRACTED, 0);
}
#[test]
fn genesis_hash_is_hex_512_bits() {
assert!(GENESIS_HASH.starts_with("0x"));
assert_eq!(GENESIS_HASH.len(), 2 + 64);
}
#[test]
fn item_bounds_are_positive() {
const {
assert!(MAX_PARENTS > 0);
assert!(MAX_LINKS > 0);
assert!(MAX_MENTIONS > 0);
}
assert_eq!(ITEM_ID_NAMESPACE, 1000);
}
}