UNPKG

@zombienet/orchestrator

Version:

ZombieNet aim to be a testing framework for substrate based blockchains, providing a simple cli tool that allow users to spawn and test ephemeral Substrate based networks

145 lines (144 loc) 3.63 kB
import { CHAIN } from "./chain-decorators"; export declare enum SubstrateCliArgsVersion { V0 = 0, V1 = 1, V2 = 2, V3 = 3 } export declare enum ZombieRole { Temp = "temp", Node = "node", BootNode = "bootnode", Collator = "collator", CumulusCollator = "cumulus-collator" } export interface HrmpChannelsConfig { sender: number; recipient: number; max_capacity: number; max_message_size: number; } export type ZombieRoleLabel = ZombieRole | "authority" | "full-node"; export interface Override { local_path: string; remote_name: string; } export interface ObjectJSON { [key: string]: ObjectJSON | number | string; } export interface Parachain extends CommonParachainConfig { name: string; para: CHAIN; addToGenesis: boolean; registerPara: boolean; onboardAsParachain: boolean; cumulusBased: boolean; genesisWasmPath?: string; genesisWasmGenerator?: string; genesisStatePath?: string; genesisStateGenerator?: string; chainSpecPath?: string; chainSpecCommand?: string; specPath?: string; wasmPath?: string; statePath?: string; collators: Node[]; defaultArgs: string[]; } export interface Node extends NodeCommonTypes, Ports { image: string; key?: string; accounts?: any; balance?: bigint; command?: string; commandWithArgs?: string; fullCommand?: string; chain: string; chainSpec?: string; validator: boolean; invulnerable: boolean; args: string[]; env: envVars[]; bootnodes: string[]; zombieRole: ZombieRole; group?: string; telemetry?: boolean; telemetryUrl: string; prometheus?: boolean; prometheusPrefix?: string; overrides: Override[]; addToBootnodes?: boolean; resources?: Resources; parachainId?: number; jaegerUrl?: string; p2pCertHash?: string; imagePullPolicy?: "IfNotPresent" | "Never" | "Always"; dbSnapshot?: string; externalPorts?: Ports; substrateCliArgsVersion?: SubstrateCliArgsVersion; delayNetworkSettings?: DelayNetworkSettings; keystoreKeyTypes?: string[]; } export interface Ports { wsPort: number; rpcPort: number; prometheusPort: number; p2pPort: number; } export interface NodeConfig extends NodeCommonTypes { name: string; image?: string; command_with_args?: string; validator: boolean; invulnerable: boolean; balance: number; bootnodes?: string[]; add_to_bootnodes?: boolean; ws_port?: number; rpc_port?: number; p2p_port?: number; prometheus_port?: number; p2p_cert_hash?: string; delay_network_settings?: DelayNetworkSettings; } export interface NodeCommonTypes { name: string; command?: string; args?: string[]; env?: envVars[]; overrides?: Override[]; prometheus_prefix?: string; db_snapshot?: string; substrate_cli_args_version?: SubstrateCliArgsVersion; resources?: Resources; keystore_key_types?: string[]; } export interface envVars { name: string; value: string; } export interface Resources { resources: { requests?: { memory?: string; cpu?: string; }; limits?: { memory?: string; cpu?: string; }; }; } export interface CommonParachainConfig { id: number; chain?: string; force_decorator?: string; genesis?: JSON | ObjectJSON; balance?: number; delayNetworkSettings?: DelayNetworkSettings; } export interface DelayNetworkSettings { latency: string; correlation?: string; jitter?: string; }