name_tokenizer/
state.rs

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}