import { LodestarError } from "@lodestar/utils";
import { GossipActionError } from "./gossipValidation.js";
export { DataColumnSidecarErrorCode };
var DataColumnSidecarErrorCode;
(function (DataColumnSidecarErrorCode) {
    DataColumnSidecarErrorCode["INVALID_INDEX"] = "DATA_COLUMN_SIDECAR_ERROR_INVALID_INDEX";
    DataColumnSidecarErrorCode["NO_COMMITMENTS"] = "DATA_COLUMN_SIDECAR_ERROR_NO_COMMITMENTS";
    DataColumnSidecarErrorCode["MISMATCHED_LENGTHS"] = "DATA_COLUMN_SIDECAR_ERROR_MISMATCHED_LENGTHS";
    DataColumnSidecarErrorCode["INVALID_SUBNET"] = "DATA_COLUMN_SIDECAR_ERROR_INVALID_SUBNET";
    DataColumnSidecarErrorCode["INVALID_KZG_PROOF"] = "DATA_COLUMN_SIDECAR_ERROR_INVALID_KZG_PROOF";
    DataColumnSidecarErrorCode["TOO_MANY_KZG_COMMITMENTS"] = "DATA_COLUMN_SIDECAR_ERROR_TOO_MANY_KZG_COMMITMENTS";
    // Validation errors when validating against an existing block
    /** Block and sidecars header root mismatch */
    DataColumnSidecarErrorCode["INCORRECT_HEADER_ROOT"] = "DATA_COLUMN_SIDECAR_ERROR_INCORRECT_HEADER_ROOT";
    /** Block and sidecars data column count mismatch */
    DataColumnSidecarErrorCode["INCORRECT_SIDECAR_COUNT"] = "DATA_COLUMN_SIDECAR_ERROR_INCORRECT_SIDECAR_COUNT";
    /** Sidecar doesn't match block */
    DataColumnSidecarErrorCode["INCORRECT_BLOCK"] = "DATA_COLUMN_SIDECAR_ERROR_INCORRECT_BLOCK";
    /** Sidecar cell count not as expected */
    DataColumnSidecarErrorCode["INCORRECT_CELL_COUNT"] = "DATA_COLUMN_SIDECAR_ERROR_INCORRECT_CELL_COUNT";
    /** Sidecar kzg proof count not as expected */
    DataColumnSidecarErrorCode["INCORRECT_KZG_COMMITMENTS_COUNT"] = "DATA_COLUMN_SIDECAR_ERROR_INCORRECT_KZG_COMMITMENTS_COUNT";
    /** Sidecar kzg proof count not as expected */
    DataColumnSidecarErrorCode["INCORRECT_KZG_PROOF_COUNT"] = "DATA_COLUMN_SIDECAR_ERROR_INCORRECT_KZG_PROOF_COUNT";
    /** Sidecars proofs not valid */
    DataColumnSidecarErrorCode["INVALID_KZG_PROOF_BATCH"] = "DATA_COLUMN_SIDECAR_ERROR_INVALID_KZG_PROOF_BATCH";
    // following errors are adapted from the block errors
    DataColumnSidecarErrorCode["ALREADY_KNOWN"] = "DATA_COLUMN_SIDECAR_ERROR_ALREADY_KNOWN";
    DataColumnSidecarErrorCode["FUTURE_SLOT"] = "DATA_COLUMN_SIDECAR_ERROR_FUTURE_SLOT";
    DataColumnSidecarErrorCode["WOULD_REVERT_FINALIZED_SLOT"] = "DATA_COLUMN_SIDECAR_ERROR_WOULD_REVERT_FINALIZED_SLOT";
    DataColumnSidecarErrorCode["PARENT_UNKNOWN"] = "DATA_COLUMN_SIDECAR_ERROR_PARENT_UNKNOWN";
    DataColumnSidecarErrorCode["NOT_LATER_THAN_PARENT"] = "DATA_COLUMN_SIDECAR_ERROR_NOT_LATER_THAN_PARENT";
    DataColumnSidecarErrorCode["PROPOSAL_SIGNATURE_INVALID"] = "DATA_COLUMN_SIDECAR_ERROR_PROPOSAL_SIGNATURE_INVALID";
    DataColumnSidecarErrorCode["INCLUSION_PROOF_INVALID"] = "DATA_COLUMN_SIDECAR_ERROR_INCLUSION_PROOF_INVALID";
    DataColumnSidecarErrorCode["INCORRECT_PROPOSER"] = "DATA_COLUMN_SIDECAR_ERROR_INCORRECT_PROPOSER";
})(DataColumnSidecarErrorCode || (DataColumnSidecarErrorCode = {}));
export class DataColumnSidecarGossipError extends GossipActionError {
}
export class DataColumnSidecarValidationError extends LodestarError {
}
//# sourceMappingURL=dataColumnSidecarError.js.map