@hashgraphonline/standards-sdk 0.0.182 → 0.0.183
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/hcs-12/assembly/assembly-engine.d.ts +2 -2
- package/dist/cjs/hcs-12/assembly/assembly-engine.d.ts.map +1 -1
- package/dist/cjs/hcs-12/base-client.d.ts +3 -3
- package/dist/cjs/hcs-12/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-12/browser.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/action-registry.d.ts +2 -2
- package/dist/cjs/hcs-12/registries/action-registry.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/assembly-registry.d.ts +2 -2
- package/dist/cjs/hcs-12/registries/assembly-registry.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/base-registry.d.ts +3 -3
- package/dist/cjs/hcs-12/registries/base-registry.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/block-loader.d.ts +2 -2
- package/dist/cjs/hcs-12/registries/block-loader.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/hashlinks-registry.d.ts +2 -2
- package/dist/cjs/hcs-12/registries/hashlinks-registry.d.ts.map +1 -1
- package/dist/cjs/hcs-12/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-12/security/permission-system.d.ts +5 -5
- package/dist/cjs/hcs-12/security/permission-system.d.ts.map +1 -1
- package/dist/cjs/hcs-12/validation/wasm-validator.d.ts +4 -4
- package/dist/cjs/hcs-12/validation/wasm-validator.d.ts.map +1 -1
- package/dist/cjs/{index-5G8lx2OC.cjs → index-Bw4Oab1n.cjs} +21 -21
- package/dist/cjs/{index-5G8lx2OC.cjs.map → index-Bw4Oab1n.cjs.map} +1 -1
- package/dist/cjs/{index-DNOBUKZd-ByWVn3_3.cjs → index-DNOBUKZd-Dr1ocWcA.cjs} +2 -2
- package/dist/cjs/{index-DNOBUKZd-ByWVn3_3.cjs.map → index-DNOBUKZd-Dr1ocWcA.cjs.map} +1 -1
- package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +1 -1
- package/dist/cjs/{standards-sdk.es47-LpJXpYet-BcMEbzeg.cjs → standards-sdk.es47-LpJXpYet-BnuWNzh2.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es47-LpJXpYet-BcMEbzeg.cjs.map → standards-sdk.es47-LpJXpYet-BnuWNzh2.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es48-PT6ZHlCU-DeVBWhj9.cjs → standards-sdk.es48-PT6ZHlCU-vjsmk9LW.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es48-PT6ZHlCU-DeVBWhj9.cjs.map → standards-sdk.es48-PT6ZHlCU-vjsmk9LW.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es49-BoFc-ELK-C2EmnXa-.cjs → standards-sdk.es49-BoFc-ELK-FTU4u19G.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es49-BoFc-ELK-C2EmnXa-.cjs.map → standards-sdk.es49-BoFc-ELK-FTU4u19G.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es50-miBtNmtl-2L3nQXPh.cjs → standards-sdk.es50-miBtNmtl-WpmGw_oZ.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es50-miBtNmtl-2L3nQXPh.cjs.map → standards-sdk.es50-miBtNmtl-WpmGw_oZ.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es51-rS2UvvV5-D0SR8-Nc.cjs → standards-sdk.es51-rS2UvvV5-BQccIjC7.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es51-rS2UvvV5-D0SR8-Nc.cjs.map → standards-sdk.es51-rS2UvvV5-BQccIjC7.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es52-D-lvSMBY-DgGZRneG.cjs → standards-sdk.es52-D-lvSMBY-dV3DzoSL.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es52-D-lvSMBY-DgGZRneG.cjs.map → standards-sdk.es52-D-lvSMBY-dV3DzoSL.cjs.map} +1 -1
- package/dist/es/hcs-12/assembly/assembly-engine.d.ts +2 -2
- package/dist/es/hcs-12/assembly/assembly-engine.d.ts.map +1 -1
- package/dist/es/hcs-12/base-client.d.ts +3 -3
- package/dist/es/hcs-12/base-client.d.ts.map +1 -1
- package/dist/es/hcs-12/browser.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/action-registry.d.ts +2 -2
- package/dist/es/hcs-12/registries/action-registry.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/assembly-registry.d.ts +2 -2
- package/dist/es/hcs-12/registries/assembly-registry.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/base-registry.d.ts +3 -3
- package/dist/es/hcs-12/registries/base-registry.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/block-loader.d.ts +2 -2
- package/dist/es/hcs-12/registries/block-loader.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/hashlinks-registry.d.ts +2 -2
- package/dist/es/hcs-12/registries/hashlinks-registry.d.ts.map +1 -1
- package/dist/es/hcs-12/sdk.d.ts.map +1 -1
- package/dist/es/hcs-12/security/permission-system.d.ts +5 -5
- package/dist/es/hcs-12/security/permission-system.d.ts.map +1 -1
- package/dist/es/hcs-12/validation/wasm-validator.d.ts +4 -4
- package/dist/es/hcs-12/validation/wasm-validator.d.ts.map +1 -1
- package/dist/es/inscribe/inscriber.d.ts.map +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es21.js.map +1 -1
- package/dist/es/standards-sdk.es22.js.map +1 -1
- package/dist/es/standards-sdk.es23.js.map +1 -1
- package/dist/es/standards-sdk.es24.js.map +1 -1
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +0 -2
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es28.js +0 -2
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +1 -1
- package/dist/es/standards-sdk.es52.js +1 -1
- package/dist/es/standards-sdk.es59.js +6 -6
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +1 -1
- package/dist/es/standards-sdk.es66.js +35 -7
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +5 -5
- package/dist/es/standards-sdk.es74.js +2 -204
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +2 -172
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +139 -289
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +274 -298
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +262 -369
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +316 -194
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +328 -303
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +302 -72
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +76 -2
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +204 -2
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ILogger } from '../../utils/logger';
|
|
2
2
|
import { AssemblyState, ActionRegistration, BlockDefinition, AssemblyRegistration } from '../types';
|
|
3
3
|
import { AssemblyRegistry } from '../registries/assembly-registry';
|
|
4
4
|
import { ActionRegistry } from '../registries/action-registry';
|
|
@@ -39,7 +39,7 @@ export declare class AssemblyEngine {
|
|
|
39
39
|
private assemblyRegistry;
|
|
40
40
|
private actionRegistry;
|
|
41
41
|
private blockLoader;
|
|
42
|
-
constructor(logger:
|
|
42
|
+
constructor(logger: ILogger, assemblyRegistry: AssemblyRegistry, actionRegistry: ActionRegistry, blockLoader: BlockLoader);
|
|
43
43
|
/**
|
|
44
44
|
* Load assembly state from topic and resolve all references
|
|
45
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembly-engine.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/assembly/assembly-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"assembly-engine.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/assembly/assembly-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,aAAa,EAGb,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAc;gBAG/B,MAAM,EAAE,OAAO,EACf,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW;IAQ1B;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0CtD;;OAEG;IACG,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IAwExE;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG;QACvC,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB;IAqED;;OAEG;IACG,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA2BhE;;OAEG;YACW,sBAAsB;IAUpC;;OAEG;YACW,qBAAqB;IAMnC;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIxD;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAG3C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ILogger, LogLevel } from '../utils/logger';
|
|
2
2
|
import { NetworkType } from '../utils/types';
|
|
3
3
|
import { HederaMirrorNode, MirrorNodeConfig } from '../services';
|
|
4
4
|
import { PrivateKey, PublicKey } from '@hashgraph/sdk';
|
|
@@ -12,7 +12,7 @@ export interface HCS12Config {
|
|
|
12
12
|
/** The Hedera network to connect to */
|
|
13
13
|
network: NetworkType;
|
|
14
14
|
/** Custom logger instance (if not provided, one will be created) */
|
|
15
|
-
logger?:
|
|
15
|
+
logger?: ILogger;
|
|
16
16
|
/** Log level for the client (ignored if logger is provided) */
|
|
17
17
|
logLevel?: LogLevel;
|
|
18
18
|
/** Whether to pretty print logs (ignored if logger is provided) */
|
|
@@ -29,7 +29,7 @@ export interface HCS12Config {
|
|
|
29
29
|
*/
|
|
30
30
|
export declare abstract class HCS12BaseClient {
|
|
31
31
|
protected network: NetworkType;
|
|
32
|
-
protected logger:
|
|
32
|
+
protected logger: ILogger;
|
|
33
33
|
mirrorNode: HederaMirrorNode;
|
|
34
34
|
protected _actionRegistry?: ActionRegistry;
|
|
35
35
|
protected _blockLoader?: BlockLoader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-client.d.ts","sourceRoot":"","sources":["../../../src/hcs-12/base-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"base-client.d.ts","sourceRoot":"","sources":["../../../src/hcs-12/base-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/hcs-12/browser.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/hcs-12/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ILogger } from '../../utils/logger';
|
|
2
2
|
import { NetworkType } from '../../utils/types';
|
|
3
3
|
import { ActionRegistration, ModuleInfo, SourceVerification } from '../types';
|
|
4
4
|
import { BaseRegistry } from './base-registry';
|
|
@@ -9,7 +9,7 @@ import { HCS12BrowserClient } from '../browser';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare class ActionRegistry extends BaseRegistry {
|
|
11
11
|
private actionsByHash;
|
|
12
|
-
constructor(networkType: NetworkType, logger:
|
|
12
|
+
constructor(networkType: NetworkType, logger: ILogger, topicId?: string, client?: HCS12Client | HCS12BrowserClient);
|
|
13
13
|
/**
|
|
14
14
|
* Register a WASM module with its binary via HCS-1
|
|
15
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-registry.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/action-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"action-registry.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/action-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAGL,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQrD;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,aAAa,CAA8C;gBAGjE,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GAAG,kBAAkB;IAK3C;;OAEG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU,EACtB,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAAC,kBAAkB,CAAC;IAuC9B;;OAEG;IACG,QAAQ,CAAC,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DjE;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAYjE;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA0CrC;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAmE7D;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA4D7D;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAmBjC;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAgBxE;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;OAEG;IACH,UAAU,IAAI,IAAI;CAInB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ILogger } from '../../utils/logger';
|
|
2
2
|
import { NetworkType } from '../../utils/types';
|
|
3
3
|
import { AssemblyState, AssemblyRegistration, AssemblyAddAction, AssemblyAddBlock, AssemblyUpdate, AssemblyMessage } from '../types';
|
|
4
4
|
import { BaseRegistry } from './base-registry';
|
|
@@ -9,7 +9,7 @@ import { HCS12BrowserClient } from '../browser';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare class AssemblyRegistry extends BaseRegistry {
|
|
11
11
|
private assemblyStates;
|
|
12
|
-
constructor(networkType: NetworkType, logger:
|
|
12
|
+
constructor(networkType: NetworkType, logger: ILogger, topicId?: string, client?: HCS12Client | HCS12BrowserClient);
|
|
13
13
|
/**
|
|
14
14
|
* Override getTopicMemo to indicate indexed registry
|
|
15
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembly-registry.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/assembly-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"assembly-registry.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/assembly-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAGL,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EAGhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIrD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,cAAc,CAAyC;gBAG7D,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GAAG,kBAAkB;IAK3C;;OAEG;IACH,YAAY,IAAI,MAAM;IAOtB;;OAEG;IACG,QAAQ,CAAC,YAAY,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAInE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAM5C;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAItD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAkD9D;;OAEG;YACW,cAAc;IA2E5B;;OAEG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAsIvE;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmF9B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyH3B;;OAEG;IACH,OAAO,CAAC,eAAe;CAaxB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ILogger } from '../../utils/logger';
|
|
2
2
|
import { NetworkType } from '../../utils/types';
|
|
3
3
|
import { RegistryType, AssemblyRegistryEntry, RegistryConfig, ActionRegistration, AssemblyRegistration, HashLinksRegistration } from '../types';
|
|
4
4
|
import { HCS12Client } from '../sdk';
|
|
@@ -7,14 +7,14 @@ import { HCS12BrowserClient } from '../browser';
|
|
|
7
7
|
* Abstract base class for all HCS-12 registries
|
|
8
8
|
*/
|
|
9
9
|
export declare abstract class BaseRegistry {
|
|
10
|
-
protected logger:
|
|
10
|
+
protected logger: ILogger;
|
|
11
11
|
protected networkType: NetworkType;
|
|
12
12
|
protected topicId?: string;
|
|
13
13
|
protected registryType: RegistryType;
|
|
14
14
|
protected entries: Map<string, AssemblyRegistryEntry>;
|
|
15
15
|
protected client?: HCS12Client | HCS12BrowserClient;
|
|
16
16
|
protected lastSyncTimestamp?: string;
|
|
17
|
-
constructor(networkType: NetworkType, logger:
|
|
17
|
+
constructor(networkType: NetworkType, logger: ILogger, registryType: RegistryType, topicId?: string, client?: HCS12Client | HCS12BrowserClient);
|
|
18
18
|
/**
|
|
19
19
|
* Submit a registration to the topic
|
|
20
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-registry.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/base-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"base-registry.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/base-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,8BAAsB,YAAY;IAChC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAa;IAClE,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAC;IACpD,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBAGnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GAAG,kBAAkB;IAS3C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CACf,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,qBAAqB,GACtE,OAAO,CAAC,MAAM,CAAC;IAElB;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAYjE;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAuE5E;;OAEG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAuBpC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiH3B;;OAEG;IACH,YAAY,IAAI,MAAM;IAOtB;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAW5C;;OAEG;IACH,SAAS,IAAI,cAAc;IAU3B;;OAEG;cACa,eAAe,CAC7B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAAC,MAAM,CAAC;IA6ElB;;OAEG;IACH,SAAS,CAAC,wBAAwB,CAChC,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,qBAAqB,GACtE,IAAI;IAUP;;OAEG;IACH,UAAU,IAAI,IAAI;IAQlB;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB;CAQF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ILogger } from '../../utils/logger';
|
|
2
2
|
import { NetworkType } from '../../utils/types';
|
|
3
3
|
import { BlockDefinition } from '../types';
|
|
4
4
|
import { HCS12Client } from '../sdk';
|
|
@@ -12,7 +12,7 @@ export declare class BlockLoader {
|
|
|
12
12
|
private client?;
|
|
13
13
|
private blockCache;
|
|
14
14
|
private templateCache;
|
|
15
|
-
constructor(networkType: NetworkType, logger:
|
|
15
|
+
constructor(networkType: NetworkType, logger: ILogger, client?: HCS12Client | HCS12BrowserClient);
|
|
16
16
|
/**
|
|
17
17
|
* Load a block definition from HCS-1
|
|
18
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-loader.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/block-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"block-loader.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/block-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAC,CAAmC;IAClD,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,aAAa,CAAkC;gBAGrD,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,WAAW,GAAG,kBAAkB;IAO3C;;OAEG;IACG,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyCzE;;OAEG;IACG,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwCjE;;OAEG;IACG,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7C,UAAU,EAAE,eAAe,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAOF;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,GACjD,OAAO,CAAC;QACT,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IA8CF;;OAEG;IACH,UAAU,IAAI,IAAI;CAInB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ILogger } from '../../utils/logger';
|
|
2
2
|
import { BaseRegistry } from './base-registry';
|
|
3
3
|
import { HashLinksRegistration } from '../types';
|
|
4
4
|
import { NetworkType } from '../../utils/types';
|
|
@@ -8,7 +8,7 @@ import { HCS12BrowserClient } from '../browser';
|
|
|
8
8
|
* Registry for managing HashLinks directory entries
|
|
9
9
|
*/
|
|
10
10
|
export declare class HashLinksRegistry extends BaseRegistry {
|
|
11
|
-
constructor(networkType: NetworkType, logger:
|
|
11
|
+
constructor(networkType: NetworkType, logger: ILogger, topicId?: string, client?: HCS12Client | HCS12BrowserClient);
|
|
12
12
|
/**
|
|
13
13
|
* Register a new HashLink in the global directory
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashlinks-registry.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/hashlinks-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hashlinks-registry.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/registries/hashlinks-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,qBAAqB,EAEtB,MAAM,UAAU,CAAC;AAGlB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;gBAE/C,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GAAG,kBAAkB;IAK3C;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAsD5D;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAapE;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAcxE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAQrD;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAQvE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAcxC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAcrC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACvB;CA4BF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/hcs-12/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/hcs-12/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,7 +74,7 @@ export interface Action {
|
|
|
74
74
|
};
|
|
75
75
|
sideEffects?: string[];
|
|
76
76
|
}
|
|
77
|
-
export interface
|
|
77
|
+
export interface PermissionValidationResult {
|
|
78
78
|
allowed: boolean;
|
|
79
79
|
reason?: string;
|
|
80
80
|
missingCapabilities?: string[];
|
|
@@ -181,15 +181,15 @@ export declare class PermissionSystem {
|
|
|
181
181
|
/**
|
|
182
182
|
* Validate action permissions
|
|
183
183
|
*/
|
|
184
|
-
validateActionPermissions(action: Action, context: UserContext): Promise<
|
|
184
|
+
validateActionPermissions(action: Action, context: UserContext): Promise<PermissionValidationResult>;
|
|
185
185
|
/**
|
|
186
186
|
* Validate resource access
|
|
187
187
|
*/
|
|
188
|
-
validateResourceAccess(resource: Resource, operation: string, context: UserContext): Promise<
|
|
188
|
+
validateResourceAccess(resource: Resource, operation: string, context: UserContext): Promise<PermissionValidationResult>;
|
|
189
189
|
/**
|
|
190
190
|
* Evaluate policy
|
|
191
191
|
*/
|
|
192
|
-
evaluatePolicy(policy: Policy, context: UserContext): Promise<
|
|
192
|
+
evaluatePolicy(policy: Policy, context: UserContext): Promise<PermissionValidationResult>;
|
|
193
193
|
/**
|
|
194
194
|
* Delegate permissions
|
|
195
195
|
*/
|
|
@@ -201,7 +201,7 @@ export declare class PermissionSystem {
|
|
|
201
201
|
/**
|
|
202
202
|
* Validate delegated permissions
|
|
203
203
|
*/
|
|
204
|
-
validateDelegatedPermissions(capability: string, context: UserContext): Promise<
|
|
204
|
+
validateDelegatedPermissions(capability: string, context: UserContext): Promise<PermissionValidationResult>;
|
|
205
205
|
/**
|
|
206
206
|
* Set audit logger
|
|
207
207
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-system.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/security/permission-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAA;CAAE,GAClD;IACE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;CACrD,CAAC;AAEN,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC7D,KAAK,EAAE,wBAAwB,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;KACrC,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"permission-system.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/security/permission-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Logger } from '../../utils/logger';
|
|
2
2
|
import { ModuleInfo } from '../types';
|
|
3
|
-
export interface
|
|
3
|
+
export interface WasmValidationResult {
|
|
4
4
|
isValid: boolean;
|
|
5
5
|
errors: string[];
|
|
6
6
|
warnings: string[];
|
|
@@ -39,15 +39,15 @@ export declare class WasmValidator {
|
|
|
39
39
|
/**
|
|
40
40
|
* Validate a WASM module
|
|
41
41
|
*/
|
|
42
|
-
validate(wasmData: Uint8Array): Promise<
|
|
42
|
+
validate(wasmData: Uint8Array): Promise<WasmValidationResult>;
|
|
43
43
|
/**
|
|
44
44
|
* Validate INFO function return
|
|
45
45
|
*/
|
|
46
|
-
validateInfoFunction(infoFunc: () => Promise<string> | string): Promise<
|
|
46
|
+
validateInfoFunction(infoFunc: () => Promise<string> | string): Promise<WasmValidationResult>;
|
|
47
47
|
/**
|
|
48
48
|
* Validate action parameter schemas
|
|
49
49
|
*/
|
|
50
|
-
validateActionSchemas(moduleInfo: any): Promise<
|
|
50
|
+
validateActionSchemas(moduleInfo: any): Promise<WasmValidationResult>;
|
|
51
51
|
/**
|
|
52
52
|
* Extract metadata from WASM
|
|
53
53
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-validator.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/validation/wasm-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"wasm-validator.d.ts","sourceRoot":"","sources":["../../../../src/hcs-12/validation/wasm-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAE5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK7B;IAEH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IAE1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IAEpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;gBAEvC,MAAM,EAAE,MAAM;IAI1B;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuFnE;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GACvC,OAAO,CAAC,oBAAoB,CAAC;IAiChC;;OAEG;IACG,qBAAqB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqB3E;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAQzD;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;YACW,WAAW;IAmEzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAM9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inscriber.d.ts","sourceRoot":"","sources":["../../../src/inscribe/inscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,EAGZ,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"inscriber.d.ts","sourceRoot":"","sources":["../../../src/inscribe/inscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,EAGZ,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,4BAA4B,CAAC;AAmChF,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAoEN,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAAC;IACxC,WAAW,CAAC,EAAE,0BAA0B,CAAC;IACzC,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,gBAAgB,EACvB,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,cAAc,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CA2J9B;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,cAAc,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAyK9B;AAED,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,kBAAkB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACxE,OAAO,CAAC,0BAA0B,CAAC,CAgErC;AA2BD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,gBAAgB,EACvB,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,cAAc,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAiI9B;AA4ID,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,cAAc,EACnB,aAAa,EAAE,MAAM,EACrB,WAAW,GAAE,MAAW,EACxB,UAAU,GAAE,MAAa,EACzB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,0BAA0B,CAAC,CAgFrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es21.js","sources":["../../src/hcs-12/registries/base-registry.ts"],"sourcesContent":["/**\n * Base Registry Abstract Class for HCS-12\n *\n * Provides common functionality for all HCS-12 registry types including\n * action, block, assembly, and hashlinks registries.\n */\n\nimport { Logger } from '../../utils/logger';\nimport { NetworkType } from '../../utils/types';\nimport {\n RegistryType,\n AssemblyRegistryEntry,\n RegistryConfig,\n ActionRegistration,\n AssemblyRegistration,\n HashLinksRegistration,\n} from '../types';\nimport { inscribe, inscribeWithSigner } from '../../inscribe';\nimport type { HCS12Client } from '../sdk';\nimport type { HCS12BrowserClient } from '../browser';\n\n/**\n * Abstract base class for all HCS-12 registries\n */\nexport abstract class BaseRegistry {\n protected logger: Logger;\n protected networkType: NetworkType;\n protected topicId?: string;\n protected registryType: RegistryType;\n protected entries: Map<string, AssemblyRegistryEntry> = new Map();\n protected client?: HCS12Client | HCS12BrowserClient;\n protected lastSyncTimestamp?: string;\n\n constructor(\n networkType: NetworkType,\n logger: Logger,\n registryType: RegistryType,\n topicId?: string,\n client?: HCS12Client | HCS12BrowserClient,\n ) {\n this.networkType = networkType;\n this.logger = logger;\n this.registryType = registryType;\n this.topicId = topicId;\n this.client = client;\n }\n\n /**\n * Submit a registration to the topic\n */\n abstract register(\n data: ActionRegistration | AssemblyRegistration | HashLinksRegistration,\n ): Promise<string>;\n\n /**\n * Retrieve an entry by ID\n */\n async getEntry(id: string): Promise<AssemblyRegistryEntry | null> {\n const cached = this.entries.get(id);\n if (cached) return cached;\n\n if (this.topicId && this.client) {\n await this.sync();\n return this.entries.get(id) || null;\n }\n\n return null;\n }\n\n /**\n * Get the latest entry from a specific topic ID (for non-indexed topics)\n */\n async getLatestEntry(topicId: string): Promise<AssemblyRegistryEntry | null> {\n if (!this.client) {\n return null;\n }\n\n try {\n const messages = await this.client.mirrorNode.getTopicMessagesByFilter(\n topicId,\n {\n order: 'desc',\n limit: 1,\n },\n );\n\n if (!messages || messages.length === 0) {\n return null;\n }\n\n const latestMessage = messages[0];\n let data: any;\n\n if ((latestMessage as any).raw_content) {\n data = JSON.parse((latestMessage as any).raw_content);\n } else {\n const msgAny = latestMessage as any;\n if (msgAny.p === 'hcs-12' && msgAny.op) {\n data = {\n p: msgAny.p,\n op: msgAny.op,\n name: msgAny.name,\n version: msgAny.version,\n description: msgAny.description,\n permissions: msgAny.permissions,\n metadata: msgAny.metadata,\n data: msgAny.data,\n category: msgAny.category,\n source: msgAny.source,\n inputs: msgAny.inputs,\n outputs: msgAny.outputs,\n tags: msgAny.tags,\n fields: msgAny.fields,\n styles: msgAny.styles,\n actions: msgAny.actions,\n blocks: msgAny.blocks,\n refs: msgAny.refs,\n };\n\n Object.keys(data).forEach(key => {\n if (data[key] === undefined) {\n delete data[key];\n }\n });\n } else {\n return null;\n }\n }\n\n return {\n id: latestMessage.sequence_number.toString(),\n sequenceNumber: latestMessage.sequence_number,\n timestamp:\n latestMessage.consensus_timestamp || new Date().toISOString(),\n submitter: latestMessage.payer || 'unknown',\n data,\n };\n } catch (error) {\n this.logger.error('Failed to get latest entry', { topicId, error });\n return null;\n }\n }\n\n /**\n * List all entries with optional filtering\n */\n async listEntries(filter?: {\n submitter?: string;\n afterTimestamp?: string;\n beforeTimestamp?: string;\n }): Promise<AssemblyRegistryEntry[]> {\n if (this.topicId && this.client) {\n await this.sync();\n }\n\n const entries = Array.from(this.entries.values());\n\n if (!filter) return entries;\n\n return entries.filter(entry => {\n if (filter.submitter && entry.submitter !== filter.submitter) {\n return false;\n }\n if (filter.afterTimestamp && entry.timestamp < filter.afterTimestamp) {\n return false;\n }\n if (filter.beforeTimestamp && entry.timestamp > filter.beforeTimestamp) {\n return false;\n }\n return true;\n });\n }\n\n /**\n * Sync entries from the network\n */\n async sync(): Promise<void> {\n if (!this.topicId || !this.client) {\n this.logger.warn('Cannot sync without topic ID and client');\n return;\n }\n\n this.logger.info('Syncing registry entries', {\n topicId: this.topicId,\n registryType: RegistryType[this.registryType],\n lastSync: this.lastSyncTimestamp,\n });\n\n try {\n const messages = await this.client.mirrorNode.getTopicMessagesByFilter(\n this.topicId,\n {\n startTime: this.lastSyncTimestamp,\n order: 'asc',\n limit: 100,\n },\n );\n\n for (const msg of messages) {\n try {\n let data: any;\n\n if ((msg as any).raw_content) {\n data = JSON.parse((msg as any).raw_content);\n } else {\n const msgAny = msg as any;\n if (msgAny.p === 'hcs-12' && msgAny.op) {\n data = {\n p: msgAny.p,\n op: msgAny.op,\n name: msgAny.name,\n version: msgAny.version,\n description: msgAny.description,\n permissions: msgAny.permissions,\n metadata: msgAny.metadata,\n data: msgAny.data,\n category: msgAny.category,\n source: msgAny.source,\n inputs: msgAny.inputs,\n outputs: msgAny.outputs,\n tags: msgAny.tags,\n fields: msgAny.fields,\n styles: msgAny.styles,\n actions: msgAny.actions,\n blocks: msgAny.blocks,\n refs: msgAny.refs,\n t_id: msgAny.t_id,\n hash: msgAny.hash,\n wasm_hash: msgAny.wasm_hash,\n info_t_id: msgAny.info_t_id,\n validation_rules: msgAny.validation_rules,\n js_t_id: msgAny.js_t_id,\n js_hash: msgAny.js_hash,\n interface_version: msgAny.interface_version,\n title: msgAny.title,\n template: msgAny.template,\n author: msgAny.author,\n m: msgAny.m,\n };\n\n Object.keys(data).forEach(key => {\n if (data[key] === undefined) {\n delete data[key];\n }\n });\n } else {\n continue;\n }\n }\n\n if (data.p !== 'hcs-12') {\n continue;\n }\n\n const entry: AssemblyRegistryEntry = {\n id: msg.sequence_number.toString(),\n sequenceNumber: msg.sequence_number,\n timestamp: msg.consensus_timestamp || new Date().toISOString(),\n submitter: msg.payer || 'unknown',\n data,\n };\n this.entries.set(entry.id, entry);\n } catch (error) {\n this.logger.warn('Failed to parse registry message', {\n sequenceNumber: msg.sequence_number,\n error,\n });\n }\n }\n\n if (messages.length > 0) {\n this.lastSyncTimestamp =\n messages[messages.length - 1].consensus_timestamp ||\n new Date().toISOString();\n } else {\n this.lastSyncTimestamp = new Date().toISOString();\n }\n\n this.logger.info('Registry sync completed', {\n topicId: this.topicId,\n messageCount: messages.length,\n lastSync: this.lastSyncTimestamp,\n });\n } catch (error) {\n this.logger.error('Failed to sync registry', { error });\n throw error;\n }\n }\n\n /**\n * Get the registry topic memo format\n */\n getTopicMemo(): string {\n const indexed = 1;\n const ttl = 60;\n const type = this.registryType;\n return `hcs-12:${indexed}:${ttl}:${type}`;\n }\n\n /**\n * Create a new registry topic\n */\n async createRegistryTopic(): Promise<string> {\n if (!this.client) {\n throw new Error('Client required to create topic');\n }\n\n const topicId = await this.client.createRegistryTopic(this.registryType);\n this.topicId = topicId;\n\n return topicId;\n }\n\n /**\n * Get registry configuration\n */\n getConfig(): RegistryConfig {\n return {\n type: this.registryType,\n indexed: false,\n ttl: 60,\n topicId: this.topicId,\n memo: this.getTopicMemo(),\n };\n }\n\n /**\n * Store large content via HCS-1 inscription\n */\n protected async inscribeContent(\n content: Buffer | string,\n mimeType: string,\n metadata?: Record<string, any>,\n ): Promise<string> {\n if (!this.client) {\n throw new Error('Client required for inscription');\n }\n\n const buffer = typeof content === 'string' ? Buffer.from(content) : content;\n\n this.logger.info('Inscribing content via HCS-1', {\n size: buffer.length,\n mimeType,\n registryType: RegistryType[this.registryType],\n });\n\n let response;\n\n if ('getOperatorAccountId' in this.client) {\n response = await inscribe(\n {\n type: 'buffer',\n buffer,\n fileName:\n mimeType === 'application/octet-stream' &&\n metadata?.fileType === 'wasm'\n ? `${metadata?.name || 'content'}.wasm`\n : metadata?.name || 'content',\n mimeType,\n },\n {\n accountId: this.client.getOperatorAccountId(),\n privateKey: this.client.getOperatorPrivateKey(),\n network: this.networkType as 'mainnet' | 'testnet',\n },\n {\n mode: 'file',\n metadata,\n waitForConfirmation: true,\n },\n );\n } else {\n const { accountId, signer } = await (\n this.client as HCS12BrowserClient\n ).getAccountAndSigner();\n response = await inscribeWithSigner(\n {\n type: 'buffer',\n buffer,\n fileName:\n mimeType === 'application/octet-stream' &&\n metadata?.fileType === 'wasm'\n ? `${metadata?.name || 'content'}.wasm`\n : metadata?.name || 'content',\n mimeType,\n },\n signer,\n {\n mode: 'file',\n metadata,\n waitForConfirmation: true,\n },\n );\n }\n\n if (!response.confirmed) {\n throw new Error('Failed to inscribe content');\n }\n\n const topicId = response.inscription.topic_id;\n if (!topicId) {\n throw new Error('No topic ID in inscription response');\n }\n\n this.logger.info('Content inscribed successfully', {\n topicId,\n });\n return topicId;\n }\n\n /**\n * Validate common registration fields\n */\n protected validateBaseRegistration(\n data: ActionRegistration | AssemblyRegistration | HashLinksRegistration,\n ): void {\n if (!data.p || data.p !== 'hcs-12') {\n throw new Error('Invalid protocol identifier');\n }\n\n if (!data.op || data.op !== 'register') {\n throw new Error('Invalid operation');\n }\n }\n\n /**\n * Clear local cache\n */\n clearCache(): void {\n this.entries.clear();\n this.lastSyncTimestamp = undefined;\n this.logger.info('Registry cache cleared', {\n registryType: RegistryType[this.registryType],\n });\n }\n\n /**\n * Get registry statistics\n */\n getStats(): {\n entryCount: number;\n lastSync?: string;\n topicId?: string;\n registryType: string;\n } {\n return {\n entryCount: this.entries.size,\n lastSync: this.lastSyncTimestamp,\n topicId: this.topicId,\n registryType: RegistryType[this.registryType],\n };\n }\n}\n"],"names":[],"mappings":";;AAwBO,MAAe,aAAa;AAAA,EASjC,YACE,aACA,QACA,cACA,SACA,QACA;AAVF,SAAU,8BAAkD,IAAA;AAW1D,SAAK,cAAc;AACnB,SAAK,SAAS;AACd,SAAK,eAAe;AACpB,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,SAAS,IAAmD;AAChE,UAAM,SAAS,KAAK,QAAQ,IAAI,EAAE;AAClC,QAAI,OAAQ,QAAO;AAEnB,QAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,YAAM,KAAK,KAAA;AACX,aAAO,KAAK,QAAQ,IAAI,EAAE,KAAK;AAAA,IACjC;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,eAAe,SAAwD;AAC3E,QAAI,CAAC,KAAK,QAAQ;AAChB,aAAO;AAAA,IACT;AAEA,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,OAAO,WAAW;AAAA,QAC5C;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,QAAA;AAAA,MACT;AAGF,UAAI,CAAC,YAAY,SAAS,WAAW,GAAG;AACtC,eAAO;AAAA,MACT;AAEA,YAAM,gBAAgB,SAAS,CAAC;AAChC,UAAI;AAEJ,UAAK,cAAsB,aAAa;AACtC,eAAO,KAAK,MAAO,cAAsB,WAAW;AAAA,MACtD,OAAO;AACL,cAAM,SAAS;AACf,YAAI,OAAO,MAAM,YAAY,OAAO,IAAI;AACtC,iBAAO;AAAA,YACL,GAAG,OAAO;AAAA,YACV,IAAI,OAAO;AAAA,YACX,MAAM,OAAO;AAAA,YACb,SAAS,OAAO;AAAA,YAChB,aAAa,OAAO;AAAA,YACpB,aAAa,OAAO;AAAA,YACpB,UAAU,OAAO;AAAA,YACjB,MAAM,OAAO;AAAA,YACb,UAAU,OAAO;AAAA,YACjB,QAAQ,OAAO;AAAA,YACf,QAAQ,OAAO;AAAA,YACf,SAAS,OAAO;AAAA,YAChB,MAAM,OAAO;AAAA,YACb,QAAQ,OAAO;AAAA,YACf,QAAQ,OAAO;AAAA,YACf,SAAS,OAAO;AAAA,YAChB,QAAQ,OAAO;AAAA,YACf,MAAM,OAAO;AAAA,UAAA;AAGf,iBAAO,KAAK,IAAI,EAAE,QAAQ,CAAA,QAAO;AAC/B,gBAAI,KAAK,GAAG,MAAM,QAAW;AAC3B,qBAAO,KAAK,GAAG;AAAA,YACjB;AAAA,UACF,CAAC;AAAA,QACH,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,QACL,IAAI,cAAc,gBAAgB,SAAA;AAAA,QAClC,gBAAgB,cAAc;AAAA,QAC9B,WACE,cAAc,wBAAuB,oBAAI,KAAA,GAAO,YAAA;AAAA,QAClD,WAAW,cAAc,SAAS;AAAA,QAClC;AAAA,MAAA;AAAA,IAEJ,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,8BAA8B,EAAE,SAAS,OAAO;AAClE,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAAY,QAImB;AACnC,QAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,YAAM,KAAK,KAAA;AAAA,IACb;AAEA,UAAM,UAAU,MAAM,KAAK,KAAK,QAAQ,QAAQ;AAEhD,QAAI,CAAC,OAAQ,QAAO;AAEpB,WAAO,QAAQ,OAAO,CAAA,UAAS;AAC7B,UAAI,OAAO,aAAa,MAAM,cAAc,OAAO,WAAW;AAC5D,eAAO;AAAA,MACT;AACA,UAAI,OAAO,kBAAkB,MAAM,YAAY,OAAO,gBAAgB;AACpE,eAAO;AAAA,MACT;AACA,UAAI,OAAO,mBAAmB,MAAM,YAAY,OAAO,iBAAiB;AACtE,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAsB;AAC1B,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ;AACjC,WAAK,OAAO,KAAK,yCAAyC;AAC1D;AAAA,IACF;AAEA,SAAK,OAAO,KAAK,4BAA4B;AAAA,MAC3C,SAAS,KAAK;AAAA,MACd,cAAc,aAAa,KAAK,YAAY;AAAA,MAC5C,UAAU,KAAK;AAAA,IAAA,CAChB;AAED,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,OAAO,WAAW;AAAA,QAC5C,KAAK;AAAA,QACL;AAAA,UACE,WAAW,KAAK;AAAA,UAChB,OAAO;AAAA,UACP,OAAO;AAAA,QAAA;AAAA,MACT;AAGF,iBAAW,OAAO,UAAU;AAC1B,YAAI;AACF,cAAI;AAEJ,cAAK,IAAY,aAAa;AAC5B,mBAAO,KAAK,MAAO,IAAY,WAAW;AAAA,UAC5C,OAAO;AACL,kBAAM,SAAS;AACf,gBAAI,OAAO,MAAM,YAAY,OAAO,IAAI;AACtC,qBAAO;AAAA,gBACL,GAAG,OAAO;AAAA,gBACV,IAAI,OAAO;AAAA,gBACX,MAAM,OAAO;AAAA,gBACb,SAAS,OAAO;AAAA,gBAChB,aAAa,OAAO;AAAA,gBACpB,aAAa,OAAO;AAAA,gBACpB,UAAU,OAAO;AAAA,gBACjB,MAAM,OAAO;AAAA,gBACb,UAAU,OAAO;AAAA,gBACjB,QAAQ,OAAO;AAAA,gBACf,QAAQ,OAAO;AAAA,gBACf,SAAS,OAAO;AAAA,gBAChB,MAAM,OAAO;AAAA,gBACb,QAAQ,OAAO;AAAA,gBACf,QAAQ,OAAO;AAAA,gBACf,SAAS,OAAO;AAAA,gBAChB,QAAQ,OAAO;AAAA,gBACf,MAAM,OAAO;AAAA,gBACb,MAAM,OAAO;AAAA,gBACb,MAAM,OAAO;AAAA,gBACb,WAAW,OAAO;AAAA,gBAClB,WAAW,OAAO;AAAA,gBAClB,kBAAkB,OAAO;AAAA,gBACzB,SAAS,OAAO;AAAA,gBAChB,SAAS,OAAO;AAAA,gBAChB,mBAAmB,OAAO;AAAA,gBAC1B,OAAO,OAAO;AAAA,gBACd,UAAU,OAAO;AAAA,gBACjB,QAAQ,OAAO;AAAA,gBACf,GAAG,OAAO;AAAA,cAAA;AAGZ,qBAAO,KAAK,IAAI,EAAE,QAAQ,CAAA,QAAO;AAC/B,oBAAI,KAAK,GAAG,MAAM,QAAW;AAC3B,yBAAO,KAAK,GAAG;AAAA,gBACjB;AAAA,cACF,CAAC;AAAA,YACH,OAAO;AACL;AAAA,YACF;AAAA,UACF;AAEA,cAAI,KAAK,MAAM,UAAU;AACvB;AAAA,UACF;AAEA,gBAAM,QAA+B;AAAA,YACnC,IAAI,IAAI,gBAAgB,SAAA;AAAA,YACxB,gBAAgB,IAAI;AAAA,YACpB,WAAW,IAAI,wBAAuB,oBAAI,KAAA,GAAO,YAAA;AAAA,YACjD,WAAW,IAAI,SAAS;AAAA,YACxB;AAAA,UAAA;AAEF,eAAK,QAAQ,IAAI,MAAM,IAAI,KAAK;AAAA,QAClC,SAAS,OAAO;AACd,eAAK,OAAO,KAAK,oCAAoC;AAAA,YACnD,gBAAgB,IAAI;AAAA,YACpB;AAAA,UAAA,CACD;AAAA,QACH;AAAA,MACF;AAEA,UAAI,SAAS,SAAS,GAAG;AACvB,aAAK,oBACH,SAAS,SAAS,SAAS,CAAC,EAAE,wBAC9B,oBAAI,KAAA,GAAO,YAAA;AAAA,MACf,OAAO;AACL,aAAK,qBAAoB,oBAAI,KAAA,GAAO,YAAA;AAAA,MACtC;AAEA,WAAK,OAAO,KAAK,2BAA2B;AAAA,QAC1C,SAAS,KAAK;AAAA,QACd,cAAc,SAAS;AAAA,QACvB,UAAU,KAAK;AAAA,MAAA,CAChB;AAAA,IACH,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,2BAA2B,EAAE,OAAO;AACtD,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,eAAuB;AACrB,UAAM,UAAU;AAChB,UAAM,MAAM;AACZ,UAAM,OAAO,KAAK;AAClB,WAAO,UAAU,OAAO,IAAI,GAAG,IAAI,IAAI;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,sBAAuC;AAC3C,QAAI,CAAC,KAAK,QAAQ;AAChB,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACnD;AAEA,UAAM,UAAU,MAAM,KAAK,OAAO,oBAAoB,KAAK,YAAY;AACvE,SAAK,UAAU;AAEf,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,YAA4B;AAC1B,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,SAAS;AAAA,MACT,KAAK;AAAA,MACL,SAAS,KAAK;AAAA,MACd,MAAM,KAAK,aAAA;AAAA,IAAa;AAAA,EAE5B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAgB,gBACd,SACA,UACA,UACiB;AACjB,QAAI,CAAC,KAAK,QAAQ;AAChB,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACnD;AAEA,UAAM,SAAS,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI;AAEpE,SAAK,OAAO,KAAK,gCAAgC;AAAA,MAC/C,MAAM,OAAO;AAAA,MACb;AAAA,MACA,cAAc,aAAa,KAAK,YAAY;AAAA,IAAA,CAC7C;AAED,QAAI;AAEJ,QAAI,0BAA0B,KAAK,QAAQ;AACzC,iBAAW,MAAM;AAAA,QACf;AAAA,UACE,MAAM;AAAA,UACN;AAAA,UACA,UACE,aAAa,8BACb,UAAU,aAAa,SACnB,GAAG,UAAU,QAAQ,SAAS,UAC9B,UAAU,QAAQ;AAAA,UACxB;AAAA,QAAA;AAAA,QAEF;AAAA,UACE,WAAW,KAAK,OAAO,qBAAA;AAAA,UACvB,YAAY,KAAK,OAAO,sBAAA;AAAA,UACxB,SAAS,KAAK;AAAA,QAAA;AAAA,QAEhB;AAAA,UACE,MAAM;AAAA,UACN;AAAA,UACA,qBAAqB;AAAA,QAAA;AAAA,MACvB;AAAA,IAEJ,OAAO;AACL,YAAM,EAAE,WAAW,OAAA,IAAW,MAC5B,KAAK,OACL,oBAAA;AACF,iBAAW,MAAM;AAAA,QACf;AAAA,UACE,MAAM;AAAA,UACN;AAAA,UACA,UACE,aAAa,8BACb,UAAU,aAAa,SACnB,GAAG,UAAU,QAAQ,SAAS,UAC9B,UAAU,QAAQ;AAAA,UACxB;AAAA,QAAA;AAAA,QAEF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN;AAAA,UACA,qBAAqB;AAAA,QAAA;AAAA,MACvB;AAAA,IAEJ;AAEA,QAAI,CAAC,SAAS,WAAW;AACvB,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAEA,UAAM,UAAU,SAAS,YAAY;AACrC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,qCAAqC;AAAA,IACvD;AAEA,SAAK,OAAO,KAAK,kCAAkC;AAAA,MACjD;AAAA,IAAA,CACD;AACD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKU,yBACR,MACM;AACN,QAAI,CAAC,KAAK,KAAK,KAAK,MAAM,UAAU;AAClC,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AAEA,QAAI,CAAC,KAAK,MAAM,KAAK,OAAO,YAAY;AACtC,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACjB,SAAK,QAAQ,MAAA;AACb,SAAK,oBAAoB;AACzB,SAAK,OAAO,KAAK,0BAA0B;AAAA,MACzC,cAAc,aAAa,KAAK,YAAY;AAAA,IAAA,CAC7C;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,WAKE;AACA,WAAO;AAAA,MACL,YAAY,KAAK,QAAQ;AAAA,MACzB,UAAU,KAAK;AAAA,MACf,SAAS,KAAK;AAAA,MACd,cAAc,aAAa,KAAK,YAAY;AAAA,IAAA;AAAA,EAEhD;AACF;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es21.js","sources":["../../src/hcs-12/registries/base-registry.ts"],"sourcesContent":["/**\n * Base Registry Abstract Class for HCS-12\n *\n * Provides common functionality for all HCS-12 registry types including\n * action, block, assembly, and hashlinks registries.\n */\n\nimport { ILogger, Logger } from '../../utils/logger';\nimport { NetworkType } from '../../utils/types';\nimport {\n RegistryType,\n AssemblyRegistryEntry,\n RegistryConfig,\n ActionRegistration,\n AssemblyRegistration,\n HashLinksRegistration,\n} from '../types';\nimport { inscribe, inscribeWithSigner } from '../../inscribe';\nimport type { HCS12Client } from '../sdk';\nimport type { HCS12BrowserClient } from '../browser';\n\n/**\n * Abstract base class for all HCS-12 registries\n */\nexport abstract class BaseRegistry {\n protected logger: ILogger;\n protected networkType: NetworkType;\n protected topicId?: string;\n protected registryType: RegistryType;\n protected entries: Map<string, AssemblyRegistryEntry> = new Map();\n protected client?: HCS12Client | HCS12BrowserClient;\n protected lastSyncTimestamp?: string;\n\n constructor(\n networkType: NetworkType,\n logger: ILogger,\n registryType: RegistryType,\n topicId?: string,\n client?: HCS12Client | HCS12BrowserClient,\n ) {\n this.networkType = networkType;\n this.logger = logger;\n this.registryType = registryType;\n this.topicId = topicId;\n this.client = client;\n }\n\n /**\n * Submit a registration to the topic\n */\n abstract register(\n data: ActionRegistration | AssemblyRegistration | HashLinksRegistration,\n ): Promise<string>;\n\n /**\n * Retrieve an entry by ID\n */\n async getEntry(id: string): Promise<AssemblyRegistryEntry | null> {\n const cached = this.entries.get(id);\n if (cached) return cached;\n\n if (this.topicId && this.client) {\n await this.sync();\n return this.entries.get(id) || null;\n }\n\n return null;\n }\n\n /**\n * Get the latest entry from a specific topic ID (for non-indexed topics)\n */\n async getLatestEntry(topicId: string): Promise<AssemblyRegistryEntry | null> {\n if (!this.client) {\n return null;\n }\n\n try {\n const messages = await this.client.mirrorNode.getTopicMessagesByFilter(\n topicId,\n {\n order: 'desc',\n limit: 1,\n },\n );\n\n if (!messages || messages.length === 0) {\n return null;\n }\n\n const latestMessage = messages[0];\n let data: any;\n\n if ((latestMessage as any).raw_content) {\n data = JSON.parse((latestMessage as any).raw_content);\n } else {\n const msgAny = latestMessage as any;\n if (msgAny.p === 'hcs-12' && msgAny.op) {\n data = {\n p: msgAny.p,\n op: msgAny.op,\n name: msgAny.name,\n version: msgAny.version,\n description: msgAny.description,\n permissions: msgAny.permissions,\n metadata: msgAny.metadata,\n data: msgAny.data,\n category: msgAny.category,\n source: msgAny.source,\n inputs: msgAny.inputs,\n outputs: msgAny.outputs,\n tags: msgAny.tags,\n fields: msgAny.fields,\n styles: msgAny.styles,\n actions: msgAny.actions,\n blocks: msgAny.blocks,\n refs: msgAny.refs,\n };\n\n Object.keys(data).forEach(key => {\n if (data[key] === undefined) {\n delete data[key];\n }\n });\n } else {\n return null;\n }\n }\n\n return {\n id: latestMessage.sequence_number.toString(),\n sequenceNumber: latestMessage.sequence_number,\n timestamp:\n latestMessage.consensus_timestamp || new Date().toISOString(),\n submitter: latestMessage.payer || 'unknown',\n data,\n };\n } catch (error) {\n this.logger.error('Failed to get latest entry', { topicId, error });\n return null;\n }\n }\n\n /**\n * List all entries with optional filtering\n */\n async listEntries(filter?: {\n submitter?: string;\n afterTimestamp?: string;\n beforeTimestamp?: string;\n }): Promise<AssemblyRegistryEntry[]> {\n if (this.topicId && this.client) {\n await this.sync();\n }\n\n const entries = Array.from(this.entries.values());\n\n if (!filter) return entries;\n\n return entries.filter(entry => {\n if (filter.submitter && entry.submitter !== filter.submitter) {\n return false;\n }\n if (filter.afterTimestamp && entry.timestamp < filter.afterTimestamp) {\n return false;\n }\n if (filter.beforeTimestamp && entry.timestamp > filter.beforeTimestamp) {\n return false;\n }\n return true;\n });\n }\n\n /**\n * Sync entries from the network\n */\n async sync(): Promise<void> {\n if (!this.topicId || !this.client) {\n this.logger.warn('Cannot sync without topic ID and client');\n return;\n }\n\n this.logger.info('Syncing registry entries', {\n topicId: this.topicId,\n registryType: RegistryType[this.registryType],\n lastSync: this.lastSyncTimestamp,\n });\n\n try {\n const messages = await this.client.mirrorNode.getTopicMessagesByFilter(\n this.topicId,\n {\n startTime: this.lastSyncTimestamp,\n order: 'asc',\n limit: 100,\n },\n );\n\n for (const msg of messages) {\n try {\n let data: any;\n\n if ((msg as any).raw_content) {\n data = JSON.parse((msg as any).raw_content);\n } else {\n const msgAny = msg as any;\n if (msgAny.p === 'hcs-12' && msgAny.op) {\n data = {\n p: msgAny.p,\n op: msgAny.op,\n name: msgAny.name,\n version: msgAny.version,\n description: msgAny.description,\n permissions: msgAny.permissions,\n metadata: msgAny.metadata,\n data: msgAny.data,\n category: msgAny.category,\n source: msgAny.source,\n inputs: msgAny.inputs,\n outputs: msgAny.outputs,\n tags: msgAny.tags,\n fields: msgAny.fields,\n styles: msgAny.styles,\n actions: msgAny.actions,\n blocks: msgAny.blocks,\n refs: msgAny.refs,\n t_id: msgAny.t_id,\n hash: msgAny.hash,\n wasm_hash: msgAny.wasm_hash,\n info_t_id: msgAny.info_t_id,\n validation_rules: msgAny.validation_rules,\n js_t_id: msgAny.js_t_id,\n js_hash: msgAny.js_hash,\n interface_version: msgAny.interface_version,\n title: msgAny.title,\n template: msgAny.template,\n author: msgAny.author,\n m: msgAny.m,\n };\n\n Object.keys(data).forEach(key => {\n if (data[key] === undefined) {\n delete data[key];\n }\n });\n } else {\n continue;\n }\n }\n\n if (data.p !== 'hcs-12') {\n continue;\n }\n\n const entry: AssemblyRegistryEntry = {\n id: msg.sequence_number.toString(),\n sequenceNumber: msg.sequence_number,\n timestamp: msg.consensus_timestamp || new Date().toISOString(),\n submitter: msg.payer || 'unknown',\n data,\n };\n this.entries.set(entry.id, entry);\n } catch (error) {\n this.logger.warn('Failed to parse registry message', {\n sequenceNumber: msg.sequence_number,\n error,\n });\n }\n }\n\n if (messages.length > 0) {\n this.lastSyncTimestamp =\n messages[messages.length - 1].consensus_timestamp ||\n new Date().toISOString();\n } else {\n this.lastSyncTimestamp = new Date().toISOString();\n }\n\n this.logger.info('Registry sync completed', {\n topicId: this.topicId,\n messageCount: messages.length,\n lastSync: this.lastSyncTimestamp,\n });\n } catch (error) {\n this.logger.error('Failed to sync registry', { error });\n throw error;\n }\n }\n\n /**\n * Get the registry topic memo format\n */\n getTopicMemo(): string {\n const indexed = 1;\n const ttl = 60;\n const type = this.registryType;\n return `hcs-12:${indexed}:${ttl}:${type}`;\n }\n\n /**\n * Create a new registry topic\n */\n async createRegistryTopic(): Promise<string> {\n if (!this.client) {\n throw new Error('Client required to create topic');\n }\n\n const topicId = await this.client.createRegistryTopic(this.registryType);\n this.topicId = topicId;\n\n return topicId;\n }\n\n /**\n * Get registry configuration\n */\n getConfig(): RegistryConfig {\n return {\n type: this.registryType,\n indexed: false,\n ttl: 60,\n topicId: this.topicId,\n memo: this.getTopicMemo(),\n };\n }\n\n /**\n * Store large content via HCS-1 inscription\n */\n protected async inscribeContent(\n content: Buffer | string,\n mimeType: string,\n metadata?: Record<string, any>,\n ): Promise<string> {\n if (!this.client) {\n throw new Error('Client required for inscription');\n }\n\n const buffer = typeof content === 'string' ? Buffer.from(content) : content;\n\n this.logger.info('Inscribing content via HCS-1', {\n size: buffer.length,\n mimeType,\n registryType: RegistryType[this.registryType],\n });\n\n let response;\n\n if ('getOperatorAccountId' in this.client) {\n response = await inscribe(\n {\n type: 'buffer',\n buffer,\n fileName:\n mimeType === 'application/octet-stream' &&\n metadata?.fileType === 'wasm'\n ? `${metadata?.name || 'content'}.wasm`\n : metadata?.name || 'content',\n mimeType,\n },\n {\n accountId: this.client.getOperatorAccountId(),\n privateKey: this.client.getOperatorPrivateKey(),\n network: this.networkType as 'mainnet' | 'testnet',\n },\n {\n mode: 'file',\n metadata,\n waitForConfirmation: true,\n },\n );\n } else {\n const { accountId, signer } = await (\n this.client as HCS12BrowserClient\n ).getAccountAndSigner();\n response = await inscribeWithSigner(\n {\n type: 'buffer',\n buffer,\n fileName:\n mimeType === 'application/octet-stream' &&\n metadata?.fileType === 'wasm'\n ? `${metadata?.name || 'content'}.wasm`\n : metadata?.name || 'content',\n mimeType,\n },\n signer,\n {\n mode: 'file',\n metadata,\n waitForConfirmation: true,\n },\n );\n }\n\n if (!response.confirmed) {\n throw new Error('Failed to inscribe content');\n }\n\n const topicId = response.inscription.topic_id;\n if (!topicId) {\n throw new Error('No topic ID in inscription response');\n }\n\n this.logger.info('Content inscribed successfully', {\n topicId,\n });\n return topicId;\n }\n\n /**\n * Validate common registration fields\n */\n protected validateBaseRegistration(\n data: ActionRegistration | AssemblyRegistration | HashLinksRegistration,\n ): void {\n if (!data.p || data.p !== 'hcs-12') {\n throw new Error('Invalid protocol identifier');\n }\n\n if (!data.op || data.op !== 'register') {\n throw new Error('Invalid operation');\n }\n }\n\n /**\n * Clear local cache\n */\n clearCache(): void {\n this.entries.clear();\n this.lastSyncTimestamp = undefined;\n this.logger.info('Registry cache cleared', {\n registryType: RegistryType[this.registryType],\n });\n }\n\n /**\n * Get registry statistics\n */\n getStats(): {\n entryCount: number;\n lastSync?: string;\n topicId?: string;\n registryType: string;\n } {\n return {\n entryCount: this.entries.size,\n lastSync: this.lastSyncTimestamp,\n topicId: this.topicId,\n registryType: RegistryType[this.registryType],\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es22.js","sources":["../../src/hcs-12/registries/action-registry.ts"],"sourcesContent":["/**\n * Action Registry Implementation for HCS-12\n *\n * Manages registration and retrieval of HashLink WASM actions.\n */\n\nimport { Logger } from '../../utils/logger';\nimport { NetworkType } from '../../utils/types';\nimport {\n RegistryType,\n AssemblyRegistryEntry,\n ActionRegistration,\n ModuleInfo,\n SourceVerification,\n} from '../types';\nimport { BaseRegistry } from './base-registry';\nimport { retrieveInscription } from '../../inscribe';\nimport { createHash } from 'crypto';\nimport type { HCS12Client } from '../sdk';\nimport type { HCS12BrowserClient } from '../browser';\nimport {\n validateActionRegistration,\n safeValidate,\n actionRegistrationSchema,\n} from '../validation/schemas';\nimport { ZodError } from 'zod';\n\n/**\n * Registry for HashLink WASM actions\n */\nexport class ActionRegistry extends BaseRegistry {\n private actionsByHash: Map<string, ActionRegistration> = new Map();\n\n constructor(\n networkType: NetworkType,\n logger: Logger,\n topicId?: string,\n client?: HCS12Client | HCS12BrowserClient,\n ) {\n super(networkType, logger, RegistryType.ACTION, topicId, client);\n }\n\n /**\n * Register a WASM module with its binary via HCS-1\n */\n async registerWithWasm(\n wasmBinary: Buffer,\n moduleInfo: ModuleInfo,\n sourceVerification?: SourceVerification,\n ): Promise<ActionRegistration> {\n const wasmHash = createHash('sha256').update(wasmBinary).digest('hex');\n const infoString = JSON.stringify(moduleInfo);\n const infoHash = createHash('sha256').update(infoString).digest('hex');\n\n const wasmTopicId = await this.inscribeContent(\n wasmBinary,\n 'application/octet-stream',\n {\n name: moduleInfo.name,\n version: moduleInfo.version,\n hash: wasmHash,\n fileType: 'wasm',\n },\n );\n\n let infoTopicId: string | undefined;\n if (Buffer.byteLength(infoString, 'utf8') > 1024) {\n infoTopicId = await this.inscribeContent(infoString, 'application/json', {\n name: `${moduleInfo.name}-info`,\n version: moduleInfo.version,\n });\n }\n\n const registration: ActionRegistration = {\n p: 'hcs-12',\n op: 'register',\n t_id: wasmTopicId,\n hash: infoHash,\n wasm_hash: wasmHash,\n info_t_id: infoTopicId,\n source_verification: sourceVerification,\n m: `${moduleInfo.name} v${moduleInfo.version}`,\n };\n\n const id = await this.register(registration);\n return registration;\n }\n\n /**\n * Register a new WASM action\n */\n async register(registration: ActionRegistration): Promise<string> {\n this.validateRegistration(registration);\n\n if (this.topicId && this.client) {\n this.logger.info('Submitting action registration to HCS', {\n topicId: this.topicId,\n hash: registration.hash,\n wasmHash: registration.wasm_hash,\n });\n\n const result = await this.client.submitMessage(\n this.topicId,\n JSON.stringify(registration),\n );\n\n const sequenceNumber = result.sequenceNumber;\n if (!sequenceNumber) {\n throw new Error('No sequence number returned from submission');\n }\n\n const entry: AssemblyRegistryEntry = {\n id: sequenceNumber.toString(),\n sequenceNumber,\n timestamp: new Date().toISOString(),\n submitter:\n 'getHashConnect' in this.client\n ? (await (this.client as HCS12BrowserClient).getAccountAndSigner())\n .accountId\n : this.client.getOperatorAccountId(),\n data: registration,\n };\n\n this.entries.set(entry.id, entry);\n this.actionsByHash.set(registration.hash, registration);\n\n this.logger.info('Action registered', {\n hash: registration.hash,\n sequenceNumber,\n hasSourceVerification: !!registration.source_verification,\n });\n\n return sequenceNumber.toString();\n } else {\n const sequenceNumber = this.entries.size + 1;\n const entry: AssemblyRegistryEntry = {\n id: sequenceNumber.toString(),\n sequenceNumber,\n timestamp: new Date().toISOString(),\n submitter: 'local',\n data: registration,\n };\n\n this.entries.set(entry.id, entry);\n this.actionsByHash.set(registration.hash, registration);\n\n return sequenceNumber.toString();\n }\n }\n\n /**\n * Retrieve action by hash\n */\n async getAction(hash: string): Promise<ActionRegistration | null> {\n const cached = this.actionsByHash.get(hash);\n if (cached) return cached;\n\n if (this.topicId && this.client) {\n await this.sync();\n return this.actionsByHash.get(hash) || null;\n }\n\n return null;\n }\n\n /**\n * Retrieve action by topic ID\n */\n async getActionByTopicId(\n topicId: string,\n ): Promise<ActionRegistration | null> {\n this.logger.debug('getActionByTopicId called', { topicId });\n console.log('DEBUG: getActionByTopicId called', {\n topicId,\n cacheSize: this.actionsByHash.size,\n cachedTopicIds: Array.from(this.actionsByHash.values()).map(a => a.t_id),\n });\n\n for (const action of this.actionsByHash.values()) {\n if (action.t_id === topicId) {\n this.logger.debug('Action found in cache', { topicId, action });\n console.log('DEBUG: Action found in cache', { topicId, action });\n return action;\n }\n }\n\n if (this.topicId && this.client) {\n this.logger.debug('Action not in cache, syncing...', { topicId });\n console.log('DEBUG: Action not in cache, syncing...');\n await this.sync();\n\n console.log('DEBUG: After sync', {\n cacheSize: this.actionsByHash.size,\n cachedTopicIds: Array.from(this.actionsByHash.values()).map(\n a => a.t_id,\n ),\n });\n\n for (const action of this.actionsByHash.values()) {\n if (action.t_id === topicId) {\n this.logger.debug('Action found after sync', { topicId, action });\n console.log('DEBUG: Action found after sync', { topicId, action });\n return action;\n }\n }\n }\n\n this.logger.warn('Action not found', { topicId });\n console.log('DEBUG: Action not found', { topicId });\n return null;\n }\n\n /**\n * Retrieve action info by hash\n */\n async getActionInfo(hash: string): Promise<ModuleInfo | null> {\n const action = await this.getAction(hash);\n if (!action) return null;\n\n try {\n let infoString: string;\n\n if (action.info_t_id) {\n if (!this.client) {\n this.logger.error('Client not initialized - cannot fetch INFO');\n return null;\n }\n\n let inscription;\n\n if ('getOperatorAccountId' in this.client) {\n inscription = await retrieveInscription(action.info_t_id, {\n accountId: this.client.getOperatorAccountId(),\n privateKey: this.client.getOperatorPrivateKey(),\n network: this.networkType as 'mainnet' | 'testnet',\n });\n } else {\n const { accountId } = await (\n this.client as HCS12BrowserClient\n ).getAccountAndSigner();\n inscription = await retrieveInscription(action.info_t_id, {\n accountId,\n network: this.networkType as 'mainnet' | 'testnet',\n });\n }\n\n if (!inscription.content) {\n this.logger.error('No content in inscription response');\n return null;\n }\n infoString =\n typeof inscription.content === 'string'\n ? inscription.content\n : Buffer.from(inscription.content).toString('utf8');\n } else {\n this.logger.warn('Inline INFO storage not yet implemented');\n return null;\n }\n\n const moduleInfo = JSON.parse(infoString) as ModuleInfo;\n const computedHash = createHash('sha256')\n .update(infoString)\n .digest('hex');\n\n if (computedHash !== action.hash) {\n this.logger.error('INFO hash mismatch', {\n expected: action.hash,\n computed: computedHash,\n });\n throw new Error('Module info verification failed');\n }\n\n return moduleInfo;\n } catch (error) {\n this.logger.error('Failed to fetch action INFO', {\n hash,\n error,\n });\n return null;\n }\n }\n\n /**\n * Retrieve action WASM binary\n */\n async getActionWasm(hash: string): Promise<Uint8Array | null> {\n const action = await this.getAction(hash);\n if (!action) return null;\n\n if (!this.client) {\n this.logger.error('Client not initialized - cannot fetch WASM');\n return null;\n }\n\n try {\n let inscription;\n\n if ('getOperatorAccountId' in this.client) {\n inscription = await retrieveInscription(action.t_id, {\n accountId: this.client.getOperatorAccountId(),\n privateKey: this.client.getOperatorPrivateKey(),\n network: this.networkType as 'mainnet' | 'testnet',\n });\n } else {\n const { accountId } = await (\n this.client as HCS12BrowserClient\n ).getAccountAndSigner();\n inscription = await retrieveInscription(action.t_id, {\n accountId,\n network: this.networkType as 'mainnet' | 'testnet',\n });\n }\n\n if (!inscription.content) {\n this.logger.error('No content in inscription response');\n return null;\n }\n\n const wasmBuffer =\n typeof inscription.content === 'string'\n ? Buffer.from(inscription.content, 'base64')\n : Buffer.from(inscription.content);\n\n const computedHash = createHash('sha256')\n .update(wasmBuffer)\n .digest('hex');\n\n if (computedHash !== action.wasm_hash) {\n this.logger.error('WASM hash mismatch', {\n expected: action.wasm_hash,\n computed: computedHash,\n });\n throw new Error('WASM binary verification failed');\n }\n\n return new Uint8Array(wasmBuffer);\n } catch (error) {\n this.logger.error('Failed to fetch WASM from HCS-1', {\n topicId: action.t_id,\n error,\n });\n return null;\n }\n }\n\n /**\n * Search actions by criteria\n */\n async searchActions(criteria: {\n creator?: string;\n capability?: string;\n afterTimestamp?: string;\n beforeTimestamp?: string;\n hasSourceVerification?: boolean;\n }): Promise<ActionRegistration[]> {\n const entries = await this.listEntries({\n submitter: criteria.creator,\n afterTimestamp: criteria.afterTimestamp,\n beforeTimestamp: criteria.beforeTimestamp,\n });\n\n return entries\n .map(entry => entry.data as ActionRegistration)\n .filter(action => {\n if (criteria.hasSourceVerification !== undefined) {\n const hasVerification = !!action.source_verification;\n if (hasVerification !== criteria.hasSourceVerification) return false;\n }\n\n return true;\n });\n }\n\n /**\n * Get actions by version chain\n */\n async getVersionChain(latestHash: string): Promise<ActionRegistration[]> {\n const chain: ActionRegistration[] = [];\n let currentHash: string | undefined = latestHash;\n\n while (currentHash) {\n const action = await this.getAction(currentHash);\n if (!action) break;\n\n chain.push(action);\n\n currentHash = undefined;\n }\n\n return chain;\n }\n\n /**\n * Validate action registration using Zod schema\n */\n private validateRegistration(registration: ActionRegistration): void {\n try {\n validateActionRegistration(registration);\n } catch (error) {\n if (error instanceof ZodError) {\n const firstError = error.errors[0];\n throw new Error(\n `Validation failed: ${firstError.path.join('.')} - ${firstError.message}`,\n );\n }\n throw error;\n }\n }\n\n /**\n * Override sync to handle action-specific processing\n */\n async sync(): Promise<void> {\n await super.sync();\n\n this.actionsByHash.clear();\n for (const entry of this.entries.values()) {\n const action = entry.data as ActionRegistration;\n this.actionsByHash.set(action.hash, action);\n }\n }\n\n /**\n * Override clear cache to also clear action hash index\n */\n clearCache(): void {\n super.clearCache();\n this.actionsByHash.clear();\n }\n}\n"],"names":[],"mappings":";;;;;;AA8BO,MAAM,uBAAuB,aAAa;AAAA,EAG/C,YACE,aACA,QACA,SACA,QACA;AACA,UAAM,aAAa,QAAQ,aAAa,QAAQ,SAAS,MAAM;AARjE,SAAQ,oCAAqD,IAAA;AAAA,EAS7D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBACJ,YACA,YACA,oBAC6B;AAC7B,UAAM,WAAW,WAAW,QAAQ,EAAE,OAAO,UAAU,EAAE,OAAO,KAAK;AACrE,UAAM,aAAa,KAAK,UAAU,UAAU;AAC5C,UAAM,WAAW,WAAW,QAAQ,EAAE,OAAO,UAAU,EAAE,OAAO,KAAK;AAErE,UAAM,cAAc,MAAM,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,QACE,MAAM,WAAW;AAAA,QACjB,SAAS,WAAW;AAAA,QACpB,MAAM;AAAA,QACN,UAAU;AAAA,MAAA;AAAA,IACZ;AAGF,QAAI;AACJ,QAAI,OAAO,WAAW,YAAY,MAAM,IAAI,MAAM;AAChD,oBAAc,MAAM,KAAK,gBAAgB,YAAY,oBAAoB;AAAA,QACvE,MAAM,GAAG,WAAW,IAAI;AAAA,QACxB,SAAS,WAAW;AAAA,MAAA,CACrB;AAAA,IACH;AAEA,UAAM,eAAmC;AAAA,MACvC,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,WAAW;AAAA,MACX,qBAAqB;AAAA,MACrB,GAAG,GAAG,WAAW,IAAI,KAAK,WAAW,OAAO;AAAA,IAAA;AAGnC,UAAM,KAAK,SAAS,YAAY;AAC3C,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,cAAmD;AAChE,SAAK,qBAAqB,YAAY;AAEtC,QAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,WAAK,OAAO,KAAK,yCAAyC;AAAA,QACxD,SAAS,KAAK;AAAA,QACd,MAAM,aAAa;AAAA,QACnB,UAAU,aAAa;AAAA,MAAA,CACxB;AAED,YAAM,SAAS,MAAM,KAAK,OAAO;AAAA,QAC/B,KAAK;AAAA,QACL,KAAK,UAAU,YAAY;AAAA,MAAA;AAG7B,YAAM,iBAAiB,OAAO;AAC9B,UAAI,CAAC,gBAAgB;AACnB,cAAM,IAAI,MAAM,6CAA6C;AAAA,MAC/D;AAEA,YAAM,QAA+B;AAAA,QACnC,IAAI,eAAe,SAAA;AAAA,QACnB;AAAA,QACA,YAAW,oBAAI,KAAA,GAAO,YAAA;AAAA,QACtB,WACE,oBAAoB,KAAK,UACpB,MAAO,KAAK,OAA8B,oBAAA,GACxC,YACH,KAAK,OAAO,qBAAA;AAAA,QAClB,MAAM;AAAA,MAAA;AAGR,WAAK,QAAQ,IAAI,MAAM,IAAI,KAAK;AAChC,WAAK,cAAc,IAAI,aAAa,MAAM,YAAY;AAEtD,WAAK,OAAO,KAAK,qBAAqB;AAAA,QACpC,MAAM,aAAa;AAAA,QACnB;AAAA,QACA,uBAAuB,CAAC,CAAC,aAAa;AAAA,MAAA,CACvC;AAED,aAAO,eAAe,SAAA;AAAA,IACxB,OAAO;AACL,YAAM,iBAAiB,KAAK,QAAQ,OAAO;AAC3C,YAAM,QAA+B;AAAA,QACnC,IAAI,eAAe,SAAA;AAAA,QACnB;AAAA,QACA,YAAW,oBAAI,KAAA,GAAO,YAAA;AAAA,QACtB,WAAW;AAAA,QACX,MAAM;AAAA,MAAA;AAGR,WAAK,QAAQ,IAAI,MAAM,IAAI,KAAK;AAChC,WAAK,cAAc,IAAI,aAAa,MAAM,YAAY;AAEtD,aAAO,eAAe,SAAA;AAAA,IACxB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAU,MAAkD;AAChE,UAAM,SAAS,KAAK,cAAc,IAAI,IAAI;AAC1C,QAAI,OAAQ,QAAO;AAEnB,QAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,YAAM,KAAK,KAAA;AACX,aAAO,KAAK,cAAc,IAAI,IAAI,KAAK;AAAA,IACzC;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBACJ,SACoC;AACpC,SAAK,OAAO,MAAM,6BAA6B,EAAE,SAAS;AAC1D,YAAQ,IAAI,oCAAoC;AAAA,MAC9C;AAAA,MACA,WAAW,KAAK,cAAc;AAAA,MAC9B,gBAAgB,MAAM,KAAK,KAAK,cAAc,OAAA,CAAQ,EAAE,IAAI,CAAA,MAAK,EAAE,IAAI;AAAA,IAAA,CACxE;AAED,eAAW,UAAU,KAAK,cAAc,OAAA,GAAU;AAChD,UAAI,OAAO,SAAS,SAAS;AAC3B,aAAK,OAAO,MAAM,yBAAyB,EAAE,SAAS,QAAQ;AAC9D,gBAAQ,IAAI,gCAAgC,EAAE,SAAS,QAAQ;AAC/D,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,WAAK,OAAO,MAAM,mCAAmC,EAAE,SAAS;AAChE,cAAQ,IAAI,wCAAwC;AACpD,YAAM,KAAK,KAAA;AAEX,cAAQ,IAAI,qBAAqB;AAAA,QAC/B,WAAW,KAAK,cAAc;AAAA,QAC9B,gBAAgB,MAAM,KAAK,KAAK,cAAc,OAAA,CAAQ,EAAE;AAAA,UACtD,OAAK,EAAE;AAAA,QAAA;AAAA,MACT,CACD;AAED,iBAAW,UAAU,KAAK,cAAc,OAAA,GAAU;AAChD,YAAI,OAAO,SAAS,SAAS;AAC3B,eAAK,OAAO,MAAM,2BAA2B,EAAE,SAAS,QAAQ;AAChE,kBAAQ,IAAI,kCAAkC,EAAE,SAAS,QAAQ;AACjE,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAEA,SAAK,OAAO,KAAK,oBAAoB,EAAE,SAAS;AAChD,YAAQ,IAAI,2BAA2B,EAAE,QAAA,CAAS;AAClD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAAc,MAA0C;AAC5D,UAAM,SAAS,MAAM,KAAK,UAAU,IAAI;AACxC,QAAI,CAAC,OAAQ,QAAO;AAEpB,QAAI;AACF,UAAI;AAEJ,UAAI,OAAO,WAAW;AACpB,YAAI,CAAC,KAAK,QAAQ;AAChB,eAAK,OAAO,MAAM,4CAA4C;AAC9D,iBAAO;AAAA,QACT;AAEA,YAAI;AAEJ,YAAI,0BAA0B,KAAK,QAAQ;AACzC,wBAAc,MAAM,oBAAoB,OAAO,WAAW;AAAA,YACxD,WAAW,KAAK,OAAO,qBAAA;AAAA,YACvB,YAAY,KAAK,OAAO,sBAAA;AAAA,YACxB,SAAS,KAAK;AAAA,UAAA,CACf;AAAA,QACH,OAAO;AACL,gBAAM,EAAE,UAAA,IAAc,MACpB,KAAK,OACL,oBAAA;AACF,wBAAc,MAAM,oBAAoB,OAAO,WAAW;AAAA,YACxD;AAAA,YACA,SAAS,KAAK;AAAA,UAAA,CACf;AAAA,QACH;AAEA,YAAI,CAAC,YAAY,SAAS;AACxB,eAAK,OAAO,MAAM,oCAAoC;AACtD,iBAAO;AAAA,QACT;AACA,qBACE,OAAO,YAAY,YAAY,WAC3B,YAAY,UACZ,OAAO,KAAK,YAAY,OAAO,EAAE,SAAS,MAAM;AAAA,MACxD,OAAO;AACL,aAAK,OAAO,KAAK,yCAAyC;AAC1D,eAAO;AAAA,MACT;AAEA,YAAM,aAAa,KAAK,MAAM,UAAU;AACxC,YAAM,eAAe,WAAW,QAAQ,EACrC,OAAO,UAAU,EACjB,OAAO,KAAK;AAEf,UAAI,iBAAiB,OAAO,MAAM;AAChC,aAAK,OAAO,MAAM,sBAAsB;AAAA,UACtC,UAAU,OAAO;AAAA,UACjB,UAAU;AAAA,QAAA,CACX;AACD,cAAM,IAAI,MAAM,iCAAiC;AAAA,MACnD;AAEA,aAAO;AAAA,IACT,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,+BAA+B;AAAA,QAC/C;AAAA,QACA;AAAA,MAAA,CACD;AACD,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAAc,MAA0C;AAC5D,UAAM,SAAS,MAAM,KAAK,UAAU,IAAI;AACxC,QAAI,CAAC,OAAQ,QAAO;AAEpB,QAAI,CAAC,KAAK,QAAQ;AAChB,WAAK,OAAO,MAAM,4CAA4C;AAC9D,aAAO;AAAA,IACT;AAEA,QAAI;AACF,UAAI;AAEJ,UAAI,0BAA0B,KAAK,QAAQ;AACzC,sBAAc,MAAM,oBAAoB,OAAO,MAAM;AAAA,UACnD,WAAW,KAAK,OAAO,qBAAA;AAAA,UACvB,YAAY,KAAK,OAAO,sBAAA;AAAA,UACxB,SAAS,KAAK;AAAA,QAAA,CACf;AAAA,MACH,OAAO;AACL,cAAM,EAAE,UAAA,IAAc,MACpB,KAAK,OACL,oBAAA;AACF,sBAAc,MAAM,oBAAoB,OAAO,MAAM;AAAA,UACnD;AAAA,UACA,SAAS,KAAK;AAAA,QAAA,CACf;AAAA,MACH;AAEA,UAAI,CAAC,YAAY,SAAS;AACxB,aAAK,OAAO,MAAM,oCAAoC;AACtD,eAAO;AAAA,MACT;AAEA,YAAM,aACJ,OAAO,YAAY,YAAY,WAC3B,OAAO,KAAK,YAAY,SAAS,QAAQ,IACzC,OAAO,KAAK,YAAY,OAAO;AAErC,YAAM,eAAe,WAAW,QAAQ,EACrC,OAAO,UAAU,EACjB,OAAO,KAAK;AAEf,UAAI,iBAAiB,OAAO,WAAW;AACrC,aAAK,OAAO,MAAM,sBAAsB;AAAA,UACtC,UAAU,OAAO;AAAA,UACjB,UAAU;AAAA,QAAA,CACX;AACD,cAAM,IAAI,MAAM,iCAAiC;AAAA,MACnD;AAEA,aAAO,IAAI,WAAW,UAAU;AAAA,IAClC,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,mCAAmC;AAAA,QACnD,SAAS,OAAO;AAAA,QAChB;AAAA,MAAA,CACD;AACD,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAAc,UAMc;AAChC,UAAM,UAAU,MAAM,KAAK,YAAY;AAAA,MACrC,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,MACzB,iBAAiB,SAAS;AAAA,IAAA,CAC3B;AAED,WAAO,QACJ,IAAI,CAAA,UAAS,MAAM,IAA0B,EAC7C,OAAO,CAAA,WAAU;AAChB,UAAI,SAAS,0BAA0B,QAAW;AAChD,cAAM,kBAAkB,CAAC,CAAC,OAAO;AACjC,YAAI,oBAAoB,SAAS,sBAAuB,QAAO;AAAA,MACjE;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAAgB,YAAmD;AACvE,UAAM,QAA8B,CAAA;AACpC,QAAI,cAAkC;AAEtC,WAAO,aAAa;AAClB,YAAM,SAAS,MAAM,KAAK,UAAU,WAAW;AAC/C,UAAI,CAAC,OAAQ;AAEb,YAAM,KAAK,MAAM;AAEjB,oBAAc;AAAA,IAChB;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,qBAAqB,cAAwC;AACnE,QAAI;AACF,iCAA2B,YAAY;AAAA,IACzC,SAAS,OAAO;AACd,UAAI,iBAAiB,UAAU;AAC7B,cAAM,aAAa,MAAM,OAAO,CAAC;AACjC,cAAM,IAAI;AAAA,UACR,sBAAsB,WAAW,KAAK,KAAK,GAAG,CAAC,MAAM,WAAW,OAAO;AAAA,QAAA;AAAA,MAE3E;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAsB;AAC1B,UAAM,MAAM,KAAA;AAEZ,SAAK,cAAc,MAAA;AACnB,eAAW,SAAS,KAAK,QAAQ,OAAA,GAAU;AACzC,YAAM,SAAS,MAAM;AACrB,WAAK,cAAc,IAAI,OAAO,MAAM,MAAM;AAAA,IAC5C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACjB,UAAM,WAAA;AACN,SAAK,cAAc,MAAA;AAAA,EACrB;AACF;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es22.js","sources":["../../src/hcs-12/registries/action-registry.ts"],"sourcesContent":["/**\n * Action Registry Implementation for HCS-12\n *\n * Manages registration and retrieval of HashLink WASM actions.\n */\n\nimport { ILogger } from '../../utils/logger';\nimport { NetworkType } from '../../utils/types';\nimport {\n RegistryType,\n AssemblyRegistryEntry,\n ActionRegistration,\n ModuleInfo,\n SourceVerification,\n} from '../types';\nimport { BaseRegistry } from './base-registry';\nimport { retrieveInscription } from '../../inscribe';\nimport { createHash } from 'crypto';\nimport type { HCS12Client } from '../sdk';\nimport type { HCS12BrowserClient } from '../browser';\nimport {\n validateActionRegistration,\n safeValidate,\n actionRegistrationSchema,\n} from '../validation/schemas';\nimport { ZodError } from 'zod';\n\n/**\n * Registry for HashLink WASM actions\n */\nexport class ActionRegistry extends BaseRegistry {\n private actionsByHash: Map<string, ActionRegistration> = new Map();\n\n constructor(\n networkType: NetworkType,\n logger: ILogger,\n topicId?: string,\n client?: HCS12Client | HCS12BrowserClient,\n ) {\n super(networkType, logger, RegistryType.ACTION, topicId, client);\n }\n\n /**\n * Register a WASM module with its binary via HCS-1\n */\n async registerWithWasm(\n wasmBinary: Buffer,\n moduleInfo: ModuleInfo,\n sourceVerification?: SourceVerification,\n ): Promise<ActionRegistration> {\n const wasmHash = createHash('sha256').update(wasmBinary).digest('hex');\n const infoString = JSON.stringify(moduleInfo);\n const infoHash = createHash('sha256').update(infoString).digest('hex');\n\n const wasmTopicId = await this.inscribeContent(\n wasmBinary,\n 'application/octet-stream',\n {\n name: moduleInfo.name,\n version: moduleInfo.version,\n hash: wasmHash,\n fileType: 'wasm',\n },\n );\n\n let infoTopicId: string | undefined;\n if (Buffer.byteLength(infoString, 'utf8') > 1024) {\n infoTopicId = await this.inscribeContent(infoString, 'application/json', {\n name: `${moduleInfo.name}-info`,\n version: moduleInfo.version,\n });\n }\n\n const registration: ActionRegistration = {\n p: 'hcs-12',\n op: 'register',\n t_id: wasmTopicId,\n hash: infoHash,\n wasm_hash: wasmHash,\n info_t_id: infoTopicId,\n source_verification: sourceVerification,\n m: `${moduleInfo.name} v${moduleInfo.version}`,\n };\n\n const id = await this.register(registration);\n return registration;\n }\n\n /**\n * Register a new WASM action\n */\n async register(registration: ActionRegistration): Promise<string> {\n this.validateRegistration(registration);\n\n if (this.topicId && this.client) {\n this.logger.info('Submitting action registration to HCS', {\n topicId: this.topicId,\n hash: registration.hash,\n wasmHash: registration.wasm_hash,\n });\n\n const result = await this.client.submitMessage(\n this.topicId,\n JSON.stringify(registration),\n );\n\n const sequenceNumber = result.sequenceNumber;\n if (!sequenceNumber) {\n throw new Error('No sequence number returned from submission');\n }\n\n const entry: AssemblyRegistryEntry = {\n id: sequenceNumber.toString(),\n sequenceNumber,\n timestamp: new Date().toISOString(),\n submitter:\n 'getHashConnect' in this.client\n ? (await (this.client as HCS12BrowserClient).getAccountAndSigner())\n .accountId\n : this.client.getOperatorAccountId(),\n data: registration,\n };\n\n this.entries.set(entry.id, entry);\n this.actionsByHash.set(registration.hash, registration);\n\n this.logger.info('Action registered', {\n hash: registration.hash,\n sequenceNumber,\n hasSourceVerification: !!registration.source_verification,\n });\n\n return sequenceNumber.toString();\n } else {\n const sequenceNumber = this.entries.size + 1;\n const entry: AssemblyRegistryEntry = {\n id: sequenceNumber.toString(),\n sequenceNumber,\n timestamp: new Date().toISOString(),\n submitter: 'local',\n data: registration,\n };\n\n this.entries.set(entry.id, entry);\n this.actionsByHash.set(registration.hash, registration);\n\n return sequenceNumber.toString();\n }\n }\n\n /**\n * Retrieve action by hash\n */\n async getAction(hash: string): Promise<ActionRegistration | null> {\n const cached = this.actionsByHash.get(hash);\n if (cached) return cached;\n\n if (this.topicId && this.client) {\n await this.sync();\n return this.actionsByHash.get(hash) || null;\n }\n\n return null;\n }\n\n /**\n * Retrieve action by topic ID\n */\n async getActionByTopicId(\n topicId: string,\n ): Promise<ActionRegistration | null> {\n this.logger.debug('getActionByTopicId called', { topicId });\n console.log('DEBUG: getActionByTopicId called', {\n topicId,\n cacheSize: this.actionsByHash.size,\n cachedTopicIds: Array.from(this.actionsByHash.values()).map(a => a.t_id),\n });\n\n for (const action of this.actionsByHash.values()) {\n if (action.t_id === topicId) {\n this.logger.debug('Action found in cache', { topicId, action });\n console.log('DEBUG: Action found in cache', { topicId, action });\n return action;\n }\n }\n\n if (this.topicId && this.client) {\n this.logger.debug('Action not in cache, syncing...', { topicId });\n console.log('DEBUG: Action not in cache, syncing...');\n await this.sync();\n\n console.log('DEBUG: After sync', {\n cacheSize: this.actionsByHash.size,\n cachedTopicIds: Array.from(this.actionsByHash.values()).map(\n a => a.t_id,\n ),\n });\n\n for (const action of this.actionsByHash.values()) {\n if (action.t_id === topicId) {\n this.logger.debug('Action found after sync', { topicId, action });\n console.log('DEBUG: Action found after sync', { topicId, action });\n return action;\n }\n }\n }\n\n this.logger.warn('Action not found', { topicId });\n console.log('DEBUG: Action not found', { topicId });\n return null;\n }\n\n /**\n * Retrieve action info by hash\n */\n async getActionInfo(hash: string): Promise<ModuleInfo | null> {\n const action = await this.getAction(hash);\n if (!action) return null;\n\n try {\n let infoString: string;\n\n if (action.info_t_id) {\n if (!this.client) {\n this.logger.error('Client not initialized - cannot fetch INFO');\n return null;\n }\n\n let inscription;\n\n if ('getOperatorAccountId' in this.client) {\n inscription = await retrieveInscription(action.info_t_id, {\n accountId: this.client.getOperatorAccountId(),\n privateKey: this.client.getOperatorPrivateKey(),\n network: this.networkType as 'mainnet' | 'testnet',\n });\n } else {\n const { accountId } = await (\n this.client as HCS12BrowserClient\n ).getAccountAndSigner();\n inscription = await retrieveInscription(action.info_t_id, {\n accountId,\n network: this.networkType as 'mainnet' | 'testnet',\n });\n }\n\n if (!inscription.content) {\n this.logger.error('No content in inscription response');\n return null;\n }\n infoString =\n typeof inscription.content === 'string'\n ? inscription.content\n : Buffer.from(inscription.content).toString('utf8');\n } else {\n this.logger.warn('Inline INFO storage not yet implemented');\n return null;\n }\n\n const moduleInfo = JSON.parse(infoString) as ModuleInfo;\n const computedHash = createHash('sha256')\n .update(infoString)\n .digest('hex');\n\n if (computedHash !== action.hash) {\n this.logger.error('INFO hash mismatch', {\n expected: action.hash,\n computed: computedHash,\n });\n throw new Error('Module info verification failed');\n }\n\n return moduleInfo;\n } catch (error) {\n this.logger.error('Failed to fetch action INFO', {\n hash,\n error,\n });\n return null;\n }\n }\n\n /**\n * Retrieve action WASM binary\n */\n async getActionWasm(hash: string): Promise<Uint8Array | null> {\n const action = await this.getAction(hash);\n if (!action) return null;\n\n if (!this.client) {\n this.logger.error('Client not initialized - cannot fetch WASM');\n return null;\n }\n\n try {\n let inscription;\n\n if ('getOperatorAccountId' in this.client) {\n inscription = await retrieveInscription(action.t_id, {\n accountId: this.client.getOperatorAccountId(),\n privateKey: this.client.getOperatorPrivateKey(),\n network: this.networkType as 'mainnet' | 'testnet',\n });\n } else {\n const { accountId } = await (\n this.client as HCS12BrowserClient\n ).getAccountAndSigner();\n inscription = await retrieveInscription(action.t_id, {\n accountId,\n network: this.networkType as 'mainnet' | 'testnet',\n });\n }\n\n if (!inscription.content) {\n this.logger.error('No content in inscription response');\n return null;\n }\n\n const wasmBuffer =\n typeof inscription.content === 'string'\n ? Buffer.from(inscription.content, 'base64')\n : Buffer.from(inscription.content);\n\n const computedHash = createHash('sha256')\n .update(wasmBuffer)\n .digest('hex');\n\n if (computedHash !== action.wasm_hash) {\n this.logger.error('WASM hash mismatch', {\n expected: action.wasm_hash,\n computed: computedHash,\n });\n throw new Error('WASM binary verification failed');\n }\n\n return new Uint8Array(wasmBuffer);\n } catch (error) {\n this.logger.error('Failed to fetch WASM from HCS-1', {\n topicId: action.t_id,\n error,\n });\n return null;\n }\n }\n\n /**\n * Search actions by criteria\n */\n async searchActions(criteria: {\n creator?: string;\n capability?: string;\n afterTimestamp?: string;\n beforeTimestamp?: string;\n hasSourceVerification?: boolean;\n }): Promise<ActionRegistration[]> {\n const entries = await this.listEntries({\n submitter: criteria.creator,\n afterTimestamp: criteria.afterTimestamp,\n beforeTimestamp: criteria.beforeTimestamp,\n });\n\n return entries\n .map(entry => entry.data as ActionRegistration)\n .filter(action => {\n if (criteria.hasSourceVerification !== undefined) {\n const hasVerification = !!action.source_verification;\n if (hasVerification !== criteria.hasSourceVerification) return false;\n }\n\n return true;\n });\n }\n\n /**\n * Get actions by version chain\n */\n async getVersionChain(latestHash: string): Promise<ActionRegistration[]> {\n const chain: ActionRegistration[] = [];\n let currentHash: string | undefined = latestHash;\n\n while (currentHash) {\n const action = await this.getAction(currentHash);\n if (!action) break;\n\n chain.push(action);\n\n currentHash = undefined;\n }\n\n return chain;\n }\n\n /**\n * Validate action registration using Zod schema\n */\n private validateRegistration(registration: ActionRegistration): void {\n try {\n validateActionRegistration(registration);\n } catch (error) {\n if (error instanceof ZodError) {\n const firstError = error.errors[0];\n throw new Error(\n `Validation failed: ${firstError.path.join('.')} - ${firstError.message}`,\n );\n }\n throw error;\n }\n }\n\n /**\n * Override sync to handle action-specific processing\n */\n async sync(): Promise<void> {\n await super.sync();\n\n this.actionsByHash.clear();\n for (const entry of this.entries.values()) {\n const action = entry.data as ActionRegistration;\n this.actionsByHash.set(action.hash, action);\n }\n }\n\n /**\n * Override clear cache to also clear action hash index\n */\n clearCache(): void {\n super.clearCache();\n this.actionsByHash.clear();\n }\n}\n"],"names":[],"mappings":"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"}
|