@@ -200,35 +200,32 @@ let read_all_proofs_for_work_single_spec =
200200 ~f_proof: Ledger_proof.Cached. read_proof_from_disk
201201 ~f_witness: Transaction_witness. read_all_proofs_from_disk
202202
203- let extract_terminal_zk_segment ~(m : (module Transaction_snark.S) ) ~witness
204- ~input ~zkapp_command ~staged_ledger_hash =
203+ let extract_terminal_zk_segment ~(m : (module Transaction_snark.S) )
204+ ~(witness : Transaction_witness.t ) ~input ~zkapp_command ~staged_ledger_hash
205+ =
205206 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
207+ let witness = Transaction_witness. read_all_proofs_from_disk witness in
213208 let % bind.Result final_segment =
214- Work_partitioner. make_zkapp_segments ~m ~input ~witness ~zkapp_command
209+ Work_partitioner.Snark_worker_shared. extract_zkapp_segment_works ~m ~input
210+ ~witness ~zkapp_command
215211 |> Result. map_error
216212 ~f:
217213 Work_partitioner.Snark_worker_shared. Failed_to_generate_inputs
218214 .error_of_t
219- |> Result. map ~f: (Mina_stdlib.Nonempty_list. find ~f: p)
215+ |> Result. map ~f: (function x ->
216+ Work_partitioner.Snark_worker_shared. Zkapp_command_inputs
217+ .read_all_proofs_from_disk x
218+ |> Mina_stdlib.Nonempty_list. find ~f: (function _ , _ , s ->
219+ Ledger_hash. (s.target.second_pass_ledger = staged_ledger_hash) ) )
220220 in
221221 match final_segment with
222- | Some (Snark_work_lib.Spec.Sub_zkapp.Stable.V1. Segment _ as res ) ->
223- Ok res
222+ | Some (witness , spec , statement ) ->
223+ Ok (witness, statement, spec)
224224 | _ ->
225225 Error
226226 ( Error. of_string
227227 @@ sprintf " Failed to find zkapp segment with target hash %s"
228228 (Ledger_hash0. to_base58_check staged_ledger_hash) )
229- | _ ->
230- Error
231- (Error. of_string " Expected last zkapp segment to be segment, not merge" )
232229
233230let send_block_and_transaction_snark ~logger ~constraint_constants ~interruptor
234231 ~url ~snark_worker ~transition_frontier ~peer_id
@@ -357,22 +354,22 @@ let send_block_and_transaction_snark ~logger ~constraint_constants ~interruptor
357354 send_uptime_data ~logger ~interruptor ~submitter_keypair ~url
358355 ~state_hash ~produced: false block_data
359356 | Some single_spec -> (
357+ let module T = Transaction_snark. Make (struct
358+ let signature_kind = signature_kind
359+
360+ let constraint_constants = constraint_constants
361+
362+ let proof_level = Genesis_constants.Proof_level. Full
363+ end ) in
360364 let s =
361365 match single_spec with
362366 | Transition (input , witness ) -> (
363367 match witness.transaction with
364368 | Command (Zkapp_command zkapp_command ) ->
365- let module T = Transaction_snark. Make (struct
366- let signature_kind = signature_kind
367-
368- let constraint_constants = constraint_constants
369-
370- let proof_level = Genesis_constants.Proof_level. Full
371- end ) in
372369 let % map.Result final_segment =
373370 extract_terminal_zk_segment
374371 ~m: (module T )
375- ~input ~witness ~zkapp_command ~staged_ledger_hash
372+ ~witness ~input ~zkapp_command ~staged_ledger_hash
376373 in
377374 `Zk_app final_segment
378375 | Command (Signed_command _) | Fee_transfer _ | Coinbase _
@@ -384,24 +381,15 @@ let send_block_and_transaction_snark ~logger ~constraint_constants ~interruptor
384381 in
385382 let work =
386383 match s with
387- | Ok (`Zk_app final_segment ) ->
388- let job =
389- Snark_work_lib.With_job_meta.
390- { spec = final_segment
391- ; job_id = failwith " " (* TODO*)
392- ; sok_message = message
393- }
394- in
384+ | Ok (`Zk_app (witness , statement , spec )) ->
395385 make_interruptible
396386 @@ Uptime_snark_worker. perform_partitioned snark_worker
397- (Snark_work_lib.Spec.Partitioned. Poly
398- .Sub_zkapp_command
399- job )
387+ (witness, statement, spec)
400388 | Ok (`Transaction single_spec ) ->
401389 make_interruptible
402- ( Uptime_snark_worker. perform_single snark_worker
390+ @@ Uptime_snark_worker. perform_single snark_worker
403391 ( message
404- , read_all_proofs_for_work_single_spec single_spec ) )
392+ , read_all_proofs_for_work_single_spec single_spec )
405393 | Error error ->
406394 Interruptible. return (Error error)
407395 in
0 commit comments