@@ -43,6 +43,20 @@ fn app() -> FilecoinApp<TransportNativeHID> {
43
43
FilecoinApp :: new ( TransportNativeHID :: new ( & HIDAPI ) . expect ( "unable to create transport" ) )
44
44
}
45
45
46
+ /// Helper function to prepare a personal message with Filecoin prefix
47
+ /// This constructs the message format: "\x19Filecoin Signed Message:\n<length><message>"
48
+ fn prepare_personal_message_with_prefix ( personal_message : & [ u8 ] ) -> Vec < u8 > {
49
+ let prefix = b"\x19 Filecoin Signed Message:\n " ;
50
+ let length_string = personal_message. len ( ) . to_string ( ) ;
51
+
52
+ let mut message_with_prefix = Vec :: new ( ) ;
53
+ message_with_prefix. extend_from_slice ( prefix) ;
54
+ message_with_prefix. extend_from_slice ( length_string. as_bytes ( ) ) ;
55
+ message_with_prefix. extend_from_slice ( personal_message) ;
56
+
57
+ message_with_prefix
58
+ }
59
+
46
60
#[ tokio:: test]
47
61
#[ serial]
48
62
async fn version ( ) {
@@ -281,13 +295,7 @@ async fn sign_personal_msg() {
281
295
. await
282
296
. unwrap ( ) ;
283
297
284
- let prefix = b"\x19 Filecoin Signed Message:\n " ;
285
- let length_bytes = ( personal_message. len ( ) as u32 ) . to_be_bytes ( ) ;
286
-
287
- let mut message_with_prefix = Vec :: new ( ) ;
288
- message_with_prefix. extend_from_slice ( prefix) ;
289
- message_with_prefix. extend_from_slice ( & length_bytes) ;
290
- message_with_prefix. extend_from_slice ( personal_message) ;
298
+ let message_with_prefix = prepare_personal_message_with_prefix ( personal_message) ;
291
299
292
300
let mut reconstructed_sig_bytes = [ 0u8 ; 64 ] ;
293
301
reconstructed_sig_bytes[ 0 ..32 ] . copy_from_slice ( & signature. r ) ;
@@ -338,13 +346,7 @@ async fn sign_personal_msg_long_message() {
338
346
. await
339
347
. unwrap ( ) ;
340
348
341
- let prefix = b"\x19 Filecoin Signed Message:\n " ;
342
- let length_bytes = ( personal_message. len ( ) as u32 ) . to_be_bytes ( ) ;
343
-
344
- let mut message_with_prefix = Vec :: new ( ) ;
345
- message_with_prefix. extend_from_slice ( prefix) ;
346
- message_with_prefix. extend_from_slice ( & length_bytes) ;
347
- message_with_prefix. extend_from_slice ( & personal_message) ;
349
+ let message_with_prefix = prepare_personal_message_with_prefix ( & personal_message) ;
348
350
349
351
let mut reconstructed_sig_bytes = [ 0u8 ; 64 ] ;
350
352
reconstructed_sig_bytes[ 0 ..32 ] . copy_from_slice ( & signature. r ) ;
0 commit comments