@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
TypeScript
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;
}