12345678910111213141516171819202122232425262728293031323334353637383940 |
- import WorkingGroupsCommandBase from '../../base/WorkingGroupsCommandBase'
- import { displayHeader, displayNameValueTable, displayTable, shortAddress } from '../../helpers/display'
- import { formatBalance } from '@polkadot/util'
- import chalk from 'chalk'
- export default class WorkingGroupsOverview extends WorkingGroupsCommandBase {
- static description = 'Shows an overview of given working group (current lead and workers)'
- static flags = {
- ...WorkingGroupsCommandBase.flags,
- }
- async run() {
- const lead = await this.getApi().groupLead(this.group)
- const members = await this.getApi().groupMembers(this.group)
- displayHeader('Group lead')
- if (lead) {
- displayNameValueTable([
- { name: 'Member id:', value: lead.memberId.toString() },
- { name: 'Member handle:', value: lead.profile.handle.toString() },
- { name: 'Role account:', value: lead.roleAccount.toString() },
- ])
- } else {
- this.log(chalk.yellow('No lead assigned!'))
- }
- displayHeader('Members')
- const membersRows = members.map((m) => ({
- '': lead?.workerId.eq(m.workerId) ? '\u{2B50}' : '', // A nice star for the lead
- 'Worker id': m.workerId.toString(),
- 'Member id': m.memberId.toString(),
- 'Member handle': m.profile.handle.toString(),
- Stake: formatBalance(m.stake),
- Earned: formatBalance(m.reward?.totalRecieved),
- 'Role account': shortAddress(m.roleAccount),
- }))
- displayTable(membersRows, 5)
- }
- }
|