@xyo-network/bridge-module-resolver 2.64.6 → 2.64.8
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/ModuleResolver.js +15 -8
- package/dist/cjs/ModuleResolver.js.map +1 -1
- package/dist/cjs/ProxyModule.js +29 -0
- package/dist/cjs/ProxyModule.js.map +1 -1
- package/dist/docs.json +2034 -870
- package/dist/esm/ModuleResolver.js +13 -8
- package/dist/esm/ModuleResolver.js.map +1 -1
- package/dist/esm/ProxyModule.js +26 -0
- package/dist/esm/ProxyModule.js.map +1 -1
- package/dist/types/ModuleResolver.d.ts +4 -1
- package/dist/types/ModuleResolver.d.ts.map +1 -1
- package/dist/types/ProxyModule.d.ts +11 -3
- package/dist/types/ProxyModule.d.ts.map +1 -1
- package/package.json +19 -18
- package/src/ModuleResolver.ts +13 -9
- package/src/ProxyModule.ts +37 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert';
|
|
2
1
|
import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
3
2
|
import { ArchivistGetQuerySchema } from '@xyo-network/archivist-model';
|
|
4
3
|
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
|
|
@@ -15,13 +14,15 @@ import compact from 'lodash/compact';
|
|
|
15
14
|
import { ProxyModule, ProxyModuleConfigSchema } from './ProxyModule';
|
|
16
15
|
export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
17
16
|
bridge;
|
|
17
|
+
wrapperAccount;
|
|
18
18
|
remoteAddresses;
|
|
19
19
|
resolvedModules = {};
|
|
20
20
|
// TODO: Allow optional ctor param for supplying address for nested Nodes
|
|
21
21
|
// protected readonly address?: string,
|
|
22
|
-
constructor(bridge) {
|
|
22
|
+
constructor(bridge, wrapperAccount) {
|
|
23
23
|
super();
|
|
24
24
|
this.bridge = bridge;
|
|
25
|
+
this.wrapperAccount = wrapperAccount;
|
|
25
26
|
}
|
|
26
27
|
get isModuleResolver() {
|
|
27
28
|
return true;
|
|
@@ -59,6 +60,11 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
59
60
|
async resolve(filter) {
|
|
60
61
|
return await this.resolveRemoteModules(filter);
|
|
61
62
|
}
|
|
63
|
+
async resolveOne(addressOrName) {
|
|
64
|
+
if (addressOrName) {
|
|
65
|
+
return (await this.resolveByAddress(addressOrName)) ?? (await this.resolveByName(addressOrName))?.[0];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
62
68
|
async resolveByAddress(targetAddress) {
|
|
63
69
|
const remoteAddresses = await this.getRemoteAddresses();
|
|
64
70
|
//check if it is even there
|
|
@@ -76,21 +82,20 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
76
82
|
try {
|
|
77
83
|
//discover it to set the config in the bridge
|
|
78
84
|
await this.bridge.targetDiscover(address);
|
|
79
|
-
const account = assertEx(this.bridge.account, 'Missing bridge account');
|
|
80
85
|
if (mod.queries.includes(ArchivistGetQuerySchema)) {
|
|
81
|
-
return ArchivistWrapper.wrap(mod,
|
|
86
|
+
return ArchivistWrapper.wrap(mod, this.wrapperAccount);
|
|
82
87
|
}
|
|
83
88
|
if (mod.queries.includes(DivinerDivineQuerySchema)) {
|
|
84
|
-
return DivinerWrapper.wrap(mod,
|
|
89
|
+
return DivinerWrapper.wrap(mod, this.wrapperAccount);
|
|
85
90
|
}
|
|
86
91
|
if (mod.queries.includes(WitnessObserveQuerySchema)) {
|
|
87
|
-
return WitnessWrapper.wrap(mod,
|
|
92
|
+
return WitnessWrapper.wrap(mod, this.wrapperAccount);
|
|
88
93
|
}
|
|
89
94
|
if (mod.queries.includes(NodeAttachQuerySchema)) {
|
|
90
|
-
return NodeWrapper.wrap(mod,
|
|
95
|
+
return NodeWrapper.wrap(mod, this.wrapperAccount);
|
|
91
96
|
}
|
|
92
97
|
if (mod.queries.includes(SentinelReportQuerySchema)) {
|
|
93
|
-
return SentinelWrapper.wrap(mod,
|
|
98
|
+
return SentinelWrapper.wrap(mod, this.wrapperAccount);
|
|
94
99
|
}
|
|
95
100
|
return mod;
|
|
96
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/ProxyModule.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
|
+
import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
2
3
|
import { BaseEmitter, CompositeModuleResolver, } from '@xyo-network/module';
|
|
4
|
+
import compact from 'lodash/compact';
|
|
3
5
|
export const ProxyModuleConfigSchema = 'network.xyo.module.proxy.config';
|
|
4
6
|
export class ProxyModule extends BaseEmitter {
|
|
5
7
|
upResolver = new CompositeModuleResolver();
|
|
@@ -21,10 +23,34 @@ export class ProxyModule extends BaseEmitter {
|
|
|
21
23
|
get queries() {
|
|
22
24
|
return this.bridge.targetQueries(this.address);
|
|
23
25
|
}
|
|
26
|
+
addressPreviousHash() {
|
|
27
|
+
throw Error('Not Implemented');
|
|
28
|
+
}
|
|
29
|
+
async describe() {
|
|
30
|
+
const description = {
|
|
31
|
+
address: this.address,
|
|
32
|
+
queries: this.queries,
|
|
33
|
+
};
|
|
34
|
+
if (this.config.name) {
|
|
35
|
+
description.name = this.config.name;
|
|
36
|
+
}
|
|
37
|
+
const discover = await this.discover();
|
|
38
|
+
description.children = compact(discover?.map((payload) => {
|
|
39
|
+
const address = payload.schema === AddressSchema ? payload.address : undefined;
|
|
40
|
+
return address != this.address ? address : undefined;
|
|
41
|
+
}) ?? []);
|
|
42
|
+
return description;
|
|
43
|
+
}
|
|
44
|
+
discover() {
|
|
45
|
+
return this.bridge.targetDiscover();
|
|
46
|
+
}
|
|
24
47
|
manifest() {
|
|
25
48
|
const name = assertEx(this.config.name, 'Calling manifest on un-named module is not supported');
|
|
26
49
|
return { config: { name, ...this.config } };
|
|
27
50
|
}
|
|
51
|
+
previousHash() {
|
|
52
|
+
throw Error('Not Implemented');
|
|
53
|
+
}
|
|
28
54
|
async query(query, payloads) {
|
|
29
55
|
const result = assertEx(await this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed');
|
|
30
56
|
await this.emit('moduleQueried', { module: this, payloads, query, result });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyModule.js","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"ProxyModule.js","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { AccountInstance } from '@xyo-network/account-model';
|
|
1
2
|
import { BridgeModule } from '@xyo-network/bridge-model';
|
|
2
3
|
import { CompositeModuleResolver } from '@xyo-network/module';
|
|
3
4
|
import { Module, ModuleFilter, ModuleResolver } from '@xyo-network/module-model';
|
|
4
5
|
export declare class BridgeModuleResolver extends CompositeModuleResolver implements ModuleResolver {
|
|
5
6
|
protected readonly bridge: BridgeModule;
|
|
7
|
+
protected wrapperAccount: AccountInstance;
|
|
6
8
|
private remoteAddresses?;
|
|
7
9
|
private resolvedModules;
|
|
8
|
-
constructor(bridge: BridgeModule);
|
|
10
|
+
constructor(bridge: BridgeModule, wrapperAccount: AccountInstance);
|
|
9
11
|
get isModuleResolver(): boolean;
|
|
10
12
|
add(module: Module): this;
|
|
11
13
|
add(module: Module[]): this;
|
|
@@ -13,6 +15,7 @@ export declare class BridgeModuleResolver extends CompositeModuleResolver implem
|
|
|
13
15
|
getRemoteAddresses(): Promise<string[]>;
|
|
14
16
|
remove(_address: string | string[]): this;
|
|
15
17
|
resolve<T extends Module = Module>(filter?: ModuleFilter): Promise<T[]>;
|
|
18
|
+
resolveOne<T extends Module = Module>(addressOrName?: string): Promise<T | undefined>;
|
|
16
19
|
private resolveByAddress;
|
|
17
20
|
private resolveByName;
|
|
18
21
|
private resolveByQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleResolver.d.ts","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModuleResolver.d.ts","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAI5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAIxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAuB,MAAM,EAAE,YAAY,EAAE,cAAc,EAAuC,MAAM,2BAA2B,CAAA;AAU1I,qBAAa,oBAAqB,SAAQ,uBAAwB,YAAW,cAAc;IAM7E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY;IAAE,SAAS,CAAC,cAAc,EAAE,eAAe;IAL9F,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,eAAe,CAAsC;gBAI9B,MAAM,EAAE,YAAY,EAAY,cAAc,EAAE,eAAe;IAI9F,IAAa,gBAAgB,IAAI,OAAO,CAEvC;IAEQ,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IACzB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAK9B,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAW/E,kBAAkB;IAmBf,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAInC,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIvE,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;YAMtF,gBAAgB;YAoDhB,aAAa;YAIb,cAAc;YAUd,oBAAoB;YAiBpB,6BAA6B;YAI7B,0BAA0B;YAI1B,2BAA2B;CAG1C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BridgeModule } from '@xyo-network/bridge-model';
|
|
2
2
|
import { ModuleManifest } from '@xyo-network/manifest-model';
|
|
3
|
-
import { BaseEmitter, CompositeModuleResolver, Module, ModuleConfig, ModuleEventData, ModuleFilter, ModuleParams, ModuleQueryResult, QueryBoundWitness } from '@xyo-network/module';
|
|
3
|
+
import { AddressPreviousHashPayload, BaseEmitter, CompositeModuleResolver, Module, ModuleConfig, ModuleDescription, ModuleEventData, ModuleFilter, ModuleParams, ModuleQueryResult, QueryBoundWitness } from '@xyo-network/module';
|
|
4
4
|
import { Payload } from '@xyo-network/payload-model';
|
|
5
5
|
import { Promisable } from '@xyo-network/promise';
|
|
6
6
|
export type ProxyModuleConfigSchema = 'network.xyo.module.proxy.config';
|
|
@@ -45,13 +45,21 @@ export declare class ProxyModule extends BaseEmitter<ProxyModuleParams, ModuleEv
|
|
|
45
45
|
} & Omit<{
|
|
46
46
|
discoverCache?: true | import("@xyo-network/bridge-model").CacheConfig | undefined;
|
|
47
47
|
schema: "network.xyo.bridge.config";
|
|
48
|
-
}, "schema"
|
|
48
|
+
}, "schema"> & {
|
|
49
|
+
schema: "network.xyo.bridge.config";
|
|
50
|
+
}, "schema"> & {
|
|
51
|
+
schema: string;
|
|
52
|
+
}, "schema"> & {
|
|
49
53
|
schema: string;
|
|
50
|
-
}
|
|
54
|
+
}>, ModuleEventData, Module<ModuleParams, ModuleEventData>>;
|
|
51
55
|
get config(): ModuleConfig;
|
|
52
56
|
get downResolver(): import("@xyo-network/module").ModuleResolver;
|
|
53
57
|
get queries(): string[];
|
|
58
|
+
addressPreviousHash(): Promise<AddressPreviousHashPayload>;
|
|
59
|
+
describe(): Promise<ModuleDescription>;
|
|
60
|
+
discover(): Promisable<Payload[]>;
|
|
54
61
|
manifest(): Promisable<ModuleManifest>;
|
|
62
|
+
previousHash(): Promise<string | undefined>;
|
|
55
63
|
query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult>;
|
|
56
64
|
queryable(query: QueryBoundWitness, payloads?: Payload[], queryConfig?: ModuleConfig): Promise<boolean>;
|
|
57
65
|
resolve(filter?: ModuleFilter): Promise<Module[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyModule.d.ts","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProxyModule.d.ts","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EACL,0BAA0B,EAC1B,WAAW,EACX,uBAAuB,EACvB,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,MAAM,MAAM,uBAAuB,GAAG,iCAAiC,CAAA;AACvE,eAAO,MAAM,uBAAuB,EAAE,uBAA2D,CAAA;AAEjG,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;IAAE,MAAM,EAAE,uBAAuB,CAAA;CAAE,CAAC,CAAA;AAElF,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAC1C,kBAAkB,EAClB;IACE,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,YAAY,CAAA;CACrB,CACF,CAAA;AAED,qBAAa,WAAY,SAAQ,WAAW,CAAC,iBAAiB,EAAE,eAAe,CAAE,YAAW,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC;IAC/H,QAAQ,CAAC,UAAU,0BAAgC;gBAEvC,MAAM,EAAE,iBAAiB;IAIrC,IAAI,OAAO,WAEV;IAED,IAAI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAET;IAED,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,YAAY,iDAEf;IAED,IAAI,OAAO,aAEV;IAED,mBAAmB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAIpD,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAqB5C,QAAQ,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;IAIjC,QAAQ,IAAI,UAAU,CAAC,cAAc,CAAC;IAKtC,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIrC,KAAK,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAMlH,SAAS,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvG,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAGxD"}
|
package/package.json
CHANGED
|
@@ -11,23 +11,24 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.9.3",
|
|
14
|
-
"@xyo-network/
|
|
15
|
-
"@xyo-network/
|
|
16
|
-
"@xyo-network/archivist-
|
|
17
|
-
"@xyo-network/
|
|
18
|
-
"@xyo-network/
|
|
19
|
-
"@xyo-network/diviner-
|
|
20
|
-
"@xyo-network/
|
|
21
|
-
"@xyo-network/
|
|
22
|
-
"@xyo-network/
|
|
23
|
-
"@xyo-network/module
|
|
24
|
-
"@xyo-network/
|
|
25
|
-
"@xyo-network/node-
|
|
26
|
-
"@xyo-network/
|
|
27
|
-
"@xyo-network/
|
|
28
|
-
"@xyo-network/
|
|
29
|
-
"@xyo-network/
|
|
30
|
-
"@xyo-network/witness-
|
|
14
|
+
"@xyo-network/account-model": "^2.64.8",
|
|
15
|
+
"@xyo-network/address-payload-plugin": "^2.64.8",
|
|
16
|
+
"@xyo-network/archivist-model": "^2.64.8",
|
|
17
|
+
"@xyo-network/archivist-wrapper": "^2.64.8",
|
|
18
|
+
"@xyo-network/bridge-model": "^2.64.8",
|
|
19
|
+
"@xyo-network/diviner-model": "^2.64.8",
|
|
20
|
+
"@xyo-network/diviner-wrapper": "^2.64.8",
|
|
21
|
+
"@xyo-network/error": "^2.64.8",
|
|
22
|
+
"@xyo-network/manifest-model": "^2.64.8",
|
|
23
|
+
"@xyo-network/module": "^2.64.8",
|
|
24
|
+
"@xyo-network/module-model": "^2.64.8",
|
|
25
|
+
"@xyo-network/node-model": "^2.64.8",
|
|
26
|
+
"@xyo-network/node-wrapper": "^2.64.8",
|
|
27
|
+
"@xyo-network/payload-model": "^2.64.8",
|
|
28
|
+
"@xyo-network/promise": "^2.64.8",
|
|
29
|
+
"@xyo-network/sentinel": "^2.64.8",
|
|
30
|
+
"@xyo-network/witness-model": "^2.64.8",
|
|
31
|
+
"@xyo-network/witness-wrapper": "^2.64.8",
|
|
31
32
|
"lodash": "^4.17.21"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
@@ -68,5 +69,5 @@
|
|
|
68
69
|
},
|
|
69
70
|
"sideEffects": false,
|
|
70
71
|
"types": "dist/types/index.d.ts",
|
|
71
|
-
"version": "2.64.
|
|
72
|
+
"version": "2.64.8"
|
|
72
73
|
}
|
package/src/ModuleResolver.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AccountInstance } from '@xyo-network/account-model'
|
|
2
2
|
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
3
3
|
import { ArchivistGetQuerySchema } from '@xyo-network/archivist-model'
|
|
4
4
|
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
|
|
@@ -23,7 +23,7 @@ export class BridgeModuleResolver extends CompositeModuleResolver implements Mod
|
|
|
23
23
|
|
|
24
24
|
// TODO: Allow optional ctor param for supplying address for nested Nodes
|
|
25
25
|
// protected readonly address?: string,
|
|
26
|
-
constructor(protected readonly bridge: BridgeModule) {
|
|
26
|
+
constructor(protected readonly bridge: BridgeModule, protected wrapperAccount: AccountInstance) {
|
|
27
27
|
super()
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -75,6 +75,12 @@ export class BridgeModuleResolver extends CompositeModuleResolver implements Mod
|
|
|
75
75
|
return await this.resolveRemoteModules<T>(filter)
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
override async resolveOne<T extends Module = Module>(addressOrName?: string): Promise<T | undefined> {
|
|
79
|
+
if (addressOrName) {
|
|
80
|
+
return (await this.resolveByAddress<T>(addressOrName)) ?? (await this.resolveByName<T>(addressOrName))?.[0]
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
78
84
|
private async resolveByAddress<T extends Module = Module>(targetAddress: string): Promise<T | undefined> {
|
|
79
85
|
const remoteAddresses = await this.getRemoteAddresses()
|
|
80
86
|
|
|
@@ -96,26 +102,24 @@ export class BridgeModuleResolver extends CompositeModuleResolver implements Mod
|
|
|
96
102
|
//discover it to set the config in the bridge
|
|
97
103
|
await this.bridge.targetDiscover(address)
|
|
98
104
|
|
|
99
|
-
const account = assertEx(this.bridge.account, 'Missing bridge account')
|
|
100
|
-
|
|
101
105
|
if (mod.queries.includes(ArchivistGetQuerySchema)) {
|
|
102
|
-
return ArchivistWrapper.wrap(mod,
|
|
106
|
+
return ArchivistWrapper.wrap(mod, this.wrapperAccount)
|
|
103
107
|
}
|
|
104
108
|
|
|
105
109
|
if (mod.queries.includes(DivinerDivineQuerySchema)) {
|
|
106
|
-
return DivinerWrapper.wrap(mod,
|
|
110
|
+
return DivinerWrapper.wrap(mod, this.wrapperAccount)
|
|
107
111
|
}
|
|
108
112
|
|
|
109
113
|
if (mod.queries.includes(WitnessObserveQuerySchema)) {
|
|
110
|
-
return WitnessWrapper.wrap(mod,
|
|
114
|
+
return WitnessWrapper.wrap(mod, this.wrapperAccount)
|
|
111
115
|
}
|
|
112
116
|
|
|
113
117
|
if (mod.queries.includes(NodeAttachQuerySchema)) {
|
|
114
|
-
return NodeWrapper.wrap(mod,
|
|
118
|
+
return NodeWrapper.wrap(mod, this.wrapperAccount)
|
|
115
119
|
}
|
|
116
120
|
|
|
117
121
|
if (mod.queries.includes(SentinelReportQuerySchema)) {
|
|
118
|
-
return SentinelWrapper.wrap(mod,
|
|
122
|
+
return SentinelWrapper.wrap(mod, this.wrapperAccount)
|
|
119
123
|
}
|
|
120
124
|
|
|
121
125
|
return mod
|
package/src/ProxyModule.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
2
3
|
import { BridgeModule } from '@xyo-network/bridge-model'
|
|
3
4
|
import { ModuleManifest } from '@xyo-network/manifest-model'
|
|
4
5
|
import {
|
|
6
|
+
AddressPreviousHashPayload,
|
|
5
7
|
BaseEmitter,
|
|
6
8
|
CompositeModuleResolver,
|
|
7
9
|
Module,
|
|
8
10
|
ModuleConfig,
|
|
11
|
+
ModuleDescription,
|
|
9
12
|
ModuleEventData,
|
|
10
13
|
ModuleFilter,
|
|
11
14
|
ModuleParams,
|
|
@@ -14,6 +17,7 @@ import {
|
|
|
14
17
|
} from '@xyo-network/module'
|
|
15
18
|
import { Payload } from '@xyo-network/payload-model'
|
|
16
19
|
import { Promisable } from '@xyo-network/promise'
|
|
20
|
+
import compact from 'lodash/compact'
|
|
17
21
|
|
|
18
22
|
export type ProxyModuleConfigSchema = 'network.xyo.module.proxy.config'
|
|
19
23
|
export const ProxyModuleConfigSchema: ProxyModuleConfigSchema = 'network.xyo.module.proxy.config'
|
|
@@ -55,11 +59,44 @@ export class ProxyModule extends BaseEmitter<ProxyModuleParams, ModuleEventData>
|
|
|
55
59
|
return this.bridge.targetQueries(this.address)
|
|
56
60
|
}
|
|
57
61
|
|
|
62
|
+
addressPreviousHash(): Promise<AddressPreviousHashPayload> {
|
|
63
|
+
throw Error('Not Implemented')
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async describe(): Promise<ModuleDescription> {
|
|
67
|
+
const description: ModuleDescription = {
|
|
68
|
+
address: this.address,
|
|
69
|
+
queries: this.queries,
|
|
70
|
+
}
|
|
71
|
+
if (this.config.name) {
|
|
72
|
+
description.name = this.config.name
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const discover = await this.discover()
|
|
76
|
+
|
|
77
|
+
description.children = compact(
|
|
78
|
+
discover?.map((payload) => {
|
|
79
|
+
const address = payload.schema === AddressSchema ? (payload as AddressPayload).address : undefined
|
|
80
|
+
return address != this.address ? address : undefined
|
|
81
|
+
}) ?? [],
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
return description
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
discover(): Promisable<Payload[]> {
|
|
88
|
+
return this.bridge.targetDiscover()
|
|
89
|
+
}
|
|
90
|
+
|
|
58
91
|
manifest(): Promisable<ModuleManifest> {
|
|
59
92
|
const name = assertEx(this.config.name, 'Calling manifest on un-named module is not supported')
|
|
60
93
|
return { config: { name, ...this.config } }
|
|
61
94
|
}
|
|
62
95
|
|
|
96
|
+
previousHash(): Promise<string | undefined> {
|
|
97
|
+
throw Error('Not Implemented')
|
|
98
|
+
}
|
|
99
|
+
|
|
63
100
|
async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {
|
|
64
101
|
const result = assertEx(await this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed')
|
|
65
102
|
await this.emit('moduleQueried', { module: this, payloads, query, result })
|