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:
oib
2026-03-03 15:01:48 +01:00
parent f353e00172
commit cabbd2d9b7
34 changed files with 433 additions and 106 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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))

View File

@@ -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))

View File

@@ -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)

View File

@@ -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))

View File

@@ -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__ = (

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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):

View File

@@ -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

View File

@@ -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)

View File

@@ -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))

View File

@@ -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):

View File

@@ -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)

View File

@@ -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"])

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"""

View File

@@ -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,

View File

@@ -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:

View File

@@ -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