@lodestar/config
Version:
Chain configuration required for lodestar
32 lines (27 loc) • 1.1 kB
text/typescript
import {Root} from "@lodestar/types";
import {ChainConfig, createChainConfig} from "./chainConfig/index.js";
import {ForkConfig, createForkConfig} from "./forkConfig/index.js";
import {createCachedGenesis} from "./genesisConfig/index.js";
import {CachedGenesis} from "./genesisConfig/types.js";
/**
* Chain run-time configuration with additional fork schedule helpers
*/
export type ChainForkConfig = ChainConfig & ForkConfig;
export type BeaconConfig = ChainForkConfig & CachedGenesis;
/**
* Create an `BeaconConfig`, filling in missing values with preset defaults
*/
export function createChainForkConfig(chainConfig: Partial<ChainConfig>): ChainForkConfig {
const fullChainConfig = createChainConfig(chainConfig);
return {
...fullChainConfig,
...createForkConfig(fullChainConfig),
};
}
export function createBeaconConfig(chainConfig: Partial<ChainConfig>, genesisValidatorsRoot: Root): BeaconConfig {
const chainForkConfig = createChainForkConfig(chainConfig);
return {
...chainForkConfig,
...createCachedGenesis(chainForkConfig, genesisValidatorsRoot),
};
}