@@ -13,6 +13,7 @@ use trustchain_api::{
13
13
} ;
14
14
use trustchain_cli:: config:: cli_config;
15
15
use trustchain_core:: {
16
+ chain:: DIDChain ,
16
17
vc:: { CredentialError , DataCredentialError } ,
17
18
verifier:: Verifier ,
18
19
} ;
@@ -252,26 +253,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
252
253
. await ;
253
254
// Handle result
254
255
match verify_result {
255
- _err @ Err ( CredentialError :: VerificationResultError ( _) ) => {
256
- println ! ( "Proof... ❌ Invalid" ) ;
257
- }
258
- _err @ Err ( CredentialError :: NoProofPresent ) => {
259
- println ! ( "Proof... ❌ (missing proof)" ) ;
260
- }
261
- _err @ Err ( CredentialError :: MissingVerificationMethod ) => {
262
- println ! ( "Proof... ❌ (missing verification method)" ) ;
263
- }
264
- _err @ Err ( CredentialError :: NoIssuerPresent ) => {
265
- println ! ( "Proof... ✅" ) ;
266
- println ! ( "Issuer... ❌ (missing issuer)" ) ;
267
- }
268
- _err @ Err ( CredentialError :: VerifierError ( _) ) => {
269
- println ! ( "Proof... ✅" ) ;
270
- println ! ( "Issuer... ❌ (with verifier error)" ) ;
271
- }
272
- _err @ Err ( CredentialError :: FailedToDecodeJWT ) => {
273
- println ! ( "Proof... ❌" ) ;
274
- println ! ( "Issuer... ❌" ) ;
256
+ Err ( cred_err) => {
257
+ handle_credential_error ( & cred_err) ;
275
258
}
276
259
Ok ( _) => {
277
260
println ! ( "Proof... ✅" ) ;
@@ -363,32 +346,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
363
346
)
364
347
. await ;
365
348
// Handle result
366
- // TODO: avoid repetition (see similar error handling above).
367
349
match verify_result {
368
350
ref _e @ Err ( DataCredentialError :: CredentialError ( ref cred_err) ) => {
369
- match cred_err {
370
- _err @ CredentialError :: VerificationResultError ( _) => {
371
- println ! ( "Proof... ❌ Invalid" ) ;
372
- }
373
- _err @ CredentialError :: NoProofPresent => {
374
- println ! ( "Proof... ❌ (missing proof)" ) ;
375
- }
376
- _err @ CredentialError :: MissingVerificationMethod => {
377
- println ! ( "Proof... ❌ (missing verification method)" ) ;
378
- }
379
- _err @ CredentialError :: NoIssuerPresent => {
380
- println ! ( "Proof... ✅" ) ;
381
- println ! ( "Issuer... ❌ (missing issuer)" ) ;
382
- }
383
- _err @ CredentialError :: VerifierError ( _) => {
384
- println ! ( "Proof... ✅" ) ;
385
- println ! ( "Issuer... ❌ (with verifier error)" ) ;
386
- }
387
- _err @ CredentialError :: FailedToDecodeJWT => {
388
- println ! ( "Proof... ❌" ) ;
389
- println ! ( "Issuer... ❌" ) ;
390
- }
391
- }
351
+ handle_credential_error ( cred_err) ;
392
352
}
393
353
_e @ Err ( DataCredentialError :: MismatchedHashDigests ( _, _) ) => {
394
354
println ! ( "Digest... ❌ (mismatched dataset hash digests)" ) ;
@@ -437,3 +397,29 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
437
397
}
438
398
Ok ( ( ) )
439
399
}
400
+
401
+ fn handle_credential_error ( err : & CredentialError ) {
402
+ match err {
403
+ _err @ CredentialError :: VerificationResultError ( _) => {
404
+ println ! ( "Proof... ❌ Invalid" ) ;
405
+ }
406
+ _err @ CredentialError :: NoProofPresent => {
407
+ println ! ( "Proof... ❌ (missing proof)" ) ;
408
+ }
409
+ _err @ CredentialError :: MissingVerificationMethod => {
410
+ println ! ( "Proof... ❌ (missing verification method)" ) ;
411
+ }
412
+ _err @ CredentialError :: NoIssuerPresent => {
413
+ println ! ( "Proof... ✅" ) ;
414
+ println ! ( "Issuer... ❌ (missing issuer)" ) ;
415
+ }
416
+ _err @ CredentialError :: VerifierError ( _) => {
417
+ println ! ( "Proof... ✅" ) ;
418
+ println ! ( "Issuer... ❌ (with verifier error)" ) ;
419
+ }
420
+ _err @ CredentialError :: FailedToDecodeJWT => {
421
+ println ! ( "Proof... ❌" ) ;
422
+ println ! ( "Issuer... ❌" ) ;
423
+ }
424
+ }
425
+ }
0 commit comments