1use {
2 bonfida_utils::BorshSize,
3 borsh::{BorshDeserialize, BorshSerialize},
4 mpl_token_metadata::types::Creator,
5 solana_program::{pubkey, pubkey::Pubkey},
6};
7
8mod central_state;
9mod nft_record;
10
11pub use central_state::CentralState;
12pub use nft_record::NftRecord;
13
14pub const ROOT_DOMAIN_ACCOUNT: Pubkey = pubkey!("58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx");
15
16pub const MINT_PREFIX: &[u8; 14] = b"tokenized_name";
17
18pub const SELLER_BASIS: u16 = 500;
19
20pub const META_SYMBOL: &str = ".sol";
21
22pub const CREATOR_KEY: Pubkey = pubkey!("5D2zKog251d6KPCyFyLMt3KroWwXXPWSgTPyhV22K2gR");
23
24pub const CREATOR_FEE: Creator = Creator {
25 address: CREATOR_KEY,
26 verified: false,
27 share: 100,
28};
29
30pub const COLLECTION_PREFIX: &[u8; 10] = b"collection";
31
32pub const COLLECTION_NAME: &str = "Solana name service collection";
33
34pub const COLLECTION_URI: &str =
35 "https://cloudflare-ipfs.com/ipfs/QmPeTioTicb19seM6itP8KD39syNZVJS2KHXNkxauSGXAJ";
36
37pub const METADATA_SIGNER: Pubkey = pubkey!("Es33LnWSTZ9GbW6yBaRkSLUaFibVd7iS54e4AvBg76LX");
38
39#[derive(BorshSerialize, BorshDeserialize, BorshSize, PartialEq)]
40#[allow(missing_docs)]
41pub enum Tag {
42 Uninitialized,
43 CentralState,
44 ActiveRecord,
45 InactiveRecord,
46}