cosmic-interchain-cli
Version:
A command-line utility for Cosmic Wire's interchain messaging protocol
36 lines • 2.06 kB
JavaScript
import terminalLink from 'terminal-link';
import { toBase64 } from '@hyperlane-xyz/utils';
import { logBlue, logGreen } from '../logger.js';
import { runMultiChainSelectionStep, runSingleChainSelectionStep, } from '../utils/chains.js';
import { readJson, runFileSelectionStep } from '../utils/files.js';
export async function runKurtosisAgentDeploy({ context, originChain, relayChains, agentConfigurationPath, }) {
if (!originChain) {
originChain = await runSingleChainSelectionStep(context.chainMetadata, 'Select the origin chain');
}
if (!relayChains) {
const selectedRelayChains = await runMultiChainSelectionStep(context.chainMetadata, 'Select chains to relay between', 2);
relayChains = selectedRelayChains.join(',');
}
if (!agentConfigurationPath) {
logBlue('\n', 'No agent config json was provided. Please specify the agent config json filepath.');
agentConfigurationPath = await runFileSelectionStep('./configs', 'agent config json', 'agent-config');
}
const agentConfigObject = readJson(agentConfigurationPath);
const hyperlanePackageArgs = {
plan: '{}',
origin_chain_name: originChain,
relay_chains: relayChains,
agent_config_json: JSON.stringify(agentConfigObject),
};
const kurtosisPackageConfig = {
restartServices: true,
args: hyperlanePackageArgs,
};
const base64EncodedPackageConfig = toBase64(kurtosisPackageConfig) || '';
const kurtosisCloudUrl = getKurtosisCloudUrl(base64EncodedPackageConfig);
const kurtosisCloudLink = terminalLink('Kurtosis Cloud Link 🔗 (cmd+click or ctrl+click here)', kurtosisCloudUrl, { fallback: () => kurtosisCloudUrl });
logGreen('\n', 'Click the link below to deploy your validator and relayer with Kurtosis:', '\n', `${kurtosisCloudLink}`);
return;
}
const getKurtosisCloudUrl = (base64Params) => `https://cloud.kurtosis.com/enclave-manager?package-id=github.com%2Fkurtosis-tech%2Fhyperlane-package&package-args=${base64Params}`;
//# sourceMappingURL=agent.js.map