diff --git a/Server/frontend/components/SignInButton.tsx b/Server/frontend/components/SignInButton.tsx
new file mode 100644
index 00000000..0c813ef4
--- /dev/null
+++ b/Server/frontend/components/SignInButton.tsx
@@ -0,0 +1,59 @@
+import { useAddress, useNetworkMismatch, useNetwork, ConnectWallet, ChainId } from '@thirdweb-dev/react';
+import React from 'react';
+import useLensUser from '../lib/auth/useLensUser';
+import useLogin from '../lib/auth/useLogin';
+
+type Props = {};
+
+export default function SignInButton({}: Props) {
+ const address = useAddress(); // Detect connected wallet
+ const isOnWrongNetwork = useNetworkMismatch(); // Is different to `activeChainId` in `_app.tsx`
+ const [, switchNetwork] = useNetwork(); // Switch network to `activeChainId`
+ const { isSignedInQuery, profileQuery } = useLensUser();
+ const { mutate: requestLogin } = useLogin();
+
+ // Connect wallet
+ if (!address) {
+ return (
+
+ );
+ }
+
+ // Switch network to polygon
+ if (!isOnWrongNetwork) {
+ return (
+ switchNetwork?.(ChainId.Polygon)}
+ >Switch Network
+ )
+ }
+
+ if (isSignedInQuery.isLoading) { // Loading signed in state
+ return
Loading
+ }
+
+ // Sign in with Lens
+ if (!isSignedInQuery.data) { // Request a login to Lens
+ return (
+ requestLogin()}
+ >Sign in with Lens
+ )
+ };
+
+ if (profileQuery.isLoading) { // Show user their Lens Profile
+ return Loading...
;
+ };
+
+ if (!profileQuery.data?.defaultProfile) { // If there's no Lens profile for the connected wallet
+ return No Lens Profile
;
+ };
+
+ if (profileQuery.data?.defaultProfile) { // If profile exists
+ return Hello {profileQuery.data?.defaultProfile?.handle}
+ };
+
+ return (
+ Something went wrong
+ );
+}
\ No newline at end of file
diff --git a/Server/frontend/graphql/auth-fetcher.ts b/Server/frontend/graphql/auth-fetcher.ts
index 9837cb26..319fdcd3 100644
--- a/Server/frontend/graphql/auth-fetcher.ts
+++ b/Server/frontend/graphql/auth-fetcher.ts
@@ -1,4 +1,5 @@
-import { TableDataCellComponent } from "react-markdown/lib/ast-to-react";
+import { isTokenExpired, readAccessToken } from "../lib/auth/helpers";
+import refreshAccessToken from "../lib/auth/refreshAccessToken";
const endpoint = 'https://api.lens.dev';
@@ -7,13 +8,33 @@ export const fetcher = (
variables?: TVariables,
options?: RequestInit['headers']
): (() => Promise) => {
+ async function getAccessToken() { // Authentication headers
+ // Check local storage for access token
+ const token = readAccessToken();
+ if (!token) return null;
+ let accessToken = token?.accessToken;
+
+ // Check expiration of token
+ if (isTokenExpired( token.exp )) {
+ // Update token (using refresh) IF expired
+ const newToken = await refreshAccessToken();
+ if (!newToken) return null;
+ accessToken = newToken;
+ }
+
+ return accessToken; // Return the access token
+ };
+
return async () => {
+ const token = typeof window !=='undefined' ? await getAccessToken() : null; // Either a string or null (depending on auth/localStorage state)
+
const res = await fetch(endpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
...options,
- // Add Lens auth token here
+ 'x-access-token': token ? token : '', // Lens auth token here (auth header
+ 'Access-Control-Allow-Origin': "*",
},
body: JSON.stringify({
query,
diff --git a/Server/frontend/graphql/authenticate.graphql b/Server/frontend/graphql/authenticate.graphql
new file mode 100644
index 00000000..65dcf952
--- /dev/null
+++ b/Server/frontend/graphql/authenticate.graphql
@@ -0,0 +1,6 @@
+mutation authenticate($request: SignedAuthChallenge!) {
+ authenticate(request: $request) {
+ accessToken
+ refreshToken
+ }
+}
\ No newline at end of file
diff --git a/Server/frontend/graphql/challenge.graphql b/Server/frontend/graphql/challenge.graphql
new file mode 100644
index 00000000..c64e5004
--- /dev/null
+++ b/Server/frontend/graphql/challenge.graphql
@@ -0,0 +1,5 @@
+query Challenge($request: ChallengeRequest!) {
+ challenge(request: $request) {
+ text
+ }
+}
\ No newline at end of file
diff --git a/Server/frontend/graphql/generated.ts b/Server/frontend/graphql/generated.ts
index 2fc886d9..a47bf478 100644
--- a/Server/frontend/graphql/generated.ts
+++ b/Server/frontend/graphql/generated.ts
@@ -1,4 +1,4 @@
-import { useQuery, UseQueryOptions } from '@tanstack/react-query';
+import { useMutation, useQuery, UseMutationOptions, UseQueryOptions } from '@tanstack/react-query';
import { fetcher } from './auth-fetcher';
export type Maybe = T | null;
export type InputMaybe = Maybe;
@@ -3844,6 +3844,20 @@ export type WorldcoinPhoneVerifyWebhookRequest = {
signalType: WorldcoinPhoneVerifyType;
};
+export type AuthenticateMutationVariables = Exact<{
+ request: SignedAuthChallenge;
+}>;
+
+
+export type AuthenticateMutation = { __typename?: 'Mutation', authenticate: { __typename?: 'AuthenticationResult', accessToken: any, refreshToken: any } };
+
+export type ChallengeQueryVariables = Exact<{
+ request: ChallengeRequest;
+}>;
+
+
+export type ChallengeQuery = { __typename?: 'Query', challenge: { __typename?: 'AuthChallengeResult', text: string } };
+
export type MediaFieldsFragment = { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null };
export type ProfileFieldsFragment = { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } };
@@ -3943,6 +3957,20 @@ export type ExplorePublicationsQueryVariables = Exact<{
export type ExplorePublicationsQuery = { __typename?: 'Query', explorePublications: { __typename?: 'ExplorePublicationResult', items: Array<{ __typename: 'Comment', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, mainPost: { __typename?: 'Mirror', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, hasCollectedByMe: boolean, isGated: boolean, mirrorOf: { __typename?: 'Comment', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, mainPost: { __typename?: 'Mirror', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null } | { __typename?: 'Post', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null }, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null } | { __typename?: 'Post', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null }, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null } | { __typename?: 'Post', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null }, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null } | { __typename: 'Mirror', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, hasCollectedByMe: boolean, isGated: boolean, mirrorOf: { __typename?: 'Comment', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, mainPost: { __typename?: 'Mirror', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, hasCollectedByMe: boolean, isGated: boolean, mirrorOf: { __typename?: 'Comment', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, mainPost: { __typename?: 'Mirror', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null } | { __typename?: 'Post', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null }, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null } | { __typename?: 'Post', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null }, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null } | { __typename?: 'Post', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null }, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null } | { __typename?: 'Post', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null }, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null } | { __typename: 'Post', id: any, createdAt: any, appId?: any | null, hidden: boolean, reaction?: ReactionTypes | null, mirrors: Array, hasCollectedByMe: boolean, isGated: boolean, profile: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } }, stats: { __typename?: 'PublicationStats', totalAmountOfMirrors: number, totalAmountOfCollects: number, totalAmountOfComments: number }, metadata: { __typename?: 'MetadataOutput', name?: string | null, description?: any | null, content?: any | null, media: Array<{ __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }>, attributes: Array<{ __typename?: 'MetadataAttributeOutput', displayType?: PublicationMetadataDisplayTypes | null, traitType?: string | null, value?: string | null }>, encryptionParams?: { __typename?: 'EncryptionParamsOutput', providerSpecificParams: { __typename?: 'ProviderSpecificParamsOutput', encryptionKey: any }, accessCondition: { __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null, and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', and?: { __typename?: 'AndConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, or?: { __typename?: 'OrConditionOutput', criteria: Array<{ __typename?: 'AccessConditionOutput', nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null, nft?: { __typename?: 'NftOwnershipOutput', contractAddress: any, chainID: any, contractType: ContractType, tokenIds?: Array | null } | null, eoa?: { __typename?: 'EoaOwnershipOutput', address: any } | null, token?: { __typename?: 'Erc20OwnershipOutput', contractAddress: any, amount: string, chainID: any, condition: ScalarOperator, decimals: number } | null, profile?: { __typename?: 'ProfileOwnershipOutput', profileId: any } | null, follow?: { __typename?: 'FollowConditionOutput', profileId: any } | null, collect?: { __typename?: 'CollectConditionOutput', publicationId?: any | null, thisPublication?: boolean | null } | null }> } | null }, encryptedFields: { __typename?: 'EncryptedFieldsOutput', animation_url?: any | null, content?: any | null, external_url?: any | null, image?: any | null, media?: Array<{ __typename?: 'EncryptedMediaSet', original: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'EncryptedMedia', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null }> | null } } | null }, collectModule: { __typename: 'FeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'FreeCollectModuleSettings', type: CollectModules, followerOnly: boolean, contractAddress: any } | { __typename: 'LimitedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'LimitedTimedFeeCollectModuleSettings', type: CollectModules, collectLimit: string, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'RevertCollectModuleSettings', type: CollectModules } | { __typename: 'TimedFeeCollectModuleSettings', type: CollectModules, recipient: any, referralFee: number, endTimestamp: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename: 'UnknownCollectModuleSettings', type: CollectModules, contractAddress: any, collectModuleReturnData: any }, referenceModule?: { __typename?: 'DegreesOfSeparationReferenceModuleSettings', type: ReferenceModules, contractAddress: any, commentsRestricted: boolean, mirrorsRestricted: boolean, degreesOfSeparation: number } | { __typename?: 'FollowOnlyReferenceModuleSettings', type: ReferenceModules, contractAddress: any } | { __typename?: 'UnknownReferenceModuleSettings', type: ReferenceModules, contractAddress: any, referenceModuleReturnData: any } | null }>, pageInfo: { __typename?: 'PaginatedResultInfo', prev?: any | null, next?: any | null, totalCount?: number | null } } };
+export type DefaultProfileQueryVariables = Exact<{
+ request: DefaultProfileRequest;
+}>;
+
+
+export type DefaultProfileQuery = { __typename?: 'Query', defaultProfile?: { __typename?: 'Profile', id: any, name?: string | null, bio?: string | null, isFollowedByMe: boolean, isFollowing: boolean, followNftAddress?: any | null, metadata?: any | null, isDefault: boolean, handle: any, ownedBy: any, attributes?: Array<{ __typename?: 'Attribute', displayType?: string | null, traitType?: string | null, key: string, value: string }> | null, picture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, coverPicture?: { __typename?: 'MediaSet', original: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null }, small?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null, medium?: { __typename?: 'Media', url: any, width?: number | null, height?: number | null, mimeType?: any | null } | null } | { __typename?: 'NftImage', contractAddress: any, tokenId: string, uri: any, verified: boolean } | null, dispatcher?: { __typename?: 'Dispatcher', address: any, canUseRelay: boolean } | null, stats: { __typename?: 'ProfileStats', totalFollowers: number, totalFollowing: number, totalPosts: number, totalComments: number, totalMirrors: number, totalPublications: number, totalCollects: number }, followModule?: { __typename?: 'FeeFollowModuleSettings', type: FollowModules, recipient: any, amount: { __typename?: 'ModuleFeeAmount', value: string, asset: { __typename?: 'Erc20', name: string, symbol: string, decimals: number, address: any } } } | { __typename?: 'ProfileFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'RevertFollowModuleSettings', type: FollowModules, contractAddress: any } | { __typename?: 'UnknownFollowModuleSettings', type: FollowModules, contractAddress: any, followModuleReturnData: any } | null, onChainIdentity: { __typename?: 'OnChainIdentity', proofOfHumanity: boolean, ens?: { __typename?: 'EnsOnChainIdentity', name?: any | null } | null, sybilDotOrg: { __typename?: 'SybilDotOrgIdentity', verified: boolean, source: { __typename?: 'SybilDotOrgIdentitySource', twitter: { __typename?: 'SybilDotOrgTwitterIdentity', handle?: string | null } } }, worldcoin: { __typename?: 'WorldcoinIdentity', isHuman: boolean } } } | null };
+
+export type RefreshMutationVariables = Exact<{
+ request: RefreshRequest;
+}>;
+
+
+export type RefreshMutation = { __typename?: 'Mutation', refresh: { __typename?: 'AuthenticationResult', accessToken: any, refreshToken: any } };
+
export const MediaFieldsFragmentDoc = `
fragment MediaFields on Media {
url
@@ -4535,6 +4563,42 @@ export const OrConditionFieldsNoRecursiveFragmentDoc = `
}
}
`;
+export const AuthenticateDocument = `
+ mutation authenticate($request: SignedAuthChallenge!) {
+ authenticate(request: $request) {
+ accessToken
+ refreshToken
+ }
+}
+ `;
+export const useAuthenticateMutation = <
+ TError = unknown,
+ TContext = unknown
+ >(options?: UseMutationOptions) =>
+ useMutation(
+ ['authenticate'],
+ (variables?: AuthenticateMutationVariables) => fetcher(AuthenticateDocument, variables)(),
+ options
+ );
+export const ChallengeDocument = `
+ query Challenge($request: ChallengeRequest!) {
+ challenge(request: $request) {
+ text
+ }
+}
+ `;
+export const useChallengeQuery = <
+ TData = ChallengeQuery,
+ TError = unknown
+ >(
+ variables: ChallengeQueryVariables,
+ options?: UseQueryOptions
+ ) =>
+ useQuery(
+ ['Challenge', variables],
+ fetcher(ChallengeDocument, variables),
+ options
+ );
export const ExplorePublicationsDocument = `
query ExplorePublications($request: ExplorePublicationRequest!) {
explorePublications(request: $request) {
@@ -4593,6 +4657,44 @@ export const useExplorePublicationsQuery = <
fetcher(ExplorePublicationsDocument, variables),
options
);
+export const DefaultProfileDocument = `
+ query defaultProfile($request: DefaultProfileRequest!) {
+ defaultProfile(request: $request) {
+ ...ProfileFields
+ }
+}
+ ${ProfileFieldsFragmentDoc}
+${MediaFieldsFragmentDoc}
+${FollowModuleFieldsFragmentDoc}`;
+export const useDefaultProfileQuery = <
+ TData = DefaultProfileQuery,
+ TError = unknown
+ >(
+ variables: DefaultProfileQueryVariables,
+ options?: UseQueryOptions
+ ) =>
+ useQuery(
+ ['defaultProfile', variables],
+ fetcher(DefaultProfileDocument, variables),
+ options
+ );
+export const RefreshDocument = `
+ mutation Refresh($request: RefreshRequest!) {
+ refresh(request: $request) {
+ accessToken
+ refreshToken
+ }
+}
+ `;
+export const useRefreshMutation = <
+ TError = unknown,
+ TContext = unknown
+ >(options?: UseMutationOptions) =>
+ useMutation(
+ ['Refresh'],
+ (variables?: RefreshMutationVariables) => fetcher(RefreshDocument, variables)(),
+ options
+ );
export interface PossibleTypesResultData {
possibleTypes: {
diff --git a/Server/frontend/graphql/get-default-profile.graphql b/Server/frontend/graphql/get-default-profile.graphql
new file mode 100644
index 00000000..0a3d7374
--- /dev/null
+++ b/Server/frontend/graphql/get-default-profile.graphql
@@ -0,0 +1,5 @@
+query defaultProfile($request: DefaultProfileRequest!) {
+ defaultProfile(request: $request) {
+ ...ProfileFields
+ }
+}
\ No newline at end of file
diff --git a/Server/frontend/graphql/refresh.graphql b/Server/frontend/graphql/refresh.graphql
new file mode 100644
index 00000000..171cd1ec
--- /dev/null
+++ b/Server/frontend/graphql/refresh.graphql
@@ -0,0 +1,6 @@
+mutation Refresh($request: RefreshRequest!) {
+ refresh(request: $request) {
+ accessToken
+ refreshToken
+ }
+}
\ No newline at end of file
diff --git a/Server/frontend/lib/auth/generateChallenge.ts b/Server/frontend/lib/auth/generateChallenge.ts
new file mode 100644
index 00000000..6867db6d
--- /dev/null
+++ b/Server/frontend/lib/auth/generateChallenge.ts
@@ -0,0 +1,10 @@
+import { fetcher } from "../../graphql/auth-fetcher";
+import { ChallengeDocument, ChallengeQuery, ChallengeQueryVariables } from "../../graphql/generated";
+
+export default async function generateChallenge( address:string ) {
+ return await fetcher(ChallengeDocument, {
+ request: {
+ address,
+ },
+ })();
+}
\ No newline at end of file
diff --git a/Server/frontend/lib/auth/helpers.ts b/Server/frontend/lib/auth/helpers.ts
new file mode 100644
index 00000000..4eca9c85
--- /dev/null
+++ b/Server/frontend/lib/auth/helpers.ts
@@ -0,0 +1,68 @@
+const STORAGE_KEY = 'LH_STORAGE_KEY'; // lens hub storage key
+
+// Determine if exp date is expired
+export function isTokenExpired(exp: number) {
+ if (!exp) return true;
+ if (Date.now() >= exp * 1000) {
+ return false;
+ }
+ return true;
+}
+
+// Read access token from Lens (local storage)
+export function readAccessToken () {
+ // Ensure user is on client environment
+ if (typeof window === 'undefined') return null;
+ const ls = localStorage || window.localStorage;
+ if (!ls) {
+ throw new Error("LocalStorage is not available");
+ }
+
+ const data = ls.getItem(STORAGE_KEY);
+ if (!data) return null;
+
+ return JSON.parse(data) as {
+ accessToken: string;
+ refreshToken: string;
+ exp: number;
+ };
+}
+
+// Set access token in storage
+export function setAccessToken (
+ accessToken: string,
+ refreshToken: string,
+) {
+ // Parse JWT token to get expiration date
+ const { exp } = parseJwt(accessToken);
+
+ // Set all three variables in local storage
+ const ls = localStorage || window.localStorage;
+
+ if (!ls) {
+ throw new Error("LocalStorage is not available");
+ }
+
+ ls.setItem(STORAGE_KEY, JSON.stringify({
+ accessToken,
+ refreshToken,
+ exp
+ }));
+}
+
+// Parse JWT token and extract params
+export function parseJwt (token: string) {
+ var base64Url = token.split(".")[1];
+ var base64 = base64Url.replace(/-/g, "+").replace(/_/g, '/');
+ var jsonPayload = decodeURIComponent(
+ window
+ .atob(base64)
+ .split("")
+ .map(function (c) {
+ return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);
+ })
+ .join("")
+ );
+
+ return JSON.parse(jsonPayload);
+}
\ No newline at end of file
diff --git a/Server/frontend/lib/auth/refreshAccessToken.ts b/Server/frontend/lib/auth/refreshAccessToken.ts
new file mode 100644
index 00000000..b4ff6fa0
--- /dev/null
+++ b/Server/frontend/lib/auth/refreshAccessToken.ts
@@ -0,0 +1,24 @@
+import { fetcher } from "../../graphql/auth-fetcher";
+import { RefreshMutation, RefreshMutationVariables, RefreshDocument } from "../../graphql/generated";
+import { readAccessToken, setAccessToken } from "./helpers";
+
+export default async function refreshAccessToken () { // Take current refresh, access token to Lens to generate a new Access token
+ // Read refresh token from local storage
+ const currentRefreshToken = readAccessToken()?.refreshToken;
+ if (!currentRefreshToken) return null;
+
+ // Send refresh token to Lens
+ const result = await fetcher(RefreshDocument, {
+ request: {
+ refreshToken: currentRefreshToken
+ },
+ })();
+
+ // Set new refresh token
+ const {
+ accessToken, refreshToken: newRefreshToken
+ } = result.refresh;
+ setAccessToken(accessToken, newRefreshToken);
+
+ return accessToken as string;
+}
\ No newline at end of file
diff --git a/Server/frontend/lib/auth/useLensUser.ts b/Server/frontend/lib/auth/useLensUser.ts
new file mode 100644
index 00000000..47518b77
--- /dev/null
+++ b/Server/frontend/lib/auth/useLensUser.ts
@@ -0,0 +1,28 @@
+import { useQuery } from "@tanstack/react-query";
+import { useAddress } from "@thirdweb-dev/react";
+import { useDefaultProfileQuery } from "../../graphql/generated";
+import { readAccessToken } from "./helpers";
+
+export default function useLensUser() {
+ // Make a react query for the local storage key
+ const address = useAddress();
+ const localStorageQuery = useQuery(
+ ['lens-user', address],
+ () => readAccessToken(),
+ );
+
+ // If wallet is connected, check for the default profile (on Lens) connected to that wallet
+ const profileQuery = useDefaultProfileQuery({
+ request: {
+ ethereumAddress: address,
+ }
+ },
+ {
+ enabled: !!address,
+ });
+
+ return {
+ isSignedInQuery: localStorageQuery,
+ profileQuery: profileQuery,
+ }
+}
\ No newline at end of file
diff --git a/Server/frontend/lib/auth/useLogin.ts b/Server/frontend/lib/auth/useLogin.ts
new file mode 100644
index 00000000..78db1e8a
--- /dev/null
+++ b/Server/frontend/lib/auth/useLogin.ts
@@ -0,0 +1,40 @@
+import { useMutation } from "@apollo/client";
+import { useAddress, useSDK } from "@thirdweb-dev/react";
+import { useAuthenticateMutation } from "../../graphql/generated";
+import generateChallenge from "./generateChallenge";
+import { setAccessToken } from "./helpers";
+
+// Store access token inside local storage
+
+export default function useLogin() {
+ const address = useAddress(); // Ensure user has connected wallet
+ const sdk = useSDK();
+ const {
+ mutateAsync: sendSignedMessage
+ } = useAuthenticateMutation();
+
+ async function login () {
+ if (!address) {
+ console.error('No address found. Please try connecting your wallet to continue signing into Lens');
+ return null;
+ }
+
+ const { challenge } = await generateChallenge(address); // Generate challenge from the Lens API
+ const signature = await sdk?.wallet.sign(challenge.text); // Sign the returned challenge with the user's wallet
+ const { // Send the signed challenge to the Lens API
+ authenticate
+ } = await sendSignedMessage({
+ request: {
+ address,
+ signature,
+ },
+ });
+
+ const { accessToken, refreshToken} = authenticate;
+
+ setAccessToken(accessToken, refreshToken);
+ }
+
+ // Receive an access token from Lens API
+ return useMutation(login);
+}
\ No newline at end of file
diff --git a/Server/frontend/package.json b/Server/frontend/package.json
index f1404825..af49c8ea 100644
--- a/Server/frontend/package.json
+++ b/Server/frontend/package.json
@@ -16,6 +16,7 @@
"@thirdweb-dev/auth": "^2.0.38",
"@thirdweb-dev/react": "^3.6.8",
"@thirdweb-dev/sdk": "^3.6.8",
+ "@thirdweb-dev/storage": "^1.0.6",
"ethers": "^5.7.2",
"graphql": "^16.6.0",
"moralis": "^2.10.3",
diff --git a/Server/frontend/pages/_app.tsx b/Server/frontend/pages/_app.tsx
index 7f223bed..db8b9f43 100644
--- a/Server/frontend/pages/_app.tsx
+++ b/Server/frontend/pages/_app.tsx
@@ -1,15 +1,15 @@
import type { AppProps } from "next/app";
import { ChainId, ThirdwebProvider } from "@thirdweb-dev/react";
-import Navbar from './lens/components/Navbar';
+import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { MoralisProvider } from "react-moralis";
+
+/*import Navbar from './lens/components/Navbar';
import { LensProvider } from '../context/lensContext';
import { ApolloProvider } from "@apollo/client";
-import { lensClient } from './lens/constants/lensConstants';
-import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
-
-const activeChainId = ChainId.Mumbai;
+import { lensClient } from './lens/constants/lensConstants';*/
function MyApp({ Component, pageProps }: AppProps) {
+ const activeChainId = ChainId.Polygon; // Set to `.Mumbai` for testnet interaction
const queryClient = new QueryClient();
return (
@@ -23,7 +23,7 @@ function MyApp({ Component, pageProps }: AppProps) {
}}
>
-
+
diff --git a/Server/frontend/pages/index.tsx b/Server/frontend/pages/index.tsx
index d3a62cfd..72f69d36 100644
--- a/Server/frontend/pages/index.tsx
+++ b/Server/frontend/pages/index.tsx
@@ -1,17 +1,11 @@
import type { NextPage } from "next";
import useAuthenticate from '../hooks/useAuthenticate';
-import { useAddress, useDisconnect, useUser, useLogin, useLogout, useMetamask } from "@thirdweb-dev/react";
+import { useAddress, useDisconnect, useUser, useLogout, useMetamask, ConnectWallet } from "@thirdweb-dev/react";
import { useEffect, useState } from "react";
import { PublicationSortCriteria, useExplorePublicationsQuery } from "../graphql/generated";
+import useLogin from "../lib/auth/useLogin";
+import SignInButton from "../components/SignInButton";
export default function Home () {
- const { data, isLoading, error } = useExplorePublicationsQuery({
- request: {
- sortCriteria: PublicationSortCriteria.TopCollected,
- },
- });
-
- return (
- Hello World
- );
+ return ;
};
\ No newline at end of file