diff --git a/rpc/server/src/module/state_rpc.rs b/rpc/server/src/module/state_rpc.rs index 4090f7a6d8..1a74393145 100644 --- a/rpc/server/src/module/state_rpc.rs +++ b/rpc/server/src/module/state_rpc.rs @@ -243,10 +243,10 @@ where .map(|(k, v)| { let struct_tag = StructTag::decode(k.as_slice())?; let decoded = if option.decode { - Some( - view_resource(&statedb, struct_tag.clone(), v.as_slice())? - .into(), - ) + //ignore the resource decode error + view_resource(&statedb, struct_tag.clone(), v.as_slice()) + .ok() + .map(Into::into) } else { None }; @@ -296,7 +296,8 @@ where let identifier = Identifier::decode(k.as_slice())?; let module_id = ModuleId::new(addr, identifier.clone()); let abi = if option.resolve { - Some(ABIResolver::new(&statedb).resolve_module(&module_id)?) + //ignore the resolve error + ABIResolver::new(&statedb).resolve_module(&module_id).ok() } else { None };