@xyo-network/module-abstract 2.57.5 → 2.58.0
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/AbstractModule.js +57 -37
- package/dist/cjs/AbstractModule.js.map +1 -1
- package/dist/cjs/ModuleFactory.js +6 -1
- package/dist/cjs/ModuleFactory.js.map +1 -1
- package/dist/cjs/Resolver/CompositeModuleResolver.js +11 -0
- package/dist/cjs/Resolver/CompositeModuleResolver.js.map +1 -1
- package/dist/cjs/Resolver/SimpleModuleResolver.js +9 -0
- package/dist/cjs/Resolver/SimpleModuleResolver.js.map +1 -1
- package/dist/docs.json +40449 -21105
- package/dist/esm/AbstractModule.js +46 -33
- package/dist/esm/AbstractModule.js.map +1 -1
- package/dist/esm/ModuleFactory.js +4 -1
- package/dist/esm/ModuleFactory.js.map +1 -1
- package/dist/esm/Resolver/CompositeModuleResolver.js +9 -0
- package/dist/esm/Resolver/CompositeModuleResolver.js.map +1 -1
- package/dist/esm/Resolver/SimpleModuleResolver.js +9 -0
- package/dist/esm/Resolver/SimpleModuleResolver.js.map +1 -1
- package/dist/types/AbstractModule.d.ts +106 -4
- package/dist/types/AbstractModule.d.ts.map +1 -1
- package/dist/types/ModuleFactory.d.ts.map +1 -1
- package/dist/types/Resolver/CompositeModuleResolver.d.ts +1 -0
- package/dist/types/Resolver/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/types/Resolver/SimpleModuleResolver.d.ts +1 -0
- package/dist/types/Resolver/SimpleModuleResolver.d.ts.map +1 -1
- package/dist/types/lib/duplicateModules.d.ts +18 -16
- package/dist/types/lib/duplicateModules.d.ts.map +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/AbstractModule.html +115 -70
- package/docs/classes/BaseEmitter.html +13 -13
- package/docs/classes/CompositeModuleResolver.html +39 -18
- package/docs/classes/ModuleConfigQueryValidator.html +11 -11
- package/docs/classes/ModuleErrorBuilder.html +7 -7
- package/docs/classes/ModuleFactory.html +13 -13
- package/docs/classes/QueryBoundWitnessBuilder.html +10 -10
- package/docs/classes/QueryBoundWitnessValidator.html +6 -6
- package/docs/classes/QueryBoundWitnessWrapper.html +63 -15
- package/docs/classes/SimpleModuleResolver.html +45 -24
- package/docs/classes/SupportedQueryValidator.html +6 -6
- package/docs/functions/duplicateModules.html +5 -5
- package/docs/functions/isQuerySupportedByModule.html +2 -2
- package/docs/functions/mixinResolverEventEmitter.html +1 -1
- package/docs/functions/serializable.html +1 -1
- package/docs/functions/serializableField.html +1 -1
- package/docs/interfaces/CreatableModuleDictionary.html +1 -1
- package/docs/interfaces/ModuleResolvedEventArgs.html +4 -4
- package/docs/interfaces/QueryValidator.html +2 -2
- package/docs/interfaces/ResolverEventEmitter.html +2 -2
- package/docs/types/ModuleError.html +1 -1
- package/docs/types/ModuleErrorSchema.html +2 -2
- package/docs/types/Queryable.html +1 -1
- package/docs/types/SortedPipedAddressesString.html +1 -1
- package/docs/variables/ModuleErrorSchema-1.html +2 -2
- package/package.json +24 -23
- package/src/AbstractModule.ts +55 -39
- package/src/ModuleFactory.ts +4 -1
- package/src/Resolver/CompositeModuleResolver.ts +9 -0
- package/src/Resolver/SimpleModuleResolver.ts +9 -0
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<h5><span class="tsd-kind-parameter">field</span>: <span class="tsd-signature-type">unknown</span></h5></li></ul></div>
|
|
27
27
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
|
|
28
28
|
<ul>
|
|
29
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
29
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/lib/serializable.ts#L39">modules/packages/module/packages/abstract/src/lib/serializable.ts:39</a></li></ul></aside></li></ul></section></div>
|
|
30
30
|
<div class="col-sidebar">
|
|
31
31
|
<div class="page-menu">
|
|
32
32
|
<div class="tsd-navigation settings">
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<h4 class="tsd-before-signature">Indexable</h4>
|
|
24
24
|
<div class="tsd-signature"><span class="tsd-signature-symbol">[</span>key: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-type ">CreatableModuleFactory</span></div></section><aside class="tsd-sources">
|
|
25
25
|
<ul>
|
|
26
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
26
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/ModuleFactory.ts#L5">modules/packages/module/packages/abstract/src/ModuleFactory.ts:5</a></li></ul></aside></div>
|
|
27
27
|
<div class="col-sidebar">
|
|
28
28
|
<div class="page-menu">
|
|
29
29
|
<div class="tsd-navigation settings">
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<ul class="tsd-hierarchy">
|
|
21
21
|
<li><span class="target">ModuleResolvedEventArgs</span></li></ul></section><aside class="tsd-sources">
|
|
22
22
|
<ul>
|
|
23
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
23
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts#L3">modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts:3</a></li></ul></aside>
|
|
24
24
|
<section class="tsd-panel-group tsd-index-group">
|
|
25
25
|
<section class="tsd-panel tsd-index-panel">
|
|
26
26
|
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
<h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>filter</span><a href="#filter" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></h3>
|
|
38
38
|
<div class="tsd-signature"><span class="tsd-kind-property">filter</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type ">ModuleFilter</span></div><aside class="tsd-sources">
|
|
39
39
|
<ul>
|
|
40
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
40
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts#L4">modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts:4</a></li></ul></aside></section>
|
|
41
41
|
<section class="tsd-panel tsd-member"><a id="module" class="tsd-anchor"></a>
|
|
42
42
|
<h3 class="tsd-anchor-link"><span>module</span><a href="#module" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
|
|
43
|
-
<div class="tsd-signature"><span class="tsd-kind-property">module</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">Module</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">ModuleParams</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">SchemaFields</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-type ">PayloadFields</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">paging</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">size</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">schema</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">security</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">allowAnonymous</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">allowed</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">CosigningAddressSet</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">disallowed</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">storeQueries</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-type ">Omit</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">Omit</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">SchemaFields</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-type ">PayloadFields</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">paging</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">size</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">schema</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"network.xyo.module.config"</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">security</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">allowAnonymous</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">allowed</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">CosigningAddressSet</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">disallowed</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">storeQueries</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-type ">Omit</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">"schema"</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">"schema"</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">schema</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">"schema"</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type ">ModuleEventData</span><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources">
|
|
43
|
+
<div class="tsd-signature"><span class="tsd-kind-property">module</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">Module</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">ModuleParams</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">SchemaFields</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-type ">PayloadFields</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">archivist</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">ArchivistModuleConfig</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">paging</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">size</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">schema</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">security</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">allowAnonymous</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">allowed</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">CosigningAddressSet</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">disallowed</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">storeQueries</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-type ">Omit</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">Omit</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">SchemaFields</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-type ">PayloadFields</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">archivist</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">ArchivistModuleConfig</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">paging</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">size</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">schema</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"network.xyo.module.config"</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">security</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">allowAnonymous</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">allowed</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">CosigningAddressSet</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">disallowed</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">storeQueries</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-type ">Omit</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">"schema"</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">"schema"</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">schema</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">"schema"</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type ">ModuleEventData</span><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources">
|
|
44
44
|
<ul>
|
|
45
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
45
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts#L5">modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts:5</a></li></ul></aside></section></section></div>
|
|
46
46
|
<div class="col-sidebar">
|
|
47
47
|
<div class="page-menu">
|
|
48
48
|
<div class="tsd-navigation settings">
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<li><a href="../classes/ModuleConfigQueryValidator.html" class="tsd-signature-type tsd-kind-class">ModuleConfigQueryValidator</a></li>
|
|
31
31
|
<li><a href="../classes/SupportedQueryValidator.html" class="tsd-signature-type tsd-kind-class">SupportedQueryValidator</a></li></ul></section><aside class="tsd-sources">
|
|
32
32
|
<ul>
|
|
33
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
33
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/QueryValidator/QueryValidator.ts#L6">modules/packages/module/packages/abstract/src/QueryValidator/QueryValidator.ts:6</a></li></ul></aside>
|
|
34
34
|
<section class="tsd-panel-group tsd-index-group">
|
|
35
35
|
<section class="tsd-panel tsd-index-panel">
|
|
36
36
|
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<h3 class="tsd-anchor-link"><span>queryable</span><a href="#queryable" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></h3>
|
|
47
47
|
<div class="tsd-signature"><span class="tsd-kind-property">queryable</span><span class="tsd-signature-symbol">:</span> <a href="../types/Queryable.html" class="tsd-signature-type tsd-kind-type-alias">Queryable</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type tsd-kind-type-parameter">T</span><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources">
|
|
48
48
|
<ul>
|
|
49
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
49
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/QueryValidator/QueryValidator.ts#L7">modules/packages/module/packages/abstract/src/QueryValidator/QueryValidator.ts:7</a></li></ul></aside></section></section></div>
|
|
50
50
|
<div class="col-sidebar">
|
|
51
51
|
<div class="page-menu">
|
|
52
52
|
<div class="tsd-navigation settings">
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<ul class="tsd-hierarchy">
|
|
21
21
|
<li><span class="target">ResolverEventEmitter</span></li></ul></section><aside class="tsd-sources">
|
|
22
22
|
<ul>
|
|
23
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
23
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts#L8">modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts:8</a></li></ul></aside>
|
|
24
24
|
<section class="tsd-panel-group tsd-index-group">
|
|
25
25
|
<section class="tsd-panel tsd-index-panel">
|
|
26
26
|
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></li></ul></div>
|
|
58
58
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
|
|
59
59
|
<ul>
|
|
60
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
60
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts#L9">modules/packages/module/packages/abstract/src/Resolver/ResolverEventEmitter.ts:9</a></li></ul></aside></li></ul></section></section></div>
|
|
61
61
|
<div class="col-sidebar">
|
|
62
62
|
<div class="page-menu">
|
|
63
63
|
<div class="tsd-navigation settings">
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<h1>Type alias ModuleError</h1></div>
|
|
18
18
|
<div class="tsd-signature"><span class="tsd-kind-type-alias">Module<wbr/>Error</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">Payload</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">message</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">schema</span><span class="tsd-signature-symbol">: </span><a href="../variables/ModuleErrorSchema-1.html" class="tsd-signature-type tsd-kind-variable">ModuleErrorSchema</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">sources</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources">
|
|
19
19
|
<ul>
|
|
20
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
20
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Error.ts#L7">modules/packages/module/packages/abstract/src/Error.ts:7</a></li></ul></aside></div>
|
|
21
21
|
<div class="col-sidebar">
|
|
22
22
|
<div class="page-menu">
|
|
23
23
|
<div class="tsd-navigation settings">
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
<h1>Type alias ModuleErrorSchema</h1></div>
|
|
18
18
|
<div class="tsd-signature"><span class="tsd-kind-type-alias">Module<wbr/>Error<wbr/>Schema</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"network.xyo.error.module"</span></div><aside class="tsd-sources">
|
|
19
19
|
<ul>
|
|
20
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
21
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
20
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Error.ts#L4">modules/packages/module/packages/abstract/src/Error.ts:4</a></li>
|
|
21
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Error.ts#L5">modules/packages/module/packages/abstract/src/Error.ts:5</a></li></ul></aside></div>
|
|
22
22
|
<div class="col-sidebar">
|
|
23
23
|
<div class="page-menu">
|
|
24
24
|
<div class="tsd-navigation settings">
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">payloads</span>: <span class="tsd-signature-type ">Payload</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div>
|
|
38
38
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4></li></ul></li></ul></div><aside class="tsd-sources">
|
|
39
39
|
<ul>
|
|
40
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
40
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/QueryValidator/QueryValidator.ts#L4">modules/packages/module/packages/abstract/src/QueryValidator/QueryValidator.ts:4</a></li></ul></aside></div>
|
|
41
41
|
<div class="col-sidebar">
|
|
42
42
|
<div class="page-menu">
|
|
43
43
|
<div class="tsd-navigation settings">
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<h1>Type alias SortedPipedAddressesString</h1></div>
|
|
18
18
|
<div class="tsd-signature"><span class="tsd-kind-type-alias">Sorted<wbr/>Piped<wbr/>Addresses<wbr/>String</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
|
|
19
19
|
<ul>
|
|
20
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
20
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/QueryValidator/ModuleConfigQueryValidator.ts#L6">modules/packages/module/packages/abstract/src/QueryValidator/ModuleConfigQueryValidator.ts:6</a></li></ul></aside></div>
|
|
21
21
|
<div class="col-sidebar">
|
|
22
22
|
<div class="page-menu">
|
|
23
23
|
<div class="tsd-navigation settings">
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
<h1>Variable ModuleErrorSchema</h1></div>
|
|
18
18
|
<div class="tsd-signature"><span class="tsd-kind-variable">Module<wbr/>Error<wbr/>Schema</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"network.xyo.error.module"</span></div><aside class="tsd-sources">
|
|
19
19
|
<ul>
|
|
20
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
21
|
-
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
20
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Error.ts#L4">modules/packages/module/packages/abstract/src/Error.ts:4</a></li>
|
|
21
|
+
<li>Defined in <a href="https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/24e3ae188/packages/modules/packages/module/packages/abstract/src/Error.ts#L5">modules/packages/module/packages/abstract/src/Error.ts:5</a></li></ul></aside></div>
|
|
22
22
|
<div class="col-sidebar">
|
|
23
23
|
<div class="page-menu">
|
|
24
24
|
<div class="tsd-navigation settings">
|
package/package.json
CHANGED
|
@@ -10,31 +10,32 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^2.
|
|
14
|
-
"@xylabs/exists": "^2.
|
|
15
|
-
"@xylabs/promise": "^2.
|
|
16
|
-
"@xyo-network/account": "^2.
|
|
17
|
-
"@xyo-network/account-model": "^2.
|
|
18
|
-
"@xyo-network/address-payload-plugin": "^2.
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"@xyo-network/boundwitness-
|
|
21
|
-
"@xyo-network/boundwitness-
|
|
22
|
-
"@xyo-network/boundwitness-
|
|
23
|
-
"@xyo-network/
|
|
24
|
-
"@xyo-network/
|
|
25
|
-
"@xyo-network/
|
|
26
|
-
"@xyo-network/module-
|
|
27
|
-
"@xyo-network/
|
|
28
|
-
"@xyo-network/payload-
|
|
29
|
-
"@xyo-network/payload-
|
|
30
|
-
"@xyo-network/
|
|
31
|
-
"@xyo-network/
|
|
32
|
-
"@xyo-network/
|
|
13
|
+
"@xylabs/assert": "^2.8.1",
|
|
14
|
+
"@xylabs/exists": "^2.8.1",
|
|
15
|
+
"@xylabs/promise": "^2.8.1",
|
|
16
|
+
"@xyo-network/account": "^2.58.0",
|
|
17
|
+
"@xyo-network/account-model": "^2.58.0",
|
|
18
|
+
"@xyo-network/address-payload-plugin": "^2.58.0",
|
|
19
|
+
"@xyo-network/archivist-model": "^2.58.0",
|
|
20
|
+
"@xyo-network/boundwitness-builder": "^2.58.0",
|
|
21
|
+
"@xyo-network/boundwitness-model": "^2.58.0",
|
|
22
|
+
"@xyo-network/boundwitness-validator": "^2.58.0",
|
|
23
|
+
"@xyo-network/boundwitness-wrapper": "^2.58.0",
|
|
24
|
+
"@xyo-network/config-payload-plugin": "^2.58.0",
|
|
25
|
+
"@xyo-network/core": "^2.58.0",
|
|
26
|
+
"@xyo-network/module-events": "^2.58.0",
|
|
27
|
+
"@xyo-network/module-model": "^2.58.0",
|
|
28
|
+
"@xyo-network/payload-builder": "^2.58.0",
|
|
29
|
+
"@xyo-network/payload-model": "^2.58.0",
|
|
30
|
+
"@xyo-network/payload-wrapper": "^2.58.0",
|
|
31
|
+
"@xyo-network/promise": "^2.58.0",
|
|
32
|
+
"@xyo-network/query-payload-plugin": "^2.58.0",
|
|
33
|
+
"@xyo-network/shared": "^2.58.0",
|
|
33
34
|
"lodash": "^4.17.21"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
|
-
"@xylabs/ts-scripts-yarn3": "^2.17.
|
|
37
|
-
"@xylabs/tsconfig": "^2.17.
|
|
37
|
+
"@xylabs/ts-scripts-yarn3": "^2.17.13",
|
|
38
|
+
"@xylabs/tsconfig": "^2.17.13",
|
|
38
39
|
"jest": "^29.5.0",
|
|
39
40
|
"jest-mock-extended": "^3.0.4",
|
|
40
41
|
"typescript": "^5.0.4"
|
|
@@ -72,5 +73,5 @@
|
|
|
72
73
|
},
|
|
73
74
|
"sideEffects": false,
|
|
74
75
|
"types": "dist/types/index.d.ts",
|
|
75
|
-
"version": "2.
|
|
76
|
+
"version": "2.58.0"
|
|
76
77
|
}
|
package/src/AbstractModule.ts
CHANGED
|
@@ -3,20 +3,24 @@ import { exists } from '@xylabs/exists'
|
|
|
3
3
|
import { Account, HDWallet } from '@xyo-network/account'
|
|
4
4
|
import { AccountInstance } from '@xyo-network/account-model'
|
|
5
5
|
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
6
|
+
import { ArchivistModule } from '@xyo-network/archivist-model'
|
|
6
7
|
import { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'
|
|
7
8
|
import { BoundWitness } from '@xyo-network/boundwitness-model'
|
|
8
9
|
import { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'
|
|
9
10
|
import {
|
|
10
11
|
AccountModuleParams,
|
|
12
|
+
AddressPreviousHashPayload,
|
|
13
|
+
AddressPreviousHashSchema,
|
|
11
14
|
CreatableModule,
|
|
12
15
|
CreatableModuleFactory,
|
|
16
|
+
IndividualArchivistConfig,
|
|
13
17
|
Module,
|
|
18
|
+
ModuleAccountQuerySchema,
|
|
14
19
|
ModuleConfig,
|
|
15
20
|
ModuleDiscoverQuerySchema,
|
|
16
21
|
ModuleEventData,
|
|
17
22
|
ModuleFilter,
|
|
18
23
|
ModuleParams,
|
|
19
|
-
ModulePreviousHashQuerySchema,
|
|
20
24
|
ModuleQueriedEventArgs,
|
|
21
25
|
ModuleQuery,
|
|
22
26
|
ModuleQueryBase,
|
|
@@ -54,12 +58,12 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
54
58
|
readonly upResolver = new CompositeModuleResolver()
|
|
55
59
|
|
|
56
60
|
protected readonly _baseModuleQueryAccountPaths: Record<ModuleQueryBase['schema'], string> = {
|
|
57
|
-
'network.xyo.query.module.account
|
|
61
|
+
'network.xyo.query.module.account': '1',
|
|
58
62
|
'network.xyo.query.module.discover': '2',
|
|
59
63
|
'network.xyo.query.module.subscribe': '3',
|
|
60
64
|
}
|
|
61
65
|
protected readonly _queryAccounts: Record<ModuleQueryBase['schema'], AccountInstance | undefined> = {
|
|
62
|
-
'network.xyo.query.module.account
|
|
66
|
+
'network.xyo.query.module.account': undefined,
|
|
63
67
|
'network.xyo.query.module.discover': undefined,
|
|
64
68
|
'network.xyo.query.module.subscribe': undefined,
|
|
65
69
|
}
|
|
@@ -69,20 +73,14 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
69
73
|
protected readonly supportedQueryValidator: Queryable
|
|
70
74
|
|
|
71
75
|
constructor(params: TParams) {
|
|
72
|
-
//
|
|
76
|
+
// Clone params to prevent mutation of the incoming object
|
|
73
77
|
const mutatedParams = { ...params } as TParams
|
|
74
78
|
const activeLogger = params.logger ?? AbstractModule.defaultLogger
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
).privateKey,
|
|
81
|
-
)
|
|
82
|
-
: (mutatedParams as AccountModuleParams<TParams['config']>).account
|
|
83
|
-
? (mutatedParams as AccountModuleParams<TParams['config']>).account
|
|
84
|
-
: undefined
|
|
85
|
-
|
|
79
|
+
let { account } = mutatedParams as AccountModuleParams<TParams['config']>
|
|
80
|
+
const { wallet, accountDerivationPath } = mutatedParams as WalletModuleParams<TParams['config']>
|
|
81
|
+
if (wallet) {
|
|
82
|
+
account = accountDerivationPath ? wallet.derivePath(accountDerivationPath) : wallet
|
|
83
|
+
}
|
|
86
84
|
mutatedParams.logger = activeLogger ? new IdLogger(activeLogger, () => `0x${this.account.addressValue.hex}`) : undefined
|
|
87
85
|
super(mutatedParams)
|
|
88
86
|
this.account = this.loadAccount(account)
|
|
@@ -104,7 +102,7 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
104
102
|
}
|
|
105
103
|
|
|
106
104
|
get queries(): string[] {
|
|
107
|
-
return [ModuleDiscoverQuerySchema,
|
|
105
|
+
return [ModuleDiscoverQuerySchema, ModuleAccountQuerySchema, ModuleSubscribeQuerySchema]
|
|
108
106
|
}
|
|
109
107
|
|
|
110
108
|
get queryAccountPaths(): Readonly<Record<Query['schema'], string | undefined>> {
|
|
@@ -152,26 +150,28 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
152
150
|
return compact([config, configSchema, address, ...queries])
|
|
153
151
|
}
|
|
154
152
|
|
|
155
|
-
|
|
153
|
+
moduleAccountQuery(): Promisable<(AddressPayload | AddressPreviousHashPayload)[]> {
|
|
156
154
|
// Return array of all addresses and their previous hash
|
|
157
|
-
const
|
|
155
|
+
const queryAccounts = Object.entries(this.queryAccounts)
|
|
158
156
|
.filter((value): value is [string, AccountInstance] => {
|
|
159
157
|
return exists(value[1])
|
|
160
158
|
})
|
|
161
159
|
.map(([name, account]) => {
|
|
162
160
|
const address = account.addressValue.hex
|
|
163
161
|
const previousHash = account.previousHash?.hex
|
|
164
|
-
return
|
|
162
|
+
return [
|
|
163
|
+
{ address, name, schema: AddressSchema },
|
|
164
|
+
{ address, previousHash, schema: AddressPreviousHashSchema },
|
|
165
|
+
]
|
|
165
166
|
})
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
return [moduleAccountPreviousHash, ...queryAccountPreviousHashes]
|
|
167
|
+
const address = this.account.addressValue.hex
|
|
168
|
+
const name = this.config.name
|
|
169
|
+
const previousHash = this.account.previousHash?.hex
|
|
170
|
+
const moduleAccount = name ? { address, name, schema: AddressSchema } : { address, schema: AddressSchema }
|
|
171
|
+
const moduleAccountPreviousHash = previousHash
|
|
172
|
+
? { address, previousHash, schema: AddressPreviousHashSchema }
|
|
173
|
+
: { address, schema: AddressPreviousHashSchema }
|
|
174
|
+
return [moduleAccount, moduleAccountPreviousHash, ...queryAccounts].flat()
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
async query<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
|
|
@@ -242,9 +242,9 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
242
242
|
return promise
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
protected bindHashesInternal(hashes: string[], schema: SchemaString[], account?: AccountInstance): BoundWitness {
|
|
245
|
+
protected async bindHashesInternal(hashes: string[], schema: SchemaString[], account?: AccountInstance): Promise<BoundWitness> {
|
|
246
246
|
const builder = new BoundWitnessBuilder().hashes(hashes, schema).witness(this.account)
|
|
247
|
-
const result = (account ? builder.witness(account) : builder).build()[0]
|
|
247
|
+
const result = (await (account ? builder.witness(account) : builder).build())[0]
|
|
248
248
|
this.logger?.debug(`result: ${JSON.stringify(result, null, 2)}`)
|
|
249
249
|
return result
|
|
250
250
|
}
|
|
@@ -254,21 +254,21 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
254
254
|
payloads?: Payload[],
|
|
255
255
|
account?: AccountInstance,
|
|
256
256
|
): PromiseEx<[QueryBoundWitness, Payload[]], AccountInstance> {
|
|
257
|
-
const promise = new PromiseEx<[QueryBoundWitness, Payload[]], AccountInstance>((resolve) => {
|
|
258
|
-
const result = this.bindQueryInternal(query, payloads, account)
|
|
257
|
+
const promise = new PromiseEx<[QueryBoundWitness, Payload[]], AccountInstance>(async (resolve) => {
|
|
258
|
+
const result = await this.bindQueryInternal(query, payloads, account)
|
|
259
259
|
resolve?.(result)
|
|
260
260
|
return result
|
|
261
261
|
}, account)
|
|
262
262
|
return promise
|
|
263
263
|
}
|
|
264
264
|
|
|
265
|
-
protected bindQueryInternal<T extends Query | PayloadWrapper<Query>>(
|
|
265
|
+
protected async bindQueryInternal<T extends Query | PayloadWrapper<Query>>(
|
|
266
266
|
query: T,
|
|
267
267
|
payloads?: Payload[],
|
|
268
268
|
account?: AccountInstance,
|
|
269
|
-
): [QueryBoundWitness, Payload[]] {
|
|
269
|
+
): Promise<[QueryBoundWitness, Payload[]]> {
|
|
270
270
|
const builder = new QueryBoundWitnessBuilder().payloads(payloads).witness(this.account).query(query)
|
|
271
|
-
const result = (account ? builder.witness(account) : builder).build()
|
|
271
|
+
const result = await (account ? builder.witness(account) : builder).build()
|
|
272
272
|
return result
|
|
273
273
|
}
|
|
274
274
|
|
|
@@ -281,13 +281,15 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
281
281
|
const queryWitnessAccount = this.queryAccounts[query.schema as ModuleQueryBase['schema']]
|
|
282
282
|
const witnesses = [this.account, queryWitnessAccount, ...additionalWitnesses].filter(exists)
|
|
283
283
|
builder.witnesses(witnesses)
|
|
284
|
-
|
|
285
|
-
|
|
284
|
+
return new PromiseEx<ModuleQueryResult, AccountInstance[]>(async (resolve) => {
|
|
285
|
+
const result: ModuleQueryResult = [(await builder.build())[0], payloads]
|
|
286
286
|
resolve?.(result)
|
|
287
287
|
return result
|
|
288
288
|
}, witnesses)
|
|
289
289
|
}
|
|
290
290
|
|
|
291
|
+
protected commitArchivist = () => this.getArchivist('commit')
|
|
292
|
+
|
|
291
293
|
protected initializeQueryAccounts() {
|
|
292
294
|
// Ensure distinct/unique wallet paths
|
|
293
295
|
const paths = Object.values(this.queryAccountPaths).filter(exists)
|
|
@@ -334,8 +336,8 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
334
336
|
resultPayloads.push(...(await this.discover()))
|
|
335
337
|
break
|
|
336
338
|
}
|
|
337
|
-
case
|
|
338
|
-
resultPayloads.push(...(await this.
|
|
339
|
+
case ModuleAccountQuerySchema: {
|
|
340
|
+
resultPayloads.push(...(await this.moduleAccountQuery()))
|
|
339
341
|
break
|
|
340
342
|
}
|
|
341
343
|
case ModuleSubscribeQuerySchema: {
|
|
@@ -352,6 +354,8 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
352
354
|
return await this.bindQueryResult(typedQuery, resultPayloads, [queryAccount])
|
|
353
355
|
}
|
|
354
356
|
|
|
357
|
+
protected readArchivist = () => this.getArchivist('read')
|
|
358
|
+
|
|
355
359
|
protected async resolve<TModule extends Module = Module>(filter?: ModuleFilter): Promise<TModule[]> {
|
|
356
360
|
return [...(await this.upResolver.resolve<TModule>(filter)), ...(await this.downResolver.resolve<TModule>(filter))].filter(duplicateModules)
|
|
357
361
|
}
|
|
@@ -387,4 +391,16 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
387
391
|
}
|
|
388
392
|
}, true)
|
|
389
393
|
}
|
|
394
|
+
|
|
395
|
+
protected writeArchivist = () => this.getArchivist('write')
|
|
396
|
+
|
|
397
|
+
private async getArchivist(kind: keyof IndividualArchivistConfig): Promise<ArchivistModule | undefined> {
|
|
398
|
+
if (!this.config.archivist) return undefined
|
|
399
|
+
const filter =
|
|
400
|
+
typeof this.config.archivist === 'string' || this.config.archivist instanceof String
|
|
401
|
+
? (this.config.archivist as string)
|
|
402
|
+
: (this.config?.archivist?.[kind] as string)
|
|
403
|
+
const resolved = await this.upResolver.resolveOne(filter)
|
|
404
|
+
return resolved ? (resolved as ArchivistModule) : undefined
|
|
405
|
+
}
|
|
390
406
|
}
|
package/src/ModuleFactory.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Logger } from '@xyo-network/core'
|
|
2
2
|
import { CreatableModule, CreatableModuleFactory, Module } from '@xyo-network/module-model'
|
|
3
|
+
import merge from 'lodash/merge'
|
|
3
4
|
|
|
4
5
|
export interface CreatableModuleDictionary {
|
|
5
6
|
[key: string]: CreatableModuleFactory
|
|
@@ -26,7 +27,9 @@ export class ModuleFactory<TModule extends Module> implements CreatableModuleFac
|
|
|
26
27
|
|
|
27
28
|
create<T extends Module>(this: CreatableModuleFactory<T>, params?: TModule['params'] | undefined): Promise<T> {
|
|
28
29
|
const factory = this as ModuleFactory<T>
|
|
29
|
-
|
|
30
|
+
const schema: CreatableModuleFactory<TModule>['configSchema'] = factory.creatableModule.configSchema
|
|
31
|
+
const mergedParams: TModule['params'] = merge(factory.defaultParams ?? {}, params, { config: { schema } })
|
|
32
|
+
return factory.creatableModule.create<T>(mergedParams)
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
factory<T extends Module>(this: CreatableModule<T>, _params?: T['params'] | undefined): CreatableModuleFactory<T> {
|
|
@@ -61,6 +61,15 @@ export class CompositeModuleResolver extends Base implements ModuleRepository, M
|
|
|
61
61
|
return result as T[]
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
async resolveOne<T extends Module = Module>(filter: string): Promise<T | undefined> {
|
|
65
|
+
for (let i = 0; i < this.resolvers.length; i++) {
|
|
66
|
+
const resolver = this.resolvers[i]
|
|
67
|
+
const result = await resolver.resolveOne<T>(filter)
|
|
68
|
+
if (result) return result
|
|
69
|
+
}
|
|
70
|
+
return undefined
|
|
71
|
+
}
|
|
72
|
+
|
|
64
73
|
private addSingleModule(module?: Module) {
|
|
65
74
|
if (module) {
|
|
66
75
|
this.localResolver.add(module)
|
|
@@ -62,6 +62,15 @@ export class SimpleModuleResolver implements ModuleRepository {
|
|
|
62
62
|
return filteredByQuery
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
resolveOne<T extends Module = Module>(filter: string): Promisable<T | undefined> {
|
|
66
|
+
const allModules = Object.values(this.modules) as T[]
|
|
67
|
+
for (const resolutionMethod of [this.resolveByAddress, this.resolveByName]) {
|
|
68
|
+
const filtered: T[] = resolutionMethod(allModules, [filter])
|
|
69
|
+
if (filtered.length === 1) return filtered[0]
|
|
70
|
+
}
|
|
71
|
+
return undefined
|
|
72
|
+
}
|
|
73
|
+
|
|
65
74
|
private addSingleModule(module?: Module) {
|
|
66
75
|
if (module) {
|
|
67
76
|
this.modules[module.address] = module
|