Interface SentinelInstance<TParams, TEventData>

interface SentinelInstance<
    TParams extends SentinelParams = SentinelParams,
    TEventData extends SentinelModuleEventData = SentinelModuleEventData,
> {
    account?: AccountInstance;
    addParent: (mod: ModuleInstance) => void;
    address: Lowercase<string>;
    addressCache?: (
        direction: Direction,
        includePrivate: boolean,
    ) => undefined | AddressToWeakInstanceCache;
    config: TParams["config"];
    eventData: TEventData;
    id: string;
    manifest: (
        maxDepth?: number,
        ignoreAddresses?: Lowercase<string>[],
    ) => Promisable<ModuleManifestPayload>;
    manifestQuery: (
        account: AccountInstance,
        maxDepth?: number,
        ignoreAddresses?: Lowercase<string>[],
    ) => Promisable<
        ModuleQueryResult<ModuleManifestPayload, ModuleError, BoundWitness>,
    >;
    modName?: string;
    moduleAddress: () => Promisable<
        (AddressPreviousHashPayload | AddressPayload)[],
    >;
    params: TParams;
    parents: () => Promisable<
        ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
                publicChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
            },
            ModuleEventData<object>,
        >[],
    >;
    pipeline?: "one-to-one" | "one-to-many" | "many-to-one" | "many-to-many";
    previousHash: () => Promisable<undefined | string>;
    priority: ObjectResolverPriority;
    privateChildren: () => Promisable<
        ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
                publicChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
            },
            ModuleEventData<object>,
        >[],
    >;
    publicChildren: () => Promisable<
        ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
                publicChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
            },
            ModuleEventData<object>,
        >[],
    >;
    queries: string[];
    query: <
        T extends UnsignedQueryBoundWitness = UnsignedQueryBoundWitness,
        TConf extends ModuleConfig<void, void> = ModuleConfig<void, void>,
    >(
        query: T,
        payloads?: Payload[],
        queryConfig?: TConf,
    ) => Promisable<ModuleQueryResult<Payload, ModuleError, BoundWitness>>;
    queryable: <
        T extends UnsignedQueryBoundWitness = UnsignedQueryBoundWitness,
        TConf extends ModuleConfig<void, void> = ModuleConfig<void, void>,
    >(
        query: T,
        payloads?: Payload[],
        queryConfig?: TConf,
    ) => Promisable<boolean>;
    removeParent: (address: Lowercase<string>) => void;
    report: (payloads?: Payload[]) => Promisable<Payload[]>;
    reportQuery: (
        payloads?: Payload[],
        account?: AccountInstance,
    ) => Promisable<ModuleQueryResult<Payload>>;
    siblings: () => Promisable<
        ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
                publicChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
            },
            ModuleEventData<object>,
        >[],
    >;
    start?: () => Promisable<boolean>;
    state: () => Promisable<Payload[]>;
    stateQuery: (
        account: AccountInstance,
    ) => Promisable<ModuleQueryResult<Payload, ModuleError, BoundWitness>>;
    status: ModuleStatus;
    stop?: () => Promisable<boolean>;
    clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]): void;
    emit<TEventName extends string | number | symbol>(
        eventName: TEventName,
        eventArgs: TEventData[TEventName],
    ): Promise<void>;
    emitSerial<TEventName extends string | number | symbol>(
        eventName: TEventName,
        eventArgs: TEventData[TEventName],
    ): Promise<void>;
    listenerCount(eventNames: keyof TEventData | (keyof TEventData)[]): number;
    off<TEventName extends string | number | symbol>(
        eventNames: TEventName | TEventName[],
        listener: EventListener<TEventData[TEventName]>,
    ): void;
    offAny(listener: Promise<void> | EventAnyListener<EventArgs>): void;
    on<TEventName extends string | number | symbol>(
        eventNames: TEventName | TEventName[],
        listener: EventListener<TEventData[TEventName]>,
    ): EventUnsubscribeFunction;
    onAny(listener: EventAnyListener): EventUnsubscribeFunction;
    once<TEventName extends string | number | symbol>(
        eventName: TEventName,
        listener: EventListener<TEventData[TEventName]>,
    ): EventUnsubscribeFunction;
    resolve<
        T extends
            ModuleInstance<
                BaseParamsFields & {
                    account?: AccountInstance
                    | "random";
                    additionalSigners?: AccountInstance[];
                    addToResolvers?: boolean;
                    allowNameResolution?: boolean;
                    config: AnyConfigSchema<ModuleConfig<void, void>>;
                    ephemeralQueryAccountEnabled?: boolean;
                    moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                    privateChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                    publicChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                },
                ModuleEventData<object>,
            > = ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
                publicChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
            },
            ModuleEventData<object>,
        >,
    >(): Promisable<undefined | T>;
    resolve<
        T extends
            ModuleInstance<
                BaseParamsFields & {
                    account?: AccountInstance
                    | "random";
                    additionalSigners?: AccountInstance[];
                    addToResolvers?: boolean;
                    allowNameResolution?: boolean;
                    config: AnyConfigSchema<ModuleConfig<void, void>>;
                    ephemeralQueryAccountEnabled?: boolean;
                    moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                    privateChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                    publicChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                },
                ModuleEventData<object>,
            > = ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
                publicChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
            },
            ModuleEventData<object>,
        >,
    >(
        all: "*",
        options?: ObjectFilterOptions<T>,
    ): Promisable<T[]>;
    resolve<
        T extends
            ModuleInstance<
                BaseParamsFields & {
                    account?: AccountInstance
                    | "random";
                    additionalSigners?: AccountInstance[];
                    addToResolvers?: boolean;
                    allowNameResolution?: boolean;
                    config: AnyConfigSchema<ModuleConfig<void, void>>;
                    ephemeralQueryAccountEnabled?: boolean;
                    moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                    privateChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                    publicChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                },
                ModuleEventData<object>,
            > = ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
                publicChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
            },
            ModuleEventData<object>,
        >,
    >(
        id: string,
        options?: ObjectFilterOptions<T>,
    ): Promisable<undefined | T>;
    resolve<
        T extends
            ModuleInstance<
                BaseParamsFields & {
                    account?: AccountInstance
                    | "random";
                    additionalSigners?: AccountInstance[];
                    addToResolvers?: boolean;
                    allowNameResolution?: boolean;
                    config: AnyConfigSchema<ModuleConfig<void, void>>;
                    ephemeralQueryAccountEnabled?: boolean;
                    moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                    privateChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                    publicChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                },
                ModuleEventData<object>,
            > = ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
                publicChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
            },
            ModuleEventData<object>,
        >,
    >(
        id?: string,
        options?: ObjectFilterOptions<T>,
    ): Promisable<undefined | T | T[]>;
    resolvePrivate<
        T extends
            ModuleInstance<
                BaseParamsFields & {
                    account?: AccountInstance
                    | "random";
                    additionalSigners?: AccountInstance[];
                    addToResolvers?: boolean;
                    allowNameResolution?: boolean;
                    config: AnyConfigSchema<ModuleConfig<void, void>>;
                    ephemeralQueryAccountEnabled?: boolean;
                    moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                    privateChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                    publicChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                },
                ModuleEventData<object>,
            > = ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
                publicChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
            },
            ModuleEventData<object>,
        >,
    >(
        all: "*",
        options?: ObjectFilterOptions<T>,
    ): Promise<T[]>;
    resolvePrivate<
        T extends
            ModuleInstance<
                BaseParamsFields & {
                    account?: AccountInstance
                    | "random";
                    additionalSigners?: AccountInstance[];
                    addToResolvers?: boolean;
                    allowNameResolution?: boolean;
                    config: AnyConfigSchema<ModuleConfig<void, void>>;
                    ephemeralQueryAccountEnabled?: boolean;
                    moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                    privateChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                    publicChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                },
                ModuleEventData<object>,
            > = ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
                publicChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
            },
            ModuleEventData<object>,
        >,
    >(
        id: string,
        options?: ObjectFilterOptions<T>,
    ): Promise<undefined | T>;
    resolvePrivate<
        T extends
            ModuleInstance<
                BaseParamsFields & {
                    account?: AccountInstance
                    | "random";
                    additionalSigners?: AccountInstance[];
                    addToResolvers?: boolean;
                    allowNameResolution?: boolean;
                    config: AnyConfigSchema<ModuleConfig<void, void>>;
                    ephemeralQueryAccountEnabled?: boolean;
                    moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                    privateChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                    publicChildren?: (
                        ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                    )[];
                },
                ModuleEventData<object>,
            > = ModuleInstance<
            BaseParamsFields & {
                account?: AccountInstance
                | "random";
                additionalSigners?: AccountInstance[];
                addToResolvers?: boolean;
                allowNameResolution?: boolean;
                config: AnyConfigSchema<ModuleConfig<void, void>>;
                ephemeralQueryAccountEnabled?: boolean;
                moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                privateChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
                publicChildren?: (
                    ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
                )[];
            },
            ModuleEventData<object>,
        >,
    >(
        id: string,
        options?: ObjectFilterOptions<T>,
    ): Promise<undefined | T | T[]>;
}

Type Parameters

Hierarchy (View Summary)

Properties

account?: AccountInstance
addParent: (mod: ModuleInstance) => void
address: Lowercase<string>
addressCache?: (
    direction: Direction,
    includePrivate: boolean,
) => undefined | AddressToWeakInstanceCache
config: TParams["config"]
eventData: TEventData
id: string
manifest: (
    maxDepth?: number,
    ignoreAddresses?: Lowercase<string>[],
) => Promisable<ModuleManifestPayload>
manifestQuery: (
    account: AccountInstance,
    maxDepth?: number,
    ignoreAddresses?: Lowercase<string>[],
) => Promisable<
    ModuleQueryResult<ModuleManifestPayload, ModuleError, BoundWitness>,
>
modName?: string
moduleAddress: () => Promisable<(AddressPreviousHashPayload | AddressPayload)[]>
params: TParams
parents: () => Promisable<
    ModuleInstance<
        BaseParamsFields & {
            account?: AccountInstance
            | "random";
            additionalSigners?: AccountInstance[];
            addToResolvers?: boolean;
            allowNameResolution?: boolean;
            config: AnyConfigSchema<ModuleConfig<void, void>>;
            ephemeralQueryAccountEnabled?: boolean;
            moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
            privateChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
            publicChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
        },
        ModuleEventData<object>,
    >[],
>
pipeline?: "one-to-one" | "one-to-many" | "many-to-one" | "many-to-many"
previousHash: () => Promisable<undefined | string>
privateChildren: () => Promisable<
    ModuleInstance<
        BaseParamsFields & {
            account?: AccountInstance
            | "random";
            additionalSigners?: AccountInstance[];
            addToResolvers?: boolean;
            allowNameResolution?: boolean;
            config: AnyConfigSchema<ModuleConfig<void, void>>;
            ephemeralQueryAccountEnabled?: boolean;
            moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
            privateChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
            publicChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
        },
        ModuleEventData<object>,
    >[],
>
publicChildren: () => Promisable<
    ModuleInstance<
        BaseParamsFields & {
            account?: AccountInstance
            | "random";
            additionalSigners?: AccountInstance[];
            addToResolvers?: boolean;
            allowNameResolution?: boolean;
            config: AnyConfigSchema<ModuleConfig<void, void>>;
            ephemeralQueryAccountEnabled?: boolean;
            moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
            privateChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
            publicChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
        },
        ModuleEventData<object>,
    >[],
>
queries: string[]
query: <
    T extends UnsignedQueryBoundWitness = UnsignedQueryBoundWitness,
    TConf extends ModuleConfig<void, void> = ModuleConfig<void, void>,
>(
    query: T,
    payloads?: Payload[],
    queryConfig?: TConf,
) => Promisable<ModuleQueryResult<Payload, ModuleError, BoundWitness>>
queryable: <
    T extends UnsignedQueryBoundWitness = UnsignedQueryBoundWitness,
    TConf extends ModuleConfig<void, void> = ModuleConfig<void, void>,
>(
    query: T,
    payloads?: Payload[],
    queryConfig?: TConf,
) => Promisable<boolean>
removeParent: (address: Lowercase<string>) => void
report: (payloads?: Payload[]) => Promisable<Payload[]>
reportQuery: (
    payloads?: Payload[],
    account?: AccountInstance,
) => Promisable<ModuleQueryResult<Payload>>
siblings: () => Promisable<
    ModuleInstance<
        BaseParamsFields & {
            account?: AccountInstance
            | "random";
            additionalSigners?: AccountInstance[];
            addToResolvers?: boolean;
            allowNameResolution?: boolean;
            config: AnyConfigSchema<ModuleConfig<void, void>>;
            ephemeralQueryAccountEnabled?: boolean;
            moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
            privateChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
            publicChildren?: ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>[];
        },
        ModuleEventData<object>,
    >[],
>
start?: () => Promisable<boolean>
state: () => Promisable<Payload[]>
stateQuery: (
    account: AccountInstance,
) => Promisable<ModuleQueryResult<Payload, ModuleError, BoundWitness>>
status: ModuleStatus
stop?: () => Promisable<boolean>

Methods

  • Type Parameters

    • T extends ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      > = ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      >

    Returns Promisable<undefined | T>

  • Type Parameters

    • T extends ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      > = ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      >

    Parameters

    Returns Promisable<T[]>

  • Type Parameters

    • T extends ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      > = ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      >

    Parameters

    Returns Promisable<undefined | T>

  • Type Parameters

    • T extends ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      > = ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      >

    Parameters

    Returns Promisable<undefined | T | T[]>

  • Type Parameters

    • T extends ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      > = ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      >

    Parameters

    Returns Promise<T[]>

  • Type Parameters

    • T extends ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      > = ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      >

    Parameters

    Returns Promise<undefined | T>

  • Type Parameters

    • T extends ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      > = ModuleInstance<
          BaseParamsFields & {
              account?: AccountInstance
              | "random";
              additionalSigners?: AccountInstance[];
              addToResolvers?: boolean;
              allowNameResolution?: boolean;
              config: AnyConfigSchema<ModuleConfig<void, void>>;
              ephemeralQueryAccountEnabled?: boolean;
              moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
              privateChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
              publicChildren?: (
                  ModuleInstance<BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }, ModuleEventData<...>>
              )[];
          },
          ModuleEventData<object>,
      >

    Parameters

    Returns Promise<undefined | T | T[]>