@nadohq/mobile-client 0.64.0 → 0.66.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.
- package/README.md +124 -7
- package/dist/MobileClient-M4oC4lrX.cjs +1101 -0
- package/dist/MobileClient-M4oC4lrX.cjs.map +1 -0
- package/dist/MobileClient.cjs +1 -1
- package/dist/MobileClient.d.cts +306 -10
- package/dist/MobileClient.d.cts.map +1 -1
- package/dist/MobileClient.d.ts +306 -10
- package/dist/MobileClient.d.ts.map +1 -1
- package/dist/MobileClient.js +544 -5
- package/dist/MobileClient.js.map +1 -1
- package/dist/{MobileServerFailureError-Dd3c6P_Z.d.ts → MobileServerFailureError-C9iqNsxI.d.ts} +2 -3
- package/dist/MobileServerFailureError-C9iqNsxI.d.ts.map +1 -0
- package/dist/{MobileServerFailureError-Bpa_WA9f.d.cts → MobileServerFailureError-MtS2reel.d.cts} +2 -3
- package/dist/MobileServerFailureError-MtS2reel.d.cts.map +1 -0
- package/dist/MobileUnsupportedFeedItemError-BsZvW8i2.d.cts +15 -0
- package/dist/MobileUnsupportedFeedItemError-BsZvW8i2.d.cts.map +1 -0
- package/dist/MobileUnsupportedFeedItemError-BsZvW8i2.d.ts +15 -0
- package/dist/MobileUnsupportedFeedItemError-BsZvW8i2.d.ts.map +1 -0
- package/dist/MobileUnsupportedNotificationRouteError-DpiNBvvY.d.cts +15 -0
- package/dist/MobileUnsupportedNotificationRouteError-DpiNBvvY.d.cts.map +1 -0
- package/dist/MobileUnsupportedNotificationRouteError-DpiNBvvY.d.ts +15 -0
- package/dist/MobileUnsupportedNotificationRouteError-DpiNBvvY.d.ts.map +1 -0
- package/dist/{buildSignedMobileRequest-Cb1T74xV.d.ts → buildSignedMobileRequest-BR-KJhIF.d.ts} +2 -2
- package/dist/{buildSignedMobileRequest-Cb1T74xV.d.ts.map → buildSignedMobileRequest-BR-KJhIF.d.ts.map} +1 -1
- package/dist/{buildSignedMobileRequest-NHbMAPzd.d.cts → buildSignedMobileRequest-DyKCK34Y.d.cts} +2 -2
- package/dist/{buildSignedMobileRequest-NHbMAPzd.d.cts.map → buildSignedMobileRequest-DyKCK34Y.d.cts.map} +1 -1
- package/dist/{canonicalize-BBYGh17w.d.ts → canonicalize-Bv6UIAbR.d.ts} +2 -2
- package/dist/canonicalize-Bv6UIAbR.d.ts.map +1 -0
- package/dist/{canonicalize-BF_SiNvO.d.cts → canonicalize-CWh3XZzj.d.cts} +2 -2
- package/dist/canonicalize-CWh3XZzj.d.cts.map +1 -0
- package/dist/clientTypes-BUn5_OzK.d.ts +1665 -0
- package/dist/clientTypes-BUn5_OzK.d.ts.map +1 -0
- package/dist/clientTypes-DOpUcu80.d.cts +1665 -0
- package/dist/clientTypes-DOpUcu80.d.cts.map +1 -0
- package/dist/dataMappers.cjs +691 -14
- package/dist/dataMappers.cjs.map +1 -1
- package/dist/dataMappers.d.cts +254 -8
- package/dist/dataMappers.d.cts.map +1 -1
- package/dist/dataMappers.d.ts +254 -8
- package/dist/dataMappers.d.ts.map +1 -1
- package/dist/dataMappers.js +651 -15
- package/dist/dataMappers.js.map +1 -1
- package/dist/{eip712MethodByType-BSx11xG-.d.cts → eip712MethodByType-CJ6BoayT.d.cts} +2 -2
- package/dist/eip712MethodByType-CJ6BoayT.d.cts.map +1 -0
- package/dist/{eip712MethodByType-DkiAjCLs.d.ts → eip712MethodByType-Dx4mvgni.d.ts} +2 -2
- package/dist/eip712MethodByType-Dx4mvgni.d.ts.map +1 -0
- package/dist/{feed-DTJlsg8W.d.ts → feed-DErOLaoY.d.cts} +4 -2
- package/dist/feed-DErOLaoY.d.cts.map +1 -0
- package/dist/{feed-DTJlsg8W.d.cts → feed-DErOLaoY.d.ts} +4 -2
- package/dist/feed-DErOLaoY.d.ts.map +1 -0
- package/dist/index.cjs +9 -2
- package/dist/index.d.cts +15 -16
- package/dist/index.d.ts +15 -16
- package/dist/index.js +5 -3
- package/dist/{mobileErrorCodes-3LtreeZM.d.ts → mobileErrorCodes-vD6rbFuF.d.cts} +25 -6
- package/dist/mobileErrorCodes-vD6rbFuF.d.cts.map +1 -0
- package/dist/{mobileErrorCodes-3LtreeZM.d.cts → mobileErrorCodes-vD6rbFuF.d.ts} +25 -6
- package/dist/mobileErrorCodes-vD6rbFuF.d.ts.map +1 -0
- package/dist/{payloadHash-BOWGjqdb.d.cts → payloadHash-CdkF2Ocr.d.cts} +2 -2
- package/dist/payloadHash-CdkF2Ocr.d.cts.map +1 -0
- package/dist/{payloadHash-Bzf4CtjV.d.ts → payloadHash-HD29K77M.d.ts} +2 -2
- package/dist/payloadHash-HD29K77M.d.ts.map +1 -0
- package/dist/serverExecuteTypes-5JyyIXRK.d.ts +178 -0
- package/dist/serverExecuteTypes-5JyyIXRK.d.ts.map +1 -0
- package/dist/serverExecuteTypes-CHrQ9Rtq.d.cts +178 -0
- package/dist/serverExecuteTypes-CHrQ9Rtq.d.cts.map +1 -0
- package/dist/serverModelTypes-CGUZCi0y.d.cts +938 -0
- package/dist/serverModelTypes-CGUZCi0y.d.cts.map +1 -0
- package/dist/serverModelTypes-CGUZCi0y.d.ts +938 -0
- package/dist/serverModelTypes-CGUZCi0y.d.ts.map +1 -0
- package/dist/{serverResponseGuards-BU1Xv_tG.d.ts → serverResponseGuards-Bvw8ltYJ.d.ts} +2 -2
- package/dist/{serverResponseGuards-BU1Xv_tG.d.ts.map → serverResponseGuards-Bvw8ltYJ.d.ts.map} +1 -1
- package/dist/{serverResponseGuards-Dkdok0Sm.d.cts → serverResponseGuards-i1njcYKN.d.cts} +2 -2
- package/dist/{serverResponseGuards-Dkdok0Sm.d.cts.map → serverResponseGuards-i1njcYKN.d.cts.map} +1 -1
- package/dist/signing/buildSignedMobileRequest.d.cts +1 -1
- package/dist/signing/buildSignedMobileRequest.d.ts +1 -1
- package/dist/signing/canonicalize.cjs +86 -0
- package/dist/signing/canonicalize.cjs.map +1 -1
- package/dist/signing/canonicalize.d.cts +1 -1
- package/dist/signing/canonicalize.d.ts +1 -1
- package/dist/signing/canonicalize.js +86 -0
- package/dist/signing/canonicalize.js.map +1 -1
- package/dist/signing/eip712MethodByType.cjs +12 -0
- package/dist/signing/eip712MethodByType.cjs.map +1 -1
- package/dist/signing/eip712MethodByType.d.cts +1 -1
- package/dist/signing/eip712MethodByType.d.ts +1 -1
- package/dist/signing/eip712MethodByType.js +12 -0
- package/dist/signing/eip712MethodByType.js.map +1 -1
- package/dist/signing/index.d.cts +5 -5
- package/dist/signing/index.d.ts +5 -5
- package/dist/signing/payloadHash.cjs +1 -1
- package/dist/signing/payloadHash.d.cts +1 -1
- package/dist/signing/payloadHash.d.ts +1 -1
- package/dist/signing/payloadHash.js +1 -1
- package/dist/signing/types.d.cts +1 -1
- package/dist/signing/types.d.ts +1 -1
- package/dist/types/MobileServerFailureError.d.cts +1 -1
- package/dist/types/MobileServerFailureError.d.ts +1 -1
- package/dist/types/MobileUnsupportedFeedItemError.cjs +19 -0
- package/dist/types/MobileUnsupportedFeedItemError.cjs.map +1 -0
- package/dist/types/MobileUnsupportedFeedItemError.d.cts +2 -0
- package/dist/types/MobileUnsupportedFeedItemError.d.ts +2 -0
- package/dist/types/MobileUnsupportedFeedItemError.js +18 -0
- package/dist/types/MobileUnsupportedFeedItemError.js.map +1 -0
- package/dist/types/MobileUnsupportedNotificationRouteError.cjs +19 -0
- package/dist/types/MobileUnsupportedNotificationRouteError.cjs.map +1 -0
- package/dist/types/MobileUnsupportedNotificationRouteError.d.cts +2 -0
- package/dist/types/MobileUnsupportedNotificationRouteError.d.ts +2 -0
- package/dist/types/MobileUnsupportedNotificationRouteError.js +18 -0
- package/dist/types/MobileUnsupportedNotificationRouteError.js.map +1 -0
- package/dist/types/clientTypes.d.cts +2 -2
- package/dist/types/clientTypes.d.ts +2 -2
- package/dist/types/index.cjs +6 -0
- package/dist/types/index.d.cts +9 -9
- package/dist/types/index.d.ts +9 -9
- package/dist/types/index.js +4 -2
- package/dist/types/mobileErrorCodes.cjs +39 -1
- package/dist/types/mobileErrorCodes.cjs.map +1 -1
- package/dist/types/mobileErrorCodes.d.cts +1 -1
- package/dist/types/mobileErrorCodes.d.ts +1 -1
- package/dist/types/mobileErrorCodes.js +39 -1
- package/dist/types/mobileErrorCodes.js.map +1 -1
- package/dist/types/serverBaseTypes.d.cts +1 -1
- package/dist/types/serverBaseTypes.d.ts +1 -1
- package/dist/types/serverExecuteTypes.d.cts +2 -2
- package/dist/types/serverExecuteTypes.d.ts +2 -2
- package/dist/types/serverModelTypes.cjs +15 -0
- package/dist/types/serverModelTypes.cjs.map +1 -1
- package/dist/types/serverModelTypes.d.cts +2 -2
- package/dist/types/serverModelTypes.d.ts +2 -2
- package/dist/types/serverModelTypes.js +14 -1
- package/dist/types/serverModelTypes.js.map +1 -1
- package/dist/types/serverQueryTypes.d.cts +2 -2
- package/dist/types/serverQueryTypes.d.ts +2 -2
- package/dist/types/serverRequestTypes.d.cts +2 -2
- package/dist/types/serverRequestTypes.d.ts +2 -2
- package/dist/types-C9YE4EIt.d.cts +794 -0
- package/dist/types-C9YE4EIt.d.cts.map +1 -0
- package/dist/types-Cwy1y_9x.d.ts +794 -0
- package/dist/types-Cwy1y_9x.d.ts.map +1 -0
- package/dist/utils/buildMobileFeedImageMultipart.cjs +31 -0
- package/dist/utils/buildMobileFeedImageMultipart.cjs.map +1 -0
- package/dist/utils/buildMobileFeedImageMultipart.d.cts +15 -0
- package/dist/utils/buildMobileFeedImageMultipart.d.cts.map +1 -0
- package/dist/utils/buildMobileFeedImageMultipart.d.ts +15 -0
- package/dist/utils/buildMobileFeedImageMultipart.d.ts.map +1 -0
- package/dist/utils/buildMobileFeedImageMultipart.js +30 -0
- package/dist/utils/buildMobileFeedImageMultipart.js.map +1 -0
- package/dist/utils/feed.cjs +3 -0
- package/dist/utils/feed.cjs.map +1 -1
- package/dist/utils/feed.d.cts +2 -2
- package/dist/utils/feed.d.ts +2 -2
- package/dist/utils/feed.js +3 -1
- package/dist/utils/feed.js.map +1 -1
- package/dist/utils/index.cjs +2 -1
- package/dist/utils/index.d.cts +3 -3
- package/dist/utils/index.d.ts +3 -3
- package/dist/utils/index.js +2 -2
- package/dist/utils/serverResponseGuards.d.cts +1 -1
- package/dist/utils/serverResponseGuards.d.ts +1 -1
- package/package.json +3 -3
- package/src/MobileClient.ts +789 -7
- package/src/dataMappers.test.ts +848 -0
- package/src/dataMappers.ts +924 -17
- package/src/feedImages.test.ts +309 -0
- package/src/notifications.test.ts +950 -0
- package/src/signing/canonicalize.ts +119 -0
- package/src/signing/eip712MethodByType.ts +15 -0
- package/src/signing/signing.test.ts +362 -0
- package/src/signing/types.ts +108 -13
- package/src/socialFeed.test.ts +38 -2
- package/src/types/MobileUnsupportedFeedItemError.ts +18 -0
- package/src/types/MobileUnsupportedNotificationRouteError.ts +16 -0
- package/src/types/clientTypes.ts +1012 -34
- package/src/types/index.ts +2 -0
- package/src/types/mobileErrorCodes.ts +38 -0
- package/src/types/serverExecuteTypes.ts +112 -3
- package/src/types/serverModelTypes.ts +581 -28
- package/src/types/serverQueryTypes.ts +212 -5
- package/src/types/serverRequestTypes.ts +213 -13
- package/src/utils/buildMobileFeedImageMultipart.test.ts +45 -0
- package/src/utils/buildMobileFeedImageMultipart.ts +36 -0
- package/src/utils/feed.ts +3 -0
- package/dist/MobileClient-aDxiM_Kf.cjs +0 -562
- package/dist/MobileClient-aDxiM_Kf.cjs.map +0 -1
- package/dist/MobileServerFailureError-Bpa_WA9f.d.cts.map +0 -1
- package/dist/MobileServerFailureError-Dd3c6P_Z.d.ts.map +0 -1
- package/dist/canonicalize-BBYGh17w.d.ts.map +0 -1
- package/dist/canonicalize-BF_SiNvO.d.cts.map +0 -1
- package/dist/clientTypes-BWFKo9oE.d.cts +0 -844
- package/dist/clientTypes-BWFKo9oE.d.cts.map +0 -1
- package/dist/clientTypes-DCTiUV0H.d.ts +0 -844
- package/dist/clientTypes-DCTiUV0H.d.ts.map +0 -1
- package/dist/eip712MethodByType-BSx11xG-.d.cts.map +0 -1
- package/dist/eip712MethodByType-DkiAjCLs.d.ts.map +0 -1
- package/dist/feed-DTJlsg8W.d.cts.map +0 -1
- package/dist/feed-DTJlsg8W.d.ts.map +0 -1
- package/dist/mobileErrorCodes-3LtreeZM.d.cts.map +0 -1
- package/dist/mobileErrorCodes-3LtreeZM.d.ts.map +0 -1
- package/dist/payloadHash-BOWGjqdb.d.cts.map +0 -1
- package/dist/payloadHash-Bzf4CtjV.d.ts.map +0 -1
- package/dist/serverBaseTypes-DWf3iGWy.d.ts +0 -25
- package/dist/serverBaseTypes-DWf3iGWy.d.ts.map +0 -1
- package/dist/serverBaseTypes-KREDe2M9.d.cts +0 -25
- package/dist/serverBaseTypes-KREDe2M9.d.cts.map +0 -1
- package/dist/serverExecuteTypes-DVRa6ifu.d.cts +0 -89
- package/dist/serverExecuteTypes-DVRa6ifu.d.cts.map +0 -1
- package/dist/serverExecuteTypes-DlYZCp1f.d.ts +0 -89
- package/dist/serverExecuteTypes-DlYZCp1f.d.ts.map +0 -1
- package/dist/serverModelTypes-DAqEyYtB.d.cts +0 -508
- package/dist/serverModelTypes-DAqEyYtB.d.cts.map +0 -1
- package/dist/serverModelTypes-DAqEyYtB.d.ts +0 -508
- package/dist/serverModelTypes-DAqEyYtB.d.ts.map +0 -1
- package/dist/serverQueryTypes-BFdwq0Z2.d.ts +0 -171
- package/dist/serverQueryTypes-BFdwq0Z2.d.ts.map +0 -1
- package/dist/serverQueryTypes-DNdMpmDr.d.cts +0 -171
- package/dist/serverQueryTypes-DNdMpmDr.d.cts.map +0 -1
- package/dist/serverRequestTypes-BNA7FCY6.d.ts +0 -200
- package/dist/serverRequestTypes-BNA7FCY6.d.ts.map +0 -1
- package/dist/serverRequestTypes-CxDRFKfv.d.cts +0 -200
- package/dist/serverRequestTypes-CxDRFKfv.d.cts.map +0 -1
- package/dist/types-BCr2G5gS.d.cts +0 -84
- package/dist/types-BCr2G5gS.d.cts.map +0 -1
- package/dist/types-C18k-9Vy.d.ts +0 -84
- package/dist/types-C18k-9Vy.d.ts.map +0 -1
|
@@ -1,844 +0,0 @@
|
|
|
1
|
-
import { $ as MobileSocialFeedTradeSizeChangeAction, B as MobileSocialFeedCohortStatus, G as MobileSocialFeedPnlMode, H as MobileSocialFeedLeverage, J as MobileSocialFeedPositionState, K as MobileSocialFeedPnlQuality, Q as MobileSocialFeedTradeCardAction, U as MobileSocialFeedMarketCategory, V as MobileSocialFeedHistoryQuality, W as MobileSocialFeedPnlBasis, X as MobileSocialFeedSourceCategory, Y as MobileSocialFeedReadSessionMode, a as MobileFeedTradePosition, c as MobileNotificationCategory, et as MobileSocialFeedTraderBadgeCode, i as MobileFeedMarginMode, l as MobileNotificationPlatform, nt as MobileSocialFeedType, o as MobileFeedTradePositionDirection, q as MobileSocialFeedPositionDisplayBasis, rt as MobileSocialFeedUnavailableTarget, tt as MobileSocialFeedTraderDataStatus } from "./serverModelTypes-DAqEyYtB.js";
|
|
2
|
-
import { SignatureParams, Subaccount } from "@nadohq/shared";
|
|
3
|
-
import { Hex } from "viem";
|
|
4
|
-
import BigNumber from "bignumber.js";
|
|
5
|
-
|
|
6
|
-
//#region src/types/clientTypes.d.ts
|
|
7
|
-
/**
|
|
8
|
-
* Server-owned preset presented in catalogue order.
|
|
9
|
-
*/
|
|
10
|
-
interface MobileAvatarPreset {
|
|
11
|
-
/** Stable preset ID used by setAvatar. */
|
|
12
|
-
id: string;
|
|
13
|
-
/** Public image URL. Fall back to a generated icon if the image fails to load, e.g. after retirement. */
|
|
14
|
-
avatarUrl: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* A preset or staged upload to publish. Pass null to clear an avatar.
|
|
18
|
-
*/
|
|
19
|
-
type MobileAvatarSelection = {
|
|
20
|
-
/** Shared catalogue selection. */type: 'preset'; /** Stable catalogue ID. */
|
|
21
|
-
id: string;
|
|
22
|
-
} | {
|
|
23
|
-
/** An uploaded image awaiting publication. */type: 'upload'; /** Key returned by createAvatarUpload. */
|
|
24
|
-
uploadKey: string;
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Upload a square JPEG or PNG (up to 4096 × 4096 pixels and `MOBILE_AVATAR_MAX_UPLOAD_BYTES` bytes)
|
|
28
|
-
* using PUT, then publish uploadKey through setAvatar. Publication validates the image; a successful PUT
|
|
29
|
-
* alone does not mean it is accepted.
|
|
30
|
-
*/
|
|
31
|
-
interface MobileAvatarUpload {
|
|
32
|
-
/** Staging key, bound to the requesting subaccount. */
|
|
33
|
-
uploadKey: string;
|
|
34
|
-
/** Short-lived signed PUT URL. */
|
|
35
|
-
uploadUrl: string;
|
|
36
|
-
/** Send unchanged, even for PNG: the signed Content-Type is image/jpeg. */
|
|
37
|
-
headers: Record<string, string>;
|
|
38
|
-
/** Upload URL lifetime in seconds from issuance, not from when the response is received. */
|
|
39
|
-
expiresInSeconds: number;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* A subaccount's public profile, as returned by an unsigned profile lookup. Private Mode hides the account's
|
|
43
|
-
* activity, not its profile, so `privateMode` is exposed here too. A subaccount with no identity row still
|
|
44
|
-
* yields a profile, with `null` names and `privateMode: false`.
|
|
45
|
-
*
|
|
46
|
-
* The last three fields are `undefined` unless the matching {@link MobileProfilesInclude} asked for them —
|
|
47
|
-
* absent means "not requested" rather than "none".
|
|
48
|
-
*/
|
|
49
|
-
interface MobilePublicProfile extends MobileIdentitySummary {
|
|
50
|
-
/** Public biography, or null when unset. */
|
|
51
|
-
bio: string | null;
|
|
52
|
-
privateMode: boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Exact count at query time rather than a cached counter, including unnamed and private accounts — Private
|
|
55
|
-
* Mode hides activity, not relationships. Requires the `followCounts` include.
|
|
56
|
-
*/
|
|
57
|
-
followerCount?: number;
|
|
58
|
-
followingCount?: number;
|
|
59
|
-
/** Requires the `followSummary` include, and is relative to that include's `viewAs`. */
|
|
60
|
-
followSummary?: MobileFollowSummary;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* The identity fields the backend attaches to a subaccount wherever it surfaces one alongside other data.
|
|
64
|
-
* Resolved at read time, so a rename shows up on the next read without any change to the surrounding record.
|
|
65
|
-
*/
|
|
66
|
-
interface MobileIdentitySummary {
|
|
67
|
-
subaccount: Hex;
|
|
68
|
-
/** Canonical, lowercased handle; when null, render a local fallback label from `subaccount`. */
|
|
69
|
-
username: string | null;
|
|
70
|
-
/** User-facing name as claimed; when null, render a local fallback label from `subaccount`. */
|
|
71
|
-
displayName: string | null;
|
|
72
|
-
/** Published avatar URL. Use a generated icon when null or when the image fails to load. */
|
|
73
|
-
avatarUrl: string | null;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* A viewer's relationship with one Profile, plus the Followed By preview: accounts the viewer follows that
|
|
77
|
-
* also follow that Profile. Every preview entry is therefore already familiar to the viewer, which is why it
|
|
78
|
-
* carries no `isFollowing` of its own.
|
|
79
|
-
*/
|
|
80
|
-
interface MobileFollowSummary {
|
|
81
|
-
/** The direct `viewer -> viewed Profile` relationship. */
|
|
82
|
-
isFollowing: boolean;
|
|
83
|
-
/** Exact size of the two-edge intersection, independent of how many previews came back. */
|
|
84
|
-
followedByCount: number;
|
|
85
|
-
/**
|
|
86
|
-
* Newest `preview -> viewed Profile` relationship first, with a bytes32 tie-break. Capped at
|
|
87
|
-
* `MOBILE_FOLLOWED_BY_PREVIEW_LIMIT` (2) by the backend and not client-configurable.
|
|
88
|
-
*/
|
|
89
|
-
followedBy: MobileIdentitySummary[];
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* One row of a Followers or Following page.
|
|
93
|
-
*/
|
|
94
|
-
interface MobileFollowListAccount {
|
|
95
|
-
identity: MobileIdentitySummary;
|
|
96
|
-
/**
|
|
97
|
-
* Whether the `viewAs` Viewer follows this account — not the listed relationship that put it in the page.
|
|
98
|
-
* The Viewer can appear in another Profile's list, and does not follow themself, so their own row is
|
|
99
|
-
* `false`. `undefined` when the request named no `viewAs`, which is a missing perspective rather than a
|
|
100
|
-
* known "not following".
|
|
101
|
-
*/
|
|
102
|
-
isFollowing?: boolean;
|
|
103
|
-
/** This account's own follower count. */
|
|
104
|
-
followerCount: number;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* A page of Followers or Following. Pagination is live rather than snapshot: a Follow or Unfollow between
|
|
108
|
-
* pages can move an account, so an account can appear twice or not at all across one session. Deduplicate by
|
|
109
|
-
* {@link MobileIdentitySummary.subaccount} and restart from `cursor: undefined` on refresh.
|
|
110
|
-
*/
|
|
111
|
-
interface MobileFollowListPage {
|
|
112
|
-
accounts: MobileFollowListAccount[];
|
|
113
|
-
/** `null` means the list is complete. */
|
|
114
|
-
nextCursor: string | null;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* A page of profiles whose username starts with the searched prefix. Pagination is live rather than snapshot:
|
|
118
|
-
* a claim or rename between pages can surface a profile twice or skip it, so deduplicate by
|
|
119
|
-
* {@link MobilePublicProfile.subaccount} and restart from `cursor: undefined` on refresh.
|
|
120
|
-
*/
|
|
121
|
-
interface MobileProfileSearchPage {
|
|
122
|
-
/** Matches in ascending bytewise username order, with an exact match ahead of longer ones. */
|
|
123
|
-
profiles: MobilePublicProfile[];
|
|
124
|
-
/** `null` means there are no further matches. */
|
|
125
|
-
nextCursor: string | null;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Post-commit state of a follow or unfollow. The mutation and its count share one database transaction, so
|
|
129
|
-
* these values are authoritative — apply them rather than re-reading.
|
|
130
|
-
*/
|
|
131
|
-
interface MobileFollowMutationResult {
|
|
132
|
-
isFollowing: boolean;
|
|
133
|
-
/** The *target's* follower count after the mutation, not the sender's. */
|
|
134
|
-
followerCount: number;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Post-commit state of one target in a batch follow or unfollow. The whole batch commits in one database
|
|
138
|
-
* transaction, so these values are authoritative — apply them rather than re-reading.
|
|
139
|
-
*/
|
|
140
|
-
interface MobileFollowBatchResultItem {
|
|
141
|
-
/** The requested target, as lowercase hex. */
|
|
142
|
-
subaccount: Hex;
|
|
143
|
-
isFollowing: boolean;
|
|
144
|
-
/** The *target's* follower count after the batch, not the sender's. */
|
|
145
|
-
followerCount: number;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Result of a username availability check.
|
|
149
|
-
*/
|
|
150
|
-
interface MobileUsernameAvailability {
|
|
151
|
-
username: string;
|
|
152
|
-
available: boolean;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Margin of a feed trade. Branch on `mode` — do not infer isolated state from leverage presence:
|
|
156
|
-
* `estimatedLeverage` (a rounded whole-number estimate, not exact submitted leverage) is `undefined` on
|
|
157
|
-
* `cross`, and also `undefined` inside `isolated` when no estimate is available.
|
|
158
|
-
*/
|
|
159
|
-
interface MobileFeedMargin {
|
|
160
|
-
mode: MobileFeedMarginMode;
|
|
161
|
-
estimatedLeverage?: number;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* A single feed trade: one row per order digest, enriched with the trader's current identity at read time
|
|
165
|
-
* (a rename can change an already-fetched trade on the next read). Amounts are display-oriented human-unit
|
|
166
|
-
* numbers — do not use them for accounting, order construction, or exact threshold decisions.
|
|
167
|
-
*/
|
|
168
|
-
interface MobileFeedTrade extends MobileIdentitySummary {
|
|
169
|
-
/** Order digest this trade is keyed by; the stable id for reconciling live pagination. */
|
|
170
|
-
orderDigest: Hex;
|
|
171
|
-
productId: number;
|
|
172
|
-
/** Executed quantity in human units. */
|
|
173
|
-
quantity: number;
|
|
174
|
-
/** Trade notional in whole-dollar human units. */
|
|
175
|
-
notional: number;
|
|
176
|
-
/** Average execution price in human units. */
|
|
177
|
-
averagePrice: number;
|
|
178
|
-
margin: MobileFeedMargin;
|
|
179
|
-
/** Resulting position change. `position.direction` is NOT the execution buy/sell side. */
|
|
180
|
-
position: MobileFeedTradePosition;
|
|
181
|
-
/** Realized PnL of the trade in human units; can be negative. */
|
|
182
|
-
realizedPnl: number;
|
|
183
|
-
/** Fill time as a Unix timestamp (milliseconds). */
|
|
184
|
-
filledAt: number;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* A page of feed trades. `nextCursor` is `null` when there was no additional candidate at query time.
|
|
188
|
-
* Pagination is live, not snapshot, so a later fill can move a trade between pages — deduplicate by
|
|
189
|
-
* {@link MobileFeedTrade.orderDigest} and treat the merged list as a short-lived view, not an authoritative
|
|
190
|
-
* cache (removals from Private Mode or blacklists are not signaled).
|
|
191
|
-
*/
|
|
192
|
-
interface MobileFeedPage {
|
|
193
|
-
trades: MobileFeedTrade[];
|
|
194
|
-
nextCursor: string | null;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Scope limiting a notification category preference. Scopes are part of the wire format but rejected by the
|
|
198
|
-
* backend for the MVP — `scopes` must be empty.
|
|
199
|
-
*/
|
|
200
|
-
type MobileNotificationPreferenceScope = {
|
|
201
|
-
type: 'subaccount';
|
|
202
|
-
subaccount: Hex;
|
|
203
|
-
} | {
|
|
204
|
-
type: 'product';
|
|
205
|
-
productId: number;
|
|
206
|
-
};
|
|
207
|
-
/**
|
|
208
|
-
* A per-category push notification preference.
|
|
209
|
-
*/
|
|
210
|
-
interface MobileNotificationCategoryPreference {
|
|
211
|
-
category: MobileNotificationCategory;
|
|
212
|
-
enabled: boolean;
|
|
213
|
-
scopes: MobileNotificationPreferenceScope[];
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* A wallet's push notification preferences. The backend requires exactly one entry per known category and
|
|
217
|
-
* `schemaVersion` of 1.
|
|
218
|
-
*/
|
|
219
|
-
interface MobileNotificationPreferences {
|
|
220
|
-
/** Only `1` is accepted by the backend for the MVP. */
|
|
221
|
-
schemaVersion: 1;
|
|
222
|
-
categories: MobileNotificationCategoryPreference[];
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* The wallet an Expo push token is currently registered to, alongside the redacted metadata of the device
|
|
226
|
-
* that registered it.
|
|
227
|
-
*/
|
|
228
|
-
interface MobileRegisteredWallet {
|
|
229
|
-
/** Address of the wallet that owns the token's active registration. */
|
|
230
|
-
wallet: Hex;
|
|
231
|
-
/** Push platform the device registered under. */
|
|
232
|
-
platform: MobileNotificationPlatform;
|
|
233
|
-
/** BCP-47 locale tag reported at registration, or `null` if none was provided. */
|
|
234
|
-
locale: string | null;
|
|
235
|
-
/** App version string reported at registration, or `null` if none was provided. */
|
|
236
|
-
appVersion: string | null;
|
|
237
|
-
/**
|
|
238
|
-
* First 8 hex chars of `keccak256` over the bracket-stripped Expo token — a stable, non-reversible
|
|
239
|
-
* identifier for the device's push token. The raw token is never returned by the backend.
|
|
240
|
-
*/
|
|
241
|
-
tokenFingerprintPrefix: string;
|
|
242
|
-
/**
|
|
243
|
-
* Unix timestamp (milliseconds) of the device's last registration refresh.
|
|
244
|
-
*/
|
|
245
|
-
lastSeenAt: number;
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Common params for signed requests that authenticate as a given subaccount.
|
|
249
|
-
*/
|
|
250
|
-
interface MobileSignedRequestParams extends Subaccount, SignatureParams {}
|
|
251
|
-
/**
|
|
252
|
-
* Common params for the unsigned notification requests, which name their target with an Expo push token
|
|
253
|
-
* instead of a subaccount and signature — the counterpart to {@link MobileSignedRequestParams}. The backend
|
|
254
|
-
* resolves the token's owning wallet and reads or mutates that wallet's state.
|
|
255
|
-
*/
|
|
256
|
-
interface MobileWithExpoTokenParams {
|
|
257
|
-
/** Expo push token, e.g. `ExponentPushToken[...]`. */
|
|
258
|
-
expoToken: string;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Params for {@link MobileClient.getUsernameAvailability}.
|
|
262
|
-
*/
|
|
263
|
-
interface GetMobileUsernameAvailabilityParams {
|
|
264
|
-
displayName: string;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Opt-in extras for a profiles lookup. Each one adds fields that are otherwise absent from every returned
|
|
268
|
-
* profile, and costs extra rate-limit weight per profile, so ask only for what the UI shows.
|
|
269
|
-
*/
|
|
270
|
-
interface MobileProfilesInclude {
|
|
271
|
-
/** Populates `followerCount` and `followingCount`. */
|
|
272
|
-
followCounts?: boolean;
|
|
273
|
-
/**
|
|
274
|
-
* Populates `followSummary`, relative to `viewAs`. This viewer identity is an unauthenticated claim — the
|
|
275
|
-
* route takes no signature — so do not treat the result as proof of who is asking.
|
|
276
|
-
*/
|
|
277
|
-
followSummary?: {
|
|
278
|
-
viewAs: Subaccount;
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Params for {@link MobileClient.getProfiles}.
|
|
283
|
-
*/
|
|
284
|
-
interface GetMobileProfilesParams {
|
|
285
|
-
/**
|
|
286
|
-
* 1–`MOBILE_PROFILES_MAX_BATCH_SIZE` (25) distinct subaccounts. Duplicates and an empty list are rejected
|
|
287
|
-
* rather than deduplicated, and results come back in this exact order.
|
|
288
|
-
*/
|
|
289
|
-
subaccounts: Subaccount[];
|
|
290
|
-
include?: MobileProfilesInclude;
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Params for {@link MobileClient.searchProfiles}.
|
|
294
|
-
*/
|
|
295
|
-
interface SearchMobileProfilesParams {
|
|
296
|
-
/**
|
|
297
|
-
* Username prefix to match, 1-20 ASCII characters matching `MOBILE_PROFILE_SEARCH_QUERY_PATTERN`: a letter
|
|
298
|
-
* or digit first, then letters, digits, `_` or `.`. Letters match case-insensitively; whitespace is not
|
|
299
|
-
* trimmed, so normalize the input before sending it.
|
|
300
|
-
*/
|
|
301
|
-
query: string;
|
|
302
|
-
/** Same opt-in extras as {@link GetMobileProfilesParams.include}, applied to every match on the page. */
|
|
303
|
-
include?: MobileProfilesInclude;
|
|
304
|
-
/**
|
|
305
|
-
* Opaque cursor from the previous page's {@link MobileProfileSearchPage.nextCursor}. Omit for the first
|
|
306
|
-
* page. A cursor is bound to its normalized query but not to `include` or `limit`, so an enriched page
|
|
307
|
-
* can continue an unenriched search; one issued for another query fails with
|
|
308
|
-
* `INVALID_PROFILE_SEARCH_CURSOR`.
|
|
309
|
-
*/
|
|
310
|
-
cursor?: string;
|
|
311
|
-
/**
|
|
312
|
-
* Page size, 1-`MOBILE_PROFILE_SEARCH_MAX_PAGE_SIZE` (50), or
|
|
313
|
-
* 1-`MOBILE_PROFILE_SEARCH_MAX_ENRICHED_PAGE_SIZE` (25) when `include` asks for follow data; the backend
|
|
314
|
-
* defaults to 25 when omitted.
|
|
315
|
-
*/
|
|
316
|
-
limit?: number;
|
|
317
|
-
}
|
|
318
|
-
/**
|
|
319
|
-
* Params for {@link MobileClient.getFeed}.
|
|
320
|
-
*/
|
|
321
|
-
interface GetMobileFeedParams {
|
|
322
|
-
/**
|
|
323
|
-
* Minimum notional filter as a whole-dollar safe integer, at least `MOBILE_FEED_MIN_NOTIONAL_FLOOR`
|
|
324
|
-
* ($1,000). Omit for the unfiltered feed.
|
|
325
|
-
*/
|
|
326
|
-
minimumNotional?: number;
|
|
327
|
-
/** Page size, 1–`MOBILE_FEED_MAX_PAGE_SIZE` (50); the backend defaults to 50 when omitted. */
|
|
328
|
-
limit?: number;
|
|
329
|
-
/**
|
|
330
|
-
* Opaque keyset cursor from a prior page's {@link MobileFeedPage.nextCursor}. Send it back unchanged with
|
|
331
|
-
* the exact same `minimumNotional` it was issued for.
|
|
332
|
-
*/
|
|
333
|
-
cursor?: string;
|
|
334
|
-
}
|
|
335
|
-
/**
|
|
336
|
-
* Params for {@link MobileClient.setBio}.
|
|
337
|
-
*/
|
|
338
|
-
interface MobileSetBioParams extends MobileSignedRequestParams {
|
|
339
|
-
/** Up to `MOBILE_BIO_MAX_LENGTH` (150) Unicode code points without null characters. Whitespace-only text clears the bio. */
|
|
340
|
-
bio: string;
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Params for {@link MobileClient.setAvatar}.
|
|
344
|
-
*/
|
|
345
|
-
interface MobileSetAvatarParams extends MobileSignedRequestParams {
|
|
346
|
-
/** Null clears the saved image. */
|
|
347
|
-
avatar: MobileAvatarSelection | null;
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Params for {@link MobileClient.createAvatarUpload}.
|
|
351
|
-
*/
|
|
352
|
-
interface MobileCreateAvatarUploadParams extends MobileSignedRequestParams {
|
|
353
|
-
/** Image size as an integer number of bytes, from 1 to `MOBILE_AVATAR_MAX_UPLOAD_BYTES` (5 MiB). */
|
|
354
|
-
contentLength: number;
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Params for {@link MobileClient.setUsername}.
|
|
358
|
-
*/
|
|
359
|
-
interface MobileSetUsernameParams extends MobileSignedRequestParams {
|
|
360
|
-
/** User-facing name to claim, preserving casing. Must match `MOBILE_DISPLAY_NAME_PATTERN`. */
|
|
361
|
-
displayName: string;
|
|
362
|
-
}
|
|
363
|
-
/**
|
|
364
|
-
* Params for {@link MobileClient.setPrivateMode}.
|
|
365
|
-
*/
|
|
366
|
-
interface MobileSetPrivateModeParams extends MobileSignedRequestParams {
|
|
367
|
-
privateMode: boolean;
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Params for {@link MobileClient.setFollow}. The subaccount carried by {@link MobileSignedRequestParams} is
|
|
371
|
-
* the signing Follower; `target` is the Profile on the other end of the relationship.
|
|
372
|
-
*/
|
|
373
|
-
interface MobileSetFollowParams extends MobileSignedRequestParams {
|
|
374
|
-
/** The Profile being followed or unfollowed. Must not be the signing subaccount. */
|
|
375
|
-
target: Subaccount;
|
|
376
|
-
/** `true` follows the target, `false` unfollows it. Both directions are idempotent. */
|
|
377
|
-
isFollowing: boolean;
|
|
378
|
-
}
|
|
379
|
-
/**
|
|
380
|
-
* Params for {@link MobileClient.setFollowBatch}. The subaccount carried by {@link MobileSignedRequestParams}
|
|
381
|
-
* is the signing Follower; `targets` are the Profiles on the other end of each relationship.
|
|
382
|
-
*/
|
|
383
|
-
interface MobileSetFollowBatchParams extends MobileSignedRequestParams {
|
|
384
|
-
/**
|
|
385
|
-
* 1 to `MOBILE_FOLLOW_BATCH_MAX_SIZE` (25) distinct Profiles, none of them the signing subaccount or an
|
|
386
|
-
* isolated subaccount. The results keep this order.
|
|
387
|
-
*/
|
|
388
|
-
targets: Subaccount[];
|
|
389
|
-
/** `true` follows every target, `false` unfollows every target. Both directions are idempotent. */
|
|
390
|
-
isFollowing: boolean;
|
|
391
|
-
}
|
|
392
|
-
/**
|
|
393
|
-
* Common params for a Followers or Following page.
|
|
394
|
-
*/
|
|
395
|
-
interface GetMobileFollowListParams {
|
|
396
|
-
/** The Profile whose Followers or Following are being listed. */
|
|
397
|
-
target: Subaccount;
|
|
398
|
-
/**
|
|
399
|
-
* Viewer to resolve the page against, which turns on familiar-first ordering and populates every row's
|
|
400
|
-
* {@link MobileFollowListAccount.isFollowing}. Omit it for a plain recency-ordered list with no
|
|
401
|
-
* `isFollowing` at all. The route is unsigned, so this is an unauthenticated claim rather than proof of
|
|
402
|
-
* who is asking.
|
|
403
|
-
*/
|
|
404
|
-
viewAs?: Subaccount;
|
|
405
|
-
/**
|
|
406
|
-
* Opaque cursor from the previous page's {@link MobileFollowListPage.nextCursor}. Omit for the first page.
|
|
407
|
-
* A cursor is bound to its `viewAs` (including its absence), Profile, and list direction — reusing it
|
|
408
|
-
* elsewhere fails with `INVALID_FOLLOW_CURSOR`.
|
|
409
|
-
*/
|
|
410
|
-
cursor?: string;
|
|
411
|
-
/**
|
|
412
|
-
* Page size, 1–`MOBILE_FOLLOW_LIST_MAX_PAGE_SIZE` (50); the backend defaults to
|
|
413
|
-
* `MOBILE_FOLLOW_LIST_DEFAULT_PAGE_SIZE` (25) when omitted.
|
|
414
|
-
*/
|
|
415
|
-
limit?: number;
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Params for {@link MobileClient.getFollowers}.
|
|
419
|
-
*/
|
|
420
|
-
type GetMobileFollowersParams = GetMobileFollowListParams;
|
|
421
|
-
/**
|
|
422
|
-
* Params for {@link MobileClient.getFollowing}.
|
|
423
|
-
*/
|
|
424
|
-
type GetMobileFollowingParams = GetMobileFollowListParams;
|
|
425
|
-
/**
|
|
426
|
-
* Params for {@link MobileClient.registerExpoToken}.
|
|
427
|
-
*/
|
|
428
|
-
interface MobileRegisterExpoTokenParams extends MobileSignedRequestParams {
|
|
429
|
-
/**
|
|
430
|
-
* Expo push token, e.g. `ExponentPushToken[...]`.
|
|
431
|
-
*/
|
|
432
|
-
expoToken: string;
|
|
433
|
-
platform: MobileNotificationPlatform;
|
|
434
|
-
/**
|
|
435
|
-
* BCP-47 locale tag, max 35 chars.
|
|
436
|
-
*/
|
|
437
|
-
locale?: string;
|
|
438
|
-
/**
|
|
439
|
-
* App version string, max 64 chars.
|
|
440
|
-
*/
|
|
441
|
-
appVersion?: string;
|
|
442
|
-
}
|
|
443
|
-
/**
|
|
444
|
-
* Params for {@link MobileClient.unregisterExpoToken}.
|
|
445
|
-
*/
|
|
446
|
-
type MobileUnregisterExpoTokenParams = MobileWithExpoTokenParams;
|
|
447
|
-
/**
|
|
448
|
-
* Params for {@link MobileClient.updateNotificationPreferences}.
|
|
449
|
-
*/
|
|
450
|
-
interface MobileUpdateNotificationPreferencesParams extends MobileWithExpoTokenParams {
|
|
451
|
-
preferences: MobileNotificationPreferences;
|
|
452
|
-
}
|
|
453
|
-
/**
|
|
454
|
-
* Params for {@link MobileClient.getNotificationPreferences}.
|
|
455
|
-
*/
|
|
456
|
-
type GetMobileNotificationPreferencesParams = MobileWithExpoTokenParams;
|
|
457
|
-
/**
|
|
458
|
-
* Params for {@link MobileClient.getRegisteredWallet}.
|
|
459
|
-
*/
|
|
460
|
-
type GetMobileRegisteredWalletParams = MobileWithExpoTokenParams;
|
|
461
|
-
/** Official account-level 30-day PnL badge, independent of position PnL. */
|
|
462
|
-
interface MobileSocialFeedTraderBadge {
|
|
463
|
-
/** Qualification tier. */
|
|
464
|
-
code: MobileSocialFeedTraderBadgeCode;
|
|
465
|
-
/** Signed integer in x18 units. */
|
|
466
|
-
pnl: BigNumber;
|
|
467
|
-
/** Stable compatibility identifier for the official Portfolio month result. */
|
|
468
|
-
metricKey: 'account_pnl_30d_equity';
|
|
469
|
-
/** PnL window label. */
|
|
470
|
-
window: '30d';
|
|
471
|
-
/** Official source timestamp in Unix milliseconds. */
|
|
472
|
-
sourceAsOfMs: number;
|
|
473
|
-
/** Fetch completion timestamp in Unix milliseconds. */
|
|
474
|
-
fetchedAtMs: number;
|
|
475
|
-
/** Qualification snapshot UUID. */
|
|
476
|
-
snapshotId: string;
|
|
477
|
-
}
|
|
478
|
-
/** Public author identity and the selected viewing account's follow state. */
|
|
479
|
-
interface MobileSocialFeedAuthor extends MobileIdentitySummary {
|
|
480
|
-
/** Selected viewAs account's follow state; null without a viewing account. */
|
|
481
|
-
isFollowing: boolean | null;
|
|
482
|
-
/** Null when no qualifying badge is available. */
|
|
483
|
-
traderBadge: MobileSocialFeedTraderBadge | null;
|
|
484
|
-
/** Stale means the last successful cohort is used after a refresh failure. */
|
|
485
|
-
traderDataStatus: MobileSocialFeedTraderDataStatus;
|
|
486
|
-
}
|
|
487
|
-
/** Market metadata from the service's authoritative market source. */
|
|
488
|
-
interface MobileSocialFeedMarket {
|
|
489
|
-
/** Market product ID. */
|
|
490
|
-
productId: number;
|
|
491
|
-
/** Market symbol. */
|
|
492
|
-
symbol: string;
|
|
493
|
-
/** Logo URL when available. */
|
|
494
|
-
logoUrl: string | null;
|
|
495
|
-
/** Social feed category when known. */
|
|
496
|
-
category: MobileSocialFeedMarketCategory | null;
|
|
497
|
-
/** Original market categories. */
|
|
498
|
-
sourceCategories: MobileSocialFeedSourceCategory[];
|
|
499
|
-
}
|
|
500
|
-
/** Position PnL with explicit accounting basis and data quality. */
|
|
501
|
-
interface MobileSocialFeedPnl {
|
|
502
|
-
/** Signed x18 integer; null means unknown, not zero. */
|
|
503
|
-
amount: BigNumber | null;
|
|
504
|
-
/** Open positions exclude fees/funding; closed results include them. */
|
|
505
|
-
basis: MobileSocialFeedPnlBasis;
|
|
506
|
-
/** Closed positions use frozen results. */
|
|
507
|
-
mode: MobileSocialFeedPnlMode;
|
|
508
|
-
/** Source timestamp in Unix milliseconds. */
|
|
509
|
-
asOfMs: number;
|
|
510
|
-
/** Whether accounting is complete, pending, or unavailable. */
|
|
511
|
-
quality: MobileSocialFeedPnlQuality;
|
|
512
|
-
}
|
|
513
|
-
/** Complete mutable position fields delivered together at one version. */
|
|
514
|
-
interface MobileSocialFeedPositionPatch {
|
|
515
|
-
/** Position lifecycle UUID. */
|
|
516
|
-
positionId: string;
|
|
517
|
-
/** Positive integer string; compare as integers without Number conversion. */
|
|
518
|
-
positionVersion: string;
|
|
519
|
-
/** Position state timestamp in Unix milliseconds. */
|
|
520
|
-
stateAsOfMs: number;
|
|
521
|
-
/** Remaining average entry price in decimal units, frozen on close; null if unknown. */
|
|
522
|
-
entryPrice: BigNumber | null;
|
|
523
|
-
/** Basis of the displayed size and entry price. */
|
|
524
|
-
displayBasis: MobileSocialFeedPositionDisplayBasis;
|
|
525
|
-
/** Closing snapshot reference time, or null. */
|
|
526
|
-
snapshotAtMs: number | null;
|
|
527
|
-
/** Absolute quantity in x18 units. */
|
|
528
|
-
quantity: BigNumber;
|
|
529
|
-
/** Notional value in x18 units. */
|
|
530
|
-
notional: BigNumber;
|
|
531
|
-
/** Current lifecycle state. */
|
|
532
|
-
state: MobileSocialFeedPositionState;
|
|
533
|
-
/** Completeness of the available historical facts. */
|
|
534
|
-
historyQuality: MobileSocialFeedHistoryQuality;
|
|
535
|
-
/** Margin mode. */
|
|
536
|
-
marginMode: MobileFeedMarginMode;
|
|
537
|
-
/** Current or closing leverage. */
|
|
538
|
-
leverage: MobileSocialFeedLeverage;
|
|
539
|
-
/** Leverage reference time; null when unknown or inapplicable. */
|
|
540
|
-
leverageAtMs: number | null;
|
|
541
|
-
/** Current remaining PnL or the closed lifecycle's net result. */
|
|
542
|
-
pnl: MobileSocialFeedPnl;
|
|
543
|
-
}
|
|
544
|
-
/** Position displayed inside an automatic trade card. */
|
|
545
|
-
interface MobileSocialFeedPositionCard extends MobileSocialFeedPositionPatch {
|
|
546
|
-
/** Market product ID. */
|
|
547
|
-
productId: number;
|
|
548
|
-
/** Market display metadata. */
|
|
549
|
-
market: MobileSocialFeedMarket;
|
|
550
|
-
/** Position direction. */
|
|
551
|
-
direction: MobileFeedTradePositionDirection;
|
|
552
|
-
}
|
|
553
|
-
/** Interaction counters; interaction writes are not currently available. */
|
|
554
|
-
interface MobileSocialFeedInteraction {
|
|
555
|
-
/** Number of likes. */
|
|
556
|
-
likeCount: number;
|
|
557
|
-
/** Number of comments. */
|
|
558
|
-
commentCount: number;
|
|
559
|
-
/** Number of recorded views. */
|
|
560
|
-
viewCount: number;
|
|
561
|
-
/** Null while likes are unavailable, including with a viewing account. */
|
|
562
|
-
likedByMe: boolean | null;
|
|
563
|
-
}
|
|
564
|
-
/** Capability flags for a social feed item. */
|
|
565
|
-
interface MobileSocialFeedCapabilities {
|
|
566
|
-
/** Whether liking is available. */
|
|
567
|
-
canLike: boolean;
|
|
568
|
-
/** Whether commenting is available. */
|
|
569
|
-
canComment: boolean;
|
|
570
|
-
/** Whether exposure recording is available. */
|
|
571
|
-
canRecordView: boolean;
|
|
572
|
-
}
|
|
573
|
-
/** Comment preview metadata for a social trade card. */
|
|
574
|
-
interface MobileSocialFeedCommentPreview {
|
|
575
|
-
/** Currently empty. */
|
|
576
|
-
items: never[];
|
|
577
|
-
/** Comment count. */
|
|
578
|
-
totalCount: number;
|
|
579
|
-
/** Comment cursor, if available. */
|
|
580
|
-
nextCursor: string | null;
|
|
581
|
-
}
|
|
582
|
-
/** Exposure requirements associated with a reading session. */
|
|
583
|
-
interface MobileSocialFeedViewTracking {
|
|
584
|
-
/** Required visible fraction. */
|
|
585
|
-
minVisibleRatio: number;
|
|
586
|
-
/** Required visible duration in milliseconds. */
|
|
587
|
-
minDurationMs: number;
|
|
588
|
-
}
|
|
589
|
-
/** Coverage of the candidate authors in a qualification snapshot. */
|
|
590
|
-
interface MobileSocialFeedCohortCoverage {
|
|
591
|
-
/** Coverage domain. */
|
|
592
|
-
scope: 'eligible_content_candidates';
|
|
593
|
-
/** Candidate author count. */
|
|
594
|
-
totalAuthors: number;
|
|
595
|
-
/** Authors queried for this snapshot. */
|
|
596
|
-
queriedAuthors: number;
|
|
597
|
-
/** A successful response requires complete coverage. */
|
|
598
|
-
complete: true;
|
|
599
|
-
}
|
|
600
|
-
/** Shared qualification snapshot used for Top Traders eligibility and badges. */
|
|
601
|
-
interface MobileSocialFeedCohort {
|
|
602
|
-
/** Cohort UUID. */
|
|
603
|
-
snapshotId: string;
|
|
604
|
-
/** Ready or the previous successful snapshot after a refresh failure. */
|
|
605
|
-
status: MobileSocialFeedCohortStatus;
|
|
606
|
-
/** Coverage of all eligible candidate authors. */
|
|
607
|
-
coverage: MobileSocialFeedCohortCoverage;
|
|
608
|
-
}
|
|
609
|
-
/** Metadata shared by the automatic trade cards and rows available from the social feed. */
|
|
610
|
-
interface MobileSocialFeedItemBase {
|
|
611
|
-
/** Item UUID. */
|
|
612
|
-
id: string;
|
|
613
|
-
/** Whether authored analysis exists. */
|
|
614
|
-
hasAnalysis: boolean;
|
|
615
|
-
/** Drawings are not currently available. */
|
|
616
|
-
drawing: null;
|
|
617
|
-
/** Author identity, badge, and follow perspective. */
|
|
618
|
-
author: MobileSocialFeedAuthor;
|
|
619
|
-
/** Creation time in Unix milliseconds. */
|
|
620
|
-
createdAtMs: number;
|
|
621
|
-
/** Sorting time in Unix milliseconds. */
|
|
622
|
-
displayAtMs: number;
|
|
623
|
-
/** Positive integer version string. */
|
|
624
|
-
version: string;
|
|
625
|
-
/** Market metadata. */
|
|
626
|
-
market: MobileSocialFeedMarket;
|
|
627
|
-
/** Server capability flags; currently all false. */
|
|
628
|
-
capabilities: MobileSocialFeedCapabilities;
|
|
629
|
-
}
|
|
630
|
-
/** Automatic trade card returned by the social feed. */
|
|
631
|
-
interface MobileSocialFeedTradeCard extends MobileSocialFeedItemBase {
|
|
632
|
-
/** Card discriminant. */
|
|
633
|
-
kind: 'trade_card';
|
|
634
|
-
/** Trading action. */
|
|
635
|
-
action: MobileSocialFeedTradeCardAction;
|
|
636
|
-
/** Card text, empty for automatic cards. */
|
|
637
|
-
text: string;
|
|
638
|
-
/** Automatic cards have no mentions. */
|
|
639
|
-
mentions: never[];
|
|
640
|
-
/** Current or frozen position display. */
|
|
641
|
-
position: MobileSocialFeedPositionCard;
|
|
642
|
-
/** Interaction counters. */
|
|
643
|
-
interaction: MobileSocialFeedInteraction;
|
|
644
|
-
/** Comment content is not currently available. */
|
|
645
|
-
commentPreview: MobileSocialFeedCommentPreview;
|
|
646
|
-
}
|
|
647
|
-
/** Fields shared by size-change and liquidation trade rows. */
|
|
648
|
-
interface MobileSocialFeedTradeRowBase extends MobileSocialFeedItemBase {
|
|
649
|
-
/** Row discriminant. */
|
|
650
|
-
kind: 'trade_row';
|
|
651
|
-
/** Associated lifecycle UUID. */
|
|
652
|
-
positionId: string;
|
|
653
|
-
/** Position direction. */
|
|
654
|
-
direction: MobileFeedTradePositionDirection;
|
|
655
|
-
/** Historical margin mode. */
|
|
656
|
-
marginMode: MobileFeedMarginMode;
|
|
657
|
-
/** Historical action leverage, not the position's current leverage. */
|
|
658
|
-
leverage: MobileSocialFeedLeverage;
|
|
659
|
-
/** Historical leverage reference time. */
|
|
660
|
-
leverageAtMs: number | null;
|
|
661
|
-
/** Number of aggregated trades. */
|
|
662
|
-
tradeCount: number;
|
|
663
|
-
/** Absolute traded quantity in x18 units. */
|
|
664
|
-
quantity: BigNumber;
|
|
665
|
-
/** Actual execution price in decimal units, never an Oracle substitution. */
|
|
666
|
-
averagePrice: BigNumber | null;
|
|
667
|
-
}
|
|
668
|
-
/** A size-change row or liquidation row with independently nullable financial facts. */
|
|
669
|
-
type MobileSocialFeedTradeRow = MobileSocialFeedTradeRowBase & ({
|
|
670
|
-
/** Ordinary size-change action. */action: MobileSocialFeedTradeSizeChangeAction; /** Executed notional in x18 units. */
|
|
671
|
-
notional: BigNumber;
|
|
672
|
-
} | {
|
|
673
|
-
/** Liquidation discriminant. */action: 'liquidated'; /** Quantity times event Oracle; null if that Oracle is unknown. */
|
|
674
|
-
notional: BigNumber | null; /** Entry price immediately before the event, in decimal units. */
|
|
675
|
-
entryPrice: BigNumber | null; /** Event Oracle price in decimal units, used for display and size filtering. */
|
|
676
|
-
liquidationOraclePrice: BigNumber | null; /** Actual execution price in decimal units, independent of Oracle. */
|
|
677
|
-
liquidationExecutionPrice: BigNumber | null; /** Signed action PnL excluding ordinary fees/funding, or null. */
|
|
678
|
-
realizedPnlDelta: BigNumber | null;
|
|
679
|
-
});
|
|
680
|
-
/** Automatic feed content; excludes posts, replies, drawings, and interaction writes. */
|
|
681
|
-
type MobileSocialFeedItem = MobileSocialFeedTradeCard | MobileSocialFeedTradeRow;
|
|
682
|
-
/** Fixed-duration social feed reading session. Credentials and cursors must be returned unchanged. */
|
|
683
|
-
interface MobileSocialFeedReadSession {
|
|
684
|
-
/** Session identifier. */
|
|
685
|
-
sessionId: string;
|
|
686
|
-
/** Feed or direct item session. */
|
|
687
|
-
mode: MobileSocialFeedReadSessionMode;
|
|
688
|
-
/** Fixed expiration time in Unix milliseconds; pagination does not extend it. */
|
|
689
|
-
expiresAtMs: number;
|
|
690
|
-
/** Exposure metadata only; recording is not available from the social feed. */
|
|
691
|
-
viewTracking: MobileSocialFeedViewTracking;
|
|
692
|
-
/** Initial update baseline, distinct from the page cursor. */
|
|
693
|
-
updateCursor: string | null;
|
|
694
|
-
/** Credential for this reading session. Do not log or cache publicly. */
|
|
695
|
-
viewerToken: string;
|
|
696
|
-
}
|
|
697
|
-
/** Fixed-window list response; an empty page can still have a next cursor. */
|
|
698
|
-
interface MobileSocialFeedPage {
|
|
699
|
-
/** Reading session and its browser credential. */
|
|
700
|
-
readSession: MobileSocialFeedReadSession;
|
|
701
|
-
/** Visible items in server order; deduplicate by ID without local reordering. */
|
|
702
|
-
items: MobileSocialFeedItem[];
|
|
703
|
-
/** Opaque cursor; null only when pagination is complete. */
|
|
704
|
-
nextCursor: string | null;
|
|
705
|
-
/** New-content baseline, not a pagination or update cursor. */
|
|
706
|
-
watermark: string;
|
|
707
|
-
}
|
|
708
|
-
/** Main-feed page with its ordering version. */
|
|
709
|
-
interface MobileSocialFeedRankedPage extends MobileSocialFeedPage {
|
|
710
|
-
/** Current ordering contract: chronological-v1. */
|
|
711
|
-
rankingVersion: string;
|
|
712
|
-
}
|
|
713
|
-
/** Top Traders page, with one shared qualification snapshot for eligibility and badges. */
|
|
714
|
-
interface MobileSocialFeedTopTradersPage extends MobileSocialFeedRankedPage {
|
|
715
|
-
/** Author eligibility snapshot. */
|
|
716
|
-
cohort: MobileSocialFeedCohort;
|
|
717
|
-
}
|
|
718
|
-
/** Item details with either a new item session or the reused authorized session. */
|
|
719
|
-
interface MobileSocialFeedItemResponse {
|
|
720
|
-
/** Full visible item. */
|
|
721
|
-
item: MobileSocialFeedItem;
|
|
722
|
-
/** Session authorized for subsequent updates. */
|
|
723
|
-
readSession: MobileSocialFeedReadSession;
|
|
724
|
-
}
|
|
725
|
-
/** Item delta: omitted means unchanged; explicit null clears a prior value. */
|
|
726
|
-
interface MobileSocialFeedItemPatch {
|
|
727
|
-
/** Current author identity, follow state, and qualification badge. */
|
|
728
|
-
author: MobileSocialFeedAuthor;
|
|
729
|
-
/** Target item UUID. */
|
|
730
|
-
itemId: string;
|
|
731
|
-
/** Positive integer version string. */
|
|
732
|
-
version: string;
|
|
733
|
-
/** Updated interaction counters. */
|
|
734
|
-
interaction?: MobileSocialFeedInteraction;
|
|
735
|
-
/** Updated display timestamp; does not reorder the current list. */
|
|
736
|
-
displayAtMs: number;
|
|
737
|
-
/** Updated aggregate count. */
|
|
738
|
-
tradeCount?: number;
|
|
739
|
-
/** Updated quantity in x18 units. */
|
|
740
|
-
quantity?: BigNumber;
|
|
741
|
-
/** Updated notional; liquidation Oracle may be unknown. */
|
|
742
|
-
notional?: BigNumber | null;
|
|
743
|
-
/** Updated actual execution price in decimal units. */
|
|
744
|
-
averagePrice?: BigNumber | null;
|
|
745
|
-
/** Historical liquidation entry price in decimal units. */
|
|
746
|
-
entryPrice?: BigNumber | null;
|
|
747
|
-
/** Updated liquidation Oracle price in decimal units. */
|
|
748
|
-
liquidationOraclePrice?: BigNumber | null;
|
|
749
|
-
/** Updated actual liquidation execution price in decimal units. */
|
|
750
|
-
liquidationExecutionPrice?: BigNumber | null;
|
|
751
|
-
/** Updated signed action PnL. */
|
|
752
|
-
realizedPnlDelta?: BigNumber | null;
|
|
753
|
-
/** Updated historical row leverage. */
|
|
754
|
-
leverage?: MobileSocialFeedLeverage;
|
|
755
|
-
/** Updated historical leverage reference time. */
|
|
756
|
-
leverageAtMs?: number | null;
|
|
757
|
-
}
|
|
758
|
-
/** Batched viewport updates; apply only the current viewport's latest request sequence. */
|
|
759
|
-
interface MobileSocialFeedUpdates {
|
|
760
|
-
/** Item deltas, independent of current-position patches. */
|
|
761
|
-
itemPatches: MobileSocialFeedItemPatch[];
|
|
762
|
-
/** Complete mutable position facts at one version. */
|
|
763
|
-
positionPatches: MobileSocialFeedPositionPatch[];
|
|
764
|
-
/** Previously authorized targets that can no longer be read. */
|
|
765
|
-
unavailableTargets: MobileSocialFeedUnavailableTarget[];
|
|
766
|
-
/** New-content hint; always zero for directly created item sessions. */
|
|
767
|
-
newItemsCount: number;
|
|
768
|
-
/** Baseline to use for the next update call with the same viewport. */
|
|
769
|
-
updateCursor: string;
|
|
770
|
-
/** Full snapshot of applicable mutable fields; currently always true. Apply author updates even when the item version is unchanged. */
|
|
771
|
-
reset: boolean;
|
|
772
|
-
/** Echoed viewport revision. */
|
|
773
|
-
viewportRevision: number;
|
|
774
|
-
/** Echoed request sequence. */
|
|
775
|
-
requestSeq: number;
|
|
776
|
-
}
|
|
777
|
-
/** Public browsing requires no wallet, identity registration, or one-click trading setup. */
|
|
778
|
-
interface MobileSocialFeedReadParams {
|
|
779
|
-
/**
|
|
780
|
-
* Non-isolated viewing account used for relationship state. Profile, position, and item reads also
|
|
781
|
-
* include that account's own hidden content under the account_view policy; this does not prove ownership.
|
|
782
|
-
*/
|
|
783
|
-
viewAs?: Subaccount;
|
|
784
|
-
/** Reuse the original browser credential for pagination and existing sessions. */
|
|
785
|
-
viewerToken?: string;
|
|
786
|
-
}
|
|
787
|
-
/** Filters and fixed-session pagination common to all six social feed lists. */
|
|
788
|
-
interface MobileSocialFeedListParams {
|
|
789
|
-
/** OR-ed content filters; empty or omitted means all. */
|
|
790
|
-
feedTypes?: MobileSocialFeedType[];
|
|
791
|
-
/** Strict minimum in whole dollars, including 500; omit for all sizes. */
|
|
792
|
-
minimumNotional?: number;
|
|
793
|
-
/** Page size, 1–50; server default is 20. */
|
|
794
|
-
limit?: number;
|
|
795
|
-
/** Required with cursor; reuse the original filters, target, viewAs, credential, and limit. */
|
|
796
|
-
sessionId?: string;
|
|
797
|
-
/** Opaque cursor returned by nextCursor. Never substitute an update cursor. */
|
|
798
|
-
cursor?: string;
|
|
799
|
-
}
|
|
800
|
-
/** Common filters and viewing context for main feeds and author feeds. */
|
|
801
|
-
interface MobileSocialFeedCategorizedParams extends MobileSocialFeedListParams, MobileSocialFeedReadParams {
|
|
802
|
-
/** Omit to include all market categories. */
|
|
803
|
-
marketCategory?: MobileSocialFeedMarketCategory;
|
|
804
|
-
}
|
|
805
|
-
/** For You request with optional market category and viewing account. */
|
|
806
|
-
type GetMobileForYouFeedParams = MobileSocialFeedCategorizedParams;
|
|
807
|
-
/** Top Traders request; eligibility uses account PnL and results remain chronological. */
|
|
808
|
-
type GetMobileTopTradersFeedParams = MobileSocialFeedCategorizedParams;
|
|
809
|
-
/** Public content from the selected account's follow graph; no signature is required. */
|
|
810
|
-
type GetMobileFriendsFeedParams = MobileSocialFeedCategorizedParams & {
|
|
811
|
-
/** Required on every request, including pagination; no existing identity row is needed. */viewAs: Subaccount;
|
|
812
|
-
};
|
|
813
|
-
/** Author list request; the target is distinct from the viewing account. */
|
|
814
|
-
type GetMobileProfileFeedParams = MobileSocialFeedCategorizedParams & {
|
|
815
|
-
/** Target author, independent of the viewAs account. */subaccount: Subaccount;
|
|
816
|
-
};
|
|
817
|
-
/** Market list request; marketCategory is not accepted. */
|
|
818
|
-
type GetMobileMarketFeedParams = MobileSocialFeedListParams & MobileSocialFeedReadParams & {
|
|
819
|
-
/** Non-negative target product ID. */productId: number;
|
|
820
|
-
};
|
|
821
|
-
/** Published content in a lifecycle, not the complete position history. */
|
|
822
|
-
type GetMobilePositionFeedParams = MobileSocialFeedListParams & MobileSocialFeedReadParams & {
|
|
823
|
-
/** Target position UUID. */positionId: string;
|
|
824
|
-
};
|
|
825
|
-
/** Item request; omit sessionId to create an item reading session directly. */
|
|
826
|
-
type GetMobileFeedItemParams = MobileSocialFeedReadParams & {
|
|
827
|
-
/** Target item UUID. */itemId: string; /** Preview size, 0–3. */
|
|
828
|
-
commentPreviewLimit?: number; /** Existing session authorized for the item. */
|
|
829
|
-
sessionId?: string;
|
|
830
|
-
};
|
|
831
|
-
/** Viewport update request; requires the original viewerToken. */
|
|
832
|
-
type GetMobileFeedUpdatesParams = {
|
|
833
|
-
/** Inherited from the original session; updates cannot select a different viewing account. */viewAs?: never; /** Current reading session. */
|
|
834
|
-
sessionId: string; /** Up to 50 distinct, already delivered item UUIDs. */
|
|
835
|
-
visibleItemIds: string[]; /** Up to 20 distinct, authorized position UUIDs. */
|
|
836
|
-
visiblePositionIds: string[]; /** Baseline from the last accepted update; omit for a changed viewport. */
|
|
837
|
-
updateCursor?: string | null; /** Increment whenever the visible set changes. */
|
|
838
|
-
viewportRevision: number; /** Increment on every request within the session, including after viewport changes; never reset for a new viewport. */
|
|
839
|
-
requestSeq: number; /** Credential belonging to the original public session. */
|
|
840
|
-
viewerToken: string;
|
|
841
|
-
};
|
|
842
|
-
//#endregion
|
|
843
|
-
export { MobileSocialFeedItemBase as $, MobileNotificationCategoryPreference as A, MobileSetFollowBatchParams as B, MobileFeedTrade as C, MobileFollowMutationResult as D, MobileFollowListPage as E, MobilePublicProfile as F, MobileSocialFeedAuthor as G, MobileSetPrivateModeParams as H, MobileRegisterExpoTokenParams as I, MobileSocialFeedCohort as J, MobileSocialFeedCapabilities as K, MobileRegisteredWallet as L, MobileNotificationPreferences as M, MobileProfileSearchPage as N, MobileFollowSummary as O, MobileProfilesInclude as P, MobileSocialFeedItem as Q, MobileSetAvatarParams as R, MobileFeedPage as S, SearchMobileProfilesParams as St, MobileFollowListAccount as T, MobileSetUsernameParams as U, MobileSetFollowParams as V, MobileSignedRequestParams as W, MobileSocialFeedCommentPreview as X, MobileSocialFeedCohortCoverage as Y, MobileSocialFeedInteraction as Z, MobileAvatarPreset as _, MobileSocialFeedViewTracking as _t, GetMobileFollowersParams as a, MobileSocialFeedPnl as at, MobileCreateAvatarUploadParams as b, MobileUsernameAvailability as bt, GetMobileFriendsFeedParams as c, MobileSocialFeedRankedPage as ct, GetMobilePositionFeedParams as d, MobileSocialFeedTopTradersPage as dt, MobileSocialFeedItemPatch as et, GetMobileProfileFeedParams as f, MobileSocialFeedTradeCard as ft, GetMobileUsernameAvailabilityParams as g, MobileSocialFeedUpdates as gt, GetMobileTopTradersFeedParams as h, MobileSocialFeedTraderBadge as ht, GetMobileFollowListParams as i, MobileSocialFeedPage as it, MobileNotificationPreferenceScope as j, MobileIdentitySummary as k, GetMobileMarketFeedParams as l, MobileSocialFeedReadParams as lt, GetMobileRegisteredWalletParams as m, MobileSocialFeedTradeRowBase as mt, GetMobileFeedParams as n, MobileSocialFeedListParams as nt, GetMobileFollowingParams as o, MobileSocialFeedPositionCard as ot, GetMobileProfilesParams as p, MobileSocialFeedTradeRow as pt, MobileSocialFeedCategorizedParams as q, GetMobileFeedUpdatesParams as r, MobileSocialFeedMarket as rt, GetMobileForYouFeedParams as s, MobileSocialFeedPositionPatch as st, GetMobileFeedItemParams as t, MobileSocialFeedItemResponse as tt, GetMobileNotificationPreferencesParams as u, MobileSocialFeedReadSession as ut, MobileAvatarSelection as v, MobileUnregisterExpoTokenParams as vt, MobileFollowBatchResultItem as w, MobileFeedMargin as x, MobileWithExpoTokenParams as xt, MobileAvatarUpload as y, MobileUpdateNotificationPreferencesParams as yt, MobileSetBioParams as z };
|
|
844
|
-
//# sourceMappingURL=clientTypes-DCTiUV0H.d.ts.map
|