diff --git a/src/aleph_vrf/coordinator/main.py b/src/aleph_vrf/coordinator/main.py index 43ed916..6956c81 100644 --- a/src/aleph_vrf/coordinator/main.py +++ b/src/aleph_vrf/coordinator/main.py @@ -3,6 +3,7 @@ from pydantic import BaseModel +from aleph_vrf.coordinator.executor_selection import UsePredeterminedExecutors from aleph_vrf.settings import settings logger = logging.getLogger(__name__) @@ -16,7 +17,7 @@ logger.debug("local imports") from aleph_vrf.coordinator.vrf import generate_vrf -from aleph_vrf.models import APIError, APIResponse, PublishedVRFResponse +from aleph_vrf.models import APIError, APIResponse, PublishedVRFResponse, Executor, Node logger.debug("imports done") @@ -41,7 +42,7 @@ async def index(): @app.post("/vrf") async def receive_vrf( - request: Optional[VRFRequest] = None, + request: Optional[VRFRequest] = None, ) -> APIResponse[Union[PublishedVRFResponse, APIError]]: """ Goes through the VRF random number generation process and returns a random number @@ -59,3 +60,33 @@ async def receive_vrf( raise HTTPException(status_code=500, detail=str(err)) return APIResponse(data=response) + + +@app.post("/test_vrf") +async def receive_vrf( + request: Optional[VRFRequest] = None, +) -> APIResponse[Union[PublishedVRFResponse, APIError]]: + """ + Goes through the VRF random number generation process and returns a random number + along with details on how the number was generated. + """ + + account = settings.aleph_account() + + response: Union[PublishedVRFResponse, APIError] + + request_id = request.request_id if request and request.request_id else None + try: + executor_url = "https://CRN_URL" # CRN main URL, like https://ovh.staging.aleph.sh/ + executors = [Executor(node=Node(address=executor_url))] + executor_policy = UsePredeterminedExecutors(executors) + response = await generate_vrf( + account=account, + request_id=request_id, + nb_executors=1, + executor_selection_policy=executor_policy + ) + except Exception as err: + raise HTTPException(status_code=500, detail=str(err)) + + return APIResponse(data=response)