@ecp.eth/sdk / indexer / fetchComments
Function: fetchComments()
function fetchComments(options): Promise<{
extra: {
moderationEnabled: boolean;
moderationKnownReactions: string[];
};
pagination: {
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;
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;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "image";
url: string;
}
| {
mediaType: string;
position: {
end: number;
start: number;
};
type: "video";
url: string;
})[];
replies: {
extra: {
moderationEnabled: boolean;
moderationKnownReactions: string[];
};
pagination: {
endCursor?: `0x${string}`;
hasNext: boolean;
hasPrevious: boolean;
limit: number;
startCursor?: `0x${string}`;
};
results: {
app: `0x${string}`;
author: {
address: `0x${string}`;
ens?: {
avatarUrl: ... | ...;
name: string;
};
farcaster?: {
displayName?: ... | ...;
fid: number;
pfpUrl?: ... | ...;
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${(...)}`;
avatarUrl: ... | ...;
name: string;
position: {
end: ...;
start: ...;
};
type: "ens";
url: string;
}
| {
address: `0x${(...)}`;
displayName: ... | ...;
fid: number;
fname: string;
pfpUrl: ... | ...;
position: {
end: ...;
start: ...;
};
type: "farcaster";
url: string;
username: string;
}
| {
address: `0x${(...)}`;
chainId: ... | ...;
chains: ...[];
decimals: number;
logoURI: ... | ...;
name: string;
position: {
end: ...;
start: ...;
};
symbol: string;
type: "erc20";
}
| {
description: ... | ...;
favicon: ... | ...;
opengraph: ... | ...;
position: {
end: ...;
start: ...;
};
title: string;
type: "webpage";
url: string;
}
| {
mediaType: string;
position: {
end: ...;
start: ...;
};
type: "file";
url: string;
}
| {
mediaType: string;
position: {
end: ...;
start: ...;
};
type: "image";
url: string;
}
| {
mediaType: string;
position: {
end: ...;
start: ...;
};
type: "video";
url: string;
})[];
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
viewerReactions: Record<string, {
app: `0x${(...)}`;
author: {
address: ...;
ens?: ...;
farcaster?: ...;
};
chainId: number;
channelId: bigint;
commentType: number;
content: string;
createdAt: Date;
cursor: `0x${(...)}`;
deletedAt: ... | ...;
hookMetadata: ...[];
id: `0x${(...)}`;
logIndex: ... | ...;
metadata: ...[];
moderationClassifierResult: Record<..., ...>;
moderationClassifierScore: number;
moderationStatus: ... | ... | ...;
moderationStatusChangedAt: Date;
parentId: ... | ...;
references: ...[];
revision: number;
targetUri: string;
txHash: `0x${(...)}`;
updatedAt: Date;
zeroExSwap: ... | ...;
}[]>;
zeroExSwap: | null
| {
from: {
address: `0x${(...)}`;
amount: string;
symbol: string;
};
to: {
address: ... | ...;
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: ... | ...;
name: string;
};
farcaster?: {
displayName?: ... | ...;
fid: number;
pfpUrl?: ... | ...;
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${(...)}`;
avatarUrl: ... | ...;
name: string;
position: {
end: ...;
start: ...;
};
type: "ens";
url: string;
}
| {
address: `0x${(...)}`;
displayName: ... | ...;
fid: number;
fname: string;
pfpUrl: ... | ...;
position: {
end: ...;
start: ...;
};
type: "farcaster";
url: string;
username: string;
}
| {
address: `0x${(...)}`;
chainId: ... | ...;
chains: ...[];
decimals: number;
logoURI: ... | ...;
name: string;
position: {
end: ...;
start: ...;
};
symbol: string;
type: "erc20";
}
| {
description: ... | ...;
favicon: ... | ...;
opengraph: ... | ...;
position: {
end: ...;
start: ...;
};
title: string;
type: "webpage";
url: string;
}
| {
mediaType: string;
position: {
end: ...;
start: ...;
};
type: "file";
url: string;
}
| {
mediaType: string;
position: {
end: ...;
start: ...;
};
type: "image";
url: string;
}
| {
mediaType: string;
position: {
end: ...;
start: ...;
};
type: "video";
url: string;
})[];
revision: number;
targetUri: string;
txHash: `0x${string}`;
updatedAt: Date;
zeroExSwap: | null
| {
from: {
address: `0x${(...)}`;
amount: string;
symbol: string;
};
to: {
address: ... | ...;
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:263
Fetch comments from the Indexer API
Parameters
options
Returns
Promise
<{
extra
: {
moderationEnabled
: boolean
;
moderationKnownReactions
: string
[];
};
pagination
: {
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
;
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
;
}
| {
mediaType
: string
;
position
: {
end
: number
;
start
: number
;
};
type
: "image"
;
url
: string
;
}
| {
mediaType
: string
;
position
: {
end
: number
;
start
: number
;
};
type
: "video"
;
url
: string
;
})[];
replies
: {
extra
: {
moderationEnabled
: boolean
;
moderationKnownReactions
: string
[];
};
pagination
: {
endCursor?
: `0x${string}`
;
hasNext
: boolean
;
hasPrevious
: boolean
;
limit
: number
;
startCursor?
: `0x${string}`
;
};
results
: {
app
: `0x${string}`
;
author
: {
address
: `0x${string}`
;
ens?
: {
avatarUrl
: ... | ...;
name
: string
;
};
farcaster?
: {
displayName?
: ... | ...;
fid
: number
;
pfpUrl?
: ... | ...;
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${(...)}`
;
avatarUrl
: ... | ...;
name
: string
;
position
: {
end
: ...;
start
: ...;
};
type
: "ens"
;
url
: string
;
}
| {
address
: `0x${(...)}`
;
displayName
: ... | ...;
fid
: number
;
fname
: string
;
pfpUrl
: ... | ...;
position
: {
end
: ...;
start
: ...;
};
type
: "farcaster"
;
url
: string
;
username
: string
;
}
| {
address
: `0x${(...)}`
;
chainId
: ... | ...;
chains
: ...[];
decimals
: number
;
logoURI
: ... | ...;
name
: string
;
position
: {
end
: ...;
start
: ...;
};
symbol
: string
;
type
: "erc20"
;
}
| {
description
: ... | ...;
favicon
: ... | ...;
opengraph
: ... | ...;
position
: {
end
: ...;
start
: ...;
};
title
: string
;
type
: "webpage"
;
url
: string
;
}
| {
mediaType
: string
;
position
: {
end
: ...;
start
: ...;
};
type
: "file"
;
url
: string
;
}
| {
mediaType
: string
;
position
: {
end
: ...;
start
: ...;
};
type
: "image"
;
url
: string
;
}
| {
mediaType
: string
;
position
: {
end
: ...;
start
: ...;
};
type
: "video"
;
url
: string
;
})[];
revision
: number
;
targetUri
: string
;
txHash
: `0x${string}`
;
updatedAt
: Date
;
viewerReactions
: Record
<string
, {
app
: `0x${(...)}`
;
author
: {
address
: ...;
ens?
: ...;
farcaster?
: ...;
};
chainId
: number
;
channelId
: bigint
;
commentType
: number
;
content
: string
;
createdAt
: Date
;
cursor
: `0x${(...)}`
;
deletedAt
: ... | ...;
hookMetadata
: ...[];
id
: `0x${(...)}`
;
logIndex
: ... | ...;
metadata
: ...[];
moderationClassifierResult
: Record
<..., ...>;
moderationClassifierScore
: number
;
moderationStatus
: ... | ... | ...;
moderationStatusChangedAt
: Date
;
parentId
: ... | ...;
references
: ...[];
revision
: number
;
targetUri
: string
;
txHash
: `0x${(...)}`
;
updatedAt
: Date
;
zeroExSwap
: ... | ...;
}[]>;
zeroExSwap
: | null
| {
from
: {
address
: `0x${(...)}`
;
amount
: string
;
symbol
: string
;
};
to
: {
address
: ... | ...;
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
: ... | ...;
name
: string
;
};
farcaster?
: {
displayName?
: ... | ...;
fid
: number
;
pfpUrl?
: ... | ...;
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${(...)}`
;
avatarUrl
: ... | ...;
name
: string
;
position
: {
end
: ...;
start
: ...;
};
type
: "ens"
;
url
: string
;
}
| {
address
: `0x${(...)}`
;
displayName
: ... | ...;
fid
: number
;
fname
: string
;
pfpUrl
: ... | ...;
position
: {
end
: ...;
start
: ...;
};
type
: "farcaster"
;
url
: string
;
username
: string
;
}
| {
address
: `0x${(...)}`
;
chainId
: ... | ...;
chains
: ...[];
decimals
: number
;
logoURI
: ... | ...;
name
: string
;
position
: {
end
: ...;
start
: ...;
};
symbol
: string
;
type
: "erc20"
;
}
| {
description
: ... | ...;
favicon
: ... | ...;
opengraph
: ... | ...;
position
: {
end
: ...;
start
: ...;
};
title
: string
;
type
: "webpage"
;
url
: string
;
}
| {
mediaType
: string
;
position
: {
end
: ...;
start
: ...;
};
type
: "file"
;
url
: string
;
}
| {
mediaType
: string
;
position
: {
end
: ...;
start
: ...;
};
type
: "image"
;
url
: string
;
}
| {
mediaType
: string
;
position
: {
end
: ...;
start
: ...;
};
type
: "video"
;
url
: string
;
})[];
revision
: number
;
targetUri
: string
;
txHash
: `0x${string}`
;
updatedAt
: Date
;
zeroExSwap
: | null
| {
from
: {
address
: `0x${(...)}`
;
amount
: string
;
symbol
: string
;
};
to
: {
address
: ... | ...;
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 comments fetched from the Indexer API