@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.
- package/dist/cjs/AbstractDiviner.js +4 -1
- package/dist/cjs/AbstractDiviner.js.map +1 -1
- package/dist/cjs/AddressHistory/MemoryAddressHistoryDiviner.js +11 -8
- package/dist/cjs/AddressHistory/MemoryAddressHistoryDiviner.js.map +1 -1
- package/dist/docs.json +27529 -22084
- package/dist/esm/AbstractDiviner.js +4 -1
- package/dist/esm/AbstractDiviner.js.map +1 -1
- package/dist/esm/AddressHistory/MemoryAddressHistoryDiviner.js +9 -6
- package/dist/esm/AddressHistory/MemoryAddressHistoryDiviner.js.map +1 -1
- package/dist/types/AbstractDiviner.d.ts.map +1 -1
- package/dist/types/AddressHistory/MemoryAddressHistoryDiviner.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/AbstractDiviner.ts +4 -1
- package/src/AddressHistory/MemoryAddressHistoryDiviner.ts +10 -7
|
@@ -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(
|
|
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;
|
|
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.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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.
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAmB,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;
|
|
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;
|
|
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;
|
|
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.
|
|
16
|
-
"@xyo-network/archivist": "^2.
|
|
17
|
-
"@xyo-network/archivist-wrapper": "^2.
|
|
18
|
-
"@xyo-network/boundwitness-model": "^2.
|
|
19
|
-
"@xyo-network/boundwitness-wrapper": "^2.
|
|
20
|
-
"@xyo-network/diviner-model": "^2.
|
|
21
|
-
"@xyo-network/diviner-wrapper": "^2.
|
|
22
|
-
"@xyo-network/huri": "^2.
|
|
23
|
-
"@xyo-network/module": "^2.
|
|
24
|
-
"@xyo-network/module-model": "^2.
|
|
25
|
-
"@xyo-network/payload-model": "^2.
|
|
26
|
-
"@xyo-network/payload-wrapper": "^2.
|
|
27
|
-
"@xyo-network/promise": "^2.
|
|
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.
|
|
69
|
+
"version": "2.49.1"
|
|
70
70
|
}
|
package/src/AbstractDiviner.ts
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
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
|
-
|
|
42
|
-
return
|
|
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.
|
|
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[]> {
|