refactor(domain): standardize metadata field naming to meta_data across all models
- Rename metadata fields to meta_data for consistency across domain models - Update agent_identity, agent_performance, agent_portfolio, amm, analytics, bounty, certification, community, cross_chain_bridge, cross_chain_reputation, decentralized_memory, miner, pricing_models, trading, and wallet models - Rename chain_metadata to chain_meta_data in CrossChainMapping - Rename verification_metadata to verification_meta_data
This commit is contained in:
@@ -5,7 +5,7 @@ Provides environment-based adapter selection and consolidated settings.
|
||||
"""
|
||||
|
||||
import os
|
||||
from pydantic import field_validator
|
||||
from pydantic import Field, field_validator
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
from typing import List, Optional
|
||||
from pathlib import Path
|
||||
|
||||
@@ -111,7 +111,7 @@ class CrossChainMapping(SQLModel, table=True):
|
||||
wallet_type: str = Field(default="agent-wallet") # agent-wallet, external-wallet, etc.
|
||||
|
||||
# Chain-specific metadata
|
||||
chain_metadata: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
chain_meta_data: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
nonce: Optional[int] = Field(default=None)
|
||||
|
||||
# Activity tracking
|
||||
@@ -156,7 +156,7 @@ class IdentityVerification(SQLModel, table=True):
|
||||
renewed_at: Optional[datetime] = Field(default=None)
|
||||
|
||||
# Metadata
|
||||
verification_metadata: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
verification_meta_data: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
|
||||
# Timestamps
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
@@ -226,7 +226,7 @@ class AgentIdentityCreate(SQLModel):
|
||||
avatar_url: str = Field(default="")
|
||||
supported_chains: List[int] = Field(default_factory=list)
|
||||
primary_chain: int = Field(default=1)
|
||||
metadata: Dict[str, Any] = Field(default_factory=dict)
|
||||
meta_data: Dict[str, Any] = Field(default_factory=dict)
|
||||
tags: List[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@ class AgentIdentityUpdate(SQLModel):
|
||||
verification_level: Optional[VerificationType] = Field(default=None)
|
||||
supported_chains: Optional[List[int]] = Field(default=None)
|
||||
primary_chain: Optional[int] = Field(default=None)
|
||||
metadata: Optional[Dict[str, Any]] = Field(default=None)
|
||||
meta_data: Optional[Dict[str, Any]] = Field(default=None)
|
||||
settings: Optional[Dict[str, Any]] = Field(default=None)
|
||||
tags: Optional[List[str]] = Field(default=None)
|
||||
|
||||
@@ -252,7 +252,7 @@ class CrossChainMappingCreate(SQLModel):
|
||||
chain_address: str
|
||||
wallet_address: Optional[str] = Field(default=None)
|
||||
wallet_type: str = Field(default="agent-wallet")
|
||||
chain_metadata: Dict[str, Any] = Field(default_factory=dict)
|
||||
chain_meta_data: Dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CrossChainMappingUpdate(SQLModel):
|
||||
@@ -260,7 +260,7 @@ class CrossChainMappingUpdate(SQLModel):
|
||||
chain_address: Optional[str] = Field(default=None)
|
||||
wallet_address: Optional[str] = Field(default=None)
|
||||
wallet_type: Optional[str] = Field(default=None)
|
||||
chain_metadata: Optional[Dict[str, Any]] = Field(default=None)
|
||||
chain_meta_data: Optional[Dict[str, Any]] = Field(default=None)
|
||||
is_verified: Optional[bool] = Field(default=None)
|
||||
|
||||
|
||||
@@ -273,7 +273,7 @@ class IdentityVerificationCreate(SQLModel):
|
||||
proof_hash: str
|
||||
proof_data: Dict[str, Any] = Field(default_factory=dict)
|
||||
expires_at: Optional[datetime] = Field(default=None)
|
||||
verification_metadata: Dict[str, Any] = Field(default_factory=dict)
|
||||
verification_meta_data: Dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class AgentWalletCreate(SQLModel):
|
||||
@@ -320,7 +320,7 @@ class AgentIdentityResponse(SQLModel):
|
||||
total_transactions: int
|
||||
successful_transactions: int
|
||||
last_activity: Optional[datetime]
|
||||
metadata: Dict[str, Any]
|
||||
meta_data: Dict[str, Any]
|
||||
tags: List[str]
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
@@ -337,7 +337,7 @@ class CrossChainMappingResponse(SQLModel):
|
||||
verified_at: Optional[datetime]
|
||||
wallet_address: Optional[str]
|
||||
wallet_type: str
|
||||
chain_metadata: Dict[str, Any]
|
||||
chain_meta_data: Dict[str, Any]
|
||||
last_transaction: Optional[datetime]
|
||||
transaction_count: int
|
||||
created_at: datetime
|
||||
|
||||
@@ -104,7 +104,7 @@ class AgentPerformanceProfile(SQLModel, table=True):
|
||||
last_assessed: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
profile_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
profile_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
performance_notes: str = Field(default="", max_length=1000)
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@ class MetaLearningModel(SQLModel, table=True):
|
||||
deployed_at: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
model_profile_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
model_profile_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
training_logs: List[Dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
|
||||
|
||||
|
||||
@@ -206,7 +206,7 @@ class ResourceAllocation(SQLModel, table=True):
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow())
|
||||
|
||||
# Additional data
|
||||
allocation_profile_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
allocation_profile_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
resource_utilization: Dict[str, float] = Field(default={}, sa_column=Column(JSON))
|
||||
|
||||
|
||||
@@ -261,7 +261,7 @@ class PerformanceOptimization(SQLModel, table=True):
|
||||
completed_at: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
optimization_profile_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
optimization_profile_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
performance_logs: List[Dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
|
||||
|
||||
|
||||
@@ -315,7 +315,7 @@ class AgentCapability(SQLModel, table=True):
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
# Additional data
|
||||
capability_profile_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
capability_profile_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
training_history: List[Dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
|
||||
|
||||
|
||||
@@ -368,7 +368,7 @@ class FusionModel(SQLModel, table=True):
|
||||
deployed_at: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
fusion_profile_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
fusion_profile_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
training_logs: List[Dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
|
||||
|
||||
|
||||
@@ -423,7 +423,7 @@ class ReinforcementLearningConfig(SQLModel, table=True):
|
||||
deployed_at: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
rl_profile_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
rl_profile_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
training_logs: List[Dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
|
||||
|
||||
|
||||
@@ -477,5 +477,5 @@ class CreativeCapability(SQLModel, table=True):
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
# Additional data
|
||||
creative_profile_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
creative_profile_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
portfolio_samples: List[Dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
|
||||
|
||||
@@ -193,7 +193,7 @@ class PortfolioAlert(SQLModel, table=True):
|
||||
alert_type: str = Field(index=True) # Type of alert
|
||||
severity: str = Field(index=True) # Severity level
|
||||
message: str = Field(default="")
|
||||
metadata: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
meta_data: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
is_acknowledged: bool = Field(default=False, index=True)
|
||||
acknowledged_at: Optional[datetime] = Field(default=None)
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
|
||||
@@ -213,7 +213,7 @@ class StrategySignal(SQLModel, table=True):
|
||||
stop_loss: float = Field(default=0.0) # Stop loss price
|
||||
time_horizon: str = Field(default="1d") # Time horizon
|
||||
reasoning: str = Field(default="") # Signal reasoning
|
||||
metadata: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
meta_data: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
is_executed: bool = Field(default=False, index=True)
|
||||
executed_at: Optional[datetime] = Field(default=None)
|
||||
expires_at: datetime = Field(default_factory=lambda: datetime.utcnow() + timedelta(hours=24))
|
||||
|
||||
@@ -267,7 +267,7 @@ class PoolAlert(SQLModel, table=True):
|
||||
severity: str = Field(index=True) # LOW, MEDIUM, HIGH, CRITICAL
|
||||
title: str = Field(default="")
|
||||
message: str = Field(default="")
|
||||
metadata: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
meta_data: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
threshold_value: float = Field(default=0.0) # Threshold that triggered alert
|
||||
current_value: float = Field(default=0.0) # Current value
|
||||
is_acknowledged: bool = Field(default=False, index=True)
|
||||
|
||||
@@ -81,7 +81,7 @@ class MarketMetric(SQLModel, table=True):
|
||||
trade_type: Optional[str] = None
|
||||
|
||||
# Metadata
|
||||
metric_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
metric_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
|
||||
# Timestamps
|
||||
recorded_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
@@ -187,7 +187,7 @@ class AnalyticsReport(SQLModel, table=True):
|
||||
delivered_at: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
report_metric_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
report_metric_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
template_used: Optional[str] = None
|
||||
|
||||
|
||||
@@ -282,7 +282,7 @@ class DataCollectionJob(SQLModel, table=True):
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
# Additional data
|
||||
job_metric_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
job_metric_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
execution_log: List[Dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
|
||||
|
||||
|
||||
@@ -332,7 +332,7 @@ class AlertRule(SQLModel, table=True):
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
# Additional data
|
||||
rule_metric_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
rule_metric_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
test_results: List[Dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
|
||||
|
||||
|
||||
|
||||
@@ -234,7 +234,7 @@ class AgentMetrics(SQLModel, table=True):
|
||||
monthly_earnings: List[float] = Field(default_factory=list, sa_column=Column(JSON))
|
||||
|
||||
# Metadata
|
||||
agent_metadata: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
agent_meta_data: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
|
||||
# Relationships
|
||||
stakes: List[AgentStake] = Relationship(back_populates="agent_metrics")
|
||||
@@ -278,7 +278,7 @@ class StakingPool(SQLModel, table=True):
|
||||
volatility_score: float = Field(default=0.0)
|
||||
|
||||
# Metadata
|
||||
pool_metadata: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
pool_meta_data: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
|
||||
# Indexes
|
||||
__table_args__ = (
|
||||
@@ -366,7 +366,7 @@ class BountyStats(SQLModel, table=True):
|
||||
tier_distribution: Dict[str, int] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
|
||||
# Metadata
|
||||
stats_metadata: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
stats_meta_data: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
|
||||
# Indexes
|
||||
__table_args__ = (
|
||||
|
||||
@@ -100,7 +100,7 @@ class AgentCertification(SQLModel, table=True):
|
||||
last_verified_at: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
cert_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
cert_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
notes: str = Field(default="", max_length=1000)
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ class CertificationRequirement(SQLModel, table=True):
|
||||
expiry_date: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
cert_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
cert_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
|
||||
|
||||
class VerificationRecord(SQLModel, table=True):
|
||||
@@ -194,7 +194,7 @@ class VerificationRecord(SQLModel, table=True):
|
||||
audit_trail: List[Dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
|
||||
|
||||
# Additional data
|
||||
cert_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
cert_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
notes: str = Field(default="", max_length=1000)
|
||||
|
||||
|
||||
@@ -244,7 +244,7 @@ class PartnershipProgram(SQLModel, table=True):
|
||||
expires_at: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
program_cert_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
program_cert_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
contact_info: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
|
||||
|
||||
@@ -295,7 +295,7 @@ class AgentPartnership(SQLModel, table=True):
|
||||
last_activity: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
partnership_cert_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
partnership_cert_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
notes: str = Field(default="", max_length=1000)
|
||||
|
||||
|
||||
@@ -341,7 +341,7 @@ class AchievementBadge(SQLModel, table=True):
|
||||
available_until: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
badge_cert_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
badge_cert_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
requirements_text: str = Field(default="", max_length=1000)
|
||||
|
||||
|
||||
@@ -392,7 +392,7 @@ class AgentBadge(SQLModel, table=True):
|
||||
last_viewed_at: Optional[datetime] = None
|
||||
|
||||
# Additional data
|
||||
badge_cert_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
badge_cert_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
notes: str = Field(default="", max_length=1000)
|
||||
|
||||
|
||||
@@ -449,5 +449,5 @@ class CertificationAudit(SQLModel, table=True):
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
# Additional data
|
||||
audit_cert_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
audit_cert_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
notes: str = Field(default="", max_length=2000)
|
||||
|
||||
@@ -80,7 +80,7 @@ class AgentSolution(SQLModel, table=True):
|
||||
average_rating: float = Field(default=0.0)
|
||||
review_count: int = Field(default=0)
|
||||
|
||||
solution_metadata: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
solution_meta_data: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
@@ -159,7 +159,7 @@ class Validator(SQLModel, table=True):
|
||||
status: ValidatorStatus = Field(default=ValidatorStatus.ACTIVE, index=True)
|
||||
is_active: bool = Field(default=True, index=True)
|
||||
supported_chains: List[int] = Field(default_factory=list, sa_column=Column(JSON))
|
||||
metadata: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
val_meta_data: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
@@ -274,7 +274,7 @@ class BridgeAlert(SQLModel, table=True):
|
||||
bridge_request_id: Optional[int] = Field(default=None, index=True)
|
||||
title: str = Field(default="")
|
||||
message: str = Field(default="")
|
||||
metadata: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
val_meta_data: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
threshold_value: float = Field(default=0.0) # Threshold that triggered alert
|
||||
current_value: float = Field(default=0.0) # Current value
|
||||
is_acknowledged: bool = Field(default=False, index=True)
|
||||
|
||||
@@ -210,7 +210,7 @@ class CrossChainReputationResponse(SQLModel):
|
||||
consistency_score: float
|
||||
verification_status: str
|
||||
last_updated: datetime
|
||||
metadata: Dict[str, Any] = Field(default_factory=dict)
|
||||
meta_data: Dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CrossChainAnalyticsResponse(SQLModel):
|
||||
@@ -241,7 +241,7 @@ class ReputationAnomalyResponse(SQLModel):
|
||||
current_score: float
|
||||
score_change: float
|
||||
confidence: float
|
||||
metadata: Dict[str, Any] = Field(default_factory=dict)
|
||||
meta_data: Dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CrossChainLeaderboardResponse(SQLModel):
|
||||
|
||||
@@ -46,7 +46,7 @@ class AgentMemoryNode(SQLModel, table=True):
|
||||
|
||||
status: StorageStatus = Field(default=StorageStatus.PENDING, index=True)
|
||||
|
||||
metadata: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
meta_data: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
tags: List[str] = Field(default_factory=list, sa_column=Column(JSON))
|
||||
|
||||
# Blockchain Anchoring
|
||||
|
||||
@@ -17,7 +17,7 @@ class Miner(SQLModel, table=True):
|
||||
concurrency: int = Field(default=1)
|
||||
status: str = Field(default="ONLINE", index=True)
|
||||
inflight: int = Field(default=0)
|
||||
extra_metadata: dict = Field(default_factory=dict, sa_column=Column(JSON, nullable=False))
|
||||
extra_meta_data: dict = Field(default_factory=dict, sa_column=Column(JSON, nullable=False))
|
||||
last_heartbeat: datetime = Field(default_factory=datetime.utcnow, index=True)
|
||||
session_token: Optional[str] = None
|
||||
last_job_at: Optional[datetime] = Field(default=None, index=True)
|
||||
|
||||
@@ -527,7 +527,7 @@ class PricingAuditLog(SQLModel, table=True):
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
# Additional metadata
|
||||
metadata: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
meta_data: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
tags: List[str] = Field(default_factory=list, sa_column=Column(JSON))
|
||||
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ class TradeRequest(SQLModel, table=True):
|
||||
|
||||
# Additional metadata
|
||||
tags: List[str] = Field(default=[], sa_column=Column(JSON))
|
||||
trading_metadata: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
trading_meta_data: Dict[str, Any] = Field(default={}, sa_column=Column(JSON))
|
||||
|
||||
|
||||
class TradeMatch(SQLModel, table=True):
|
||||
|
||||
@@ -38,7 +38,7 @@ class AgentWallet(SQLModel, table=True):
|
||||
is_active: bool = Field(default=True)
|
||||
encrypted_private_key: Optional[str] = Field(default=None) # Only if managed internally
|
||||
kms_key_id: Optional[str] = Field(default=None) # Reference to external KMS
|
||||
metadata: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
meta_data: Dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@ from ..domain.agent_identity import (
|
||||
AgentWalletUpdate, AgentIdentityResponse, CrossChainMappingResponse,
|
||||
AgentWalletResponse
|
||||
)
|
||||
from ..services.database import get_session
|
||||
from .manager import AgentIdentityManager
|
||||
from ..storage.db import get_session
|
||||
from ..agent_identity.manager import AgentIdentityManager
|
||||
|
||||
router = APIRouter(prefix="/agent-identity", tags=["Agent Identity"])
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ from fastapi import APIRouter, HTTPException, Depends, Query, BackgroundTasks
|
||||
from fastapi.responses import JSONResponse
|
||||
from sqlmodel import Session, select, func, Field
|
||||
|
||||
from ..services.database import get_session
|
||||
from ..storage.db import get_session
|
||||
from ..agent_identity.wallet_adapter_enhanced import (
|
||||
EnhancedWalletAdapter, WalletAdapterFactory, SecurityLevel,
|
||||
WalletStatus, TransactionStatus
|
||||
|
||||
@@ -11,7 +11,7 @@ from fastapi import APIRouter, HTTPException, Depends, Query, BackgroundTasks
|
||||
from fastapi.responses import JSONResponse
|
||||
from sqlmodel import Session, select, func
|
||||
|
||||
from ..services.database import get_session
|
||||
from ..storage.db import get_session
|
||||
from ..domain.developer_platform import (
|
||||
DeveloperProfile, DeveloperCertification, RegionalHub,
|
||||
BountyTask, BountySubmission, BountyStatus, CertificationLevel
|
||||
|
||||
@@ -11,7 +11,7 @@ from fastapi import APIRouter, HTTPException, Depends, Query, BackgroundTasks
|
||||
from fastapi.responses import JSONResponse
|
||||
from sqlmodel import Session, select, func, Field
|
||||
|
||||
from ..services.database import get_session
|
||||
from ..storage.db import get_session
|
||||
from ..domain.global_marketplace import (
|
||||
GlobalMarketplaceOffer, GlobalMarketplaceTransaction, GlobalMarketplaceAnalytics,
|
||||
MarketplaceRegion, GlobalMarketplaceConfig, RegionStatus, MarketplaceStatus
|
||||
|
||||
@@ -11,7 +11,7 @@ from fastapi import APIRouter, HTTPException, Depends, Query, BackgroundTasks
|
||||
from fastapi.responses import JSONResponse
|
||||
from sqlmodel import Session, select, func, Field
|
||||
|
||||
from ..services.database import get_session
|
||||
from ..storage.db import get_session
|
||||
from ..domain.global_marketplace import (
|
||||
GlobalMarketplaceOffer, GlobalMarketplaceTransaction, GlobalMarketplaceAnalytics,
|
||||
MarketplaceRegion, RegionStatus, MarketplaceStatus
|
||||
|
||||
@@ -11,7 +11,7 @@ from fastapi import APIRouter, HTTPException, Depends, Query, BackgroundTasks
|
||||
from fastapi.responses import JSONResponse
|
||||
from sqlmodel import Session, select, func
|
||||
|
||||
from ..services.database import get_session
|
||||
from ..storage.db import get_session
|
||||
from ..domain.governance import (
|
||||
GovernanceProfile, Proposal, Vote, DaoTreasury, TransparencyReport,
|
||||
ProposalStatus, VoteType, GovernanceRole
|
||||
|
||||
@@ -19,7 +19,7 @@ from sqlalchemy.exc import SQLAlchemyError
|
||||
|
||||
from ..domain.cross_chain_bridge import (
|
||||
BridgeRequestStatus, ChainType, TransactionType, ValidatorStatus,
|
||||
CrossChainBridgeRequest, BridgeValidator, BridgeLiquidityPool
|
||||
BridgeRequest, Validator
|
||||
)
|
||||
from ..domain.agent_identity import AgentWallet, CrossChainMapping
|
||||
from ..agent_identity.wallet_adapter_enhanced import (
|
||||
@@ -139,7 +139,7 @@ class CrossChainBridgeService:
|
||||
protocol = protocol or BridgeProtocol(source_config["protocol"])
|
||||
|
||||
# Create bridge request
|
||||
bridge_request = CrossChainBridgeRequest(
|
||||
bridge_request = BridgeRequest(
|
||||
id=f"bridge_{uuid4().hex[:8]}",
|
||||
user_address=user_address,
|
||||
source_chain_id=source_chain_id,
|
||||
@@ -191,8 +191,8 @@ class CrossChainBridgeService:
|
||||
"""Get status of a bridge request"""
|
||||
|
||||
try:
|
||||
stmt = select(CrossChainBridgeRequest).where(
|
||||
CrossChainBridgeRequest.id == bridge_request_id
|
||||
stmt = select(BridgeRequest).where(
|
||||
BridgeRequest.id == bridge_request_id
|
||||
)
|
||||
bridge_request = self.session.exec(stmt).first()
|
||||
|
||||
@@ -263,8 +263,8 @@ class CrossChainBridgeService:
|
||||
"""Cancel a bridge request"""
|
||||
|
||||
try:
|
||||
stmt = select(CrossChainBridgeRequest).where(
|
||||
CrossChainBridgeRequest.id == bridge_request_id
|
||||
stmt = select(BridgeRequest).where(
|
||||
BridgeRequest.id == bridge_request_id
|
||||
)
|
||||
bridge_request = self.session.exec(stmt).first()
|
||||
|
||||
@@ -307,32 +307,32 @@ class CrossChainBridgeService:
|
||||
|
||||
# Get total requests
|
||||
total_requests = self.session.exec(
|
||||
select(func.count(CrossChainBridgeRequest.id)).where(
|
||||
CrossChainBridgeRequest.created_at >= cutoff_time
|
||||
select(func.count(BridgeRequest.id)).where(
|
||||
BridgeRequest.created_at >= cutoff_time
|
||||
)
|
||||
).scalar() or 0
|
||||
|
||||
# Get completed requests
|
||||
completed_requests = self.session.exec(
|
||||
select(func.count(CrossChainBridgeRequest.id)).where(
|
||||
CrossChainBridgeRequest.created_at >= cutoff_time,
|
||||
CrossChainBridgeRequest.status == BridgeRequestStatus.COMPLETED
|
||||
select(func.count(BridgeRequest.id)).where(
|
||||
BridgeRequest.created_at >= cutoff_time,
|
||||
BridgeRequest.status == BridgeRequestStatus.COMPLETED
|
||||
)
|
||||
).scalar() or 0
|
||||
|
||||
# Get total volume
|
||||
total_volume = self.session.exec(
|
||||
select(func.sum(CrossChainBridgeRequest.amount)).where(
|
||||
CrossChainBridgeRequest.created_at >= cutoff_time,
|
||||
CrossChainBridgeRequest.status == BridgeRequestStatus.COMPLETED
|
||||
select(func.sum(BridgeRequest.amount)).where(
|
||||
BridgeRequest.created_at >= cutoff_time,
|
||||
BridgeRequest.status == BridgeRequestStatus.COMPLETED
|
||||
)
|
||||
).scalar() or 0
|
||||
|
||||
# Get total fees
|
||||
total_fees = self.session.exec(
|
||||
select(func.sum(CrossChainBridgeRequest.total_fee)).where(
|
||||
CrossChainBridgeRequest.created_at >= cutoff_time,
|
||||
CrossChainBridgeRequest.status == BridgeRequestStatus.COMPLETED
|
||||
select(func.sum(BridgeRequest.total_fee)).where(
|
||||
BridgeRequest.created_at >= cutoff_time,
|
||||
BridgeRequest.status == BridgeRequestStatus.COMPLETED
|
||||
)
|
||||
).scalar() or 0
|
||||
|
||||
@@ -342,11 +342,11 @@ class CrossChainBridgeService:
|
||||
# Get average processing time
|
||||
avg_processing_time = self.session.exec(
|
||||
select(func.avg(
|
||||
func.extract('epoch', CrossChainBridgeRequest.completed_at) -
|
||||
func.extract('epoch', CrossChainBridgeRequest.created_at)
|
||||
func.extract('epoch', BridgeRequest.completed_at) -
|
||||
func.extract('epoch', BridgeRequest.created_at)
|
||||
)).where(
|
||||
CrossChainBridgeRequest.created_at >= cutoff_time,
|
||||
CrossChainBridgeRequest.status == BridgeRequestStatus.COMPLETED
|
||||
BridgeRequest.created_at >= cutoff_time,
|
||||
BridgeRequest.status == BridgeRequestStatus.COMPLETED
|
||||
)
|
||||
).scalar() or 0
|
||||
|
||||
@@ -354,9 +354,9 @@ class CrossChainBridgeService:
|
||||
chain_distribution = {}
|
||||
for chain_id in self.wallet_adapters.keys():
|
||||
chain_requests = self.session.exec(
|
||||
select(func.count(CrossChainBridgeRequest.id)).where(
|
||||
CrossChainBridgeRequest.created_at >= cutoff_time,
|
||||
CrossChainBridgeRequest.source_chain_id == chain_id
|
||||
select(func.count(BridgeRequest.id)).where(
|
||||
BridgeRequest.created_at >= cutoff_time,
|
||||
BridgeRequest.source_chain_id == chain_id
|
||||
)
|
||||
).scalar() or 0
|
||||
|
||||
@@ -410,8 +410,8 @@ class CrossChainBridgeService:
|
||||
"""Process a bridge request"""
|
||||
|
||||
try:
|
||||
stmt = select(CrossChainBridgeRequest).where(
|
||||
CrossChainBridgeRequest.id == bridge_request_id
|
||||
stmt = select(BridgeRequest).where(
|
||||
BridgeRequest.id == bridge_request_id
|
||||
)
|
||||
bridge_request = self.session.exec(stmt).first()
|
||||
|
||||
@@ -438,8 +438,8 @@ class CrossChainBridgeService:
|
||||
logger.error(f"Error processing bridge request {bridge_request_id}: {e}")
|
||||
# Update status to failed
|
||||
try:
|
||||
stmt = update(CrossChainBridgeRequest).where(
|
||||
CrossChainBridgeRequest.id == bridge_request_id
|
||||
stmt = update(BridgeRequest).where(
|
||||
BridgeRequest.id == bridge_request_id
|
||||
).values(
|
||||
status=BridgeRequestStatus.FAILED,
|
||||
error_message=str(e),
|
||||
@@ -450,7 +450,7 @@ class CrossChainBridgeService:
|
||||
except:
|
||||
pass
|
||||
|
||||
async def _execute_atomic_swap(self, bridge_request: CrossChainBridgeRequest) -> None:
|
||||
async def _execute_atomic_swap(self, bridge_request: BridgeRequest) -> None:
|
||||
"""Execute atomic swap protocol"""
|
||||
|
||||
try:
|
||||
@@ -510,7 +510,7 @@ class CrossChainBridgeService:
|
||||
logger.error(f"Error executing atomic swap: {e}")
|
||||
raise
|
||||
|
||||
async def _execute_liquidity_pool_swap(self, bridge_request: CrossChainBridgeRequest) -> None:
|
||||
async def _execute_liquidity_pool_swap(self, bridge_request: BridgeRequest) -> None:
|
||||
"""Execute liquidity pool swap"""
|
||||
|
||||
try:
|
||||
@@ -549,7 +549,7 @@ class CrossChainBridgeService:
|
||||
logger.error(f"Error executing liquidity pool swap: {e}")
|
||||
raise
|
||||
|
||||
async def _execute_htlc_swap(self, bridge_request: CrossChainBridgeRequest) -> None:
|
||||
async def _execute_htlc_swap(self, bridge_request: BridgeRequest) -> None:
|
||||
"""Execute HTLC (Hashed Timelock Contract) swap"""
|
||||
|
||||
try:
|
||||
@@ -604,7 +604,7 @@ class CrossChainBridgeService:
|
||||
logger.error(f"Error executing HTLC swap: {e}")
|
||||
raise
|
||||
|
||||
async def _create_atomic_swap_contract(self, bridge_request: CrossChainBridgeRequest, direction: str) -> Dict[str, Any]:
|
||||
async def _create_atomic_swap_contract(self, bridge_request: BridgeRequest, direction: str) -> Dict[str, Any]:
|
||||
"""Create atomic swap contract data"""
|
||||
# Mock implementation
|
||||
contract_address = f"0x{hashlib.sha256(f'atomic_swap_{bridge_request.id}_{direction}'.encode()).hexdigest()[:40]}"
|
||||
@@ -615,7 +615,7 @@ class CrossChainBridgeService:
|
||||
"contract_data": contract_data
|
||||
}
|
||||
|
||||
async def _create_liquidity_pool_swap_data(self, bridge_request: CrossChainBridgeRequest, pool: Dict[str, Any]) -> Dict[str, Any]:
|
||||
async def _create_liquidity_pool_swap_data(self, bridge_request: BridgeRequest, pool: Dict[str, Any]) -> Dict[str, Any]:
|
||||
"""Create liquidity pool swap data"""
|
||||
# Mock implementation
|
||||
pool_address = pool.get("address", f"0x{hashlib.sha256(f'pool_{bridge_request.source_chain_id}_{bridge_request.target_chain_id}'.encode()).hexdigest()[:40]}")
|
||||
@@ -626,7 +626,7 @@ class CrossChainBridgeService:
|
||||
"swap_data": swap_data
|
||||
}
|
||||
|
||||
async def _create_htlc_contract(self, bridge_request: CrossChainBridgeRequest, secret_hash: str, direction: str) -> Dict[str, Any]:
|
||||
async def _create_htlc_contract(self, bridge_request: BridgeRequest, secret_hash: str, direction: str) -> Dict[str, Any]:
|
||||
"""Create HTLC contract data"""
|
||||
contract_address = f"0x{hashlib.sha256(f'htlc_{bridge_request.id}_{direction}_{secret_hash}'.encode()).hexdigest()[:40]}"
|
||||
contract_data = f"0x{hashlib.sha256(f'htlc_data_{bridge_request.id}_{secret_hash}'.encode()).hexdigest()}"
|
||||
@@ -637,7 +637,7 @@ class CrossChainBridgeService:
|
||||
"secret_hash": secret_hash
|
||||
}
|
||||
|
||||
async def _complete_htlc(self, bridge_request: CrossChainBridgeRequest, secret: str) -> None:
|
||||
async def _complete_htlc(self, bridge_request: BridgeRequest, secret: str) -> None:
|
||||
"""Complete HTLC by revealing secret"""
|
||||
# Mock implementation
|
||||
bridge_request.target_transaction_hash = f"0x{hashlib.sha256(f'htlc_complete_{bridge_request.id}_{secret}'.encode()).hexdigest()}"
|
||||
@@ -717,7 +717,7 @@ class CrossChainBridgeService:
|
||||
logger.error(f"Error waiting for confirmations: {e}")
|
||||
raise
|
||||
|
||||
async def _calculate_bridge_progress(self, bridge_request: CrossChainBridgeRequest) -> float:
|
||||
async def _calculate_bridge_progress(self, bridge_request: BridgeRequest) -> float:
|
||||
"""Calculate bridge progress percentage"""
|
||||
|
||||
try:
|
||||
@@ -749,7 +749,7 @@ class CrossChainBridgeService:
|
||||
logger.error(f"Error calculating bridge progress: {e}")
|
||||
return 0.0
|
||||
|
||||
async def _process_refund(self, bridge_request: CrossChainBridgeRequest) -> None:
|
||||
async def _process_refund(self, bridge_request: BridgeRequest) -> None:
|
||||
"""Process refund for cancelled bridge request"""
|
||||
try:
|
||||
# Mock refund implementation
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
from ..domain.global_marketplace import GlobalMarketplaceAnalyticsRequest
|
||||
from ..domain.global_marketplace import GlobalMarketplaceTransactionRequest
|
||||
from ..domain.global_marketplace import GlobalMarketplaceOfferRequest
|
||||
"""
|
||||
Global Marketplace Services
|
||||
Core services for global marketplace operations, multi-region support, and cross-chain integration
|
||||
@@ -34,7 +37,7 @@ class GlobalMarketplaceService:
|
||||
|
||||
async def create_global_offer(
|
||||
self,
|
||||
request: GlobalMarketplaceOfferRequest,
|
||||
request: "GlobalMarketplaceOfferRequest",
|
||||
agent_identity: AgentIdentity
|
||||
) -> GlobalMarketplaceOffer:
|
||||
"""Create a new global marketplace offer"""
|
||||
@@ -142,7 +145,7 @@ class GlobalMarketplaceService:
|
||||
|
||||
async def create_global_transaction(
|
||||
self,
|
||||
request: GlobalMarketplaceTransactionRequest,
|
||||
request: "GlobalMarketplaceTransactionRequest",
|
||||
buyer_identity: AgentIdentity
|
||||
) -> GlobalMarketplaceTransaction:
|
||||
"""Create a global marketplace transaction"""
|
||||
@@ -258,7 +261,7 @@ class GlobalMarketplaceService:
|
||||
|
||||
async def get_marketplace_analytics(
|
||||
self,
|
||||
request: GlobalMarketplaceAnalyticsRequest
|
||||
request: "GlobalMarketplaceAnalyticsRequest"
|
||||
) -> GlobalMarketplaceAnalytics:
|
||||
"""Get global marketplace analytics"""
|
||||
|
||||
@@ -291,7 +294,7 @@ class GlobalMarketplaceService:
|
||||
|
||||
async def _generate_analytics(
|
||||
self,
|
||||
request: GlobalMarketplaceAnalyticsRequest
|
||||
request: "GlobalMarketplaceAnalyticsRequest"
|
||||
) -> GlobalMarketplaceAnalytics:
|
||||
"""Generate analytics for the specified period"""
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ from aitbc.logging import get_logger
|
||||
from sqlmodel import Session, select, update, delete, func, Field
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
|
||||
from ..domain.cross_chain_bridge import CrossChainBridgeRequest, BridgeRequestStatus
|
||||
from ..domain.cross_chain_bridge import BridgeRequest, BridgeRequestStatus
|
||||
from ..domain.agent_identity import AgentWallet
|
||||
from ..agent_identity.wallet_adapter_enhanced import (
|
||||
EnhancedWalletAdapter, WalletAdapterFactory, SecurityLevel,
|
||||
|
||||
@@ -86,14 +86,16 @@ def session_scope() -> Generator[Session, None, None]:
|
||||
|
||||
|
||||
# Dependency for FastAPI
|
||||
SessionDep = Session
|
||||
|
||||
from fastapi import Depends
|
||||
from typing import Annotated
|
||||
|
||||
def get_session() -> Session:
|
||||
"""Get a database session."""
|
||||
engine = get_engine()
|
||||
return Session(engine)
|
||||
|
||||
SessionDep = Annotated[Session, Depends(get_session)]
|
||||
|
||||
|
||||
# Async support for future use
|
||||
async def get_async_engine() -> AsyncEngine:
|
||||
|
||||
@@ -173,17 +173,17 @@ def cached(ttl_seconds: int = 300, key_prefix: str = ""):
|
||||
|
||||
# Cache configurations for different query types
|
||||
CACHE_CONFIGS = {
|
||||
"marketplace_stats": {"ttl": 300, "prefix": "marketplace_"}, # 5 minutes
|
||||
"job_list": {"ttl": 60, "prefix": "jobs_"}, # 1 minute
|
||||
"miner_list": {"ttl": 120, "prefix": "miners_"}, # 2 minutes
|
||||
"user_balance": {"ttl": 30, "prefix": "balance_"}, # 30 seconds
|
||||
"exchange_rates": {"ttl": 600, "prefix": "rates_"}, # 10 minutes
|
||||
"marketplace_stats": {"ttl_seconds": 300, "key_prefix": "marketplace_"}, # 5 minutes
|
||||
"job_list": {"ttl_seconds": 60, "key_prefix": "jobs_"}, # 1 minute
|
||||
"miner_list": {"ttl_seconds": 120, "key_prefix": "miners_"}, # 2 minutes
|
||||
"user_balance": {"ttl_seconds": 30, "key_prefix": "balance_"}, # 30 seconds
|
||||
"exchange_rates": {"ttl_seconds": 600, "key_prefix": "rates_"}, # 10 minutes
|
||||
}
|
||||
|
||||
|
||||
def get_cache_config(cache_type: str) -> Dict[str, Any]:
|
||||
"""Get cache configuration for a specific type"""
|
||||
return CACHE_CONFIGS.get(cache_type, {"ttl": 300, "prefix": ""})
|
||||
return CACHE_CONFIGS.get(cache_type, {"ttl_seconds": 300, "key_prefix": ""})
|
||||
|
||||
|
||||
# Periodic cleanup task
|
||||
|
||||
Reference in New Issue
Block a user