set-global-uploading-status.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { updateUploadingBlockedStatus } from '../../services/runtime/extrinsics'
  2. import { flags } from '@oclif/command'
  3. import ApiCommandBase from '../../command-base/ApiCommandBase'
  4. import logger from '../../services/logger'
  5. /**
  6. * CLI command:
  7. * Manages global uploading block in the runtime.
  8. *
  9. * @remarks
  10. * Storage working group leader command. Requires storage WG leader priviliges.
  11. * Shell command: "leader:set-global-uploading-status"
  12. */
  13. export default class LeaderSetGlobalUploadingStatus extends ApiCommandBase {
  14. static description = `Set global uploading block. Requires storage working group leader permissions.`
  15. static flags = {
  16. set: flags.enum({
  17. char: 's',
  18. description: 'Sets global uploading block (on/off).',
  19. options: ['on', 'off'],
  20. required: true,
  21. }),
  22. ...ApiCommandBase.flags,
  23. }
  24. async run(): Promise<void> {
  25. const { flags } = this.parse(LeaderSetGlobalUploadingStatus)
  26. // Enable blocking?
  27. const newStatus = flags.set === 'on'
  28. logger.info('Setting global uploading block...')
  29. if (flags.dev) {
  30. await this.ensureDevelopmentChain()
  31. }
  32. const account = this.getAccount(flags)
  33. const api = await this.getApi()
  34. const success = await updateUploadingBlockedStatus(api, account, newStatus)
  35. this.exitAfterRuntimeCall(success)
  36. }
  37. }