@xyo-network/sentinel 2.53.20 → 2.53.22
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/MemorySentinel.js +23 -23
- package/dist/cjs/MemorySentinel.js.map +1 -1
- package/dist/cjs/Wrapper.js +1 -15
- package/dist/cjs/Wrapper.js.map +1 -1
- package/dist/docs.json +35079 -35351
- package/dist/esm/MemorySentinel.js +20 -20
- package/dist/esm/MemorySentinel.js.map +1 -1
- package/dist/esm/Wrapper.js +2 -16
- package/dist/esm/Wrapper.js.map +1 -1
- package/dist/types/MemorySentinel.d.ts +1 -1
- package/dist/types/MemorySentinel.d.ts.map +1 -1
- package/dist/types/Wrapper.d.ts +0 -4
- package/dist/types/Wrapper.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/MemorySentinel.ts +22 -22
- package/src/Wrapper.ts +2 -19
|
@@ -6,7 +6,25 @@ import { AbstractSentinel } from './AbstractSentinel';
|
|
|
6
6
|
import { SentinelReportQuerySchema } from './Queries';
|
|
7
7
|
export class MemorySentinel extends AbstractSentinel {
|
|
8
8
|
static configSchema;
|
|
9
|
-
async
|
|
9
|
+
async report(payloads = []) {
|
|
10
|
+
const errors = [];
|
|
11
|
+
await this.emit('reportStart', { inPayloads: payloads, module: this });
|
|
12
|
+
const allWitnesses = [...(await this.getWitnesses())];
|
|
13
|
+
const allPayloads = [];
|
|
14
|
+
try {
|
|
15
|
+
const generatedPayloads = compact(await this.generatePayloads(allWitnesses));
|
|
16
|
+
const combinedPayloads = [...generatedPayloads, ...payloads];
|
|
17
|
+
allPayloads.push(...combinedPayloads);
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
errors.push(e);
|
|
21
|
+
}
|
|
22
|
+
const [boundWitness] = await this.bindResult(allPayloads);
|
|
23
|
+
this.history.push(assertEx(boundWitness));
|
|
24
|
+
await this.emit('reportEnd', { boundWitness, errors, inPayloads: payloads, module: this, outPayloads: allPayloads });
|
|
25
|
+
return [boundWitness, ...allPayloads];
|
|
26
|
+
}
|
|
27
|
+
async queryHandler(query, payloads, queryConfig) {
|
|
10
28
|
const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
11
29
|
const typedQuery = wrapper.query;
|
|
12
30
|
assertEx(this.queryable(query, payloads, queryConfig));
|
|
@@ -19,7 +37,7 @@ export class MemorySentinel extends AbstractSentinel {
|
|
|
19
37
|
break;
|
|
20
38
|
}
|
|
21
39
|
default:
|
|
22
|
-
return super.
|
|
40
|
+
return super.queryHandler(query, payloads);
|
|
23
41
|
}
|
|
24
42
|
}
|
|
25
43
|
catch (ex) {
|
|
@@ -28,24 +46,6 @@ export class MemorySentinel extends AbstractSentinel {
|
|
|
28
46
|
}
|
|
29
47
|
return await this.bindResult(resultPayloads, queryAccount);
|
|
30
48
|
}
|
|
31
|
-
async report(payloads = []) {
|
|
32
|
-
const errors = [];
|
|
33
|
-
await this.emit('reportStart', { inPayloads: payloads, module: this });
|
|
34
|
-
const allWitnesses = [...(await this.getWitnesses())];
|
|
35
|
-
const allPayloads = [];
|
|
36
|
-
try {
|
|
37
|
-
const generatedPayloads = compact(await this.generatePayloads(allWitnesses));
|
|
38
|
-
const combinedPayloads = [...generatedPayloads, ...payloads];
|
|
39
|
-
allPayloads.push(...combinedPayloads);
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
errors.push(e);
|
|
43
|
-
}
|
|
44
|
-
const [boundWitness] = await this.bindResult(allPayloads);
|
|
45
|
-
this.history.push(assertEx(boundWitness));
|
|
46
|
-
await this.emit('reportEnd', { boundWitness, errors, inPayloads: payloads, module: this, outPayloads: allPayloads });
|
|
47
|
-
return [boundWitness, ...allPayloads];
|
|
48
|
-
}
|
|
49
49
|
async generatePayloads(witnesses) {
|
|
50
50
|
return (await Promise.all(witnesses?.map(async (witness) => await witness.observe()))).flat();
|
|
51
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemorySentinel.js","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAGL,kBAAkB,EAGlB,wBAAwB,GACzB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAiB,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAOpE,MAAM,OAAO,cAIX,SAAQ,gBAAqC;IAG7C,MAAM,CAAU,YAAY,CAAsB;
|
|
1
|
+
{"version":3,"file":"MemorySentinel.js","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAGL,kBAAkB,EAGlB,wBAAwB,GACzB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAiB,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAOpE,MAAM,OAAO,cAIX,SAAQ,gBAAqC;IAG7C,MAAM,CAAU,YAAY,CAAsB;IAElD,KAAK,CAAC,MAAM,CAAC,WAAsB,EAAE;QACnC,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAsB,EAAE,CAAC,CAAA;QACxF,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;QACrD,MAAM,WAAW,GAAc,EAAE,CAAA;QAEjC,IAAI;YACF,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAA;YAC5E,MAAM,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,QAAQ,CAAC,CAAA;YAC5D,WAAW,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAA;SACtC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,IAAI,CAAC,CAAU,CAAC,CAAA;SACxB;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;QACzC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAsB,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;QACtI,OAAO,CAAC,YAAY,EAAE,GAAG,WAAW,CAAC,CAAA;IACvC,CAAC;IAEkB,KAAK,CAAC,YAAY,CACnC,KAAQ,EACR,QAAoB,EACpB,WAAqB;QAErB,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAgB,KAAK,EAAE,QAAQ,CAAC,CAAA;QACnF,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,GAAc,EAAE,CAAA;QACpC,IAAI;YACF,QAAQ,UAAU,CAAC,UAAU,EAAE;gBAC7B,KAAK,yBAAyB,CAAC,CAAC;oBAC9B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBACrD,MAAK;iBACN;gBACD;oBACE,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;aAC7C;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,EAAW,CAAA;YACzB,cAAc,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;SACnF;QACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IAC5D,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,SAA2B;QACxD,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/F,CAAC;CACF"}
|
package/dist/esm/Wrapper.js
CHANGED
|
@@ -1,23 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ModuleWrapper } from '@xyo-network/module';
|
|
1
|
+
import { constructableModuleWrapper, ModuleWrapper } from '@xyo-network/module';
|
|
3
2
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
4
3
|
import { SentinelReportQuerySchema } from './Queries';
|
|
4
|
+
constructableModuleWrapper();
|
|
5
5
|
export class SentinelWrapper extends ModuleWrapper {
|
|
6
6
|
static requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries];
|
|
7
|
-
static tryWrap(module, account) {
|
|
8
|
-
if (module) {
|
|
9
|
-
const missingRequiredQueries = this.missingRequiredQueries(module);
|
|
10
|
-
if (missingRequiredQueries.length > 0) {
|
|
11
|
-
//console.warn(`Missing queries: ${JSON.stringify(missingRequiredQueries, null, 2)}`)
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return new SentinelWrapper({ account, module: module });
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
static wrap(module, account) {
|
|
19
|
-
return assertEx(this.tryWrap(module, account), 'Unable to wrap module as DivinerWrapper');
|
|
20
|
-
}
|
|
21
7
|
async report(payloads) {
|
|
22
8
|
const queryPayload = PayloadWrapper.parse({ schema: SentinelReportQuerySchema });
|
|
23
9
|
const result = await this.sendQuery(queryPayload, payloads);
|
package/dist/esm/Wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAuB,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAG1E,0BAA0B,EAAE,CAAA;AAC5B,MAAM,OAAO,eAAiE,SAAQ,aAAsB;IAC1G,MAAM,CAAU,eAAe,GAAG,CAAC,yBAAyB,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;IAEvF,KAAK,CAAC,MAAM,CAAC,QAAoB;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAsB,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAA;QACrG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC3D,OAAO,MAAM,CAAA;IACf,CAAC"}
|
|
@@ -6,8 +6,8 @@ import { SentinelModule, SentinelModuleEventData, SentinelParams } from './Senti
|
|
|
6
6
|
export type MemorySentinelParams<TConfig extends AnyConfigSchema<SentinelConfig> = AnyConfigSchema<SentinelConfig>> = SentinelParams<AnyConfigSchema<TConfig>>;
|
|
7
7
|
export declare class MemorySentinel<TParams extends MemorySentinelParams = MemorySentinelParams, TEventData extends SentinelModuleEventData = SentinelModuleEventData> extends AbstractSentinel<TParams, TEventData> implements SentinelModule<TParams, TEventData> {
|
|
8
8
|
static configSchema: SentinelConfigSchema;
|
|
9
|
-
query<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
|
|
10
9
|
report(payloads?: Payload[]): Promise<Payload[]>;
|
|
10
|
+
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
|
|
11
11
|
private generatePayloads;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=MemorySentinel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,YAAY,EAEZ,iBAAiB,EACjB,iBAAiB,EAElB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEzF,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,eAAe,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,cAAc,CAClI,eAAe,CAAC,OAAO,CAAC,CACzB,CAAA;AAED,qBAAa,cAAc,CACvB,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,EAC3D,UAAU,SAAS,uBAAuB,GAAG,uBAAuB,CAEtE,SAAQ,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAC5C,YAAW,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC;IAE9C,OAAgB,YAAY,EAAE,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,YAAY,EAEZ,iBAAiB,EACjB,iBAAiB,EAElB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEzF,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,eAAe,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,cAAc,CAClI,eAAe,CAAC,OAAO,CAAC,CACzB,CAAA;AAED,qBAAa,cAAc,CACvB,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,EAC3D,UAAU,SAAS,uBAAuB,GAAG,uBAAuB,CAEtE,SAAQ,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAC5C,YAAW,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC;IAE9C,OAAgB,YAAY,EAAE,oBAAoB,CAAA;IAE5C,MAAM,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAoBjC,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC;YAsBf,gBAAgB;CAG/B"}
|
package/dist/types/Wrapper.d.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import { AccountInstance } from '@xyo-network/account-model';
|
|
2
1
|
import { ModuleWrapper } from '@xyo-network/module';
|
|
3
|
-
import { Module } from '@xyo-network/module-model';
|
|
4
2
|
import { Payload } from '@xyo-network/payload-model';
|
|
5
3
|
import { SentinelModule } from './SentinelModel';
|
|
6
4
|
export declare class SentinelWrapper<TModule extends SentinelModule = SentinelModule> extends ModuleWrapper<TModule> implements SentinelModule {
|
|
7
5
|
static requiredQueries: string[];
|
|
8
|
-
static tryWrap(module?: Module, account?: AccountInstance): SentinelWrapper | undefined;
|
|
9
|
-
static wrap(module?: Module, account?: AccountInstance): SentinelWrapper;
|
|
10
6
|
report(payloads?: Payload[]): Promise<Payload[]>;
|
|
11
7
|
}
|
|
12
8
|
//# sourceMappingURL=Wrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD,qBAAa,eAAe,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,aAAa,CAAC,OAAO,CAAE,YAAW,cAAc;IACpI,OAAgB,eAAe,WAAwD;IAEjF,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAKvD"}
|
package/package.json
CHANGED
|
@@ -11,18 +11,18 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.7.6",
|
|
14
|
-
"@xyo-network/account": "^2.53.
|
|
15
|
-
"@xyo-network/account-model": "^2.53.
|
|
16
|
-
"@xyo-network/archivist": "^2.53.
|
|
17
|
-
"@xyo-network/archivist-wrapper": "^2.53.
|
|
18
|
-
"@xyo-network/boundwitness-model": "^2.53.
|
|
19
|
-
"@xyo-network/core": "^2.53.
|
|
20
|
-
"@xyo-network/module": "^2.53.
|
|
21
|
-
"@xyo-network/module-model": "^2.53.
|
|
22
|
-
"@xyo-network/payload-model": "^2.53.
|
|
23
|
-
"@xyo-network/payload-wrapper": "^2.53.
|
|
24
|
-
"@xyo-network/promise": "^2.53.
|
|
25
|
-
"@xyo-network/witness": "^2.53.
|
|
14
|
+
"@xyo-network/account": "^2.53.22",
|
|
15
|
+
"@xyo-network/account-model": "^2.53.22",
|
|
16
|
+
"@xyo-network/archivist": "^2.53.22",
|
|
17
|
+
"@xyo-network/archivist-wrapper": "^2.53.22",
|
|
18
|
+
"@xyo-network/boundwitness-model": "^2.53.22",
|
|
19
|
+
"@xyo-network/core": "^2.53.22",
|
|
20
|
+
"@xyo-network/module": "^2.53.22",
|
|
21
|
+
"@xyo-network/module-model": "^2.53.22",
|
|
22
|
+
"@xyo-network/payload-model": "^2.53.22",
|
|
23
|
+
"@xyo-network/payload-wrapper": "^2.53.22",
|
|
24
|
+
"@xyo-network/promise": "^2.53.22",
|
|
25
|
+
"@xyo-network/witness": "^2.53.22",
|
|
26
26
|
"lodash": "^4.17.21"
|
|
27
27
|
},
|
|
28
28
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
},
|
|
65
65
|
"sideEffects": false,
|
|
66
66
|
"types": "dist/types/index.d.ts",
|
|
67
|
-
"version": "2.53.
|
|
67
|
+
"version": "2.53.22"
|
|
68
68
|
}
|
package/src/MemorySentinel.ts
CHANGED
|
@@ -30,7 +30,27 @@ export class MemorySentinel<
|
|
|
30
30
|
{
|
|
31
31
|
static override configSchema: SentinelConfigSchema
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
async report(payloads: Payload[] = []): Promise<Payload[]> {
|
|
34
|
+
const errors: Error[] = []
|
|
35
|
+
await this.emit('reportStart', { inPayloads: payloads, module: this as SentinelModule })
|
|
36
|
+
const allWitnesses = [...(await this.getWitnesses())]
|
|
37
|
+
const allPayloads: Payload[] = []
|
|
38
|
+
|
|
39
|
+
try {
|
|
40
|
+
const generatedPayloads = compact(await this.generatePayloads(allWitnesses))
|
|
41
|
+
const combinedPayloads = [...generatedPayloads, ...payloads]
|
|
42
|
+
allPayloads.push(...combinedPayloads)
|
|
43
|
+
} catch (e) {
|
|
44
|
+
errors.push(e as Error)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const [boundWitness] = await this.bindResult(allPayloads)
|
|
48
|
+
this.history.push(assertEx(boundWitness))
|
|
49
|
+
await this.emit('reportEnd', { boundWitness, errors, inPayloads: payloads, module: this as SentinelModule, outPayloads: allPayloads })
|
|
50
|
+
return [boundWitness, ...allPayloads]
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
|
|
34
54
|
query: T,
|
|
35
55
|
payloads?: Payload[],
|
|
36
56
|
queryConfig?: TConfig,
|
|
@@ -47,7 +67,7 @@ export class MemorySentinel<
|
|
|
47
67
|
break
|
|
48
68
|
}
|
|
49
69
|
default:
|
|
50
|
-
return super.
|
|
70
|
+
return super.queryHandler(query, payloads)
|
|
51
71
|
}
|
|
52
72
|
} catch (ex) {
|
|
53
73
|
const error = ex as Error
|
|
@@ -56,26 +76,6 @@ export class MemorySentinel<
|
|
|
56
76
|
return await this.bindResult(resultPayloads, queryAccount)
|
|
57
77
|
}
|
|
58
78
|
|
|
59
|
-
async report(payloads: Payload[] = []): Promise<Payload[]> {
|
|
60
|
-
const errors: Error[] = []
|
|
61
|
-
await this.emit('reportStart', { inPayloads: payloads, module: this as SentinelModule })
|
|
62
|
-
const allWitnesses = [...(await this.getWitnesses())]
|
|
63
|
-
const allPayloads: Payload[] = []
|
|
64
|
-
|
|
65
|
-
try {
|
|
66
|
-
const generatedPayloads = compact(await this.generatePayloads(allWitnesses))
|
|
67
|
-
const combinedPayloads = [...generatedPayloads, ...payloads]
|
|
68
|
-
allPayloads.push(...combinedPayloads)
|
|
69
|
-
} catch (e) {
|
|
70
|
-
errors.push(e as Error)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const [boundWitness] = await this.bindResult(allPayloads)
|
|
74
|
-
this.history.push(assertEx(boundWitness))
|
|
75
|
-
await this.emit('reportEnd', { boundWitness, errors, inPayloads: payloads, module: this as SentinelModule, outPayloads: allPayloads })
|
|
76
|
-
return [boundWitness, ...allPayloads]
|
|
77
|
-
}
|
|
78
|
-
|
|
79
79
|
private async generatePayloads(witnesses: WitnessWrapper[]): Promise<Payload[]> {
|
|
80
80
|
return (await Promise.all(witnesses?.map(async (witness) => await witness.observe()))).flat()
|
|
81
81
|
}
|
package/src/Wrapper.ts
CHANGED
|
@@ -1,31 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AccountInstance } from '@xyo-network/account-model'
|
|
3
|
-
import { ModuleWrapper } from '@xyo-network/module'
|
|
4
|
-
import { Module } from '@xyo-network/module-model'
|
|
1
|
+
import { constructableModuleWrapper, ModuleWrapper } from '@xyo-network/module'
|
|
5
2
|
import { Payload } from '@xyo-network/payload-model'
|
|
6
3
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
7
4
|
|
|
8
5
|
import { SentinelReportQuery, SentinelReportQuerySchema } from './Queries'
|
|
9
6
|
import { SentinelModule } from './SentinelModel'
|
|
10
7
|
|
|
8
|
+
constructableModuleWrapper()
|
|
11
9
|
export class SentinelWrapper<TModule extends SentinelModule = SentinelModule> extends ModuleWrapper<TModule> implements SentinelModule {
|
|
12
10
|
static override requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries]
|
|
13
11
|
|
|
14
|
-
static override tryWrap(module?: Module, account?: AccountInstance): SentinelWrapper | undefined {
|
|
15
|
-
if (module) {
|
|
16
|
-
const missingRequiredQueries = this.missingRequiredQueries(module)
|
|
17
|
-
if (missingRequiredQueries.length > 0) {
|
|
18
|
-
//console.warn(`Missing queries: ${JSON.stringify(missingRequiredQueries, null, 2)}`)
|
|
19
|
-
} else {
|
|
20
|
-
return new SentinelWrapper({ account, module: module as SentinelModule })
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
static override wrap(module?: Module, account?: AccountInstance): SentinelWrapper {
|
|
26
|
-
return assertEx(this.tryWrap(module, account), 'Unable to wrap module as DivinerWrapper')
|
|
27
|
-
}
|
|
28
|
-
|
|
29
12
|
async report(payloads?: Payload[]): Promise<Payload[]> {
|
|
30
13
|
const queryPayload = PayloadWrapper.parse<SentinelReportQuery>({ schema: SentinelReportQuerySchema })
|
|
31
14
|
const result = await this.sendQuery(queryPayload, payloads)
|