Skip to content

@ecp.eth/sdk


@ecp.eth/sdk / indexer / IndexerAPINotificationSchemaType

Type Alias: IndexerAPINotificationSchemaType

type IndexerAPINotificationSchemaType = 
  | {
  app: `0x${string}`;
  author: {
     address: `0x${string}`;
     ens?: {
        avatarUrl: null | string;
        name: string;
     };
     farcaster?: {
        displayName?: string;
        fid: number;
        pfpUrl?: string;
        username: string;
     };
  };
  comment: {
     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: 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";
     })[];
     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;
        };
      };
  };
  createdAt: Date;
  id: bigint;
  replyingTo: {
     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: 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";
     })[];
     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;
        };
      };
  };
  seen: boolean;
  seenAt: null | Date;
  type: "reply";
}
  | {
  app: `0x${string}`;
  author: {
     address: `0x${string}`;
     ens?: {
        avatarUrl: null | string;
        name: string;
     };
     farcaster?: {
        displayName?: string;
        fid: number;
        pfpUrl?: string;
        username: string;
     };
  };
  comment: {
     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: 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";
     })[];
     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;
        };
      };
  };
  createdAt: Date;
  id: bigint;
  mentionedUser: {
     address: `0x${string}`;
     ens?: {
        avatarUrl: null | string;
        name: string;
     };
     farcaster?: {
        displayName?: string;
        fid: number;
        pfpUrl?: string;
        username: string;
     };
  };
  seen: boolean;
  seenAt: null | Date;
  type: "mention";
}
  | {
  app: `0x${string}`;
  author: {
     address: `0x${string}`;
     ens?: {
        avatarUrl: null | string;
        name: string;
     };
     farcaster?: {
        displayName?: string;
        fid: number;
        pfpUrl?: string;
        username: string;
     };
  };
  comment: {
     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: 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";
     })[];
     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;
        };
      };
  };
  createdAt: Date;
  id: bigint;
  reactingTo: {
     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: 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";
     })[];
     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;
        };
      };
  };
  seen: boolean;
  seenAt: null | Date;
  type: "reaction";
}
  | {
  app: `0x${string}`;
  author: {
     address: `0x${string}`;
     ens?: {
        avatarUrl: null | string;
        name: string;
     };
     farcaster?: {
        displayName?: string;
        fid: number;
        pfpUrl?: string;
        username: string;
     };
  };
  comment: {
     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: 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";
     })[];
     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;
        };
      };
  };
  createdAt: Date;
  id: bigint;
  quotedComment: {
     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: 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";
     })[];
     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;
        };
      };
  };
  seen: boolean;
  seenAt: null | Date;
  type: "quote";
};

Defined in: packages/sdk/src/indexer/schemas.ts:777

The notification schema