@xyo-network/module-wrapper 3.5.2 → 3.6.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
7
7
  import { ModuleManifestPayload } from '@xyo-network/manifest-model';
8
8
  import { EventAnyListener, EventListener } from '@xyo-network/module-events';
9
9
  import { AddressPreviousHashPayload, AttachableModuleInstance, InstanceTypeCheck, Module, ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleQueryResult, ModuleResolverInstance, ModuleStatus, ModuleTypeCheck, ObjectResolverPriority } from '@xyo-network/module-model';
10
- import { ModuleError, Payload, Query, WithMeta } from '@xyo-network/payload-model';
10
+ import { ModuleError, Payload, Query } from '@xyo-network/payload-model';
11
11
  import { LRUCache } from 'lru-cache';
12
12
  import type { ModuleWrapperParams } from './models.ts';
13
13
  export type ConstructableModuleWrapper<TWrapper extends ModuleWrapper> = {
@@ -106,7 +106,7 @@ export declare class ModuleWrapper<TWrappedModule extends Module = Module> exten
106
106
  protected bindQuery<T extends Query>(query: T, payloads?: Payload[], account?: AccountInstance, additionalSigners?: AccountInstance[]): PromiseEx<[QueryBoundWitness, Payload[], ModuleError[]], AccountInstance>;
107
107
  protected bindQueryInternal<T extends Query>(query: T, payloads?: Payload[], account?: AccountInstance, additionalSigners?: AccountInstance[]): Promise<[QueryBoundWitness, Payload[], ModuleError[]]>;
108
108
  protected filterErrors(result: ModuleQueryResult): Promise<ModuleError[]>;
109
- protected sendQuery<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(queryPayload: T, payloads?: P[]): Promise<WithMeta<R>[]>;
109
+ protected sendQuery<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(queryPayload: T, payloads?: P[]): Promise<R[]>;
110
110
  protected sendQueryRaw<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(queryPayload: T, payloads?: P[], account?: AccountInstance): Promise<ModuleQueryResult<R>>;
111
111
  }
112
112
  //# sourceMappingURL=ModuleWrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleWrapper.d.ts","sourceRoot":"","sources":["../../src/ModuleWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModuleWrapper.d.ts","sourceRoot":"","sources":["../../src/ModuleWrapper.ts"],"names":[],"mappings":"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"}
@@ -296,7 +296,7 @@ var ModuleWrapper = class extends Base {
296
296
  }, account);
297
297
  }
298
298
  async bindQueryInternal(query, payloads, account = this.account, additionalSigners = this.additionalSigners) {
299
- const builder = await new QueryBoundWitnessBuilder().payloads(payloads).query(query);
299
+ const builder = new QueryBoundWitnessBuilder().payloads(payloads).query(query);
300
300
  const accounts = [
301
301
  account,
302
302
  ...additionalSigners
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ModuleWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { Address } from '@xylabs/hex'\nimport { Logger } from '@xylabs/logger'\nimport { Base } from '@xylabs/object'\nimport { Promisable, PromiseEx } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload } from '@xyo-network/manifest-model'\nimport { EventAnyListener, EventListener } from '@xyo-network/module-events'\nimport {\n AddressPreviousHashPayload,\n AddressPreviousHashSchema,\n asAttachableModuleInstance,\n asModuleInstance,\n AttachableModuleInstance,\n duplicateModules,\n InstanceTypeCheck,\n isModule,\n isModuleInstance,\n Module,\n ModuleAddressQuery,\n ModuleAddressQuerySchema,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleManifestQuery,\n ModuleManifestQuerySchema,\n ModuleQueryResult,\n ModuleResolverInstance,\n ModuleStateQuery,\n ModuleStateQuerySchema,\n ModuleStatus,\n ModuleTypeCheck,\n ObjectResolverPriority,\n} from '@xyo-network/module-model'\nimport {\n ModuleError, ModuleErrorSchema, Payload, Query, WithMeta,\n} from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ModuleWrapperParams } from './models.ts'\n\nexport type ConstructableModuleWrapper<TWrapper extends ModuleWrapper> = {\n defaultLogger?: Logger\n instanceIdentityCheck: InstanceTypeCheck\n moduleIdentityCheck: ModuleTypeCheck\n requiredQueries: string[]\n new (params: ModuleWrapperParams<TWrapper['mod']>): TWrapper\n\n canWrap(mod: Module | undefined): boolean\n\n is<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapper?: any,\n ): wrapper is TModuleWrapper\n\n tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper | undefined\n\n wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper\n}\n\nexport function constructableModuleWrapper<TWrapper extends ModuleWrapper>() {\n return <U extends ConstructableModuleWrapper<TWrapper>>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n\n@constructableModuleWrapper()\nexport class ModuleWrapper<TWrappedModule extends Module = Module>\n extends Base<Exclude<Omit<TWrappedModule['params'], 'config'> & { config: Exclude<TWrappedModule['params']['config'], undefined> }, undefined>>\n implements AttachableModuleInstance<TWrappedModule['params'], TWrappedModule['eventData']> {\n static instanceIdentityCheck: InstanceTypeCheck = isModuleInstance\n static moduleIdentityCheck: ModuleTypeCheck = isModule\n static requiredQueries: string[] = [ModuleStateQuerySchema]\n\n eventData = {} as TWrappedModule['eventData']\n\n protected readonly cachedCalls = new LRUCache<string, Payload[]>({\n max: 1000, ttl: 1000 * 60, ttlAutopurge: true,\n })\n\n protected readonly wrapperParams: ModuleWrapperParams<TWrappedModule>\n\n private _parents: ModuleInstance[] = []\n private _status: ModuleStatus = 'wrapped'\n\n constructor(params: ModuleWrapperParams<TWrappedModule>) {\n const mutatedWrapperParams = { ...params } as ModuleWrapperParams<TWrappedModule>\n const mutatedParams = { ...params.mod.params, config: { ...params.mod.params.config } } as Exclude<\n Omit<TWrappedModule['params'], 'config'> & { config: Exclude<TWrappedModule['params']['config'], undefined> },\n undefined\n >\n\n // set the root params to the wrapped mod params\n super(mutatedParams)\n this.wrapperParams = mutatedWrapperParams\n }\n\n get account() {\n return this.wrapperParams.account\n }\n\n get additionalSigners() {\n return this.wrapperParams.additionalSigners ?? []\n }\n\n get address() {\n return this.mod.address\n }\n\n get config() {\n return this.mod.config as Exclude<TWrappedModule['params']['config'], undefined>\n }\n\n get downResolver(): ModuleResolverInstance {\n // Should we be allowing this?\n const instance: AttachableModuleInstance | undefined = asAttachableModuleInstance(this.mod)\n if (instance) {\n return instance.downResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n get id() {\n return this.mod.id\n }\n\n get mod() {\n return this.wrapperParams.mod\n }\n\n get modName() {\n return this.mod.modName\n }\n\n get priority() {\n return ObjectResolverPriority.Low\n }\n\n get privateResolver(): ModuleResolverInstance {\n // Should we be allowing this?\n const instance = asAttachableModuleInstance(this.mod)\n if (instance) {\n return instance.privateResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n get queries(): string[] {\n return this.mod.queries\n }\n\n get status() {\n return this._status\n }\n\n get upResolver(): ModuleResolverInstance {\n // Should we be allowing this?\n const instance = asAttachableModuleInstance(this.mod)\n if (instance) {\n return instance.upResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n protected set status(value: ModuleStatus) {\n if (this._status !== 'dead') {\n this._status = value\n }\n }\n\n static canWrap(mod?: Module) {\n return !!mod && this.moduleIdentityCheck(mod)\n }\n\n static hasRequiredQueries(mod: Module) {\n return this.missingRequiredQueries(mod).length === 0\n }\n\n static is<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapper: any,\n ): wrapper is TModuleWrapper {\n return wrapper instanceof this\n }\n\n static missingRequiredQueries(mod: Module): string[] {\n const modQueries = mod.queries\n return (\n this.requiredQueries.map((query) => {\n return modQueries.includes(query) ? null : query\n })\n ).filter(exists)\n }\n\n static tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity = true,\n ): TModuleWrapper | undefined {\n if (!checkIdentity || this.canWrap(mod)) {\n if (!account) {\n this.defaultLogger?.info('Anonymous Module Wrapper Created')\n }\n return new this({ account, mod: mod as TModuleWrapper['mod'] })\n }\n }\n\n static with<TModuleWrapper extends ModuleWrapper, R extends Promisable<void> = void>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n mod: any,\n\n closure: (mod: TModuleWrapper) => R,\n ): R | undefined {\n return this.is(mod) ? closure(mod) : undefined\n }\n\n static wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity = true,\n ): TModuleWrapper {\n assertEx(!checkIdentity || (mod && this.moduleIdentityCheck(mod)), () => `Passed mod failed identity check: ${mod?.config?.schema}`)\n return assertEx(this.tryWrap(mod, account, checkIdentity), () => 'Unable to wrap mod as ModuleWrapper')\n }\n\n addParent(mod: ModuleInstance) {\n const existingEntry = this._parents.find(parent => parent.address === mod.address)\n if (!existingEntry) {\n this._parents.push(mod)\n }\n }\n\n async addressPreviousHash(): Promise<AddressPreviousHashPayload> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return assertEx(\n (await this.sendQuery(queryPayload)).find(payload => payload.schema === AddressPreviousHashSchema) as WithMeta<AddressPreviousHashPayload>,\n () => 'Result did not include correct payload',\n )\n }\n\n clearListeners(eventNames: Parameters<TWrappedModule['clearListeners']>[0]) {\n return this.mod.clearListeners(eventNames)\n }\n\n emit(eventName: Parameters<TWrappedModule['emit']>[0], eventArgs: Parameters<TWrappedModule['emit']>[1]) {\n return this.mod.emit(eventName, eventArgs)\n }\n\n emitSerial(eventName: Parameters<TWrappedModule['emitSerial']>[0], eventArgs: Parameters<TWrappedModule['emitSerial']>[1]) {\n return this.mod.emitSerial(eventName, eventArgs)\n }\n\n listenerCount(eventNames: Parameters<TWrappedModule['listenerCount']>[0]) {\n return this.mod.listenerCount(eventNames)\n }\n\n async manifest(maxDepth?: number): Promise<ModuleManifestPayload> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }\n return (await this.sendQuery(queryPayload))[0] as WithMeta<ModuleManifestPayload>\n }\n\n async manifestQuery(account: AccountInstance, maxDepth?: number): Promise<ModuleQueryResult<ModuleManifestPayload>> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async moduleAddress(): Promise<AddressPreviousHashPayload[]> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return (await this.sendQuery(queryPayload)) as WithMeta<AddressPreviousHashPayload>[]\n }\n\n off<TEventName extends keyof TWrappedModule['eventData']>(\n eventNames: TEventName,\n listener: EventListener<TWrappedModule['eventData'][TEventName]>,\n ) {\n return this.mod.off(eventNames, listener)\n }\n\n offAny(listener: EventAnyListener) {\n return this.mod.offAny(listener)\n }\n\n on<TEventName extends keyof TWrappedModule['eventData']>(eventNames: TEventName, listener: EventListener<TWrappedModule['eventData'][TEventName]>) {\n return this.mod.on(eventNames, listener)\n }\n\n onAny(listener: EventAnyListener) {\n return this.mod.onAny(listener)\n }\n\n once<TEventName extends keyof TWrappedModule['eventData']>(\n eventName: TEventName,\n listener: EventListener<TWrappedModule['eventData'][TEventName]>,\n ) {\n return this.mod.once(eventName, listener)\n }\n\n parents(): Promisable<ModuleInstance[]> {\n return this._parents\n }\n\n async previousHash(): Promise<string | undefined> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return ((await this.sendQuery(queryPayload)).pop() as WithMeta<AddressPreviousHashPayload>).previousHash\n }\n\n async previousHashQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPreviousHashPayload>> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async privateChildren(): Promise<ModuleInstance[]> {\n if (isModuleInstance(this.mod)) {\n return await this.mod.privateChildren()\n }\n return []\n }\n\n async publicChildren(): Promise<ModuleInstance[]> {\n if (isModuleInstance(this.mod)) {\n return await this.mod.publicChildren()\n }\n return []\n }\n\n async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {\n return await this.mod.query(query, payloads)\n }\n\n queryable<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]) {\n return this.mod.queryable(query, payloads)\n }\n\n removeParent(address: Address) {\n this._parents = this._parents.filter(item => item.address !== address)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n async resolve<T extends ModuleInstance = ModuleInstance>(): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T> | undefined,\n ): Promise<ModuleInstance>\n /** @deprecated use '*' if trying to resolve all */\n async resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleIdentifier | ModuleFilter<T> = '*',\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const instance = asModuleInstance(this.mod)\n if (instance?.['resolve']) {\n if (idOrFilter === '*') {\n return await instance.resolve<T>('*', options)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return await instance.resolve<T>(idOrFilter, options)\n }\n default: {\n return await instance.resolve<T>(idOrFilter, options)\n }\n }\n }\n return typeof idOrFilter === 'string' && idOrFilter !== '*' ? undefined : []\n }\n\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n _options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n if (id === '*') return await Promise.resolve([])\n }\n\n async siblings(): Promise<ModuleInstance[]> {\n return (await Promise.all((await this.parents()).map(parent => parent.publicChildren()))).flat().filter(duplicateModules)\n }\n\n async state(): Promise<Payload[]> {\n const cachedResult = this.cachedCalls.get('state')\n if (cachedResult) {\n return cachedResult\n }\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n const result = await this.sendQuery(queryPayload)\n this.cachedCalls.set('state', result)\n return result\n }\n\n async stateQuery(_account: AccountInstance): Promise<ModuleQueryResult> {\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n return await this.sendQueryRaw(queryPayload)\n }\n\n protected bindQuery<T extends Query>(\n query: T,\n payloads?: Payload[],\n account = this.account,\n additionalSigners = this.additionalSigners,\n ): PromiseEx<[QueryBoundWitness, Payload[], ModuleError[]], AccountInstance> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return new PromiseEx<[QueryBoundWitness, Payload[], ModuleError[]], AccountInstance>(async (resolve) => {\n const result = await this.bindQueryInternal(query, payloads, account, additionalSigners)\n resolve?.(result)\n return result\n }, account)\n }\n\n protected async bindQueryInternal<T extends Query>(\n query: T,\n payloads?: Payload[],\n account = this.account,\n additionalSigners = this.additionalSigners,\n ): Promise<[QueryBoundWitness, Payload[], ModuleError[]]> {\n const builder = await new QueryBoundWitnessBuilder().payloads(payloads).query(query)\n const accounts = [account, ...additionalSigners].filter(exists)\n return await (account ? builder.signers(accounts) : builder).build()\n }\n\n protected async filterErrors(result: ModuleQueryResult): Promise<ModuleError[]> {\n const wrapper = await BoundWitnessWrapper.wrap(result[0], result[1])\n return wrapper.payloadsBySchema<WithMeta<ModuleError>>(ModuleErrorSchema)\n }\n\n protected async sendQuery<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(\n queryPayload: T,\n payloads?: P[],\n ): Promise<WithMeta<R>[]> {\n const queryResults = await this.sendQueryRaw(queryPayload, payloads)\n const [, resultPayloads, errors] = queryResults\n\n /* TODO: Figure out what to do with the returning BW. Should we store them in a queue in case the caller wants to see them? */\n\n if (errors && errors.length > 0) {\n /* TODO: Figure out how to rollup multiple Errors */\n throw errors[0]\n }\n\n return resultPayloads as WithMeta<R>[]\n }\n\n protected async sendQueryRaw<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(\n queryPayload: T,\n payloads?: P[],\n account?: AccountInstance,\n ): Promise<ModuleQueryResult<R>> {\n // Bind them\n const query = await this.bindQuery(queryPayload, payloads, account)\n\n // Send them off\n return (await this.query(query[0], query[1])) as ModuleQueryResult<R>\n }\n}\n"],"mappings":"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","names":["assertEx","exists","Base","PromiseEx","QueryBoundWitnessBuilder","BoundWitnessWrapper","AddressPreviousHashSchema","asAttachableModuleInstance","asModuleInstance","duplicateModules","isModule","isModuleInstance","ModuleAddressQuerySchema","ModuleManifestQuerySchema","ModuleStateQuerySchema","ObjectResolverPriority","ModuleErrorSchema","LRUCache","constructableModuleWrapper","constructor","ModuleWrapper","Base","instanceIdentityCheck","isModuleInstance","moduleIdentityCheck","isModule","requiredQueries","ModuleStateQuerySchema","eventData","cachedCalls","LRUCache","max","ttl","ttlAutopurge","wrapperParams","_parents","_status","params","mutatedWrapperParams","mutatedParams","mod","config","account","additionalSigners","address","downResolver","instance","asAttachableModuleInstance","Error","id","modName","priority","ObjectResolverPriority","Low","privateResolver","queries","status","upResolver","value","canWrap","hasRequiredQueries","missingRequiredQueries","length","is","wrapper","modQueries","map","query","includes","filter","exists","tryWrap","checkIdentity","defaultLogger","info","with","closure","undefined","wrap","assertEx","schema","addParent","existingEntry","find","parent","push","addressPreviousHash","queryPayload","ModuleAddressQuerySchema","sendQuery","payload","AddressPreviousHashSchema","clearListeners","eventNames","emit","eventName","eventArgs","emitSerial","listenerCount","manifest","maxDepth","ModuleManifestQuerySchema","manifestQuery","sendQueryRaw","moduleAddress","off","listener","offAny","on","onAny","once","parents","previousHash","pop","previousHashQuery","privateChildren","publicChildren","payloads","queryable","removeParent","item","resolve","idOrFilter","options","asModuleInstance","resolvePrivate","_options","Promise","siblings","all","flat","duplicateModules","state","cachedResult","get","result","set","stateQuery","_account","bindQuery","PromiseEx","bindQueryInternal","builder","QueryBoundWitnessBuilder","accounts","signers","build","filterErrors","BoundWitnessWrapper","payloadsBySchema","ModuleErrorSchema","queryResults","resultPayloads","errors"]}
1
+ {"version":3,"sources":["../../src/ModuleWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { Address } from '@xylabs/hex'\nimport { Logger } from '@xylabs/logger'\nimport { Base } from '@xylabs/object'\nimport { Promisable, PromiseEx } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload } from '@xyo-network/manifest-model'\nimport { EventAnyListener, EventListener } from '@xyo-network/module-events'\nimport {\n AddressPreviousHashPayload,\n AddressPreviousHashSchema,\n asAttachableModuleInstance,\n asModuleInstance,\n AttachableModuleInstance,\n duplicateModules,\n InstanceTypeCheck,\n isModule,\n isModuleInstance,\n Module,\n ModuleAddressQuery,\n ModuleAddressQuerySchema,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleManifestQuery,\n ModuleManifestQuerySchema,\n ModuleQueryResult,\n ModuleResolverInstance,\n ModuleStateQuery,\n ModuleStateQuerySchema,\n ModuleStatus,\n ModuleTypeCheck,\n ObjectResolverPriority,\n} from '@xyo-network/module-model'\nimport {\n ModuleError, ModuleErrorSchema, Payload, Query,\n} from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ModuleWrapperParams } from './models.ts'\n\nexport type ConstructableModuleWrapper<TWrapper extends ModuleWrapper> = {\n defaultLogger?: Logger\n instanceIdentityCheck: InstanceTypeCheck\n moduleIdentityCheck: ModuleTypeCheck\n requiredQueries: string[]\n new (params: ModuleWrapperParams<TWrapper['mod']>): TWrapper\n\n canWrap(mod: Module | undefined): boolean\n\n is<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapper?: any,\n ): wrapper is TModuleWrapper\n\n tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper | undefined\n\n wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper\n}\n\nexport function constructableModuleWrapper<TWrapper extends ModuleWrapper>() {\n return <U extends ConstructableModuleWrapper<TWrapper>>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n\n@constructableModuleWrapper()\nexport class ModuleWrapper<TWrappedModule extends Module = Module>\n extends Base<Exclude<Omit<TWrappedModule['params'], 'config'> & { config: Exclude<TWrappedModule['params']['config'], undefined> }, undefined>>\n implements AttachableModuleInstance<TWrappedModule['params'], TWrappedModule['eventData']> {\n static instanceIdentityCheck: InstanceTypeCheck = isModuleInstance\n static moduleIdentityCheck: ModuleTypeCheck = isModule\n static requiredQueries: string[] = [ModuleStateQuerySchema]\n\n eventData = {} as TWrappedModule['eventData']\n\n protected readonly cachedCalls = new LRUCache<string, Payload[]>({\n max: 1000, ttl: 1000 * 60, ttlAutopurge: true,\n })\n\n protected readonly wrapperParams: ModuleWrapperParams<TWrappedModule>\n\n private _parents: ModuleInstance[] = []\n private _status: ModuleStatus = 'wrapped'\n\n constructor(params: ModuleWrapperParams<TWrappedModule>) {\n const mutatedWrapperParams = { ...params } as ModuleWrapperParams<TWrappedModule>\n const mutatedParams = { ...params.mod.params, config: { ...params.mod.params.config } } as Exclude<\n Omit<TWrappedModule['params'], 'config'> & { config: Exclude<TWrappedModule['params']['config'], undefined> },\n undefined\n >\n\n // set the root params to the wrapped mod params\n super(mutatedParams)\n this.wrapperParams = mutatedWrapperParams\n }\n\n get account() {\n return this.wrapperParams.account\n }\n\n get additionalSigners() {\n return this.wrapperParams.additionalSigners ?? []\n }\n\n get address() {\n return this.mod.address\n }\n\n get config() {\n return this.mod.config as Exclude<TWrappedModule['params']['config'], undefined>\n }\n\n get downResolver(): ModuleResolverInstance {\n // Should we be allowing this?\n const instance: AttachableModuleInstance | undefined = asAttachableModuleInstance(this.mod)\n if (instance) {\n return instance.downResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n get id() {\n return this.mod.id\n }\n\n get mod() {\n return this.wrapperParams.mod\n }\n\n get modName() {\n return this.mod.modName\n }\n\n get priority() {\n return ObjectResolverPriority.Low\n }\n\n get privateResolver(): ModuleResolverInstance {\n // Should we be allowing this?\n const instance = asAttachableModuleInstance(this.mod)\n if (instance) {\n return instance.privateResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n get queries(): string[] {\n return this.mod.queries\n }\n\n get status() {\n return this._status\n }\n\n get upResolver(): ModuleResolverInstance {\n // Should we be allowing this?\n const instance = asAttachableModuleInstance(this.mod)\n if (instance) {\n return instance.upResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n protected set status(value: ModuleStatus) {\n if (this._status !== 'dead') {\n this._status = value\n }\n }\n\n static canWrap(mod?: Module) {\n return !!mod && this.moduleIdentityCheck(mod)\n }\n\n static hasRequiredQueries(mod: Module) {\n return this.missingRequiredQueries(mod).length === 0\n }\n\n static is<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapper: any,\n ): wrapper is TModuleWrapper {\n return wrapper instanceof this\n }\n\n static missingRequiredQueries(mod: Module): string[] {\n const modQueries = mod.queries\n return (\n this.requiredQueries.map((query) => {\n return modQueries.includes(query) ? null : query\n })\n ).filter(exists)\n }\n\n static tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity = true,\n ): TModuleWrapper | undefined {\n if (!checkIdentity || this.canWrap(mod)) {\n if (!account) {\n this.defaultLogger?.info('Anonymous Module Wrapper Created')\n }\n return new this({ account, mod: mod as TModuleWrapper['mod'] })\n }\n }\n\n static with<TModuleWrapper extends ModuleWrapper, R extends Promisable<void> = void>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n mod: any,\n\n closure: (mod: TModuleWrapper) => R,\n ): R | undefined {\n return this.is(mod) ? closure(mod) : undefined\n }\n\n static wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity = true,\n ): TModuleWrapper {\n assertEx(!checkIdentity || (mod && this.moduleIdentityCheck(mod)), () => `Passed mod failed identity check: ${mod?.config?.schema}`)\n return assertEx(this.tryWrap(mod, account, checkIdentity), () => 'Unable to wrap mod as ModuleWrapper')\n }\n\n addParent(mod: ModuleInstance) {\n const existingEntry = this._parents.find(parent => parent.address === mod.address)\n if (!existingEntry) {\n this._parents.push(mod)\n }\n }\n\n async addressPreviousHash(): Promise<AddressPreviousHashPayload> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return assertEx(\n (await this.sendQuery(queryPayload)).find(payload => payload.schema === AddressPreviousHashSchema) as AddressPreviousHashPayload,\n () => 'Result did not include correct payload',\n )\n }\n\n clearListeners(eventNames: Parameters<TWrappedModule['clearListeners']>[0]) {\n return this.mod.clearListeners(eventNames)\n }\n\n emit(eventName: Parameters<TWrappedModule['emit']>[0], eventArgs: Parameters<TWrappedModule['emit']>[1]) {\n return this.mod.emit(eventName, eventArgs)\n }\n\n emitSerial(eventName: Parameters<TWrappedModule['emitSerial']>[0], eventArgs: Parameters<TWrappedModule['emitSerial']>[1]) {\n return this.mod.emitSerial(eventName, eventArgs)\n }\n\n listenerCount(eventNames: Parameters<TWrappedModule['listenerCount']>[0]) {\n return this.mod.listenerCount(eventNames)\n }\n\n async manifest(maxDepth?: number): Promise<ModuleManifestPayload> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }\n return (await this.sendQuery(queryPayload))[0] as ModuleManifestPayload\n }\n\n async manifestQuery(account: AccountInstance, maxDepth?: number): Promise<ModuleQueryResult<ModuleManifestPayload>> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async moduleAddress(): Promise<AddressPreviousHashPayload[]> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return (await this.sendQuery(queryPayload)) as AddressPreviousHashPayload[]\n }\n\n off<TEventName extends keyof TWrappedModule['eventData']>(\n eventNames: TEventName,\n listener: EventListener<TWrappedModule['eventData'][TEventName]>,\n ) {\n return this.mod.off(eventNames, listener)\n }\n\n offAny(listener: EventAnyListener) {\n return this.mod.offAny(listener)\n }\n\n on<TEventName extends keyof TWrappedModule['eventData']>(eventNames: TEventName, listener: EventListener<TWrappedModule['eventData'][TEventName]>) {\n return this.mod.on(eventNames, listener)\n }\n\n onAny(listener: EventAnyListener) {\n return this.mod.onAny(listener)\n }\n\n once<TEventName extends keyof TWrappedModule['eventData']>(\n eventName: TEventName,\n listener: EventListener<TWrappedModule['eventData'][TEventName]>,\n ) {\n return this.mod.once(eventName, listener)\n }\n\n parents(): Promisable<ModuleInstance[]> {\n return this._parents\n }\n\n async previousHash(): Promise<string | undefined> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return ((await this.sendQuery(queryPayload)).pop() as AddressPreviousHashPayload).previousHash\n }\n\n async previousHashQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPreviousHashPayload>> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async privateChildren(): Promise<ModuleInstance[]> {\n if (isModuleInstance(this.mod)) {\n return await this.mod.privateChildren()\n }\n return []\n }\n\n async publicChildren(): Promise<ModuleInstance[]> {\n if (isModuleInstance(this.mod)) {\n return await this.mod.publicChildren()\n }\n return []\n }\n\n async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {\n return await this.mod.query(query, payloads)\n }\n\n queryable<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]) {\n return this.mod.queryable(query, payloads)\n }\n\n removeParent(address: Address) {\n this._parents = this._parents.filter(item => item.address !== address)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n async resolve<T extends ModuleInstance = ModuleInstance>(): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T> | undefined,\n ): Promise<ModuleInstance>\n /** @deprecated use '*' if trying to resolve all */\n async resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleIdentifier | ModuleFilter<T> = '*',\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const instance = asModuleInstance(this.mod)\n if (instance?.['resolve']) {\n if (idOrFilter === '*') {\n return await instance.resolve<T>('*', options)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return await instance.resolve<T>(idOrFilter, options)\n }\n default: {\n return await instance.resolve<T>(idOrFilter, options)\n }\n }\n }\n return typeof idOrFilter === 'string' && idOrFilter !== '*' ? undefined : []\n }\n\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n _options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n if (id === '*') return await Promise.resolve([])\n }\n\n async siblings(): Promise<ModuleInstance[]> {\n return (await Promise.all((await this.parents()).map(parent => parent.publicChildren()))).flat().filter(duplicateModules)\n }\n\n async state(): Promise<Payload[]> {\n const cachedResult = this.cachedCalls.get('state')\n if (cachedResult) {\n return cachedResult\n }\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n const result = await this.sendQuery(queryPayload)\n this.cachedCalls.set('state', result)\n return result\n }\n\n async stateQuery(_account: AccountInstance): Promise<ModuleQueryResult> {\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n return await this.sendQueryRaw(queryPayload)\n }\n\n protected bindQuery<T extends Query>(\n query: T,\n payloads?: Payload[],\n account = this.account,\n additionalSigners = this.additionalSigners,\n ): PromiseEx<[QueryBoundWitness, Payload[], ModuleError[]], AccountInstance> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return new PromiseEx<[QueryBoundWitness, Payload[], ModuleError[]], AccountInstance>(async (resolve) => {\n const result = await this.bindQueryInternal(query, payloads, account, additionalSigners)\n resolve?.(result)\n return result\n }, account)\n }\n\n protected async bindQueryInternal<T extends Query>(\n query: T,\n payloads?: Payload[],\n account = this.account,\n additionalSigners = this.additionalSigners,\n ): Promise<[QueryBoundWitness, Payload[], ModuleError[]]> {\n const builder = new QueryBoundWitnessBuilder().payloads(payloads).query(query)\n const accounts = [account, ...additionalSigners].filter(exists)\n return await (account ? builder.signers(accounts) : builder).build()\n }\n\n protected async filterErrors(result: ModuleQueryResult): Promise<ModuleError[]> {\n const wrapper = await BoundWitnessWrapper.wrap(result[0], result[1])\n return wrapper.payloadsBySchema<ModuleError>(ModuleErrorSchema)\n }\n\n protected async sendQuery<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(\n queryPayload: T,\n payloads?: P[],\n ): Promise<R[]> {\n const queryResults = await this.sendQueryRaw(queryPayload, payloads)\n const [, resultPayloads, errors] = queryResults\n\n /* TODO: Figure out what to do with the returning BW. Should we store them in a queue in case the caller wants to see them? */\n\n if (errors && errors.length > 0) {\n /* TODO: Figure out how to rollup multiple Errors */\n throw errors[0]\n }\n\n return resultPayloads as R[]\n }\n\n protected async sendQueryRaw<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(\n queryPayload: T,\n payloads?: P[],\n account?: AccountInstance,\n ): Promise<ModuleQueryResult<R>> {\n // Bind them\n const query = await this.bindQuery(queryPayload, payloads, account)\n\n // Send them off\n return (await this.query(query[0], query[1])) as ModuleQueryResult<R>\n }\n}\n"],"mappings":"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","names":["assertEx","exists","Base","PromiseEx","QueryBoundWitnessBuilder","BoundWitnessWrapper","AddressPreviousHashSchema","asAttachableModuleInstance","asModuleInstance","duplicateModules","isModule","isModuleInstance","ModuleAddressQuerySchema","ModuleManifestQuerySchema","ModuleStateQuerySchema","ObjectResolverPriority","ModuleErrorSchema","LRUCache","constructableModuleWrapper","constructor","ModuleWrapper","Base","instanceIdentityCheck","isModuleInstance","moduleIdentityCheck","isModule","requiredQueries","ModuleStateQuerySchema","eventData","cachedCalls","LRUCache","max","ttl","ttlAutopurge","wrapperParams","_parents","_status","params","mutatedWrapperParams","mutatedParams","mod","config","account","additionalSigners","address","downResolver","instance","asAttachableModuleInstance","Error","id","modName","priority","ObjectResolverPriority","Low","privateResolver","queries","status","upResolver","value","canWrap","hasRequiredQueries","missingRequiredQueries","length","is","wrapper","modQueries","map","query","includes","filter","exists","tryWrap","checkIdentity","defaultLogger","info","with","closure","undefined","wrap","assertEx","schema","addParent","existingEntry","find","parent","push","addressPreviousHash","queryPayload","ModuleAddressQuerySchema","sendQuery","payload","AddressPreviousHashSchema","clearListeners","eventNames","emit","eventName","eventArgs","emitSerial","listenerCount","manifest","maxDepth","ModuleManifestQuerySchema","manifestQuery","sendQueryRaw","moduleAddress","off","listener","offAny","on","onAny","once","parents","previousHash","pop","previousHashQuery","privateChildren","publicChildren","payloads","queryable","removeParent","item","resolve","idOrFilter","options","asModuleInstance","resolvePrivate","_options","Promise","siblings","all","flat","duplicateModules","state","cachedResult","get","result","set","stateQuery","_account","bindQuery","PromiseEx","bindQueryInternal","builder","QueryBoundWitnessBuilder","accounts","signers","build","filterErrors","BoundWitnessWrapper","payloadsBySchema","ModuleErrorSchema","queryResults","resultPayloads","errors"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/module-wrapper",
3
- "version": "3.5.2",
3
+ "version": "3.6.0-rc.1",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -29,20 +29,20 @@
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/neutral/index.d.ts",
31
31
  "dependencies": {
32
- "@xylabs/assert": "^4.4.9",
33
- "@xylabs/exists": "^4.4.9",
34
- "@xylabs/hex": "^4.4.9",
35
- "@xylabs/logger": "^4.4.9",
36
- "@xylabs/object": "^4.4.9",
37
- "@xylabs/promise": "^4.4.9",
38
- "@xyo-network/account-model": "^3.5.2",
39
- "@xyo-network/boundwitness-builder": "^3.5.2",
40
- "@xyo-network/boundwitness-model": "^3.5.2",
41
- "@xyo-network/boundwitness-wrapper": "^3.5.2",
42
- "@xyo-network/manifest-model": "^3.5.2",
43
- "@xyo-network/module-events": "^3.5.2",
44
- "@xyo-network/module-model": "^3.5.2",
45
- "@xyo-network/payload-model": "^3.5.2",
32
+ "@xylabs/assert": "^4.4.12",
33
+ "@xylabs/exists": "^4.4.12",
34
+ "@xylabs/hex": "^4.4.12",
35
+ "@xylabs/logger": "^4.4.12",
36
+ "@xylabs/object": "^4.4.12",
37
+ "@xylabs/promise": "^4.4.12",
38
+ "@xyo-network/account-model": "^3.6.0-rc.1",
39
+ "@xyo-network/boundwitness-builder": "^3.6.0-rc.1",
40
+ "@xyo-network/boundwitness-model": "^3.6.0-rc.1",
41
+ "@xyo-network/boundwitness-wrapper": "^3.6.0-rc.1",
42
+ "@xyo-network/manifest-model": "^3.6.0-rc.1",
43
+ "@xyo-network/module-events": "^3.6.0-rc.1",
44
+ "@xyo-network/module-model": "^3.6.0-rc.1",
45
+ "@xyo-network/payload-model": "^3.6.0-rc.1",
46
46
  "lru-cache": "^11.0.2"
47
47
  },
48
48
  "devDependencies": {
@@ -52,5 +52,6 @@
52
52
  },
53
53
  "publishConfig": {
54
54
  "access": "public"
55
- }
55
+ },
56
+ "stableVersion": "3.5.2"
56
57
  }
@@ -38,7 +38,7 @@ import {
38
38
  ObjectResolverPriority,
39
39
  } from '@xyo-network/module-model'
40
40
  import {
41
- ModuleError, ModuleErrorSchema, Payload, Query, WithMeta,
41
+ ModuleError, ModuleErrorSchema, Payload, Query,
42
42
  } from '@xyo-network/payload-model'
43
43
  import { LRUCache } from 'lru-cache'
44
44
 
@@ -254,7 +254,7 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
254
254
  async addressPreviousHash(): Promise<AddressPreviousHashPayload> {
255
255
  const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }
256
256
  return assertEx(
257
- (await this.sendQuery(queryPayload)).find(payload => payload.schema === AddressPreviousHashSchema) as WithMeta<AddressPreviousHashPayload>,
257
+ (await this.sendQuery(queryPayload)).find(payload => payload.schema === AddressPreviousHashSchema) as AddressPreviousHashPayload,
258
258
  () => 'Result did not include correct payload',
259
259
  )
260
260
  }
@@ -277,7 +277,7 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
277
277
 
278
278
  async manifest(maxDepth?: number): Promise<ModuleManifestPayload> {
279
279
  const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }
280
- return (await this.sendQuery(queryPayload))[0] as WithMeta<ModuleManifestPayload>
280
+ return (await this.sendQuery(queryPayload))[0] as ModuleManifestPayload
281
281
  }
282
282
 
283
283
  async manifestQuery(account: AccountInstance, maxDepth?: number): Promise<ModuleQueryResult<ModuleManifestPayload>> {
@@ -287,7 +287,7 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
287
287
 
288
288
  async moduleAddress(): Promise<AddressPreviousHashPayload[]> {
289
289
  const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }
290
- return (await this.sendQuery(queryPayload)) as WithMeta<AddressPreviousHashPayload>[]
290
+ return (await this.sendQuery(queryPayload)) as AddressPreviousHashPayload[]
291
291
  }
292
292
 
293
293
  off<TEventName extends keyof TWrappedModule['eventData']>(
@@ -322,7 +322,7 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
322
322
 
323
323
  async previousHash(): Promise<string | undefined> {
324
324
  const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }
325
- return ((await this.sendQuery(queryPayload)).pop() as WithMeta<AddressPreviousHashPayload>).previousHash
325
+ return ((await this.sendQuery(queryPayload)).pop() as AddressPreviousHashPayload).previousHash
326
326
  }
327
327
 
328
328
  async previousHashQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPreviousHashPayload>> {
@@ -436,20 +436,20 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
436
436
  account = this.account,
437
437
  additionalSigners = this.additionalSigners,
438
438
  ): Promise<[QueryBoundWitness, Payload[], ModuleError[]]> {
439
- const builder = await new QueryBoundWitnessBuilder().payloads(payloads).query(query)
439
+ const builder = new QueryBoundWitnessBuilder().payloads(payloads).query(query)
440
440
  const accounts = [account, ...additionalSigners].filter(exists)
441
441
  return await (account ? builder.signers(accounts) : builder).build()
442
442
  }
443
443
 
444
444
  protected async filterErrors(result: ModuleQueryResult): Promise<ModuleError[]> {
445
445
  const wrapper = await BoundWitnessWrapper.wrap(result[0], result[1])
446
- return wrapper.payloadsBySchema<WithMeta<ModuleError>>(ModuleErrorSchema)
446
+ return wrapper.payloadsBySchema<ModuleError>(ModuleErrorSchema)
447
447
  }
448
448
 
449
449
  protected async sendQuery<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(
450
450
  queryPayload: T,
451
451
  payloads?: P[],
452
- ): Promise<WithMeta<R>[]> {
452
+ ): Promise<R[]> {
453
453
  const queryResults = await this.sendQueryRaw(queryPayload, payloads)
454
454
  const [, resultPayloads, errors] = queryResults
455
455
 
@@ -460,7 +460,7 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
460
460
  throw errors[0]
461
461
  }
462
462
 
463
- return resultPayloads as WithMeta<R>[]
463
+ return resultPayloads as R[]
464
464
  }
465
465
 
466
466
  protected async sendQueryRaw<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(