import { PackageRelease } from "./pkg.js"; export declare const networks: readonly ["mainnet", "prater", "gnosis", "lukso", "holesky"]; export type Network = (typeof networks)[number]; export type ConsensusClientMainnet = (typeof consensusClientsMainnet)[number]; export declare const consensusClientsMainnet: readonly ["lodestar.dnp.dappnode.eth", "prysm.dnp.dappnode.eth", "lighthouse.dnp.dappnode.eth", "teku.dnp.dappnode.eth", "nimbus.dnp.dappnode.eth"]; export type ExecutionClientMainnet = (typeof executionClientsMainnet)[number]; export declare const executionClientsMainnet: readonly ["geth.dnp.dappnode.eth", "besu.public.dappnode.eth", "erigon.dnp.dappnode.eth", "nethermind.public.dappnode.eth"]; export type SignerMainnet = "web3signer.dnp.dappnode.eth"; export declare const signerMainnet: SignerMainnet; export type MevBoostMainnet = "mev-boost.dnp.dappnode.eth"; export declare const mevBoostMainnet: MevBoostMainnet; export type ConsensusClientPrater = (typeof consensusClientsPrater)[number]; export declare const consensusClientsPrater: readonly ["prysm-prater.dnp.dappnode.eth", "lighthouse-prater.dnp.dappnode.eth", "teku-prater.dnp.dappnode.eth", "nimbus-prater.dnp.dappnode.eth", "lodestar-prater.dnp.dappnode.eth"]; export type ExecutionClientPrater = (typeof executionClientsPrater)[number]; export declare const executionClientsPrater: readonly ["goerli-geth.dnp.dappnode.eth", "goerli-erigon.dnp.dappnode.eth", "goerli-nethermind.dnp.dappnode.eth", "goerli-besu.dnp.dappnode.eth"]; export type SignerPrater = "web3signer-prater.dnp.dappnode.eth"; export declare const signerPrater: SignerPrater; export type MevBoostPrater = "mev-boost-goerli.dnp.dappnode.eth"; export declare const mevBoostPrater: MevBoostPrater; export type ConsensusClientHolesky = (typeof consensusClientsHolesky)[number]; export declare const consensusClientsHolesky: readonly ["prysm-holesky.dnp.dappnode.eth", "lighthouse-holesky.dnp.dappnode.eth", "teku-holesky.dnp.dappnode.eth", "nimbus-holesky.dnp.dappnode.eth", "lodestar-holesky.dnp.dappnode.eth"]; export type ExecutionClientHolesky = (typeof executionClientsHolesky)[number]; export declare const executionClientsHolesky: readonly ["holesky-geth.dnp.dappnode.eth", "holesky-erigon.dnp.dappnode.eth", "holesky-nethermind.dnp.dappnode.eth", "holesky-besu.dnp.dappnode.eth"]; export type SignerHolesky = "web3signer-holesky.dnp.dappnode.eth"; export declare const signerHolesky: SignerHolesky; export type MevBoostHolesky = "mev-boost-holesky.dnp.dappnode.eth"; export declare const mevBoostHolesky: MevBoostHolesky; export type ConsensusClientGnosis = (typeof consensusClientsGnosis)[number]; export declare const consensusClientsGnosis: readonly ["lighthouse-gnosis.dnp.dappnode.eth", "teku-gnosis.dnp.dappnode.eth", "lodestar-gnosis.dnp.dappnode.eth", "nimbus-gnosis.dnp.dappnode.eth"]; export type ExecutionClientGnosis = (typeof executionClientsGnosis)[number]; export declare const executionClientsGnosis: readonly ["nethermind-xdai.dnp.dappnode.eth", "gnosis-erigon.dnp.dappnode.eth"]; export type SignerGnosis = "web3signer-gnosis.dnp.dappnode.eth"; export declare const signerGnosis: SignerGnosis; export type ConsensusClientLukso = (typeof consensusClientsLukso)[number]; export declare const consensusClientsLukso: readonly ["prysm-lukso.dnp.dappnode.eth", "teku-lukso.dnp.dappnode.eth"]; export type ExecutionClientLukso = (typeof executionClientsLukso)[number]; export declare const executionClientsLukso: readonly ["lukso-geth.dnp.dappnode.eth"]; export type SignerLukso = "web3signer-lukso.dnp.dappnode.eth"; export declare const signerLukso: SignerLukso; export declare const consensusClients: readonly ["lodestar.dnp.dappnode.eth", "prysm.dnp.dappnode.eth", "lighthouse.dnp.dappnode.eth", "teku.dnp.dappnode.eth", "nimbus.dnp.dappnode.eth", "prysm-prater.dnp.dappnode.eth", "lighthouse-prater.dnp.dappnode.eth", "teku-prater.dnp.dappnode.eth", "nimbus-prater.dnp.dappnode.eth", "lodestar-prater.dnp.dappnode.eth", "prysm-holesky.dnp.dappnode.eth", "lighthouse-holesky.dnp.dappnode.eth", "teku-holesky.dnp.dappnode.eth", "nimbus-holesky.dnp.dappnode.eth", "lodestar-holesky.dnp.dappnode.eth", "lighthouse-gnosis.dnp.dappnode.eth", "teku-gnosis.dnp.dappnode.eth", "lodestar-gnosis.dnp.dappnode.eth", "nimbus-gnosis.dnp.dappnode.eth", "prysm-lukso.dnp.dappnode.eth", "teku-lukso.dnp.dappnode.eth"]; export declare const executionClients: readonly ["geth.dnp.dappnode.eth", "besu.public.dappnode.eth", "erigon.dnp.dappnode.eth", "nethermind.public.dappnode.eth", "goerli-geth.dnp.dappnode.eth", "goerli-erigon.dnp.dappnode.eth", "goerli-nethermind.dnp.dappnode.eth", "goerli-besu.dnp.dappnode.eth", "holesky-geth.dnp.dappnode.eth", "holesky-erigon.dnp.dappnode.eth", "holesky-nethermind.dnp.dappnode.eth", "holesky-besu.dnp.dappnode.eth", "nethermind-xdai.dnp.dappnode.eth", "gnosis-erigon.dnp.dappnode.eth", "lukso-geth.dnp.dappnode.eth"]; export declare const signers: readonly ["web3signer.dnp.dappnode.eth", "web3signer-prater.dnp.dappnode.eth", "web3signer-holesky.dnp.dappnode.eth", "web3signer-gnosis.dnp.dappnode.eth", "web3signer-lukso.dnp.dappnode.eth"]; export declare const mevBoosts: readonly ["mev-boost.dnp.dappnode.eth", "mev-boost-goerli.dnp.dappnode.eth", "mev-boost-holesky.dnp.dappnode.eth"]; export type StakerType = "execution" | "consensus" | "signer" | "mev-boost"; export type StakerItem = StakerItemOk | StakerItemError; interface StakerExecution { dnpName: ExecutionClient; } interface StakerConsensus { dnpName: ConsensusClient; useCheckpointSync?: boolean; } interface StakerSigner { dnpName: Signer; } interface StakerMevBoost { dnpName: MevBoost; relays?: string[]; } type StakerItemBasic = P extends "execution" ? StakerExecution : P extends "consensus" ? StakerConsensus : P extends "signer" ? StakerSigner : P extends "mev-boost" ? StakerMevBoost : never; export type StakerItemError = { status: "error"; error: string; } & StakerItemBasic; /** * Metadata of a staker item to be cached */ export type PackageItemData = Pick; export type StakerItemOk = { status: "ok"; avatarUrl: string; isInstalled: boolean; isUpdated: boolean; isRunning: boolean; data?: PackageItemData; isSelected: boolean; } & StakerItemBasic; export interface StakerConfigGet { executionClients: StakerItem[]; consensusClients: StakerItem[]; web3Signer: StakerItem; mevBoost: StakerItem; } export interface StakerConfigGetOk { executionClients: StakerItemOk[]; consensusClients: StakerItemOk[]; web3signer: StakerItemOk; mevBoost: StakerItemOk; } export interface StakerConfigSet { network: T; executionClient?: StakerItemOk; consensusClient?: StakerItemOk; mevBoost?: StakerItemOk; enableWeb3signer?: boolean; } export type ExecutionClient = T extends "mainnet" ? ExecutionClientMainnet : T extends "gnosis" ? ExecutionClientGnosis : T extends "prater" ? ExecutionClientPrater : T extends "holesky" ? ExecutionClientHolesky : T extends "lukso" ? ExecutionClientLukso : never; export type ConsensusClient = T extends "mainnet" ? ConsensusClientMainnet : T extends "gnosis" ? ConsensusClientGnosis : T extends "prater" ? ConsensusClientPrater : T extends "holesky" ? ConsensusClientHolesky : T extends "lukso" ? ConsensusClientLukso : never; export type Signer = T extends "mainnet" ? SignerMainnet : T extends "gnosis" ? SignerGnosis : T extends "prater" ? SignerPrater : T extends "holesky" ? SignerHolesky : T extends "lukso" ? SignerLukso : never; export type MevBoost = T extends "mainnet" ? MevBoostMainnet : T extends "prater" ? MevBoostPrater : T extends "holesky" ? MevBoostHolesky : never; export interface StakerConfigByNetwork { executionClient: ExecutionClient | undefined | null; consensusClient: ConsensusClient | undefined | null; isMevBoostSelected: boolean; } export interface StakerCompatibleVersionsByNetwork { compatibleExecution: { dnpName: ExecutionClient; minVersion: string; }[]; compatibleConsensus: { dnpName: ConsensusClient; minVersion: string; }[]; compatibleSigner: { dnpName: Signer; minVersion: string; }; compatibleMevBoost: { dnpName: MevBoost; minVersion: string; }; } export declare const stakerPkgs: readonly ["geth.dnp.dappnode.eth", "besu.public.dappnode.eth", "erigon.dnp.dappnode.eth", "nethermind.public.dappnode.eth", "lodestar.dnp.dappnode.eth", "prysm.dnp.dappnode.eth", "lighthouse.dnp.dappnode.eth", "teku.dnp.dappnode.eth", "nimbus.dnp.dappnode.eth", "web3signer.dnp.dappnode.eth", "mev-boost.dnp.dappnode.eth", "goerli-geth.dnp.dappnode.eth", "goerli-erigon.dnp.dappnode.eth", "goerli-nethermind.dnp.dappnode.eth", "goerli-besu.dnp.dappnode.eth", "prysm-prater.dnp.dappnode.eth", "lighthouse-prater.dnp.dappnode.eth", "teku-prater.dnp.dappnode.eth", "nimbus-prater.dnp.dappnode.eth", "lodestar-prater.dnp.dappnode.eth", "web3signer-prater.dnp.dappnode.eth", "mev-boost-goerli.dnp.dappnode.eth", "holesky-geth.dnp.dappnode.eth", "holesky-erigon.dnp.dappnode.eth", "holesky-nethermind.dnp.dappnode.eth", "holesky-besu.dnp.dappnode.eth", "prysm-holesky.dnp.dappnode.eth", "lighthouse-holesky.dnp.dappnode.eth", "teku-holesky.dnp.dappnode.eth", "nimbus-holesky.dnp.dappnode.eth", "lodestar-holesky.dnp.dappnode.eth", "web3signer-holesky.dnp.dappnode.eth", "mev-boost-holesky.dnp.dappnode.eth", "nethermind-xdai.dnp.dappnode.eth", "gnosis-erigon.dnp.dappnode.eth", "lighthouse-gnosis.dnp.dappnode.eth", "teku-gnosis.dnp.dappnode.eth", "lodestar-gnosis.dnp.dappnode.eth", "nimbus-gnosis.dnp.dappnode.eth", "web3signer-gnosis.dnp.dappnode.eth", "lukso-geth.dnp.dappnode.eth", "prysm-lukso.dnp.dappnode.eth", "teku-lukso.dnp.dappnode.eth", "web3signer-lukso.dnp.dappnode.eth"]; export {}; //# sourceMappingURL=stakers.d.ts.map