@@ -2198,19 +2198,21 @@ module Queries = struct
2198
2198
Mina_lib. snark_pool mina |> Network_pool.Snark_pool. resource_pool
2199
2199
|> Network_pool.Snark_pool.Resource_pool. all_completed_work )
2200
2200
2201
+ (* Auxiliary function to fetch all pending work *)
2202
+ let get_pending_work mina =
2203
+ let snark_job_state = Mina_lib. snark_job_state mina in
2204
+ let snark_pool = Mina_lib. snark_pool mina in
2205
+ let fee_opt =
2206
+ Mina_lib. (
2207
+ Option. map (snark_worker_key mina) ~f: (fun _ -> snark_work_fee mina))
2208
+ in
2209
+ Work_selector. pending_work_statements ~snark_pool ~fee_opt snark_job_state
2210
+
2201
2211
let pending_snark_work =
2202
2212
field " pendingSnarkWork" ~doc: " List of snark works that are yet to be done"
2203
2213
~args: Arg. []
2204
2214
~typ: (non_null @@ list @@ non_null Types. pending_work)
2205
- ~resolve: (fun { ctx = mina ; _ } () ->
2206
- let snark_job_state = Mina_lib. snark_job_state mina in
2207
- let snark_pool = Mina_lib. snark_pool mina in
2208
- let fee_opt =
2209
- Mina_lib. (
2210
- Option. map (snark_worker_key mina) ~f: (fun _ -> snark_work_fee mina))
2211
- in
2212
- Work_selector. pending_work_statements ~snark_pool ~fee_opt
2213
- snark_job_state )
2215
+ ~resolve: (fun { ctx = mina ; _ } () -> get_pending_work mina)
2214
2216
2215
2217
let pending_snark_work_range =
2216
2218
field " pendingSnarkWorkRange"
@@ -2233,17 +2235,6 @@ module Queries = struct
2233
2235
]
2234
2236
~typ: (non_null @@ list @@ non_null Types. pending_work)
2235
2237
~resolve: (fun { ctx = mina ; _ } () start_idx end_idx ->
2236
- let pending_work =
2237
- let snark_job_state = Mina_lib. snark_job_state mina in
2238
- let snark_pool = Mina_lib. snark_pool mina in
2239
- let fee_opt =
2240
- Mina_lib. (
2241
- Option. map (snark_worker_key mina) ~f: (fun _ ->
2242
- snark_work_fee mina ))
2243
- in
2244
- Work_selector. pending_work_statements ~snark_pool ~fee_opt
2245
- snark_job_state
2246
- in
2247
2238
let start_idx = Unsigned.UInt32. to_int start_idx in
2248
2239
(* end_idx is max_int in the default case, in that case we want to take
2249
2240
only the element at start_idx. If [start_idx, end_idx] is not a
@@ -2253,7 +2244,8 @@ module Queries = struct
2253
2244
else if start_idx > Unsigned.UInt32. to_int end_idx then 0
2254
2245
else Unsigned.UInt32. to_int end_idx - start_idx + 1
2255
2246
in
2256
- try List. sub ~pos: start_idx ~len @@ pending_work with _ -> [] )
2247
+ try List. sub ~pos: start_idx ~len @@ get_pending_work mina with _ -> []
2248
+ )
2257
2249
2258
2250
module SnarkedLedgerMembership = struct
2259
2251
let resolve_membership :
0 commit comments