Fix custom error handling when simulating invalid proofs

This commit is contained in:
Arnaud 2025-05-06 10:13:23 +02:00 committed by Chrysostomos Nanakos
parent acc50aa4ba
commit 60d1c6e2ac
No known key found for this signature in database
3 changed files with 8 additions and 2 deletions

View File

@ -349,7 +349,12 @@ method submitProof*(
market: OnChainMarket, id: SlotId, proof: Groth16Proof
) {.async: (raises: [CancelledError, MarketError]).} =
convertEthersError("Failed to submit proof"):
discard await market.contract.submitProof(id, proof).confirm(1)
try:
discard await market.contract.submitProof(id, proof).confirm(1)
except Proofs_InvalidProof as parent:
raise newException(
ProofInvalidError, "Failed to fill slot because the slot is not free", parent
)
method markProofAsMissing*(
market: OnChainMarket, id: SlotId, period: Period

View File

@ -20,6 +20,7 @@ type
MarketError* = object of CodexError
SlotStateMismatchError* = object of MarketError
SlotReservationNotAllowedError* = object of MarketError
ProofInvalidError* = object of MarketError
Subscription* = ref object of RootObj
OnRequest* =
proc(id: RequestId, ask: StorageAsk, expiry: uint64) {.gcsafe, upraises: [].}

View File

@ -40,7 +40,7 @@ when codex_enable_proof_failures:
try:
warn "Submitting INVALID proof", period = currentPeriod, slotId = slot.id
await market.submitProof(slot.id, Groth16Proof.default)
except Proofs_InvalidProof as e:
except ProofInvalidError as e:
discard # expected
except CancelledError as error:
raise error