@@ -6,6 +6,8 @@ use mina_p2p_messages::v2::{
6
6
conv, LedgerHash , MinaBaseSignedCommandStableV2 , MinaBaseUserCommandStableV2 ,
7
7
MinaBaseZkappCommandTStableV1WireStableV1 , TokenIdKeyHash , TransactionHash ,
8
8
} ;
9
+ use mina_signer:: CompressedPubKey ;
10
+ use node:: rpc:: RpcSnarkerConfig ;
9
11
use node:: {
10
12
account:: AccountPublicKey ,
11
13
ledger:: read:: LedgerStatus ,
@@ -26,7 +28,7 @@ use openmina_core::{
26
28
NetworkConfig ,
27
29
} ;
28
30
use openmina_node_common:: rpc:: RpcSender ;
29
- use snark:: GraphQLPendingSnarkWork ;
31
+ use snark:: { GraphQLPendingSnarkWork , GraphQLSnarkWorker } ;
30
32
use std:: str:: FromStr ;
31
33
use tokio:: sync:: OnceCell ;
32
34
use transaction:: GraphQLTransactionStatus ;
@@ -41,6 +43,9 @@ pub mod transaction;
41
43
pub mod user_command;
42
44
pub mod zkapp;
43
45
46
+ /// Base58 encoded public key
47
+ pub type GraphQLPublicKey = String ;
48
+
44
49
#[ derive( Debug , thiserror:: Error ) ]
45
50
pub enum Error {
46
51
#[ error( "Conversion error: {0}" ) ]
@@ -534,6 +539,34 @@ impl Query {
534
539
let res = BuildEnv :: get ( ) . git . commit_hash ;
535
540
Ok ( res)
536
541
}
542
+
543
+ async fn current_snark_worker (
544
+ & self ,
545
+ context : & Context ,
546
+ ) -> juniper:: FieldResult < Option < GraphQLSnarkWorker > > {
547
+ let config: Option < RpcSnarkerConfig > = context
548
+ . rpc_sender
549
+ . oneshot_request ( RpcRequest :: SnarkerConfig )
550
+ . await
551
+ . ok_or ( Error :: StateMachineEmptyResponse ) ?;
552
+
553
+ let Some ( config) = config else {
554
+ return Ok ( None ) ;
555
+ } ;
556
+
557
+ let account = context
558
+ . load_account ( AccountId {
559
+ public_key : CompressedPubKey :: try_from ( & config. public_key ) ?,
560
+ token_id : TokenIdKeyHash :: default ( ) . into ( ) ,
561
+ } )
562
+ . await ;
563
+
564
+ Ok ( Some ( GraphQLSnarkWorker {
565
+ key : config. public_key . to_string ( ) ,
566
+ account,
567
+ fee : config. fee . to_string ( ) ,
568
+ } ) )
569
+ }
537
570
}
538
571
539
572
async fn inject_tx < R > (
0 commit comments