@nadohq/mobile-client 0.52.0 → 0.54.0

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.
Files changed (147) hide show
  1. package/README.md +12 -4
  2. package/dist/{MobileClient-CEVEYnV1.cjs → MobileClient-BbTaqTzi.cjs} +141 -3
  3. package/dist/MobileClient-BbTaqTzi.cjs.map +1 -0
  4. package/dist/MobileClient.cjs +1 -1
  5. package/dist/MobileClient.d.cts +75 -8
  6. package/dist/MobileClient.d.cts.map +1 -1
  7. package/dist/MobileClient.d.ts +75 -8
  8. package/dist/MobileClient.d.ts.map +1 -1
  9. package/dist/MobileClient.js +141 -3
  10. package/dist/MobileClient.js.map +1 -1
  11. package/dist/{MobileServerFailureError-GsGrBgO0.d.ts → MobileServerFailureError-B2og8e5O.d.ts} +3 -3
  12. package/dist/{MobileServerFailureError-GsGrBgO0.d.ts.map → MobileServerFailureError-B2og8e5O.d.ts.map} +1 -1
  13. package/dist/{MobileServerFailureError-D4ina2b2.d.cts → MobileServerFailureError-BrLtaHnU.d.cts} +3 -3
  14. package/dist/{MobileServerFailureError-D4ina2b2.d.cts.map → MobileServerFailureError-BrLtaHnU.d.cts.map} +1 -1
  15. package/dist/{buildSignedMobileRequest-D9XzRTyq.d.cts → buildSignedMobileRequest-CZ-EdxYI.d.cts} +2 -2
  16. package/dist/{buildSignedMobileRequest-D9XzRTyq.d.cts.map → buildSignedMobileRequest-CZ-EdxYI.d.cts.map} +1 -1
  17. package/dist/{buildSignedMobileRequest-7Iwi5k6h.d.ts → buildSignedMobileRequest-CoAVSDPx.d.ts} +2 -2
  18. package/dist/{buildSignedMobileRequest-7Iwi5k6h.d.ts.map → buildSignedMobileRequest-CoAVSDPx.d.ts.map} +1 -1
  19. package/dist/{canonicalize-OYR35XMP.d.cts → canonicalize-0_B6UOxO.d.cts} +2 -2
  20. package/dist/canonicalize-0_B6UOxO.d.cts.map +1 -0
  21. package/dist/{canonicalize-T4ShepBu.d.ts → canonicalize-BC-JICjp.d.ts} +2 -2
  22. package/dist/canonicalize-BC-JICjp.d.ts.map +1 -0
  23. package/dist/clientTypes-P4LAjreY.d.ts +731 -0
  24. package/dist/clientTypes-P4LAjreY.d.ts.map +1 -0
  25. package/dist/clientTypes-YF5d8bvg.d.cts +731 -0
  26. package/dist/clientTypes-YF5d8bvg.d.cts.map +1 -0
  27. package/dist/dataMappers.cjs +358 -0
  28. package/dist/dataMappers.cjs.map +1 -1
  29. package/dist/dataMappers.d.cts +132 -6
  30. package/dist/dataMappers.d.cts.map +1 -1
  31. package/dist/dataMappers.d.ts +132 -6
  32. package/dist/dataMappers.d.ts.map +1 -1
  33. package/dist/dataMappers.js +339 -2
  34. package/dist/dataMappers.js.map +1 -1
  35. package/dist/{eip712MethodByType-D6edRSIs.d.ts → eip712MethodByType-DWtLyPY7.d.ts} +2 -2
  36. package/dist/eip712MethodByType-DWtLyPY7.d.ts.map +1 -0
  37. package/dist/{eip712MethodByType-BAqld4fP.d.cts → eip712MethodByType-sHQ-VTHd.d.cts} +2 -2
  38. package/dist/eip712MethodByType-sHQ-VTHd.d.cts.map +1 -0
  39. package/dist/index.cjs +1 -1
  40. package/dist/index.d.cts +15 -15
  41. package/dist/index.d.ts +15 -15
  42. package/dist/{mobileErrorCodes-CGYR3_Io.d.ts → mobileErrorCodes-DccrM4NI.d.cts} +8 -2
  43. package/dist/{mobileErrorCodes-CGYR3_Io.d.cts.map → mobileErrorCodes-DccrM4NI.d.cts.map} +1 -1
  44. package/dist/{mobileErrorCodes-CGYR3_Io.d.cts → mobileErrorCodes-DccrM4NI.d.ts} +8 -2
  45. package/dist/{mobileErrorCodes-CGYR3_Io.d.ts.map → mobileErrorCodes-DccrM4NI.d.ts.map} +1 -1
  46. package/dist/{payloadHash-B7Nmf64N.d.cts → payloadHash-CSgTglN4.d.cts} +2 -2
  47. package/dist/payloadHash-CSgTglN4.d.cts.map +1 -0
  48. package/dist/{payloadHash-RxkbwgTH.d.ts → payloadHash-qsU1DEF0.d.ts} +2 -2
  49. package/dist/payloadHash-qsU1DEF0.d.ts.map +1 -0
  50. package/dist/{serverBaseTypes-BOuAdmuQ.d.cts → serverBaseTypes-CuMsGXgc.d.cts} +2 -2
  51. package/dist/{serverBaseTypes-BOuAdmuQ.d.cts.map → serverBaseTypes-CuMsGXgc.d.cts.map} +1 -1
  52. package/dist/{serverBaseTypes-DDzfBA1a.d.ts → serverBaseTypes-DKCLDn3x.d.ts} +2 -2
  53. package/dist/{serverBaseTypes-DDzfBA1a.d.ts.map → serverBaseTypes-DKCLDn3x.d.ts.map} +1 -1
  54. package/dist/{serverExecuteTypes-DrxK2r7m.d.ts → serverExecuteTypes-DKG1mqy1.d.ts} +3 -3
  55. package/dist/{serverExecuteTypes-DrxK2r7m.d.ts.map → serverExecuteTypes-DKG1mqy1.d.ts.map} +1 -1
  56. package/dist/{serverExecuteTypes-DamHfu25.d.cts → serverExecuteTypes-TPX0GCgv.d.cts} +3 -3
  57. package/dist/{serverExecuteTypes-DamHfu25.d.cts.map → serverExecuteTypes-TPX0GCgv.d.cts.map} +1 -1
  58. package/dist/serverModelTypes-MlqdaMRd.d.cts +490 -0
  59. package/dist/serverModelTypes-MlqdaMRd.d.cts.map +1 -0
  60. package/dist/serverModelTypes-MlqdaMRd.d.ts +490 -0
  61. package/dist/serverModelTypes-MlqdaMRd.d.ts.map +1 -0
  62. package/dist/serverQueryTypes-BLUe10AI.d.ts +152 -0
  63. package/dist/serverQueryTypes-BLUe10AI.d.ts.map +1 -0
  64. package/dist/serverQueryTypes-BZOoJBpb.d.cts +152 -0
  65. package/dist/serverQueryTypes-BZOoJBpb.d.cts.map +1 -0
  66. package/dist/{serverRequestTypes-BylecTUn.d.cts → serverRequestTypes-BULjZnnz.d.ts} +69 -4
  67. package/dist/serverRequestTypes-BULjZnnz.d.ts.map +1 -0
  68. package/dist/{serverRequestTypes-DcdmGfTu.d.ts → serverRequestTypes-XbnLUsXT.d.cts} +69 -4
  69. package/dist/serverRequestTypes-XbnLUsXT.d.cts.map +1 -0
  70. package/dist/{serverResponseGuards-CjR1tv7G.d.cts → serverResponseGuards-DIj9MIrJ.d.cts} +2 -2
  71. package/dist/{serverResponseGuards-CjR1tv7G.d.cts.map → serverResponseGuards-DIj9MIrJ.d.cts.map} +1 -1
  72. package/dist/{serverResponseGuards-BspbRjOM.d.ts → serverResponseGuards-DY_8lAo7.d.ts} +2 -2
  73. package/dist/{serverResponseGuards-BspbRjOM.d.ts.map → serverResponseGuards-DY_8lAo7.d.ts.map} +1 -1
  74. package/dist/signing/buildSignedMobileRequest.d.cts +1 -1
  75. package/dist/signing/buildSignedMobileRequest.d.ts +1 -1
  76. package/dist/signing/canonicalize.d.cts +1 -1
  77. package/dist/signing/canonicalize.d.ts +1 -1
  78. package/dist/signing/eip712MethodByType.d.cts +1 -1
  79. package/dist/signing/eip712MethodByType.d.ts +1 -1
  80. package/dist/signing/index.d.cts +5 -5
  81. package/dist/signing/index.d.ts +5 -5
  82. package/dist/signing/payloadHash.d.cts +1 -1
  83. package/dist/signing/payloadHash.d.ts +1 -1
  84. package/dist/signing/types.d.cts +1 -1
  85. package/dist/signing/types.d.ts +1 -1
  86. package/dist/types/MobileServerFailureError.d.cts +1 -1
  87. package/dist/types/MobileServerFailureError.d.ts +1 -1
  88. package/dist/types/clientTypes.d.cts +2 -2
  89. package/dist/types/clientTypes.d.ts +2 -2
  90. package/dist/types/index.d.cts +9 -9
  91. package/dist/types/index.d.ts +9 -9
  92. package/dist/types/mobileErrorCodes.cjs +13 -1
  93. package/dist/types/mobileErrorCodes.cjs.map +1 -1
  94. package/dist/types/mobileErrorCodes.d.cts +1 -1
  95. package/dist/types/mobileErrorCodes.d.ts +1 -1
  96. package/dist/types/mobileErrorCodes.js +13 -1
  97. package/dist/types/mobileErrorCodes.js.map +1 -1
  98. package/dist/types/serverBaseTypes.d.cts +1 -1
  99. package/dist/types/serverBaseTypes.d.ts +1 -1
  100. package/dist/types/serverExecuteTypes.d.cts +1 -1
  101. package/dist/types/serverExecuteTypes.d.ts +1 -1
  102. package/dist/types/serverModelTypes.cjs.map +1 -1
  103. package/dist/types/serverModelTypes.d.cts +2 -2
  104. package/dist/types/serverModelTypes.d.ts +2 -2
  105. package/dist/types/serverModelTypes.js.map +1 -1
  106. package/dist/types/serverQueryTypes.d.cts +2 -2
  107. package/dist/types/serverQueryTypes.d.ts +2 -2
  108. package/dist/types/serverRequestTypes.d.cts +2 -2
  109. package/dist/types/serverRequestTypes.d.ts +2 -2
  110. package/dist/{types-BG321aOe.d.ts → types-B_4veFLc.d.ts} +3 -3
  111. package/dist/{types-BG321aOe.d.ts.map → types-B_4veFLc.d.ts.map} +1 -1
  112. package/dist/{types-D30luCKT.d.cts → types-CwpXP7xM.d.cts} +3 -3
  113. package/dist/{types-D30luCKT.d.cts.map → types-CwpXP7xM.d.cts.map} +1 -1
  114. package/dist/utils/index.d.cts +1 -1
  115. package/dist/utils/index.d.ts +1 -1
  116. package/dist/utils/serverResponseGuards.d.cts +1 -1
  117. package/dist/utils/serverResponseGuards.d.ts +1 -1
  118. package/package.json +3 -3
  119. package/src/MobileClient.ts +192 -2
  120. package/src/dataMappers.ts +503 -1
  121. package/src/socialFeed.test.ts +723 -0
  122. package/src/types/clientTypes.ts +467 -0
  123. package/src/types/mobileErrorCodes.ts +12 -0
  124. package/src/types/serverModelTypes.ts +388 -0
  125. package/src/types/serverQueryTypes.ts +74 -0
  126. package/src/types/serverRequestTypes.ts +94 -1
  127. package/dist/MobileClient-CEVEYnV1.cjs.map +0 -1
  128. package/dist/canonicalize-OYR35XMP.d.cts.map +0 -1
  129. package/dist/canonicalize-T4ShepBu.d.ts.map +0 -1
  130. package/dist/clientTypes-FQTkDfq3.d.cts +0 -349
  131. package/dist/clientTypes-FQTkDfq3.d.cts.map +0 -1
  132. package/dist/clientTypes-FaHdWkNu.d.ts +0 -349
  133. package/dist/clientTypes-FaHdWkNu.d.ts.map +0 -1
  134. package/dist/eip712MethodByType-BAqld4fP.d.cts.map +0 -1
  135. package/dist/eip712MethodByType-D6edRSIs.d.ts.map +0 -1
  136. package/dist/payloadHash-B7Nmf64N.d.cts.map +0 -1
  137. package/dist/payloadHash-RxkbwgTH.d.ts.map +0 -1
  138. package/dist/serverModelTypes-YmHqfxc8.d.cts +0 -173
  139. package/dist/serverModelTypes-YmHqfxc8.d.cts.map +0 -1
  140. package/dist/serverModelTypes-YmHqfxc8.d.ts +0 -173
  141. package/dist/serverModelTypes-YmHqfxc8.d.ts.map +0 -1
  142. package/dist/serverQueryTypes-C-_h9awN.d.ts +0 -89
  143. package/dist/serverQueryTypes-C-_h9awN.d.ts.map +0 -1
  144. package/dist/serverQueryTypes-CuVsrzGV.d.cts +0 -89
  145. package/dist/serverQueryTypes-CuVsrzGV.d.cts.map +0 -1
  146. package/dist/serverRequestTypes-BylecTUn.d.cts.map +0 -1
  147. package/dist/serverRequestTypes-DcdmGfTu.d.ts.map +0 -1
@@ -15,6 +15,13 @@ import {
15
15
  mapMobileProfilesIncludeToServer,
16
16
  mapMobilePublicProfile,
17
17
  mapMobileRegisteredWallet,
18
+ mapMobileSocialFeedItemResponse,
19
+ mapMobileSocialFeedListParamsToServer,
20
+ mapMobileSocialFeedPage,
21
+ mapMobileSocialFeedRankedPage,
22
+ mapMobileSocialFeedReadParamsToServer,
23
+ mapMobileSocialFeedTopTradersPage,
24
+ mapMobileSocialFeedUpdates,
18
25
  } from './dataMappers';
19
26
  import {
20
27
  buildSignedMobileRequest,
@@ -24,12 +31,20 @@ import {
24
31
  MobileSignedRequest,
25
32
  } from './signing';
26
33
  import {
34
+ GetMobileFeedItemParams,
27
35
  GetMobileFeedParams,
36
+ GetMobileFeedUpdatesParams,
28
37
  GetMobileFollowersParams,
29
38
  GetMobileFollowingParams,
39
+ GetMobileForYouFeedParams,
40
+ GetMobileFriendsFeedParams,
41
+ GetMobileMarketFeedParams,
30
42
  GetMobileNotificationPreferencesParams,
43
+ GetMobilePositionFeedParams,
44
+ GetMobileProfileFeedParams,
31
45
  GetMobileProfilesParams,
32
46
  GetMobileRegisteredWalletParams,
47
+ GetMobileTopTradersFeedParams,
33
48
  GetMobileUsernameAvailabilityParams,
34
49
  MobileFeedPage,
35
50
  MobileFollowListPage,
@@ -42,6 +57,11 @@ import {
42
57
  MobileSetPrivateModeParams,
43
58
  MobileSetUsernameParams,
44
59
  MobileSignedRequestParams,
60
+ MobileSocialFeedItemResponse,
61
+ MobileSocialFeedPage,
62
+ MobileSocialFeedRankedPage,
63
+ MobileSocialFeedTopTradersPage,
64
+ MobileSocialFeedUpdates,
45
65
  MobileUnregisterExpoTokenParams,
46
66
  MobileUpdateNotificationPreferencesParams,
47
67
  MobileUsernameAvailability,
@@ -90,8 +110,9 @@ export interface MobileClientOpts {
90
110
  }
91
111
 
92
112
  /**
93
- * Client for the Nado mobile service API: usernames, public profile lookups, the global trade feed, the
94
- * follower/following graph, privacy settings, and push notification device/preference management.
113
+ * Client for the Nado mobile service API: usernames, public profile lookups, the global trade feed,
114
+ * session-based social feeds, the follower/following graph, privacy settings, and push notification
115
+ * device/preference management.
95
116
  */
96
117
  export class MobileClient {
97
118
  readonly opts: MobileClientOpts;
@@ -229,6 +250,175 @@ export class MobileClient {
229
250
  return mapMobileFeedPage(data);
230
251
  }
231
252
 
253
+ /**
254
+ * Fetches chronological For You recommendations with server-side author/thread constraints.
255
+ * Always public, with optional viewAs for relationship state. Preserve the session, viewAs, filters, and limit
256
+ * when paging, including through empty pages with a nextCursor. A 6312 error requires a refresh.
257
+ * @param params - Filters, pagination, optional viewing account, and browser credential; no signing identity.
258
+ * @returns A fixed-session page with its ranking version and new-content watermark.
259
+ * @throws {MobileServerFailureError} On invalid parameters, session mismatch/expiry, or unavailable data.
260
+ */
261
+ async getForYouFeed(
262
+ params: GetMobileForYouFeedParams = {},
263
+ ): Promise<MobileSocialFeedRankedPage> {
264
+ const body: MobileServerPublicQueryRequest<'for_you_feed'> = {
265
+ type: 'for_you_feed',
266
+ market_category: params.marketCategory,
267
+ ...mapMobileSocialFeedListParamsToServer(params),
268
+ ...mapMobileSocialFeedReadParamsToServer(params),
269
+ };
270
+ const data = await this.publicQuery(body);
271
+ return mapMobileSocialFeedRankedPage(data);
272
+ }
273
+
274
+ /**
275
+ * Fetches chronological content by qualified Top Traders, with official account PnL badges.
276
+ * Always public; neither a wallet nor one-click trading setup is required.
277
+ * @param params - Filters, pagination, optional viewing account, and browser credential.
278
+ * @returns A page with its qualification cohort; an unavailable cohort fails instead of returning an empty ranking.
279
+ * @throws {MobileServerFailureError} On request/session errors or unavailable cohort data.
280
+ */
281
+ async getTopTradersFeed(
282
+ params: GetMobileTopTradersFeedParams = {},
283
+ ): Promise<MobileSocialFeedTopTradersPage> {
284
+ const body: MobileServerPublicQueryRequest<'top_traders_feed'> = {
285
+ type: 'top_traders_feed',
286
+ market_category: params.marketCategory,
287
+ ...mapMobileSocialFeedListParamsToServer(params),
288
+ ...mapMobileSocialFeedReadParamsToServer(params),
289
+ };
290
+ const data = await this.publicQuery(body);
291
+ return mapMobileSocialFeedTopTradersPage(data);
292
+ }
293
+
294
+ /**
295
+ * Fetches public content by authors followed by viewAs, without a signature. One-way following is sufficient.
296
+ * @param params - Required viewing account on every request, filters, pagination, and browser credential.
297
+ * @returns A chronological Friends page and reading session.
298
+ * @throws {MobileServerFailureError} On invalid viewing account, session errors, or feed query failure.
299
+ */
300
+ async getFriendsFeed(
301
+ params: GetMobileFriendsFeedParams,
302
+ ): Promise<MobileSocialFeedRankedPage> {
303
+ const body: MobileServerPublicQueryRequest<'friends_feed'> = {
304
+ type: 'friends_feed',
305
+ market_category: params.marketCategory,
306
+ ...mapMobileSocialFeedListParamsToServer(params),
307
+ view_as: subaccountToHex(params.viewAs),
308
+ viewer_token: params.viewerToken,
309
+ };
310
+ const data = await this.publicQuery(body);
311
+ return mapMobileSocialFeedRankedPage(data);
312
+ }
313
+
314
+ /**
315
+ * Fetches an author's content visible to viewAs, including that account's own hidden content.
316
+ * @param params - Target identity, filters, pagination, and optional public viewing account.
317
+ * @returns An author page without main-feed ranking or cohort fields.
318
+ * @throws {MobileServerFailureError} On invalid parameters, session errors, or inaccessible content.
319
+ */
320
+ async getProfileFeed(
321
+ params: GetMobileProfileFeedParams,
322
+ ): Promise<MobileSocialFeedPage> {
323
+ const body: MobileServerPublicQueryRequest<'profile_feed'> = {
324
+ type: 'profile_feed',
325
+ subaccount: subaccountToHex(params.subaccount),
326
+ market_category: params.marketCategory,
327
+ ...mapMobileSocialFeedListParamsToServer(params),
328
+ ...mapMobileSocialFeedReadParamsToServer(params),
329
+ };
330
+ const data = await this.publicQuery(body);
331
+ return mapMobileSocialFeedPage(data);
332
+ }
333
+
334
+ /**
335
+ * Fetches published content for one market.
336
+ * @param params - Product ID, content/size filters, pagination, and public viewing account.
337
+ * @returns A market page without main-feed ranking fields.
338
+ * @throws {MobileServerFailureError} On an unknown market, session errors, or unavailable data.
339
+ */
340
+ async getMarketFeed(
341
+ params: GetMobileMarketFeedParams,
342
+ ): Promise<MobileSocialFeedPage> {
343
+ const body: MobileServerPublicQueryRequest<'market_feed'> = {
344
+ type: 'market_feed',
345
+ product_id: params.productId,
346
+ ...mapMobileSocialFeedListParamsToServer(params),
347
+ ...mapMobileSocialFeedReadParamsToServer(params),
348
+ };
349
+ const data = await this.publicQuery(body);
350
+ return mapMobileSocialFeedPage(data);
351
+ }
352
+
353
+ /**
354
+ * Fetches already published content for a position lifecycle. This is not full position history
355
+ * and includes hidden content owned by viewAs under account_view. It does not recreate suppressed activity.
356
+ * @param params - Position UUID, filters, pagination, and public viewing account.
357
+ * @returns A fixed-session position feed page.
358
+ * @throws {MobileServerFailureError} On inaccessible content, session errors, or unavailable data.
359
+ */
360
+ async getPositionFeed(
361
+ params: GetMobilePositionFeedParams,
362
+ ): Promise<MobileSocialFeedPage> {
363
+ const body: MobileServerPublicQueryRequest<'position_feed'> = {
364
+ type: 'position_feed',
365
+ position_id: params.positionId,
366
+ ...mapMobileSocialFeedListParamsToServer(params),
367
+ ...mapMobileSocialFeedReadParamsToServer(params),
368
+ };
369
+ const data = await this.publicQuery(body);
370
+ return mapMobileSocialFeedPage(data);
371
+ }
372
+
373
+ /**
374
+ * Reads one item visible to viewAs, including that account's own hidden content.
375
+ * Creates an item session directly when sessionId is omitted.
376
+ * @param params - Item UUID, preview limit, and optional existing session/read identity.
377
+ * @returns The complete item and authorized reading session.
378
+ * @throws {MobileServerFailureError} On inaccessible content or session mismatch/expiry.
379
+ */
380
+ async getFeedItem(
381
+ params: GetMobileFeedItemParams,
382
+ ): Promise<MobileSocialFeedItemResponse> {
383
+ const body: MobileServerPublicQueryRequest<'feed_item'> = {
384
+ type: 'feed_item',
385
+ item_id: params.itemId,
386
+ comment_preview_limit: params.commentPreviewLimit,
387
+ session_id: params.sessionId,
388
+ ...mapMobileSocialFeedReadParamsToServer(params),
389
+ };
390
+ const data = await this.publicQuery(body);
391
+ return mapMobileSocialFeedItemResponse(data);
392
+ }
393
+
394
+ /**
395
+ * Polls authorized visible items and positions without inserting or reordering list members.
396
+ * Increment requestSeq across the entire session, including viewport changes; never reset it for a new viewport.
397
+ * Accept only the current session and viewportRevision's latest requestSeq; discard stale patches and cursors together.
398
+ * Updates currently always return reset=true. Apply current author details, follow state, and badges even if the item version is unchanged.
399
+ * Null patches clear values;
400
+ * omitted fields leave them unchanged. Stop polling off-screen and refresh on error 6312.
401
+ * @param params - Session, visible IDs, update baseline, sequence, and matching read identity.
402
+ * @returns Item/position patches, revoked targets, and a new-content hint.
403
+ * @throws {MobileServerFailureError} On invalid or unauthorized targets, session expiry, or unavailable data.
404
+ */
405
+ async getFeedUpdates(
406
+ params: GetMobileFeedUpdatesParams,
407
+ ): Promise<MobileSocialFeedUpdates> {
408
+ const body: MobileServerPublicQueryRequest<'feed_updates'> = {
409
+ type: 'feed_updates',
410
+ session_id: params.sessionId,
411
+ visible_item_ids: params.visibleItemIds,
412
+ visible_position_ids: params.visiblePositionIds,
413
+ update_cursor: params.updateCursor,
414
+ viewport_revision: params.viewportRevision,
415
+ request_seq: params.requestSeq,
416
+ viewer_token: params.viewerToken,
417
+ };
418
+ const data = await this.publicQuery(body);
419
+ return mapMobileSocialFeedUpdates(data);
420
+ }
421
+
232
422
  /**
233
423
  * Fetches the push notification preferences of the wallet that owns the given Expo push token. Unsigned —
234
424
  * the token identifies the wallet on its own. Falls back to the backend's defaults if the wallet has never