addWorkerOpening.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { ApiParamsOptions, ApiParamOptions, HRTStruct } from '../Types'
  2. import { OpeningType, WorkingGroupOpeningPolicyCommitment } from '@joystream/types/working-group'
  3. import { SlashingTerms } from '@joystream/types/common'
  4. import { Bytes } from '@polkadot/types'
  5. import { schemaValidator } from '@joystream/types/hiring'
  6. import { createType } from '@joystream/types'
  7. class OpeningPolicyCommitmentOptions implements ApiParamsOptions {
  8. [paramName: string]: ApiParamOptions
  9. public role_slashing_terms: ApiParamOptions<SlashingTerms> = {
  10. value: {
  11. default: createType('SlashingTerms', { Unslashable: null }),
  12. locked: true,
  13. },
  14. }
  15. // Rename fields containing "curator" (solivg minor UI issue related to flat namespace)
  16. public terminate_curator_application_stake_unstaking_period: ApiParamOptions = {
  17. forcedName: 'terminate_application_stake_unstaking_period',
  18. }
  19. public terminate_curator_role_stake_unstaking_period: ApiParamOptions = {
  20. forcedName: 'terminate_role_stake_unstaking_period',
  21. }
  22. public exit_curator_role_application_stake_unstaking_period: ApiParamOptions = {
  23. forcedName: 'exit_role_application_stake_unstaking_period',
  24. }
  25. public exit_curator_role_stake_unstaking_period: ApiParamOptions = {
  26. forcedName: 'exit_role_stake_unstaking_period',
  27. }
  28. }
  29. class AddWrokerOpeningOptions implements ApiParamsOptions {
  30. [paramName: string]: ApiParamOptions
  31. // Lock value for opening_type
  32. public opening_type: ApiParamOptions<OpeningType> = {
  33. value: {
  34. default: createType('OpeningType', { Worker: null }),
  35. locked: true,
  36. },
  37. }
  38. // Json schema for human_readable_text
  39. public human_readable_text: ApiParamOptions<Bytes> = {
  40. jsonSchema: {
  41. schemaValidator,
  42. struct: HRTStruct,
  43. },
  44. }
  45. // Lock value for role_slashing_terms
  46. public commitment: ApiParamOptions<WorkingGroupOpeningPolicyCommitment> = {
  47. nestedOptions: new OpeningPolicyCommitmentOptions(),
  48. }
  49. }
  50. export default AddWrokerOpeningOptions