Implement endorsements for group send
This commit is contained in:
parent
5f82c82803
commit
24536e1342
21 changed files with 816 additions and 269 deletions
|
@ -73,7 +73,26 @@ export const groupSendMemberEndorsementSchema = z.object({
|
|||
endorsement: groupSendEndorsementSchema,
|
||||
});
|
||||
|
||||
export const groupSendEndorsementsDataSchema = z.object({
|
||||
combinedEndorsement: groupSendCombinedEndorsementSchema,
|
||||
memberEndorsements: z.array(groupSendMemberEndorsementSchema).min(1),
|
||||
});
|
||||
export const groupSendEndorsementsDataSchema = z
|
||||
.object({
|
||||
combinedEndorsement: groupSendCombinedEndorsementSchema,
|
||||
memberEndorsements: z.array(groupSendMemberEndorsementSchema).min(1),
|
||||
})
|
||||
.refine(data => {
|
||||
return data.memberEndorsements.every(memberEndorsement => {
|
||||
return (
|
||||
memberEndorsement.groupId === data.combinedEndorsement.groupId &&
|
||||
memberEndorsement.expiration === data.combinedEndorsement.expiration
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
export const groupSendTokenSchema = z
|
||||
.instanceof(Uint8Array)
|
||||
.brand('GroupSendToken');
|
||||
|
||||
export type GroupSendToken = z.infer<typeof groupSendTokenSchema>;
|
||||
|
||||
export function toGroupSendToken(token: Uint8Array): GroupSendToken {
|
||||
return groupSendTokenSchema.parse(token);
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ export enum ToastType {
|
|||
FailedToDeleteUsername = 'FailedToDeleteUsername',
|
||||
FailedToFetchPhoneNumber = 'FailedToFetchPhoneNumber',
|
||||
FailedToFetchUsername = 'FailedToFetchUsername',
|
||||
FailedToSendWithEndorsements = 'FailedToSendWithEndorsements',
|
||||
FileSaved = 'FileSaved',
|
||||
FileSize = 'FileSize',
|
||||
GroupLinkCopied = 'GroupLinkCopied',
|
||||
|
@ -105,6 +106,7 @@ export type AnyToast =
|
|||
| { toastType: ToastType.FailedToDeleteUsername }
|
||||
| { toastType: ToastType.FailedToFetchPhoneNumber }
|
||||
| { toastType: ToastType.FailedToFetchUsername }
|
||||
| { toastType: ToastType.FailedToSendWithEndorsements }
|
||||
| { toastType: ToastType.FileSaved; parameters: { fullPath: string } }
|
||||
| {
|
||||
toastType: ToastType.FileSize;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue