@metamask-previews/social-controllers 3.15.0-preview-3a0f39d23 → 3.15.0-preview-eb5c879

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/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - Add optional `comments` (`AuthorComment[]`) to the `Trade` type and `TradeStruct`, carrying every author comment on a fill, newest first ([#11265](https://github.com/MetaMask/core/pull/11265))
13
+ - Position, positions, and feed responses validate each comment with the same struct as `authorComment`; responses that omit `comments` still validate.
14
+ - The realtime feed parser maps the raw socket comments (`commentText`, `metrics`, `replies`) to the same shape. A malformed comment is dropped and the rest of the realtime item is kept.
15
+
10
16
  ## [3.15.0]
11
17
 
12
18
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-feed-item.d.ts","sourceRoot":"","sources":["../src/realtime-feed-item.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,mBAAmB,CAAC;AA2E3E,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AA8D7C,eAAO,MAAM,yBAAyB,UAC7B,OAAO,KACb,QAAQ,GAAG,SAiDb,CAAC;AAEF,eAAO,MAAM,qBAAqB,UACzB,OAAO,KACb,qBAAqB,GAAG,SAO1B,CAAC"}
1
+ {"version":3,"file":"realtime-feed-item.d.ts","sourceRoot":"","sources":["../src/realtime-feed-item.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,QAAQ,EAGT,MAAM,mBAAmB,CAAC;AAyF3B,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAuF7C,eAAO,MAAM,yBAAyB,UAC7B,OAAO,KACb,QAAQ,GAAG,SAiDb,CAAC;AAEF,eAAO,MAAM,qBAAqB,UACzB,OAAO,KACb,qBAAqB,GAAG,SAO1B,CAAC"}
@@ -1,5 +1,14 @@
1
1
  import { array, assign, boolean, enums, is, literal, nullable, number, optional, record, string, type as structType, unknown as unknownStruct, } from '@metamask/superstruct';
2
- import { AuthorCommentStruct, FeedItemStruct } from './structs.js';
2
+ import { AuthorCommentStruct, CommentEngagementStruct, FeedItemStruct, } from './structs.js';
3
+ const RawTradeCommentStruct = structType({
4
+ uid: string(),
5
+ commentText: string(),
6
+ timestamp: number(),
7
+ sourceLanguage: optional(nullable(string())),
8
+ translations: optional(record(string(), string())),
9
+ metrics: CommentEngagementStruct,
10
+ replies: optional(array(unknownStruct())),
11
+ });
3
12
  const RawTradeStruct = assign(structType({
4
13
  tokenAmount: number(),
5
14
  usdCost: number(),
@@ -84,6 +93,27 @@ const toActor = (actor) => ({
84
93
  ? {}
85
94
  : { followerCount: actor.followerCount }),
86
95
  });
96
+ // Same mapping as social-api's `mapAuthorComment`, so a socket fill carries
97
+ // the comments the REST payload would. Malformed entries are dropped.
98
+ const toTradeComments = (comments) => comments.flatMap((comment) => {
99
+ if (!is(comment, RawTradeCommentStruct)) {
100
+ return [];
101
+ }
102
+ return [
103
+ {
104
+ uid: comment.uid,
105
+ text: comment.commentText,
106
+ timestamp: comment.timestamp,
107
+ sourceLanguage: comment.sourceLanguage ?? null,
108
+ translations: comment.translations ?? {},
109
+ engagement: {
110
+ reactions: comment.metrics.reactions,
111
+ userReaction: comment.metrics.userReaction,
112
+ replyCount: comment.replies?.length ?? 0,
113
+ },
114
+ },
115
+ ];
116
+ });
87
117
  const toTrade = (trade) => ({
88
118
  direction: trade.direction,
89
119
  intent: trade.intent,
@@ -96,6 +126,7 @@ const toTrade = (trade) => ({
96
126
  marketCap: trade.marketCap,
97
127
  timestamp: trade.timestamp,
98
128
  transactionHash: trade.transactionHash,
129
+ comments: toTradeComments(trade.comments),
99
130
  });
100
131
  const isNormalizedRealtimeFeedItem = (value) => is(value, FeedItemStruct);
101
132
  export const normalizeRealtimeFeedItem = (value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-feed-item.js","sourceRoot":"","sources":["../src/realtime-feed-item.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n array,\n assign,\n boolean,\n enums,\n is,\n literal,\n nullable,\n number,\n optional,\n record,\n string,\n type as structType,\n unknown as unknownStruct,\n} from '@metamask/superstruct';\n\nimport type { FeedItem, FeedActorSummary, Trade } from './social-types.js';\nimport { AuthorCommentStruct, FeedItemStruct } from './structs.js';\n\nconst RawTradeStruct = assign(\n structType({\n tokenAmount: number(),\n usdCost: number(),\n marketCap: nullable(number()),\n timestamp: number(),\n transactionHash: string(),\n direction: enums(['buy', 'sell']),\n classification: nullable(enums(['spot', 'perp', 'send', 'receive'])),\n intent: enums(['enter', 'exit']),\n perpPositionType: nullable(enums(['long', 'short'])),\n perpLeverage: nullable(number()),\n }),\n structType({\n comments: array(unknownStruct()),\n }),\n);\n\nconst RawHydratedPositionStruct = structType({\n itemId: string(),\n timestamp: number(),\n cardLatestTradeAt: number(),\n actor: structType({\n type: literal('user'),\n address: string(),\n name: string(),\n images: structType({\n raw: nullable(string()),\n xs: nullable(string()),\n sm: nullable(string()),\n }),\n profile: structType({\n id: string(),\n metadata: record(string(), unknownStruct()),\n }),\n followerCount: optional(nullable(number())),\n }),\n metadata: structType({\n tokenChain: string(),\n tokenSymbol: string(),\n tokenName: string(),\n tokenAddress: string(),\n positionAmount: number(),\n positionStats: structType({\n boughtUSD: nullable(number()),\n soldUSD: nullable(number()),\n realizedGainsUSD: nullable(number()),\n holdingsCostBasisUSD: nullable(number()),\n receivedCostBasisUSD: nullable(number()),\n holdingReceivedCostBasisUSD: nullable(number()),\n isOpen: boolean(),\n }),\n trades: array(RawTradeStruct),\n perpPositionType: optional(nullable(enums(['long', 'short']))),\n perpLeverage: optional(nullable(number())),\n positionAmountWithLeverage: optional(nullable(number())),\n }),\n metrics: structType({\n reactions: array(unknownStruct()),\n userReaction: nullable(string()),\n commentCount: number(),\n replyCount: number(),\n copyCount: optional(nullable(number())),\n }),\n imageUrl: optional(nullable(string())),\n firstTradeAt: optional(nullable(number())),\n holdTimeMs: optional(nullable(number())),\n entryPriceUsd: optional(nullable(number())),\n authorComment: optional(nullable(AuthorCommentStruct)),\n flags: optional(nullable(array(string()))),\n});\n\nexport type RealtimeFeedEventData = FeedItem;\n\nconst readNumber = (value: unknown): number | undefined =>\n typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n\nconst readNullableNumber = (value: unknown): number | null =>\n readNumber(value) ?? null;\n\nconst addNullableNumbers = (\n left: number | null,\n right: number | null,\n): number | null => (left === null || right === null ? null : left + right);\n\nconst toActor = (actor: {\n address: string;\n name: string;\n images: { raw: string | null; sm: string | null };\n profile: { id: string; metadata: Record<string, unknown> };\n followerCount?: number | null;\n}): FeedActorSummary => ({\n profileId: actor.profile.id,\n address: actor.address,\n name: actor.name,\n imageUrl: actor.images.sm ?? actor.images.raw,\n winRate30d: readNullableNumber(actor.profile.metadata.winRate30d),\n pnl30d: readNullableNumber(actor.profile.metadata.pnl30d),\n volumeUsd30d: readNullableNumber(actor.profile.metadata.volumeUsd30d),\n volumeUsd7d: readNullableNumber(actor.profile.metadata.volumeUsd7d),\n tradeCount30d: readNullableNumber(actor.profile.metadata.tradeCount30d),\n ...(actor.followerCount === undefined\n ? {}\n : { followerCount: actor.followerCount }),\n});\n\nconst toTrade = (trade: {\n direction: 'buy' | 'sell';\n intent: 'enter' | 'exit';\n classification: 'spot' | 'perp' | 'send' | 'receive' | null;\n perpPositionType: 'long' | 'short' | null;\n perpLeverage: number | null;\n tokenAmount: number;\n usdCost: number;\n marketCap: number | null;\n timestamp: number;\n transactionHash: string;\n}): Trade => ({\n direction: trade.direction,\n intent: trade.intent,\n ...(trade.classification === null ? {} : { category: trade.classification }),\n classification: trade.classification,\n perpPositionType: trade.perpPositionType,\n perpLeverage: trade.perpLeverage,\n tokenAmount: trade.tokenAmount,\n usdCost: trade.usdCost,\n marketCap: trade.marketCap,\n timestamp: trade.timestamp,\n transactionHash: trade.transactionHash,\n});\n\nconst isNormalizedRealtimeFeedItem = (value: unknown): value is FeedItem =>\n is(value, FeedItemStruct);\n\nexport const normalizeRealtimeFeedItem = (\n value: unknown,\n): FeedItem | undefined => {\n if (!is(value, RawHydratedPositionStruct)) {\n return undefined;\n }\n\n const stats = value.metadata.positionStats;\n const receivedCostBasis = stats.receivedCostBasisUSD;\n const holdingReceivedCostBasis = stats.holdingReceivedCostBasisUSD;\n\n return {\n positionId: value.itemId,\n tokenSymbol: value.metadata.tokenSymbol,\n tokenName: value.metadata.tokenName,\n tokenAddress: value.metadata.tokenAddress,\n chain: value.metadata.tokenChain,\n positionAmount: value.metadata.positionAmount,\n isOpen: stats.isOpen,\n boughtUsd: addNullableNumbers(stats.boughtUSD, receivedCostBasis),\n soldUsd: stats.soldUSD,\n realizedPnl: stats.realizedGainsUSD,\n costBasis: addNullableNumbers(\n stats.holdingsCostBasisUSD,\n holdingReceivedCostBasis,\n ),\n trades: value.metadata.trades.map(toTrade),\n lastTradeAt: value.cardLatestTradeAt,\n tokenImageUrl: value.imageUrl,\n perpPositionType: value.metadata.perpPositionType,\n perpLeverage: value.metadata.perpLeverage,\n positionAmountWithLeverage:\n value.metadata.positionAmountWithLeverage ?? null,\n actor: toActor(value.actor),\n timestamp: value.timestamp,\n // The socket payload carries the server's selected author comment. It is\n // passed through as sent: an absent field stays absent, an explicit null\n // stays null, and a malformed value already dropped the item above.\n ...(value.authorComment === undefined\n ? {}\n : { authorComment: value.authorComment }),\n commentCount: value.metrics.commentCount,\n replyCount: value.metrics.replyCount,\n copyCount: value.metrics.copyCount ?? 0,\n firstTradeAt: value.firstTradeAt ?? null,\n holdTimeMs: value.holdTimeMs ?? null,\n entryPriceUsd: value.entryPriceUsd ?? null,\n // `flags` lives on the hydrated card, beside `metadata`. The server does\n // not set `metadata.flags`.\n ...(value.flags === undefined ? {} : { flags: value.flags }),\n };\n};\n\nexport const parseRealtimeFeedItem = (\n value: unknown,\n): RealtimeFeedEventData | undefined => {\n const normalized = normalizeRealtimeFeedItem(value);\n if (normalized) {\n return normalized;\n }\n\n return isNormalizedRealtimeFeedItem(value) ? value : undefined;\n};\n"]}
1
+ {"version":3,"file":"realtime-feed-item.js","sourceRoot":"","sources":["../src/realtime-feed-item.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n array,\n assign,\n boolean,\n enums,\n is,\n literal,\n nullable,\n number,\n optional,\n record,\n string,\n type as structType,\n unknown as unknownStruct,\n} from '@metamask/superstruct';\n\nimport type {\n AuthorComment,\n FeedItem,\n FeedActorSummary,\n Trade,\n} from './social-types.js';\nimport {\n AuthorCommentStruct,\n CommentEngagementStruct,\n FeedItemStruct,\n} from './structs.js';\n\nconst RawTradeCommentStruct = structType({\n uid: string(),\n commentText: string(),\n timestamp: number(),\n sourceLanguage: optional(nullable(string())),\n translations: optional(record(string(), string())),\n metrics: CommentEngagementStruct,\n replies: optional(array(unknownStruct())),\n});\n\nconst RawTradeStruct = assign(\n structType({\n tokenAmount: number(),\n usdCost: number(),\n marketCap: nullable(number()),\n timestamp: number(),\n transactionHash: string(),\n direction: enums(['buy', 'sell']),\n classification: nullable(enums(['spot', 'perp', 'send', 'receive'])),\n intent: enums(['enter', 'exit']),\n perpPositionType: nullable(enums(['long', 'short'])),\n perpLeverage: nullable(number()),\n }),\n structType({\n comments: array(unknownStruct()),\n }),\n);\n\nconst RawHydratedPositionStruct = structType({\n itemId: string(),\n timestamp: number(),\n cardLatestTradeAt: number(),\n actor: structType({\n type: literal('user'),\n address: string(),\n name: string(),\n images: structType({\n raw: nullable(string()),\n xs: nullable(string()),\n sm: nullable(string()),\n }),\n profile: structType({\n id: string(),\n metadata: record(string(), unknownStruct()),\n }),\n followerCount: optional(nullable(number())),\n }),\n metadata: structType({\n tokenChain: string(),\n tokenSymbol: string(),\n tokenName: string(),\n tokenAddress: string(),\n positionAmount: number(),\n positionStats: structType({\n boughtUSD: nullable(number()),\n soldUSD: nullable(number()),\n realizedGainsUSD: nullable(number()),\n holdingsCostBasisUSD: nullable(number()),\n receivedCostBasisUSD: nullable(number()),\n holdingReceivedCostBasisUSD: nullable(number()),\n isOpen: boolean(),\n }),\n trades: array(RawTradeStruct),\n perpPositionType: optional(nullable(enums(['long', 'short']))),\n perpLeverage: optional(nullable(number())),\n positionAmountWithLeverage: optional(nullable(number())),\n }),\n metrics: structType({\n reactions: array(unknownStruct()),\n userReaction: nullable(string()),\n commentCount: number(),\n replyCount: number(),\n copyCount: optional(nullable(number())),\n }),\n imageUrl: optional(nullable(string())),\n firstTradeAt: optional(nullable(number())),\n holdTimeMs: optional(nullable(number())),\n entryPriceUsd: optional(nullable(number())),\n authorComment: optional(nullable(AuthorCommentStruct)),\n flags: optional(nullable(array(string()))),\n});\n\nexport type RealtimeFeedEventData = FeedItem;\n\nconst readNumber = (value: unknown): number | undefined =>\n typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n\nconst readNullableNumber = (value: unknown): number | null =>\n readNumber(value) ?? null;\n\nconst addNullableNumbers = (\n left: number | null,\n right: number | null,\n): number | null => (left === null || right === null ? null : left + right);\n\nconst toActor = (actor: {\n address: string;\n name: string;\n images: { raw: string | null; sm: string | null };\n profile: { id: string; metadata: Record<string, unknown> };\n followerCount?: number | null;\n}): FeedActorSummary => ({\n profileId: actor.profile.id,\n address: actor.address,\n name: actor.name,\n imageUrl: actor.images.sm ?? actor.images.raw,\n winRate30d: readNullableNumber(actor.profile.metadata.winRate30d),\n pnl30d: readNullableNumber(actor.profile.metadata.pnl30d),\n volumeUsd30d: readNullableNumber(actor.profile.metadata.volumeUsd30d),\n volumeUsd7d: readNullableNumber(actor.profile.metadata.volumeUsd7d),\n tradeCount30d: readNullableNumber(actor.profile.metadata.tradeCount30d),\n ...(actor.followerCount === undefined\n ? {}\n : { followerCount: actor.followerCount }),\n});\n\n// Same mapping as social-api's `mapAuthorComment`, so a socket fill carries\n// the comments the REST payload would. Malformed entries are dropped.\nconst toTradeComments = (comments: unknown[]): AuthorComment[] =>\n comments.flatMap((comment) => {\n if (!is(comment, RawTradeCommentStruct)) {\n return [];\n }\n return [\n {\n uid: comment.uid,\n text: comment.commentText,\n timestamp: comment.timestamp,\n sourceLanguage: comment.sourceLanguage ?? null,\n translations: comment.translations ?? {},\n engagement: {\n reactions: comment.metrics.reactions,\n userReaction: comment.metrics.userReaction,\n replyCount: comment.replies?.length ?? 0,\n },\n },\n ];\n });\n\nconst toTrade = (trade: {\n direction: 'buy' | 'sell';\n intent: 'enter' | 'exit';\n classification: 'spot' | 'perp' | 'send' | 'receive' | null;\n perpPositionType: 'long' | 'short' | null;\n perpLeverage: number | null;\n tokenAmount: number;\n usdCost: number;\n marketCap: number | null;\n timestamp: number;\n transactionHash: string;\n comments: unknown[];\n}): Trade => ({\n direction: trade.direction,\n intent: trade.intent,\n ...(trade.classification === null ? {} : { category: trade.classification }),\n classification: trade.classification,\n perpPositionType: trade.perpPositionType,\n perpLeverage: trade.perpLeverage,\n tokenAmount: trade.tokenAmount,\n usdCost: trade.usdCost,\n marketCap: trade.marketCap,\n timestamp: trade.timestamp,\n transactionHash: trade.transactionHash,\n comments: toTradeComments(trade.comments),\n});\n\nconst isNormalizedRealtimeFeedItem = (value: unknown): value is FeedItem =>\n is(value, FeedItemStruct);\n\nexport const normalizeRealtimeFeedItem = (\n value: unknown,\n): FeedItem | undefined => {\n if (!is(value, RawHydratedPositionStruct)) {\n return undefined;\n }\n\n const stats = value.metadata.positionStats;\n const receivedCostBasis = stats.receivedCostBasisUSD;\n const holdingReceivedCostBasis = stats.holdingReceivedCostBasisUSD;\n\n return {\n positionId: value.itemId,\n tokenSymbol: value.metadata.tokenSymbol,\n tokenName: value.metadata.tokenName,\n tokenAddress: value.metadata.tokenAddress,\n chain: value.metadata.tokenChain,\n positionAmount: value.metadata.positionAmount,\n isOpen: stats.isOpen,\n boughtUsd: addNullableNumbers(stats.boughtUSD, receivedCostBasis),\n soldUsd: stats.soldUSD,\n realizedPnl: stats.realizedGainsUSD,\n costBasis: addNullableNumbers(\n stats.holdingsCostBasisUSD,\n holdingReceivedCostBasis,\n ),\n trades: value.metadata.trades.map(toTrade),\n lastTradeAt: value.cardLatestTradeAt,\n tokenImageUrl: value.imageUrl,\n perpPositionType: value.metadata.perpPositionType,\n perpLeverage: value.metadata.perpLeverage,\n positionAmountWithLeverage:\n value.metadata.positionAmountWithLeverage ?? null,\n actor: toActor(value.actor),\n timestamp: value.timestamp,\n // The socket payload carries the server's selected author comment. It is\n // passed through as sent: an absent field stays absent, an explicit null\n // stays null, and a malformed value already dropped the item above.\n ...(value.authorComment === undefined\n ? {}\n : { authorComment: value.authorComment }),\n commentCount: value.metrics.commentCount,\n replyCount: value.metrics.replyCount,\n copyCount: value.metrics.copyCount ?? 0,\n firstTradeAt: value.firstTradeAt ?? null,\n holdTimeMs: value.holdTimeMs ?? null,\n entryPriceUsd: value.entryPriceUsd ?? null,\n // `flags` lives on the hydrated card, beside `metadata`. The server does\n // not set `metadata.flags`.\n ...(value.flags === undefined ? {} : { flags: value.flags }),\n };\n};\n\nexport const parseRealtimeFeedItem = (\n value: unknown,\n): RealtimeFeedEventData | undefined => {\n const normalized = normalizeRealtimeFeedItem(value);\n if (normalized) {\n return normalized;\n }\n\n return isNormalizedRealtimeFeedItem(value) ? value : undefined;\n};\n"]}
@@ -54,6 +54,124 @@ export type SocialHandles = {
54
54
  * position — `intent: 'exit'` covers both a partial trim and a full close.
55
55
  */
56
56
  export type TradeAction = 'opened' | 'added' | 'reduced' | 'closed';
57
+ export declare const CommentReactionProfileStruct: import("@metamask/superstruct").Struct<{
58
+ id: string;
59
+ name: string;
60
+ }, {
61
+ id: import("@metamask/superstruct").Struct<string, null>;
62
+ name: import("@metamask/superstruct").Struct<string, null>;
63
+ }>;
64
+ export declare const CommentEngagementStruct: import("@metamask/superstruct").Struct<{
65
+ reactions: {
66
+ emotion: string;
67
+ count: number;
68
+ profiles: {
69
+ id: string;
70
+ name: string;
71
+ }[];
72
+ }[];
73
+ userReaction: string | null;
74
+ replyCount?: number | undefined;
75
+ }, {
76
+ reactions: import("@metamask/superstruct").Struct<{
77
+ emotion: string;
78
+ count: number;
79
+ profiles: {
80
+ id: string;
81
+ name: string;
82
+ }[];
83
+ }[], import("@metamask/superstruct").Struct<{
84
+ emotion: string;
85
+ count: number;
86
+ profiles: {
87
+ id: string;
88
+ name: string;
89
+ }[];
90
+ }, {
91
+ emotion: import("@metamask/superstruct").Struct<string, null>;
92
+ count: import("@metamask/superstruct").Struct<number, null>;
93
+ profiles: import("@metamask/superstruct").Struct<{
94
+ id: string;
95
+ name: string;
96
+ }[], import("@metamask/superstruct").Struct<{
97
+ id: string;
98
+ name: string;
99
+ }, {
100
+ id: import("@metamask/superstruct").Struct<string, null>;
101
+ name: import("@metamask/superstruct").Struct<string, null>;
102
+ }>>;
103
+ }>>;
104
+ userReaction: import("@metamask/superstruct").Struct<string | null, null>;
105
+ replyCount: import("@metamask/superstruct").Struct<number | undefined, null>;
106
+ }>;
107
+ export declare const AuthorCommentStruct: import("@metamask/superstruct").Struct<{
108
+ uid: string;
109
+ text: string;
110
+ timestamp: number;
111
+ sourceLanguage?: string | null | undefined;
112
+ translations?: Record<string, string> | undefined;
113
+ engagement: {
114
+ reactions: {
115
+ emotion: string;
116
+ count: number;
117
+ profiles: {
118
+ id: string;
119
+ name: string;
120
+ }[];
121
+ }[];
122
+ userReaction: string | null;
123
+ replyCount?: number | undefined;
124
+ };
125
+ }, {
126
+ uid: import("@metamask/superstruct").Struct<string, null>;
127
+ text: import("@metamask/superstruct").Struct<string, null>;
128
+ timestamp: import("@metamask/superstruct").Struct<number, null>;
129
+ sourceLanguage: import("@metamask/superstruct").Struct<string | null | undefined, null>;
130
+ translations: import("@metamask/superstruct").Struct<Record<string, string> | undefined, null>;
131
+ engagement: import("@metamask/superstruct").Struct<{
132
+ reactions: {
133
+ emotion: string;
134
+ count: number;
135
+ profiles: {
136
+ id: string;
137
+ name: string;
138
+ }[];
139
+ }[];
140
+ userReaction: string | null;
141
+ replyCount?: number | undefined;
142
+ }, {
143
+ reactions: import("@metamask/superstruct").Struct<{
144
+ emotion: string;
145
+ count: number;
146
+ profiles: {
147
+ id: string;
148
+ name: string;
149
+ }[];
150
+ }[], import("@metamask/superstruct").Struct<{
151
+ emotion: string;
152
+ count: number;
153
+ profiles: {
154
+ id: string;
155
+ name: string;
156
+ }[];
157
+ }, {
158
+ emotion: import("@metamask/superstruct").Struct<string, null>;
159
+ count: import("@metamask/superstruct").Struct<number, null>;
160
+ profiles: import("@metamask/superstruct").Struct<{
161
+ id: string;
162
+ name: string;
163
+ }[], import("@metamask/superstruct").Struct<{
164
+ id: string;
165
+ name: string;
166
+ }, {
167
+ id: import("@metamask/superstruct").Struct<string, null>;
168
+ name: import("@metamask/superstruct").Struct<string, null>;
169
+ }>>;
170
+ }>>;
171
+ userReaction: import("@metamask/superstruct").Struct<string | null, null>;
172
+ replyCount: import("@metamask/superstruct").Struct<number | undefined, null>;
173
+ }>;
174
+ }>;
57
175
  export declare const TradeStruct: import("@metamask/superstruct").Struct<{
58
176
  direction: "buy" | "sell";
59
177
  intent: "enter" | "exit";
@@ -67,6 +185,25 @@ export declare const TradeStruct: import("@metamask/superstruct").Struct<{
67
185
  marketCap?: number | null | undefined;
68
186
  timestamp: number;
69
187
  transactionHash: string;
188
+ comments?: {
189
+ uid: string;
190
+ text: string;
191
+ timestamp: number;
192
+ sourceLanguage?: string | null | undefined;
193
+ translations?: Record<string, string> | undefined;
194
+ engagement: {
195
+ reactions: {
196
+ emotion: string;
197
+ count: number;
198
+ profiles: {
199
+ id: string;
200
+ name: string;
201
+ }[];
202
+ }[];
203
+ userReaction: string | null;
204
+ replyCount?: number | undefined;
205
+ };
206
+ }[] | undefined;
70
207
  }, {
71
208
  direction: import("@metamask/superstruct").Struct<"buy" | "sell", {
72
209
  buy: "buy";
@@ -107,6 +244,96 @@ export declare const TradeStruct: import("@metamask/superstruct").Struct<{
107
244
  marketCap: import("@metamask/superstruct").Struct<number | null | undefined, null>;
108
245
  timestamp: import("@metamask/superstruct").Struct<number, null>;
109
246
  transactionHash: import("@metamask/superstruct").Struct<string, null>;
247
+ /**
248
+ * Every author comment on this fill, newest first. An author may comment on
249
+ * one fill more than once. Absent on older social-api builds.
250
+ */
251
+ comments: import("@metamask/superstruct").Struct<{
252
+ uid: string;
253
+ text: string;
254
+ timestamp: number;
255
+ sourceLanguage?: string | null | undefined;
256
+ translations?: Record<string, string> | undefined;
257
+ engagement: {
258
+ reactions: {
259
+ emotion: string;
260
+ count: number;
261
+ profiles: {
262
+ id: string;
263
+ name: string;
264
+ }[];
265
+ }[];
266
+ userReaction: string | null;
267
+ replyCount?: number | undefined;
268
+ };
269
+ }[] | undefined, import("@metamask/superstruct").Struct<{
270
+ uid: string;
271
+ text: string;
272
+ timestamp: number;
273
+ sourceLanguage?: string | null | undefined;
274
+ translations?: Record<string, string> | undefined;
275
+ engagement: {
276
+ reactions: {
277
+ emotion: string;
278
+ count: number;
279
+ profiles: {
280
+ id: string;
281
+ name: string;
282
+ }[];
283
+ }[];
284
+ userReaction: string | null;
285
+ replyCount?: number | undefined;
286
+ };
287
+ }, {
288
+ uid: import("@metamask/superstruct").Struct<string, null>;
289
+ text: import("@metamask/superstruct").Struct<string, null>;
290
+ timestamp: import("@metamask/superstruct").Struct<number, null>;
291
+ sourceLanguage: import("@metamask/superstruct").Struct<string | null | undefined, null>;
292
+ translations: import("@metamask/superstruct").Struct<Record<string, string> | undefined, null>;
293
+ engagement: import("@metamask/superstruct").Struct<{
294
+ reactions: {
295
+ emotion: string;
296
+ count: number;
297
+ profiles: {
298
+ id: string;
299
+ name: string;
300
+ }[];
301
+ }[];
302
+ userReaction: string | null;
303
+ replyCount?: number | undefined;
304
+ }, {
305
+ reactions: import("@metamask/superstruct").Struct<{
306
+ emotion: string;
307
+ count: number;
308
+ profiles: {
309
+ id: string;
310
+ name: string;
311
+ }[];
312
+ }[], import("@metamask/superstruct").Struct<{
313
+ emotion: string;
314
+ count: number;
315
+ profiles: {
316
+ id: string;
317
+ name: string;
318
+ }[];
319
+ }, {
320
+ emotion: import("@metamask/superstruct").Struct<string, null>;
321
+ count: import("@metamask/superstruct").Struct<number, null>;
322
+ profiles: import("@metamask/superstruct").Struct<{
323
+ id: string;
324
+ name: string;
325
+ }[], import("@metamask/superstruct").Struct<{
326
+ id: string;
327
+ name: string;
328
+ }, {
329
+ id: import("@metamask/superstruct").Struct<string, null>;
330
+ name: import("@metamask/superstruct").Struct<string, null>;
331
+ }>>;
332
+ }>>;
333
+ userReaction: import("@metamask/superstruct").Struct<string | null, null>;
334
+ replyCount: import("@metamask/superstruct").Struct<number | undefined, null>;
335
+ }>;
336
+ }>>;
110
337
  }>;
111
338
  export type Trade = Infer<typeof TradeStruct>;
112
339
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"social-types.d.ts","sourceRoot":"","sources":["../src/social-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social-types.d.ts","sourceRoot":"","sources":["../src/social-types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,25 @@
1
- import { enums, nullable, number, optional, string, type as structType, } from '@metamask/superstruct';
1
+ import { array, enums, nullable, number, optional, record, string, type as structType, } from '@metamask/superstruct';
2
+ export const CommentReactionProfileStruct = structType({
3
+ id: string(),
4
+ name: string(),
5
+ });
6
+ export const CommentEngagementStruct = structType({
7
+ reactions: array(structType({
8
+ emotion: string(),
9
+ count: number(),
10
+ profiles: array(CommentReactionProfileStruct),
11
+ })),
12
+ userReaction: nullable(string()),
13
+ replyCount: optional(number()),
14
+ });
15
+ export const AuthorCommentStruct = structType({
16
+ uid: string(),
17
+ text: string(),
18
+ timestamp: number(),
19
+ sourceLanguage: optional(nullable(string())),
20
+ translations: optional(record(string(), string())),
21
+ engagement: CommentEngagementStruct,
22
+ });
2
23
  export const TradeStruct = structType({
3
24
  direction: enums(['buy', 'sell']),
4
25
  intent: enums(['enter', 'exit']),
@@ -20,6 +41,11 @@ export const TradeStruct = structType({
20
41
  marketCap: optional(nullable(number())),
21
42
  timestamp: number(),
22
43
  transactionHash: string(),
44
+ /**
45
+ * Every author comment on this fill, newest first. An author may comment on
46
+ * one fill more than once. Absent on older social-api builds.
47
+ */
48
+ comments: optional(array(AuthorCommentStruct)),
23
49
  });
24
50
  // ---------------------------------------------------------------------------
25
51
  // Trader profile