use cosmwasm_std::Addr;
use cw_storage_plus::{Item, Map};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};

use cosmwasm_std::Empty;
use cyber_std::CyberMsg;

pub type PassportContract<'a> = cw721_base::Cw721Contract<'a, Extension, CyberMsg, Empty, Empty>;
pub type Extension = PassportMetadata;

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct Config {
    pub owner: Addr,
    pub name_subgraph: Addr,
    pub avatar_subgraph: Addr,
    pub proof_subgraph: Addr,
}

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct AddressPortID {
    pub address: Addr,
    pub portid: String,
}

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct LabeledAddress {
    pub label: Option<String>,
    pub address: String,
}

pub const CONFIG: Item<Config> = Item::new("config");
pub const PORTID: Item<u64> = Item::new("portid");

pub const ACTIVE: Map<&Addr, String> = Map::new("active");
pub const NICKNAMES: Map<&str, AddressPortID> = Map::new("nicknames");

#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug, Default)]
#[serde(rename_all = "snake_case")]
pub struct PassportMetadata {
    pub addresses: Option<Vec<LabeledAddress>>,
    pub avatar: String,
    pub nickname: String,
    pub data: Option<String>,
    pub particle: Option<String>,
}

Dimensions

cw-cyber/contracts/cw-cyber-gift/src/state.rs
cw-cyber/contracts/cw-cyber-subgraph/src/state.rs
cw-cyber/contracts/cybernet/src/state.rs
cw-cyber/contracts/hub-libs/src/state.rs
cw-cyber/contracts/litium-wrap/src/state.rs
cw-cyber/contracts/litium-refer/src/state.rs
cw-cyber/contracts/graph-filter/src/state.rs
cw-cyber/contracts/litium-stake/src/state.rs
cw-cyber/contracts/hub-networks/src/state.rs
cw-cyber/contracts/hub-skills/src/state.rs
cw-cyber/contracts/hub-protocols/src/state.rs
cw-cyber/contracts/hub-tokens/src/state.rs
cw-cyber/contracts/std-test/src/state.rs
cw-cyber/contracts/hub-channels/src/state.rs
cw-cyber/contracts/litium-core/src/state.rs
cw-cyber/packages/hub-base/src/state.rs
cw-cyber/contracts/litium-mine/src/state.rs

Local Graph