@hyperlane-xyz/cli
Version:
A command-line utility for common Hyperlane operations
41 lines • 2.27 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, }) {
// Future works: decide what to do with this, since its handled in MultiChainResolver - AGENT_KURTOSIS mode
if (!originChain) {
originChain = await runSingleChainSelectionStep(context.chainMetadata, 'Select the origin chain:');
}
if (!relayChains) {
const selectedRelayChains = await runMultiChainSelectionStep({
chainMetadata: context.chainMetadata,
message: 'Select chains to relay between',
requireNumber: 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