36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
/**
|
|
* Interface for an externally provided kzg library used when creating blob transactions
|
|
*/
|
|
export interface Kzg {
|
|
loadTrustedSetup(trustedSetup?: {
|
|
g1: string // unprefixed hex string
|
|
g2: string // unprefixed hex string
|
|
n1: number // bytes per element
|
|
n2: number // 65
|
|
}): void
|
|
blobToKzgCommitment(blob: Uint8Array): Uint8Array
|
|
computeBlobKzgProof(blob: Uint8Array, commitment: Uint8Array): Uint8Array
|
|
verifyKzgProof(
|
|
polynomialKzg: Uint8Array,
|
|
z: Uint8Array,
|
|
y: Uint8Array,
|
|
kzgProof: Uint8Array
|
|
): boolean
|
|
verifyBlobKzgProofBatch(
|
|
blobs: Uint8Array[],
|
|
expectedKzgCommitments: Uint8Array[],
|
|
kzgProofs: Uint8Array[]
|
|
): boolean
|
|
}
|
|
|
|
/**
|
|
* @deprecated This initialization method is deprecated since trusted setup loading is done directly in the reference KZG library
|
|
* initialization or should othewise be assured independently before KZG libary usage.
|
|
*
|
|
* @param kzgLib a KZG implementation (defaults to c-kzg)
|
|
* @param a dictionary of trusted setup options
|
|
*/
|
|
export function initKZG(kzg: Kzg, _trustedSetupPath?: string) {
|
|
kzg.loadTrustedSetup()
|
|
}
|