viem
Version:
67 lines (61 loc) • 1.73 kB
text/typescript
import { versionedHashVersionKzg } from '../constants/kzg.js'
import type { Hash } from '../types/misc.js'
import { BaseError } from './base.js'
export type BlobSizeTooLargeErrorType = BlobSizeTooLargeError & {
name: 'BlobSizeTooLargeError'
}
export class BlobSizeTooLargeError extends BaseError {
constructor({ maxSize, size }: { maxSize: number; size: number }) {
super('Blob size is too large.', {
metaMessages: [`Max: ${maxSize} bytes`, `Given: ${size} bytes`],
name: 'BlobSizeTooLargeError',
})
}
}
export type EmptyBlobErrorType = EmptyBlobError & {
name: 'EmptyBlobError'
}
export class EmptyBlobError extends BaseError {
constructor() {
super('Blob data must not be empty.', { name: 'EmptyBlobError' })
}
}
export type InvalidVersionedHashSizeErrorType =
InvalidVersionedHashSizeError & {
name: 'InvalidVersionedHashSizeError'
}
export class InvalidVersionedHashSizeError extends BaseError {
constructor({
hash,
size,
}: {
hash: Hash
size: number
}) {
super(`Versioned hash "${hash}" size is invalid.`, {
metaMessages: ['Expected: 32', `Received: ${size}`],
name: 'InvalidVersionedHashSizeError',
})
}
}
export type InvalidVersionedHashVersionErrorType =
InvalidVersionedHashVersionError & {
name: 'InvalidVersionedHashVersionError'
}
export class InvalidVersionedHashVersionError extends BaseError {
constructor({
hash,
version,
}: {
hash: Hash
version: number
}) {
super(`Versioned hash "${hash}" version is invalid.`, {
metaMessages: [
`Expected: ${versionedHashVersionKzg}`,
`Received: ${version}`,
],
name: 'InvalidVersionedHashVersionError',
})
}
}