Sfoglia il codice sorgente

Implement distribution group to tokenomics, working groups and proposals, fix lead help text, remove reserved0 and reserved1 from types

Edvin Dzidic 3 anni fa
parent
commit
38cc322b86

+ 1 - 1
pioneer/packages/apps-routing/src/joy-roles.ts

@@ -7,7 +7,7 @@ export default function create (t: <T = string> (key: string, text: string, opti
     Component: Roles,
     display: {
       needsApi: [
-        'query.contentDirectoryWorkingGroup.mint',
+        'query.contentWorkingGroup.mint',
         'query.storageWorkingGroup.mint'
       ]
     },

+ 4 - 1
pioneer/packages/joy-roles/src/tabs/WorkingGroup.controller.tsx

@@ -11,7 +11,8 @@ import { WorkingGroupMembership,
   StorageProviders,
   OperationsGroupAlpha,
   OperationsGroupBeta,
-  OperationsGroupGamma } from './WorkingGroup';
+  OperationsGroupGamma,
+  Distribution } from './WorkingGroup';
 
 import styled from 'styled-components';
 
@@ -21,6 +22,7 @@ type State = {
   operationsGroupAlpha?: WorkingGroupMembership;
   operationsGroupBeta?: WorkingGroupMembership;
   operationsGroupGamma?: WorkingGroupMembership;
+  distribution?: WorkingGroupMembership;
 }
 
 export class WorkingGroupsController extends Controller<State, ITransport> {
@@ -63,6 +65,7 @@ export const WorkingGroupsView = View<WorkingGroupsController, State>(
       <OperationsGroupAlpha {...state.operationsGroupAlpha}/>
       <OperationsGroupBeta {...state.operationsGroupBeta}/>
       <OperationsGroupGamma {...state.operationsGroupGamma}/>
+      <Distribution {...state.distribution}/>
     </WorkingGroupsOverview>
   )
 );

+ 11 - 0
pioneer/packages/joy-roles/src/tabs/WorkingGroup.tsx

@@ -183,6 +183,17 @@ export const OperationsGroupGamma = (props: GroupOverviewOuterProps) => (
   />
 );
 
+export const Distribution = (props: GroupOverviewOuterProps) => (
+  <GroupOverview
+    group={WorkingGroups.Distribution}
+    description={
+      'Distribution Working Group is responsible for running and maintaining distributor nodes' +
+      ' that deliver large volumes of upstream data to a large number of simultaneous end users.'
+    }
+    {...props}
+  />
+);
+
 const LeadSection = styled.div`
   margin-top: 1rem;
 `;

+ 3 - 2
pioneer/packages/joy-roles/src/transport.substrate.ts

@@ -51,10 +51,11 @@ type StakePair<T = Balance> = {
 
 const apiModuleByGroup = {
   [WorkingGroups.StorageProviders]: 'storageWorkingGroup',
-  [WorkingGroups.ContentCurators]: 'contentDirectoryWorkingGroup',
+  [WorkingGroups.ContentCurators]: 'contentWorkingGroup',
   [WorkingGroups.OperationsAlpha]: 'operationsWorkingGroupAlpha',
   [WorkingGroups.OperationsBeta]: 'operationsWorkingGroupBeta',
-  [WorkingGroups.OperationsGamma]: 'operationsWorkingGroupGamma'
+  [WorkingGroups.OperationsGamma]: 'operationsWorkingGroupGamma',
+  [WorkingGroups.Distribution]: 'distributionWorkingGroup'
 } as const;
 
 export class Transport extends BaseTransport implements ITransport {

+ 6 - 3
pioneer/packages/joy-roles/src/working_groups.ts

@@ -3,7 +3,8 @@ export enum WorkingGroups {
   StorageProviders = 'storageProviders',
   OperationsAlpha = 'operationsGroupAlpha',
   OperationsBeta = 'operationsGroupBeta',
-  OperationsGamma = 'operationsGroupGamma'
+  OperationsGamma = 'operationsGroupGamma',
+  Distribution = 'distribution'
 }
 
 export const AvailableGroups: readonly WorkingGroups[] = [
@@ -11,7 +12,8 @@ export const AvailableGroups: readonly WorkingGroups[] = [
   WorkingGroups.StorageProviders,
   WorkingGroups.OperationsAlpha,
   WorkingGroups.OperationsBeta,
-  WorkingGroups.OperationsGamma
+  WorkingGroups.OperationsGamma,
+  WorkingGroups.Distribution
 ] as const;
 
 export const workerRoleNameByGroup: { [key in WorkingGroups]: string } = {
@@ -19,5 +21,6 @@ export const workerRoleNameByGroup: { [key in WorkingGroups]: string } = {
   [WorkingGroups.StorageProviders]: 'Storage Provider',
   [WorkingGroups.OperationsAlpha]: 'Operations Group Alpha Worker',
   [WorkingGroups.OperationsBeta]: 'Operations Group Beta Worker',
-  [WorkingGroups.OperationsGamma]: 'Operations Group Gamma Worker'
+  [WorkingGroups.OperationsGamma]: 'Operations Group Gamma Worker',
+  [WorkingGroups.Distribution]: 'Distribution'
 };

+ 1 - 1
pioneer/packages/joy-tokenomics/src/Overview/SpendingAndStakeDistributionTable.tsx

@@ -199,7 +199,7 @@ const SpendingAndStakeDistributionTable: React.FC<{data?: TokenomicsData; status
               />
               <SpendingAndStakeTableRow
                 role={width <= lead.titleCutoff ? lead.shortTitle : lead.title}
-                helpContent={helpText}
+                helpContent={lead.helpText}
                 numberOfActors={data && `${data[groupType].lead.number}`}
                 groupEarning={data && `${Math.round(data[groupType].lead.rewardsPerWeek)}`}
                 groupEarningDollar={displayStatusData(groupType, 'rewardsPerWeek', true)}

+ 15 - 0
pioneer/packages/joy-tokenomics/src/tokenomicsGroupsData.ts

@@ -94,5 +94,20 @@ export const WORKING_GROUPS = [
       helpText: 'Current Operations Group Gamma Lead, and their projected reward and stake.',
       color: '#673ab7'
     }
+  },
+  {
+    groupType: 'distribution' as const,
+    titleCutoff: 1050,
+    shortTitle: 'Distribution',
+    title: 'Distribution',
+    helpText: 'The current Distribution Group members, and the sum of their projected rewards and stakes.',
+    color: '#9c27b0',
+    lead: {
+      titleCutoff: 1015,
+      shortTitle: 'Distr. Lead',
+      title: 'Distribution Lead',
+      helpText: 'Current Distribution Group Lead, and their projected reward and stake.',
+      color: '#e91e63'
+    }
   }
 ];

+ 3 - 2
pioneer/packages/joy-utils/src/consts/workingGroups.ts

@@ -1,9 +1,10 @@
 import { WorkingGroupKey } from '@joystream/types/common';
 export const apiModuleByGroup: { [k in WorkingGroupKey]: string } = {
   Storage: 'storageWorkingGroup',
-  Content: 'contentDirectoryWorkingGroup',
+  Content: 'contentWorkingGroup',
   OperationsAlpha: 'operationsWorkingGroupAlpha',
   OperationsBeta: 'operationsWorkingGroupBeta',
   OperationsGamma: 'operationsWorkingGroupGamma',
-  Gateway: 'gatewayWorkingGroup'
+  Gateway: 'gatewayWorkingGroup',
+  Distribution: 'distributionWorkingGroup'
 };

+ 4 - 2
pioneer/packages/joy-utils/src/transport/tokenomics.ts

@@ -230,7 +230,8 @@ export default class TokenomicsTransport extends BaseTransport {
       curators: await this.getWorkingGroupData('Content'),
       operationsAlpha: await this.getWorkingGroupData('OperationsAlpha'),
       operationsBeta: await this.getWorkingGroupData('OperationsBeta'),
-      operationsGamma: await this.getWorkingGroupData('OperationsGamma')
+      operationsGamma: await this.getWorkingGroupData('OperationsGamma'),
+      distribution: await this.getWorkingGroupData('Distribution')
     };
     const { numberOfValidators, numberOfNominators, totalValidatorStake, validatorRewardsPerWeek, totalIssuance } =
       await this.getValidatorData();
@@ -297,7 +298,8 @@ export default class TokenomicsTransport extends BaseTransport {
       contentCurators: resolveGroupData(workingGroupsData.curators),
       operationsAlpha: resolveGroupData(workingGroupsData.operationsAlpha),
       operationsBeta: resolveGroupData(workingGroupsData.operationsBeta),
-      operationsGamma: resolveGroupData(workingGroupsData.operationsGamma)
+      operationsGamma: resolveGroupData(workingGroupsData.operationsGamma),
+      distribution: resolveGroupData(workingGroupsData.distribution)
     };
   }
 }

+ 1 - 0
pioneer/packages/joy-utils/src/types/tokenomics.ts

@@ -40,6 +40,7 @@ export type TokenomicsData = {
   operationsAlpha: WorkingGroupTokenomicsData;
   operationsBeta: WorkingGroupTokenomicsData;
   operationsGamma: WorkingGroupTokenomicsData;
+  distribution: WorkingGroupTokenomicsData;
 }
 
 export type StatusServerData = {