import type { Fr } from '@aztec/aztec.js/fields'; import type { GenesisStateConfig } from '@aztec/ethereum/config'; import { RollupContract } from '@aztec/ethereum/contracts'; import type { EthAddress } from '@aztec/foundation/eth-address'; import { type LogFn } from '@aztec/foundation/log'; /** * Computes the expected genesis archive root from the genesis state config. * Reads test accounts and sponsored FPC addresses as specified, then computes * the genesis values including the archive root and prefilled public data. */ export declare function computeExpectedGenesisRoot(config: GenesisStateConfig, userLog: LogFn): Promise<{ genesisArchiveRoot: Fr; genesis: import("@aztec/stdlib/world-state").GenesisData; }>; /** * Compares the rollup's on-chain protocol constants (genesis archive root, VK tree root, protocol * contracts hash) against the node's expected local values. Returns a list of human-readable mismatch * descriptions, empty if the rollup is compatible. */ export declare function checkRollupCompatibility(rollup: RollupContract, expected: { genesisArchiveRoot: Fr; vkTreeRoot: Fr; protocolContractsHash: Fr; }): Promise; /** * Waits until the canonical rollup's genesis archive root, VK tree root, and protocol contracts hash * all match the expected local values. If the rollup is not yet compatible (e.g. during L1 contract upgrades), * enters standby mode: starts a lightweight HTTP server for K8s liveness probes and polls every 60s * until a compatible rollup appears. */ export declare function waitForCompatibleRollup(config: { l1RpcUrls: string[]; l1ChainId: number; registryAddress: EthAddress; rollupVersion?: number; }, expected: { genesisArchiveRoot: Fr; vkTreeRoot: Fr; protocolContractsHash: Fr; }, port: number | undefined, userLog: LogFn): Promise; /** * Polls the canonical rollup's protocol constants every 10 minutes and soft-shuts-down the node once they * diverge from the node's expected local values (i.e. an incompatible rollup has become canonical on L1). * The HTTP health server is left running so K8s probes keep passing on the wound-down pod. This is the * inverse of {@link waitForCompatibleRollup}; it should only be set up for nodes following the canonical * rollup. Reuses the {@link checkRollupCompatibility} diff and the generic VersionChecker poll primitive. */ export declare function setupAutoShutdown(config: { l1RpcUrls: string[]; l1ChainId: number; }, registryAddress: EthAddress, rollupVersion: number | 'canonical', expected: { genesisArchiveRoot: Fr; vkTreeRoot: Fr; protocolContractsHash: Fr; }, signalHandlers: Array<() => Promise>): Promise; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRieS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YW5kYnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHakQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQW9CLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQVlqRTs7OztHQUlHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsS0FBSzs7O0dBYTFGO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQix3QkFBd0IsQ0FDNUMsTUFBTSxFQUFFLGNBQWMsRUFDdEIsUUFBUSxFQUFFO0lBQUUsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO0lBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQTtDQUFFLEdBQzlFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQWlCbkI7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQix1QkFBdUIsQ0FDM0MsTUFBTSxFQUFFO0lBQ04sU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZUFBZSxFQUFFLFVBQVUsQ0FBQztJQUM1QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDeEIsRUFDRCxRQUFRLEVBQUU7SUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUM7SUFBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFBO0NBQUUsRUFDL0UsSUFBSSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ3hCLE9BQU8sRUFBRSxLQUFLLEdBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXdEZjtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFzQixpQkFBaUIsQ0FDckMsTUFBTSxFQUFFO0lBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtDQUFFLEVBQ2xELGVBQWUsRUFBRSxVQUFVLEVBQzNCLGFBQWEsRUFBRSxNQUFNLEdBQUcsV0FBVyxFQUNuQyxRQUFRLEVBQUU7SUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUM7SUFBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFBO0NBQUUsRUFDL0UsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBNkJmIn0=