@xyo-network/evm-events-witness 2.99.4 → 2.99.6

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.
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@xyo-network/payload-model';
2
2
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract';
3
- import { EvmEventsWitnessParams } from './model.js';
4
- import { EvmEvent, EvmEvents } from './Payload.js';
3
+ import { EvmEventsWitnessParams } from './model.ts';
4
+ import { EvmEvent, EvmEvents } from './Payload.ts';
5
5
  export declare class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<TParams, EvmEvents, EvmEvent> {
6
6
  static readonly configSchemas: Schema[];
7
7
  static readonly defaultConfigSchema: Schema;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@xyo-network/payload-model';
2
2
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract';
3
- import { EvmEventsWitnessParams } from './model.js';
4
- import { EvmEvent, EvmEvents } from './Payload.js';
3
+ import { EvmEventsWitnessParams } from './model.ts';
4
+ import { EvmEvent, EvmEvents } from './Payload.ts';
5
5
  export declare class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<TParams, EvmEvents, EvmEvent> {
6
6
  static readonly configSchemas: Schema[];
7
7
  static readonly defaultConfigSchema: Schema;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@xyo-network/payload-model';
2
2
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract';
3
- import { EvmEventsWitnessParams } from './model.js';
4
- import { EvmEvent, EvmEvents } from './Payload.js';
3
+ import { EvmEventsWitnessParams } from './model.ts';
4
+ import { EvmEvent, EvmEvents } from './Payload.ts';
5
5
  export declare class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<TParams, EvmEvents, EvmEvent> {
6
6
  static readonly configSchemas: Schema[];
7
7
  static readonly defaultConfigSchema: Schema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["export * from './model.js'\nexport * from './Payload.js'\nexport * from './Witness.js'\n","import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.js'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.js'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n //calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find((entry) => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n //console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,oBAAyB;AACzB,oBAAuB;AACvB,iBAA8B;AAC9B,2BAA8C;AAC9C,kCAAmC;AACnC,oBAAmC;AAK5B,IAAM,mBAAN,cAAgG,+CAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,eAAO,wBAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,WAAO,4CAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,uBAAmB,wBAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,yBAAqB,wBAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,uBAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,eAAW,wBAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,eAAW;AAAA,YACf,SAAS,KAAK,CAAC,UAAU,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YACpF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,eAAW,0BAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,oBAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["export * from './model.ts'\nexport * from './Payload.ts'\nexport * from './Witness.ts'\n","import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.ts'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.ts'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find(entry => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n // console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,oBAAyB;AACzB,oBAAuB;AACvB,iBAA8B;AAC9B,2BAA8C;AAC9C,kCAAmC;AACnC,oBAAmC;AAK5B,IAAM,mBAAN,cAAgG,+CAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,eAAO,wBAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,WAAO,4CAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,uBAAmB,wBAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,yBAAqB,wBAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,uBAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,eAAW,wBAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,eAAW;AAAA,YACf,SAAS,KAAK,WAAS,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YAClF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,eAAW,0BAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,oBAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
@@ -1,4 +1,4 @@
1
- export * from './model.js';
2
- export * from './Payload.js';
3
- export * from './Witness.js';
1
+ export * from './model.ts';
2
+ export * from './Payload.ts';
3
+ export * from './Witness.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './model.js';
2
- export * from './Payload.js';
3
- export * from './Witness.js';
1
+ export * from './model.ts';
2
+ export * from './Payload.ts';
3
+ export * from './Witness.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './model.js';
2
- export * from './Payload.js';
3
- export * from './Witness.js';
1
+ export * from './model.ts';
2
+ export * from './Payload.ts';
3
+ export * from './Witness.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -73,4 +73,4 @@ export {
73
73
  EvmEventsWitness,
74
74
  EvmEventsWitnessConfigSchema
75
75
  };
76
- //# sourceMappingURL=index.js.map
76
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.js'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.js'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n //calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find((entry) => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n //console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";AAKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,6BAAqC;AAC9C,SAAS,0BAA0B;AACnC,SAAS,gBAA0B;AAK5B,IAAM,mBAAN,cAAgG,mBAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,WAAO,SAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,OAAO,sBAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,mBAAmB,SAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,qBAAqB,SAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,SAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,WAAW,SAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,WAAW;AAAA,YACf,SAAS,KAAK,CAAC,UAAU,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YACpF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,WAAW,cAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,MAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.ts'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.ts'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find(entry => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n // console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";AAKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,6BAAqC;AAC9C,SAAS,0BAA0B;AACnC,SAAS,gBAA0B;AAK5B,IAAM,mBAAN,cAAgG,mBAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,WAAO,SAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,OAAO,sBAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,mBAAmB,SAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,qBAAqB,SAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,SAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,WAAW,SAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,WAAW;AAAA,YACf,SAAS,KAAK,WAAS,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YAClF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,WAAW,cAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,MAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@xyo-network/payload-model';
2
2
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract';
3
- import { EvmEventsWitnessParams } from './model.js';
4
- import { EvmEvent, EvmEvents } from './Payload.js';
3
+ import { EvmEventsWitnessParams } from './model.ts';
4
+ import { EvmEvent, EvmEvents } from './Payload.ts';
5
5
  export declare class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<TParams, EvmEvents, EvmEvent> {
6
6
  static readonly configSchemas: Schema[];
7
7
  static readonly defaultConfigSchema: Schema;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@xyo-network/payload-model';
2
2
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract';
3
- import { EvmEventsWitnessParams } from './model.js';
4
- import { EvmEvent, EvmEvents } from './Payload.js';
3
+ import { EvmEventsWitnessParams } from './model.ts';
4
+ import { EvmEvent, EvmEvents } from './Payload.ts';
5
5
  export declare class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<TParams, EvmEvents, EvmEvent> {
6
6
  static readonly configSchemas: Schema[];
7
7
  static readonly defaultConfigSchema: Schema;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@xyo-network/payload-model';
2
2
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract';
3
- import { EvmEventsWitnessParams } from './model.js';
4
- import { EvmEvent, EvmEvents } from './Payload.js';
3
+ import { EvmEventsWitnessParams } from './model.ts';
4
+ import { EvmEvent, EvmEvents } from './Payload.ts';
5
5
  export declare class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<TParams, EvmEvents, EvmEvent> {
6
6
  static readonly configSchemas: Schema[];
7
7
  static readonly defaultConfigSchema: Schema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["export * from './model.js'\nexport * from './Payload.js'\nexport * from './Witness.js'\n","import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.js'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.js'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n //calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find((entry) => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n //console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,oBAAyB;AACzB,oBAAuB;AACvB,iBAA8B;AAC9B,2BAA8C;AAC9C,kCAAmC;AACnC,oBAAmC;AAK5B,IAAM,mBAAN,cAAgG,+CAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,eAAO,wBAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,WAAO,4CAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,uBAAmB,wBAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,yBAAqB,wBAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,uBAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,eAAW,wBAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,eAAW;AAAA,YACf,SAAS,KAAK,CAAC,UAAU,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YACpF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,eAAW,0BAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,oBAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["export * from './model.ts'\nexport * from './Payload.ts'\nexport * from './Witness.ts'\n","import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.ts'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.ts'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find(entry => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n // console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,oBAAyB;AACzB,oBAAuB;AACvB,iBAA8B;AAC9B,2BAA8C;AAC9C,kCAAmC;AACnC,oBAAmC;AAK5B,IAAM,mBAAN,cAAgG,+CAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,eAAO,wBAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,WAAO,4CAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,uBAAmB,wBAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,yBAAqB,wBAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,uBAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,eAAW,wBAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,eAAW;AAAA,YACf,SAAS,KAAK,WAAS,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YAClF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,eAAW,0BAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,oBAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
@@ -1,4 +1,4 @@
1
- export * from './model.js';
2
- export * from './Payload.js';
3
- export * from './Witness.js';
1
+ export * from './model.ts';
2
+ export * from './Payload.ts';
3
+ export * from './Witness.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './model.js';
2
- export * from './Payload.js';
3
- export * from './Witness.js';
1
+ export * from './model.ts';
2
+ export * from './Payload.ts';
3
+ export * from './Witness.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './model.js';
2
- export * from './Payload.js';
3
- export * from './Witness.js';
1
+ export * from './model.ts';
2
+ export * from './Payload.ts';
3
+ export * from './Witness.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -73,4 +73,4 @@ export {
73
73
  EvmEventsWitness,
74
74
  EvmEventsWitnessConfigSchema
75
75
  };
76
- //# sourceMappingURL=index.js.map
76
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.js'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.js'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n //calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find((entry) => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n //console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";AAKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,6BAAqC;AAC9C,SAAS,0BAA0B;AACnC,SAAS,gBAA0B;AAK5B,IAAM,mBAAN,cAAgG,mBAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,WAAO,SAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,OAAO,sBAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,mBAAmB,SAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,qBAAqB,SAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,SAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,WAAW,SAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,WAAW;AAAA,YACf,SAAS,KAAK,CAAC,UAAU,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YACpF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,WAAW,cAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,MAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.ts'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.ts'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find(entry => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n // console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";AAKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,6BAAqC;AAC9C,SAAS,0BAA0B;AACnC,SAAS,gBAA0B;AAK5B,IAAM,mBAAN,cAAgG,mBAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,WAAO,SAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,OAAO,sBAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,mBAAmB,SAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,qBAAqB,SAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,SAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,WAAW,SAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,WAAW;AAAA,YACf,SAAS,KAAK,WAAS,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YAClF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,WAAW,cAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,MAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@xyo-network/payload-model';
2
2
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract';
3
- import { EvmEventsWitnessParams } from './model.js';
4
- import { EvmEvent, EvmEvents } from './Payload.js';
3
+ import { EvmEventsWitnessParams } from './model.ts';
4
+ import { EvmEvent, EvmEvents } from './Payload.ts';
5
5
  export declare class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<TParams, EvmEvents, EvmEvent> {
6
6
  static readonly configSchemas: Schema[];
7
7
  static readonly defaultConfigSchema: Schema;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@xyo-network/payload-model';
2
2
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract';
3
- import { EvmEventsWitnessParams } from './model.js';
4
- import { EvmEvent, EvmEvents } from './Payload.js';
3
+ import { EvmEventsWitnessParams } from './model.ts';
4
+ import { EvmEvent, EvmEvents } from './Payload.ts';
5
5
  export declare class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<TParams, EvmEvents, EvmEvent> {
6
6
  static readonly configSchemas: Schema[];
7
7
  static readonly defaultConfigSchema: Schema;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@xyo-network/payload-model';
2
2
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract';
3
- import { EvmEventsWitnessParams } from './model.js';
4
- import { EvmEvent, EvmEvents } from './Payload.js';
3
+ import { EvmEventsWitnessParams } from './model.ts';
4
+ import { EvmEvent, EvmEvents } from './Payload.ts';
5
5
  export declare class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<TParams, EvmEvents, EvmEvent> {
6
6
  static readonly configSchemas: Schema[];
7
7
  static readonly defaultConfigSchema: Schema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["export * from './model.js'\nexport * from './Payload.js'\nexport * from './Witness.js'\n","import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.js'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.js'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n //calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find((entry) => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n //console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,oBAAyB;AACzB,oBAAuB;AACvB,iBAA8B;AAC9B,2BAA8C;AAC9C,kCAAmC;AACnC,oBAAmC;AAK5B,IAAM,mBAAN,cAAgG,+CAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,eAAO,wBAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,WAAO,4CAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,uBAAmB,wBAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,yBAAqB,wBAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,uBAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,eAAW,wBAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,eAAW;AAAA,YACf,SAAS,KAAK,CAAC,UAAU,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YACpF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,eAAW,0BAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,oBAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["export * from './model.ts'\nexport * from './Payload.ts'\nexport * from './Witness.ts'\n","import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.ts'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.ts'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find(entry => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n // console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,oBAAyB;AACzB,oBAAuB;AACvB,iBAA8B;AAC9B,2BAA8C;AAC9C,kCAAmC;AACnC,oBAAmC;AAK5B,IAAM,mBAAN,cAAgG,+CAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,eAAO,wBAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,WAAO,4CAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,uBAAmB,wBAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,yBAAqB,wBAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,uBAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,eAAW,wBAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,eAAW;AAAA,YACf,SAAS,KAAK,WAAS,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YAClF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,eAAW,0BAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,oBAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
@@ -1,4 +1,4 @@
1
- export * from './model.js';
2
- export * from './Payload.js';
3
- export * from './Witness.js';
1
+ export * from './model.ts';
2
+ export * from './Payload.ts';
3
+ export * from './Witness.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './model.js';
2
- export * from './Payload.js';
3
- export * from './Witness.js';
1
+ export * from './model.ts';
2
+ export * from './Payload.ts';
3
+ export * from './Witness.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './model.js';
2
- export * from './Payload.js';
3
- export * from './Witness.js';
1
+ export * from './model.ts';
2
+ export * from './Payload.ts';
3
+ export * from './Witness.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -73,4 +73,4 @@ export {
73
73
  EvmEventsWitness,
74
74
  EvmEventsWitnessConfigSchema
75
75
  };
76
- //# sourceMappingURL=index.js.map
76
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.js'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.js'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n //calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find((entry) => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n //console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";AAKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,6BAAqC;AAC9C,SAAS,0BAA0B;AACnC,SAAS,gBAA0B;AAK5B,IAAM,mBAAN,cAAgG,mBAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,WAAO,SAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,OAAO,sBAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,mBAAmB,SAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,qBAAqB,SAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,SAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,WAAW,SAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,WAAW;AAAA,YACf,SAAS,KAAK,CAAC,UAAU,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YACpF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,WAAW,cAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,MAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/model.ts","../../src/Payload.ts","../../src/Witness.ts"],"sourcesContent":["import { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport { JsonFragment } from 'ethers'\n\nexport type Abi = string | ReadonlyArray<JsonFragment | string>\n\nexport const EvmEventsWitnessConfigSchema = 'network.xyo.evm.events.witness.config'\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n","import { Payload } from '@xyo-network/payload-model'\n\nexport const EvmEventsSchema = 'network.xyo.evm.events'\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport type EvmEvents = Payload<\n {\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsSchema\n>\n\nexport const EvmEventSchema = 'network.xyo.evm.event'\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport type EvmEvent = Payload<\n {\n address: string\n args: Record<string, unknown>\n block: number\n chainId: number\n eventName: string\n },\n EvmEventSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { hexFromBigInt } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport { Contract, EventLog } from 'ethers'\n\nimport { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.ts'\nimport { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.ts'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.started('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = (\n await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({ eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const contract = new Contract(validatedAddress, this.abi, provider).attach(validatedAddress)\n\n const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')\n\n const abiEvent = assertEx(\n abiArray.find(entry => entry.type === 'event' && entry.name === validatedEventName),\n () => 'Could not find event',\n )\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n // console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n const rawEvent = rawLog as EventLog\n if (rawEvent.args) {\n const argsObject: Record<string, unknown> = {}\n\n abiEvent.inputs.map((input: { name: string }, index: number) => {\n const value = rawEvent.args[index]\n argsObject[input.name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n })\n\n const eventResult: EvmEvent = {\n address: rawEvent.address,\n args: argsObject,\n block: rawEvent.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n }\n })\n .filter(exists)\n\n return observation\n }),\n )\n ).flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":";AAKO,IAAM,+BAA+B;;;ACHrC,IAAM,kBAAkB;AAaxB,IAAM,iBAAiB;;;ACf9B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,6BAAqC;AAC9C,SAAS,0BAA0B;AACnC,SAAS,gBAA0B;AAK5B,IAAM,mBAAN,cAAgG,mBAIrG;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,WAAO,SAAS,KAAK,OAAO,KAAK,MAAM,aAAa;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe,aAA0B,CAAC,GAAwB;AACzF,UAAM,KAAK,QAAQ,OAAO;AAE1B,UAAM,KAAK,aAAa;AACxB,QAAI;AACF,YAAM,gBACJ,MAAM,QAAQ;AAAA,QACZ,WACG,OAAO,sBAAiC,eAAe,CAAC,EACxD,IAAI,OAAO,EAAE,WAAW,SAAS,WAAW,kBAAkB,SAAS,eAAe,MAAM;AAC3F,gBAAM,mBAAmB,SAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AACzF,gBAAM,qBAAqB,SAAS,aAAa,KAAK,OAAO,WAAW,MAAM,mBAAmB;AAEjG,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAClD,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,WAAW,IAAI,SAAS,kBAAkB,KAAK,KAAK,QAAQ,EAAE,OAAO,gBAAgB;AAE3F,gBAAM,WAAW,SAAS,MAAM,QAAQ,KAAK,GAAG,IAAI,KAAK,MAAM,QAAW,MAAM,qBAAqB;AAErG,gBAAM,WAAW;AAAA,YACf,SAAS,KAAK,WAAS,MAAM,SAAS,WAAW,MAAM,SAAS,kBAAkB;AAAA,YAClF,MAAM;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,OAAO,WAAW,kBAAmB,MAAM,SAAS,eAAe;AACxF,gBAAM,YAAY,KAAK,OAAO,aAAa,oBAAoB;AAE/D,gBAAM,eAAe,MAAM,SAAS,YAAY,SAAS,QAAQ,kBAAkB,GAAG,WAAW,OAAO;AAGxG,gBAAM,cAAc,aACjB,IAAI,CAAC,WAAW;AACf,kBAAM,WAAW;AACjB,gBAAI,SAAS,MAAM;AACjB,oBAAM,aAAsC,CAAC;AAE7C,uBAAS,OAAO,IAAI,CAAC,OAAyB,UAAkB;AAC9D,sBAAM,QAAQ,SAAS,KAAK,KAAK;AACjC,2BAAW,MAAM,IAAI,IAAI,OAAO,UAAU,WAAW,cAAc,KAAK,IAAI;AAAA,cAC9E,CAAC;AAED,oBAAM,cAAwB;AAAA,gBAC5B,SAAS,SAAS;AAAA,gBAClB,MAAM;AAAA,gBACN,OAAO,SAAS;AAAA,gBAChB,SAAS,OAAO,QAAQ,OAAO;AAAA,gBAC/B,WAAW;AAAA,gBACX,QAAQ;AAAA,cACV;AACA,qBAAO;AAAA,YACT;AAAA,UACF,CAAC,EACA,OAAO,MAAM;AAEhB,iBAAO;AAAA,QACT,CAAC;AAAA,MACL,GACA,KAAK;AACP,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
package/package.json CHANGED
@@ -10,20 +10,20 @@
10
10
  "url": "https://github.com/XYOracleNetwork/plugins/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^3.6.1",
14
- "@xylabs/exists": "^3.6.1",
15
- "@xylabs/hex": "^3.6.1",
16
- "@xyo-network/payload-model": "^2.110.6",
17
- "@xyo-network/witness-evm-abstract": "^2.110.6",
18
- "ethers": "^6.13.1"
13
+ "@xylabs/assert": "^3.6.12",
14
+ "@xylabs/exists": "^3.6.12",
15
+ "@xylabs/hex": "^3.6.12",
16
+ "@xyo-network/payload-model": "^2.111.3",
17
+ "@xyo-network/witness-evm-abstract": "^2.111.3",
18
+ "ethers": "^6.13.2"
19
19
  },
20
20
  "devDependencies": {
21
- "@xylabs/jest-helpers": "^3.6.1",
22
- "@xylabs/ts-scripts-yarn3": "^3.12.2",
23
- "@xylabs/tsconfig": "^3.12.2",
24
- "@xyo-network/open-zeppelin-typechain": "^3.0.5",
21
+ "@xylabs/jest-helpers": "^3.6.12",
22
+ "@xylabs/ts-scripts-yarn3": "^3.15.14",
23
+ "@xylabs/tsconfig": "^3.15.14",
24
+ "@xyo-network/open-zeppelin-typechain": "^3.1.0",
25
25
  "jest": "^29.7.0",
26
- "typescript": "^5.5.3"
26
+ "typescript": "^5.5.4"
27
27
  },
28
28
  "description": "Typescript/Javascript Plugins for XYO Platform",
29
29
  "types": "dist/node/index.d.ts",
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "import": {
38
38
  "types": "./dist/browser/index.d.mts",
39
- "default": "./dist/browser/index.js"
39
+ "default": "./dist/browser/index.mjs"
40
40
  }
41
41
  },
42
42
  "node": {
@@ -46,14 +46,14 @@
46
46
  },
47
47
  "import": {
48
48
  "types": "./dist/node/index.d.mts",
49
- "default": "./dist/node/index.js"
49
+ "default": "./dist/node/index.mjs"
50
50
  }
51
51
  }
52
52
  },
53
53
  "./package.json": "./package.json"
54
54
  },
55
55
  "main": "dist/node/index.cjs",
56
- "module": "dist/node/index.js",
56
+ "module": "dist/node/index.mjs",
57
57
  "homepage": "https://xyo.network",
58
58
  "license": "LGPL-3.0-only",
59
59
  "publishConfig": {
@@ -64,6 +64,6 @@
64
64
  "url": "https://github.com/XYOracleNetwork/plugins.git"
65
65
  },
66
66
  "sideEffects": false,
67
- "version": "2.99.4",
67
+ "version": "2.99.6",
68
68
  "type": "module"
69
69
  }
package/src/Witness.ts CHANGED
@@ -5,8 +5,8 @@ import { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'
5
5
  import { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'
6
6
  import { Contract, EventLog } from 'ethers'
7
7
 
8
- import { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.js'
9
- import { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.js'
8
+ import { EvmEventsWitnessConfigSchema, EvmEventsWitnessParams } from './model.ts'
9
+ import { EvmEvent, EvmEvents, EvmEventSchema, EvmEventsSchema } from './Payload.ts'
10
10
 
11
11
  export class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<
12
12
  TParams,
@@ -22,7 +22,7 @@ export class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEvents
22
22
 
23
23
  protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {
24
24
  await this.started('throw')
25
- //calling it here to make sure we rests the cache
25
+ // calling it here to make sure we rests the cache
26
26
  await this.getProviders()
27
27
  try {
28
28
  const observations = (
@@ -41,7 +41,7 @@ export class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEvents
41
41
  const abiArray = assertEx(Array.isArray(this.abi) ? this.abi : undefined, () => 'Abi is not an array')
42
42
 
43
43
  const abiEvent = assertEx(
44
- abiArray.find((entry) => entry.type === 'event' && entry.name === validatedEventName),
44
+ abiArray.find(entry => entry.type === 'event' && entry.name === validatedEventName),
45
45
  () => 'Could not find event',
46
46
  )
47
47
 
@@ -49,7 +49,7 @@ export class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEvents
49
49
  const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0
50
50
 
51
51
  const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)
52
- //console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)
52
+ // console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)
53
53
 
54
54
  const observation = allRawEvents
55
55
  .map((rawLog) => {
package/src/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './model.js'
2
- export * from './Payload.js'
3
- export * from './Witness.js'
1
+ export * from './model.ts'
2
+ export * from './Payload.ts'
3
+ export * from './Witness.ts'