Skip to main content

circles_types/
config.rs

1use alloy_primitives::Address;
2use serde::{Deserialize, Serialize};
3
4/// Circles protocol configuration for a specific chain.
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct CirclesConfig {
7    /// RPC URL for Circles-specific endpoints
8    pub circles_rpc_url: String,
9    /// Pathfinder service URL for computing transfer paths
10    pub pathfinder_url: String,
11    /// Profile service URL for user profiles and metadata
12    pub profile_service_url: String,
13    /// Optional referrals service URL for storing and retrieving referral metadata
14    pub referrals_service_url: Option<String>,
15    /// Circles V1 Hub contract address
16    pub v1_hub_address: Address,
17    /// Circles V2 Hub contract address
18    pub v2_hub_address: Address,
19    /// Name Registry contract address
20    pub name_registry_address: Address,
21    /// Base Group Mint Policy contract address
22    pub base_group_mint_policy: Address,
23    /// Standard Treasury contract address
24    pub standard_treasury: Address,
25    /// Core Members Group Deployer contract address
26    pub core_members_group_deployer: Address,
27    /// Base Group Factory contract address
28    pub base_group_factory_address: Address,
29    /// Lift ERC20 contract address
30    pub lift_erc20_address: Address,
31    /// Invitation Escrow contract address
32    pub invitation_escrow_address: Address,
33    /// Invitation Farm contract address
34    pub invitation_farm_address: Address,
35    /// Referrals Module contract address
36    pub referrals_module_address: Address,
37    /// Invitation Module contract address
38    pub invitation_module_address: Address,
39}