@@ -2,13 +2,16 @@ use jsonrpsee::{types::ErrorObjectOwned, Methods};
22use sugondat_shim_common_sovereign:: { Block , SovereignRPCServer } ;
33use tracing:: { debug, info} ;
44
5+ use super :: rpc_error as err;
56use crate :: { key:: Keypair , sugondat_rpc} ;
67
78/// Registers the sovereign dock in the given methods.
89pub fn register ( methods : & mut Methods , config : & super :: Config ) {
910 debug ! ( "enabling sovereign adapter dock" ) ;
1011 let dock = SovereignDock :: new ( config. client . clone ( ) , config. submit_key . clone ( ) ) ;
11- methods. merge ( dock. into_rpc ( ) ) . unwrap ( ) ;
12+ methods
13+ . merge ( dock. into_rpc ( ) )
14+ . expect ( "adapter namespace must be unique" ) ;
1215}
1316
1417struct SovereignDock {
@@ -58,22 +61,15 @@ impl SovereignRPCServer for SovereignDock {
5861 namespace : sugondat_nmt:: Namespace ,
5962 ) -> Result < ( ) , ErrorObjectOwned > {
6063 info ! ( "submit_blob({}, {:?})" , blob. len( ) , namespace) ;
61-
62- let submit_key = match self . submit_key . as_ref ( ) {
63- Some ( k) => k. clone ( ) ,
64- None => {
65- return Err ( ErrorObjectOwned :: owned (
66- jsonrpsee:: types:: error:: INTERNAL_ERROR_CODE ,
67- "Internal Error: no key for signing blobs" ,
68- None :: < ( ) > ,
69- ) )
70- }
71- } ;
72-
64+ let submit_key = self
65+ . submit_key
66+ . as_ref ( )
67+ . cloned ( )
68+ . ok_or_else ( err:: no_signing_key) ?;
7369 self . client
7470 . submit_blob ( blob, namespace, submit_key)
7571 . await
76- . unwrap ( ) ;
72+ . map_err ( |_| err :: submission_error ( ) ) ? ;
7773 Ok ( ( ) )
7874 }
7975}
0 commit comments