@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 =
|
|
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
|
|
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.
|
|
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.
|
|
38
|
-
"@novasamatech/scale": "0.8.
|
|
39
|
-
"@novasamatech/statement-store": "0.8.
|
|
40
|
-
"@novasamatech/storage-adapter": "0.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",
|