@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
38 lines • 2.71 kB
TypeScript
import { ChainConfig } from "@lodestar/config";
import { DataColumnSidecar, Root, Slot, SubnetID, fulu, gloas } from "@lodestar/types";
import { BeaconMetrics } from "../../metrics/metrics/beacon.js";
import { Metrics } from "../../metrics/metrics.js";
import { PayloadEnvelopeInput } from "../blocks/payloadEnvelopeInput/index.js";
import { IBeaconChain } from "../interface.js";
export declare function validateGossipFuluDataColumnSidecar(chain: IBeaconChain, dataColumnSidecar: fulu.DataColumnSidecar, gossipSubnet: SubnetID, metrics: Metrics | null): Promise<void>;
export declare function validateGossipGloasDataColumnSidecar(chain: IBeaconChain, payloadInput: PayloadEnvelopeInput, dataColumnSidecar: gloas.DataColumnSidecar, gossipSubnet: SubnetID, metrics: Metrics | null): Promise<void>;
/**
* SPEC FUNCTION
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/p2p-interface.md#verify_data_column_sidecar_kzg_proofs
*/
export declare function verifyDataColumnSidecarKzgProofs(commitments: Uint8Array[], cellIndices: number[], cells: Uint8Array[], proofs: Uint8Array[]): Promise<void>;
/**
* SPEC FUNCTION
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/p2p-interface.md#verify_data_column_sidecar_inclusion_proof
*/
export declare function verifyDataColumnSidecarInclusionProof(dataColumnSidecar: fulu.DataColumnSidecar): boolean;
/**
* Validate a subset of fulu data column sidecars against a block
*
* Requires the block to be known to the node
*
* NOTE: chain is optional to skip signature verification. Helpful for testing purposes and so that can control whether
* signature gets checked depending on the reqresp method that is being checked
*/
export declare function validateFuluBlockDataColumnSidecars(chain: IBeaconChain | null, blockSlot: Slot, blockRoot: Root, blockBlobCount: number, dataColumnSidecars: fulu.DataColumnSidecar[], metrics?: BeaconMetrics["peerDas"] | null): Promise<void>;
/**
* Validate a subset of gloas data column sidecars against a block
* Gloas sidecars don't carry signed block headers, kzg commitments, or inclusion proofs
*/
export declare function validateGloasBlockDataColumnSidecars(blockSlot: Slot, blockRoot: Root, blockKzgCommitments: Uint8Array[], dataColumnSidecars: gloas.DataColumnSidecar[], metrics?: BeaconMetrics["peerDas"] | null): Promise<void>;
/**
* SPEC FUNCTION
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/p2p-interface.md#compute_subnet_for_data_column_sidecar
*/
export declare function computeSubnetForDataColumnSidecar(config: ChainConfig, columnSidecar: DataColumnSidecar): SubnetID;
//# sourceMappingURL=dataColumnSidecar.d.ts.map