Skip to content

Commit

Permalink
Merge pull request #97 from zCloak-Network/batch-message
Browse files Browse the repository at this point in the history
add batch encrypt message
  • Loading branch information
whgreate committed Nov 23, 2023
2 parents 65afed6 + 31b58d5 commit 0ece8d2
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changeset/large-sloths-laugh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@zcloak/message": patch
---

add batch encrypt message
41 changes: 40 additions & 1 deletion packages/message/src/encrypt/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ import type { DidResolver } from '@zcloak/did-resolver';
import type { DidUrl } from '@zcloak/did-resolver/types';
import type { Message, MessageData, MessageType } from '../types';

import { stringToU8a } from '@polkadot/util';
import { stringToHex, stringToU8a } from '@polkadot/util';

import { base58Encode, randomAsHex } from '@zcloak/crypto';
import { Did } from '@zcloak/did';
import { VerifiableCredential } from '@zcloak/vc/types';

import { DEFAULT_MESSAGE_VERSION } from '../defaults';

Expand Down Expand Up @@ -80,3 +82,40 @@ export async function encryptMessage<T extends MessageType>(
encryptedMsg: base58Encode(encrypted.data)
};
}

export async function batchEncryptMessage(
data: VerifiableCredential<boolean>[],
sender: Did,
receivers: DidUrl[],
reply?: string,
resolver?: DidResolver
): Promise<Message<'Send_issuedVC'>[]> {
const createTime = Date.now();
const version = DEFAULT_MESSAGE_VERSION;

const messages = data.map((vc, index) => {
return {
receiver: receivers[index],
message: stringToHex(JSON.stringify(vc))
};
});

const results = await sender.batchEncrypt(messages, sender.id, resolver);

return results.map((result, index) => {
const ctype = getCtype('Send_issuedVC', data[index]);
const id = randomAsHex(32);

return {
id,
reply,
createTime,
version,
msgType: 'Send_issuedVC',
sender: result.senderUrl,
receiver: result.receiverUrl,
ctype,
encryptedMsg: base58Encode(result.data)
};
});
}

0 comments on commit 0ece8d2

Please sign in to comment.