From 77dbde31297044aea263731d8ea96257b2966bc0 Mon Sep 17 00:00:00 2001 From: Pascal Date: Wed, 8 Jan 2025 15:06:46 +0100 Subject: [PATCH] message_object_ok --- src/pages/chat/chat.ts | 87 +++++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 35 deletions(-) diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts index 407f170..11c5320 100755 --- a/src/pages/chat/chat.ts +++ b/src/pages/chat/chat.ts @@ -225,7 +225,7 @@ class ChatElement extends HTMLElement { } } - public async createMessagingProcess(otherMembers: Member[],relayAddress: string, feeRate: number): Promise { + public async createMessagingProcess(otherMembers: Member[], relayAddress: string, feeRate: number): Promise { if (!this.isPaired()) { throw new Error('Device not paired'); } @@ -238,49 +238,66 @@ class ChatElement extends HTMLElement { const meAndOne = [{ sp_addresses: me }, otherMembers.pop()!]; const everyOneElse = otherMembers; const messagingTemplate = { - description: 'messaging', - roles: { - public: { - members: allMembers, - validation_rules: [ - { - quorum: 0.0, - fields: ['description', 'roles'], - min_sig_member: 0.0, - }, - ], - storages: [storageUrl] + process_id: crypto.randomUUID(), + description: 'messaging', + messages: { + state: 'initial', + object: { + type: 'message_list', + content: [], + content_type: { + allowed: ['text', 'file'], + default: 'text' + }, + metadata: { + created_at: Date.now(), + last_updated: Date.now() + } + } }, - owner: { - members: meAndOne, - validation_rules: [ - { - quorum: 1.0, - fields: ['description', 'roles'], - min_sig_member: 1.0, + roles: { + public: { + members: allMembers, + validation_rules: [ + { + quorum: 0.0, + fields: ['description', 'roles', 'messages'], + min_sig_member: 0.0, + }, + ], + storages: [storageUrl] }, - ], - storages: [storageUrl] - }, - users: { - members: everyOneElse, - validation_rules: [ - { - quorum: 0.0, - fields: ['description', 'roles'], - min_sig_member: 0.0, + owner: { + members: meAndOne, + validation_rules: [ + { + quorum: 1.0, + fields: ['description', 'roles', 'messages'], + min_sig_member: 1.0, + }, + ], + storages: [storageUrl] + }, + users: { + members: everyOneElse, + validation_rules: [ + { + quorum: 0.0, + fields: ['description', 'roles', 'messages'], + min_sig_member: 0.0, + }, + ], + storages: [storageUrl] }, - ], - storages: [storageUrl] }, - }, }; + try { return this.sdkClient.create_new_process(JSON.stringify(messagingTemplate), null, relayAddress, feeRate); } catch (e) { - throw new Error(`Creating process failed: ${e}`); + throw new Error(`Creating process failed: ${e}`); } - } + } async getMemberFromDevice(): Promise { try {