44
55#include "filecoin_signer_ffi.h"
66
7+ void free_resources (ExtendedKey * extended_key , ExternError * error ) {
8+ filecoin_signer_extended_key_free (extended_key );
9+ filecoin_signer_error_free (error );
10+ }
11+
12+ void manage_error (ExtendedKey * extended_key , ExternError * error ) {
13+ if (filecoin_signer_error_code (error ) == 0 ) {
14+ return ;
15+ }
16+ fprintf (stderr , "%s\n" , filecoin_signer_error_message (error ));
17+ free_resources (extended_key , error );
18+ exit (EXIT_FAILURE );
19+ }
20+
721int main (int argc , char * argv []) {
822 ExternError * error = filecoin_signer_error_new ();
923 ExtendedKey * extended_key = filecoin_signer_key_derive (
@@ -12,16 +26,10 @@ int main(int argc, char *argv[]) {
1226 "" ,
1327 error
1428 );
15-
16- if (filecoin_signer_error_code (error ) != 0 ) {
17- fprintf (stderr , "%s\n" , filecoin_signer_error_message (error ));
18- }
19- else {
20- char * private_key = filecoin_signer_extended_key_private_key (extended_key );
21- assert (strcmp (private_key , "f15716d3b003b304b8055d9cc62e6b9c869d56cc930c3858d4d7c31f5f53f14a" ) == 0 );
22- filecoin_signer_string_free (private_key );
23- }
24-
25- filecoin_signer_extended_key_free (extended_key );
26- filecoin_signer_error_free (error );
27- }
29+ manage_error (extended_key , error );
30+ char * private_key = filecoin_signer_extended_key_private_key (extended_key , error );
31+ manage_error (extended_key , error );
32+ assert (strcmp (private_key , "f15716d3b003b304b8055d9cc62e6b9c869d56cc930c3858d4d7c31f5f53f14a" ) == 0 );
33+ filecoin_signer_string_free (private_key );
34+ free_resources (extended_key , error );
35+ }
0 commit comments