kopia lustrzana https://github.com/bugout-dev/moonstream
Check metatx endpoint for duplicates
rodzic
f6e541edab
commit
9a31d145e0
|
@ -71,6 +71,12 @@ class CallRequestAlreadyRegistered(Exception):
|
|||
"""
|
||||
|
||||
|
||||
class CallRequestIdDuplicates(Exception):
|
||||
"""
|
||||
Raised when same call request IDs passed in one request.
|
||||
"""
|
||||
|
||||
|
||||
def parse_registered_contract_response(
|
||||
obj: Tuple[RegisteredContract, Blockchain]
|
||||
) -> data.RegisteredContractResponse:
|
||||
|
|
|
@ -331,10 +331,18 @@ async def check_requests_route(
|
|||
Implemented for pre-check until list of requests to be pushed into database.
|
||||
"""
|
||||
try:
|
||||
incoming_requests: Set[Tuple[str, str]] = {
|
||||
(Web3.toChecksumAddress(r.caller), r.request_id)
|
||||
for r in request_data.specifications
|
||||
}
|
||||
incoming_requests: Set[Tuple[str, str]] = set()
|
||||
incoming_request_ids: List[str] = []
|
||||
for r in request_data.specifications:
|
||||
caller_addr = Web3.toChecksumAddress(r.caller)
|
||||
incoming_requests.add((caller_addr, r.request_id))
|
||||
incoming_request_ids.append(r.request_id)
|
||||
|
||||
if len(incoming_requests) != len(incoming_request_ids):
|
||||
raise contracts_actions.CallRequestIdDuplicates(
|
||||
"There are same call_request_id's in one request"
|
||||
)
|
||||
|
||||
existing_requests = contracts_actions.get_call_request_from_tuple(
|
||||
db_session=db_session,
|
||||
metatx_requester_id=user.id,
|
||||
|
@ -342,6 +350,10 @@ async def check_requests_route(
|
|||
contract_id=request_data.contract_id,
|
||||
contract_address=request_data.contract_address,
|
||||
)
|
||||
except contracts_actions.CallRequestIdDuplicates:
|
||||
raise EngineHTTPException(
|
||||
status_code=400, detail="There are same call_request_id's in one request"
|
||||
)
|
||||
except Exception as err:
|
||||
logger.error(repr(err))
|
||||
raise EngineHTTPException(status_code=500)
|
||||
|
|
Ładowanie…
Reference in New Issue