Skip to main content
@tevm/voltaire
@tevm/voltaire / primitives/Blob

primitives/Blob

Interfaces

BlobInstance

Defined in: src/primitives/Blob/index.ts:253

Methods

toCommitment()
toCommitment(): Commitment
Defined in: src/primitives/Blob/index.ts:255
Returns
Commitment
toData()
toData(): Uint8Array
Defined in: src/primitives/Blob/index.ts:254
Returns
Uint8Array
toProof()
toProof(commitment): Proof
Defined in: src/primitives/Blob/index.ts:256
Parameters
commitment
Commitment
Returns
Proof
verify()
verify(commitment, proof): boolean
Defined in: src/primitives/Blob/index.ts:257
Parameters
commitment
Commitment
proof
Proof
Returns
boolean

Type Aliases

BrandedBlob

BrandedBlob = Uint8Array & object
Defined in: src/primitives/Blob/BlobType.ts:10 Blob data (exactly 131072 bytes)

Type Declaration

[brand]
readonly [brand]: "Blob"

Commitment

Commitment = Uint8Array & object
Defined in: src/primitives/Blob/BlobType.ts:15 KZG commitment (48 bytes)

Type Declaration

[brand]
readonly [brand]: "Commitment"

Proof

Proof = Uint8Array & object
Defined in: src/primitives/Blob/BlobType.ts:20 KZG proof (48 bytes)

Type Declaration

[brand]
readonly [brand]: "Proof"

VersionedHash

VersionedHash = Uint8Array & object
Defined in: src/primitives/Blob/BlobType.ts:25 Versioned hash (32 bytes) - commitment hash with version prefix

Type Declaration

[brand]
readonly [brand]: "VersionedHash"

Variables

BYTES_PER_FIELD_ELEMENT

const BYTES_PER_FIELD_ELEMENT: 32 = 32
Defined in: src/primitives/Blob/constants.js:24 Bytes per field element

Since

0.0.0

calculateGas()

const calculateGas: (blobCount) => number = _calculateGas
Defined in: src/primitives/Blob/index.ts:45

Parameters

blobCount
number

Returns

number

COMMITMENT_VERSION_KZG

const COMMITMENT_VERSION_KZG: 1 = 0x01
Defined in: src/primitives/Blob/constants.js:36 Blob commitment version byte for KZG

Since

0.0.0

CommitmentNamespace

const CommitmentNamespace: object
Defined in: src/primitives/Blob/index.ts:155

Type Declaration

isValid()
isValid: (commitment) => boolean
Parameters
commitment
Uint8Array
Returns
boolean
toVersionedHash()
toVersionedHash: (commitment) => VersionedHash
Parameters
commitment
Commitment
Returns
VersionedHash

estimateBlobCount()

const estimateBlobCount: (dataSize) => number = _estimateBlobCount
Defined in: src/primitives/Blob/index.ts:46

Parameters

dataSize
number

Returns

number

FIELD_ELEMENTS_PER_BLOB

const FIELD_ELEMENTS_PER_BLOB: 4096 = 4096
Defined in: src/primitives/Blob/constants.js:18 Number of field elements per blob

Since

0.0.0

from()

const from: (value) => BrandedBlob = _from
Defined in: src/primitives/Blob/index.ts:47

Parameters

value
Uint8Array

Returns

BrandedBlob

fromData()

const fromData: (data) => BrandedBlob = _fromData
Defined in: src/primitives/Blob/index.ts:48

Parameters

data
Uint8Array

Returns

BrandedBlob

GAS_PER_BLOB

const GAS_PER_BLOB: 131072 = 131072
Defined in: src/primitives/Blob/constants.js:42 Blob gas per blob (2^17)

Since

0.0.0

isValid()

const isValid: (blob) => boolean = _isValid
Defined in: src/primitives/Blob/index.ts:49

Parameters

blob
Uint8Array

Returns

boolean

isValidVersion()

const isValidVersion: (hash) => boolean = _isValidVersion
Defined in: src/primitives/Blob/index.ts:50

Parameters

hash
VersionedHash

Returns

boolean

joinData()

const joinData: (blobs) => Uint8Array = _joinData
Defined in: src/primitives/Blob/index.ts:51

Parameters

blobs
readonly BrandedBlob[]

Returns

Uint8Array

MAX_DATA_PER_BLOB

const MAX_DATA_PER_BLOB: number
Defined in: src/primitives/Blob/constants.js:54 Maximum data bytes per blob (field elements * 31 bytes - 4 byte length prefix)

Since

0.0.0

MAX_PER_TRANSACTION

const MAX_PER_TRANSACTION: 6 = 6
Defined in: src/primitives/Blob/constants.js:30 Maximum blobs per transaction

Since

0.0.0

ProofNamespace

const ProofNamespace: object
Defined in: src/primitives/Blob/index.ts:164

Type Declaration

isValid()
isValid: (proof) => boolean
Parameters
proof
Uint8Array
Returns
boolean

SIZE

const SIZE: 131072 = 131072
Defined in: src/primitives/Blob/constants.js:12 Blob size in bytes (128 KB = 4096 field elements * 32 bytes)

Since

0.0.0

splitData()

const splitData: (data) => BrandedBlob[] = _splitData
Defined in: src/primitives/Blob/index.ts:52

Parameters

data
Uint8Array

Returns

BrandedBlob[]

TARGET_GAS_PER_BLOCK

const TARGET_GAS_PER_BLOCK: 393216 = 393216
Defined in: src/primitives/Blob/constants.js:48 Target blob gas per block (3 blobs)

Since

0.0.0

toCommitment()

const toCommitment: (blob) => Commitment
Defined in: src/primitives/Blob/index.ts:101

Parameters

blob
BrandedBlob

Returns

Commitment

ToCommitment()

const ToCommitment: (deps) => (blob) => Commitment = _ToCommitment
Defined in: src/primitives/Blob/index.ts:55

Parameters

deps
blobToKzgCommitment
(blob) => Uint8Array

Returns

(blob): Commitment
Parameters
blob
BrandedBlob
Returns
Commitment

toData()

const toData: (blob) => Uint8Array = _toData
Defined in: src/primitives/Blob/index.ts:53

Parameters

blob
BrandedBlob

Returns

Uint8Array

toProof()

const toProof: (blob, commitment) => Proof
Defined in: src/primitives/Blob/index.ts:104

Parameters

blob
BrandedBlob
commitment
Commitment

Returns

Proof

ToProof()

const ToProof: (deps) => (blob, commitment) => Proof
Defined in: src/primitives/Blob/index.ts:58

Parameters

deps
computeBlobKzgProof
(blob, commitment) => Uint8Array

Returns

(blob, commitment): Proof
Parameters
blob
BrandedBlob
commitment
Commitment
Returns
Proof

toVersionedHash()

const toVersionedHash: (commitment) => VersionedHash
Defined in: src/primitives/Blob/index.ts:100

Parameters

commitment
Commitment

Returns

VersionedHash

ToVersionedHash()

const ToVersionedHash: (deps) => (commitment) => VersionedHash = _ToVersionedHash
Defined in: src/primitives/Blob/index.ts:61

Parameters

deps
sha256
(data) => Uint8Array

Returns

(commitment): VersionedHash
Parameters
commitment
Commitment
Returns
VersionedHash

verify()

const verify: (blob, commitment, proof) => boolean
Defined in: src/primitives/Blob/index.ts:107

Parameters

blob
BrandedBlob
commitment
Commitment
proof
Proof

Returns

boolean

Verify()

const Verify: (deps) => (blob, commitment, proof) => boolean = _Verify
Defined in: src/primitives/Blob/index.ts:64

Parameters

deps
verifyBlobKzgProof
(blob, commitment, proof) => boolean

Returns

(blob, commitment, proof): boolean
Parameters
blob
BrandedBlob
commitment
Commitment
proof
Proof
Returns
boolean

verifyBatch()

const verifyBatch: (blobs, commitments, proofs) => boolean
Defined in: src/primitives/Blob/index.ts:110

Parameters

blobs
readonly BrandedBlob[]
commitments
readonly Commitment[]
proofs
readonly Proof[]

Returns

boolean

VerifyBatch()

const VerifyBatch: (deps) => (blobs, commitments, proofs) => boolean = _VerifyBatch
Defined in: src/primitives/Blob/index.ts:76

Parameters

deps
verifyBlobKzgProofBatch
(blobs, commitments, proofs) => boolean

Returns

(blobs, commitments, proofs): boolean
Parameters
blobs
readonly BrandedBlob[]
commitments
readonly Commitment[]
proofs
readonly Proof[]
Returns
boolean

VersionedHashNamespace

const VersionedHashNamespace: object
Defined in: src/primitives/Blob/index.ts:170

Type Declaration

getVersion()
getVersion: (hash) => number
Parameters
hash
Uint8Array
Returns
number
isValid()
isValid: (hash) => boolean
Parameters
hash
Uint8Array
Returns
boolean
version()
version: (hash) => number
Parameters
hash
Uint8Array
Returns
number

Functions

Blob()

Blob(value): Uint8Array<ArrayBufferLike> & object & BlobInstance
Defined in: src/primitives/Blob/index.ts:239 Creates a Blob instance from various input types. Canonical Class API constructor. Supports:
  • Number (creates empty blob of specified size)
  • Raw blob data (131072 bytes)
  • Data to encode (auto-encodes with length prefix)

Parameters

value
Number for size or Uint8Array (either 131072 bytes blob or data to encode) number | Uint8Array<ArrayBufferLike>

Returns

Uint8Array<ArrayBufferLike> & object & BlobInstance Blob instance

Throws

Error if data exceeds maximum size

Example

import { Blob } from './primitives/Blob/index.js';

// Create empty blob by size
const blob1 = Blob(131072);

// Raw blob
const blob2 = Blob(new Uint8Array(131072));

// Auto-encode data
const blob3 = Blob(new TextEncoder().encode("Hello"));