Skip to content

Commit

Permalink
Updates based on pr comments and extracting dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
adam-gf committed Sep 3, 2024
1 parent 501c1eb commit 3cbf515
Show file tree
Hide file tree
Showing 20 changed files with 857 additions and 441 deletions.
1 change: 0 additions & 1 deletion backend/app/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
db,
migrate,
cors,
socketio,
cache,
init_web3,
api,
Expand Down
5 changes: 3 additions & 2 deletions backend/startup.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,12 @@ def teardown_session(*args, **kwargs):
db.session.remove()


from v2.main import fastapi_app
from v2.main import fastapi_app # noqa

# Mount Flask app under a sub-path
fastapi_app.mount("/flask", WSGIMiddleware(flask_app))


# Middleware to check if the path exists in FastAPI
class PathCheckMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
Expand All @@ -80,4 +81,4 @@ async def dispatch(self, request: Request, call_next):
if __name__ == "__main__":
import uvicorn

uvicorn.run(fastapi_app, host="0.0.0.0", port=5000)
uvicorn.run(fastapi_app, host="0.0.0.0", port=5000)
55 changes: 55 additions & 0 deletions backend/v2/allocations/dependencies.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
from typing import Annotated

from fastapi import Depends
from pydantic import Field
from pydantic_settings import BaseSettings
from v2.projects.services import EstimatedProjectMatchedRewards
from v2.epochs.dependencies import get_epochs_subgraph
from v2.epochs.subgraphs import EpochsSubgraph
from v2.projects.contracts import ProjectsContracts
from v2.projects.depdendencies import (
get_estimated_project_matched_rewards,
get_projects_contracts,
)
from v2.uniqueness_quotients.dependencies import get_uq_score_getter
from v2.uniqueness_quotients.services import UQScoreGetter
from v2.core.dependencies import AsyncDbSession

from .services import Allocations
from .validators import SignatureVerifier


class SignatureVerifierSettings(BaseSettings):
chain_id: int = Field(
default=11155111,
description="The chain id to use for the signature verification.",
)


def get_signature_verifier(
session: AsyncDbSession,
epochs_subgraph: Annotated[EpochsSubgraph, Depends(get_epochs_subgraph)],
projects_contracts: Annotated[ProjectsContracts, Depends(get_projects_contracts)],
settings: Annotated[SignatureVerifierSettings, Depends(SignatureVerifierSettings)],
) -> SignatureVerifier:
return SignatureVerifier(
session, epochs_subgraph, projects_contracts, settings.chain_id
)


def get_allocations(
session: AsyncDbSession,
signature_verifier: SignatureVerifier,
uq_score_getter: Annotated[UQScoreGetter, Depends(get_uq_score_getter)],
projects: Annotated[ProjectsContracts, Depends(get_projects_contracts)],
estimated_project_matched_rewards: Annotated[
EstimatedProjectMatchedRewards, Depends(get_estimated_project_matched_rewards)
],
) -> Allocations:
return Allocations(
session,
signature_verifier,
uq_score_getter,
projects,
estimated_project_matched_rewards,
)
8 changes: 5 additions & 3 deletions backend/v2/allocations/repositories.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from sqlalchemy.sql.functions import coalesce
from v2.users.repositories import get_user_by_address

from .models import AllocationWithUserUQScore, ProjectDonation, UserAllocationRequest
from .schemas import AllocationWithUserUQScore, ProjectDonation, UserAllocationRequest


async def sum_allocations_by_epoch(session: AsyncSession, epoch_number: int) -> int:
Expand Down Expand Up @@ -150,15 +150,17 @@ async def get_donations_by_project(
project_address: str,
epoch_number: int,
) -> list[ProjectDonation]:
"""Get all donations for a project in a given epoch."""

result = await session.execute(
select(Allocation)
.options(joinedload(Allocation.user))
.filter(Allocation.project_address == project_address)
.filter(Allocation.epoch == epoch_number)
.filter(Allocation.deleted_at.is_(None))
.options(joinedload(Allocation.user))
)

allocations = result.all()
allocations = result.scalars().all()

return [
ProjectDonation(
Expand Down
File renamed without changes.
Loading

0 comments on commit 3cbf515

Please sign in to comment.