import { BeaconConfig } from "@lodestar/config"; import { ForkSeq } from "@lodestar/params"; import { BLSPubkey, Bytes32, UintNum64, electra, phase0 } from "@lodestar/types"; import { CachedBeaconStateAllForks } from "../types.js"; /** * Process a Deposit operation. Potentially adds a new validator to the registry. Mutates the validators and balances * trees, pushing contigious values at the end. * * PERF: Work depends on number of Deposit per block. On regular networks the average is 0 / block. */ export declare function processDeposit(fork: ForkSeq, state: CachedBeaconStateAllForks, deposit: phase0.Deposit): void; /** * Adds a new validator into the registry. Or increase balance if already exist. * Follows applyDeposit() in consensus spec. Will be used by processDeposit() and processDepositRequest() * */ export declare function applyDeposit(fork: ForkSeq, state: CachedBeaconStateAllForks, deposit: phase0.DepositData | electra.DepositRequest): void; export declare function addValidatorToRegistry(fork: ForkSeq, state: CachedBeaconStateAllForks, pubkey: BLSPubkey, withdrawalCredentials: Bytes32, amount: UintNum64): void; /** * Verify a single deposit signature (proof of possession). See {@link verifyDepositSignatures} for * the batch equivalent — the two MUST stay consistent (same domain, signing root, and checks). */ export declare function isValidDepositSignature(config: BeaconConfig, pubkey: Uint8Array, withdrawalCredentials: Uint8Array, amount: number, depositSignature: Uint8Array): boolean; /** * Batch equivalent of {@link isValidDepositSignature} — verify many deposit signatures at once. * MUST stay consistent with `isValidDepositSignature`: same fork-agnostic deposit domain, same * `DepositMessage` signing root, same group + infinity checks. Tries a single aggregate verify and, * on failure, falls back to verifying each deposit individually so the valid deposits in a batch * containing an invalid one are still identified. Returns a boolean per input deposit; `slot` is not * part of the signature check. * * Used by the pre-Gloas builder-deposit pre-verify scanner (see `preVerifyBuilderDeposits.ts`). */ export declare function verifyDepositSignatures(config: BeaconConfig, deposits: electra.PendingDeposit[]): boolean[]; //# sourceMappingURL=processDeposit.d.ts.map