fix: resolve CLI import errors; fix regulatory shadowing; fix blockchain app syntax errors
This commit is contained in:
@@ -16,6 +16,7 @@ from .mempool import init_mempool
|
||||
from .metrics import metrics_registry
|
||||
from .rpc.router import router as rpc_router
|
||||
from .rpc.websocket import router as websocket_router
|
||||
from .escrow_routes import router as escrow_router
|
||||
|
||||
_app_logger = get_logger("aitbc_chain.app")
|
||||
|
||||
@@ -128,9 +129,12 @@ def create_app() -> FastAPI:
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
# Include routers
|
||||
app.include_router(rpc_router, prefix="/rpc", tags=["rpc"])
|
||||
app.include_router(websocket_router, prefix="/rpc")
|
||||
app.include_router(escrow_router, prefix="/rpc")
|
||||
|
||||
# Metrics and health endpoints
|
||||
metrics_router = APIRouter()
|
||||
|
||||
@metrics_router.get("/metrics", response_class=PlainTextResponse, tags=["metrics"], summary="Prometheus metrics")
|
||||
|
||||
@@ -7,6 +7,9 @@ from sqlalchemy import event
|
||||
|
||||
from .config import settings
|
||||
|
||||
# Import all models to ensure they are registered with SQLModel.metadata
|
||||
from .models import Block, Transaction, Account, Receipt, Escrow # noqa: F401
|
||||
|
||||
_engine = create_engine(f"sqlite:///{settings.db_path}", echo=False)
|
||||
|
||||
@event.listens_for(_engine, "connect")
|
||||
@@ -29,3 +32,6 @@ def init_db() -> None:
|
||||
def session_scope() -> Session:
|
||||
with Session(_engine) as session:
|
||||
yield session
|
||||
|
||||
# Expose engine for escrow routes
|
||||
engine = _engine
|
||||
|
||||
@@ -155,3 +155,12 @@ class Account(SQLModel, table=True):
|
||||
balance: int = 0
|
||||
nonce: int = 0
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
class Escrow(SQLModel, table=True):
|
||||
__tablename__ = "escrow"
|
||||
job_id: str = Field(primary_key=True)
|
||||
buyer: str = Field(foreign_key="account.address")
|
||||
provider: str = Field(foreign_key="account.address")
|
||||
amount: int
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
released_at: Optional[datetime] = None
|
||||
|
||||
Reference in New Issue
Block a user