Skip to content

Commit d23a655

Browse files
committed
better check for segment
1 parent f58eb9a commit d23a655

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

src/lib/uptime_service/uptime_service.ml

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -202,26 +202,30 @@ let read_all_proofs_for_work_single_spec =
202202

203203
let extract_terminal_zk_segment ~(m : (module Transaction_snark.S)) ~witness
204204
~input ~zkapp_command ~staged_ledger_hash =
205+
let staged_ledger_hash = Staged_ledger_hash.ledger_hash staged_ledger_hash in
206+
let p x =
207+
match x with
208+
| Snark_work_lib.Spec.Sub_zkapp.Stable.V1.Segment s ->
209+
Ledger_hash.(s.statement.target.second_pass_ledger = staged_ledger_hash)
210+
| _ ->
211+
false
212+
in
205213
let%bind.Result final_segment =
206214
Work_partitioner.make_zkapp_segments ~m ~input ~witness ~zkapp_command
207215
|> Result.map_error
208216
~f:
209217
Work_partitioner.Snark_worker_shared.Failed_to_generate_inputs
210218
.error_of_t
211-
|> Result.map ~f:Mina_stdlib.Nonempty_list.last
219+
|> Result.map ~f:(Mina_stdlib.Nonempty_list.find ~f:p)
212220
in
213221
match final_segment with
214-
| Snark_work_lib.Spec.Sub_zkapp.Stable.V1.Segment s as res ->
215-
let expected = Staged_ledger_hash.ledger_hash staged_ledger_hash in
216-
if Ledger_hash.(s.statement.target.second_pass_ledger = expected) then
217-
Ok res
218-
else
219-
Error
220-
( Error.of_string
221-
@@ sprintf "Mismatch segment target hash, expected %s, got %s"
222-
(Ledger_hash0.to_base58_check expected)
223-
(Ledger_hash0.to_base58_check
224-
s.statement.target.second_pass_ledger ) )
222+
| Some (Snark_work_lib.Spec.Sub_zkapp.Stable.V1.Segment _ as res) ->
223+
Ok res
224+
| _ ->
225+
Error
226+
( Error.of_string
227+
@@ sprintf "Failed to find zkapp segment with target hash %s"
228+
(Ledger_hash0.to_base58_check staged_ledger_hash) )
225229
| _ ->
226230
Error
227231
(Error.of_string "Expected last zkapp segment to be segment, not merge")

0 commit comments

Comments
 (0)