@novasamatech/host-papp 0.8.8 → 0.8.9

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.
@@ -12,7 +12,7 @@ import { RemoteMessageCodec } from './scale/remoteMessage.js';
12
12
  // the remote signer doesn't respond — e.g. the request
13
13
  // payload is for an SDK version the mobile app doesn't support yet. After
14
14
  // this timeout the queue task fails, freeing the pool for the next request.
15
- const QUEUE_TASK_TIMEOUT_MS = 180_000;
15
+ const QUEUE_TASK_TIMEOUT_MS = 240_000;
16
16
  // Mobile SSO statements allow 500 KiB total; keep headroom for statement/session overhead.
17
17
  const MAX_SSO_REQUEST_SIZE = 498 * 1024;
18
18
  function withQueueTimeout(resultAsync, label) {
@@ -191,6 +191,7 @@ export function createUserSession({ userSession, statementStore, encryption, sto
191
191
  return enqueue(() => {
192
192
  const messageId = nanoid();
193
193
  const data = enumValue('v1', enumValue('CreateTransactionRequest', payload));
194
+ emitHostAction(messageId, actionKindFromMessageData(data), userSession.id);
194
195
  const responseFilter = (message) => {
195
196
  if (message.data.tag === 'v1' &&
196
197
  message.data.value.tag === 'CreateTransactionResponse' &&
@@ -208,13 +209,14 @@ export function createUserSession({ userSession, statementStore, encryption, sto
208
209
  return err(new Error(message.value));
209
210
  }
210
211
  });
211
- return withQueueTimeout(inner, 'createTransaction');
212
+ return withHostActionTrace(withQueueTimeout(inner, 'createTransaction'), messageId, userSession.id);
212
213
  });
213
214
  },
214
215
  createTransactionLegacy(payload) {
215
216
  return enqueue(() => {
216
217
  const messageId = nanoid();
217
218
  const data = enumValue('v1', enumValue('CreateTransactionLegacyRequest', payload));
219
+ emitHostAction(messageId, actionKindFromMessageData(data), userSession.id);
218
220
  const responseFilter = (message) => {
219
221
  if (message.data.tag === 'v1' &&
220
222
  message.data.value.tag === 'CreateTransactionResponse' &&
@@ -232,7 +234,7 @@ export function createUserSession({ userSession, statementStore, encryption, sto
232
234
  return err(new Error(message.value));
233
235
  }
234
236
  });
235
- return withQueueTimeout(inner, 'createTransactionLegacy');
237
+ return withHostActionTrace(withQueueTimeout(inner, 'createTransactionLegacy'), messageId, userSession.id);
236
238
  });
237
239
  },
238
240
  getRingVrfAlias(productAccountId, productId) {
@@ -259,6 +261,7 @@ export function createUserSession({ userSession, statementStore, encryption, sto
259
261
  return enqueue(() => {
260
262
  const messageId = nanoid();
261
263
  const data = enumValue('v1', enumValue('ResourceAllocationRequest', payload));
264
+ emitHostAction(messageId, actionKindFromMessageData(data), userSession.id);
262
265
  const responseFilter = (message) => {
263
266
  if (message.data.tag === 'v1' &&
264
267
  message.data.value.tag === 'ResourceAllocationResponse' &&
@@ -269,7 +272,7 @@ export function createUserSession({ userSession, statementStore, encryption, sto
269
272
  const request = session.request(RemoteMessageCodec, { messageId, data });
270
273
  const reply = session.waitForRequestMessage(RemoteMessageCodec, responseFilter);
271
274
  const inner = awaitReplyOrAckFailure(request, reply).andThen(result => result.success ? ok(result.value) : err(new Error(result.value)));
272
- return withQueueTimeout(inner, 'requestResourceAllocation');
275
+ return withHostActionTrace(withQueueTimeout(inner, 'requestResourceAllocation'), messageId, userSession.id);
273
276
  });
274
277
  },
275
278
  sendDisconnectMessage() {
@@ -345,7 +348,7 @@ export function createUserSession({ userSession, statementStore, encryption, sto
345
348
  abortPendingRequests() {
346
349
  // Drop the whole request queue: aborting the shared signal rejects the
347
350
  // in-flight task and every request queued behind it, freeing the single
348
- // slot immediately instead of waiting out the per-task 180s timeout. Swap
351
+ // slot immediately instead of waiting out the per-task timeout. Swap
349
352
  // in a fresh controller so subsequent requests aren't pre-aborted.
350
353
  requestAbort.abort(new Error('Session request aborted'));
351
354
  requestAbort = new AbortController();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@novasamatech/host-papp",
3
3
  "type": "module",
4
- "version": "0.8.8",
4
+ "version": "0.8.9",
5
5
  "description": "Polkadot app integration",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -34,10 +34,10 @@
34
34
  "@noble/ciphers": "2.2.0",
35
35
  "@noble/curves": "2.2.0",
36
36
  "@noble/hashes": "2.2.0",
37
- "@novasamatech/host-api": "0.8.8",
38
- "@novasamatech/scale": "0.8.8",
39
- "@novasamatech/statement-store": "0.8.8",
40
- "@novasamatech/storage-adapter": "0.8.8",
37
+ "@novasamatech/host-api": "0.8.9",
38
+ "@novasamatech/scale": "0.8.9",
39
+ "@novasamatech/statement-store": "0.8.9",
40
+ "@novasamatech/storage-adapter": "0.8.9",
41
41
  "@polkadot-api/utils": "^0.4.0",
42
42
  "@polkadot-labs/hdkd-helpers": "^0.0.30",
43
43
  "nanoevents": "9.1.0",