interface CreatableModule<
    T extends AttachableModuleInstance = AttachableModuleInstance,
> {
    new CreatableModule(
        privateConstructorKey: string,
        params: T["params"],
        account: AccountInstance,
        address: Lowercase<string>,
    ): T;
    configSchemas: string[];
    defaultConfigSchema: string;
    defaultLogger?: Logger;
    _noOverride(functionName: string): void;
    create<
        T extends
            AttachableModuleInstance<
                BaseParamsFields & {
                    account?: AccountInstance
                    | "random";
                    additionalSigners?: AccountInstance[];
                    addToResolvers?: boolean;
                    allowNameResolution?: boolean;
                    config: AnyConfigSchema<ModuleConfig>;
                    ephemeralQueryAccountEnabled?: boolean;
                    moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                    privateChildren?: ModuleInstance<
                        (
                            BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }
                        ),
                        ModuleEventData<object>,
                    >[];
                    publicChildren?: ModuleInstance<
                        (
                            BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }
                        ),
                        ModuleEventData<object>,
                    >[];
                },
                ModuleEventData<object>,
            >,
    >(
        this: CreatableModule<T>,
        params: T["params"],
    ): Promise<T>;
    factory<
        T extends
            AttachableModuleInstance<
                BaseParamsFields & {
                    account?: AccountInstance
                    | "random";
                    additionalSigners?: AccountInstance[];
                    addToResolvers?: boolean;
                    allowNameResolution?: boolean;
                    config: AnyConfigSchema<ModuleConfig>;
                    ephemeralQueryAccountEnabled?: boolean;
                    moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
                    privateChildren?: ModuleInstance<
                        (
                            BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }
                        ),
                        ModuleEventData<object>,
                    >[];
                    publicChildren?: ModuleInstance<
                        (
                            BaseParamsFields & { account?: AccountInstance | "random" | undefined; addToResolvers?: boolean | undefined; additionalSigners?: AccountInstance[] | undefined; ... 5 more ...; publicChildren?: ModuleInstance<...>[] | undefined; }
                        ),
                        ModuleEventData<object>,
                    >[];
                },
                ModuleEventData<object>,
            >,
    >(
        this: CreatableModule<T>,
        params: T["params"],
    ): CreatableModuleFactory<T>;
}

Type Parameters

Constructors

Properties

configSchemas: string[]
defaultConfigSchema: string
defaultLogger?: Logger

Methods

  • Type Parameters

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

    Parameters

    Returns Promise<T>

  • Type Parameters

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

    Parameters

    Returns CreatableModuleFactory<T>