use cosmwasm_schema::cw_serde;
use cosmwasm_std::{Addr, Uint128};
use cw_storage_plus::{Item, Map};

#[cw_serde]
pub struct ReferConfig {
    /// litium-core contract (for mint requests on claim)
    pub core_contract: Addr,
    /// litium-mine contract (authorized to bind referrers and accrue rewards)
    pub mine_contract: Addr,
    /// Default community pool destination address
    pub community_pool_addr: Option<Addr>,
    /// Admin address
    pub admin: Addr,
    /// Whether contract is paused
    pub paused: bool,
}

/// Per-referrer aggregate counters.
#[cw_serde]
pub struct ReferralStats {
    /// Accumulated referral rewards (pending claim).
    pub referral_rewards: Uint128,
    /// Number of miners bound to this referrer.
    pub referrals_count: u64,
}

pub const CONFIG: Item<ReferConfig> = Item::new("config");
/// Miner โ†’ Referrer binding (immutable once set)
pub const REFERRER_BY_MINER: Map<&Addr, Addr> = Map::new("referrer_by_miner");
/// Per-referrer stats
pub const REFERRAL_STATS: Map<&Addr, ReferralStats> = Map::new("referral_stats");
/// Community pool balance (accrued when miner has no referrer)
pub const COMMUNITY_POOL_BALANCE: Item<Uint128> = Item::new("community_pool_balance");
/// Total referral-side rewards accrued (monotonic, only increases).
pub const TOTAL_ACCRUED_REWARDS: Item<Uint128> = Item::new("total_accrued_rewards");
/// Total referral-side rewards claimed/minted (monotonic, only increases).
pub const TOTAL_CLAIMED_REWARDS: Item<Uint128> = Item::new("total_claimed_rewards");

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/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/cw-cyber-passport/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