UNPKG

@acurast/cli

Version:

A cli to interact with the Acurast Cloud.

55 lines 2.28 kB
import { Option } from 'commander'; import fs from 'fs'; import { AcurastService, walletFromMnemonic } from '@acurast/sdk/chain'; import { getEnv, getRpcForNetwork } from '../config.js'; import { ACURAST_DEPLOYMENTS_PATH } from '../constants.js'; import * as ora from '../util/ora.js'; const readDeploymentFile = (deploymentId) => { try { const deploymentFilename = fs .readdirSync(ACURAST_DEPLOYMENTS_PATH) .find((f) => f.endsWith(`-${deploymentId}.json`)); if (deploymentFilename) { return JSON.parse(fs.readFileSync(`${ACURAST_DEPLOYMENTS_PATH}/${deploymentFilename}`, 'utf8')); } } catch { // Directory may not exist yet } return undefined; }; export const addCommandCancel = (program) => { program .command('cancel') .description('Cancel (deregister) a deployment on-chain and return any unused locked funds.') .argument('<deployment-id>', 'Numeric local job / deployment ID') .addOption(new Option('-n, --network <network>', 'Network to use (mainnet or canary)') .choices(['mainnet', 'canary']) .default('mainnet')) .action(async (deploymentIdArg, options) => { const deploymentId = Number(deploymentIdArg); if (!deploymentId || isNaN(deploymentId)) { console.log('Please provide a valid numeric deployment ID'); return; } const network = readDeploymentFile(deploymentId)?.config.network || options.network; const wallet = await walletFromMnemonic(getEnv('ACURAST_MNEMONIC'), { name: 'AcurastCli', }); const spinner = ora.default(`Cancelling deployment ${deploymentId} on ${network}...`); spinner.start(); const acurast = new AcurastService(getRpcForNetwork(network)); try { const hash = await acurast.deregisterJob(wallet, deploymentId); spinner.succeed('Deployment cancelled'); console.log('Transaction ID:', hash.toString()); } catch (error) { spinner.fail(`Failed to cancel deployment: ${error?.message ?? error}`); } finally { await acurast.disconnect(); } }); }; //# sourceMappingURL=cancel.js.map