@massalabs/gossip-sdk 0.0.2-dev.20260413081647 → 0.0.2-dev.20260414113456

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -379,9 +379,13 @@ export class UserKeys {
379
379
  free(): void;
380
380
  [Symbol.dispose](): void;
381
381
  /**
382
- * EIP-55 checksummed EVM address (0x…) derived from the mnemonic.
382
+ * EIP-55 checksummed EVM address (0x…) derived from the EVM public key.
383
383
  */
384
384
  evm_address(): string;
385
+ /**
386
+ * Massa address (AU…) derived from the Massa public key.
387
+ */
388
+ massa_address(): string;
385
389
  /**
386
390
  * Gets the public keys.
387
391
  */
@@ -582,6 +586,7 @@ export interface InitOutput {
582
586
  b: number
583
587
  ) => [number, number, number, number];
584
588
  readonly userkeys_evm_address: (a: number) => [number, number];
589
+ readonly userkeys_massa_address: (a: number) => [number, number];
585
590
  readonly userkeys_public_keys: (a: number) => [number, number, number];
586
591
  readonly userkeys_secret_keys: (a: number) => [number, number, number];
587
592
  readonly userpublickeys_derive_id: (a: number) => [number, number];
@@ -1077,6 +1077,22 @@ export class UserKeys {
1077
1077
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
1078
1078
  }
1079
1079
  }
1080
+ /**
1081
+ * Massa address (AU…) derived from the Massa public key.
1082
+ * @returns {string}
1083
+ */
1084
+ massa_address() {
1085
+ let deferred1_0;
1086
+ let deferred1_1;
1087
+ try {
1088
+ const ret = wasm.userkeys_massa_address(this.__wbg_ptr);
1089
+ deferred1_0 = ret[0];
1090
+ deferred1_1 = ret[1];
1091
+ return getStringFromWasm0(ret[0], ret[1]);
1092
+ } finally {
1093
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
1094
+ }
1095
+ }
1080
1096
  /**
1081
1097
  * Gets the public keys.
1082
1098
  * @returns {UserPublicKeys}
@@ -125,6 +125,7 @@ export const sessionmanagerwrapper_to_encrypted_blob: (
125
125
  b: number
126
126
  ) => [number, number, number, number];
127
127
  export const userkeys_evm_address: (a: number) => [number, number];
128
+ export const userkeys_massa_address: (a: number) => [number, number];
128
129
  export const userkeys_public_keys: (a: number) => [number, number, number];
129
130
  export const userkeys_secret_keys: (a: number) => [number, number, number];
130
131
  export const userpublickeys_derive_id: (a: number) => [number, number];
@@ -19,6 +19,7 @@ export declare class MessageQueries {
19
19
  updateById(id: number, data: Partial<MessageInsert>): Promise<void>;
20
20
  deleteByOwnerAndContact(ownerUserId: string, contactUserId: string): Promise<void>;
21
21
  deleteById(id: number): Promise<void>;
22
+ deleteReactionsForMessage(ownerUserId: string, contactUserId: string, messageIdBase64: string): Promise<void>;
22
23
  deleteDeliveredKeepAlive(ownerUserId: string): Promise<void>;
23
24
  getOutgoingSentByOwner(ownerUserId: string): Promise<MessageRow[]>;
24
25
  getWaitingCount(ownerUserId: string, contactUserId: string): Promise<number>;
@@ -99,6 +99,11 @@ export class MessageQueries {
99
99
  .delete(schema.messages)
100
100
  .where(eq(schema.messages.id, id));
101
101
  }
102
+ async deleteReactionsForMessage(ownerUserId, contactUserId, messageIdBase64) {
103
+ await this.conn.db
104
+ .delete(schema.messages)
105
+ .where(and(eq(schema.messages.ownerUserId, ownerUserId), eq(schema.messages.contactUserId, contactUserId), eq(schema.messages.type, MessageType.REACTION), sql `json_extract(${schema.messages.reactionOf}, '$.originalMsgId') = ${messageIdBase64}`));
106
+ }
102
107
  async deleteDeliveredKeepAlive(ownerUserId) {
103
108
  await this.conn.db
104
109
  .delete(schema.messages)
@@ -434,9 +434,14 @@ export class MessageService {
434
434
  content: '[Message deleted]',
435
435
  type: MessageType.DELETED,
436
436
  });
437
- await this.queries.messages.updateById(target.id, {
438
- content: '[Message deleted]',
439
- type: MessageType.DELETED,
437
+ const targetId = target.id;
438
+ const deleteOriginalMsgId = message.deleteOf.originalMsgId;
439
+ await this.queries.conn.withTransaction(async () => {
440
+ await this.queries.messages.updateById(targetId, {
441
+ content: '[Message deleted]',
442
+ type: MessageType.DELETED,
443
+ });
444
+ await this.queries.messages.deleteReactionsForMessage(ownerUserId, target.contactUserId, encodeToBase64(deleteOriginalMsgId));
440
445
  });
441
446
  }
442
447
  continue;
@@ -1396,9 +1401,13 @@ export class MessageService {
1396
1401
  });
1397
1402
  }
1398
1403
  try {
1399
- await this.queries.messages.updateById(id, {
1400
- content: '[Message deleted]',
1401
- type: MessageType.DELETED,
1404
+ const messageId = row.messageId;
1405
+ await this.queries.conn.withTransaction(async () => {
1406
+ await this.queries.messages.updateById(id, {
1407
+ content: '[Message deleted]',
1408
+ type: MessageType.DELETED,
1409
+ });
1410
+ await this.queries.messages.deleteReactionsForMessage(ownerUserId, row.contactUserId, encodeToBase64(messageId));
1402
1411
  });
1403
1412
  const controlMessage = {
1404
1413
  ownerUserId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@massalabs/gossip-sdk",
3
- "version": "0.0.2-dev.20260413081647",
3
+ "version": "0.0.2-dev.20260414113456",
4
4
  "description": "Gossip SDK for automation, chatbot, and integration use cases",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",