@hashgraphonline/standards-sdk 0.1.187 → 0.1.189

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.
Files changed (196) hide show
  1. package/dist/browser/services/registry-broker/client/agent-network.d.ts +1118 -0
  2. package/dist/browser/services/registry-broker/client/agent-network.d.ts.map +1 -0
  3. package/dist/browser/services/registry-broker/client/base-client.d.ts +4 -0
  4. package/dist/browser/services/registry-broker/client/base-client.d.ts.map +1 -1
  5. package/dist/browser/services/registry-broker/client.d.ts +1 -0
  6. package/dist/browser/services/registry-broker/client.d.ts.map +1 -1
  7. package/dist/browser/standards-sdk.browser.js +176 -0
  8. package/dist/browser/standards-sdk.browser.js.map +1 -1
  9. package/dist/browser-root/services/registry-broker/client/agent-network.d.ts +1118 -0
  10. package/dist/browser-root/services/registry-broker/client/agent-network.d.ts.map +1 -0
  11. package/dist/browser-root/services/registry-broker/client/base-client.d.ts +4 -0
  12. package/dist/browser-root/services/registry-broker/client/base-client.d.ts.map +1 -1
  13. package/dist/browser-root/services/registry-broker/client.d.ts +1 -0
  14. package/dist/browser-root/services/registry-broker/client.d.ts.map +1 -1
  15. package/dist/browser-root/standards-sdk.root-browser.js +471 -15
  16. package/dist/browser-root/standards-sdk.root-browser.js.map +1 -1
  17. package/dist/cjs/services/registry-broker/client/agent-network.d.ts +1118 -0
  18. package/dist/cjs/services/registry-broker/client/agent-network.d.ts.map +1 -0
  19. package/dist/cjs/services/registry-broker/client/base-client.d.ts +4 -0
  20. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  21. package/dist/cjs/services/registry-broker/client.d.ts +1 -0
  22. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  23. package/dist/cjs/standards-sdk.cjs +2 -2
  24. package/dist/cjs/standards-sdk.cjs.map +1 -1
  25. package/dist/es/services/registry-broker/client/agent-network.d.ts +1118 -0
  26. package/dist/es/services/registry-broker/client/agent-network.d.ts.map +1 -0
  27. package/dist/es/services/registry-broker/client/base-client.d.ts +4 -0
  28. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  29. package/dist/es/services/registry-broker/client.d.ts +1 -0
  30. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  31. package/dist/es/standards-sdk.es.js +54 -27
  32. package/dist/es/standards-sdk.es.js.map +1 -1
  33. package/dist/es/standards-sdk.es104.js +1 -1
  34. package/dist/es/standards-sdk.es106.js +1 -1
  35. package/dist/es/standards-sdk.es108.js +1 -1
  36. package/dist/es/standards-sdk.es11.js +1 -1
  37. package/dist/es/standards-sdk.es110.js +1 -1
  38. package/dist/es/standards-sdk.es116.js +2 -2
  39. package/dist/es/standards-sdk.es12.js +1 -1
  40. package/dist/es/standards-sdk.es120.js +4 -4
  41. package/dist/es/standards-sdk.es121.js +11 -11
  42. package/dist/es/standards-sdk.es126.js +1 -1
  43. package/dist/es/standards-sdk.es132.js +3 -2
  44. package/dist/es/standards-sdk.es132.js.map +1 -1
  45. package/dist/es/standards-sdk.es147.js +3 -3
  46. package/dist/es/standards-sdk.es148.js +1 -1
  47. package/dist/es/standards-sdk.es150.js +24 -15
  48. package/dist/es/standards-sdk.es150.js.map +1 -1
  49. package/dist/es/standards-sdk.es152.js +440 -248
  50. package/dist/es/standards-sdk.es152.js.map +1 -1
  51. package/dist/es/standards-sdk.es153.js +259 -4
  52. package/dist/es/standards-sdk.es153.js.map +1 -1
  53. package/dist/es/standards-sdk.es154.js +4 -81
  54. package/dist/es/standards-sdk.es154.js.map +1 -1
  55. package/dist/es/standards-sdk.es155.js +71 -77
  56. package/dist/es/standards-sdk.es155.js.map +1 -1
  57. package/dist/es/standards-sdk.es156.js +80 -53
  58. package/dist/es/standards-sdk.es156.js.map +1 -1
  59. package/dist/es/standards-sdk.es157.js +59 -2546
  60. package/dist/es/standards-sdk.es157.js.map +1 -1
  61. package/dist/es/standards-sdk.es158.js +2547 -159
  62. package/dist/es/standards-sdk.es158.js.map +1 -1
  63. package/dist/es/standards-sdk.es159.js +159 -7
  64. package/dist/es/standards-sdk.es159.js.map +1 -1
  65. package/dist/es/standards-sdk.es16.js +3 -2
  66. package/dist/es/standards-sdk.es16.js.map +1 -1
  67. package/dist/es/standards-sdk.es160.js +7 -86
  68. package/dist/es/standards-sdk.es160.js.map +1 -1
  69. package/dist/es/standards-sdk.es161.js +64 -43
  70. package/dist/es/standards-sdk.es161.js.map +1 -1
  71. package/dist/es/standards-sdk.es162.js +57 -186
  72. package/dist/es/standards-sdk.es162.js.map +1 -1
  73. package/dist/es/standards-sdk.es163.js +188 -20
  74. package/dist/es/standards-sdk.es163.js.map +1 -1
  75. package/dist/es/standards-sdk.es164.js +22 -54
  76. package/dist/es/standards-sdk.es164.js.map +1 -1
  77. package/dist/es/standards-sdk.es165.js +41 -78
  78. package/dist/es/standards-sdk.es165.js.map +1 -1
  79. package/dist/es/standards-sdk.es166.js +81 -35
  80. package/dist/es/standards-sdk.es166.js.map +1 -1
  81. package/dist/es/standards-sdk.es167.js +36 -191
  82. package/dist/es/standards-sdk.es167.js.map +1 -1
  83. package/dist/es/standards-sdk.es168.js +191 -43
  84. package/dist/es/standards-sdk.es168.js.map +1 -1
  85. package/dist/es/standards-sdk.es169.js +46 -39
  86. package/dist/es/standards-sdk.es169.js.map +1 -1
  87. package/dist/es/standards-sdk.es170.js +37 -44
  88. package/dist/es/standards-sdk.es170.js.map +1 -1
  89. package/dist/es/standards-sdk.es171.js +46 -39
  90. package/dist/es/standards-sdk.es171.js.map +1 -1
  91. package/dist/es/standards-sdk.es172.js +29 -102
  92. package/dist/es/standards-sdk.es172.js.map +1 -1
  93. package/dist/es/standards-sdk.es173.js +104 -36
  94. package/dist/es/standards-sdk.es173.js.map +1 -1
  95. package/dist/es/standards-sdk.es174.js +43 -33
  96. package/dist/es/standards-sdk.es174.js.map +1 -1
  97. package/dist/es/standards-sdk.es175.js +44 -72
  98. package/dist/es/standards-sdk.es175.js.map +1 -1
  99. package/dist/es/standards-sdk.es176.js +65 -61
  100. package/dist/es/standards-sdk.es176.js.map +1 -1
  101. package/dist/es/standards-sdk.es177.js +63 -39
  102. package/dist/es/standards-sdk.es177.js.map +1 -1
  103. package/dist/es/standards-sdk.es178.js +44 -36
  104. package/dist/es/standards-sdk.es178.js.map +1 -1
  105. package/dist/es/standards-sdk.es179.js +36 -30
  106. package/dist/es/standards-sdk.es179.js.map +1 -1
  107. package/dist/es/standards-sdk.es18.js +6 -5
  108. package/dist/es/standards-sdk.es18.js.map +1 -1
  109. package/dist/es/standards-sdk.es180.js +30 -34
  110. package/dist/es/standards-sdk.es180.js.map +1 -1
  111. package/dist/es/standards-sdk.es181.js +34 -48
  112. package/dist/es/standards-sdk.es181.js.map +1 -1
  113. package/dist/es/standards-sdk.es182.js +48 -138
  114. package/dist/es/standards-sdk.es182.js.map +1 -1
  115. package/dist/es/standards-sdk.es183.js +133 -37
  116. package/dist/es/standards-sdk.es183.js.map +1 -1
  117. package/dist/es/standards-sdk.es184.js +34 -12474
  118. package/dist/es/standards-sdk.es184.js.map +1 -1
  119. package/dist/es/standards-sdk.es185.js +12425 -615
  120. package/dist/es/standards-sdk.es185.js.map +1 -1
  121. package/dist/es/standards-sdk.es186.js +47 -102
  122. package/dist/es/standards-sdk.es186.js.map +1 -1
  123. package/dist/es/standards-sdk.es187.js +96 -58
  124. package/dist/es/standards-sdk.es187.js.map +1 -1
  125. package/dist/es/standards-sdk.es188.js +73 -48
  126. package/dist/es/standards-sdk.es188.js.map +1 -1
  127. package/dist/es/standards-sdk.es189.js +180 -61
  128. package/dist/es/standards-sdk.es189.js.map +1 -1
  129. package/dist/es/standards-sdk.es19.js +4 -3
  130. package/dist/es/standards-sdk.es19.js.map +1 -1
  131. package/dist/es/standards-sdk.es190.js +659 -187
  132. package/dist/es/standards-sdk.es190.js.map +1 -1
  133. package/dist/es/standards-sdk.es197.js +71 -15
  134. package/dist/es/standards-sdk.es197.js.map +1 -1
  135. package/dist/es/standards-sdk.es198.js +14 -136
  136. package/dist/es/standards-sdk.es198.js.map +1 -1
  137. package/dist/es/standards-sdk.es199.js +104 -482
  138. package/dist/es/standards-sdk.es199.js.map +1 -1
  139. package/dist/es/standards-sdk.es200.js +480 -222
  140. package/dist/es/standards-sdk.es200.js.map +1 -1
  141. package/dist/es/standards-sdk.es201.js +239 -176
  142. package/dist/es/standards-sdk.es201.js.map +1 -1
  143. package/dist/es/standards-sdk.es202.js +178 -101
  144. package/dist/es/standards-sdk.es202.js.map +1 -1
  145. package/dist/es/standards-sdk.es203.js +75 -108
  146. package/dist/es/standards-sdk.es203.js.map +1 -1
  147. package/dist/es/standards-sdk.es204.js +116 -148
  148. package/dist/es/standards-sdk.es204.js.map +1 -1
  149. package/dist/es/standards-sdk.es205.js +146 -646
  150. package/dist/es/standards-sdk.es205.js.map +1 -1
  151. package/dist/es/standards-sdk.es206.js +661 -162
  152. package/dist/es/standards-sdk.es206.js.map +1 -1
  153. package/dist/es/standards-sdk.es207.js +156 -206
  154. package/dist/es/standards-sdk.es207.js.map +1 -1
  155. package/dist/es/standards-sdk.es208.js +219 -223
  156. package/dist/es/standards-sdk.es208.js.map +1 -1
  157. package/dist/es/standards-sdk.es209.js +242 -0
  158. package/dist/es/standards-sdk.es209.js.map +1 -0
  159. package/dist/es/standards-sdk.es22.js +1 -1
  160. package/dist/es/standards-sdk.es27.js +6 -5
  161. package/dist/es/standards-sdk.es27.js.map +1 -1
  162. package/dist/es/standards-sdk.es30.js +1 -1
  163. package/dist/es/standards-sdk.es31.js +1 -1
  164. package/dist/es/standards-sdk.es35.js +4 -3
  165. package/dist/es/standards-sdk.es35.js.map +1 -1
  166. package/dist/es/standards-sdk.es36.js +3 -3
  167. package/dist/es/standards-sdk.es37.js +1 -1
  168. package/dist/es/standards-sdk.es4.js +1 -1
  169. package/dist/es/standards-sdk.es53.js +1 -1
  170. package/dist/es/standards-sdk.es56.js +1 -1
  171. package/dist/es/standards-sdk.es59.js +1 -1
  172. package/dist/es/standards-sdk.es60.js +1 -1
  173. package/dist/es/standards-sdk.es62.js +1 -1
  174. package/dist/es/standards-sdk.es63.js +2 -2
  175. package/dist/es/standards-sdk.es64.js +1 -1
  176. package/dist/es/standards-sdk.es65.js +1 -1
  177. package/dist/es/standards-sdk.es66.js +1 -1
  178. package/dist/es/standards-sdk.es67.js +4 -3
  179. package/dist/es/standards-sdk.es67.js.map +1 -1
  180. package/dist/es/standards-sdk.es69.js +1 -1
  181. package/dist/es/standards-sdk.es7.js +1 -1
  182. package/dist/es/standards-sdk.es71.js +1 -1
  183. package/dist/es/standards-sdk.es72.js +2 -2
  184. package/dist/es/standards-sdk.es75.js +3 -3
  185. package/dist/es/standards-sdk.es76.js +1 -1
  186. package/dist/es/standards-sdk.es78.js +1 -1
  187. package/dist/es/standards-sdk.es83.js +1 -1
  188. package/dist/es/standards-sdk.es84.js +3 -2
  189. package/dist/es/standards-sdk.es84.js.map +1 -1
  190. package/dist/es/standards-sdk.es85.js +1 -1
  191. package/dist/es/standards-sdk.es88.js +1 -1
  192. package/dist/es/standards-sdk.es90.js +1 -1
  193. package/dist/es/standards-sdk.es94.js +3 -3
  194. package/dist/es/standards-sdk.es98.js +1 -1
  195. package/dist/es/standards-sdk.es99.js +1 -1
  196. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es35.js","sources":["../../src/hcs-12/base-client.ts"],"sourcesContent":["import { ILogger, Logger, LogLevel } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HederaMirrorNode, MirrorNodeConfig } from '../services';\nimport { PrivateKey, PublicKey } from '@hashgraph/sdk';\nimport {\n ActionRegistry,\n BlockLoader,\n AssemblyRegistry,\n HashLinksRegistry,\n} from './registries';\nimport {\n ActionRegistration,\n BlockDefinition,\n AssemblyRegistration,\n HashLinksRegistration,\n RegistryType,\n AssemblyState,\n} from './types';\nimport { AssemblyEngine, Assembly } from './assembly';\n\n/**\n * Configuration for HCS-12 client\n */\nexport interface HCS12Config {\n /** The Hedera network to connect to */\n network: NetworkType;\n /** Custom logger instance (if not provided, one will be created) */\n logger?: ILogger;\n /** Log level for the client (ignored if logger is provided) */\n logLevel?: LogLevel;\n /** Whether to pretty print logs (ignored if logger is provided) */\n prettyPrint?: boolean;\n /** Custom mirror node configuration */\n mirrorNode?: MirrorNodeConfig;\n /** Whether to run logger in silent mode (ignored if logger is provided) */\n silent?: boolean;\n /** The key type to use for the operator */\n keyType?: 'ed25519' | 'ecdsa';\n}\n\n/**\n * Abstract base class for HCS-12 HashLinks clients\n */\nexport abstract class HCS12BaseClient {\n protected network: NetworkType;\n protected logger: ILogger;\n public mirrorNode: HederaMirrorNode;\n\n protected _actionRegistry?: ActionRegistry;\n protected _blockLoader?: BlockLoader;\n protected _assemblyRegistry?: AssemblyRegistry;\n protected _hashLinksRegistry?: HashLinksRegistry;\n protected _assemblyEngine?: AssemblyEngine;\n\n protected actionRegistryTopicId?: string;\n protected _assemblyRegistryTopicId?: string;\n protected _hashLinksRegistryTopicId?: string;\n\n constructor(config: HCS12Config) {\n this.network = config.network;\n\n this.logger =\n config.logger ||\n Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS12-BaseClient',\n prettyPrint: config.prettyPrint,\n silent: config.silent,\n });\n\n this.mirrorNode = new HederaMirrorNode(\n config.network,\n this.logger,\n config.mirrorNode,\n );\n }\n\n /**\n * Initialize registries with optional existing topic IDs\n */\n protected initializeRegistries(topicIds?: {\n action?: string;\n assembly?: string;\n hashlinks?: string;\n }): void {\n this.actionRegistryTopicId = topicIds?.action;\n this._assemblyRegistryTopicId = topicIds?.assembly;\n this._hashLinksRegistryTopicId = topicIds?.hashlinks;\n }\n\n /**\n * Create a new HCS topic for a registry\n */\n abstract createRegistryTopic(\n registryType: RegistryType,\n adminKey?: boolean | PublicKey,\n submitKey?: boolean | PublicKey,\n ): Promise<string>;\n\n /**\n * Submit a message to an HCS topic\n */\n abstract submitMessage(\n topicId: string,\n message: string,\n submitKey?: PrivateKey,\n ): Promise<{ transactionId: string; sequenceNumber?: number }>;\n\n /**\n * Register a new assembly in the assembly registry\n */\n async registerAssembly(\n registration: AssemblyRegistration,\n ): Promise<{ id: string; transactionId?: string }> {\n if (!this._assemblyRegistry) {\n throw new Error('Assembly registry not initialized');\n }\n\n const id = await this._assemblyRegistry.register(registration);\n return { id };\n }\n\n /**\n * Get action by hash\n */\n async getAction(hash: string): Promise<ActionRegistration | null> {\n if (!this._actionRegistry) {\n throw new Error('Action registry not initialized');\n }\n\n return this._actionRegistry.getAction(hash);\n }\n\n /**\n * Load block from HCS-1\n */\n async loadBlock(blockTopicId: string): Promise<{\n definition: BlockDefinition;\n template: string;\n }> {\n if (!this._blockLoader) {\n this._blockLoader = new BlockLoader(\n this.network,\n this.logger,\n this as any,\n );\n }\n\n return this._blockLoader.loadBlock(blockTopicId);\n }\n\n /**\n * Get assembly by name and version\n */\n async getAssembly(\n name: string,\n version: string,\n ): Promise<AssemblyState | null> {\n if (!this._assemblyRegistry) {\n throw new Error('Assembly registry not initialized');\n }\n\n const entries = await this._assemblyRegistry.listEntries();\n for (const entry of entries) {\n const state = await this._assemblyRegistry.getAssemblyState(entry.id);\n if (state && state.name === name && state.version === version) {\n return state;\n }\n }\n return null;\n }\n\n /**\n * Load and resolve a complete assembly by topic ID\n */\n async loadAssembly(topicId: string): Promise<Assembly> {\n if (this._actionRegistry) {\n this.logger.info('Syncing action registry before loading assembly');\n await this._actionRegistry.sync();\n }\n\n const assemblyRegistry = new AssemblyRegistry(\n this.network,\n this.logger,\n topicId,\n this as any,\n );\n\n await assemblyRegistry.sync();\n\n const assemblyEngine = new AssemblyEngine(\n this.logger,\n assemblyRegistry,\n this._actionRegistry!,\n this._blockLoader!,\n );\n\n return assemblyEngine.loadAndResolveAssembly(topicId);\n }\n\n /**\n * Get assembly state by topic ID (without resolving references)\n */\n async getAssemblyState(topicId: string): Promise<AssemblyState | null> {\n if (!this._assemblyRegistry) {\n throw new Error('Assembly registry not initialized');\n }\n return this._assemblyRegistry.getAssemblyState(topicId);\n }\n\n /**\n * Ensure assembly engine is initialized\n */\n protected ensureAssemblyEngine(): void {\n if (!this._assemblyEngine) {\n if (\n !this._actionRegistry ||\n !this._blockLoader ||\n !this._assemblyRegistry\n ) {\n throw new Error(\n 'Registries must be initialized before assembly engine',\n );\n }\n this._assemblyEngine = new AssemblyEngine(\n this.logger,\n this._assemblyRegistry,\n this._actionRegistry,\n this._blockLoader,\n );\n }\n }\n\n /**\n * Register a new HashLink in the global directory\n */\n async registerHashLink(\n registration: HashLinksRegistration,\n ): Promise<{ id: string; transactionId?: string }> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n const id = await this._hashLinksRegistry.register(registration);\n return { id };\n }\n\n /**\n * Search HashLinks by tags\n */\n async searchHashLinksByTags(\n tags: string[],\n ): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.searchByTags(tags);\n }\n\n /**\n * Search HashLinks by name\n */\n async searchHashLinksByName(\n searchTerm: string,\n ): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.searchByName(searchTerm);\n }\n\n /**\n * Get featured HashLinks\n */\n async getFeaturedHashLinks(): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.getFeatured();\n }\n\n /**\n * Get HashLinks by category\n */\n async getHashLinksByCategory(\n category: string,\n ): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.getByCategory(category);\n }\n\n /**\n * Sync all registries with the network\n */\n async syncRegistries(): Promise<void> {\n const promises: Promise<void>[] = [];\n\n if (this._actionRegistry) {\n promises.push(this._actionRegistry.sync());\n }\n if (this._assemblyRegistry) {\n promises.push(this._assemblyRegistry.sync());\n }\n if (this._hashLinksRegistry) {\n promises.push(this._hashLinksRegistry.sync());\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Get registry topic IDs\n */\n getRegistryTopicIds(): {\n action?: string;\n assembly?: string;\n hashlinks?: string;\n } {\n return {\n action: this.actionRegistryTopicId,\n assembly: this._assemblyRegistryTopicId,\n hashlinks: this._hashLinksRegistryTopicId,\n };\n }\n\n /**\n * Clear all registry caches\n */\n clearCaches(): void {\n this._actionRegistry?.clearCache();\n this._blockLoader?.clearCache();\n this._assemblyRegistry?.clearCache();\n this._hashLinksRegistry?.clearCache();\n }\n\n /**\n * Get the action registry instance\n */\n get actionRegistry(): ActionRegistry | undefined {\n return this._actionRegistry;\n }\n\n /**\n * Get the block loader instance\n */\n get blockLoader(): BlockLoader | undefined {\n return this._blockLoader;\n }\n\n /**\n * Get the assembly registry instance\n */\n get assemblyRegistry(): AssemblyRegistry | undefined {\n return this._assemblyRegistry;\n }\n\n /**\n * Get the HashLinks registry instance\n */\n get hashLinksRegistry(): HashLinksRegistry | undefined {\n return this._hashLinksRegistry;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es35.js","sources":["../../src/hcs-12/base-client.ts"],"sourcesContent":["import { ILogger, Logger, LogLevel } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HederaMirrorNode, MirrorNodeConfig } from '../services';\nimport { PrivateKey, PublicKey } from '@hashgraph/sdk';\nimport {\n ActionRegistry,\n BlockLoader,\n AssemblyRegistry,\n HashLinksRegistry,\n} from './registries';\nimport {\n ActionRegistration,\n BlockDefinition,\n AssemblyRegistration,\n HashLinksRegistration,\n RegistryType,\n AssemblyState,\n} from './types';\nimport { AssemblyEngine, Assembly } from './assembly';\n\n/**\n * Configuration for HCS-12 client\n */\nexport interface HCS12Config {\n /** The Hedera network to connect to */\n network: NetworkType;\n /** Custom logger instance (if not provided, one will be created) */\n logger?: ILogger;\n /** Log level for the client (ignored if logger is provided) */\n logLevel?: LogLevel;\n /** Whether to pretty print logs (ignored if logger is provided) */\n prettyPrint?: boolean;\n /** Custom mirror node configuration */\n mirrorNode?: MirrorNodeConfig;\n /** Whether to run logger in silent mode (ignored if logger is provided) */\n silent?: boolean;\n /** The key type to use for the operator */\n keyType?: 'ed25519' | 'ecdsa';\n}\n\n/**\n * Abstract base class for HCS-12 HashLinks clients\n */\nexport abstract class HCS12BaseClient {\n protected network: NetworkType;\n protected logger: ILogger;\n public mirrorNode: HederaMirrorNode;\n\n protected _actionRegistry?: ActionRegistry;\n protected _blockLoader?: BlockLoader;\n protected _assemblyRegistry?: AssemblyRegistry;\n protected _hashLinksRegistry?: HashLinksRegistry;\n protected _assemblyEngine?: AssemblyEngine;\n\n protected actionRegistryTopicId?: string;\n protected _assemblyRegistryTopicId?: string;\n protected _hashLinksRegistryTopicId?: string;\n\n constructor(config: HCS12Config) {\n this.network = config.network;\n\n this.logger =\n config.logger ||\n Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS12-BaseClient',\n prettyPrint: config.prettyPrint,\n silent: config.silent,\n });\n\n this.mirrorNode = new HederaMirrorNode(\n config.network,\n this.logger,\n config.mirrorNode,\n );\n }\n\n /**\n * Initialize registries with optional existing topic IDs\n */\n protected initializeRegistries(topicIds?: {\n action?: string;\n assembly?: string;\n hashlinks?: string;\n }): void {\n this.actionRegistryTopicId = topicIds?.action;\n this._assemblyRegistryTopicId = topicIds?.assembly;\n this._hashLinksRegistryTopicId = topicIds?.hashlinks;\n }\n\n /**\n * Create a new HCS topic for a registry\n */\n abstract createRegistryTopic(\n registryType: RegistryType,\n adminKey?: boolean | PublicKey,\n submitKey?: boolean | PublicKey,\n ): Promise<string>;\n\n /**\n * Submit a message to an HCS topic\n */\n abstract submitMessage(\n topicId: string,\n message: string,\n submitKey?: PrivateKey,\n ): Promise<{ transactionId: string; sequenceNumber?: number }>;\n\n /**\n * Register a new assembly in the assembly registry\n */\n async registerAssembly(\n registration: AssemblyRegistration,\n ): Promise<{ id: string; transactionId?: string }> {\n if (!this._assemblyRegistry) {\n throw new Error('Assembly registry not initialized');\n }\n\n const id = await this._assemblyRegistry.register(registration);\n return { id };\n }\n\n /**\n * Get action by hash\n */\n async getAction(hash: string): Promise<ActionRegistration | null> {\n if (!this._actionRegistry) {\n throw new Error('Action registry not initialized');\n }\n\n return this._actionRegistry.getAction(hash);\n }\n\n /**\n * Load block from HCS-1\n */\n async loadBlock(blockTopicId: string): Promise<{\n definition: BlockDefinition;\n template: string;\n }> {\n if (!this._blockLoader) {\n this._blockLoader = new BlockLoader(\n this.network,\n this.logger,\n this as any,\n );\n }\n\n return this._blockLoader.loadBlock(blockTopicId);\n }\n\n /**\n * Get assembly by name and version\n */\n async getAssembly(\n name: string,\n version: string,\n ): Promise<AssemblyState | null> {\n if (!this._assemblyRegistry) {\n throw new Error('Assembly registry not initialized');\n }\n\n const entries = await this._assemblyRegistry.listEntries();\n for (const entry of entries) {\n const state = await this._assemblyRegistry.getAssemblyState(entry.id);\n if (state && state.name === name && state.version === version) {\n return state;\n }\n }\n return null;\n }\n\n /**\n * Load and resolve a complete assembly by topic ID\n */\n async loadAssembly(topicId: string): Promise<Assembly> {\n if (this._actionRegistry) {\n this.logger.info('Syncing action registry before loading assembly');\n await this._actionRegistry.sync();\n }\n\n const assemblyRegistry = new AssemblyRegistry(\n this.network,\n this.logger,\n topicId,\n this as any,\n );\n\n await assemblyRegistry.sync();\n\n const assemblyEngine = new AssemblyEngine(\n this.logger,\n assemblyRegistry,\n this._actionRegistry!,\n this._blockLoader!,\n );\n\n return assemblyEngine.loadAndResolveAssembly(topicId);\n }\n\n /**\n * Get assembly state by topic ID (without resolving references)\n */\n async getAssemblyState(topicId: string): Promise<AssemblyState | null> {\n if (!this._assemblyRegistry) {\n throw new Error('Assembly registry not initialized');\n }\n return this._assemblyRegistry.getAssemblyState(topicId);\n }\n\n /**\n * Ensure assembly engine is initialized\n */\n protected ensureAssemblyEngine(): void {\n if (!this._assemblyEngine) {\n if (\n !this._actionRegistry ||\n !this._blockLoader ||\n !this._assemblyRegistry\n ) {\n throw new Error(\n 'Registries must be initialized before assembly engine',\n );\n }\n this._assemblyEngine = new AssemblyEngine(\n this.logger,\n this._assemblyRegistry,\n this._actionRegistry,\n this._blockLoader,\n );\n }\n }\n\n /**\n * Register a new HashLink in the global directory\n */\n async registerHashLink(\n registration: HashLinksRegistration,\n ): Promise<{ id: string; transactionId?: string }> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n const id = await this._hashLinksRegistry.register(registration);\n return { id };\n }\n\n /**\n * Search HashLinks by tags\n */\n async searchHashLinksByTags(\n tags: string[],\n ): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.searchByTags(tags);\n }\n\n /**\n * Search HashLinks by name\n */\n async searchHashLinksByName(\n searchTerm: string,\n ): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.searchByName(searchTerm);\n }\n\n /**\n * Get featured HashLinks\n */\n async getFeaturedHashLinks(): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.getFeatured();\n }\n\n /**\n * Get HashLinks by category\n */\n async getHashLinksByCategory(\n category: string,\n ): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.getByCategory(category);\n }\n\n /**\n * Sync all registries with the network\n */\n async syncRegistries(): Promise<void> {\n const promises: Promise<void>[] = [];\n\n if (this._actionRegistry) {\n promises.push(this._actionRegistry.sync());\n }\n if (this._assemblyRegistry) {\n promises.push(this._assemblyRegistry.sync());\n }\n if (this._hashLinksRegistry) {\n promises.push(this._hashLinksRegistry.sync());\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Get registry topic IDs\n */\n getRegistryTopicIds(): {\n action?: string;\n assembly?: string;\n hashlinks?: string;\n } {\n return {\n action: this.actionRegistryTopicId,\n assembly: this._assemblyRegistryTopicId,\n hashlinks: this._hashLinksRegistryTopicId,\n };\n }\n\n /**\n * Clear all registry caches\n */\n clearCaches(): void {\n this._actionRegistry?.clearCache();\n this._blockLoader?.clearCache();\n this._assemblyRegistry?.clearCache();\n this._hashLinksRegistry?.clearCache();\n }\n\n /**\n * Get the action registry instance\n */\n get actionRegistry(): ActionRegistry | undefined {\n return this._actionRegistry;\n }\n\n /**\n * Get the block loader instance\n */\n get blockLoader(): BlockLoader | undefined {\n return this._blockLoader;\n }\n\n /**\n * Get the assembly registry instance\n */\n get assemblyRegistry(): AssemblyRegistry | undefined {\n return this._assemblyRegistry;\n }\n\n /**\n * Get the HashLinks registry instance\n */\n get hashLinksRegistry(): HashLinksRegistry | undefined {\n return this._hashLinksRegistry;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { Client } from "@hashgraph/sdk";
2
2
  import { HCS12BaseClient } from "./standards-sdk.es35.js";
3
- import { createNodeOperatorContext } from "./standards-sdk.es182.js";
3
+ import { createNodeOperatorContext } from "./standards-sdk.es183.js";
4
4
  import { RegistryType } from "./standards-sdk.es29.js";
5
5
  import { inscribe } from "./standards-sdk.es147.js";
6
- import { InscriptionSDK } from "./standards-sdk.es184.js";
6
+ import { InscriptionSDK } from "./standards-sdk.es185.js";
7
7
  import { ActionRegistry } from "./standards-sdk.es31.js";
8
8
  import { BlockLoader } from "./standards-sdk.es32.js";
9
9
  import { AssemblyRegistry } from "./standards-sdk.es33.js";
10
10
  import { HashLinksRegistry } from "./standards-sdk.es34.js";
11
11
  import * as mime from "mime-types";
12
- import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es183.js";
12
+ import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es184.js";
13
13
  class HCS12Client extends HCS12BaseClient {
14
14
  constructor(config) {
15
15
  super(config);
@@ -1,5 +1,5 @@
1
1
  import { TopicCreateTransaction, TransactionId, AccountId, PublicKey, KeyList, TopicMessageSubmitTransaction, TopicId } from "@hashgraph/sdk";
2
- import { InscriptionSDK } from "./standards-sdk.es184.js";
2
+ import { InscriptionSDK } from "./standards-sdk.es185.js";
3
3
  import { HCS12BaseClient } from "./standards-sdk.es35.js";
4
4
  import { RegistryType } from "./standards-sdk.es29.js";
5
5
  import { inscribeWithSigner } from "./standards-sdk.es147.js";
@@ -2,7 +2,7 @@ import { HCS6BaseClient } from "./standards-sdk.es6.js";
2
2
  import { buildHcs6Hrl } from "./standards-sdk.es3.js";
3
3
  import { AccountId, Client, TopicMessageSubmitTransaction, TopicId, PrivateKey, PublicKey, TokenMintTransaction, TokenId } from "@hashgraph/sdk";
4
4
  import { buildHcs6CreateRegistryTx } from "./standards-sdk.es7.js";
5
- import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.es182.js";
5
+ import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.es183.js";
6
6
  import { inscribe } from "./standards-sdk.es147.js";
7
7
  class HCS6Client extends HCS6BaseClient {
8
8
  constructor(config) {
@@ -1,4 +1,4 @@
1
- import { buildMessageTx, buildTopicCreateTx } from "./standards-sdk.es183.js";
1
+ import { buildMessageTx, buildTopicCreateTx } from "./standards-sdk.es184.js";
2
2
  function memoForHcs12(registry, ttl) {
3
3
  const typeMap = {
4
4
  action: 0,
@@ -1,5 +1,5 @@
1
1
  import { getCryptoAdapter } from "./standards-sdk.es142.js";
2
- import { base58Encode } from "./standards-sdk.es188.js";
2
+ import { base58Encode } from "./standards-sdk.es186.js";
3
3
  import { canonicalizeAgentData } from "./standards-sdk.es55.js";
4
4
  function encodeMultibaseB58btc(input) {
5
5
  const bytes = Buffer.from(input, "utf8");
@@ -1,7 +1,7 @@
1
1
  import { isUaidProfileResolverAdapter, isDidProfileResolverAdapter, isDidResolverAdapter } from "./standards-sdk.es58.js";
2
2
  import { HieroDidResolver } from "./standards-sdk.es60.js";
3
3
  import { parseHcs14Did } from "./standards-sdk.es56.js";
4
- import { multibaseB58btcDecode } from "./standards-sdk.es188.js";
4
+ import { multibaseB58btcDecode } from "./standards-sdk.es186.js";
5
5
  class ResolverRegistry {
6
6
  constructor() {
7
7
  this.resolvers = [];
@@ -1,4 +1,4 @@
1
- import { optionalImport } from "./standards-sdk.es186.js";
1
+ import { optionalImport } from "./standards-sdk.es187.js";
2
2
  const hieroResolverModuleId = ["@hiero-did-sdk", "resolver"].join("/");
3
3
  let resolverPromise = null;
4
4
  async function loadResolveDID() {
@@ -1,5 +1,5 @@
1
1
  import { nodeDnsTxtLookup } from "./standards-sdk.es66.js";
2
- import { isFqdn, normalizeDomain, parseSemicolonFields } from "./standards-sdk.es189.js";
2
+ import { isFqdn, normalizeDomain, parseSemicolonFields } from "./standards-sdk.es188.js";
3
3
  const AID_DNS_WEB_PROFILE_ID = "hcs-14.profile.aid-dns-web";
4
4
  function buildErrorProfile(uaid, code, message, details) {
5
5
  const error = {
@@ -1,6 +1,6 @@
1
1
  import { nodeDnsTxtLookup } from "./standards-sdk.es66.js";
2
- import { isFqdn, normalizeDomain } from "./standards-sdk.es189.js";
3
- import { normalizeAnsVersion, isValidAnsProfileVersion, parseAnsDnsTxtRecord, toErrorMessage, parseAnsAgentCard, extractEndpointCandidates, selectPreferredEndpoint } from "./standards-sdk.es190.js";
2
+ import { isFqdn, normalizeDomain } from "./standards-sdk.es188.js";
3
+ import { normalizeAnsVersion, isValidAnsProfileVersion, parseAnsDnsTxtRecord, toErrorMessage, parseAnsAgentCard, extractEndpointCandidates, selectPreferredEndpoint } from "./standards-sdk.es189.js";
4
4
  const ANS_DNS_WEB_PROFILE_ID = "hcs-14.profile.ans-dns-web";
5
5
  const UAID_UNSPECIFIED_PARAM_VALUE = "0";
6
6
  function buildErrorProfile(uaid, code, message, details) {
@@ -1,5 +1,5 @@
1
1
  import { nodeDnsTxtLookup } from "./standards-sdk.es66.js";
2
- import { uaidTargetFromParsed, isFqdn, normalizeDomain, buildCanonicalUaid, parseSemicolonFields } from "./standards-sdk.es189.js";
2
+ import { uaidTargetFromParsed, isFqdn, normalizeDomain, buildCanonicalUaid, parseSemicolonFields } from "./standards-sdk.es188.js";
3
3
  import { AID_DNS_WEB_PROFILE_ID } from "./standards-sdk.es62.js";
4
4
  import { ANS_DNS_WEB_PROFILE_ID } from "./standards-sdk.es63.js";
5
5
  import { UAID_DID_RESOLUTION_PROFILE_ID } from "./standards-sdk.es65.js";
@@ -1,4 +1,4 @@
1
- import { multibaseB58btcDecode } from "./standards-sdk.es188.js";
1
+ import { multibaseB58btcDecode } from "./standards-sdk.es186.js";
2
2
  const UAID_DID_RESOLUTION_PROFILE_ID = "hcs-14.profile.uaid-did-resolution";
3
3
  function decodeSrcDid(src) {
4
4
  try {
@@ -1,4 +1,4 @@
1
- import { optionalImport } from "./standards-sdk.es186.js";
1
+ import { optionalImport } from "./standards-sdk.es187.js";
2
2
  let resolveTxtLoader = null;
3
3
  function isNoRecordError(error) {
4
4
  if (!error || typeof error !== "object") {
@@ -18,13 +18,14 @@ import "axios";
18
18
  import "buffer";
19
19
  import "@noble/curves/secp256k1.js";
20
20
  import "zod";
21
- import "./standards-sdk.es157.js";
22
- import "./standards-sdk.es155.js";
21
+ import "./standards-sdk.es158.js";
22
+ import "./standards-sdk.es152.js";
23
+ import "./standards-sdk.es156.js";
23
24
  import "@hashgraph/proto";
24
25
  import "ethers";
25
26
  import "./standards-sdk.es145.js";
26
27
  import "./standards-sdk.es136.js";
27
- import { createNodeOperatorContext } from "./standards-sdk.es182.js";
28
+ import { createNodeOperatorContext } from "./standards-sdk.es183.js";
28
29
  import { HCS10Client } from "./standards-sdk.es18.js";
29
30
  class HCS14Client {
30
31
  constructor(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es67.js","sources":["../../src/hcs-14/sdk.ts"],"sourcesContent":["import {\n CanonicalizationResult,\n CanonicalAgentData,\n DidRoutingParams,\n ParsedHcs14Did,\n} from './types';\nimport { canonicalizeAgentData } from './canonical';\nimport { createUaid as createUaidFn, parseHcs14Did } from './did';\nimport {\n isHederaNetwork,\n isHederaCaip10,\n toHederaCaip10,\n parseHederaCaip10,\n isEip155Caip10,\n toEip155Caip10,\n} from './caip';\nimport {\n ResolverRegistry,\n type ResolveUaidProfileOptions,\n} from './resolvers/registry';\nimport type {\n DidProfileResolver,\n DidResolutionProfile,\n DidResolver,\n ResolverAdapter,\n ResolverAdapterFilterOptions,\n ResolverAdapterRecord,\n UaidProfileResolver,\n} from './resolvers/types';\nimport { HieroDidResolver } from './resolvers/hiero';\nimport { HCS11ProfileResolver } from './resolvers/hcs-11-profile';\nimport {\n AidDnsWebProfileResolver,\n type AidDnsWebResolverOptions,\n} from './resolvers/aid-dns-web-profile';\nimport {\n AnsDnsWebProfileResolver,\n type AnsDnsWebResolverOptions,\n} from './resolvers/ans-dns-web-profile';\nimport {\n UaidDnsWebProfileResolver,\n type UaidDnsWebResolverOptions,\n} from './resolvers/uaid-dns-web-profile';\nimport { UaidDidResolutionProfileResolver } from './resolvers/uaid-did-resolution-profile';\nimport { IssuerRegistry } from './issuers/registry';\nimport { HederaHieroIssuer } from './issuers/hiero';\nimport type { DidIssueRequest } from './issuers/types';\nimport { Client } from '@hashgraph/sdk';\nimport { HCS11Client } from '../hcs-11/client';\nimport { NetworkType, Logger, type ILogger } from '../utils';\nimport { HederaMirrorNode } from '../services';\nimport {\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport { HCS10Client } from '../hcs-10/sdk';\n\n/**\n * HCS-14 SDK client - lightweight facade around AID/UAID helpers and resolver registry.\n */\nexport interface HCS14ClientOptions {\n client?: Client;\n network?: NetworkType;\n operatorId?: string;\n privateKey?: string;\n registry?: ResolverRegistry;\n hcs10Client?: HCS10Client;\n}\n\nexport class HCS14Client {\n private readonly registry: ResolverRegistry;\n private client?: Client;\n private network?: NetworkType;\n private operatorId?: string;\n private operatorPrivateKey?: string;\n private hcs10Client?: HCS10Client;\n private issuers: IssuerRegistry;\n private operatorCtx?: NodeOperatorContext;\n private logger: ILogger;\n\n constructor(options?: HCS14ClientOptions) {\n this.registry = options?.registry ?? new ResolverRegistry();\n this.issuers = new IssuerRegistry();\n this.registerHederaIssuer();\n this.registerHederaResolver();\n this.registerUaidDnsWebProfileResolver();\n this.registerAnsDnsWebProfileResolver();\n this.registerAidDnsWebProfileResolver();\n this.registerUaidDidResolutionProfileResolver();\n this.registerHcs11ProfileResolver();\n this.logger = Logger.getInstance({ module: 'HCS-14' });\n this.client = options?.client;\n this.network = options?.network;\n this.operatorId = options?.operatorId;\n if (\n !this.client &&\n options?.network &&\n options?.operatorId &&\n options?.privateKey\n ) {\n this.configureHederaClient(\n options.network,\n options.operatorId,\n options.privateKey,\n );\n }\n if (options?.privateKey) {\n this.operatorPrivateKey = options.privateKey;\n }\n if (options?.hcs10Client) {\n this.hcs10Client = options.hcs10Client;\n }\n }\n\n configureHederaClient(\n network: NetworkType,\n operatorId: string,\n privateKey: string,\n ): void {\n const ctx = createNodeOperatorContext({\n network,\n operatorId,\n operatorKey: privateKey,\n mirrorNode: new HederaMirrorNode(network),\n logger: this.logger,\n client: Client.forName(network),\n });\n this.operatorCtx = ctx;\n this.client = ctx.client;\n this.network = network;\n this.operatorId = operatorId;\n this.operatorPrivateKey = privateKey;\n }\n\n private async ensureInitializedHedera(): Promise<void> {\n if (!this.operatorCtx) {\n return;\n }\n await this.operatorCtx.ensureInitialized();\n if (!this.operatorId) {\n this.operatorId = this.operatorCtx.operatorId.toString();\n }\n if (!this.operatorPrivateKey) {\n this.operatorPrivateKey = this.operatorCtx.operatorKey.toString();\n }\n if (!this.client) {\n this.client = this.operatorCtx.client;\n }\n }\n\n /**\n * DID issuance adapters\n */\n getIssuerRegistry(): IssuerRegistry {\n return this.issuers;\n }\n\n /** Convenience: list registered issuers with metadata. */\n listIssuers(): ReadonlyArray<import('./issuers/types').DidIssuer> {\n return this.issuers.list();\n }\n\n registerAdapter(adapter: ResolverAdapter): void {\n this.registry.registerAdapter(adapter);\n }\n\n listAdapters(): ReadonlyArray<ResolverAdapterRecord> {\n return this.registry.listAdapters();\n }\n\n filterAdapters(\n options: ResolverAdapterFilterOptions & { capability: 'did-resolver' },\n ): ReadonlyArray<\n Extract<ResolverAdapterRecord, { capability: 'did-resolver' }>\n >;\n filterAdapters(\n options: ResolverAdapterFilterOptions & {\n capability: 'did-profile-resolver';\n },\n ): ReadonlyArray<\n Extract<ResolverAdapterRecord, { capability: 'did-profile-resolver' }>\n >;\n filterAdapters(\n options: ResolverAdapterFilterOptions & {\n capability: 'uaid-profile-resolver';\n },\n ): ReadonlyArray<\n Extract<ResolverAdapterRecord, { capability: 'uaid-profile-resolver' }>\n >;\n filterAdapters(\n options: ResolverAdapterFilterOptions & {\n profileId: string;\n capability?: undefined;\n },\n ): ReadonlyArray<\n Extract<ResolverAdapterRecord, { capability: 'uaid-profile-resolver' }>\n >;\n filterAdapters(\n options: ResolverAdapterFilterOptions = {},\n ): ReadonlyArray<ResolverAdapterRecord> {\n return this.registry.filterAdapters(options);\n }\n\n /** @deprecated Use listAdapters()/filterAdapters() instead. */\n listResolvers(): ReadonlyArray<DidResolver> {\n return this.registry.list();\n }\n\n /** @deprecated Use listAdapters()/filterAdapters() instead. */\n listProfileResolvers(): ReadonlyArray<DidProfileResolver> {\n return this.registry.listProfileResolvers();\n }\n\n /** @deprecated Use listAdapters()/filterAdapters() instead. */\n listUaidProfileResolvers(): ReadonlyArray<UaidProfileResolver> {\n return this.registry.listUaidProfileResolvers();\n }\n\n /** Convenience: filter issuers by DID method. */\n filterIssuersByMethod(method: string) {\n return this.issuers.filterByDidMethod(method);\n }\n\n /** @deprecated Use filterAdapters({ capability: 'did-resolver', didMethod }) instead. */\n filterResolversByMethod(method: string) {\n return this.registry.filterByDidMethod(method);\n }\n\n /** @deprecated Use filterAdapters({ capability: 'did-profile-resolver', didMethod }) instead. */\n filterProfileResolversByMethod(method: string) {\n return this.registry.filterProfileResolversByDidMethod(method);\n }\n\n /** @deprecated Use filterAdapters({ capability: 'uaid-profile-resolver', didMethod }) instead. */\n filterUaidProfileResolversByMethod(method: string) {\n return this.registry.filterUaidProfileResolversByDidMethod(method);\n }\n\n /** @deprecated Use filterAdapters({ capability: 'uaid-profile-resolver', profileId }) instead. */\n filterUaidProfileResolversByProfileId(profileId: string) {\n return this.registry.filterUaidProfileResolversByProfileId(profileId);\n }\n\n registerHederaIssuer(): void {\n this.issuers.register(new HederaHieroIssuer());\n }\n\n async createDid(request: DidIssueRequest): Promise<string> {\n return this.issuers.issue(request);\n }\n\n canonicalizeAgentData(input: unknown): CanonicalizationResult {\n return canonicalizeAgentData(input);\n }\n\n createUaid(existingDid: string, params?: DidRoutingParams): string;\n createUaid(\n input: CanonicalAgentData | string,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n ): Promise<string> | string {\n if (typeof input === 'string') {\n return createUaidFn(input, params);\n }\n return createUaidFn(input, params, options);\n }\n\n parseHcs14Did(did: string): ParsedHcs14Did {\n return parseHcs14Did(did);\n }\n\n isHederaNetwork(value: string): boolean {\n return isHederaNetwork(value);\n }\n isHederaCaip10(value: string): boolean {\n return isHederaCaip10(value);\n }\n toHederaCaip10(\n network: Parameters<typeof toHederaCaip10>[0],\n accountId: string,\n ): string {\n return toHederaCaip10(network, accountId);\n }\n parseHederaCaip10(value: string): {\n network: Parameters<typeof toHederaCaip10>[0];\n accountId: string;\n } {\n return parseHederaCaip10(value);\n }\n isEip155Caip10(value: string): boolean {\n return isEip155Caip10(value);\n }\n toEip155Caip10(chainId: number | string, address: string): string {\n return toEip155Caip10(chainId, address);\n }\n\n getResolverRegistry(): ResolverRegistry {\n return this.registry;\n }\n\n /** @deprecated Use registerAdapter() instead. */\n registerProfileResolver(resolver: DidProfileResolver): void {\n this.registry.registerProfileResolver(resolver);\n }\n\n /** @deprecated Use registerAdapter() instead. */\n registerUaidProfileResolver(resolver: UaidProfileResolver): void {\n this.registry.registerUaidProfileResolver(resolver);\n }\n\n registerHederaResolver(): void {\n this.registry.registerAdapter(new HieroDidResolver());\n }\n\n registerHcs11ProfileResolver(): void {\n this.registry.registerAdapter(new HCS11ProfileResolver());\n }\n\n registerUaidDidResolutionProfileResolver(): void {\n this.registry.registerAdapter(new UaidDidResolutionProfileResolver());\n }\n\n registerAidDnsWebProfileResolver(options?: AidDnsWebResolverOptions): void {\n this.registry.registerAdapter(new AidDnsWebProfileResolver(options));\n }\n\n registerAnsDnsWebProfileResolver(options?: AnsDnsWebResolverOptions): void {\n this.registry.registerAdapter(new AnsDnsWebProfileResolver(options));\n }\n\n registerUaidDnsWebProfileResolver(options?: UaidDnsWebResolverOptions): void {\n this.registry.registerAdapter(new UaidDnsWebProfileResolver(options));\n }\n\n async resolveDidProfile(did: string): Promise<DidResolutionProfile> {\n return this.registry.resolveDidProfile(did);\n }\n\n async resolveUaidProfile(\n uaid: string,\n options?: ResolveUaidProfileOptions,\n ): Promise<DidResolutionProfile | null> {\n return this.registry.resolveUaidProfile(uaid, options);\n }\n\n /**\n * Issue a DID via adapters and immediately wrap as UAID with routing params.\n * For Hedera + proto=hcs-10, nativeId and uid are derived when possible.\n */\n async createDidWithUaid(options: {\n issue: DidIssueRequest;\n uid?: string;\n proto?: string;\n nativeId?: string;\n }): Promise<{ did: string; uaid: string; parsed: ParsedHcs14Did }> {\n const did = await this.createDid(options.issue);\n let uid = options.uid;\n const proto = options.proto;\n let nativeId = options.nativeId;\n\n const isHedera = options.issue.method === 'hedera';\n if (isHedera) {\n await this.ensureInitializedHedera();\n if (!nativeId) {\n if (!this.network || !this.operatorId) {\n throw new Error(\n 'nativeId not provided and network/operatorId are not configured',\n );\n }\n nativeId = toHederaCaip10(this.network, this.operatorId);\n }\n if (!uid && proto === 'hcs-10' && this.network && this.operatorId) {\n try {\n if (!this.hcs10Client && this.operatorPrivateKey) {\n this.hcs10Client = new HCS10Client({\n network: this.network,\n operatorId: this.operatorId,\n operatorPrivateKey: this.operatorPrivateKey,\n silent: true,\n });\n }\n if (this.hcs10Client) {\n uid = await this.hcs10Client.getOperatorId();\n } else {\n const h11 = new HCS11Client({\n network: this.network,\n auth: { operatorId: this.operatorId },\n silent: true,\n });\n const fetched = await h11.fetchProfileByAccountId(\n this.operatorId,\n this.network,\n );\n const inbound = fetched?.topicInfo?.inboundTopic;\n uid = inbound ? `${inbound}@${this.operatorId}` : this.operatorId;\n }\n } catch {\n uid = this.operatorId;\n }\n }\n }\n\n uid = uid ?? '0';\n const uaid = this.createUaid(did, {\n uid,\n proto,\n nativeId,\n });\n const parsed = parseHcs14Did(uaid);\n return { did, uaid, parsed };\n }\n}\n\nexport type {\n CanonicalizationResult,\n CanonicalAgentData,\n DidRoutingParams,\n ParsedHcs14Did,\n};\n"],"names":["createUaidFn"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es67.js","sources":["../../src/hcs-14/sdk.ts"],"sourcesContent":["import {\n CanonicalizationResult,\n CanonicalAgentData,\n DidRoutingParams,\n ParsedHcs14Did,\n} from './types';\nimport { canonicalizeAgentData } from './canonical';\nimport { createUaid as createUaidFn, parseHcs14Did } from './did';\nimport {\n isHederaNetwork,\n isHederaCaip10,\n toHederaCaip10,\n parseHederaCaip10,\n isEip155Caip10,\n toEip155Caip10,\n} from './caip';\nimport {\n ResolverRegistry,\n type ResolveUaidProfileOptions,\n} from './resolvers/registry';\nimport type {\n DidProfileResolver,\n DidResolutionProfile,\n DidResolver,\n ResolverAdapter,\n ResolverAdapterFilterOptions,\n ResolverAdapterRecord,\n UaidProfileResolver,\n} from './resolvers/types';\nimport { HieroDidResolver } from './resolvers/hiero';\nimport { HCS11ProfileResolver } from './resolvers/hcs-11-profile';\nimport {\n AidDnsWebProfileResolver,\n type AidDnsWebResolverOptions,\n} from './resolvers/aid-dns-web-profile';\nimport {\n AnsDnsWebProfileResolver,\n type AnsDnsWebResolverOptions,\n} from './resolvers/ans-dns-web-profile';\nimport {\n UaidDnsWebProfileResolver,\n type UaidDnsWebResolverOptions,\n} from './resolvers/uaid-dns-web-profile';\nimport { UaidDidResolutionProfileResolver } from './resolvers/uaid-did-resolution-profile';\nimport { IssuerRegistry } from './issuers/registry';\nimport { HederaHieroIssuer } from './issuers/hiero';\nimport type { DidIssueRequest } from './issuers/types';\nimport { Client } from '@hashgraph/sdk';\nimport { HCS11Client } from '../hcs-11/client';\nimport { NetworkType, Logger, type ILogger } from '../utils';\nimport { HederaMirrorNode } from '../services';\nimport {\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport { HCS10Client } from '../hcs-10/sdk';\n\n/**\n * HCS-14 SDK client - lightweight facade around AID/UAID helpers and resolver registry.\n */\nexport interface HCS14ClientOptions {\n client?: Client;\n network?: NetworkType;\n operatorId?: string;\n privateKey?: string;\n registry?: ResolverRegistry;\n hcs10Client?: HCS10Client;\n}\n\nexport class HCS14Client {\n private readonly registry: ResolverRegistry;\n private client?: Client;\n private network?: NetworkType;\n private operatorId?: string;\n private operatorPrivateKey?: string;\n private hcs10Client?: HCS10Client;\n private issuers: IssuerRegistry;\n private operatorCtx?: NodeOperatorContext;\n private logger: ILogger;\n\n constructor(options?: HCS14ClientOptions) {\n this.registry = options?.registry ?? new ResolverRegistry();\n this.issuers = new IssuerRegistry();\n this.registerHederaIssuer();\n this.registerHederaResolver();\n this.registerUaidDnsWebProfileResolver();\n this.registerAnsDnsWebProfileResolver();\n this.registerAidDnsWebProfileResolver();\n this.registerUaidDidResolutionProfileResolver();\n this.registerHcs11ProfileResolver();\n this.logger = Logger.getInstance({ module: 'HCS-14' });\n this.client = options?.client;\n this.network = options?.network;\n this.operatorId = options?.operatorId;\n if (\n !this.client &&\n options?.network &&\n options?.operatorId &&\n options?.privateKey\n ) {\n this.configureHederaClient(\n options.network,\n options.operatorId,\n options.privateKey,\n );\n }\n if (options?.privateKey) {\n this.operatorPrivateKey = options.privateKey;\n }\n if (options?.hcs10Client) {\n this.hcs10Client = options.hcs10Client;\n }\n }\n\n configureHederaClient(\n network: NetworkType,\n operatorId: string,\n privateKey: string,\n ): void {\n const ctx = createNodeOperatorContext({\n network,\n operatorId,\n operatorKey: privateKey,\n mirrorNode: new HederaMirrorNode(network),\n logger: this.logger,\n client: Client.forName(network),\n });\n this.operatorCtx = ctx;\n this.client = ctx.client;\n this.network = network;\n this.operatorId = operatorId;\n this.operatorPrivateKey = privateKey;\n }\n\n private async ensureInitializedHedera(): Promise<void> {\n if (!this.operatorCtx) {\n return;\n }\n await this.operatorCtx.ensureInitialized();\n if (!this.operatorId) {\n this.operatorId = this.operatorCtx.operatorId.toString();\n }\n if (!this.operatorPrivateKey) {\n this.operatorPrivateKey = this.operatorCtx.operatorKey.toString();\n }\n if (!this.client) {\n this.client = this.operatorCtx.client;\n }\n }\n\n /**\n * DID issuance adapters\n */\n getIssuerRegistry(): IssuerRegistry {\n return this.issuers;\n }\n\n /** Convenience: list registered issuers with metadata. */\n listIssuers(): ReadonlyArray<import('./issuers/types').DidIssuer> {\n return this.issuers.list();\n }\n\n registerAdapter(adapter: ResolverAdapter): void {\n this.registry.registerAdapter(adapter);\n }\n\n listAdapters(): ReadonlyArray<ResolverAdapterRecord> {\n return this.registry.listAdapters();\n }\n\n filterAdapters(\n options: ResolverAdapterFilterOptions & { capability: 'did-resolver' },\n ): ReadonlyArray<\n Extract<ResolverAdapterRecord, { capability: 'did-resolver' }>\n >;\n filterAdapters(\n options: ResolverAdapterFilterOptions & {\n capability: 'did-profile-resolver';\n },\n ): ReadonlyArray<\n Extract<ResolverAdapterRecord, { capability: 'did-profile-resolver' }>\n >;\n filterAdapters(\n options: ResolverAdapterFilterOptions & {\n capability: 'uaid-profile-resolver';\n },\n ): ReadonlyArray<\n Extract<ResolverAdapterRecord, { capability: 'uaid-profile-resolver' }>\n >;\n filterAdapters(\n options: ResolverAdapterFilterOptions & {\n profileId: string;\n capability?: undefined;\n },\n ): ReadonlyArray<\n Extract<ResolverAdapterRecord, { capability: 'uaid-profile-resolver' }>\n >;\n filterAdapters(\n options: ResolverAdapterFilterOptions = {},\n ): ReadonlyArray<ResolverAdapterRecord> {\n return this.registry.filterAdapters(options);\n }\n\n /** @deprecated Use listAdapters()/filterAdapters() instead. */\n listResolvers(): ReadonlyArray<DidResolver> {\n return this.registry.list();\n }\n\n /** @deprecated Use listAdapters()/filterAdapters() instead. */\n listProfileResolvers(): ReadonlyArray<DidProfileResolver> {\n return this.registry.listProfileResolvers();\n }\n\n /** @deprecated Use listAdapters()/filterAdapters() instead. */\n listUaidProfileResolvers(): ReadonlyArray<UaidProfileResolver> {\n return this.registry.listUaidProfileResolvers();\n }\n\n /** Convenience: filter issuers by DID method. */\n filterIssuersByMethod(method: string) {\n return this.issuers.filterByDidMethod(method);\n }\n\n /** @deprecated Use filterAdapters({ capability: 'did-resolver', didMethod }) instead. */\n filterResolversByMethod(method: string) {\n return this.registry.filterByDidMethod(method);\n }\n\n /** @deprecated Use filterAdapters({ capability: 'did-profile-resolver', didMethod }) instead. */\n filterProfileResolversByMethod(method: string) {\n return this.registry.filterProfileResolversByDidMethod(method);\n }\n\n /** @deprecated Use filterAdapters({ capability: 'uaid-profile-resolver', didMethod }) instead. */\n filterUaidProfileResolversByMethod(method: string) {\n return this.registry.filterUaidProfileResolversByDidMethod(method);\n }\n\n /** @deprecated Use filterAdapters({ capability: 'uaid-profile-resolver', profileId }) instead. */\n filterUaidProfileResolversByProfileId(profileId: string) {\n return this.registry.filterUaidProfileResolversByProfileId(profileId);\n }\n\n registerHederaIssuer(): void {\n this.issuers.register(new HederaHieroIssuer());\n }\n\n async createDid(request: DidIssueRequest): Promise<string> {\n return this.issuers.issue(request);\n }\n\n canonicalizeAgentData(input: unknown): CanonicalizationResult {\n return canonicalizeAgentData(input);\n }\n\n createUaid(existingDid: string, params?: DidRoutingParams): string;\n createUaid(\n input: CanonicalAgentData | string,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n ): Promise<string> | string {\n if (typeof input === 'string') {\n return createUaidFn(input, params);\n }\n return createUaidFn(input, params, options);\n }\n\n parseHcs14Did(did: string): ParsedHcs14Did {\n return parseHcs14Did(did);\n }\n\n isHederaNetwork(value: string): boolean {\n return isHederaNetwork(value);\n }\n isHederaCaip10(value: string): boolean {\n return isHederaCaip10(value);\n }\n toHederaCaip10(\n network: Parameters<typeof toHederaCaip10>[0],\n accountId: string,\n ): string {\n return toHederaCaip10(network, accountId);\n }\n parseHederaCaip10(value: string): {\n network: Parameters<typeof toHederaCaip10>[0];\n accountId: string;\n } {\n return parseHederaCaip10(value);\n }\n isEip155Caip10(value: string): boolean {\n return isEip155Caip10(value);\n }\n toEip155Caip10(chainId: number | string, address: string): string {\n return toEip155Caip10(chainId, address);\n }\n\n getResolverRegistry(): ResolverRegistry {\n return this.registry;\n }\n\n /** @deprecated Use registerAdapter() instead. */\n registerProfileResolver(resolver: DidProfileResolver): void {\n this.registry.registerProfileResolver(resolver);\n }\n\n /** @deprecated Use registerAdapter() instead. */\n registerUaidProfileResolver(resolver: UaidProfileResolver): void {\n this.registry.registerUaidProfileResolver(resolver);\n }\n\n registerHederaResolver(): void {\n this.registry.registerAdapter(new HieroDidResolver());\n }\n\n registerHcs11ProfileResolver(): void {\n this.registry.registerAdapter(new HCS11ProfileResolver());\n }\n\n registerUaidDidResolutionProfileResolver(): void {\n this.registry.registerAdapter(new UaidDidResolutionProfileResolver());\n }\n\n registerAidDnsWebProfileResolver(options?: AidDnsWebResolverOptions): void {\n this.registry.registerAdapter(new AidDnsWebProfileResolver(options));\n }\n\n registerAnsDnsWebProfileResolver(options?: AnsDnsWebResolverOptions): void {\n this.registry.registerAdapter(new AnsDnsWebProfileResolver(options));\n }\n\n registerUaidDnsWebProfileResolver(options?: UaidDnsWebResolverOptions): void {\n this.registry.registerAdapter(new UaidDnsWebProfileResolver(options));\n }\n\n async resolveDidProfile(did: string): Promise<DidResolutionProfile> {\n return this.registry.resolveDidProfile(did);\n }\n\n async resolveUaidProfile(\n uaid: string,\n options?: ResolveUaidProfileOptions,\n ): Promise<DidResolutionProfile | null> {\n return this.registry.resolveUaidProfile(uaid, options);\n }\n\n /**\n * Issue a DID via adapters and immediately wrap as UAID with routing params.\n * For Hedera + proto=hcs-10, nativeId and uid are derived when possible.\n */\n async createDidWithUaid(options: {\n issue: DidIssueRequest;\n uid?: string;\n proto?: string;\n nativeId?: string;\n }): Promise<{ did: string; uaid: string; parsed: ParsedHcs14Did }> {\n const did = await this.createDid(options.issue);\n let uid = options.uid;\n const proto = options.proto;\n let nativeId = options.nativeId;\n\n const isHedera = options.issue.method === 'hedera';\n if (isHedera) {\n await this.ensureInitializedHedera();\n if (!nativeId) {\n if (!this.network || !this.operatorId) {\n throw new Error(\n 'nativeId not provided and network/operatorId are not configured',\n );\n }\n nativeId = toHederaCaip10(this.network, this.operatorId);\n }\n if (!uid && proto === 'hcs-10' && this.network && this.operatorId) {\n try {\n if (!this.hcs10Client && this.operatorPrivateKey) {\n this.hcs10Client = new HCS10Client({\n network: this.network,\n operatorId: this.operatorId,\n operatorPrivateKey: this.operatorPrivateKey,\n silent: true,\n });\n }\n if (this.hcs10Client) {\n uid = await this.hcs10Client.getOperatorId();\n } else {\n const h11 = new HCS11Client({\n network: this.network,\n auth: { operatorId: this.operatorId },\n silent: true,\n });\n const fetched = await h11.fetchProfileByAccountId(\n this.operatorId,\n this.network,\n );\n const inbound = fetched?.topicInfo?.inboundTopic;\n uid = inbound ? `${inbound}@${this.operatorId}` : this.operatorId;\n }\n } catch {\n uid = this.operatorId;\n }\n }\n }\n\n uid = uid ?? '0';\n const uaid = this.createUaid(did, {\n uid,\n proto,\n nativeId,\n });\n const parsed = parseHcs14Did(uaid);\n return { did, uaid, parsed };\n }\n}\n\nexport type {\n CanonicalizationResult,\n CanonicalAgentData,\n DidRoutingParams,\n ParsedHcs14Did,\n};\n"],"names":["createUaidFn"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { optionalImport } from "./standards-sdk.es186.js";
1
+ import { optionalImport } from "./standards-sdk.es187.js";
2
2
  const hieroRegistrarModuleId = ["@hiero-did-sdk", "registrar"].join("/");
3
3
  let registrarPromise = null;
4
4
  function toAccountIdString(value) {
@@ -1,4 +1,4 @@
1
- import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es183.js";
1
+ import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es184.js";
2
2
  import { HCS6Operation } from "./standards-sdk.es3.js";
3
3
  function encodeHcs6NonIndexedMemo(ttl) {
4
4
  return `hcs-6:1:${ttl}`;
@@ -1,4 +1,4 @@
1
- import { HCS5BaseClient } from "./standards-sdk.es197.js";
1
+ import { HCS5BaseClient } from "./standards-sdk.es198.js";
2
2
  import { buildHcs1Hrl } from "./standards-sdk.es70.js";
3
3
  import { PrivateKey } from "@hashgraph/sdk";
4
4
  import { inscribeWithSigner } from "./standards-sdk.es147.js";
@@ -1,9 +1,9 @@
1
- import { HCS5BaseClient } from "./standards-sdk.es197.js";
1
+ import { HCS5BaseClient } from "./standards-sdk.es198.js";
2
2
  import { buildHcs1Hrl } from "./standards-sdk.es70.js";
3
3
  import { AccountId } from "@hashgraph/sdk";
4
4
  import { inscribe } from "./standards-sdk.es147.js";
5
5
  import { buildHcs5MintTx } from "./standards-sdk.es73.js";
6
- import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.es182.js";
6
+ import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.es183.js";
7
7
  class HCS5Client extends HCS5BaseClient {
8
8
  constructor(config) {
9
9
  super(config);
@@ -2,11 +2,11 @@ import { AccountId, Client, PublicKey } from "@hashgraph/sdk";
2
2
  import { randomUUID } from "crypto";
3
3
  import { HCS2BaseClient } from "./standards-sdk.es77.js";
4
4
  import { HCS2Operation, HCS2RegistryType } from "./standards-sdk.es74.js";
5
- import { createNodeOperatorContext } from "./standards-sdk.es182.js";
6
- import { buildMessageTx } from "./standards-sdk.es183.js";
5
+ import { createNodeOperatorContext } from "./standards-sdk.es183.js";
6
+ import { buildMessageTx } from "./standards-sdk.es184.js";
7
7
  import { buildHcs2CreateRegistryTx } from "./standards-sdk.es78.js";
8
8
  import { inscribe } from "./standards-sdk.es147.js";
9
- import { InscriptionSDK } from "./standards-sdk.es184.js";
9
+ import { InscriptionSDK } from "./standards-sdk.es185.js";
10
10
  import { getTopicId } from "./standards-sdk.es137.js";
11
11
  const MAX_PAYLOAD_BYTES = 1024;
12
12
  const HCS1_HRL_PATTERN = /^hcs:\/\/1\/(\d+\.\d+\.\d+)$/;
@@ -3,7 +3,7 @@ import { HCS2BaseClient } from "./standards-sdk.es77.js";
3
3
  import { HCS2RegistryType, HCS2Operation } from "./standards-sdk.es74.js";
4
4
  import { isBrowser } from "./standards-sdk.es141.js";
5
5
  import { KeyTypeDetector } from "./standards-sdk.es136.js";
6
- import { buildMessageTx } from "./standards-sdk.es183.js";
6
+ import { buildMessageTx } from "./standards-sdk.es184.js";
7
7
  class BrowserHCS2Client extends HCS2BaseClient {
8
8
  /**
9
9
  * Create a new browser HCS-2 client
@@ -1,4 +1,4 @@
1
- import { buildTopicCreateTx, buildMessageTx, encodeHcs2RegistryMemo } from "./standards-sdk.es183.js";
1
+ import { buildTopicCreateTx, buildMessageTx, encodeHcs2RegistryMemo } from "./standards-sdk.es184.js";
2
2
  import { HCS2Operation } from "./standards-sdk.es74.js";
3
3
  function buildHcs2CreateRegistryTx(params) {
4
4
  const memo = params.memoOverride ?? encodeHcs2RegistryMemo(params.registryType, params.ttl);
@@ -2,7 +2,7 @@ import { AccountId, Client, Status, TopicCreateTransaction } from "@hashgraph/sd
2
2
  import { HCS20BaseClient } from "./standards-sdk.es81.js";
3
3
  import { PointsDeploymentError, PointsValidationError, PointsTransferError, PointsBurnError } from "./standards-sdk.es80.js";
4
4
  import { sleep } from "./standards-sdk.es138.js";
5
- import { createNodeOperatorContext } from "./standards-sdk.es182.js";
5
+ import { createNodeOperatorContext } from "./standards-sdk.es183.js";
6
6
  import { HCS2Client } from "./standards-sdk.es75.js";
7
7
  import { buildHcs20DeployTx, buildHcs20MintTx, buildHcs20TransferTx, buildHcs20BurnTx, buildHcs20RegisterTx } from "./standards-sdk.es85.js";
8
8
  class HCS20Client extends HCS20BaseClient {
@@ -3,8 +3,9 @@ import { HederaMirrorNode } from "./standards-sdk.es149.js";
3
3
  import "buffer";
4
4
  import "@noble/curves/secp256k1.js";
5
5
  import "zod";
6
- import "./standards-sdk.es157.js";
7
- import "./standards-sdk.es155.js";
6
+ import "./standards-sdk.es158.js";
7
+ import "./standards-sdk.es152.js";
8
+ import "./standards-sdk.es156.js";
8
9
  import { HCS20_CONSTANTS, HCS20MessageSchema } from "./standards-sdk.es79.js";
9
10
  class HCS20PointsIndexer {
10
11
  constructor(network, logger, mirrorNodeUrl) {
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es84.js","sources":["../../src/hcs-20/points-indexer.ts"],"sourcesContent":["/**\n * HCS-20 Points Indexer for state calculation\n * Handles async processing of HCS messages to build points state.\n * With larger topics, we do not recommend using this indexer, and\n * instead utilizing more scalable, database or redis based solutions.\n */\n\nimport { Logger } from '../utils/logger';\nimport { HederaMirrorNode } from '../services';\nimport { NetworkType } from '../utils/types';\nimport {\n PointsState,\n PointsInfo,\n HCS20Message,\n HCS20DeployMessage,\n HCS20MintMessage,\n HCS20TransferMessage,\n HCS20BurnMessage,\n HCS20_CONSTANTS,\n HCS20MessageSchema,\n} from './types';\n\ninterface TopicMessageMeta {\n consensus_timestamp: string;\n sequence_number: number;\n payer_account_id: string;\n transaction_id: string;\n}\n\n/**\n * HCS-20 Points Indexer for processing and maintaining points state\n */\nexport class HCS20PointsIndexer {\n private logger: Logger;\n private mirrorNode: HederaMirrorNode;\n private state: PointsState;\n private isProcessing: boolean = false;\n private lastIndexedSequence: Map<string, number> = new Map();\n\n constructor(network: NetworkType, logger?: Logger, mirrorNodeUrl?: string) {\n this.logger =\n logger ||\n new Logger({\n level: 'info',\n module: 'HCS20PointsIndexer',\n });\n this.mirrorNode = new HederaMirrorNode(network, this.logger, {\n customUrl: mirrorNodeUrl,\n });\n this.state = this.initializeState();\n }\n\n /**\n * Initialize empty state\n */\n private initializeState(): PointsState {\n return {\n deployedPoints: new Map(),\n balances: new Map(),\n transactions: [],\n lastProcessedSequence: 0,\n lastProcessedTimestamp: new Date().toISOString(),\n };\n }\n\n /**\n * Get current state snapshot\n */\n getState(): PointsState {\n return {\n ...this.state,\n deployedPoints: new Map(this.state.deployedPoints),\n balances: new Map(this.state.balances),\n transactions: [...this.state.transactions],\n };\n }\n\n /**\n * Get points info for a specific tick\n */\n getPointsInfo(tick: string): PointsInfo | undefined {\n return this.state.deployedPoints.get(this.normalizeTick(tick));\n }\n\n /**\n * Get balance for an account and tick\n */\n getBalance(tick: string, accountId: string): string {\n const normalizedTick = this.normalizeTick(tick);\n const tickBalances = this.state.balances.get(normalizedTick);\n if (!tickBalances) return '0';\n const balance = tickBalances.get(accountId);\n return balance?.balance || '0';\n }\n\n /**\n * Start indexing process\n */\n async startIndexing(options?: {\n publicTopicId?: string;\n registryTopicId?: string;\n includePublicTopic?: boolean;\n includeRegistryTopic?: boolean;\n privateTopics?: string[];\n pollInterval?: number;\n }): Promise<void> {\n if (this.isProcessing) {\n this.logger.warn('Indexing already in progress');\n return;\n }\n\n this.isProcessing = true;\n const includePublicTopic = options?.includePublicTopic !== false;\n const includeRegistryTopic = options?.includeRegistryTopic !== false;\n const publicTopicId = includePublicTopic\n ? options?.publicTopicId || HCS20_CONSTANTS.PUBLIC_TOPIC_ID\n : null;\n const registryTopicId = includeRegistryTopic\n ? options?.registryTopicId || HCS20_CONSTANTS.REGISTRY_TOPIC_ID\n : null;\n const pollInterval = options?.pollInterval || 30000;\n\n await this.indexTopics(\n publicTopicId,\n registryTopicId,\n options?.privateTopics,\n );\n\n const pollTopics = async () => {\n if (!this.isProcessing) return;\n try {\n await this.indexTopics(\n publicTopicId,\n registryTopicId,\n options?.privateTopics,\n );\n } catch (error) {\n this.logger.error('Polling error:', error);\n }\n if (this.isProcessing) {\n setTimeout(pollTopics, pollInterval);\n }\n };\n\n setTimeout(pollTopics, pollInterval);\n }\n\n /**\n * Index topics once and wait for completion\n */\n async indexOnce(options?: {\n publicTopicId?: string;\n registryTopicId?: string;\n includePublicTopic?: boolean;\n includeRegistryTopic?: boolean;\n privateTopics?: string[];\n }): Promise<void> {\n const includePublicTopic = options?.includePublicTopic !== false;\n const includeRegistryTopic = options?.includeRegistryTopic !== false;\n const publicTopicId = includePublicTopic\n ? options?.publicTopicId || HCS20_CONSTANTS.PUBLIC_TOPIC_ID\n : null;\n const registryTopicId = includeRegistryTopic\n ? options?.registryTopicId || HCS20_CONSTANTS.REGISTRY_TOPIC_ID\n : null;\n\n await this.indexTopics(\n publicTopicId,\n registryTopicId,\n options?.privateTopics,\n );\n }\n\n /**\n * Stop indexing process\n */\n stopIndexing(): void {\n this.isProcessing = false;\n this.logger.info('Indexing stopped');\n }\n\n /**\n * Index topics and update state\n */\n private async indexTopics(\n publicTopicId: string | null,\n registryTopicId: string | null,\n privateTopics?: string[],\n ): Promise<void> {\n this.logger.debug('Starting indexing cycle');\n if (publicTopicId) {\n await this.indexTopic(publicTopicId, false);\n }\n const registeredTopics = registryTopicId\n ? await this.getRegisteredTopics(registryTopicId)\n : [];\n const topicsToIndex = [...registeredTopics, ...(privateTopics || [])];\n for (const topicId of topicsToIndex) {\n await this.indexTopic(topicId, true);\n }\n\n this.logger.debug('Indexing cycle complete');\n }\n\n /**\n * Get registered topics from registry\n */\n private async getRegisteredTopics(\n registryTopicId: string,\n ): Promise<string[]> {\n const topics: string[] = [];\n try {\n const messages = await this.mirrorNode.getTopicMessages(registryTopicId, {\n limit: 100,\n order: 'asc',\n });\n\n messages\n .filter(\n message =>\n message.p === 'hcs-20' &&\n message.op === 'register' &&\n typeof message.t_id === 'string',\n )\n .forEach(message => {\n topics.push(message.t_id as string);\n });\n } catch (error) {\n this.logger.error('Failed to fetch registry messages:', error);\n }\n return topics;\n }\n\n /**\n * Index a single topic\n */\n private async indexTopic(topicId: string, isPrivate: boolean): Promise<void> {\n try {\n const lastSequence = this.lastIndexedSequence.get(topicId);\n this.logger.debug(\n `Indexing topic ${topicId}, starting from sequence ${lastSequence || 0}`,\n );\n\n const messages = await this.mirrorNode.getTopicMessages(topicId, {\n sequenceNumber: lastSequence ? lastSequence + 1 : undefined,\n limit: 1000,\n order: 'asc',\n });\n\n this.logger.debug(\n `Fetched ${messages.length} messages from topic ${topicId}`,\n );\n\n let maxSequence = lastSequence || 0;\n\n for (const message of messages) {\n if (message.p !== 'hcs-20') {\n continue;\n }\n\n const parseResult = HCS20MessageSchema.safeParse(message);\n if (!parseResult.success) {\n this.logger.debug('Skipping message due to schema mismatch');\n continue;\n }\n\n const parsedMsg = parseResult.data;\n const sequenceNumber = message.sequence_number ?? 0;\n\n this.logger.debug(\n `Found HCS-20 message: op=${parsedMsg.op}, sequence=${sequenceNumber}`,\n );\n\n if (sequenceNumber > maxSequence) {\n maxSequence = sequenceNumber;\n }\n\n const topicMessage: TopicMessageMeta = {\n consensus_timestamp: message.consensus_timestamp ?? '',\n sequence_number: sequenceNumber,\n payer_account_id: message.payer_account_id ?? message.payer ?? '',\n transaction_id: message.transaction_id ?? '',\n };\n\n this.processMessage(parsedMsg, topicMessage, topicId, isPrivate);\n\n this.state.lastProcessedSequence++;\n this.state.lastProcessedTimestamp = message.consensus_timestamp || '';\n }\n if (maxSequence > (lastSequence || 0)) {\n this.lastIndexedSequence.set(topicId, maxSequence);\n }\n } catch (error) {\n this.logger.error(`Failed to index topic ${topicId}:`, error);\n }\n }\n\n /**\n * Process a single message\n */\n private processMessage(\n msg: HCS20Message,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n switch (msg.op) {\n case 'deploy':\n this.processDeployMessage(msg, hcsMsg, topicId, isPrivate);\n break;\n case 'mint':\n this.processMintMessage(msg, hcsMsg, topicId, isPrivate);\n break;\n case 'transfer':\n this.processTransferMessage(msg, hcsMsg, topicId, isPrivate);\n break;\n case 'burn':\n this.processBurnMessage(msg, hcsMsg, topicId, isPrivate);\n break;\n }\n }\n\n /**\n * Process deploy message\n */\n private processDeployMessage(\n msg: HCS20DeployMessage,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n const normalizedTick = this.normalizeTick(msg.tick);\n if (this.state.deployedPoints.has(normalizedTick)) {\n return;\n }\n const pointsInfo: PointsInfo = {\n name: msg.name,\n tick: normalizedTick,\n maxSupply: msg.max,\n limitPerMint: msg.lim,\n metadata: msg.metadata,\n topicId,\n deployerAccountId: hcsMsg.payer_account_id,\n currentSupply: '0',\n deploymentTimestamp: hcsMsg.consensus_timestamp,\n isPrivate,\n };\n\n this.state.deployedPoints.set(normalizedTick, pointsInfo);\n this.logger.info(`Deployed points: ${normalizedTick}`);\n }\n\n /**\n * Process mint message\n */\n private processMintMessage(\n msg: HCS20MintMessage,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n const normalizedTick = this.normalizeTick(msg.tick);\n const pointsInfo = this.state.deployedPoints.get(normalizedTick);\n\n if (!pointsInfo) return;\n const mintAmount = BigInt(msg.amt);\n const currentSupply = BigInt(pointsInfo.currentSupply);\n const maxSupply = BigInt(pointsInfo.maxSupply);\n\n if (currentSupply + mintAmount > maxSupply) return;\n\n if (pointsInfo.limitPerMint && mintAmount > BigInt(pointsInfo.limitPerMint))\n return;\n pointsInfo.currentSupply = (currentSupply + mintAmount).toString();\n let tickBalances = this.state.balances.get(normalizedTick);\n if (!tickBalances) {\n tickBalances = new Map();\n this.state.balances.set(normalizedTick, tickBalances);\n }\n\n const currentBalance = tickBalances.get(msg.to);\n const newBalance = currentBalance\n ? (BigInt(currentBalance.balance) + mintAmount).toString()\n : msg.amt;\n\n tickBalances.set(msg.to, {\n tick: normalizedTick,\n accountId: msg.to,\n balance: newBalance,\n lastUpdated: hcsMsg.consensus_timestamp,\n });\n this.state.transactions.push({\n id: hcsMsg.transaction_id || `${topicId}-${hcsMsg.sequence_number}`,\n operation: 'mint',\n tick: normalizedTick,\n amount: msg.amt,\n to: msg.to,\n timestamp: hcsMsg.consensus_timestamp,\n sequenceNumber: hcsMsg.sequence_number,\n topicId,\n transactionId: hcsMsg.transaction_id || '',\n memo: msg.m,\n });\n }\n\n /**\n * Process transfer message\n */\n private processTransferMessage(\n msg: HCS20TransferMessage,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n const normalizedTick = this.normalizeTick(msg.tick);\n const tickBalances = this.state.balances.get(normalizedTick);\n\n if (!tickBalances) return;\n if (!isPrivate && hcsMsg.payer_account_id !== msg.from) return;\n\n const senderBalance = tickBalances.get(msg.from);\n if (!senderBalance || BigInt(senderBalance.balance) < BigInt(msg.amt))\n return;\n const transferAmount = BigInt(msg.amt);\n\n senderBalance.balance = (\n BigInt(senderBalance.balance) - transferAmount\n ).toString();\n senderBalance.lastUpdated = hcsMsg.consensus_timestamp;\n\n const receiverBalance = tickBalances.get(msg.to);\n if (receiverBalance) {\n receiverBalance.balance = (\n BigInt(receiverBalance.balance) + transferAmount\n ).toString();\n receiverBalance.lastUpdated = hcsMsg.consensus_timestamp;\n } else {\n tickBalances.set(msg.to, {\n tick: normalizedTick,\n accountId: msg.to,\n balance: msg.amt,\n lastUpdated: hcsMsg.consensus_timestamp,\n });\n }\n this.state.transactions.push({\n id: hcsMsg.transaction_id || `${topicId}-${hcsMsg.sequence_number}`,\n operation: 'transfer',\n tick: normalizedTick,\n amount: msg.amt,\n from: msg.from,\n to: msg.to,\n timestamp: hcsMsg.consensus_timestamp,\n sequenceNumber: hcsMsg.sequence_number,\n topicId,\n transactionId: hcsMsg.transaction_id || '',\n memo: msg.m,\n });\n }\n\n /**\n * Process burn message\n */\n private processBurnMessage(\n msg: HCS20BurnMessage,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n const normalizedTick = this.normalizeTick(msg.tick);\n const pointsInfo = this.state.deployedPoints.get(normalizedTick);\n const tickBalances = this.state.balances.get(normalizedTick);\n\n if (!pointsInfo || !tickBalances) return;\n if (!isPrivate && hcsMsg.payer_account_id !== msg.from) return;\n\n const accountBalance = tickBalances.get(msg.from);\n if (!accountBalance || BigInt(accountBalance.balance) < BigInt(msg.amt))\n return;\n const burnAmount = BigInt(msg.amt);\n\n accountBalance.balance = (\n BigInt(accountBalance.balance) - burnAmount\n ).toString();\n accountBalance.lastUpdated = hcsMsg.consensus_timestamp;\n\n pointsInfo.currentSupply = (\n BigInt(pointsInfo.currentSupply) - burnAmount\n ).toString();\n this.state.transactions.push({\n id: hcsMsg.transaction_id || `${topicId}-${hcsMsg.sequence_number}`,\n operation: 'burn',\n tick: normalizedTick,\n amount: msg.amt,\n from: msg.from,\n timestamp: hcsMsg.consensus_timestamp,\n sequenceNumber: hcsMsg.sequence_number,\n topicId,\n transactionId: hcsMsg.transaction_id || '',\n memo: msg.m,\n });\n }\n\n /**\n * Normalize tick to lowercase and trim\n */\n private normalizeTick(tick: string): string {\n return tick.toLowerCase().trim();\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAgCO,MAAM,mBAAmB;AAAA,EAO9B,YAAY,SAAsB,QAAiB,eAAwB;AAH3E,SAAQ,eAAwB;AAChC,SAAQ,0CAA+C,IAAA;AAGrD,SAAK,SACH,UACA,IAAI,OAAO;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACT;AACH,SAAK,aAAa,IAAI,iBAAiB,SAAS,KAAK,QAAQ;AAAA,MAC3D,WAAW;AAAA,IAAA,CACZ;AACD,SAAK,QAAQ,KAAK,gBAAA;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKQ,kBAA+B;AACrC,WAAO;AAAA,MACL,oCAAoB,IAAA;AAAA,MACpB,8BAAc,IAAA;AAAA,MACd,cAAc,CAAA;AAAA,MACd,uBAAuB;AAAA,MACvB,yBAAwB,oBAAI,KAAA,GAAO,YAAA;AAAA,IAAY;AAAA,EAEnD;AAAA;AAAA;AAAA;AAAA,EAKA,WAAwB;AACtB,WAAO;AAAA,MACL,GAAG,KAAK;AAAA,MACR,gBAAgB,IAAI,IAAI,KAAK,MAAM,cAAc;AAAA,MACjD,UAAU,IAAI,IAAI,KAAK,MAAM,QAAQ;AAAA,MACrC,cAAc,CAAC,GAAG,KAAK,MAAM,YAAY;AAAA,IAAA;AAAA,EAE7C;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,MAAsC;AAClD,WAAO,KAAK,MAAM,eAAe,IAAI,KAAK,cAAc,IAAI,CAAC;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,MAAc,WAA2B;AAClD,UAAM,iBAAiB,KAAK,cAAc,IAAI;AAC9C,UAAM,eAAe,KAAK,MAAM,SAAS,IAAI,cAAc;AAC3D,QAAI,CAAC,aAAc,QAAO;AAC1B,UAAM,UAAU,aAAa,IAAI,SAAS;AAC1C,WAAO,SAAS,WAAW;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAAc,SAOF;AAChB,QAAI,KAAK,cAAc;AACrB,WAAK,OAAO,KAAK,8BAA8B;AAC/C;AAAA,IACF;AAEA,SAAK,eAAe;AACpB,UAAM,qBAAqB,SAAS,uBAAuB;AAC3D,UAAM,uBAAuB,SAAS,yBAAyB;AAC/D,UAAM,gBAAgB,qBAClB,SAAS,iBAAiB,gBAAgB,kBAC1C;AACJ,UAAM,kBAAkB,uBACpB,SAAS,mBAAmB,gBAAgB,oBAC5C;AACJ,UAAM,eAAe,SAAS,gBAAgB;AAE9C,UAAM,KAAK;AAAA,MACT;AAAA,MACA;AAAA,MACA,SAAS;AAAA,IAAA;AAGX,UAAM,aAAa,YAAY;AAC7B,UAAI,CAAC,KAAK,aAAc;AACxB,UAAI;AACF,cAAM,KAAK;AAAA,UACT;AAAA,UACA;AAAA,UACA,SAAS;AAAA,QAAA;AAAA,MAEb,SAAS,OAAO;AACd,aAAK,OAAO,MAAM,kBAAkB,KAAK;AAAA,MAC3C;AACA,UAAI,KAAK,cAAc;AACrB,mBAAW,YAAY,YAAY;AAAA,MACrC;AAAA,IACF;AAEA,eAAW,YAAY,YAAY;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAU,SAME;AAChB,UAAM,qBAAqB,SAAS,uBAAuB;AAC3D,UAAM,uBAAuB,SAAS,yBAAyB;AAC/D,UAAM,gBAAgB,qBAClB,SAAS,iBAAiB,gBAAgB,kBAC1C;AACJ,UAAM,kBAAkB,uBACpB,SAAS,mBAAmB,gBAAgB,oBAC5C;AAEJ,UAAM,KAAK;AAAA,MACT;AAAA,MACA;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA;AAAA;AAAA;AAAA,EAKA,eAAqB;AACnB,SAAK,eAAe;AACpB,SAAK,OAAO,KAAK,kBAAkB;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,YACZ,eACA,iBACA,eACe;AACf,SAAK,OAAO,MAAM,yBAAyB;AAC3C,QAAI,eAAe;AACjB,YAAM,KAAK,WAAW,eAAe,KAAK;AAAA,IAC5C;AACA,UAAM,mBAAmB,kBACrB,MAAM,KAAK,oBAAoB,eAAe,IAC9C,CAAA;AACJ,UAAM,gBAAgB,CAAC,GAAG,kBAAkB,GAAI,iBAAiB,CAAA,CAAG;AACpE,eAAW,WAAW,eAAe;AACnC,YAAM,KAAK,WAAW,SAAS,IAAI;AAAA,IACrC;AAEA,SAAK,OAAO,MAAM,yBAAyB;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,oBACZ,iBACmB;AACnB,UAAM,SAAmB,CAAA;AACzB,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,WAAW,iBAAiB,iBAAiB;AAAA,QACvE,OAAO;AAAA,QACP,OAAO;AAAA,MAAA,CACR;AAED,eACG;AAAA,QACC,CAAA,YACE,QAAQ,MAAM,YACd,QAAQ,OAAO,cACf,OAAO,QAAQ,SAAS;AAAA,MAAA,EAE3B,QAAQ,CAAA,YAAW;AAClB,eAAO,KAAK,QAAQ,IAAc;AAAA,MACpC,CAAC;AAAA,IACL,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,sCAAsC,KAAK;AAAA,IAC/D;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,WAAW,SAAiB,WAAmC;AAC3E,QAAI;AACF,YAAM,eAAe,KAAK,oBAAoB,IAAI,OAAO;AACzD,WAAK,OAAO;AAAA,QACV,kBAAkB,OAAO,4BAA4B,gBAAgB,CAAC;AAAA,MAAA;AAGxE,YAAM,WAAW,MAAM,KAAK,WAAW,iBAAiB,SAAS;AAAA,QAC/D,gBAAgB,eAAe,eAAe,IAAI;AAAA,QAClD,OAAO;AAAA,QACP,OAAO;AAAA,MAAA,CACR;AAED,WAAK,OAAO;AAAA,QACV,WAAW,SAAS,MAAM,wBAAwB,OAAO;AAAA,MAAA;AAG3D,UAAI,cAAc,gBAAgB;AAElC,iBAAW,WAAW,UAAU;AAC9B,YAAI,QAAQ,MAAM,UAAU;AAC1B;AAAA,QACF;AAEA,cAAM,cAAc,mBAAmB,UAAU,OAAO;AACxD,YAAI,CAAC,YAAY,SAAS;AACxB,eAAK,OAAO,MAAM,yCAAyC;AAC3D;AAAA,QACF;AAEA,cAAM,YAAY,YAAY;AAC9B,cAAM,iBAAiB,QAAQ,mBAAmB;AAElD,aAAK,OAAO;AAAA,UACV,4BAA4B,UAAU,EAAE,cAAc,cAAc;AAAA,QAAA;AAGtE,YAAI,iBAAiB,aAAa;AAChC,wBAAc;AAAA,QAChB;AAEA,cAAM,eAAiC;AAAA,UACrC,qBAAqB,QAAQ,uBAAuB;AAAA,UACpD,iBAAiB;AAAA,UACjB,kBAAkB,QAAQ,oBAAoB,QAAQ,SAAS;AAAA,UAC/D,gBAAgB,QAAQ,kBAAkB;AAAA,QAAA;AAG5C,aAAK,eAAe,WAAW,cAAc,SAAS,SAAS;AAE/D,aAAK,MAAM;AACX,aAAK,MAAM,yBAAyB,QAAQ,uBAAuB;AAAA,MACrE;AACA,UAAI,eAAe,gBAAgB,IAAI;AACrC,aAAK,oBAAoB,IAAI,SAAS,WAAW;AAAA,MACnD;AAAA,IACF,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,yBAAyB,OAAO,KAAK,KAAK;AAAA,IAC9D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,eACN,KACA,QACA,SACA,WACM;AACN,YAAQ,IAAI,IAAA;AAAA,MACV,KAAK;AACH,aAAK,qBAAqB,KAAK,QAAQ,SAAS,SAAS;AACzD;AAAA,MACF,KAAK;AACH,aAAK,mBAAmB,KAAK,QAAQ,SAAS,SAAS;AACvD;AAAA,MACF,KAAK;AACH,aAAK,uBAAuB,KAAK,QAAQ,SAAS,SAAS;AAC3D;AAAA,MACF,KAAK;AACH,aAAK,mBAAmB,KAAK,QAAQ,SAAS,SAAS;AACvD;AAAA,IAAA;AAAA,EAEN;AAAA;AAAA;AAAA;AAAA,EAKQ,qBACN,KACA,QACA,SACA,WACM;AACN,UAAM,iBAAiB,KAAK,cAAc,IAAI,IAAI;AAClD,QAAI,KAAK,MAAM,eAAe,IAAI,cAAc,GAAG;AACjD;AAAA,IACF;AACA,UAAM,aAAyB;AAAA,MAC7B,MAAM,IAAI;AAAA,MACV,MAAM;AAAA,MACN,WAAW,IAAI;AAAA,MACf,cAAc,IAAI;AAAA,MAClB,UAAU,IAAI;AAAA,MACd;AAAA,MACA,mBAAmB,OAAO;AAAA,MAC1B,eAAe;AAAA,MACf,qBAAqB,OAAO;AAAA,MAC5B;AAAA,IAAA;AAGF,SAAK,MAAM,eAAe,IAAI,gBAAgB,UAAU;AACxD,SAAK,OAAO,KAAK,oBAAoB,cAAc,EAAE;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA,EAKQ,mBACN,KACA,QACA,SACA,WACM;AACN,UAAM,iBAAiB,KAAK,cAAc,IAAI,IAAI;AAClD,UAAM,aAAa,KAAK,MAAM,eAAe,IAAI,cAAc;AAE/D,QAAI,CAAC,WAAY;AACjB,UAAM,aAAa,OAAO,IAAI,GAAG;AACjC,UAAM,gBAAgB,OAAO,WAAW,aAAa;AACrD,UAAM,YAAY,OAAO,WAAW,SAAS;AAE7C,QAAI,gBAAgB,aAAa,UAAW;AAE5C,QAAI,WAAW,gBAAgB,aAAa,OAAO,WAAW,YAAY;AACxE;AACF,eAAW,iBAAiB,gBAAgB,YAAY,SAAA;AACxD,QAAI,eAAe,KAAK,MAAM,SAAS,IAAI,cAAc;AACzD,QAAI,CAAC,cAAc;AACjB,yCAAmB,IAAA;AACnB,WAAK,MAAM,SAAS,IAAI,gBAAgB,YAAY;AAAA,IACtD;AAEA,UAAM,iBAAiB,aAAa,IAAI,IAAI,EAAE;AAC9C,UAAM,aAAa,kBACd,OAAO,eAAe,OAAO,IAAI,YAAY,aAC9C,IAAI;AAER,iBAAa,IAAI,IAAI,IAAI;AAAA,MACvB,MAAM;AAAA,MACN,WAAW,IAAI;AAAA,MACf,SAAS;AAAA,MACT,aAAa,OAAO;AAAA,IAAA,CACrB;AACD,SAAK,MAAM,aAAa,KAAK;AAAA,MAC3B,IAAI,OAAO,kBAAkB,GAAG,OAAO,IAAI,OAAO,eAAe;AAAA,MACjE,WAAW;AAAA,MACX,MAAM;AAAA,MACN,QAAQ,IAAI;AAAA,MACZ,IAAI,IAAI;AAAA,MACR,WAAW,OAAO;AAAA,MAClB,gBAAgB,OAAO;AAAA,MACvB;AAAA,MACA,eAAe,OAAO,kBAAkB;AAAA,MACxC,MAAM,IAAI;AAAA,IAAA,CACX;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKQ,uBACN,KACA,QACA,SACA,WACM;AACN,UAAM,iBAAiB,KAAK,cAAc,IAAI,IAAI;AAClD,UAAM,eAAe,KAAK,MAAM,SAAS,IAAI,cAAc;AAE3D,QAAI,CAAC,aAAc;AACnB,QAAI,CAAC,aAAa,OAAO,qBAAqB,IAAI,KAAM;AAExD,UAAM,gBAAgB,aAAa,IAAI,IAAI,IAAI;AAC/C,QAAI,CAAC,iBAAiB,OAAO,cAAc,OAAO,IAAI,OAAO,IAAI,GAAG;AAClE;AACF,UAAM,iBAAiB,OAAO,IAAI,GAAG;AAErC,kBAAc,WACZ,OAAO,cAAc,OAAO,IAAI,gBAChC,SAAA;AACF,kBAAc,cAAc,OAAO;AAEnC,UAAM,kBAAkB,aAAa,IAAI,IAAI,EAAE;AAC/C,QAAI,iBAAiB;AACnB,sBAAgB,WACd,OAAO,gBAAgB,OAAO,IAAI,gBAClC,SAAA;AACF,sBAAgB,cAAc,OAAO;AAAA,IACvC,OAAO;AACL,mBAAa,IAAI,IAAI,IAAI;AAAA,QACvB,MAAM;AAAA,QACN,WAAW,IAAI;AAAA,QACf,SAAS,IAAI;AAAA,QACb,aAAa,OAAO;AAAA,MAAA,CACrB;AAAA,IACH;AACA,SAAK,MAAM,aAAa,KAAK;AAAA,MAC3B,IAAI,OAAO,kBAAkB,GAAG,OAAO,IAAI,OAAO,eAAe;AAAA,MACjE,WAAW;AAAA,MACX,MAAM;AAAA,MACN,QAAQ,IAAI;AAAA,MACZ,MAAM,IAAI;AAAA,MACV,IAAI,IAAI;AAAA,MACR,WAAW,OAAO;AAAA,MAClB,gBAAgB,OAAO;AAAA,MACvB;AAAA,MACA,eAAe,OAAO,kBAAkB;AAAA,MACxC,MAAM,IAAI;AAAA,IAAA,CACX;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKQ,mBACN,KACA,QACA,SACA,WACM;AACN,UAAM,iBAAiB,KAAK,cAAc,IAAI,IAAI;AAClD,UAAM,aAAa,KAAK,MAAM,eAAe,IAAI,cAAc;AAC/D,UAAM,eAAe,KAAK,MAAM,SAAS,IAAI,cAAc;AAE3D,QAAI,CAAC,cAAc,CAAC,aAAc;AAClC,QAAI,CAAC,aAAa,OAAO,qBAAqB,IAAI,KAAM;AAExD,UAAM,iBAAiB,aAAa,IAAI,IAAI,IAAI;AAChD,QAAI,CAAC,kBAAkB,OAAO,eAAe,OAAO,IAAI,OAAO,IAAI,GAAG;AACpE;AACF,UAAM,aAAa,OAAO,IAAI,GAAG;AAEjC,mBAAe,WACb,OAAO,eAAe,OAAO,IAAI,YACjC,SAAA;AACF,mBAAe,cAAc,OAAO;AAEpC,eAAW,iBACT,OAAO,WAAW,aAAa,IAAI,YACnC,SAAA;AACF,SAAK,MAAM,aAAa,KAAK;AAAA,MAC3B,IAAI,OAAO,kBAAkB,GAAG,OAAO,IAAI,OAAO,eAAe;AAAA,MACjE,WAAW;AAAA,MACX,MAAM;AAAA,MACN,QAAQ,IAAI;AAAA,MACZ,MAAM,IAAI;AAAA,MACV,WAAW,OAAO;AAAA,MAClB,gBAAgB,OAAO;AAAA,MACvB;AAAA,MACA,eAAe,OAAO,kBAAkB;AAAA,MACxC,MAAM,IAAI;AAAA,IAAA,CACX;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKQ,cAAc,MAAsB;AAC1C,WAAO,KAAK,YAAA,EAAc,KAAA;AAAA,EAC5B;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es84.js","sources":["../../src/hcs-20/points-indexer.ts"],"sourcesContent":["/**\n * HCS-20 Points Indexer for state calculation\n * Handles async processing of HCS messages to build points state.\n * With larger topics, we do not recommend using this indexer, and\n * instead utilizing more scalable, database or redis based solutions.\n */\n\nimport { Logger } from '../utils/logger';\nimport { HederaMirrorNode } from '../services';\nimport { NetworkType } from '../utils/types';\nimport {\n PointsState,\n PointsInfo,\n HCS20Message,\n HCS20DeployMessage,\n HCS20MintMessage,\n HCS20TransferMessage,\n HCS20BurnMessage,\n HCS20_CONSTANTS,\n HCS20MessageSchema,\n} from './types';\n\ninterface TopicMessageMeta {\n consensus_timestamp: string;\n sequence_number: number;\n payer_account_id: string;\n transaction_id: string;\n}\n\n/**\n * HCS-20 Points Indexer for processing and maintaining points state\n */\nexport class HCS20PointsIndexer {\n private logger: Logger;\n private mirrorNode: HederaMirrorNode;\n private state: PointsState;\n private isProcessing: boolean = false;\n private lastIndexedSequence: Map<string, number> = new Map();\n\n constructor(network: NetworkType, logger?: Logger, mirrorNodeUrl?: string) {\n this.logger =\n logger ||\n new Logger({\n level: 'info',\n module: 'HCS20PointsIndexer',\n });\n this.mirrorNode = new HederaMirrorNode(network, this.logger, {\n customUrl: mirrorNodeUrl,\n });\n this.state = this.initializeState();\n }\n\n /**\n * Initialize empty state\n */\n private initializeState(): PointsState {\n return {\n deployedPoints: new Map(),\n balances: new Map(),\n transactions: [],\n lastProcessedSequence: 0,\n lastProcessedTimestamp: new Date().toISOString(),\n };\n }\n\n /**\n * Get current state snapshot\n */\n getState(): PointsState {\n return {\n ...this.state,\n deployedPoints: new Map(this.state.deployedPoints),\n balances: new Map(this.state.balances),\n transactions: [...this.state.transactions],\n };\n }\n\n /**\n * Get points info for a specific tick\n */\n getPointsInfo(tick: string): PointsInfo | undefined {\n return this.state.deployedPoints.get(this.normalizeTick(tick));\n }\n\n /**\n * Get balance for an account and tick\n */\n getBalance(tick: string, accountId: string): string {\n const normalizedTick = this.normalizeTick(tick);\n const tickBalances = this.state.balances.get(normalizedTick);\n if (!tickBalances) return '0';\n const balance = tickBalances.get(accountId);\n return balance?.balance || '0';\n }\n\n /**\n * Start indexing process\n */\n async startIndexing(options?: {\n publicTopicId?: string;\n registryTopicId?: string;\n includePublicTopic?: boolean;\n includeRegistryTopic?: boolean;\n privateTopics?: string[];\n pollInterval?: number;\n }): Promise<void> {\n if (this.isProcessing) {\n this.logger.warn('Indexing already in progress');\n return;\n }\n\n this.isProcessing = true;\n const includePublicTopic = options?.includePublicTopic !== false;\n const includeRegistryTopic = options?.includeRegistryTopic !== false;\n const publicTopicId = includePublicTopic\n ? options?.publicTopicId || HCS20_CONSTANTS.PUBLIC_TOPIC_ID\n : null;\n const registryTopicId = includeRegistryTopic\n ? options?.registryTopicId || HCS20_CONSTANTS.REGISTRY_TOPIC_ID\n : null;\n const pollInterval = options?.pollInterval || 30000;\n\n await this.indexTopics(\n publicTopicId,\n registryTopicId,\n options?.privateTopics,\n );\n\n const pollTopics = async () => {\n if (!this.isProcessing) return;\n try {\n await this.indexTopics(\n publicTopicId,\n registryTopicId,\n options?.privateTopics,\n );\n } catch (error) {\n this.logger.error('Polling error:', error);\n }\n if (this.isProcessing) {\n setTimeout(pollTopics, pollInterval);\n }\n };\n\n setTimeout(pollTopics, pollInterval);\n }\n\n /**\n * Index topics once and wait for completion\n */\n async indexOnce(options?: {\n publicTopicId?: string;\n registryTopicId?: string;\n includePublicTopic?: boolean;\n includeRegistryTopic?: boolean;\n privateTopics?: string[];\n }): Promise<void> {\n const includePublicTopic = options?.includePublicTopic !== false;\n const includeRegistryTopic = options?.includeRegistryTopic !== false;\n const publicTopicId = includePublicTopic\n ? options?.publicTopicId || HCS20_CONSTANTS.PUBLIC_TOPIC_ID\n : null;\n const registryTopicId = includeRegistryTopic\n ? options?.registryTopicId || HCS20_CONSTANTS.REGISTRY_TOPIC_ID\n : null;\n\n await this.indexTopics(\n publicTopicId,\n registryTopicId,\n options?.privateTopics,\n );\n }\n\n /**\n * Stop indexing process\n */\n stopIndexing(): void {\n this.isProcessing = false;\n this.logger.info('Indexing stopped');\n }\n\n /**\n * Index topics and update state\n */\n private async indexTopics(\n publicTopicId: string | null,\n registryTopicId: string | null,\n privateTopics?: string[],\n ): Promise<void> {\n this.logger.debug('Starting indexing cycle');\n if (publicTopicId) {\n await this.indexTopic(publicTopicId, false);\n }\n const registeredTopics = registryTopicId\n ? await this.getRegisteredTopics(registryTopicId)\n : [];\n const topicsToIndex = [...registeredTopics, ...(privateTopics || [])];\n for (const topicId of topicsToIndex) {\n await this.indexTopic(topicId, true);\n }\n\n this.logger.debug('Indexing cycle complete');\n }\n\n /**\n * Get registered topics from registry\n */\n private async getRegisteredTopics(\n registryTopicId: string,\n ): Promise<string[]> {\n const topics: string[] = [];\n try {\n const messages = await this.mirrorNode.getTopicMessages(registryTopicId, {\n limit: 100,\n order: 'asc',\n });\n\n messages\n .filter(\n message =>\n message.p === 'hcs-20' &&\n message.op === 'register' &&\n typeof message.t_id === 'string',\n )\n .forEach(message => {\n topics.push(message.t_id as string);\n });\n } catch (error) {\n this.logger.error('Failed to fetch registry messages:', error);\n }\n return topics;\n }\n\n /**\n * Index a single topic\n */\n private async indexTopic(topicId: string, isPrivate: boolean): Promise<void> {\n try {\n const lastSequence = this.lastIndexedSequence.get(topicId);\n this.logger.debug(\n `Indexing topic ${topicId}, starting from sequence ${lastSequence || 0}`,\n );\n\n const messages = await this.mirrorNode.getTopicMessages(topicId, {\n sequenceNumber: lastSequence ? lastSequence + 1 : undefined,\n limit: 1000,\n order: 'asc',\n });\n\n this.logger.debug(\n `Fetched ${messages.length} messages from topic ${topicId}`,\n );\n\n let maxSequence = lastSequence || 0;\n\n for (const message of messages) {\n if (message.p !== 'hcs-20') {\n continue;\n }\n\n const parseResult = HCS20MessageSchema.safeParse(message);\n if (!parseResult.success) {\n this.logger.debug('Skipping message due to schema mismatch');\n continue;\n }\n\n const parsedMsg = parseResult.data;\n const sequenceNumber = message.sequence_number ?? 0;\n\n this.logger.debug(\n `Found HCS-20 message: op=${parsedMsg.op}, sequence=${sequenceNumber}`,\n );\n\n if (sequenceNumber > maxSequence) {\n maxSequence = sequenceNumber;\n }\n\n const topicMessage: TopicMessageMeta = {\n consensus_timestamp: message.consensus_timestamp ?? '',\n sequence_number: sequenceNumber,\n payer_account_id: message.payer_account_id ?? message.payer ?? '',\n transaction_id: message.transaction_id ?? '',\n };\n\n this.processMessage(parsedMsg, topicMessage, topicId, isPrivate);\n\n this.state.lastProcessedSequence++;\n this.state.lastProcessedTimestamp = message.consensus_timestamp || '';\n }\n if (maxSequence > (lastSequence || 0)) {\n this.lastIndexedSequence.set(topicId, maxSequence);\n }\n } catch (error) {\n this.logger.error(`Failed to index topic ${topicId}:`, error);\n }\n }\n\n /**\n * Process a single message\n */\n private processMessage(\n msg: HCS20Message,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n switch (msg.op) {\n case 'deploy':\n this.processDeployMessage(msg, hcsMsg, topicId, isPrivate);\n break;\n case 'mint':\n this.processMintMessage(msg, hcsMsg, topicId, isPrivate);\n break;\n case 'transfer':\n this.processTransferMessage(msg, hcsMsg, topicId, isPrivate);\n break;\n case 'burn':\n this.processBurnMessage(msg, hcsMsg, topicId, isPrivate);\n break;\n }\n }\n\n /**\n * Process deploy message\n */\n private processDeployMessage(\n msg: HCS20DeployMessage,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n const normalizedTick = this.normalizeTick(msg.tick);\n if (this.state.deployedPoints.has(normalizedTick)) {\n return;\n }\n const pointsInfo: PointsInfo = {\n name: msg.name,\n tick: normalizedTick,\n maxSupply: msg.max,\n limitPerMint: msg.lim,\n metadata: msg.metadata,\n topicId,\n deployerAccountId: hcsMsg.payer_account_id,\n currentSupply: '0',\n deploymentTimestamp: hcsMsg.consensus_timestamp,\n isPrivate,\n };\n\n this.state.deployedPoints.set(normalizedTick, pointsInfo);\n this.logger.info(`Deployed points: ${normalizedTick}`);\n }\n\n /**\n * Process mint message\n */\n private processMintMessage(\n msg: HCS20MintMessage,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n const normalizedTick = this.normalizeTick(msg.tick);\n const pointsInfo = this.state.deployedPoints.get(normalizedTick);\n\n if (!pointsInfo) return;\n const mintAmount = BigInt(msg.amt);\n const currentSupply = BigInt(pointsInfo.currentSupply);\n const maxSupply = BigInt(pointsInfo.maxSupply);\n\n if (currentSupply + mintAmount > maxSupply) return;\n\n if (pointsInfo.limitPerMint && mintAmount > BigInt(pointsInfo.limitPerMint))\n return;\n pointsInfo.currentSupply = (currentSupply + mintAmount).toString();\n let tickBalances = this.state.balances.get(normalizedTick);\n if (!tickBalances) {\n tickBalances = new Map();\n this.state.balances.set(normalizedTick, tickBalances);\n }\n\n const currentBalance = tickBalances.get(msg.to);\n const newBalance = currentBalance\n ? (BigInt(currentBalance.balance) + mintAmount).toString()\n : msg.amt;\n\n tickBalances.set(msg.to, {\n tick: normalizedTick,\n accountId: msg.to,\n balance: newBalance,\n lastUpdated: hcsMsg.consensus_timestamp,\n });\n this.state.transactions.push({\n id: hcsMsg.transaction_id || `${topicId}-${hcsMsg.sequence_number}`,\n operation: 'mint',\n tick: normalizedTick,\n amount: msg.amt,\n to: msg.to,\n timestamp: hcsMsg.consensus_timestamp,\n sequenceNumber: hcsMsg.sequence_number,\n topicId,\n transactionId: hcsMsg.transaction_id || '',\n memo: msg.m,\n });\n }\n\n /**\n * Process transfer message\n */\n private processTransferMessage(\n msg: HCS20TransferMessage,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n const normalizedTick = this.normalizeTick(msg.tick);\n const tickBalances = this.state.balances.get(normalizedTick);\n\n if (!tickBalances) return;\n if (!isPrivate && hcsMsg.payer_account_id !== msg.from) return;\n\n const senderBalance = tickBalances.get(msg.from);\n if (!senderBalance || BigInt(senderBalance.balance) < BigInt(msg.amt))\n return;\n const transferAmount = BigInt(msg.amt);\n\n senderBalance.balance = (\n BigInt(senderBalance.balance) - transferAmount\n ).toString();\n senderBalance.lastUpdated = hcsMsg.consensus_timestamp;\n\n const receiverBalance = tickBalances.get(msg.to);\n if (receiverBalance) {\n receiverBalance.balance = (\n BigInt(receiverBalance.balance) + transferAmount\n ).toString();\n receiverBalance.lastUpdated = hcsMsg.consensus_timestamp;\n } else {\n tickBalances.set(msg.to, {\n tick: normalizedTick,\n accountId: msg.to,\n balance: msg.amt,\n lastUpdated: hcsMsg.consensus_timestamp,\n });\n }\n this.state.transactions.push({\n id: hcsMsg.transaction_id || `${topicId}-${hcsMsg.sequence_number}`,\n operation: 'transfer',\n tick: normalizedTick,\n amount: msg.amt,\n from: msg.from,\n to: msg.to,\n timestamp: hcsMsg.consensus_timestamp,\n sequenceNumber: hcsMsg.sequence_number,\n topicId,\n transactionId: hcsMsg.transaction_id || '',\n memo: msg.m,\n });\n }\n\n /**\n * Process burn message\n */\n private processBurnMessage(\n msg: HCS20BurnMessage,\n hcsMsg: TopicMessageMeta,\n topicId: string,\n isPrivate: boolean,\n ): void {\n const normalizedTick = this.normalizeTick(msg.tick);\n const pointsInfo = this.state.deployedPoints.get(normalizedTick);\n const tickBalances = this.state.balances.get(normalizedTick);\n\n if (!pointsInfo || !tickBalances) return;\n if (!isPrivate && hcsMsg.payer_account_id !== msg.from) return;\n\n const accountBalance = tickBalances.get(msg.from);\n if (!accountBalance || BigInt(accountBalance.balance) < BigInt(msg.amt))\n return;\n const burnAmount = BigInt(msg.amt);\n\n accountBalance.balance = (\n BigInt(accountBalance.balance) - burnAmount\n ).toString();\n accountBalance.lastUpdated = hcsMsg.consensus_timestamp;\n\n pointsInfo.currentSupply = (\n BigInt(pointsInfo.currentSupply) - burnAmount\n ).toString();\n this.state.transactions.push({\n id: hcsMsg.transaction_id || `${topicId}-${hcsMsg.sequence_number}`,\n operation: 'burn',\n tick: normalizedTick,\n amount: msg.amt,\n from: msg.from,\n timestamp: hcsMsg.consensus_timestamp,\n sequenceNumber: hcsMsg.sequence_number,\n topicId,\n transactionId: hcsMsg.transaction_id || '',\n memo: msg.m,\n });\n }\n\n /**\n * Normalize tick to lowercase and trim\n */\n private normalizeTick(tick: string): string {\n return tick.toLowerCase().trim();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { buildMessageTx } from "./standards-sdk.es183.js";
1
+ import { buildMessageTx } from "./standards-sdk.es184.js";
2
2
  function buildHcs20SubmitMessageTx(params) {
3
3
  const msg = typeof params.payload === "string" ? params.payload : JSON.stringify(params.payload);
4
4
  return buildMessageTx({
@@ -1,4 +1,4 @@
1
- import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es183.js";
1
+ import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es184.js";
2
2
  import { HCS21_SAFE_MESSAGE_BYTES, HCS21_MAX_MESSAGE_BYTES, HCS21TopicType, HCS21MetadataPointerPattern } from "./standards-sdk.es86.js";
3
3
  import { HCS21ValidationError } from "./standards-sdk.es87.js";
4
4
  function buildHcs21RegistryMemo(params) {
@@ -1,5 +1,5 @@
1
1
  import { Client, Status } from "@hashgraph/sdk";
2
- import { createNodeOperatorContext } from "./standards-sdk.es182.js";
2
+ import { createNodeOperatorContext } from "./standards-sdk.es183.js";
3
3
  import { Logger } from "./standards-sdk.es128.js";
4
4
  import { HCS21BaseClient } from "./standards-sdk.es89.js";
5
5
  import { metadataDocumentSchema, HCS21TopicType, HCS21ManifestPointerPattern } from "./standards-sdk.es86.js";
@@ -1,5 +1,5 @@
1
1
  import { AccountId, Client, PrivateKey, Hbar } from "@hashgraph/sdk";
2
- import { createNodeOperatorContext } from "./standards-sdk.es182.js";
2
+ import { createNodeOperatorContext } from "./standards-sdk.es183.js";
3
3
  import { buildHcs15BaseAccountCreateTx, buildHcs15PetalAccountCreateTx } from "./standards-sdk.es93.js";
4
4
  import { HCS15BaseClient } from "./standards-sdk.es96.js";
5
5
  class HCS15Client extends HCS15BaseClient {
@@ -92,8 +92,8 @@ class HCS15Client extends HCS15BaseClient {
92
92
  return { accountId, receipt, profile };
93
93
  }
94
94
  async createPetalProfile(params) {
95
- const { HCS10Client } = await import("./standards-sdk.es179.js");
96
- const { PersonBuilder } = await import("./standards-sdk.es180.js");
95
+ const { HCS10Client } = await import("./standards-sdk.es180.js");
96
+ const { PersonBuilder } = await import("./standards-sdk.es181.js");
97
97
  const hcs10 = new HCS10Client({
98
98
  network: this.network,
99
99
  operatorId: params.accountId,
@@ -1,5 +1,5 @@
1
1
  import { AccountCreateTransaction, Hbar, AccountId, TopicCreateTransaction, CustomFixedFee, TokenId, AccountUpdateTransaction, ScheduleCreateTransaction, TopicUpdateTransaction } from "@hashgraph/sdk";
2
- import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es183.js";
2
+ import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es184.js";
3
3
  import { FloraOperation, FloraTopicType } from "./standards-sdk.es97.js";
4
4
  const HCS16_FLORA_ACCOUNT_CREATE_TRANSACTION_MEMO = "hcs-16:op:0:0";
5
5
  const HCS17_STATE_HASH_TRANSACTION_MEMO = "hcs-17:op:6:2";
@@ -1,7 +1,7 @@
1
1
  import { AccountId, Client, ScheduleSignTransaction } from "@hashgraph/sdk";
2
2
  import "./standards-sdk.es128.js";
3
3
  import { HCS11Client } from "./standards-sdk.es27.js";
4
- import { createNodeOperatorContext } from "./standards-sdk.es182.js";
4
+ import { createNodeOperatorContext } from "./standards-sdk.es183.js";
5
5
  import { HederaMirrorNode } from "./standards-sdk.es149.js";
6
6
  import { HCS16BaseClient } from "./standards-sdk.es101.js";
7
7
  import { buildHcs16CreateFloraTopicTx, buildHcs16CreateAccountTx, buildHcs16FloraCreatedTx, buildHcs16TransactionTx, buildHcs16StateUpdateTx, buildHcs16FloraJoinRequestTx, buildHcs16FloraJoinVoteTx, buildHcs16FloraJoinAcceptedTx } from "./standards-sdk.es98.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hashgraphonline/standards-sdk",
3
- "version": "0.1.187",
3
+ "version": "0.1.189",
4
4
  "description": "The Hashgraph Online Standards SDK provides a complete implementation of the Hiero Consensus Standards (HCS), giving developers all the tools needed to build wonderful decentralized applications on the Hashgraph network. https://hol.org",
5
5
  "type": "module",
6
6
  "files": [