docs: async def deserialize(data: dict):
          """
          Create the object from a previously serialized object.
  
          :param data: The output of the "serialize" call
          Example:
          source_id = 'foobar123'
          schema_name = 'Schema Name'
          payment_handle = 0
          credential_def1 = await CredentialDef.create(source_id, name, schema_id, payment_handle)
          data1 = await credential_def1.serialize()
          credential_def2 = await CredentialDef.deserialize(data1)
          :return: A re-instantiated object
          """
          try:
              credential_def = await CredentialDef._deserialize("vcx_credentialdef_deserialize",
                                                                json.dumps(data),
                                                                data['data']['source_id'],
                                                                data['data']['name'],
                                                                data['data']['id'])
              return credential_def
          except KeyError:
              raise VcxError(ErrorCode.InvalidCredentialDef)