Skip to content

Commit bed927c

Browse files
committed
GraphQL: unify code for pending work functions
1 parent a0e1fc1 commit bed927c

File tree

1 file changed

+13
-21
lines changed

1 file changed

+13
-21
lines changed

src/lib/mina_graphql/mina_graphql.ml

+13-21
Original file line numberDiff line numberDiff line change
@@ -2198,19 +2198,21 @@ module Queries = struct
21982198
Mina_lib.snark_pool mina |> Network_pool.Snark_pool.resource_pool
21992199
|> Network_pool.Snark_pool.Resource_pool.all_completed_work )
22002200

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+
22012211
let pending_snark_work =
22022212
field "pendingSnarkWork" ~doc:"List of snark works that are yet to be done"
22032213
~args:Arg.[]
22042214
~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)
22142216

22152217
let pending_snark_work_range =
22162218
field "pendingSnarkWorkRange"
@@ -2233,17 +2235,6 @@ module Queries = struct
22332235
]
22342236
~typ:(non_null @@ list @@ non_null Types.pending_work)
22352237
~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
22472238
let start_idx = Unsigned.UInt32.to_int start_idx in
22482239
(* end_idx is max_int in the default case, in that case we want to take
22492240
only the element at start_idx. If [start_idx, end_idx] is not a
@@ -2253,7 +2244,8 @@ module Queries = struct
22532244
else if start_idx > Unsigned.UInt32.to_int end_idx then 0
22542245
else Unsigned.UInt32.to_int end_idx - start_idx + 1
22552246
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+
)
22572249

22582250
module SnarkedLedgerMembership = struct
22592251
let resolve_membership :

0 commit comments

Comments
 (0)