@xyo-network/diviner 2.48.0 → 2.49.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@ import { assertEx } from '@xylabs/assert';
2
2
  import { Account } from '@xyo-network/account';
3
3
  import { XyoDivinerDivineQuerySchema } from '@xyo-network/diviner-model';
4
4
  import { AbstractModule, QueryBoundWitnessWrapper, XyoErrorBuilder, } from '@xyo-network/module';
5
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
5
6
  export class AbstractDiviner extends AbstractModule {
6
7
  static configSchema;
7
8
  static targetSchema;
@@ -16,6 +17,8 @@ export class AbstractDiviner extends AbstractModule {
16
17
  }
17
18
  async query(query, payloads, queryConfig) {
18
19
  const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
20
+ //remove the query payload
21
+ const cleanPayloads = payloads?.filter((payload) => PayloadWrapper.hash(payload) !== query.query);
19
22
  const typedQuery = wrapper.query;
20
23
  assertEx(this.queryable(query, payloads, queryConfig));
21
24
  const queryAccount = new Account();
@@ -23,7 +26,7 @@ export class AbstractDiviner extends AbstractModule {
23
26
  try {
24
27
  switch (typedQuery.schemaName) {
25
28
  case XyoDivinerDivineQuerySchema:
26
- resultPayloads.push(...(await this.divine(payloads)));
29
+ resultPayloads.push(...(await this.divine(cleanPayloads)));
27
30
  break;
28
31
  default:
29
32
  return super.query(query, payloads);
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractDiviner.js","sourceRoot":"","sources":["../../src/AbstractDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAgC,2BAA2B,EAAmB,MAAM,4BAA4B,CAAA;AACvH,OAAO,EACL,cAAc,EAId,wBAAwB,EACxB,eAAe,GAEhB,MAAM,qBAAqB,CAAA;AAM5B,MAAM,OAAgB,eAA+D,SAAQ,cAAuB;IAClH,MAAM,CAAU,YAAY,CAAQ;IACpC,MAAM,CAAC,YAAY,CAAQ;IAE3B,IAAa,OAAO;QAClB,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,EAAE,YAAY,CAAA;IAClC,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAA6C;QACxE,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAoB,CAAA;IACxD,CAAC;IAEQ,KAAK,CAAC,KAAK,CAClB,KAAQ,EACR,QAAuB,EACvB,WAAqB;QAErB,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAkB,KAAK,EAAE,QAAQ,CAAC,CAAA;QACrF,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;QACtD,MAAM,YAAY,GAAG,IAAI,OAAO,EAAE,CAAA;QAClC,MAAM,cAAc,GAAiB,EAAE,CAAA;QACvC,IAAI;YACF,QAAQ,UAAU,CAAC,UAAU,EAAE;gBAC7B,KAAK,2BAA2B;oBAC9B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBACrD,MAAK;gBACP;oBACE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;aACtC;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,EAAW,CAAA;YACzB,cAAc,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;SAChF;QACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IAC5D,CAAC;CAGF"}
1
+ {"version":3,"file":"AbstractDiviner.js","sourceRoot":"","sources":["../../src/AbstractDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAgC,2BAA2B,EAAmB,MAAM,4BAA4B,CAAA;AACvH,OAAO,EACL,cAAc,EAId,wBAAwB,EACxB,eAAe,GAEhB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAK7D,MAAM,OAAgB,eAA+D,SAAQ,cAAuB;IAClH,MAAM,CAAU,YAAY,CAAQ;IACpC,MAAM,CAAC,YAAY,CAAQ;IAE3B,IAAa,OAAO;QAClB,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,EAAE,YAAY,CAAA;IAClC,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAA6C;QACxE,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAoB,CAAA;IACxD,CAAC;IAEQ,KAAK,CAAC,KAAK,CAClB,KAAQ,EACR,QAAuB,EACvB,WAAqB;QAErB,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAkB,KAAK,EAAE,QAAQ,CAAC,CAAA;QACrF,0BAA0B;QAC1B,MAAM,aAAa,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAA;QACjG,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;QACtD,MAAM,YAAY,GAAG,IAAI,OAAO,EAAE,CAAA;QAClC,MAAM,cAAc,GAAiB,EAAE,CAAA;QACvC,IAAI;YACF,QAAQ,UAAU,CAAC,UAAU,EAAE;gBAC7B,KAAK,2BAA2B;oBAC9B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;oBAC1D,MAAK;gBACP;oBACE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;aACtC;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,EAAW,CAAA;YACzB,cAAc,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;SAChF;QACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IAC5D,CAAC;CAGF"}
@@ -3,6 +3,7 @@ import { ArchivistGetQuerySchema } from '@xyo-network/archivist';
3
3
  import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
4
4
  import { XyoBoundWitnessSchema } from '@xyo-network/boundwitness-model';
5
5
  import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
6
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
6
7
  import { AbstractDiviner } from '../AbstractDiviner';
7
8
  export const MemoryAddressHistoryDivinerConfigSchema = 'network.xyo.diviner.address.history.memory.config';
8
9
  // This diviner returns the most recent boundwitness signed by the address that can be found
@@ -13,16 +14,18 @@ export class MemoryAddressHistoryDiviner extends AbstractDiviner {
13
14
  return (await super.create(params));
14
15
  }
15
16
  async divine(payloads) {
16
- assertEx(!payloads, 'MemoryAddressHistoryDiviner.divine does not allow payloads to be sent');
17
- const archivists = (await this.resolver?.resolve({ query: [[ArchivistGetQuerySchema]] }))?.map((archivist) => new ArchivistWrapper(archivist)) ?? [];
18
- const bwLists = (await Promise.all(archivists.map((archivist) => {
19
- //Todo: add address to filter
20
- return archivist.find({ limit: 10000, schema: XyoBoundWitnessSchema });
17
+ assertEx(!payloads?.length, 'MemoryAddressHistoryDiviner.divine does not allow payloads to be sent');
18
+ const archivists = (await this.resolve({ query: [[ArchivistGetQuerySchema]] }))?.map((archivist) => new ArchivistWrapper(archivist)) ?? [];
19
+ assertEx(archivists.length > 0, 'Did not find any archivists');
20
+ const bwLists = (await Promise.all(archivists.map(async (archivist) => {
21
+ const all = await archivist.all();
22
+ return all.filter((payload) => payload.schema === XyoBoundWitnessSchema);
21
23
  }))).flat();
22
24
  const bwRecords = this.buildWrapperRecords(bwLists);
23
25
  const chains = Object.values(this.buildAddressChains(this.config.address, bwRecords));
26
+ console.log(`Chains: ${JSON.stringify(chains, null, 2)}`);
24
27
  //return the heads of each chain (get the last bw on each chain)
25
- return chains.map((chain) => assertEx(chain.pop()));
28
+ return chains.map((chain) => assertEx(PayloadWrapper.unwrap(chain.shift())));
26
29
  }
27
30
  buildAddressChains(address, bwRecords) {
28
31
  const arrayedResult = Object.entries(bwRecords).reduce((prev, [key, value]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryAddressHistoryDiviner.js","sourceRoot":"","sources":["../../../src/AddressHistory/MemoryAddressHistoryDiviner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryAddressHistoryDiviner.js","sourceRoot":"","sources":["../../../src/AddressHistory/MemoryAddressHistoryDiviner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractDiviner.d.ts","sourceRoot":"","sources":["../../src/AbstractDiviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAgD,MAAM,4BAA4B,CAAA;AACvH,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAGjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,MAAM,aAAa,GAAG,YAAY,CAAA;AAExC,8BAAsB,eAAe,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAE,YAAW,aAAa;IAC3I,OAAgB,YAAY,EAAE,MAAM,CAAA;IACpC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAA;IAE3B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,YAAY,uBAEf;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAItF,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EACrH,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,UAAU,EAAE,EACvB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC;IAqB7B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;CACnE"}
1
+ {"version":3,"file":"AbstractDiviner.d.ts","sourceRoot":"","sources":["../../src/AbstractDiviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAgD,MAAM,4BAA4B,CAAA;AACvH,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAGjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,MAAM,aAAa,GAAG,YAAY,CAAA;AAExC,8BAAsB,eAAe,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAE,YAAW,aAAa;IAC3I,OAAgB,YAAY,EAAE,MAAM,CAAA;IACpC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAA;IAE3B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,YAAY,uBAEf;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAItF,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EACrH,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,UAAU,EAAE,EACvB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC;IAuB7B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;CACnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryAddressHistoryDiviner.d.ts","sourceRoot":"","sources":["../../../src/AddressHistory/MemoryAddressHistoryDiviner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAyB,MAAM,iCAAiC,CAAA;AAExF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,MAAM,uCAAuC,GAAG,mDAAmD,CAAA;AACzG,eAAO,MAAM,uCAAuC,sDAAsD,CAAA;AAE1G,MAAM,MAAM,iCAAiC,GAAG,aAAa,CAC3D,eAAe,EACf;IACE,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,uCAAuC,CAAA;CAChD,CACF,CAAA;AAKD,qBAAa,2BAA4B,SAAQ,eAAe,CAAC,iCAAiC,CAAE,YAAW,qBAAqB;IAClI,OAAgB,YAAY,SAA0C;WAEhD,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI/H,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAqB5D,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,mBAAmB;CAS5B"}
1
+ {"version":3,"file":"MemoryAddressHistoryDiviner.d.ts","sourceRoot":"","sources":["../../../src/AddressHistory/MemoryAddressHistoryDiviner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAyB,MAAM,iCAAiC,CAAA;AAExF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAGvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,MAAM,uCAAuC,GAAG,mDAAmD,CAAA;AACzG,eAAO,MAAM,uCAAuC,sDAAsD,CAAA;AAE1G,MAAM,MAAM,iCAAiC,GAAG,aAAa,CAC3D,eAAe,EACf;IACE,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,uCAAuC,CAAA;CAChD,CACF,CAAA;AAKD,qBAAa,2BAA4B,SAAQ,eAAe,CAAC,iCAAiC,CAAE,YAAW,qBAAqB;IAClI,OAAgB,YAAY,SAA0C;WAEhD,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI/H,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAuB5D,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,mBAAmB;CAS5B"}
package/package.json CHANGED
@@ -12,19 +12,19 @@
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.7.4",
14
14
  "@xylabs/promise": "^2.7.4",
15
- "@xyo-network/account": "^2.48.0",
16
- "@xyo-network/archivist": "^2.48.0",
17
- "@xyo-network/archivist-wrapper": "^2.48.0",
18
- "@xyo-network/boundwitness-model": "^2.48.0",
19
- "@xyo-network/boundwitness-wrapper": "^2.48.0",
20
- "@xyo-network/diviner-model": "^2.48.0",
21
- "@xyo-network/diviner-wrapper": "^2.48.0",
22
- "@xyo-network/huri": "^2.48.0",
23
- "@xyo-network/module": "^2.48.0",
24
- "@xyo-network/module-model": "^2.48.0",
25
- "@xyo-network/payload-model": "^2.48.0",
26
- "@xyo-network/payload-wrapper": "^2.48.0",
27
- "@xyo-network/promise": "^2.48.0",
15
+ "@xyo-network/account": "^2.49.1",
16
+ "@xyo-network/archivist": "^2.49.1",
17
+ "@xyo-network/archivist-wrapper": "^2.49.1",
18
+ "@xyo-network/boundwitness-model": "^2.49.1",
19
+ "@xyo-network/boundwitness-wrapper": "^2.49.1",
20
+ "@xyo-network/diviner-model": "^2.49.1",
21
+ "@xyo-network/diviner-wrapper": "^2.49.1",
22
+ "@xyo-network/huri": "^2.49.1",
23
+ "@xyo-network/module": "^2.49.1",
24
+ "@xyo-network/module-model": "^2.49.1",
25
+ "@xyo-network/payload-model": "^2.49.1",
26
+ "@xyo-network/payload-wrapper": "^2.49.1",
27
+ "@xyo-network/promise": "^2.49.1",
28
28
  "lodash": "^4.17.21"
29
29
  },
30
30
  "devDependencies": {
@@ -66,5 +66,5 @@
66
66
  },
67
67
  "sideEffects": false,
68
68
  "types": "dist/types/index.d.ts",
69
- "version": "2.48.0"
69
+ "version": "2.49.1"
70
70
  }
@@ -11,6 +11,7 @@ import {
11
11
  XyoQueryBoundWitness,
12
12
  } from '@xyo-network/module'
13
13
  import { XyoPayload } from '@xyo-network/payload-model'
14
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper'
14
15
  import { Promisable } from '@xyo-network/promise'
15
16
 
16
17
  export type DivinerParams = ModuleParams
@@ -37,6 +38,8 @@ export abstract class AbstractDiviner<TConfig extends DivinerConfig = DivinerCon
37
38
  queryConfig?: TConfig,
38
39
  ): Promise<ModuleQueryResult> {
39
40
  const wrapper = QueryBoundWitnessWrapper.parseQuery<XyoDivinerQuery>(query, payloads)
41
+ //remove the query payload
42
+ const cleanPayloads = payloads?.filter((payload) => PayloadWrapper.hash(payload) !== query.query)
40
43
  const typedQuery = wrapper.query
41
44
  assertEx(this.queryable(query, payloads, queryConfig))
42
45
  const queryAccount = new Account()
@@ -44,7 +47,7 @@ export abstract class AbstractDiviner<TConfig extends DivinerConfig = DivinerCon
44
47
  try {
45
48
  switch (typedQuery.schemaName) {
46
49
  case XyoDivinerDivineQuerySchema:
47
- resultPayloads.push(...(await this.divine(payloads)))
50
+ resultPayloads.push(...(await this.divine(cleanPayloads)))
48
51
  break
49
52
  default:
50
53
  return super.query(query, payloads)
@@ -6,6 +6,7 @@ import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
6
6
  import { DivinerConfig } from '@xyo-network/diviner-model'
7
7
  import { ModuleParams } from '@xyo-network/module'
8
8
  import { XyoPayload } from '@xyo-network/payload-model'
9
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper'
9
10
 
10
11
  import { AbstractDiviner } from '../AbstractDiviner'
11
12
  import { AddressHistoryDiviner } from './AddressHistoryDiviner'
@@ -32,14 +33,14 @@ export class MemoryAddressHistoryDiviner extends AbstractDiviner<MemoryAddressHi
32
33
  }
33
34
 
34
35
  async divine(payloads?: XyoPayload[]): Promise<XyoPayload[]> {
35
- assertEx(!payloads, 'MemoryAddressHistoryDiviner.divine does not allow payloads to be sent')
36
- const archivists =
37
- (await this.resolver?.resolve({ query: [[ArchivistGetQuerySchema]] }))?.map((archivist) => new ArchivistWrapper(archivist)) ?? []
36
+ assertEx(!payloads?.length, 'MemoryAddressHistoryDiviner.divine does not allow payloads to be sent')
37
+ const archivists = (await this.resolve({ query: [[ArchivistGetQuerySchema]] }))?.map((archivist) => new ArchivistWrapper(archivist)) ?? []
38
+ assertEx(archivists.length > 0, 'Did not find any archivists')
38
39
  const bwLists = (
39
40
  await Promise.all(
40
- archivists.map((archivist) => {
41
- //Todo: add address to filter
42
- return archivist.find<XyoBoundWitness>({ limit: 10000, schema: XyoBoundWitnessSchema })
41
+ archivists.map(async (archivist) => {
42
+ const all = await archivist.all()
43
+ return all.filter((payload) => payload.schema === XyoBoundWitnessSchema) as XyoBoundWitness[]
43
44
  }),
44
45
  )
45
46
  ).flat()
@@ -48,8 +49,10 @@ export class MemoryAddressHistoryDiviner extends AbstractDiviner<MemoryAddressHi
48
49
 
49
50
  const chains = Object.values(this.buildAddressChains(this.config.address, bwRecords))
50
51
 
52
+ console.log(`Chains: ${JSON.stringify(chains, null, 2)}`)
53
+
51
54
  //return the heads of each chain (get the last bw on each chain)
52
- return chains.map((chain) => assertEx(chain.pop()))
55
+ return chains.map((chain) => assertEx(PayloadWrapper.unwrap(chain.shift())))
53
56
  }
54
57
 
55
58
  private buildAddressChains(address: string, bwRecords: Record<string, BoundWitnessWrapper>): Record<string, BoundWitnessWrapper[]> {