@ecp.eth/sdk / indexer / fetchComment
Function: fetchComment()
function fetchComment(options): Promise<{
app: `0x${string}`;
author: {
address: `0x${string}`;
ens?: {
avatarUrl: null | string;
name: string;
};
farcaster?: {
displayName?: string;
fid: number;
pfpUrl?: string;
username: string;
};
};
chainId: number;
channelId: bigint;
commentType: number;
content: string;
createdAt: Date;
cursor: `0x${string}`;
deletedAt: null | Date;
hookMetadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
id: `0x${string}`;
logIndex: null | number;
metadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
moderationClassifierResult: Record<string, number>;
moderationClassifierScore: number;
moderationStatus: "approved" | "pending" | "rejected";
moderationStatusChangedAt: Date;
parentId: null | `0x${string}`;
reactionCounts: Record<string, number>;
references: (
| {
address: `0x${string}`;
avatarUrl: null | string;
name: string;
position: {
end: number;
start: number;
};
type: "ens";
url: string;
}
| {
address: `0x${string}`;
displayName: null | string;
fid: number;
fname: string;
pfpUrl: null | string;
position: {
end: number;
start: number;
};
type: "farcaster";
url: string;
username: string;
}
| {
address: `0x${string}`;
chainId: null | number;
chains: {
caip: string;
chainId: number;
}[];
decimals: number;
logoURI: null | string;
name: string;
position: {
end: number;
start: number;
};
symbol: string;
type: "erc20";
}
| {
description: null | string;
favicon: null | string;
mediaType: string;
opengraph: | null
| {
description: null | string;
image: string;
title: string;
url: string;
};
position: {
end: number;
start: number;
};
title: string;
type: "webpage";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "file";
url: string;
}
| {
dimension?: {
height: number;
width: number;
};
mediaType: string;
position: {
end: number;
start: number;
};
type: "image";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "video";
url: string;
videoTracks?: {
codec?: string;
dimension: {
height: number;
width: number;
};
}[];
}
| {
chainId: number;
id: `0x${string}`;
position: {
end: number;
start: number;
};
type: "quoted_comment";
})[];
replies: {
extra: {
moderationEnabled: boolean;
moderationKnownReactions: string[];
};
pagination: {
count: number;
endCursor?: `0x${string}`;
hasNext: boolean;
hasPrevious: boolean;
limit: number;
startCursor?: `0x${string}`;
};
results: {
app: `0x${string}`;
author: {
address: `0x${string}`;
ens?: {
avatarUrl: null | string;
name: string;
};
farcaster?: {
displayName?: string;
fid: number;
pfpUrl?: string;
username: string;
};
};
chainId: number;
channelId: bigint;
commentType: number;
content: string;
createdAt: Date;
cursor: `0x${string}`;
deletedAt: null | Date;
hookMetadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
id: `0x${string}`;
logIndex: null | number;
metadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
moderationClassifierResult: Record<string, number>;
moderationClassifierScore: number;
moderationStatus: "approved" | "pending" | "rejected";
moderationStatusChangedAt: Date;
parentId: null | `0x${string}`;
reactionCounts: Record<string, number>;
references: (
| {
address: `0x${string}`;
avatarUrl: null | string;
name: string;
position: {
end: number;
start: number;
};
type: "ens";
url: string;
}
| {
address: `0x${string}`;
displayName: null | string;
fid: number;
fname: string;
pfpUrl: null | string;
position: {
end: number;
start: number;
};
type: "farcaster";
url: string;
username: string;
}
| {
address: `0x${string}`;
chainId: null | number;
chains: {
caip: string;
chainId: number;
}[];
decimals: number;
logoURI: null | string;
name: string;
position: {
end: number;
start: number;
};
symbol: string;
type: "erc20";
}
| {
description: null | string;
favicon: null | string;
mediaType: string;
opengraph: | null
| {
description: ... | ...;
image: string;
title: string;
url: string;
};
position: {
end: number;
start: number;
};
title: string;
type: "webpage";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "file";
url: string;
}
| {
dimension?: {
height: number;
width: number;
};
mediaType: string;
position: {
end: number;
start: number;
};
type: "image";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "video";
url: string;
videoTracks?: {
codec?: ...;
dimension: ...;
}[];
}
| {
chainId: number;
id: `0x${string}`;
position: {
end: number;
start: number;
};
type: "quoted_comment";
})[];
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
viewerReactions: Record<string, {
app: `0x${string}`;
author: {
address: `0x${string}`;
ens?: {
avatarUrl: ...;
name: ...;
};
farcaster?: {
displayName?: ...;
fid: ...;
pfpUrl?: ...;
username: ...;
};
};
chainId: number;
channelId: bigint;
commentType: number;
content: string;
createdAt: Date;
cursor: `0x${string}`;
deletedAt: null | Date;
hookMetadata: {
key: `0x${(...)}`;
value: `0x${(...)}`;
}[];
id: `0x${string}`;
logIndex: null | number;
metadata: {
key: `0x${(...)}`;
value: `0x${(...)}`;
}[];
moderationClassifierResult: Record<string, number>;
moderationClassifierScore: number;
moderationStatus: "approved" | "pending" | "rejected";
moderationStatusChangedAt: Date;
parentId: null | `0x${string}`;
references: (
| {
address: ...;
avatarUrl: ...;
name: ...;
position: ...;
type: ...;
url: ...;
}
| {
address: ...;
displayName: ...;
fid: ...;
fname: ...;
pfpUrl: ...;
position: ...;
type: ...;
url: ...;
username: ...;
}
| {
address: ...;
chainId: ...;
chains: ...;
decimals: ...;
logoURI: ...;
name: ...;
position: ...;
symbol: ...;
type: ...;
}
| {
description: ...;
favicon: ...;
mediaType: ...;
opengraph: ...;
position: ...;
title: ...;
type: ...;
url: ...;
}
| {
mediaType: ...;
position: ...;
type: ...;
url: ...;
}
| {
dimension?: ...;
mediaType: ...;
position: ...;
type: ...;
url: ...;
}
| {
mediaType: ...;
position: ...;
type: ...;
url: ...;
videoTracks?: ...;
}
| {
chainId: ...;
id: ...;
position: ...;
type: ...;
})[];
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
zeroExSwap: | null
| {
from: {
address: ...;
amount: ...;
symbol: ...;
};
to: {
address: ...;
amount: ...;
symbol: ...;
};
};
}[]>;
zeroExSwap: | null
| {
from: {
address: `0x${string}`;
amount: string;
symbol: string;
};
to: {
address: "" | `0x${string}`;
amount: string;
symbol: string;
};
};
}[];
};
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
viewerReactions: Record<string, {
app: `0x${string}`;
author: {
address: `0x${string}`;
ens?: {
avatarUrl: null | string;
name: string;
};
farcaster?: {
displayName?: string;
fid: number;
pfpUrl?: string;
username: string;
};
};
chainId: number;
channelId: bigint;
commentType: number;
content: string;
createdAt: Date;
cursor: `0x${string}`;
deletedAt: null | Date;
hookMetadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
id: `0x${string}`;
logIndex: null | number;
metadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
moderationClassifierResult: Record<string, number>;
moderationClassifierScore: number;
moderationStatus: "approved" | "pending" | "rejected";
moderationStatusChangedAt: Date;
parentId: null | `0x${string}`;
references: (
| {
address: `0x${string}`;
avatarUrl: null | string;
name: string;
position: {
end: number;
start: number;
};
type: "ens";
url: string;
}
| {
address: `0x${string}`;
displayName: null | string;
fid: number;
fname: string;
pfpUrl: null | string;
position: {
end: number;
start: number;
};
type: "farcaster";
url: string;
username: string;
}
| {
address: `0x${string}`;
chainId: null | number;
chains: {
caip: string;
chainId: number;
}[];
decimals: number;
logoURI: null | string;
name: string;
position: {
end: number;
start: number;
};
symbol: string;
type: "erc20";
}
| {
description: null | string;
favicon: null | string;
mediaType: string;
opengraph: | null
| {
description: ... | ...;
image: string;
title: string;
url: string;
};
position: {
end: number;
start: number;
};
title: string;
type: "webpage";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "file";
url: string;
}
| {
dimension?: {
height: number;
width: number;
};
mediaType: string;
position: {
end: number;
start: number;
};
type: "image";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "video";
url: string;
videoTracks?: {
codec?: ...;
dimension: ...;
}[];
}
| {
chainId: number;
id: `0x${string}`;
position: {
end: number;
start: number;
};
type: "quoted_comment";
})[];
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
zeroExSwap: | null
| {
from: {
address: `0x${string}`;
amount: string;
symbol: string;
};
to: {
address: "" | `0x${string}`;
amount: string;
symbol: string;
};
};
}[]>;
zeroExSwap: | null
| {
from: {
address: `0x${string}`;
amount: string;
symbol: string;
};
to: {
address: "" | `0x${string}`;
amount: string;
symbol: string;
};
};
}>;Defined in: packages/sdk/src/indexer/api.ts:111
Fetch one single comment from the Indexer API
Parameters
options
Returns
Promise<{
app: `0x${string}`;
author: {
address: `0x${string}`;
ens?: {
avatarUrl: null | string;
name: string;
};
farcaster?: {
displayName?: string;
fid: number;
pfpUrl?: string;
username: string;
};
};
chainId: number;
channelId: bigint;
commentType: number;
content: string;
createdAt: Date;
cursor: `0x${string}`;
deletedAt: null | Date;
hookMetadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
id: `0x${string}`;
logIndex: null | number;
metadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
moderationClassifierResult: Record<string, number>;
moderationClassifierScore: number;
moderationStatus: "approved" | "pending" | "rejected";
moderationStatusChangedAt: Date;
parentId: null | `0x${string}`;
reactionCounts: Record<string, number>;
references: (
| {
address: `0x${string}`;
avatarUrl: null | string;
name: string;
position: {
end: number;
start: number;
};
type: "ens";
url: string;
}
| {
address: `0x${string}`;
displayName: null | string;
fid: number;
fname: string;
pfpUrl: null | string;
position: {
end: number;
start: number;
};
type: "farcaster";
url: string;
username: string;
}
| {
address: `0x${string}`;
chainId: null | number;
chains: {
caip: string;
chainId: number;
}[];
decimals: number;
logoURI: null | string;
name: string;
position: {
end: number;
start: number;
};
symbol: string;
type: "erc20";
}
| {
description: null | string;
favicon: null | string;
mediaType: string;
opengraph: | null
| {
description: null | string;
image: string;
title: string;
url: string;
};
position: {
end: number;
start: number;
};
title: string;
type: "webpage";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "file";
url: string;
}
| {
dimension?: {
height: number;
width: number;
};
mediaType: string;
position: {
end: number;
start: number;
};
type: "image";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "video";
url: string;
videoTracks?: {
codec?: string;
dimension: {
height: number;
width: number;
};
}[];
}
| {
chainId: number;
id: `0x${string}`;
position: {
end: number;
start: number;
};
type: "quoted_comment";
})[];
replies: {
extra: {
moderationEnabled: boolean;
moderationKnownReactions: string[];
};
pagination: {
count: number;
endCursor?: `0x${string}`;
hasNext: boolean;
hasPrevious: boolean;
limit: number;
startCursor?: `0x${string}`;
};
results: {
app: `0x${string}`;
author: {
address: `0x${string}`;
ens?: {
avatarUrl: null | string;
name: string;
};
farcaster?: {
displayName?: string;
fid: number;
pfpUrl?: string;
username: string;
};
};
chainId: number;
channelId: bigint;
commentType: number;
content: string;
createdAt: Date;
cursor: `0x${string}`;
deletedAt: null | Date;
hookMetadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
id: `0x${string}`;
logIndex: null | number;
metadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
moderationClassifierResult: Record<string, number>;
moderationClassifierScore: number;
moderationStatus: "approved" | "pending" | "rejected";
moderationStatusChangedAt: Date;
parentId: null | `0x${string}`;
reactionCounts: Record<string, number>;
references: (
| {
address: `0x${string}`;
avatarUrl: null | string;
name: string;
position: {
end: number;
start: number;
};
type: "ens";
url: string;
}
| {
address: `0x${string}`;
displayName: null | string;
fid: number;
fname: string;
pfpUrl: null | string;
position: {
end: number;
start: number;
};
type: "farcaster";
url: string;
username: string;
}
| {
address: `0x${string}`;
chainId: null | number;
chains: {
caip: string;
chainId: number;
}[];
decimals: number;
logoURI: null | string;
name: string;
position: {
end: number;
start: number;
};
symbol: string;
type: "erc20";
}
| {
description: null | string;
favicon: null | string;
mediaType: string;
opengraph: | null
| {
description: ... | ...;
image: string;
title: string;
url: string;
};
position: {
end: number;
start: number;
};
title: string;
type: "webpage";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "file";
url: string;
}
| {
dimension?: {
height: number;
width: number;
};
mediaType: string;
position: {
end: number;
start: number;
};
type: "image";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "video";
url: string;
videoTracks?: {
codec?: ...;
dimension: ...;
}[];
}
| {
chainId: number;
id: `0x${string}`;
position: {
end: number;
start: number;
};
type: "quoted_comment";
})[];
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
viewerReactions: Record<string, {
app: `0x${string}`;
author: {
address: `0x${string}`;
ens?: {
avatarUrl: ...;
name: ...;
};
farcaster?: {
displayName?: ...;
fid: ...;
pfpUrl?: ...;
username: ...;
};
};
chainId: number;
channelId: bigint;
commentType: number;
content: string;
createdAt: Date;
cursor: `0x${string}`;
deletedAt: null | Date;
hookMetadata: {
key: `0x${(...)}`;
value: `0x${(...)}`;
}[];
id: `0x${string}`;
logIndex: null | number;
metadata: {
key: `0x${(...)}`;
value: `0x${(...)}`;
}[];
moderationClassifierResult: Record<string, number>;
moderationClassifierScore: number;
moderationStatus: "approved" | "pending" | "rejected";
moderationStatusChangedAt: Date;
parentId: null | `0x${string}`;
references: (
| {
address: ...;
avatarUrl: ...;
name: ...;
position: ...;
type: ...;
url: ...;
}
| {
address: ...;
displayName: ...;
fid: ...;
fname: ...;
pfpUrl: ...;
position: ...;
type: ...;
url: ...;
username: ...;
}
| {
address: ...;
chainId: ...;
chains: ...;
decimals: ...;
logoURI: ...;
name: ...;
position: ...;
symbol: ...;
type: ...;
}
| {
description: ...;
favicon: ...;
mediaType: ...;
opengraph: ...;
position: ...;
title: ...;
type: ...;
url: ...;
}
| {
mediaType: ...;
position: ...;
type: ...;
url: ...;
}
| {
dimension?: ...;
mediaType: ...;
position: ...;
type: ...;
url: ...;
}
| {
mediaType: ...;
position: ...;
type: ...;
url: ...;
videoTracks?: ...;
}
| {
chainId: ...;
id: ...;
position: ...;
type: ...;
})[];
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
zeroExSwap: | null
| {
from: {
address: ...;
amount: ...;
symbol: ...;
};
to: {
address: ...;
amount: ...;
symbol: ...;
};
};
}[]>;
zeroExSwap: | null
| {
from: {
address: `0x${string}`;
amount: string;
symbol: string;
};
to: {
address: "" | `0x${string}`;
amount: string;
symbol: string;
};
};
}[];
};
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
viewerReactions: Record<string, {
app: `0x${string}`;
author: {
address: `0x${string}`;
ens?: {
avatarUrl: null | string;
name: string;
};
farcaster?: {
displayName?: string;
fid: number;
pfpUrl?: string;
username: string;
};
};
chainId: number;
channelId: bigint;
commentType: number;
content: string;
createdAt: Date;
cursor: `0x${string}`;
deletedAt: null | Date;
hookMetadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
id: `0x${string}`;
logIndex: null | number;
metadata: {
key: `0x${string}`;
value: `0x${string}`;
}[];
moderationClassifierResult: Record<string, number>;
moderationClassifierScore: number;
moderationStatus: "approved" | "pending" | "rejected";
moderationStatusChangedAt: Date;
parentId: null | `0x${string}`;
references: (
| {
address: `0x${string}`;
avatarUrl: null | string;
name: string;
position: {
end: number;
start: number;
};
type: "ens";
url: string;
}
| {
address: `0x${string}`;
displayName: null | string;
fid: number;
fname: string;
pfpUrl: null | string;
position: {
end: number;
start: number;
};
type: "farcaster";
url: string;
username: string;
}
| {
address: `0x${string}`;
chainId: null | number;
chains: {
caip: string;
chainId: number;
}[];
decimals: number;
logoURI: null | string;
name: string;
position: {
end: number;
start: number;
};
symbol: string;
type: "erc20";
}
| {
description: null | string;
favicon: null | string;
mediaType: string;
opengraph: | null
| {
description: ... | ...;
image: string;
title: string;
url: string;
};
position: {
end: number;
start: number;
};
title: string;
type: "webpage";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "file";
url: string;
}
| {
dimension?: {
height: number;
width: number;
};
mediaType: string;
position: {
end: number;
start: number;
};
type: "image";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "video";
url: string;
videoTracks?: {
codec?: ...;
dimension: ...;
}[];
}
| {
chainId: number;
id: `0x${string}`;
position: {
end: number;
start: number;
};
type: "quoted_comment";
})[];
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
zeroExSwap: | null
| {
from: {
address: `0x${string}`;
amount: string;
symbol: string;
};
to: {
address: "" | `0x${string}`;
amount: string;
symbol: string;
};
};
}[]>;
zeroExSwap: | null
| {
from: {
address: `0x${string}`;
amount: string;
symbol: string;
};
to: {
address: "" | `0x${string}`;
amount: string;
symbol: string;
};
};
}>
A promise that resolves the comment fetched from the Indexer API
Throws
If the comment is not available on given chain(s) or there is some request failure.