Documentation IndexFetch the complete documentation index at: /llms.txtUse this file to discover all available pages before exploring further.
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Reconstruct data from multiple blobs
Blob 1: [length_1][chunk_1][padding] → Extract chunk_1 Blob 2: [length_2][chunk_2][padding] → Extract chunk_2 Blob 3: [length_3][chunk_3][padding] → Extract chunk_3 Result: chunk_1 + chunk_2 + chunk_3
import { Blob } from 'tevm'; const blobs = Blob.splitData(data); // Manual join (equivalent to joinData) const chunks = blobs.map(blob => Blob.toData(blob)); const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0); const result = new Uint8Array(totalLength); let offset = 0; for (const chunk of chunks) { result.set(chunk, offset); offset += chunk.length; } // Verify equivalence const auto = Blob.joinData(blobs); console.log(Blob.equals(result, auto)); // true
import { Blob } from 'tevm'; function verifyRoundTrip(data: Uint8Array) { // Split const blobs = Blob.splitData(data); // Join const reconstructed = Blob.joinData(blobs); // Verify if (reconstructed.length !== data.length) { throw new Error('Length mismatch'); } if (!Blob.equals(reconstructed, data)) { throw new Error('Data mismatch'); } console.log('Round-trip verified'); } // Test with various sizes verifyRoundTrip(new Uint8Array(1000)); verifyRoundTrip(new Uint8Array(100_000)); verifyRoundTrip(new Uint8Array(300_000));
import { Blob } from 'tevm'; // Invalid blob size try { const invalid = new Uint8Array(1000); Blob.joinData([invalid as any]); } catch (e) { console.error(e); // "Invalid blob size: 1000" } // Corrupted length prefix const blobs = Blob.splitData(data); blobs[0][0] = 0xff; // Corrupt length prefix try { Blob.joinData(blobs); } catch (e) { console.error(e); // "Invalid length prefix" }
import { Blob } from 'tevm'; // Empty array returns empty data const result = Blob.joinData([]); console.log(result.length); // 0 console.log(result instanceof Uint8Array); // true
Was this page helpful?
Suggestions