@@ -433,7 +433,7 @@ enum Invalid {
433433 Unavailable ( Cid , Error ) ,
434434 ManifestParseError ( Error ) ,
435435 SchemaParseError ( Error ) ,
436- WasmParseError ( Error ) ,
436+ WasmParseError ( Cid , String , Error ) ,
437437 AbiParseError ( Error ) ,
438438 ForbiddenApi ( String ) ,
439439 UnsupportedNetwork ( String ) ,
@@ -449,7 +449,7 @@ impl Display for Invalid {
449449 Unavailable ( cid, e) => write ! ( f, "unavailable cid: {} ({})" , cid, e) ,
450450 ManifestParseError ( e) => write ! ( f, "manifest parse error: {}" , e) ,
451451 SchemaParseError ( e) => write ! ( f, "schema parse error: {}" , e) ,
452- WasmParseError ( e) => write ! ( f, "wasm parse error: {}" , e ) ,
452+ WasmParseError ( cid , wasm , e) => write ! ( f, "error validating wasm. cid: {}, wasm parse error: {}, wasm as string: {} " , cid , e , wasm ) ,
453453 AbiParseError ( e) => write ! ( f, "abi parse error: {}" , e) ,
454454 ForbiddenApi ( api) => write ! ( f, "use of forbidden api: {}" , api) ,
455455 UnsupportedNetwork ( network_id) => write ! ( f, "unsupported network: {}" , network_id) ,
@@ -574,9 +574,11 @@ async fn check(
574574
575575 // Check mappings.
576576 if let Some ( file) = file {
577- let wasm = ipfs. cat ( check_link ( file) ?) . await ?;
577+ let cid = check_link ( file) ?;
578+ let wasm = ipfs. cat ( cid. clone ( ) ) . await ?;
579+ let wasm_as_string = format ! ( "{:#?}" , wasm) ;
578580 if let Some ( host_fn) = calls_any_host_fn ( & wasm, FORBIDDEN_HOST_FN_PREFIX )
579- . map_err ( Invalid :: WasmParseError ) ?
581+ . map_err ( |e| Invalid :: WasmParseError ( cid , wasm_as_string , e . into ( ) ) ) ?
580582 {
581583 return Err ( Invalid :: ForbiddenApi ( host_fn. to_string ( ) ) . into ( ) ) ;
582584 }
0 commit comments