Spaces:
Running
Running
| import os | |
| import json | |
| from dotenv import load_dotenv | |
| # Load environment variables | |
| load_dotenv() | |
| # Try Loading Keys (Colab support) | |
| try: | |
| from google.colab import userdata | |
| COLAB_HF_TOKEN = userdata.get('HF_TOKEN') | |
| COLAB_GOOGLE_KEY = userdata.get('GOOGLE_API_KEY') | |
| COLAB_PINATA = userdata.get('PINATA_JWT') | |
| except (ImportError, Exception): | |
| COLAB_HF_TOKEN, COLAB_GOOGLE_KEY, COLAB_PINATA = None, None, None | |
| class AppConfig: | |
| # ========================================== | |
| # ⛓️ BLOCKCHAIN & WEB3 SECRETS | |
| # ========================================== | |
| PRIVATE_KEY = os.environ.get("PRIVATE_KEY") | |
| PURECHAIN_RPC_URL = os.environ.get("PURECHAIN_RPC_URL", "http://3.34.161.207:8548") | |
| PURECHAIN_CONTRACT_ADDRESS = os.environ.get("PURECHAIN_CONTRACT_ADDRESS") | |
| # Legacy Contract Addresses for History Recovery | |
| PURECHAIN_CONTRACT_ADDRESS_PUREVERSATION = os.environ.get("PURECHAIN_CONTRACT_ADDRESS_PUREVERSATION") or os.environ.get("PURECHAIN_CONTRACT_ADDRESS_PureVersation") | |
| PURECHAIN_CONTRACT_ADDRESS_PURECONVO = os.environ.get("PURECHAIN_CONTRACT_ADDRESS_PURECONVO") or os.environ.get("PURECHAIN_CONTRACT_ADDRESS_PureConvo") | |
| PURECHAIN_CONTRACT_ADDRESS_PUREIUUY = os.environ.get("PURECHAIN_CONTRACT_ADDRESS_PUREIUUY") or os.environ.get("PURECHAIN_CONTRACT_ADDRESS_PureIUUY", "0x0a735C97EBd5c645D6B641cBE976FDB26710bAdf") | |
| CHAIN_ID = int(os.environ.get("PURECHAIN_CHAIN_ID", 900520900520)) | |
| # ========================================== | |
| # 🧠 AI & CLOUD STORAGE SECRETS | |
| # ========================================== | |
| GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY") | |
| PINATA_JWT = os.environ.get("PINATA_JWT") | |
| HF_TOKEN = os.environ.get("HF_TOKEN") | |
| GROQ_API_KEY = os.environ.get("GROQ_API_KEY") | |
| # ========================================== | |
| # 📂 DIRECTORY CONFIGURATION | |
| # ========================================== | |
| BASE_DIR = os.path.dirname(os.path.abspath(__file__)) | |
| DATASET_DIR = os.environ.get("DATASET_DIR", os.path.join(BASE_DIR, "IEDID")) | |
| PROFILES_DIR = os.environ.get("PROFILES_DIR", os.path.join(BASE_DIR, "lab_profiles")) | |
| # --- REPO SETTINGS --- | |
| HF_REPO_ID = "toecm/IEDID" | |
| def setup_directories(cls): | |
| os.makedirs(cls.DATASET_DIR, exist_ok=True) | |
| os.makedirs(cls.PROFILES_DIR, exist_ok=True) | |
| print("📂 Directories Ready:") | |
| print(f" - {cls.DATASET_DIR}") | |
| print(f" - {cls.PROFILES_DIR}") | |
| # --- DYNAMIC ABI LOAD --- | |
| def CONTRACT_ABI(self): | |
| return AppConfig.get_dynamic_abi() | |
| def get_dynamic_abi(cls): | |
| try: | |
| from src.dynamic_compiler import get_contract_interface | |
| abi, _ = get_contract_interface() | |
| return abi | |
| except Exception as e: | |
| print(f"⚠️ Dynamic ABI load failed: {e}") | |
| return [] | |
| # For backward compatibility where code uses AppConfig.CONTRACT_ABI directly | |
| # we can initialize it here: | |
| try: | |
| from src.dynamic_compiler import get_contract_interface | |
| AppConfig.CONTRACT_ABI, _ = get_contract_interface() | |
| except Exception as e: | |
| print(f"⚠️ Startup compilation failed: {e}") | |
| AppConfig.CONTRACT_ABI = [] | |