@xyo-network/diviner-address-chain 5.5.2 → 5.5.5

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.
@@ -0,0 +1,7 @@
1
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
+ import type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model';
3
+ import type { Payload } from '@xyo-network/payload-model';
4
+ import type { AddressChainDivinerParams } from './Params.ts';
5
+ export declare abstract class AddressChainDiviner<TParams extends AddressChainDivinerParams = AddressChainDivinerParams, TIn extends Payload = Payload, TOut extends Payload = Payload, TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut>> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {
6
+ }
7
+ //# sourceMappingURL=AddressChainDiviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddressChainDiviner.d.ts","sourceRoot":"","sources":["../../src/AddressChainDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACzF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAE5D,8BAAsB,mBAAmB,CACvC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,EACrE,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;CAAG"}
@@ -0,0 +1,10 @@
1
+ import type { Address, Hash } from '@xylabs/sdk-js';
2
+ import type { DivinerConfig } from '@xyo-network/diviner-model';
3
+ import type { AddressChainDivinerConfigSchema } from './Schema.ts';
4
+ export type AddressChainDivinerConfig = DivinerConfig<{
5
+ address?: Address;
6
+ maxResults?: number;
7
+ schema: AddressChainDivinerConfigSchema;
8
+ startHash?: Hash;
9
+ }>;
10
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC;IACpD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,+BAA+B,CAAA;IACvC,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import type { DivinerParams } from '@xyo-network/diviner-model';
2
+ import type { AnyConfigSchema } from '@xyo-network/module-model';
3
+ import { type Payload, type Schema } from '@xyo-network/payload-model';
4
+ import { AddressChainDiviner } from './AddressChainDiviner.ts';
5
+ import type { AddressChainDivinerConfig } from './Config.ts';
6
+ export type MemoryAddressChainDivinerParams = DivinerParams<AnyConfigSchema<AddressChainDivinerConfig>>;
7
+ export declare class MemoryAddressChainDiviner<TParams extends MemoryAddressChainDivinerParams = MemoryAddressChainDivinerParams> extends AddressChainDiviner<TParams> {
8
+ static readonly configSchemas: Schema[];
9
+ static readonly defaultConfigSchema: Schema;
10
+ get queryAddress(): Lowercase<string> & {
11
+ readonly __hex: true;
12
+ } & {
13
+ readonly __address: true;
14
+ };
15
+ protected divineHandler(payloads?: Payload[]): Promise<Payload[]>;
16
+ private archivistFindHash;
17
+ }
18
+ //# sourceMappingURL=MemoryAddressChainDiviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryAddressChainDiviner.d.ts","sourceRoot":"","sources":["../../src/MemoryAddressChainDiviner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EACU,KAAK,OAAO,EAAE,KAAK,MAAM,EACzC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAK5D,MAAM,MAAM,+BAA+B,GAAG,aAAa,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAEvG,qBAAa,yBAAyB,CACpC,OAAO,SAAS,+BAA+B,GAAG,+BAA+B,CACjF,SAAQ,mBAAmB,CAAC,OAAO,CAAC;IACpC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,IAAI,YAAY;;;;MAEf;cAEwB,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAwBtE,iBAAiB;CAMhC"}
@@ -0,0 +1,5 @@
1
+ import type { DivinerParams } from '@xyo-network/diviner-model';
2
+ import type { AnyConfigSchema } from '@xyo-network/module-model';
3
+ import type { AddressChainDivinerConfig } from './Config.ts';
4
+ export type AddressChainDivinerParams = DivinerParams<AnyConfigSchema<AddressChainDivinerConfig>>;
5
+ //# sourceMappingURL=Params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Params.d.ts","sourceRoot":"","sources":["../../src/Params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { Payload } from '@xyo-network/payload-model';
2
+ import { AddressChainSchema } from './Schema.ts';
3
+ export type AddressChainPayload = Payload<{
4
+ schema: AddressChainSchema;
5
+ }>;
6
+ export declare const isAddressChainPayload: (x?: Payload | null) => x is AddressChainPayload;
7
+ //# sourceMappingURL=Payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAAA;AACzE,eAAO,MAAM,qBAAqB,GAAI,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,mBAAuD,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { PayloadFindFilter, Query } from '@xyo-network/payload-model';
2
+ import { AddressChainQuerySchema } from './Schema.ts';
3
+ export type AddressChainQueryPayload = Query<{
4
+ schema: AddressChainQuerySchema;
5
+ } & Omit<PayloadFindFilter, 'schema'>>;
6
+ export declare const isAddressChainQueryPayload: (x?: unknown | null) => x is AddressChainQueryPayload;
7
+ //# sourceMappingURL=Query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../src/Query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAG1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC;IAAE,MAAM,EAAE,uBAAuB,CAAA;CAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAA;AACrH,eAAO,MAAM,0BAA0B,uDAA2E,CAAA"}
@@ -0,0 +1,13 @@
1
+ export declare const AddressChainSchema: "network.xyo.diviner.address.chain" & {
2
+ readonly __schema: true;
3
+ };
4
+ export type AddressChainSchema = typeof AddressChainSchema;
5
+ export declare const AddressChainDivinerConfigSchema: string & {
6
+ readonly __schema: true;
7
+ };
8
+ export type AddressChainDivinerConfigSchema = typeof AddressChainDivinerConfigSchema;
9
+ export declare const AddressChainQuerySchema: string & {
10
+ readonly __schema: true;
11
+ };
12
+ export type AddressChainQuerySchema = typeof AddressChainQuerySchema;
13
+ //# sourceMappingURL=Schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;;CAAsD,CAAA;AACrF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAA;AAE1D,eAAO,MAAM,+BAA+B;;CAAiD,CAAA;AAC7F,MAAM,MAAM,+BAA+B,GAAG,OAAO,+BAA+B,CAAA;AAEpF,eAAO,MAAM,uBAAuB;;CAAgD,CAAA;AACpF,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './AddressChainDiviner.ts';
2
+ //# sourceMappingURL=abstract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../src/abstract.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,8 @@
1
+ // src/AddressChainDiviner.ts
2
+ import { AbstractDiviner } from "@xyo-network/diviner-abstract";
3
+ var AddressChainDiviner = class extends AbstractDiviner {
4
+ };
5
+ export {
6
+ AddressChainDiviner
7
+ };
8
+ //# sourceMappingURL=abstract.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/AddressChainDiviner.ts"],"sourcesContent":["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport type { AddressChainDivinerParams } from './Params.ts'\n\nexport abstract class AddressChainDiviner<\n TParams extends AddressChainDivinerParams = AddressChainDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {}\n"],"mappings":";AAAA,SAAS,uBAAuB;AAMzB,IAAe,sBAAf,cASG,gBAAgD;AAAC;","names":[]}
@@ -1,4 +1,4 @@
1
- export * from '@xyo-network/diviner-address-chain-abstract';
2
- export * from '@xyo-network/diviner-address-chain-memory';
3
- export * from '@xyo-network/diviner-address-chain-model';
1
+ export * from './abstract.ts';
2
+ export * from './memory.ts';
3
+ export * from './model.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,0CAA0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
@@ -1,5 +1,72 @@
1
- // src/index.ts
2
- export * from "@xyo-network/diviner-address-chain-abstract";
3
- export * from "@xyo-network/diviner-address-chain-memory";
4
- export * from "@xyo-network/diviner-address-chain-model";
1
+ // src/AddressChainDiviner.ts
2
+ import { AbstractDiviner } from "@xyo-network/diviner-abstract";
3
+ var AddressChainDiviner = class extends AbstractDiviner {
4
+ };
5
+
6
+ // src/MemoryAddressChainDiviner.ts
7
+ import { assertEx } from "@xylabs/sdk-js";
8
+ import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
9
+ import {
10
+ isStorageMeta
11
+ } from "@xyo-network/payload-model";
12
+
13
+ // src/Schema.ts
14
+ import { asSchema } from "@xyo-network/payload-model";
15
+ var AddressChainSchema = asSchema("network.xyo.diviner.address.chain", true);
16
+ var AddressChainDivinerConfigSchema = asSchema(`${AddressChainSchema}.config`, true);
17
+ var AddressChainQuerySchema = asSchema(`${AddressChainSchema}.query`, true);
18
+
19
+ // src/MemoryAddressChainDiviner.ts
20
+ var MemoryAddressChainDiviner = class extends AddressChainDiviner {
21
+ static configSchemas = [...super.configSchemas, AddressChainDivinerConfigSchema];
22
+ static defaultConfigSchema = AddressChainDivinerConfigSchema;
23
+ get queryAddress() {
24
+ return assertEx(this.config.address, () => "Missing address");
25
+ }
26
+ async divineHandler(payloads = []) {
27
+ const result = [];
28
+ assertEx(payloads.length === 0, () => "MemoryAddressChainDiviner.divine does not allow payloads to be sent");
29
+ try {
30
+ const archivistIn = await this.archivistInstance();
31
+ const archivist = assertEx(archivistIn, () => "Unable to resolve archivist");
32
+ let currentHash = assertEx(this.config.startHash, () => "Missing startHash");
33
+ while (currentHash && result.length < (this.config.maxResults ?? 1e3)) {
34
+ const bw = await this.archivistFindHash([archivist], currentHash);
35
+ if (bw) {
36
+ result.push(bw);
37
+ const addressIndex = bw.addresses.indexOf(this.queryAddress);
38
+ currentHash = addressIndex === -1 ? null : bw.previous_hashes[addressIndex] ?? null;
39
+ } else {
40
+ console.log(`Hash is not a BoundWitness [${currentHash}]`);
41
+ currentHash = null;
42
+ }
43
+ }
44
+ } catch (ex) {
45
+ console.log(ex);
46
+ }
47
+ return result;
48
+ }
49
+ async archivistFindHash(archivists, hash) {
50
+ const archivist = archivists[0];
51
+ if (archivist) {
52
+ return (await archivist.get([hash])).findLast((x) => x.schema === BoundWitnessSchema && isStorageMeta(x));
53
+ }
54
+ }
55
+ };
56
+
57
+ // src/Payload.ts
58
+ var isAddressChainPayload = (x) => x?.schema === AddressChainSchema;
59
+
60
+ // src/Query.ts
61
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
62
+ var isAddressChainQueryPayload = isPayloadOfSchemaType(AddressChainQuerySchema);
63
+ export {
64
+ AddressChainDiviner,
65
+ AddressChainDivinerConfigSchema,
66
+ AddressChainQuerySchema,
67
+ AddressChainSchema,
68
+ MemoryAddressChainDiviner,
69
+ isAddressChainPayload,
70
+ isAddressChainQueryPayload
71
+ };
5
72
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from '@xyo-network/diviner-address-chain-abstract'\nexport * from '@xyo-network/diviner-address-chain-memory'\nexport * from '@xyo-network/diviner-address-chain-model'\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../src/AddressChainDiviner.ts","../../src/MemoryAddressChainDiviner.ts","../../src/Schema.ts","../../src/Payload.ts","../../src/Query.ts"],"sourcesContent":["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport type { AddressChainDivinerParams } from './Params.ts'\n\nexport abstract class AddressChainDiviner<\n TParams extends AddressChainDivinerParams = AddressChainDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {}\n","import type { Hash } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { DivinerParams } from '@xyo-network/diviner-model'\nimport type { AnyConfigSchema } from '@xyo-network/module-model'\nimport {\n isStorageMeta, type Payload, type Schema,\n} from '@xyo-network/payload-model'\n\nimport { AddressChainDiviner } from './AddressChainDiviner.ts'\nimport type { AddressChainDivinerConfig } from './Config.ts'\nimport { AddressChainDivinerConfigSchema } from './Schema.ts'\n\n// This diviner returns the most recent boundwitness signed by the address that can be found\n// if multiple broken chains are found, all the heads are returned\nexport type MemoryAddressChainDivinerParams = DivinerParams<AnyConfigSchema<AddressChainDivinerConfig>>\n\nexport class MemoryAddressChainDiviner<\n TParams extends MemoryAddressChainDivinerParams = MemoryAddressChainDivinerParams,\n> extends AddressChainDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, AddressChainDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = AddressChainDivinerConfigSchema\n\n get queryAddress() {\n return assertEx(this.config.address, () => 'Missing address')\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<Payload[]> {\n const result: Payload[] = []\n assertEx(payloads.length === 0, () => 'MemoryAddressChainDiviner.divine does not allow payloads to be sent')\n try {\n const archivistIn = await this.archivistInstance()\n const archivist = assertEx(archivistIn, () => 'Unable to resolve archivist')\n let currentHash: Hash | null = assertEx(this.config.startHash, () => 'Missing startHash')\n while (currentHash && result.length < (this.config.maxResults ?? 1000)) {\n const bw = await this.archivistFindHash([archivist], currentHash)\n if (bw) {\n result.push(bw)\n const addressIndex = bw.addresses.indexOf(this.queryAddress)\n currentHash = addressIndex === -1 ? null : bw.previous_hashes[addressIndex] ?? null\n } else {\n console.log(`Hash is not a BoundWitness [${currentHash}]`)\n currentHash = null\n }\n }\n } catch (ex) {\n console.log(ex)\n }\n return result\n }\n\n private async archivistFindHash(archivists: ArchivistInstance[], hash: Hash): Promise<BoundWitness | undefined> {\n const archivist = archivists[0]\n if (archivist) {\n return (await archivist.get([hash])).findLast(x => x.schema === BoundWitnessSchema && isStorageMeta(x)) as BoundWitness | undefined\n }\n }\n}\n","import { asSchema } from '@xyo-network/payload-model'\n\nexport const AddressChainSchema = asSchema('network.xyo.diviner.address.chain', true)\nexport type AddressChainSchema = typeof AddressChainSchema\n\nexport const AddressChainDivinerConfigSchema = asSchema(`${AddressChainSchema}.config`, true)\nexport type AddressChainDivinerConfigSchema = typeof AddressChainDivinerConfigSchema\n\nexport const AddressChainQuerySchema = asSchema(`${AddressChainSchema}.query`, true)\nexport type AddressChainQuerySchema = typeof AddressChainQuerySchema\n","import type { Payload } from '@xyo-network/payload-model'\n\nimport { AddressChainSchema } from './Schema.ts'\n\nexport type AddressChainPayload = Payload<{ schema: AddressChainSchema }>\nexport const isAddressChainPayload = (x?: Payload | null): x is AddressChainPayload => x?.schema === AddressChainSchema\n","import type { PayloadFindFilter, Query } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { AddressChainQuerySchema } from './Schema.ts'\n\nexport type AddressChainQueryPayload = Query<{ schema: AddressChainQuerySchema } & Omit<PayloadFindFilter, 'schema'>>\nexport const isAddressChainQueryPayload = isPayloadOfSchemaType<AddressChainQueryPayload>(AddressChainQuerySchema)\n"],"mappings":";AAAA,SAAS,uBAAuB;AAMzB,IAAe,sBAAf,cASG,gBAAgD;AAAC;;;ACd3D,SAAS,gBAAgB;AAGzB,SAAS,0BAA0B;AAGnC;AAAA,EACE;AAAA,OACK;;;ACTP,SAAS,gBAAgB;AAElB,IAAM,qBAAqB,SAAS,qCAAqC,IAAI;AAG7E,IAAM,kCAAkC,SAAS,GAAG,kBAAkB,WAAW,IAAI;AAGrF,IAAM,0BAA0B,SAAS,GAAG,kBAAkB,UAAU,IAAI;;;ADW5E,IAAM,4BAAN,cAEG,oBAA6B;AAAA,EACrC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,+BAA+B;AAAA,EAC3G,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,eAAe;AACjB,WAAO,SAAS,KAAK,OAAO,SAAS,MAAM,iBAAiB;AAAA,EAC9D;AAAA,EAEA,MAAyB,cAAc,WAAsB,CAAC,GAAuB;AACnF,UAAM,SAAoB,CAAC;AAC3B,aAAS,SAAS,WAAW,GAAG,MAAM,qEAAqE;AAC3G,QAAI;AACF,YAAM,cAAc,MAAM,KAAK,kBAAkB;AACjD,YAAM,YAAY,SAAS,aAAa,MAAM,6BAA6B;AAC3E,UAAI,cAA2B,SAAS,KAAK,OAAO,WAAW,MAAM,mBAAmB;AACxF,aAAO,eAAe,OAAO,UAAU,KAAK,OAAO,cAAc,MAAO;AACtE,cAAM,KAAK,MAAM,KAAK,kBAAkB,CAAC,SAAS,GAAG,WAAW;AAChE,YAAI,IAAI;AACN,iBAAO,KAAK,EAAE;AACd,gBAAM,eAAe,GAAG,UAAU,QAAQ,KAAK,YAAY;AAC3D,wBAAc,iBAAiB,KAAK,OAAO,GAAG,gBAAgB,YAAY,KAAK;AAAA,QACjF,OAAO;AACL,kBAAQ,IAAI,+BAA+B,WAAW,GAAG;AACzD,wBAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF,SAAS,IAAI;AACX,cAAQ,IAAI,EAAE;AAAA,IAChB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,kBAAkB,YAAiC,MAA+C;AAC9G,UAAM,YAAY,WAAW,CAAC;AAC9B,QAAI,WAAW;AACb,cAAQ,MAAM,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,OAAK,EAAE,WAAW,sBAAsB,cAAc,CAAC,CAAC;AAAA,IACxG;AAAA,EACF;AACF;;;AEtDO,IAAM,wBAAwB,CAAC,MAAiD,GAAG,WAAW;;;ACJrG,SAAS,6BAA6B;AAK/B,IAAM,6BAA6B,sBAAgD,uBAAuB;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from './MemoryAddressChainDiviner.ts';
2
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/memory.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
@@ -0,0 +1,59 @@
1
+ // src/MemoryAddressChainDiviner.ts
2
+ import { assertEx } from "@xylabs/sdk-js";
3
+ import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
4
+ import {
5
+ isStorageMeta
6
+ } from "@xyo-network/payload-model";
7
+
8
+ // src/AddressChainDiviner.ts
9
+ import { AbstractDiviner } from "@xyo-network/diviner-abstract";
10
+ var AddressChainDiviner = class extends AbstractDiviner {
11
+ };
12
+
13
+ // src/Schema.ts
14
+ import { asSchema } from "@xyo-network/payload-model";
15
+ var AddressChainSchema = asSchema("network.xyo.diviner.address.chain", true);
16
+ var AddressChainDivinerConfigSchema = asSchema(`${AddressChainSchema}.config`, true);
17
+ var AddressChainQuerySchema = asSchema(`${AddressChainSchema}.query`, true);
18
+
19
+ // src/MemoryAddressChainDiviner.ts
20
+ var MemoryAddressChainDiviner = class extends AddressChainDiviner {
21
+ static configSchemas = [...super.configSchemas, AddressChainDivinerConfigSchema];
22
+ static defaultConfigSchema = AddressChainDivinerConfigSchema;
23
+ get queryAddress() {
24
+ return assertEx(this.config.address, () => "Missing address");
25
+ }
26
+ async divineHandler(payloads = []) {
27
+ const result = [];
28
+ assertEx(payloads.length === 0, () => "MemoryAddressChainDiviner.divine does not allow payloads to be sent");
29
+ try {
30
+ const archivistIn = await this.archivistInstance();
31
+ const archivist = assertEx(archivistIn, () => "Unable to resolve archivist");
32
+ let currentHash = assertEx(this.config.startHash, () => "Missing startHash");
33
+ while (currentHash && result.length < (this.config.maxResults ?? 1e3)) {
34
+ const bw = await this.archivistFindHash([archivist], currentHash);
35
+ if (bw) {
36
+ result.push(bw);
37
+ const addressIndex = bw.addresses.indexOf(this.queryAddress);
38
+ currentHash = addressIndex === -1 ? null : bw.previous_hashes[addressIndex] ?? null;
39
+ } else {
40
+ console.log(`Hash is not a BoundWitness [${currentHash}]`);
41
+ currentHash = null;
42
+ }
43
+ }
44
+ } catch (ex) {
45
+ console.log(ex);
46
+ }
47
+ return result;
48
+ }
49
+ async archivistFindHash(archivists, hash) {
50
+ const archivist = archivists[0];
51
+ if (archivist) {
52
+ return (await archivist.get([hash])).findLast((x) => x.schema === BoundWitnessSchema && isStorageMeta(x));
53
+ }
54
+ }
55
+ };
56
+ export {
57
+ MemoryAddressChainDiviner
58
+ };
59
+ //# sourceMappingURL=memory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/MemoryAddressChainDiviner.ts","../../src/AddressChainDiviner.ts","../../src/Schema.ts"],"sourcesContent":["import type { Hash } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { DivinerParams } from '@xyo-network/diviner-model'\nimport type { AnyConfigSchema } from '@xyo-network/module-model'\nimport {\n isStorageMeta, type Payload, type Schema,\n} from '@xyo-network/payload-model'\n\nimport { AddressChainDiviner } from './AddressChainDiviner.ts'\nimport type { AddressChainDivinerConfig } from './Config.ts'\nimport { AddressChainDivinerConfigSchema } from './Schema.ts'\n\n// This diviner returns the most recent boundwitness signed by the address that can be found\n// if multiple broken chains are found, all the heads are returned\nexport type MemoryAddressChainDivinerParams = DivinerParams<AnyConfigSchema<AddressChainDivinerConfig>>\n\nexport class MemoryAddressChainDiviner<\n TParams extends MemoryAddressChainDivinerParams = MemoryAddressChainDivinerParams,\n> extends AddressChainDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, AddressChainDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = AddressChainDivinerConfigSchema\n\n get queryAddress() {\n return assertEx(this.config.address, () => 'Missing address')\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<Payload[]> {\n const result: Payload[] = []\n assertEx(payloads.length === 0, () => 'MemoryAddressChainDiviner.divine does not allow payloads to be sent')\n try {\n const archivistIn = await this.archivistInstance()\n const archivist = assertEx(archivistIn, () => 'Unable to resolve archivist')\n let currentHash: Hash | null = assertEx(this.config.startHash, () => 'Missing startHash')\n while (currentHash && result.length < (this.config.maxResults ?? 1000)) {\n const bw = await this.archivistFindHash([archivist], currentHash)\n if (bw) {\n result.push(bw)\n const addressIndex = bw.addresses.indexOf(this.queryAddress)\n currentHash = addressIndex === -1 ? null : bw.previous_hashes[addressIndex] ?? null\n } else {\n console.log(`Hash is not a BoundWitness [${currentHash}]`)\n currentHash = null\n }\n }\n } catch (ex) {\n console.log(ex)\n }\n return result\n }\n\n private async archivistFindHash(archivists: ArchivistInstance[], hash: Hash): Promise<BoundWitness | undefined> {\n const archivist = archivists[0]\n if (archivist) {\n return (await archivist.get([hash])).findLast(x => x.schema === BoundWitnessSchema && isStorageMeta(x)) as BoundWitness | undefined\n }\n }\n}\n","import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport type { AddressChainDivinerParams } from './Params.ts'\n\nexport abstract class AddressChainDiviner<\n TParams extends AddressChainDivinerParams = AddressChainDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {}\n","import { asSchema } from '@xyo-network/payload-model'\n\nexport const AddressChainSchema = asSchema('network.xyo.diviner.address.chain', true)\nexport type AddressChainSchema = typeof AddressChainSchema\n\nexport const AddressChainDivinerConfigSchema = asSchema(`${AddressChainSchema}.config`, true)\nexport type AddressChainDivinerConfigSchema = typeof AddressChainDivinerConfigSchema\n\nexport const AddressChainQuerySchema = asSchema(`${AddressChainSchema}.query`, true)\nexport type AddressChainQuerySchema = typeof AddressChainQuerySchema\n"],"mappings":";AACA,SAAS,gBAAgB;AAGzB,SAAS,0BAA0B;AAGnC;AAAA,EACE;AAAA,OACK;;;ACTP,SAAS,uBAAuB;AAMzB,IAAe,sBAAf,cASG,gBAAgD;AAAC;;;ACf3D,SAAS,gBAAgB;AAElB,IAAM,qBAAqB,SAAS,qCAAqC,IAAI;AAG7E,IAAM,kCAAkC,SAAS,GAAG,kBAAkB,WAAW,IAAI;AAGrF,IAAM,0BAA0B,SAAS,GAAG,kBAAkB,UAAU,IAAI;;;AFW5E,IAAM,4BAAN,cAEG,oBAA6B;AAAA,EACrC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,+BAA+B;AAAA,EAC3G,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,eAAe;AACjB,WAAO,SAAS,KAAK,OAAO,SAAS,MAAM,iBAAiB;AAAA,EAC9D;AAAA,EAEA,MAAyB,cAAc,WAAsB,CAAC,GAAuB;AACnF,UAAM,SAAoB,CAAC;AAC3B,aAAS,SAAS,WAAW,GAAG,MAAM,qEAAqE;AAC3G,QAAI;AACF,YAAM,cAAc,MAAM,KAAK,kBAAkB;AACjD,YAAM,YAAY,SAAS,aAAa,MAAM,6BAA6B;AAC3E,UAAI,cAA2B,SAAS,KAAK,OAAO,WAAW,MAAM,mBAAmB;AACxF,aAAO,eAAe,OAAO,UAAU,KAAK,OAAO,cAAc,MAAO;AACtE,cAAM,KAAK,MAAM,KAAK,kBAAkB,CAAC,SAAS,GAAG,WAAW;AAChE,YAAI,IAAI;AACN,iBAAO,KAAK,EAAE;AACd,gBAAM,eAAe,GAAG,UAAU,QAAQ,KAAK,YAAY;AAC3D,wBAAc,iBAAiB,KAAK,OAAO,GAAG,gBAAgB,YAAY,KAAK;AAAA,QACjF,OAAO;AACL,kBAAQ,IAAI,+BAA+B,WAAW,GAAG;AACzD,wBAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF,SAAS,IAAI;AACX,cAAQ,IAAI,EAAE;AAAA,IAChB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,kBAAkB,YAAiC,MAA+C;AAC9G,UAAM,YAAY,WAAW,CAAC;AAC9B,QAAI,WAAW;AACb,cAAQ,MAAM,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,OAAK,EAAE,WAAW,sBAAsB,cAAc,CAAC,CAAC;AAAA,IACxG;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,6 @@
1
+ export * from './Config.ts';
2
+ export * from './Params.ts';
3
+ export * from './Payload.ts';
4
+ export * from './Query.ts';
5
+ export * from './Schema.ts';
6
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,20 @@
1
+ // src/Schema.ts
2
+ import { asSchema } from "@xyo-network/payload-model";
3
+ var AddressChainSchema = asSchema("network.xyo.diviner.address.chain", true);
4
+ var AddressChainDivinerConfigSchema = asSchema(`${AddressChainSchema}.config`, true);
5
+ var AddressChainQuerySchema = asSchema(`${AddressChainSchema}.query`, true);
6
+
7
+ // src/Payload.ts
8
+ var isAddressChainPayload = (x) => x?.schema === AddressChainSchema;
9
+
10
+ // src/Query.ts
11
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
12
+ var isAddressChainQueryPayload = isPayloadOfSchemaType(AddressChainQuerySchema);
13
+ export {
14
+ AddressChainDivinerConfigSchema,
15
+ AddressChainQuerySchema,
16
+ AddressChainSchema,
17
+ isAddressChainPayload,
18
+ isAddressChainQueryPayload
19
+ };
20
+ //# sourceMappingURL=model.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Schema.ts","../../src/Payload.ts","../../src/Query.ts"],"sourcesContent":["import { asSchema } from '@xyo-network/payload-model'\n\nexport const AddressChainSchema = asSchema('network.xyo.diviner.address.chain', true)\nexport type AddressChainSchema = typeof AddressChainSchema\n\nexport const AddressChainDivinerConfigSchema = asSchema(`${AddressChainSchema}.config`, true)\nexport type AddressChainDivinerConfigSchema = typeof AddressChainDivinerConfigSchema\n\nexport const AddressChainQuerySchema = asSchema(`${AddressChainSchema}.query`, true)\nexport type AddressChainQuerySchema = typeof AddressChainQuerySchema\n","import type { Payload } from '@xyo-network/payload-model'\n\nimport { AddressChainSchema } from './Schema.ts'\n\nexport type AddressChainPayload = Payload<{ schema: AddressChainSchema }>\nexport const isAddressChainPayload = (x?: Payload | null): x is AddressChainPayload => x?.schema === AddressChainSchema\n","import type { PayloadFindFilter, Query } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { AddressChainQuerySchema } from './Schema.ts'\n\nexport type AddressChainQueryPayload = Query<{ schema: AddressChainQuerySchema } & Omit<PayloadFindFilter, 'schema'>>\nexport const isAddressChainQueryPayload = isPayloadOfSchemaType<AddressChainQueryPayload>(AddressChainQuerySchema)\n"],"mappings":";AAAA,SAAS,gBAAgB;AAElB,IAAM,qBAAqB,SAAS,qCAAqC,IAAI;AAG7E,IAAM,kCAAkC,SAAS,GAAG,kBAAkB,WAAW,IAAI;AAGrF,IAAM,0BAA0B,SAAS,GAAG,kBAAkB,UAAU,IAAI;;;ACH5E,IAAM,wBAAwB,CAAC,MAAiD,GAAG,WAAW;;;ACJrG,SAAS,6BAA6B;AAK/B,IAAM,6BAA6B,sBAAgD,uBAAuB;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/diviner-address-chain",
3
- "version": "5.5.2",
3
+ "version": "5.5.5",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -24,6 +24,18 @@
24
24
  "types": "./dist/neutral/index.d.ts",
25
25
  "default": "./dist/neutral/index.mjs"
26
26
  },
27
+ "./abstract": {
28
+ "types": "./dist/neutral/abstract.d.ts",
29
+ "default": "./dist/neutral/abstract.mjs"
30
+ },
31
+ "./memory": {
32
+ "types": "./dist/neutral/memory.d.ts",
33
+ "default": "./dist/neutral/memory.mjs"
34
+ },
35
+ "./model": {
36
+ "types": "./dist/neutral/model.d.ts",
37
+ "default": "./dist/neutral/model.mjs"
38
+ },
27
39
  "./package.json": "./package.json"
28
40
  },
29
41
  "files": [
@@ -34,9 +46,9 @@
34
46
  "README.md"
35
47
  ],
36
48
  "dependencies": {
37
- "@xyo-network/diviner-address-chain-abstract": "~5.5.2",
38
- "@xyo-network/diviner-address-chain-memory": "~5.5.2",
39
- "@xyo-network/diviner-address-chain-model": "~5.5.2"
49
+ "@xyo-network/diviner-abstract": "~5.5.5",
50
+ "@xyo-network/diviner-model": "~5.5.5",
51
+ "@xyo-network/module-model": "~5.5.5"
40
52
  },
41
53
  "devDependencies": {
42
54
  "@bitauth/libauth": "~3.0.0",
@@ -46,29 +58,22 @@
46
58
  "@types/node": "^25.6.0",
47
59
  "@xylabs/sdk-js": "^5.0.100",
48
60
  "@xylabs/threads": "~5.0.100",
49
- "@xylabs/toolchain": "~7.11.5",
50
- "@xylabs/tsconfig": "~7.11.5",
61
+ "@xylabs/toolchain": "~7.11.8",
62
+ "@xylabs/tsconfig": "~7.11.8",
51
63
  "@xylabs/vitest-extended": "~5.0.100",
52
64
  "@xylabs/vitest-matchers": "~5.0.100",
53
- "@xyo-network/account": "~5.5",
54
- "@xyo-network/account-model": "~5.5",
55
- "@xyo-network/boundwitness-builder": "~5.5",
56
- "@xyo-network/boundwitness-model": "~5.5",
57
- "@xyo-network/boundwitness-validator": "~5.5",
58
- "@xyo-network/boundwitness-wrapper": "~5.5",
59
- "@xyo-network/config-payload-plugin": "~5.5",
60
- "@xyo-network/data": "~5.5",
61
- "@xyo-network/elliptic": "~5.5",
62
- "@xyo-network/hash": "~5.5",
63
- "@xyo-network/manifest-model": "~5.5",
64
- "@xyo-network/payload-builder": "~5.5",
65
- "@xyo-network/payload-model": "~5.5",
66
- "@xyo-network/payload-validator": "~5.5",
67
- "@xyo-network/payload-wrapper": "~5.5",
68
- "@xyo-network/previous-hash-store-model": "~5.5",
69
- "@xyo-network/query-payload-plugin": "~5.5",
70
- "@xyo-network/wallet-model": "~5.5",
71
- "@xyo-network/wasm": "~5.5",
65
+ "@xyo-network/account": "~5.5.1",
66
+ "@xyo-network/account-model": "~5.5.1",
67
+ "@xyo-network/boundwitness-builder": "~5.5.1",
68
+ "@xyo-network/boundwitness-model": "~5.5.1",
69
+ "@xyo-network/boundwitness-wrapper": "~5.5.1",
70
+ "@xyo-network/config-payload-plugin": "~5.5.1",
71
+ "@xyo-network/manifest-model": "~5.5.1",
72
+ "@xyo-network/payload-builder": "~5.5.1",
73
+ "@xyo-network/payload-model": "~5.5.1",
74
+ "@xyo-network/payload-wrapper": "~5.5.1",
75
+ "@xyo-network/query-payload-plugin": "~5.5.1",
76
+ "@xyo-network/wallet-model": "~5.5.1",
72
77
  "async-mutex": "^0.5",
73
78
  "bn.js": "^5",
74
79
  "buffer": "^6",
@@ -86,44 +91,29 @@
86
91
  "vitest": "~4.1.5",
87
92
  "wasm-feature-detect": "~1.8.0",
88
93
  "zod": "^4.3.6",
89
- "@xyo-network/archivist-generic": "~5.5.2",
90
- "@xyo-network/archivist-abstract": "~5.5.2",
91
- "@xyo-network/archivist-wrapper": "~5.5.2",
92
- "@xyo-network/archivist-model": "~5.5.2",
93
- "@xyo-network/diviner-abstract": "~5.5.2",
94
- "@xyo-network/diviner-model": "~5.5.2",
95
- "@xyo-network/archivist-memory": "~5.5.2",
96
- "@xyo-network/module-abstract": "~5.5.2",
97
- "@xyo-network/diviner-payload-model": "~5.5.2",
98
- "@xyo-network/module-model": "~5.5.2",
99
- "@xyo-network/module-resolver": "~5.5.2",
100
- "@xyo-network/node-abstract": "~5.5.2",
101
- "@xyo-network/node-memory": "~5.5.2",
102
- "@xyo-network/node-model": "~5.5.2",
103
- "@xyo-network/witness-model": "~5.5.2"
94
+ "@xyo-network/archivist-memory": "~5.5.5",
95
+ "@xyo-network/archivist-model": "~5.5.5",
96
+ "@xyo-network/archivist-wrapper": "~5.5.5",
97
+ "@xyo-network/node-memory": "~5.5.5",
98
+ "@xyo-network/node-model": "~5.5.5"
104
99
  },
105
100
  "peerDependencies": {
106
101
  "@scure/base": "~2.2.0",
107
102
  "@xylabs/sdk-js": "^5.0.100",
108
- "@xyo-network/account-model": "~5.5",
109
- "@xyo-network/archivist-model": "~5.5",
110
- "@xyo-network/boundwitness-model": "~5.5",
111
- "@xyo-network/boundwitness-validator": "~5.5",
112
- "@xyo-network/boundwitness-wrapper": "~5.5",
113
- "@xyo-network/data": "~5.5",
114
- "@xyo-network/diviner-model": "~5.5",
115
- "@xyo-network/elliptic": "~5.5",
116
- "@xyo-network/hash": "~5.5",
117
- "@xyo-network/manifest-model": "~5.5",
118
- "@xyo-network/module-abstract": "~5.5",
119
- "@xyo-network/module-model": "~5.5",
120
- "@xyo-network/payload-builder": "~5.5",
121
- "@xyo-network/payload-model": "~5.5",
122
- "@xyo-network/payload-validator": "~5.5",
123
- "@xyo-network/previous-hash-store-model": "~5.5",
124
- "@xyo-network/witness-model": "~5.5",
103
+ "@xyo-network/account": "~5.5.1",
104
+ "@xyo-network/account-model": "~5.5.1",
105
+ "@xyo-network/boundwitness-builder": "~5.5.1",
106
+ "@xyo-network/boundwitness-model": "~5.5.1",
107
+ "@xyo-network/boundwitness-wrapper": "~5.5.1",
108
+ "@xyo-network/config-payload-plugin": "~5.5.1",
109
+ "@xyo-network/manifest-model": "~5.5.1",
110
+ "@xyo-network/payload-builder": "~5.5.1",
111
+ "@xyo-network/payload-model": "~5.5.1",
112
+ "@xyo-network/query-payload-plugin": "~5.5.1",
113
+ "@xyo-network/wallet-model": "~5.5.1",
125
114
  "async-mutex": "~0.5.0",
126
115
  "ethers": "^6",
116
+ "lru-cache": "~11.3.5",
127
117
  "zod": "^4"
128
118
  },
129
119
  "publishConfig": {