Documentation Index
Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt
Use this file to discover all available pages before exploring further.
Try it Live
Run Blob examples in the interactive playground
How It Works
Extracts data from each blob and concatenates:
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
Manual Join
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
Round-Trip Verification
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));
Error Handling
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"
}
Empty Array
import { Blob } from 'tevm';
// Empty array returns empty data
const result = Blob.joinData([]);
console.log(result.length); // 0
console.log(result instanceof Uint8Array); // true
See Also