You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import { SignalService } from '../../../../../../protobuf';
|
|
import { isEmpty } from 'lodash';
|
|
import { GroupMessage, GroupMessageParams } from './GroupMessage';
|
|
import { from_hex } from 'libsodium-wrappers-sumo';
|
|
|
|
export interface GroupPromoteMessageParams extends GroupMessageParams {
|
|
/**
|
|
* hex string of the group private key
|
|
*/
|
|
privateKey: string;
|
|
}
|
|
|
|
export class GroupPromoteMessage extends GroupMessage {
|
|
private readonly privateKey: string;
|
|
|
|
constructor(params: GroupPromoteMessageParams) {
|
|
super(params);
|
|
|
|
if (!params.privateKey || isEmpty(params.privateKey)) {
|
|
throw new Error('privateKey parameter must be set');
|
|
}
|
|
|
|
this.privateKey = params.privateKey;
|
|
}
|
|
|
|
public dataProto(): SignalService.DataMessage {
|
|
const dataMessage = new SignalService.DataMessage();
|
|
dataMessage.groupMessage = super.groupMessage();
|
|
dataMessage.groupMessage.promoteMessage = new SignalService.GroupPromoteMessage();
|
|
dataMessage.groupMessage.promoteMessage.privateKey = from_hex(this.privateKey);
|
|
|
|
return dataMessage;
|
|
}
|
|
}
|