toBlobSidecars
Creates blob sidecars from data or pre-computed components
toBlobSidecars
Creates blob sidecars from data or pre-computed components (blobs, commitments, proofs). A sidecar contains a blob, its KZG commitment, and its proof.
Import
import "github.com/ChefBingbong/viem-go/utils/blob"import "github.com/ChefBingbong/viem-go/utils/kzg"Usage
import "github.com/ChefBingbong/viem-go/utils/blob"import "github.com/ChefBingbong/viem-go/utils/kzg"
// Create sidecars from raw datasidecars, err := blob.ToBlobSidecars(blob.ToBlobSidecarsParams{ Data: []byte("hello world"), Kzg: kzgImpl,})if err != nil { log.Fatal(err)}
// Create sidecars from pre-computed componentssidecars, err = blob.ToBlobSidecars(blob.ToBlobSidecarsParams{ Blobs: blobs, Commitments: commitments, Proofs: proofs,})
// Get sidecars as hex stringshexSidecars, err := blob.ToBlobSidecarsHex(blob.ToBlobSidecarsParams{ Data: []byte("hello world"), Kzg: kzgImpl,})Returns
- Type:
([]blob.BlobSidecar, error)forToBlobSidecars,([]blob.BlobSidecarHex, error)forToBlobSidecarsHex
An array of blob sidecars, each containing a blob, commitment, and proof.
Parameters
params (required)
- Type:
blob.ToBlobSidecarsParams
Parameters for creating blob sidecars.
params := blob.ToBlobSidecarsParams{ Data: []byte("hello world"), Kzg: kzgImpl,}
sidecars, _ := blob.ToBlobSidecars(params)params.Data (optional)
- Type:
[]byte
Raw data to transform into blobs. Mutually exclusive with Blobs. Requires Kzg to compute commitments and proofs.
params := blob.ToBlobSidecarsParams{ Data: []byte("hello world"), Kzg: kzgImpl,}params.Blobs (optional)
- Type:
[][]byte
Pre-computed blobs. Mutually exclusive with Data. Requires either Commitments and Proofs to be provided, or Kzg to compute them.
params := blob.ToBlobSidecarsParams{ Blobs: blobs, Commitments: commitments, Proofs: proofs,}params.Commitments (optional)
- Type:
[][]byte
Pre-computed KZG commitments. Required if Blobs is set without Kzg.
params := blob.ToBlobSidecarsParams{ Blobs: blobs, Commitments: commitments, Proofs: proofs,}params.Proofs (optional)
- Type:
[][]byte
Pre-computed KZG proofs. Required if Blobs is set without Kzg.
params := blob.ToBlobSidecarsParams{ Blobs: blobs, Commitments: commitments, Proofs: proofs,}params.Kzg (optional)
- Type:
kzg.Kzg
KZG implementation for computing commitments and proofs. Required if Data is set, or if Blobs is set without Commitments and Proofs.
params := blob.ToBlobSidecarsParams{ Data: []byte("hello world"), Kzg: kzgImpl,}Functions
ToBlobSidecars
Creates blob sidecars:
sidecars, _ := blob.ToBlobSidecars(params)
ToBlobSidecarsHex
Creates hex-encoded blob sidecars:
hexSidecars, _ := blob.ToBlobSidecarsHex(params)
Sidecar Structure
Each sidecar contains:
- Blob: The blob data (131,072 bytes)
- Commitment: The KZG commitment (48 bytes)
- Proof: The KZG proof (48 bytes)