/* eslint-disable @typescript-eslint/naming-convention */ import { match, P } from 'ts-pattern' import type { InputMaybe, Scalars } from './types.js' import type { Name } from './utils.js' import { GRACE_PERIOD_SECONDS } from '../../utils/consts.js' export type BlockChangedFilter = { number_gte: Scalars['Int'] } export type DomainFilter = { id?: InputMaybe id_not?: InputMaybe id_gt?: InputMaybe id_lt?: InputMaybe id_gte?: InputMaybe id_lte?: InputMaybe id_in?: InputMaybe> id_not_in?: InputMaybe> name?: InputMaybe name_not?: InputMaybe name_gt?: InputMaybe name_lt?: InputMaybe name_gte?: InputMaybe name_lte?: InputMaybe name_in?: InputMaybe> name_not_in?: InputMaybe> name_contains?: InputMaybe name_contains_nocase?: InputMaybe name_not_contains?: InputMaybe name_not_contains_nocase?: InputMaybe name_starts_with?: InputMaybe name_starts_with_nocase?: InputMaybe name_not_starts_with?: InputMaybe name_not_starts_with_nocase?: InputMaybe name_ends_with?: InputMaybe name_ends_with_nocase?: InputMaybe name_not_ends_with?: InputMaybe name_not_ends_with_nocase?: InputMaybe labelName?: InputMaybe labelName_not?: InputMaybe labelName_gt?: InputMaybe labelName_lt?: InputMaybe labelName_gte?: InputMaybe labelName_lte?: InputMaybe labelName_in?: InputMaybe> labelName_not_in?: InputMaybe> labelName_contains?: InputMaybe labelName_contains_nocase?: InputMaybe labelName_not_contains?: InputMaybe labelName_not_contains_nocase?: InputMaybe labelName_starts_with?: InputMaybe labelName_starts_with_nocase?: InputMaybe labelName_not_starts_with?: InputMaybe labelName_not_starts_with_nocase?: InputMaybe labelName_ends_with?: InputMaybe labelName_ends_with_nocase?: InputMaybe labelName_not_ends_with?: InputMaybe labelName_not_ends_with_nocase?: InputMaybe labelhash?: InputMaybe labelhash_not?: InputMaybe labelhash_gt?: InputMaybe labelhash_lt?: InputMaybe labelhash_gte?: InputMaybe labelhash_lte?: InputMaybe labelhash_in?: InputMaybe> labelhash_not_in?: InputMaybe> labelhash_contains?: InputMaybe labelhash_not_contains?: InputMaybe parent?: InputMaybe parent_not?: InputMaybe parent_gt?: InputMaybe parent_lt?: InputMaybe parent_gte?: InputMaybe parent_lte?: InputMaybe parent_in?: InputMaybe> parent_not_in?: InputMaybe> parent_contains?: InputMaybe parent_contains_nocase?: InputMaybe parent_not_contains?: InputMaybe parent_not_contains_nocase?: InputMaybe parent_starts_with?: InputMaybe parent_starts_with_nocase?: InputMaybe parent_not_starts_with?: InputMaybe parent_not_starts_with_nocase?: InputMaybe parent_ends_with?: InputMaybe parent_ends_with_nocase?: InputMaybe parent_not_ends_with?: InputMaybe parent_not_ends_with_nocase?: InputMaybe parent_?: InputMaybe subdomains_?: InputMaybe subdomainCount?: InputMaybe subdomainCount_not?: InputMaybe subdomainCount_gt?: InputMaybe subdomainCount_lt?: InputMaybe subdomainCount_gte?: InputMaybe subdomainCount_lte?: InputMaybe subdomainCount_in?: InputMaybe> subdomainCount_not_in?: InputMaybe> resolvedAddress?: InputMaybe resolvedAddress_not?: InputMaybe resolvedAddress_gt?: InputMaybe resolvedAddress_lt?: InputMaybe resolvedAddress_gte?: InputMaybe resolvedAddress_lte?: InputMaybe resolvedAddress_in?: InputMaybe> resolvedAddress_not_in?: InputMaybe> resolvedAddress_contains?: InputMaybe resolvedAddress_contains_nocase?: InputMaybe resolvedAddress_not_contains?: InputMaybe resolvedAddress_not_contains_nocase?: InputMaybe resolvedAddress_starts_with?: InputMaybe resolvedAddress_starts_with_nocase?: InputMaybe resolvedAddress_not_starts_with?: InputMaybe resolvedAddress_not_starts_with_nocase?: InputMaybe resolvedAddress_ends_with?: InputMaybe resolvedAddress_ends_with_nocase?: InputMaybe resolvedAddress_not_ends_with?: InputMaybe resolvedAddress_not_ends_with_nocase?: InputMaybe resolvedAddress_?: InputMaybe resolver?: InputMaybe resolver_not?: InputMaybe resolver_gt?: InputMaybe resolver_lt?: InputMaybe resolver_gte?: InputMaybe resolver_lte?: InputMaybe resolver_in?: InputMaybe> resolver_not_in?: InputMaybe> resolver_contains?: InputMaybe resolver_contains_nocase?: InputMaybe resolver_not_contains?: InputMaybe resolver_not_contains_nocase?: InputMaybe resolver_starts_with?: InputMaybe resolver_starts_with_nocase?: InputMaybe resolver_not_starts_with?: InputMaybe resolver_not_starts_with_nocase?: InputMaybe resolver_ends_with?: InputMaybe resolver_ends_with_nocase?: InputMaybe resolver_not_ends_with?: InputMaybe resolver_not_ends_with_nocase?: InputMaybe resolver_?: InputMaybe ttl?: InputMaybe ttl_not?: InputMaybe ttl_gt?: InputMaybe ttl_lt?: InputMaybe ttl_gte?: InputMaybe ttl_lte?: InputMaybe ttl_in?: InputMaybe> ttl_not_in?: InputMaybe> isMigrated?: InputMaybe isMigrated_not?: InputMaybe isMigrated_in?: InputMaybe> isMigrated_not_in?: InputMaybe> createdAt?: InputMaybe createdAt_not?: InputMaybe createdAt_gt?: InputMaybe createdAt_lt?: InputMaybe createdAt_gte?: InputMaybe createdAt_lte?: InputMaybe createdAt_in?: InputMaybe> createdAt_not_in?: InputMaybe> owner?: InputMaybe owner_not?: InputMaybe owner_gt?: InputMaybe owner_lt?: InputMaybe owner_gte?: InputMaybe owner_lte?: InputMaybe owner_in?: InputMaybe> owner_not_in?: InputMaybe> owner_contains?: InputMaybe owner_contains_nocase?: InputMaybe owner_not_contains?: InputMaybe owner_not_contains_nocase?: InputMaybe owner_starts_with?: InputMaybe owner_starts_with_nocase?: InputMaybe owner_not_starts_with?: InputMaybe owner_not_starts_with_nocase?: InputMaybe owner_ends_with?: InputMaybe owner_ends_with_nocase?: InputMaybe owner_not_ends_with?: InputMaybe owner_not_ends_with_nocase?: InputMaybe owner_?: InputMaybe registrant?: InputMaybe registrant_not?: InputMaybe registrant_gt?: InputMaybe registrant_lt?: InputMaybe registrant_gte?: InputMaybe registrant_lte?: InputMaybe registrant_in?: InputMaybe> registrant_not_in?: InputMaybe> registrant_contains?: InputMaybe registrant_contains_nocase?: InputMaybe registrant_not_contains?: InputMaybe registrant_not_contains_nocase?: InputMaybe registrant_starts_with?: InputMaybe registrant_starts_with_nocase?: InputMaybe registrant_not_starts_with?: InputMaybe registrant_not_starts_with_nocase?: InputMaybe registrant_ends_with?: InputMaybe registrant_ends_with_nocase?: InputMaybe registrant_not_ends_with?: InputMaybe registrant_not_ends_with_nocase?: InputMaybe registrant_?: InputMaybe wrappedOwner?: InputMaybe wrappedOwner_not?: InputMaybe wrappedOwner_gt?: InputMaybe wrappedOwner_lt?: InputMaybe wrappedOwner_gte?: InputMaybe wrappedOwner_lte?: InputMaybe wrappedOwner_in?: InputMaybe> wrappedOwner_not_in?: InputMaybe> wrappedOwner_contains?: InputMaybe wrappedOwner_contains_nocase?: InputMaybe wrappedOwner_not_contains?: InputMaybe wrappedOwner_not_contains_nocase?: InputMaybe wrappedOwner_starts_with?: InputMaybe wrappedOwner_starts_with_nocase?: InputMaybe wrappedOwner_not_starts_with?: InputMaybe wrappedOwner_not_starts_with_nocase?: InputMaybe wrappedOwner_ends_with?: InputMaybe wrappedOwner_ends_with_nocase?: InputMaybe wrappedOwner_not_ends_with?: InputMaybe wrappedOwner_not_ends_with_nocase?: InputMaybe wrappedOwner_?: InputMaybe expiryDate?: InputMaybe expiryDate_not?: InputMaybe expiryDate_gt?: InputMaybe expiryDate_lt?: InputMaybe expiryDate_gte?: InputMaybe expiryDate_lte?: InputMaybe expiryDate_in?: InputMaybe> expiryDate_not_in?: InputMaybe> registration_?: InputMaybe wrappedDomain_?: InputMaybe events_?: InputMaybe /** Filter for the block changed event. */ _change_block?: InputMaybe and?: InputMaybe>> or?: InputMaybe>> } export type DomainEventFilter = { id?: InputMaybe id_not?: InputMaybe id_gt?: InputMaybe id_lt?: InputMaybe id_gte?: InputMaybe id_lte?: InputMaybe id_in?: InputMaybe> id_not_in?: InputMaybe> domain?: InputMaybe domain_not?: InputMaybe domain_gt?: InputMaybe domain_lt?: InputMaybe domain_gte?: InputMaybe domain_lte?: InputMaybe domain_in?: InputMaybe> domain_not_in?: InputMaybe> domain_contains?: InputMaybe domain_contains_nocase?: InputMaybe domain_not_contains?: InputMaybe domain_not_contains_nocase?: InputMaybe domain_starts_with?: InputMaybe domain_starts_with_nocase?: InputMaybe domain_not_starts_with?: InputMaybe domain_not_starts_with_nocase?: InputMaybe domain_ends_with?: InputMaybe domain_ends_with_nocase?: InputMaybe domain_not_ends_with?: InputMaybe domain_not_ends_with_nocase?: InputMaybe domain_?: InputMaybe blockNumber?: InputMaybe blockNumber_not?: InputMaybe blockNumber_gt?: InputMaybe blockNumber_lt?: InputMaybe blockNumber_gte?: InputMaybe blockNumber_lte?: InputMaybe blockNumber_in?: InputMaybe> blockNumber_not_in?: InputMaybe> transactionID?: InputMaybe transactionID_not?: InputMaybe transactionID_gt?: InputMaybe transactionID_lt?: InputMaybe transactionID_gte?: InputMaybe transactionID_lte?: InputMaybe transactionID_in?: InputMaybe> transactionID_not_in?: InputMaybe> transactionID_contains?: InputMaybe transactionID_not_contains?: InputMaybe /** Filter for the block changed event. */ _change_block?: InputMaybe and?: InputMaybe>> or?: InputMaybe>> } export type RegistrationFilter = { id?: InputMaybe id_not?: InputMaybe id_gt?: InputMaybe id_lt?: InputMaybe id_gte?: InputMaybe id_lte?: InputMaybe id_in?: InputMaybe> id_not_in?: InputMaybe> domain?: InputMaybe domain_not?: InputMaybe domain_gt?: InputMaybe domain_lt?: InputMaybe domain_gte?: InputMaybe domain_lte?: InputMaybe domain_in?: InputMaybe> domain_not_in?: InputMaybe> domain_contains?: InputMaybe domain_contains_nocase?: InputMaybe domain_not_contains?: InputMaybe domain_not_contains_nocase?: InputMaybe domain_starts_with?: InputMaybe domain_starts_with_nocase?: InputMaybe domain_not_starts_with?: InputMaybe domain_not_starts_with_nocase?: InputMaybe domain_ends_with?: InputMaybe domain_ends_with_nocase?: InputMaybe domain_not_ends_with?: InputMaybe domain_not_ends_with_nocase?: InputMaybe domain_?: InputMaybe registrationDate?: InputMaybe registrationDate_not?: InputMaybe registrationDate_gt?: InputMaybe registrationDate_lt?: InputMaybe registrationDate_gte?: InputMaybe registrationDate_lte?: InputMaybe registrationDate_in?: InputMaybe> registrationDate_not_in?: InputMaybe> expiryDate?: InputMaybe expiryDate_not?: InputMaybe expiryDate_gt?: InputMaybe expiryDate_lt?: InputMaybe expiryDate_gte?: InputMaybe expiryDate_lte?: InputMaybe expiryDate_in?: InputMaybe> expiryDate_not_in?: InputMaybe> cost?: InputMaybe cost_not?: InputMaybe cost_gt?: InputMaybe cost_lt?: InputMaybe cost_gte?: InputMaybe cost_lte?: InputMaybe cost_in?: InputMaybe> cost_not_in?: InputMaybe> registrant?: InputMaybe registrant_not?: InputMaybe registrant_gt?: InputMaybe registrant_lt?: InputMaybe registrant_gte?: InputMaybe registrant_lte?: InputMaybe registrant_in?: InputMaybe> registrant_not_in?: InputMaybe> registrant_contains?: InputMaybe registrant_contains_nocase?: InputMaybe registrant_not_contains?: InputMaybe registrant_not_contains_nocase?: InputMaybe registrant_starts_with?: InputMaybe registrant_starts_with_nocase?: InputMaybe registrant_not_starts_with?: InputMaybe registrant_not_starts_with_nocase?: InputMaybe registrant_ends_with?: InputMaybe registrant_ends_with_nocase?: InputMaybe registrant_not_ends_with?: InputMaybe registrant_not_ends_with_nocase?: InputMaybe registrant_?: InputMaybe labelName?: InputMaybe labelName_not?: InputMaybe labelName_gt?: InputMaybe labelName_lt?: InputMaybe labelName_gte?: InputMaybe labelName_lte?: InputMaybe labelName_in?: InputMaybe> labelName_not_in?: InputMaybe> labelName_contains?: InputMaybe labelName_contains_nocase?: InputMaybe labelName_not_contains?: InputMaybe labelName_not_contains_nocase?: InputMaybe labelName_starts_with?: InputMaybe labelName_starts_with_nocase?: InputMaybe labelName_not_starts_with?: InputMaybe labelName_not_starts_with_nocase?: InputMaybe labelName_ends_with?: InputMaybe labelName_ends_with_nocase?: InputMaybe labelName_not_ends_with?: InputMaybe labelName_not_ends_with_nocase?: InputMaybe events_?: InputMaybe /** Filter for the block changed event. */ _change_block?: InputMaybe and?: InputMaybe>> or?: InputMaybe>> } export type RegistrationEventFilter = { id?: InputMaybe id_not?: InputMaybe id_gt?: InputMaybe id_lt?: InputMaybe id_gte?: InputMaybe id_lte?: InputMaybe id_in?: InputMaybe> id_not_in?: InputMaybe> registration?: InputMaybe registration_not?: InputMaybe registration_gt?: InputMaybe registration_lt?: InputMaybe registration_gte?: InputMaybe registration_lte?: InputMaybe registration_in?: InputMaybe> registration_not_in?: InputMaybe> registration_contains?: InputMaybe registration_contains_nocase?: InputMaybe registration_not_contains?: InputMaybe registration_not_contains_nocase?: InputMaybe registration_starts_with?: InputMaybe registration_starts_with_nocase?: InputMaybe registration_not_starts_with?: InputMaybe registration_not_starts_with_nocase?: InputMaybe registration_ends_with?: InputMaybe registration_ends_with_nocase?: InputMaybe registration_not_ends_with?: InputMaybe registration_not_ends_with_nocase?: InputMaybe registration_?: InputMaybe blockNumber?: InputMaybe blockNumber_not?: InputMaybe blockNumber_gt?: InputMaybe blockNumber_lt?: InputMaybe blockNumber_gte?: InputMaybe blockNumber_lte?: InputMaybe blockNumber_in?: InputMaybe> blockNumber_not_in?: InputMaybe> transactionID?: InputMaybe transactionID_not?: InputMaybe transactionID_gt?: InputMaybe transactionID_lt?: InputMaybe transactionID_gte?: InputMaybe transactionID_lte?: InputMaybe transactionID_in?: InputMaybe> transactionID_not_in?: InputMaybe> transactionID_contains?: InputMaybe transactionID_not_contains?: InputMaybe /** Filter for the block changed event. */ _change_block?: InputMaybe and?: InputMaybe>> or?: InputMaybe>> } export type WrappedDomainFilter = { id?: InputMaybe id_not?: InputMaybe id_gt?: InputMaybe id_lt?: InputMaybe id_gte?: InputMaybe id_lte?: InputMaybe id_in?: InputMaybe> id_not_in?: InputMaybe> domain?: InputMaybe domain_not?: InputMaybe domain_gt?: InputMaybe domain_lt?: InputMaybe domain_gte?: InputMaybe domain_lte?: InputMaybe domain_in?: InputMaybe> domain_not_in?: InputMaybe> domain_contains?: InputMaybe domain_contains_nocase?: InputMaybe domain_not_contains?: InputMaybe domain_not_contains_nocase?: InputMaybe domain_starts_with?: InputMaybe domain_starts_with_nocase?: InputMaybe domain_not_starts_with?: InputMaybe domain_not_starts_with_nocase?: InputMaybe domain_ends_with?: InputMaybe domain_ends_with_nocase?: InputMaybe domain_not_ends_with?: InputMaybe domain_not_ends_with_nocase?: InputMaybe domain_?: InputMaybe expiryDate?: InputMaybe expiryDate_not?: InputMaybe expiryDate_gt?: InputMaybe expiryDate_lt?: InputMaybe expiryDate_gte?: InputMaybe expiryDate_lte?: InputMaybe expiryDate_in?: InputMaybe> expiryDate_not_in?: InputMaybe> fuses?: InputMaybe fuses_not?: InputMaybe fuses_gt?: InputMaybe fuses_lt?: InputMaybe fuses_gte?: InputMaybe fuses_lte?: InputMaybe fuses_in?: InputMaybe> fuses_not_in?: InputMaybe> owner?: InputMaybe owner_not?: InputMaybe owner_gt?: InputMaybe owner_lt?: InputMaybe owner_gte?: InputMaybe owner_lte?: InputMaybe owner_in?: InputMaybe> owner_not_in?: InputMaybe> owner_contains?: InputMaybe owner_contains_nocase?: InputMaybe owner_not_contains?: InputMaybe owner_not_contains_nocase?: InputMaybe owner_starts_with?: InputMaybe owner_starts_with_nocase?: InputMaybe owner_not_starts_with?: InputMaybe owner_not_starts_with_nocase?: InputMaybe owner_ends_with?: InputMaybe owner_ends_with_nocase?: InputMaybe owner_not_ends_with?: InputMaybe owner_not_ends_with_nocase?: InputMaybe owner_?: InputMaybe name?: InputMaybe name_not?: InputMaybe name_gt?: InputMaybe name_lt?: InputMaybe name_gte?: InputMaybe name_lte?: InputMaybe name_in?: InputMaybe> name_not_in?: InputMaybe> name_contains?: InputMaybe name_contains_nocase?: InputMaybe name_not_contains?: InputMaybe name_not_contains_nocase?: InputMaybe name_starts_with?: InputMaybe name_starts_with_nocase?: InputMaybe name_not_starts_with?: InputMaybe name_not_starts_with_nocase?: InputMaybe name_ends_with?: InputMaybe name_ends_with_nocase?: InputMaybe name_not_ends_with?: InputMaybe name_not_ends_with_nocase?: InputMaybe /** Filter for the block changed event. */ _change_block?: InputMaybe and?: InputMaybe>> or?: InputMaybe>> } export type AccountFilter = { id?: InputMaybe id_not?: InputMaybe id_gt?: InputMaybe id_lt?: InputMaybe id_gte?: InputMaybe id_lte?: InputMaybe id_in?: InputMaybe> id_not_in?: InputMaybe> domains_?: InputMaybe wrappedDomains_?: InputMaybe registrations_?: InputMaybe /** Filter for the block changed event. */ _change_block?: InputMaybe and?: InputMaybe>> or?: InputMaybe>> } export type ResolverFilter = { id?: InputMaybe id_not?: InputMaybe id_gt?: InputMaybe id_lt?: InputMaybe id_gte?: InputMaybe id_lte?: InputMaybe id_in?: InputMaybe> id_not_in?: InputMaybe> domain?: InputMaybe domain_not?: InputMaybe domain_gt?: InputMaybe domain_lt?: InputMaybe domain_gte?: InputMaybe domain_lte?: InputMaybe domain_in?: InputMaybe> domain_not_in?: InputMaybe> domain_contains?: InputMaybe domain_contains_nocase?: InputMaybe domain_not_contains?: InputMaybe domain_not_contains_nocase?: InputMaybe domain_starts_with?: InputMaybe domain_starts_with_nocase?: InputMaybe domain_not_starts_with?: InputMaybe domain_not_starts_with_nocase?: InputMaybe domain_ends_with?: InputMaybe domain_ends_with_nocase?: InputMaybe domain_not_ends_with?: InputMaybe domain_not_ends_with_nocase?: InputMaybe domain_?: InputMaybe address?: InputMaybe address_not?: InputMaybe address_gt?: InputMaybe address_lt?: InputMaybe address_gte?: InputMaybe address_lte?: InputMaybe address_in?: InputMaybe> address_not_in?: InputMaybe> address_contains?: InputMaybe address_not_contains?: InputMaybe addr?: InputMaybe addr_not?: InputMaybe addr_gt?: InputMaybe addr_lt?: InputMaybe addr_gte?: InputMaybe addr_lte?: InputMaybe addr_in?: InputMaybe> addr_not_in?: InputMaybe> addr_contains?: InputMaybe addr_contains_nocase?: InputMaybe addr_not_contains?: InputMaybe addr_not_contains_nocase?: InputMaybe addr_starts_with?: InputMaybe addr_starts_with_nocase?: InputMaybe addr_not_starts_with?: InputMaybe addr_not_starts_with_nocase?: InputMaybe addr_ends_with?: InputMaybe addr_ends_with_nocase?: InputMaybe addr_not_ends_with?: InputMaybe addr_not_ends_with_nocase?: InputMaybe addr_?: InputMaybe contentHash?: InputMaybe contentHash_not?: InputMaybe contentHash_gt?: InputMaybe contentHash_lt?: InputMaybe contentHash_gte?: InputMaybe contentHash_lte?: InputMaybe contentHash_in?: InputMaybe> contentHash_not_in?: InputMaybe> contentHash_contains?: InputMaybe contentHash_not_contains?: InputMaybe texts?: InputMaybe> texts_not?: InputMaybe> texts_contains?: InputMaybe> texts_contains_nocase?: InputMaybe> texts_not_contains?: InputMaybe> texts_not_contains_nocase?: InputMaybe> coinTypes?: InputMaybe> coinTypes_not?: InputMaybe> coinTypes_contains?: InputMaybe> coinTypes_contains_nocase?: InputMaybe> coinTypes_not_contains?: InputMaybe> coinTypes_not_contains_nocase?: InputMaybe> events_?: InputMaybe /** Filter for the block changed event. */ _change_block?: InputMaybe and?: InputMaybe>> or?: InputMaybe>> } export type ResolverEventFilter = { id?: InputMaybe id_not?: InputMaybe id_gt?: InputMaybe id_lt?: InputMaybe id_gte?: InputMaybe id_lte?: InputMaybe id_in?: InputMaybe> id_not_in?: InputMaybe> resolver?: InputMaybe resolver_not?: InputMaybe resolver_gt?: InputMaybe resolver_lt?: InputMaybe resolver_gte?: InputMaybe resolver_lte?: InputMaybe resolver_in?: InputMaybe> resolver_not_in?: InputMaybe> resolver_contains?: InputMaybe resolver_contains_nocase?: InputMaybe resolver_not_contains?: InputMaybe resolver_not_contains_nocase?: InputMaybe resolver_starts_with?: InputMaybe resolver_starts_with_nocase?: InputMaybe resolver_not_starts_with?: InputMaybe resolver_not_starts_with_nocase?: InputMaybe resolver_ends_with?: InputMaybe resolver_ends_with_nocase?: InputMaybe resolver_not_ends_with?: InputMaybe resolver_not_ends_with_nocase?: InputMaybe resolver_?: InputMaybe blockNumber?: InputMaybe blockNumber_not?: InputMaybe blockNumber_gt?: InputMaybe blockNumber_lt?: InputMaybe blockNumber_gte?: InputMaybe blockNumber_lte?: InputMaybe blockNumber_in?: InputMaybe> blockNumber_not_in?: InputMaybe> transactionID?: InputMaybe transactionID_not?: InputMaybe transactionID_gt?: InputMaybe transactionID_lt?: InputMaybe transactionID_gte?: InputMaybe transactionID_lte?: InputMaybe transactionID_in?: InputMaybe> transactionID_not_in?: InputMaybe> transactionID_contains?: InputMaybe transactionID_not_contains?: InputMaybe /** Filter for the block changed event. */ _change_block?: InputMaybe and?: InputMaybe>> or?: InputMaybe>> } export const getExpiryDateOrderFilter = ({ orderDirection, lastDomain, }: { orderDirection: 'asc' | 'desc' lastDomain: Name }): DomainFilter => { let lastExpiryDate = lastDomain.expiryDate?.value ? lastDomain.expiryDate.value / 1000 : 0 if (lastDomain.parentName === 'pls') lastExpiryDate += GRACE_PERIOD_SECONDS return match({ lastExpiryDate, orderDirection, }) .with( { lastExpiryDate: P.number.lte(0), orderDirection: 'asc', }, () => ({ and: [{ expiryDate: null }, { id_gt: lastDomain.id }], } as DomainFilter), ) .with( { lastExpiryDate: P.number, orderDirection: 'asc', }, () => ({ or: [ { and: [ { expiryDate_gte: `${lastExpiryDate}`, }, { id_gt: lastDomain.id }, ], }, { expiryDate_gt: `${lastExpiryDate}`, }, { expiryDate: null, }, ], } as DomainFilter), ) .with( { lastExpiryDate: P.number.lte(0), orderDirection: 'desc', }, () => ({ or: [ { and: [{ expiryDate: null }, { [`id_lt`]: lastDomain.id }], }, { [`expiryDate_gt`]: 0, }, ], } as DomainFilter), ) .with( { lastExpiryDate: P.number, orderDirection: 'desc', }, () => ({ or: [ { and: [ { expiryDate_lte: `${lastExpiryDate}` }, { id_lt: lastDomain.id }, ], }, { expiryDate_lt: `${lastExpiryDate}`, }, ], } as DomainFilter), ) .exhaustive() } export const getCreatedAtOrderFilter = ({ orderDirection, lastDomain, }: { orderDirection: 'asc' | 'desc' lastDomain: Name }): DomainFilter => match({ orderDirection, }) .with( { orderDirection: 'asc', }, () => ({ or: [ { and: [ { createdAt_gte: `${lastDomain.createdAt.value / 1000}`, id_gt: lastDomain.id, }, ], }, { createdAt_gt: `${lastDomain.createdAt.value / 1000}`, }, ], } as DomainFilter), ) .with( { orderDirection: 'desc', }, () => ({ or: [ { and: [ { createdAt_lte: `${lastDomain.createdAt.value / 1000}` }, { id_lt: lastDomain.id }, ], }, { createdAt_lt: `${lastDomain.createdAt.value / 1000}`, }, ], } as DomainFilter), ) .exhaustive()