All files / src/command getChainStatus.js

100% Statements 9/9
100% Branches 0/0
100% Functions 2/2
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42                              7x                     4x 4x 4x 4x 3x 1x   1x   1x            
import AElf from 'aelf-sdk';
import BaseSubCommand from './baseSubCommand.js';
import { commonGlobalOptionValidatorDesc } from '../utils/constants.js';
import { logger } from '../utils/myLogger.js';
 
/**
 * @typedef {import('commander').Command} Command
 * @typedef {import('../../types/rc/index.js').default} Registry
 */
class GetChainStatusCommand extends BaseSubCommand {
  /**
   * Constructs a new GetChainStatusCommand instance.
   * @param {Registry} rc - The registry instance.
   */
  constructor(rc) {
    super('get-chain-status', [], 'Get the current chain status', [], [], rc, commonGlobalOptionValidatorDesc);
  }
 
  /**
   * Executes the get chain status command.
   * @param {Command} commander - The commander instance.
   * @param {...any} args - Additional arguments.
   * @returns {Promise<void>} A promise that resolves when the command execution is complete.
   */
  async run(commander, ...args) {
    // @ts-ignore
    const { options } = await super.run(commander, ...args);
    const aelf = new AElf(new AElf.providers.HttpProvider(options.endpoint));
    try {
      this.oraInstance.start();
      const status = await aelf.chain.getChainStatus();
      this.oraInstance.succeed(`Succeed\n${JSON.stringify(status, null, 2)}`);
    } catch (e) {
      this.oraInstance.fail('Failed!');
      // @ts-ignore
      logger.error(e);
    }
  }
}
 
export default GetChainStatusCommand;