UNPKG

@kyve/core-beta

Version:

🚀 The base KYVE node implementation.

47 lines (40 loc) • 1.31 kB
import { Node } from "../.."; import { DataItem } from "../../types"; import { bytesToBundle, standardizeJSON } from "../../utils"; /** * saveBundleDecompress decompresses a bundle with the specified compression. * It never throws an error and returns no data if one occurs. * * @method saveBundleDecompress * @param {Node} this * @param {Buffer} rawStorageData * @return {Promise<DataItem[]>} */ export async function saveBundleDecompress( this: Node, rawStorageData: Buffer ): Promise<DataItem[]> { try { // get compression the proposed bundle was compressed with this.logger.debug( `compressionFactory(${this.pool.bundle_proposal?.compression_id ?? 0})` ); const compression = this.compressionFactory( this.pool.bundle_proposal?.compression_id ?? 0 ); this.logger.debug(`this.compression.decompress($RAW_STORAGE_DATA)`); const storageBundle = bytesToBundle( await compression.decompress(rawStorageData) ); this.logger.info( `Successfully decompressed bundle with Compression:${compression.name}` ); return standardizeJSON(storageBundle); } catch (err) { this.logger.error( `Could not decompress bundle with Compression. Continuing ...` ); this.logger.error(standardizeJSON(err)); return []; } }