Role: {
    canCreate: ((roleName: string) => Promise<boolean> | boolean);
    getIssuers: (() => Promise<Role[]>);
    getRoleName: (() => string);
    getRolePersonIds: (() => Promise<SHA256IdHash<Person>[]>);
    hasAffirmed: ((data: SHA256Hash | SHA256IdHash, personId?: SHA256IdHash<Person>) => Promise<boolean>);
    hasSigned: ((data: SHA256Hash, personId?: SHA256IdHash<Person>) => Promise<boolean>);
    init: (() => Promise<void>);
    isRolePerson: ((personId?: SHA256IdHash<Person>) => Promise<boolean>);
    onFound: OEvent<(() => void | Promise<void>)>;
    setRolePerson: ((personId: SHA256IdHash<Person>, creatorId?: SHA256IdHash<Person>) => Promise<void>);
    shareIssuers: ((rolePersonId: SHA256IdHash<Person>, shareWithPersonIds: SHA256IdHash<Person>[]) => Promise<void>);
    shareWith: ((shareWithPersonIds: SHA256IdHash<Person>[], options: {
        forcePropagate?: boolean;
        rolePersonId?: SHA256IdHash<Person>;
    }) => Promise<void>);
    shutdown: (() => Promise<void>);
}

Type declaration

  • canCreate: ((roleName: string) => Promise<boolean> | boolean)
      • (roleName): Promise<boolean> | boolean
      • Parameters

        • roleName: string

        Returns Promise<boolean> | boolean

  • getIssuers: (() => Promise<Role[]>)

    ************* may not be implemented by all roles **************

      • (): Promise<Role[]>
      • Returns Promise<Role[]>

  • getRoleName: (() => string)
      • (): string
      • Returns string

  • getRolePersonIds: (() => Promise<SHA256IdHash<Person>[]>)
      • (): Promise<SHA256IdHash<Person>[]>
      • Returns Promise<SHA256IdHash<Person>[]>

  • hasAffirmed: ((data: SHA256Hash | SHA256IdHash, personId?: SHA256IdHash<Person>) => Promise<boolean>)
      • (data, personId?): Promise<boolean>
      • Parameters

        • data: SHA256Hash | SHA256IdHash
        • OptionalpersonId: SHA256IdHash<Person>

        Returns Promise<boolean>

  • hasSigned: ((data: SHA256Hash, personId?: SHA256IdHash<Person>) => Promise<boolean>)
      • (data, personId?): Promise<boolean>
      • Parameters

        • data: SHA256Hash
        • OptionalpersonId: SHA256IdHash<Person>

        Returns Promise<boolean>

  • init: (() => Promise<void>)
      • (): Promise<void>
      • Returns Promise<void>

  • isRolePerson: ((personId?: SHA256IdHash<Person>) => Promise<boolean>)
      • (personId?): Promise<boolean>
      • Parameters

        • OptionalpersonId: SHA256IdHash<Person>

        Returns Promise<boolean>

  • onFound: OEvent<(() => void | Promise<void>)>
  • setRolePerson: ((personId: SHA256IdHash<Person>, creatorId?: SHA256IdHash<Person>) => Promise<void>)
      • (personId, creatorId?): Promise<void>
      • Parameters

        • personId: SHA256IdHash<Person>
        • OptionalcreatorId: SHA256IdHash<Person>

        Returns Promise<void>

  • shareIssuers: ((rolePersonId: SHA256IdHash<Person>, shareWithPersonIds: SHA256IdHash<Person>[]) => Promise<void>)
      • (rolePersonId, shareWithPersonIds): Promise<void>
      • Parameters

        • rolePersonId: SHA256IdHash<Person>
        • shareWithPersonIds: SHA256IdHash<Person>[]

        Returns Promise<void>

  • shareWith: ((shareWithPersonIds: SHA256IdHash<Person>[], options: {
        forcePropagate?: boolean;
        rolePersonId?: SHA256IdHash<Person>;
    }) => Promise<void>)
      • (shareWithPersonIds, options): Promise<void>
      • Parameters

        • shareWithPersonIds: SHA256IdHash<Person>[]
        • options: {
              forcePropagate?: boolean;
              rolePersonId?: SHA256IdHash<Person>;
          }
          • OptionalforcePropagate?: boolean
          • OptionalrolePersonId?: SHA256IdHash<Person>

        Returns Promise<void>

  • shutdown: (() => Promise<void>)
      • (): Promise<void>
      • Returns Promise<void>