File tree Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -115,7 +115,9 @@ impl Adapter for EthereumAdapter {
115
115
116
116
fn sign ( & self , state_root : & str ) -> AdapterResult < String > {
117
117
if let Some ( wallet) = & self . wallet {
118
- let message = Message :: from_slice ( & hash_message ( state_root) ) ;
118
+ let state_root = hex:: decode ( state_root)
119
+ . map_err ( |_| AdapterError :: Signature ( "invalid state_root" . to_string ( ) ) ) ?;
120
+ let message = Message :: from_slice ( & hash_message ( unsafe { std:: str:: from_utf8_unchecked ( & state_root) } ) ) ;
119
121
let wallet_sign = wallet
120
122
. sign ( & self . keystore_pwd , & message)
121
123
. map_err ( |_| map_error ( "failed to sign messages" ) ) ?;
@@ -137,7 +139,9 @@ impl Adapter for EthereumAdapter {
137
139
. map_err ( |_| AdapterError :: Signature ( "invalid signature" . to_string ( ) ) ) ?;
138
140
let address = Address :: from_slice ( signer. inner ( ) ) ;
139
141
let signature = Signature :: from_electrum ( & decoded_signature) ;
140
- let message = Message :: from_slice ( & hash_message ( state_root) ) ;
142
+ let state_root = hex:: decode ( state_root)
143
+ . map_err ( |_| AdapterError :: Signature ( "invalid state_root" . to_string ( ) ) ) ?;
144
+ let message = Message :: from_slice ( & hash_message ( unsafe { std:: str:: from_utf8_unchecked ( & state_root) } ) ) ;
141
145
142
146
verify_address ( & address, & signature, & message) . or_else ( |_| Ok ( false ) )
143
147
}
You can’t perform that action at this time.
0 commit comments