@hashgraphonline/standards-sdk 0.0.68 → 0.0.70

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 (219) hide show
  1. package/README.md +13 -0
  2. package/dist/es/fees/fee-config-builder.d.ts +93 -45
  3. package/dist/es/fees/fee-config-builder.d.ts.map +1 -1
  4. package/dist/es/fees/types.d.ts +14 -12
  5. package/dist/es/fees/types.d.ts.map +1 -1
  6. package/dist/es/hcs-10/base-client.d.ts +8 -1
  7. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  8. package/dist/es/hcs-10/browser.d.ts.map +1 -1
  9. package/dist/es/hcs-10/sdk.d.ts +9 -1
  10. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  11. package/dist/es/services/mirror-node.d.ts +74 -1
  12. package/dist/es/services/mirror-node.d.ts.map +1 -1
  13. package/dist/es/services/types.d.ts +29 -0
  14. package/dist/es/services/types.d.ts.map +1 -1
  15. package/dist/es/standards-sdk.es.js +2 -0
  16. package/dist/es/standards-sdk.es.js.map +1 -1
  17. package/dist/es/standards-sdk.es100.js +60 -3
  18. package/dist/es/standards-sdk.es100.js.map +1 -1
  19. package/dist/es/standards-sdk.es101.js +1286 -13
  20. package/dist/es/standards-sdk.es101.js.map +1 -1
  21. package/dist/es/standards-sdk.es102.js +147 -4
  22. package/dist/es/standards-sdk.es102.js.map +1 -1
  23. package/dist/es/standards-sdk.es103.js +91 -39
  24. package/dist/es/standards-sdk.es103.js.map +1 -1
  25. package/dist/es/standards-sdk.es104.js +80 -36
  26. package/dist/es/standards-sdk.es104.js.map +1 -1
  27. package/dist/es/standards-sdk.es105.js +31 -36
  28. package/dist/es/standards-sdk.es105.js.map +1 -1
  29. package/dist/es/standards-sdk.es106.js +6 -78
  30. package/dist/es/standards-sdk.es106.js.map +1 -1
  31. package/dist/es/standards-sdk.es107.js +159 -2282
  32. package/dist/es/standards-sdk.es107.js.map +1 -1
  33. package/dist/es/standards-sdk.es108.js +23 -3
  34. package/dist/es/standards-sdk.es108.js.map +1 -1
  35. package/dist/es/standards-sdk.es109.js +793 -2
  36. package/dist/es/standards-sdk.es109.js.map +1 -1
  37. package/dist/es/standards-sdk.es110.js +174 -2
  38. package/dist/es/standards-sdk.es110.js.map +1 -1
  39. package/dist/es/standards-sdk.es111.js +142 -33
  40. package/dist/es/standards-sdk.es111.js.map +1 -1
  41. package/dist/es/standards-sdk.es112.js +20 -32
  42. package/dist/es/standards-sdk.es112.js.map +1 -1
  43. package/dist/es/standards-sdk.es113.js +27 -9
  44. package/dist/es/standards-sdk.es113.js.map +1 -1
  45. package/dist/es/standards-sdk.es114.js +25 -33
  46. package/dist/es/standards-sdk.es114.js.map +1 -1
  47. package/dist/es/standards-sdk.es115.js +41 -0
  48. package/dist/es/standards-sdk.es115.js.map +1 -0
  49. package/dist/es/standards-sdk.es12.js +3 -3
  50. package/dist/es/standards-sdk.es14.js +1 -1
  51. package/dist/es/standards-sdk.es17.js +2 -2
  52. package/dist/es/standards-sdk.es18.js +94 -6
  53. package/dist/es/standards-sdk.es18.js.map +1 -1
  54. package/dist/es/standards-sdk.es19.js +127 -67
  55. package/dist/es/standards-sdk.es19.js.map +1 -1
  56. package/dist/es/standards-sdk.es20.js +7 -1767
  57. package/dist/es/standards-sdk.es20.js.map +1 -1
  58. package/dist/es/standards-sdk.es21.js +1767 -3
  59. package/dist/es/standards-sdk.es21.js.map +1 -1
  60. package/dist/es/standards-sdk.es22.js +36 -4167
  61. package/dist/es/standards-sdk.es22.js.map +1 -1
  62. package/dist/es/standards-sdk.es23.js +48 -5
  63. package/dist/es/standards-sdk.es23.js.map +1 -1
  64. package/dist/es/standards-sdk.es24.js +6627 -36
  65. package/dist/es/standards-sdk.es24.js.map +1 -1
  66. package/dist/es/standards-sdk.es25.js +3 -48
  67. package/dist/es/standards-sdk.es25.js.map +1 -1
  68. package/dist/es/standards-sdk.es26.js +2 -6627
  69. package/dist/es/standards-sdk.es26.js.map +1 -1
  70. package/dist/es/standards-sdk.es27.js +1041 -2
  71. package/dist/es/standards-sdk.es27.js.map +1 -1
  72. package/dist/es/standards-sdk.es28.js +4086 -960
  73. package/dist/es/standards-sdk.es28.js.map +1 -1
  74. package/dist/es/standards-sdk.es29.js +5 -419
  75. package/dist/es/standards-sdk.es29.js.map +1 -1
  76. package/dist/es/standards-sdk.es30.js +419 -2
  77. package/dist/es/standards-sdk.es30.js.map +1 -1
  78. package/dist/es/standards-sdk.es31.js +2 -120
  79. package/dist/es/standards-sdk.es31.js.map +1 -1
  80. package/dist/es/standards-sdk.es32.js +119 -3
  81. package/dist/es/standards-sdk.es32.js.map +1 -1
  82. package/dist/es/standards-sdk.es33.js +3 -2
  83. package/dist/es/standards-sdk.es33.js.map +1 -1
  84. package/dist/es/standards-sdk.es34.js +164 -3
  85. package/dist/es/standards-sdk.es34.js.map +1 -1
  86. package/dist/es/standards-sdk.es35.js +1 -161
  87. package/dist/es/standards-sdk.es35.js.map +1 -1
  88. package/dist/es/standards-sdk.es36.js +2 -2
  89. package/dist/es/standards-sdk.es38.js +5 -5
  90. package/dist/es/standards-sdk.es4.js +1 -1
  91. package/dist/es/standards-sdk.es40.js +3 -3
  92. package/dist/es/standards-sdk.es46.js +1 -1
  93. package/dist/es/standards-sdk.es5.js +20 -3
  94. package/dist/es/standards-sdk.es5.js.map +1 -1
  95. package/dist/es/standards-sdk.es50.js +1 -1
  96. package/dist/es/standards-sdk.es51.js +3 -3
  97. package/dist/es/standards-sdk.es53.js +100 -22
  98. package/dist/es/standards-sdk.es53.js.map +1 -1
  99. package/dist/es/standards-sdk.es54.js +2 -174
  100. package/dist/es/standards-sdk.es54.js.map +1 -1
  101. package/dist/es/standards-sdk.es55.js +15 -90
  102. package/dist/es/standards-sdk.es55.js.map +1 -1
  103. package/dist/es/standards-sdk.es56.js +408 -5
  104. package/dist/es/standards-sdk.es56.js.map +1 -1
  105. package/dist/es/standards-sdk.es57.js +25 -136
  106. package/dist/es/standards-sdk.es57.js.map +1 -1
  107. package/dist/es/standards-sdk.es58.js +44 -176
  108. package/dist/es/standards-sdk.es58.js.map +1 -1
  109. package/dist/es/standards-sdk.es59.js +47 -435
  110. package/dist/es/standards-sdk.es59.js.map +1 -1
  111. package/dist/es/standards-sdk.es60.js +9 -24
  112. package/dist/es/standards-sdk.es60.js.map +1 -1
  113. package/dist/es/standards-sdk.es61.js +57 -131
  114. package/dist/es/standards-sdk.es61.js.map +1 -1
  115. package/dist/es/standards-sdk.es62.js +6 -18
  116. package/dist/es/standards-sdk.es62.js.map +1 -1
  117. package/dist/es/standards-sdk.es63.js +14 -28
  118. package/dist/es/standards-sdk.es63.js.map +1 -1
  119. package/dist/es/standards-sdk.es64.js +7 -29
  120. package/dist/es/standards-sdk.es64.js.map +1 -1
  121. package/dist/es/standards-sdk.es65.js +44 -20
  122. package/dist/es/standards-sdk.es65.js.map +1 -1
  123. package/dist/es/standards-sdk.es66.js +2 -44
  124. package/dist/es/standards-sdk.es66.js.map +1 -1
  125. package/dist/es/standards-sdk.es67.js +136 -18
  126. package/dist/es/standards-sdk.es67.js.map +1 -1
  127. package/dist/es/standards-sdk.es68.js +165 -54
  128. package/dist/es/standards-sdk.es68.js.map +1 -1
  129. package/dist/es/standards-sdk.es69.js +2281 -1288
  130. package/dist/es/standards-sdk.es69.js.map +1 -1
  131. package/dist/es/standards-sdk.es7.js +96 -40
  132. package/dist/es/standards-sdk.es7.js.map +1 -1
  133. package/dist/es/standards-sdk.es70.js +13 -148
  134. package/dist/es/standards-sdk.es70.js.map +1 -1
  135. package/dist/es/standards-sdk.es71.js +13 -84
  136. package/dist/es/standards-sdk.es71.js.map +1 -1
  137. package/dist/es/standards-sdk.es72.js +30 -30
  138. package/dist/es/standards-sdk.es72.js.map +1 -1
  139. package/dist/es/standards-sdk.es73.js +13 -157
  140. package/dist/es/standards-sdk.es73.js.map +1 -1
  141. package/dist/es/standards-sdk.es74.js +3 -792
  142. package/dist/es/standards-sdk.es74.js.map +1 -1
  143. package/dist/es/standards-sdk.es75.js +3 -31
  144. package/dist/es/standards-sdk.es75.js.map +1 -1
  145. package/dist/es/standards-sdk.es76.js +14 -61
  146. package/dist/es/standards-sdk.es76.js.map +1 -1
  147. package/dist/es/standards-sdk.es77.js +4 -49
  148. package/dist/es/standards-sdk.es77.js.map +1 -1
  149. package/dist/es/standards-sdk.es78.js +39 -10
  150. package/dist/es/standards-sdk.es78.js.map +1 -1
  151. package/dist/es/standards-sdk.es79.js +33 -58
  152. package/dist/es/standards-sdk.es79.js.map +1 -1
  153. package/dist/es/standards-sdk.es8.js +17 -4
  154. package/dist/es/standards-sdk.es8.js.map +1 -1
  155. package/dist/es/standards-sdk.es80.js +36 -5
  156. package/dist/es/standards-sdk.es80.js.map +1 -1
  157. package/dist/es/standards-sdk.es81.js +76 -13
  158. package/dist/es/standards-sdk.es81.js.map +1 -1
  159. package/dist/es/standards-sdk.es82.js +3 -7
  160. package/dist/es/standards-sdk.es82.js.map +1 -1
  161. package/dist/es/standards-sdk.es83.js +2 -45
  162. package/dist/es/standards-sdk.es83.js.map +1 -1
  163. package/dist/es/standards-sdk.es84.js +2 -2
  164. package/dist/es/standards-sdk.es84.js.map +1 -1
  165. package/dist/es/standards-sdk.es85.js +2 -136
  166. package/dist/es/standards-sdk.es85.js.map +1 -1
  167. package/dist/es/standards-sdk.es86.js +30 -168
  168. package/dist/es/standards-sdk.es86.js.map +1 -1
  169. package/dist/es/standards-sdk.es87.js +32 -26
  170. package/dist/es/standards-sdk.es87.js.map +1 -1
  171. package/dist/es/standards-sdk.es88.js +9 -26
  172. package/dist/es/standards-sdk.es88.js.map +1 -1
  173. package/dist/es/standards-sdk.es89.js +33 -37
  174. package/dist/es/standards-sdk.es89.js.map +1 -1
  175. package/dist/es/standards-sdk.es9.js +1 -1
  176. package/dist/es/standards-sdk.es90.js +191 -97
  177. package/dist/es/standards-sdk.es90.js.map +1 -1
  178. package/dist/es/standards-sdk.es91.js +438 -2
  179. package/dist/es/standards-sdk.es91.js.map +1 -1
  180. package/dist/es/standards-sdk.es92.js +24 -15
  181. package/dist/es/standards-sdk.es92.js.map +1 -1
  182. package/dist/es/standards-sdk.es93.js +131 -401
  183. package/dist/es/standards-sdk.es93.js.map +1 -1
  184. package/dist/es/standards-sdk.es94.js +11 -14
  185. package/dist/es/standards-sdk.es94.js.map +1 -1
  186. package/dist/es/standards-sdk.es95.js +29 -13
  187. package/dist/es/standards-sdk.es95.js.map +1 -1
  188. package/dist/es/standards-sdk.es96.js +29 -13
  189. package/dist/es/standards-sdk.es96.js.map +1 -1
  190. package/dist/es/standards-sdk.es97.js +20 -31
  191. package/dist/es/standards-sdk.es97.js.map +1 -1
  192. package/dist/es/standards-sdk.es98.js +43 -14
  193. package/dist/es/standards-sdk.es98.js.map +1 -1
  194. package/dist/es/standards-sdk.es99.js +17 -3
  195. package/dist/es/standards-sdk.es99.js.map +1 -1
  196. package/dist/es/utils/index.d.ts +1 -0
  197. package/dist/es/utils/index.d.ts.map +1 -1
  198. package/dist/es/utils/types.d.ts +3 -0
  199. package/dist/es/utils/types.d.ts.map +1 -1
  200. package/dist/umd/fees/fee-config-builder.d.ts +93 -45
  201. package/dist/umd/fees/fee-config-builder.d.ts.map +1 -1
  202. package/dist/umd/fees/types.d.ts +14 -12
  203. package/dist/umd/fees/types.d.ts.map +1 -1
  204. package/dist/umd/hcs-10/base-client.d.ts +8 -1
  205. package/dist/umd/hcs-10/base-client.d.ts.map +1 -1
  206. package/dist/umd/hcs-10/browser.d.ts.map +1 -1
  207. package/dist/umd/hcs-10/sdk.d.ts +9 -1
  208. package/dist/umd/hcs-10/sdk.d.ts.map +1 -1
  209. package/dist/umd/services/mirror-node.d.ts +74 -1
  210. package/dist/umd/services/mirror-node.d.ts.map +1 -1
  211. package/dist/umd/services/types.d.ts +29 -0
  212. package/dist/umd/services/types.d.ts.map +1 -1
  213. package/dist/umd/standards-sdk.umd.js +1 -1
  214. package/dist/umd/standards-sdk.umd.js.map +1 -1
  215. package/dist/umd/utils/index.d.ts +1 -0
  216. package/dist/umd/utils/index.d.ts.map +1 -1
  217. package/dist/umd/utils/types.d.ts +3 -0
  218. package/dist/umd/utils/types.d.ts.map +1 -1
  219. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es5.js","sources":["../../src/hcs-10/base-client.ts"],"sourcesContent":["import { Logger, LogLevel } from '../utils/logger';\nimport { Registration } from './registrations';\nimport { HCS11Client } from '../hcs-11/client';\nimport { AccountResponse } from '../services/types';\nimport { TopicInfo } from '../services/types';\nimport { TransactionReceipt, PrivateKey, PublicKey } from '@hashgraph/sdk';\nimport axios from 'axios';\nimport { NetworkType } from '../utils/types';\nimport { HederaMirrorNode } from '../services';\n\nexport enum Hcs10MemoType {\n INBOUND = 'inbound',\n OUTBOUND = 'outbound',\n CONNECTION = 'connection',\n}\n\nexport interface HCS10Config {\n network: 'mainnet' | 'testnet';\n logLevel?: LogLevel;\n prettyPrint?: boolean;\n feeAmount?: number;\n}\n\nexport interface HCSMessage {\n p: 'hcs-10';\n op:\n | 'connection_request'\n | 'connection_created'\n | 'message'\n | 'close_connection';\n data: string;\n created?: Date;\n consensus_timestamp?: string;\n m?: string;\n payer: string;\n outbound_topic_id?: string;\n connection_request_id?: number;\n confirmed_request_id?: number;\n connection_topic_id?: string;\n connected_account_id?: string;\n requesting_account_id?: string;\n connection_id?: number;\n sequence_number: number;\n operator_id?: string;\n reason?: string;\n close_method?: string;\n}\n\nexport interface ProfileResponse {\n profile: any;\n topicInfo?: TopicInfo;\n success: boolean;\n error?: string;\n}\n\nexport abstract class HCS10BaseClient extends Registration {\n protected network: string;\n protected logger: Logger;\n protected mirrorNode: HederaMirrorNode;\n protected feeAmount: number;\n\n protected operatorId: string;\n\n constructor(config: HCS10Config) {\n super();\n this.network = config.network;\n this.logger = Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS10-BaseClient',\n prettyPrint: config.prettyPrint,\n });\n this.mirrorNode = new HederaMirrorNode(\n config.network as NetworkType,\n this.logger\n );\n this.feeAmount = config.feeAmount || 0.001;\n }\n\n abstract submitPayload(\n topicId: string,\n payload: object | string,\n submitKey?: PrivateKey,\n requiresFee?: boolean\n ): Promise<TransactionReceipt>;\n\n abstract getAccountAndSigner(): { accountId: string; signer: any };\n\n public extractTopicFromOperatorId(operatorId: string): string {\n if (!operatorId) {\n return '';\n }\n const parts = operatorId.split('@');\n if (parts.length > 0) {\n return parts[0];\n }\n return '';\n }\n\n public extractAccountFromOperatorId(operatorId: string): string {\n if (!operatorId) {\n return '';\n }\n const parts = operatorId.split('@');\n if (parts.length > 1) {\n return parts[1];\n }\n return '';\n }\n\n /**\n * Get a stream of messages from a connection topic\n * @param topicId The connection topic ID to get messages from\n * @returns A stream of filtered messages valid for connection topics\n */\n public async getMessageStream(\n topicId: string\n ): Promise<{ messages: HCSMessage[] }> {\n try {\n const messages = await this.mirrorNode.getTopicMessages(topicId);\n const validOps = ['message', 'close_connection'];\n\n const filteredMessages = messages.filter((msg) => {\n if (msg.p !== 'hcs-10' || !validOps.includes(msg.op)) {\n return false;\n }\n\n if (msg.op === 'message') {\n if (!msg.data) {\n return false;\n }\n\n if (!msg.operator_id) {\n return false;\n }\n\n if (!this.isValidOperatorId(msg.operator_id)) {\n return false;\n }\n }\n\n if (msg.op === 'close_connection') {\n if (!msg.operator_id) {\n return false;\n }\n\n if (!this.isValidOperatorId(msg.operator_id)) {\n return false;\n }\n }\n\n return true;\n });\n\n return {\n messages: filteredMessages,\n };\n } catch (error: any) {\n if (this.logger) {\n this.logger.error(`Error fetching messages: ${error.message}`);\n }\n return { messages: [] };\n }\n }\n\n /**\n * Checks if a user can submit to a topic and determines if a fee is required\n * @param topicId The topic ID to check\n * @param userAccountId The account ID of the user attempting to submit\n * @returns Object with canSubmit, requiresFee, and optional reason\n */\n public async canSubmitToTopic(\n topicId: string,\n userAccountId: string\n ): Promise<{ canSubmit: boolean; requiresFee: boolean; reason?: string }> {\n try {\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n\n if (!topicInfo) {\n return {\n canSubmit: false,\n requiresFee: false,\n reason: 'Topic does not exist',\n };\n }\n\n if (!topicInfo.submit_key?.key) {\n return { canSubmit: true, requiresFee: false };\n }\n\n try {\n const userPublicKey = await this.mirrorNode.getPublicKey(userAccountId);\n\n if (topicInfo.submit_key._type === 'ProtobufEncoded') {\n const keyBytes = Buffer.from(topicInfo.submit_key.key, 'hex');\n const hasAccess = await this.mirrorNode.checkKeyListAccess(\n keyBytes,\n userPublicKey\n );\n\n if (hasAccess) {\n return { canSubmit: true, requiresFee: false };\n }\n } else {\n const topicSubmitKey = PublicKey.fromString(topicInfo.submit_key.key);\n if (userPublicKey.toString() === topicSubmitKey.toString()) {\n return { canSubmit: true, requiresFee: false };\n }\n }\n } catch (error) {\n this.logger.error(\n `Key validation error: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n\n if (\n topicInfo.fee_schedule_key?.key &&\n topicInfo.custom_fees?.fixed_fees?.length > 0\n ) {\n return {\n canSubmit: true,\n requiresFee: true,\n reason: 'Requires fee payment via HIP-991',\n };\n }\n\n return {\n canSubmit: false,\n requiresFee: false,\n reason: 'User does not have submit permission for this topic',\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n this.logger.error(`Topic submission validation error: ${errorMessage}`);\n return {\n canSubmit: false,\n requiresFee: false,\n reason: `Error: ${errorMessage}`,\n };\n }\n }\n\n /**\n * Get all messages from a topic\n * @param topicId The topic ID to get messages from\n * @returns All messages from the topic\n */\n public async getMessages(\n topicId: string\n ): Promise<{ messages: HCSMessage[] }> {\n try {\n const messages = await this.mirrorNode.getTopicMessages(topicId);\n\n const validatedMessages = messages.filter((msg) => {\n if (msg.p !== 'hcs-10') {\n return false;\n }\n\n if (msg.op === 'message') {\n if (!msg.data) {\n return false;\n }\n\n if (msg.operator_id) {\n if (!this.isValidOperatorId(msg.operator_id)) {\n return false;\n }\n }\n }\n\n return true;\n });\n\n return {\n messages: validatedMessages,\n };\n } catch (error: any) {\n if (this.logger) {\n this.logger.error(`Error fetching messages: ${error.message}`);\n }\n return { messages: [] };\n }\n }\n\n public async requestAccount(account: string): Promise<AccountResponse> {\n try {\n return await this.mirrorNode.requestAccount(account);\n } catch (e) {\n this.logger.error('Failed to fetch account', e);\n throw e;\n }\n }\n\n public async getAccountMemo(accountId: string): Promise<string | null> {\n return await this.mirrorNode.getAccountMemo(accountId);\n }\n\n public async retrieveProfile(\n accountId: string,\n disableCache?: boolean\n ): Promise<ProfileResponse> {\n this.logger.info(`Retrieving profile for account: ${accountId}`);\n\n const cacheKey = `${accountId}-${this.network}`;\n\n if (!disableCache) {\n const cachedProfileResponse = HCS10Cache.getInstance().get(cacheKey);\n if (cachedProfileResponse) {\n this.logger.info(`Cache hit for profile: ${accountId}`);\n return cachedProfileResponse;\n }\n }\n\n this.logger.info(\n `Cache miss for profile: ${accountId}, fetching from network`\n );\n\n try {\n const hcs11Client = new HCS11Client({\n network: this.network as 'mainnet' | 'testnet',\n auth: {\n operatorId: '0.0.0', // Read-only operations only\n },\n logLevel: 'info',\n });\n\n const profileResult = await hcs11Client.fetchProfileByAccountId(\n accountId,\n this.network\n );\n\n if (!profileResult?.success) {\n this.logger.error(\n `Failed to retrieve profile for account ID: ${accountId}`,\n profileResult?.error\n );\n return {\n profile: null,\n success: false,\n error:\n profileResult?.error ||\n `Failed to retrieve profile for account ID: ${accountId}`,\n };\n }\n\n const profile = profileResult.profile;\n let topicInfo: TopicInfo | null = null;\n\n if (\n profileResult.topicInfo?.inboundTopic &&\n profileResult.topicInfo?.outboundTopic &&\n profileResult.topicInfo?.profileTopicId\n ) {\n topicInfo = {\n inboundTopic: profileResult.topicInfo.inboundTopic,\n outboundTopic: profileResult.topicInfo.outboundTopic,\n profileTopicId: profileResult.topicInfo.profileTopicId,\n };\n }\n\n const responseToCache: ProfileResponse = {\n profile,\n topicInfo,\n success: true,\n };\n HCS10Cache.getInstance().set(cacheKey, responseToCache);\n return responseToCache;\n } catch (error) {\n this.logger.error('Failed to retrieve profile:', error);\n return {\n profile: null,\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * @deprecated Use retrieveCommunicationTopics instead\n * @param accountId The account ID to retrieve the outbound connect topic for\n * @returns {TopicInfo} Topic Info from target profile.\n */\n public async retrieveOutboundConnectTopic(\n accountId: string\n ): Promise<TopicInfo> {\n return await this.retrieveCommunicationTopics(accountId, true);\n }\n\n /**\n * Retrieves the communication topics for an account\n * @param accountId The account ID to retrieve the communication topics for\n * @param disableCache Whether to disable caching of the result\n * @returns {TopicInfo} Topic Info from target profile.\n */\n public async retrieveCommunicationTopics(\n accountId: string,\n disableCache?: boolean\n ): Promise<TopicInfo> {\n this.logger.info(`Retrieving topics for account: ${accountId}`);\n const cacheKey = `${accountId}-${this.network}`;\n\n try {\n const profileResponse = await this.retrieveProfile(\n accountId,\n disableCache\n );\n\n if (!profileResponse?.success) {\n throw new Error(profileResponse.error || 'Failed to retrieve profile');\n }\n\n const profile = profileResponse.profile;\n\n if (!profile.inboundTopicId || !profile.outboundTopicId) {\n throw new Error(\n `Invalid HCS-11 profile for HCS-10 agent: missing inboundTopicId or outboundTopicId`\n );\n }\n\n if (!profileResponse.topicInfo) {\n throw new Error(\n `TopicInfo is missing in the profile for account ${accountId}`\n );\n }\n\n return profileResponse.topicInfo;\n } catch (error) {\n this.logger.error('Failed to retrieve topic info:', error);\n throw error;\n }\n }\n\n public async retrieveOutboundMessages(\n agentAccountId: string\n ): Promise<HCSMessage[]> {\n try {\n const topicInfo = await this.retrieveCommunicationTopics(agentAccountId);\n if (!topicInfo) {\n this.logger.warn(\n `No outbound connect topic found for agentAccountId: ${agentAccountId}`\n );\n return [];\n }\n const response = await this.getMessages(topicInfo.outboundTopic);\n return response.messages.filter(\n (msg) =>\n msg.p === 'hcs-10' &&\n (msg.op === 'connection_request' ||\n msg.op === 'connection_created' ||\n msg.op === 'message')\n );\n } catch (error) {\n this.logger.error('Failed to retrieve outbound messages:', error);\n return [];\n }\n }\n\n public async hasConnectionCreated(\n agentAccountId: string,\n connectionId: number\n ): Promise<boolean> {\n try {\n const outBoundTopic = await this.retrieveCommunicationTopics(\n agentAccountId\n );\n const messages = await this.retrieveOutboundMessages(\n outBoundTopic.outboundTopic\n );\n return messages.some(\n (msg) =>\n msg.op === 'connection_created' && msg.connection_id === connectionId\n );\n } catch (error) {\n this.logger.error('Failed to check connection created:', error);\n return false;\n }\n }\n\n /**\n * Gets message content, resolving any HRL references if needed\n * @param data The message data which might be an HRL reference\n * @returns The resolved content\n */\n async getMessageContent(data: string): Promise<string> {\n const hrlPattern = /^hcs:\\/\\/(\\d+)\\/([0-9.]+)$/;\n const match = data.match(hrlPattern);\n\n if (!match) {\n return data;\n }\n\n const [_, standard, topicId] = match;\n\n this.logger.info(\n `Resolving HRL reference: standard=${standard}, topicId=${topicId}`\n );\n\n try {\n const cdnUrl = `https://kiloscribe.com/api/inscription-cdn/${topicId}?network=${this.network}`;\n const response = await axios.get(cdnUrl);\n\n if (!response.data) {\n throw new Error(`Failed to fetch content from topic: ${topicId}`);\n }\n\n return (\n response.data.content ||\n response.data.text ||\n JSON.stringify(response.data)\n );\n } catch (error) {\n this.logger.error(\n `Error resolving HRL reference: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`\n );\n throw new Error(\n `Failed to resolve HRL reference: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`\n );\n }\n }\n\n /**\n * Records an outbound connection confirmation\n * @param outboundTopicId The ID of the outbound topic\n * @param connectionRequestId The ID of the connection request\n * @param confirmedRequestId The ID of the confirmed request\n * @param connectionTopicId The ID of the connection topic\n * @param operatorId The operator ID of the original message sender.\n * @param memo An optional memo for the message\n */\n public async recordOutboundConnectionConfirmation({\n outboundTopicId,\n requestorOutboundTopicId,\n connectionRequestId,\n confirmedRequestId,\n connectionTopicId,\n operatorId,\n memo,\n }: {\n outboundTopicId: string;\n requestorOutboundTopicId: string;\n connectionRequestId: number;\n confirmedRequestId: number;\n connectionTopicId: string;\n operatorId: string;\n memo: string;\n }): Promise<TransactionReceipt> {\n const payload = {\n p: 'hcs-10',\n op: 'connection_created',\n connection_topic_id: connectionTopicId,\n outbound_topic_id: outboundTopicId,\n requestor_outbound_topic_id: requestorOutboundTopicId,\n confirmed_request_id: confirmedRequestId,\n connection_request_id: connectionRequestId,\n operator_id: operatorId,\n m: memo,\n };\n return await this.submitPayload(outboundTopicId, payload);\n }\n\n public async getOperatorId(disableCache?: boolean): Promise<string> {\n if (this.operatorId && !disableCache) {\n return this.operatorId;\n }\n\n const accountResponse = this.getAccountAndSigner();\n\n if (!accountResponse.accountId) {\n throw new Error('Operator ID not found');\n }\n\n const profile = await this.retrieveProfile(accountResponse.accountId);\n\n if (!profile.success) {\n throw new Error('Failed to retrieve profile');\n }\n\n const operatorId = `${profile.topicInfo?.inboundTopic}@${accountResponse.accountId}`;\n this.operatorId = operatorId;\n return operatorId;\n }\n\n clearCache(): void {\n HCS10Cache.getInstance().clear();\n }\n\n /**\n * Generates a standard HCS-10 memo string.\n * @param type The type of topic memo ('inbound', 'outbound', 'connection').\n * @param options Configuration options for the memo.\n * @returns The formatted memo string.\n * @protected\n */\n protected _generateHcs10Memo(\n type: Hcs10MemoType,\n options: {\n ttl?: number;\n accountId?: string;\n inboundTopicId?: string;\n connectionId?: number;\n }\n ): string {\n const ttl = options.ttl ?? 60; // Default TTL to 60 if not provided\n\n switch (type) {\n case Hcs10MemoType.INBOUND:\n if (!options.accountId) {\n throw new Error('accountId is required for inbound memo');\n }\n return `hcs-10:0:${ttl}:0:${options.accountId}`;\n case Hcs10MemoType.OUTBOUND:\n return `hcs-10:0:${ttl}:1`;\n case Hcs10MemoType.CONNECTION:\n if (!options.inboundTopicId || options.connectionId === undefined) {\n throw new Error(\n 'inboundTopicId and connectionId are required for connection memo'\n );\n }\n return `hcs-10:1:${ttl}:2:${options.inboundTopicId}:${options.connectionId}`;\n default:\n throw new Error(`Invalid HCS-10 memo type: ${type}`);\n }\n }\n\n protected async checkRegistrationStatus(\n transactionId: string,\n network: string,\n baseUrl: string\n ): Promise<{ status: 'pending' | 'success' | 'failed' }> {\n try {\n const response = await fetch(`${baseUrl}/api/request-confirm`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Network': network,\n },\n body: JSON.stringify({ transaction_id: transactionId }),\n });\n\n if (!response.ok) {\n throw new Error(\n `Failed to confirm registration: ${response.statusText}`\n );\n }\n\n return await response.json();\n } catch (error) {\n this.logger.error(`Error checking registration status: ${error}`);\n throw error;\n }\n }\n\n /**\n * Validates if an operator_id follows the correct format (agentTopicId@accountId)\n * @param operatorId The operator ID to validate\n * @returns True if the format is valid, false otherwise\n */\n protected isValidOperatorId(operatorId: string): boolean {\n if (!operatorId) {\n return false;\n }\n\n const parts = operatorId.split('@');\n\n if (parts.length !== 2) {\n return false;\n }\n\n const agentTopicId = parts[0];\n const accountId = parts[1];\n\n if (!agentTopicId) {\n return false;\n }\n\n if (!accountId) {\n return false;\n }\n\n const hederaIdPattern = /^[0-9]+\\.[0-9]+\\.[0-9]+$/;\n\n if (!hederaIdPattern.test(accountId)) {\n return false;\n }\n\n if (!hederaIdPattern.test(agentTopicId)) {\n return false;\n }\n\n return true;\n }\n}\n\nexport class HCS10Cache {\n private static instance: HCS10Cache;\n private cache: Map<string, ProfileResponse>;\n private cacheExpiry: Map<string, number>;\n private readonly CACHE_TTL = 3600000;\n\n private constructor() {\n this.cache = new Map();\n this.cacheExpiry = new Map();\n }\n\n static getInstance(): HCS10Cache {\n if (!HCS10Cache.instance) {\n HCS10Cache.instance = new HCS10Cache();\n }\n return HCS10Cache.instance;\n }\n\n set(key: string, value: ProfileResponse): void {\n this.cache.set(key, value);\n this.cacheExpiry.set(key, Date.now() + this.CACHE_TTL);\n }\n\n get(key: string): ProfileResponse | undefined {\n const expiry = this.cacheExpiry.get(key);\n if (expiry && expiry > Date.now()) {\n return this.cache.get(key);\n }\n if (expiry) {\n this.cache.delete(key);\n this.cacheExpiry.delete(key);\n }\n return undefined;\n }\n\n clear(): void {\n this.cache.clear();\n this.cacheExpiry.clear();\n }\n}\n"],"names":["Hcs10MemoType"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es5.js","sources":["../../src/hcs-10/base-client.ts"],"sourcesContent":["import { Logger, LogLevel } from '../utils/logger';\nimport { Registration } from './registrations';\nimport { HCS11Client } from '../hcs-11/client';\nimport { AccountResponse, TopicResponse } from '../services/types';\nimport { TopicInfo } from '../services/types';\nimport { TransactionReceipt, PrivateKey, PublicKey } from '@hashgraph/sdk';\nimport axios from 'axios';\nimport { NetworkType } from '../utils/types';\nimport { HederaMirrorNode } from '../services';\n\nexport enum Hcs10MemoType {\n INBOUND = 'inbound',\n OUTBOUND = 'outbound',\n CONNECTION = 'connection',\n}\n\nexport interface HCS10Config {\n network: 'mainnet' | 'testnet';\n logLevel?: LogLevel;\n prettyPrint?: boolean;\n feeAmount?: number;\n}\n\nexport interface HCSMessage {\n p: 'hcs-10';\n op:\n | 'connection_request'\n | 'connection_created'\n | 'message'\n | 'close_connection';\n data: string;\n created?: Date;\n consensus_timestamp?: string;\n m?: string;\n payer: string;\n outbound_topic_id?: string;\n connection_request_id?: number;\n confirmed_request_id?: number;\n connection_topic_id?: string;\n connected_account_id?: string;\n requesting_account_id?: string;\n connection_id?: number;\n sequence_number: number;\n operator_id?: string;\n reason?: string;\n close_method?: string;\n}\n\nexport interface ProfileResponse {\n profile: any;\n topicInfo?: TopicInfo;\n success: boolean;\n error?: string;\n}\n\nexport abstract class HCS10BaseClient extends Registration {\n protected network: string;\n protected logger: Logger;\n protected mirrorNode: HederaMirrorNode;\n protected feeAmount: number;\n\n protected operatorId: string;\n\n constructor(config: HCS10Config) {\n super();\n this.network = config.network;\n this.logger = Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS10-BaseClient',\n prettyPrint: config.prettyPrint,\n });\n this.mirrorNode = new HederaMirrorNode(\n config.network as NetworkType,\n this.logger\n );\n this.feeAmount = config.feeAmount || 0.001;\n }\n\n abstract submitPayload(\n topicId: string,\n payload: object | string,\n submitKey?: PrivateKey,\n requiresFee?: boolean\n ): Promise<TransactionReceipt>;\n\n abstract getAccountAndSigner(): { accountId: string; signer: any };\n\n public extractTopicFromOperatorId(operatorId: string): string {\n if (!operatorId) {\n return '';\n }\n const parts = operatorId.split('@');\n if (parts.length > 0) {\n return parts[0];\n }\n return '';\n }\n\n public extractAccountFromOperatorId(operatorId: string): string {\n if (!operatorId) {\n return '';\n }\n const parts = operatorId.split('@');\n if (parts.length > 1) {\n return parts[1];\n }\n return '';\n }\n\n /**\n * Get a stream of messages from a connection topic\n * @param topicId The connection topic ID to get messages from\n * @returns A stream of filtered messages valid for connection topics\n */\n public async getMessageStream(\n topicId: string\n ): Promise<{ messages: HCSMessage[] }> {\n try {\n const messages = await this.mirrorNode.getTopicMessages(topicId);\n const validOps = ['message', 'close_connection'];\n\n const filteredMessages = messages.filter((msg) => {\n if (msg.p !== 'hcs-10' || !validOps.includes(msg.op)) {\n return false;\n }\n\n if (msg.op === 'message') {\n if (!msg.data) {\n return false;\n }\n\n if (!msg.operator_id) {\n return false;\n }\n\n if (!this.isValidOperatorId(msg.operator_id)) {\n return false;\n }\n }\n\n if (msg.op === 'close_connection') {\n if (!msg.operator_id) {\n return false;\n }\n\n if (!this.isValidOperatorId(msg.operator_id)) {\n return false;\n }\n }\n\n return true;\n });\n\n return {\n messages: filteredMessages,\n };\n } catch (error: any) {\n if (this.logger) {\n this.logger.error(`Error fetching messages: ${error.message}`);\n }\n return { messages: [] };\n }\n }\n\n /**\n * Public method to retrieve topic information using the internal mirror node client.\n *\n * @param topicId The ID of the topic to query.\n * @returns Topic information or null if not found or an error occurs.\n */\n async getPublicTopicInfo(topicId: string): Promise<TopicResponse | null> {\n try {\n return await this.mirrorNode.getTopicInfo(topicId);\n } catch (error) {\n this.logger.error(\n `Error getting public topic info for ${topicId}:`,\n error\n );\n return null;\n }\n }\n\n /**\n * Checks if a user can submit to a topic and determines if a fee is required\n * @param topicId The topic ID to check\n * @param userAccountId The account ID of the user attempting to submit\n * @returns Object with canSubmit, requiresFee, and optional reason\n */\n public async canSubmitToTopic(\n topicId: string,\n userAccountId: string\n ): Promise<{ canSubmit: boolean; requiresFee: boolean; reason?: string }> {\n try {\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n\n if (!topicInfo) {\n return {\n canSubmit: false,\n requiresFee: false,\n reason: 'Topic does not exist',\n };\n }\n\n if (!topicInfo.submit_key?.key) {\n return { canSubmit: true, requiresFee: false };\n }\n\n try {\n const userPublicKey = await this.mirrorNode.getPublicKey(userAccountId);\n\n if (topicInfo.submit_key._type === 'ProtobufEncoded') {\n const keyBytes = Buffer.from(topicInfo.submit_key.key, 'hex');\n const hasAccess = await this.mirrorNode.checkKeyListAccess(\n keyBytes,\n userPublicKey\n );\n\n if (hasAccess) {\n return { canSubmit: true, requiresFee: false };\n }\n } else {\n const topicSubmitKey = PublicKey.fromString(topicInfo.submit_key.key);\n if (userPublicKey.toString() === topicSubmitKey.toString()) {\n return { canSubmit: true, requiresFee: false };\n }\n }\n } catch (error) {\n this.logger.error(\n `Key validation error: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n\n if (\n topicInfo.fee_schedule_key?.key &&\n topicInfo.custom_fees?.fixed_fees?.length > 0\n ) {\n return {\n canSubmit: true,\n requiresFee: true,\n reason: 'Requires fee payment via HIP-991',\n };\n }\n\n return {\n canSubmit: false,\n requiresFee: false,\n reason: 'User does not have submit permission for this topic',\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n this.logger.error(`Topic submission validation error: ${errorMessage}`);\n return {\n canSubmit: false,\n requiresFee: false,\n reason: `Error: ${errorMessage}`,\n };\n }\n }\n\n /**\n * Get all messages from a topic\n * @param topicId The topic ID to get messages from\n * @returns All messages from the topic\n */\n public async getMessages(\n topicId: string\n ): Promise<{ messages: HCSMessage[] }> {\n try {\n const messages = await this.mirrorNode.getTopicMessages(topicId);\n\n const validatedMessages = messages.filter((msg) => {\n if (msg.p !== 'hcs-10') {\n return false;\n }\n\n if (msg.op === 'message') {\n if (!msg.data) {\n return false;\n }\n\n if (msg.operator_id) {\n if (!this.isValidOperatorId(msg.operator_id)) {\n return false;\n }\n }\n }\n\n return true;\n });\n\n return {\n messages: validatedMessages,\n };\n } catch (error: any) {\n if (this.logger) {\n this.logger.error(`Error fetching messages: ${error.message}`);\n }\n return { messages: [] };\n }\n }\n\n public async requestAccount(account: string): Promise<AccountResponse> {\n try {\n return await this.mirrorNode.requestAccount(account);\n } catch (e) {\n this.logger.error('Failed to fetch account', e);\n throw e;\n }\n }\n\n public async getAccountMemo(accountId: string): Promise<string | null> {\n return await this.mirrorNode.getAccountMemo(accountId);\n }\n\n public async retrieveProfile(\n accountId: string,\n disableCache?: boolean\n ): Promise<ProfileResponse> {\n this.logger.info(`Retrieving profile for account: ${accountId}`);\n\n const cacheKey = `${accountId}-${this.network}`;\n\n if (!disableCache) {\n const cachedProfileResponse = HCS10Cache.getInstance().get(cacheKey);\n if (cachedProfileResponse) {\n this.logger.info(`Cache hit for profile: ${accountId}`);\n return cachedProfileResponse;\n }\n }\n\n this.logger.info(\n `Cache miss for profile: ${accountId}, fetching from network`\n );\n\n try {\n const hcs11Client = new HCS11Client({\n network: this.network as 'mainnet' | 'testnet',\n auth: {\n operatorId: '0.0.0', // Read-only operations only\n },\n logLevel: 'info',\n });\n\n const profileResult = await hcs11Client.fetchProfileByAccountId(\n accountId,\n this.network\n );\n\n if (!profileResult?.success) {\n this.logger.error(\n `Failed to retrieve profile for account ID: ${accountId}`,\n profileResult?.error\n );\n return {\n profile: null,\n success: false,\n error:\n profileResult?.error ||\n `Failed to retrieve profile for account ID: ${accountId}`,\n };\n }\n\n const profile = profileResult.profile;\n let topicInfo: TopicInfo | null = null;\n\n if (\n profileResult.topicInfo?.inboundTopic &&\n profileResult.topicInfo?.outboundTopic &&\n profileResult.topicInfo?.profileTopicId\n ) {\n topicInfo = {\n inboundTopic: profileResult.topicInfo.inboundTopic,\n outboundTopic: profileResult.topicInfo.outboundTopic,\n profileTopicId: profileResult.topicInfo.profileTopicId,\n };\n }\n\n const responseToCache: ProfileResponse = {\n profile,\n topicInfo,\n success: true,\n };\n HCS10Cache.getInstance().set(cacheKey, responseToCache);\n return responseToCache;\n } catch (error) {\n this.logger.error('Failed to retrieve profile:', error);\n return {\n profile: null,\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * @deprecated Use retrieveCommunicationTopics instead\n * @param accountId The account ID to retrieve the outbound connect topic for\n * @returns {TopicInfo} Topic Info from target profile.\n */\n public async retrieveOutboundConnectTopic(\n accountId: string\n ): Promise<TopicInfo> {\n return await this.retrieveCommunicationTopics(accountId, true);\n }\n\n /**\n * Retrieves the communication topics for an account\n * @param accountId The account ID to retrieve the communication topics for\n * @param disableCache Whether to disable caching of the result\n * @returns {TopicInfo} Topic Info from target profile.\n */\n public async retrieveCommunicationTopics(\n accountId: string,\n disableCache?: boolean\n ): Promise<TopicInfo> {\n this.logger.info(`Retrieving topics for account: ${accountId}`);\n const cacheKey = `${accountId}-${this.network}`;\n\n try {\n const profileResponse = await this.retrieveProfile(\n accountId,\n disableCache\n );\n\n if (!profileResponse?.success) {\n throw new Error(profileResponse.error || 'Failed to retrieve profile');\n }\n\n const profile = profileResponse.profile;\n\n if (!profile.inboundTopicId || !profile.outboundTopicId) {\n throw new Error(\n `Invalid HCS-11 profile for HCS-10 agent: missing inboundTopicId or outboundTopicId`\n );\n }\n\n if (!profileResponse.topicInfo) {\n throw new Error(\n `TopicInfo is missing in the profile for account ${accountId}`\n );\n }\n\n return profileResponse.topicInfo;\n } catch (error) {\n this.logger.error('Failed to retrieve topic info:', error);\n throw error;\n }\n }\n\n public async retrieveOutboundMessages(\n agentAccountId: string\n ): Promise<HCSMessage[]> {\n try {\n const topicInfo = await this.retrieveCommunicationTopics(agentAccountId);\n if (!topicInfo) {\n this.logger.warn(\n `No outbound connect topic found for agentAccountId: ${agentAccountId}`\n );\n return [];\n }\n const response = await this.getMessages(topicInfo.outboundTopic);\n return response.messages.filter(\n (msg) =>\n msg.p === 'hcs-10' &&\n (msg.op === 'connection_request' ||\n msg.op === 'connection_created' ||\n msg.op === 'message')\n );\n } catch (error) {\n this.logger.error('Failed to retrieve outbound messages:', error);\n return [];\n }\n }\n\n public async hasConnectionCreated(\n agentAccountId: string,\n connectionId: number\n ): Promise<boolean> {\n try {\n const outBoundTopic = await this.retrieveCommunicationTopics(\n agentAccountId\n );\n const messages = await this.retrieveOutboundMessages(\n outBoundTopic.outboundTopic\n );\n return messages.some(\n (msg) =>\n msg.op === 'connection_created' && msg.connection_id === connectionId\n );\n } catch (error) {\n this.logger.error('Failed to check connection created:', error);\n return false;\n }\n }\n\n /**\n * Gets message content, resolving any HRL references if needed\n * @param data The message data which might be an HRL reference\n * @returns The resolved content\n */\n async getMessageContent(data: string): Promise<string> {\n const hrlPattern = /^hcs:\\/\\/(\\d+)\\/([0-9.]+)$/;\n const match = data.match(hrlPattern);\n\n if (!match) {\n return data;\n }\n\n const [_, standard, topicId] = match;\n\n this.logger.info(\n `Resolving HRL reference: standard=${standard}, topicId=${topicId}`\n );\n\n try {\n const cdnUrl = `https://kiloscribe.com/api/inscription-cdn/${topicId}?network=${this.network}`;\n const response = await axios.get(cdnUrl);\n\n if (!response.data) {\n throw new Error(`Failed to fetch content from topic: ${topicId}`);\n }\n\n return (\n response.data.content ||\n response.data.text ||\n JSON.stringify(response.data)\n );\n } catch (error) {\n this.logger.error(\n `Error resolving HRL reference: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`\n );\n throw new Error(\n `Failed to resolve HRL reference: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`\n );\n }\n }\n\n /**\n * Records an outbound connection confirmation\n * @param outboundTopicId The ID of the outbound topic\n * @param connectionRequestId The ID of the connection request\n * @param confirmedRequestId The ID of the confirmed request\n * @param connectionTopicId The ID of the connection topic\n * @param operatorId The operator ID of the original message sender.\n * @param memo An optional memo for the message\n */\n public async recordOutboundConnectionConfirmation({\n outboundTopicId,\n requestorOutboundTopicId,\n connectionRequestId,\n confirmedRequestId,\n connectionTopicId,\n operatorId,\n memo,\n }: {\n outboundTopicId: string;\n requestorOutboundTopicId: string;\n connectionRequestId: number;\n confirmedRequestId: number;\n connectionTopicId: string;\n operatorId: string;\n memo: string;\n }): Promise<TransactionReceipt> {\n const payload = {\n p: 'hcs-10',\n op: 'connection_created',\n connection_topic_id: connectionTopicId,\n outbound_topic_id: outboundTopicId,\n requestor_outbound_topic_id: requestorOutboundTopicId,\n confirmed_request_id: confirmedRequestId,\n connection_request_id: connectionRequestId,\n operator_id: operatorId,\n m: memo,\n };\n return await this.submitPayload(outboundTopicId, payload);\n }\n\n public async getOperatorId(disableCache?: boolean): Promise<string> {\n if (this.operatorId && !disableCache) {\n return this.operatorId;\n }\n\n const accountResponse = this.getAccountAndSigner();\n\n if (!accountResponse.accountId) {\n throw new Error('Operator ID not found');\n }\n\n const profile = await this.retrieveProfile(accountResponse.accountId);\n\n if (!profile.success) {\n throw new Error('Failed to retrieve profile');\n }\n\n const operatorId = `${profile.topicInfo?.inboundTopic}@${accountResponse.accountId}`;\n this.operatorId = operatorId;\n return operatorId;\n }\n\n clearCache(): void {\n HCS10Cache.getInstance().clear();\n }\n\n /**\n * Generates a standard HCS-10 memo string.\n * @param type The type of topic memo ('inbound', 'outbound', 'connection').\n * @param options Configuration options for the memo.\n * @returns The formatted memo string.\n * @protected\n */\n protected _generateHcs10Memo(\n type: Hcs10MemoType,\n options: {\n ttl?: number;\n accountId?: string;\n inboundTopicId?: string;\n connectionId?: number;\n }\n ): string {\n const ttl = options.ttl ?? 60; // Default TTL to 60 if not provided\n\n switch (type) {\n case Hcs10MemoType.INBOUND:\n if (!options.accountId) {\n throw new Error('accountId is required for inbound memo');\n }\n return `hcs-10:0:${ttl}:0:${options.accountId}`;\n case Hcs10MemoType.OUTBOUND:\n return `hcs-10:0:${ttl}:1`;\n case Hcs10MemoType.CONNECTION:\n if (!options.inboundTopicId || options.connectionId === undefined) {\n throw new Error(\n 'inboundTopicId and connectionId are required for connection memo'\n );\n }\n return `hcs-10:1:${ttl}:2:${options.inboundTopicId}:${options.connectionId}`;\n default:\n throw new Error(`Invalid HCS-10 memo type: ${type}`);\n }\n }\n\n protected async checkRegistrationStatus(\n transactionId: string,\n network: string,\n baseUrl: string\n ): Promise<{ status: 'pending' | 'success' | 'failed' }> {\n try {\n const response = await fetch(`${baseUrl}/api/request-confirm`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Network': network,\n },\n body: JSON.stringify({ transaction_id: transactionId }),\n });\n\n if (!response.ok) {\n throw new Error(\n `Failed to confirm registration: ${response.statusText}`\n );\n }\n\n return await response.json();\n } catch (error) {\n this.logger.error(`Error checking registration status: ${error}`);\n throw error;\n }\n }\n\n /**\n * Validates if an operator_id follows the correct format (agentTopicId@accountId)\n * @param operatorId The operator ID to validate\n * @returns True if the format is valid, false otherwise\n */\n protected isValidOperatorId(operatorId: string): boolean {\n if (!operatorId) {\n return false;\n }\n\n const parts = operatorId.split('@');\n\n if (parts.length !== 2) {\n return false;\n }\n\n const agentTopicId = parts[0];\n const accountId = parts[1];\n\n if (!agentTopicId) {\n return false;\n }\n\n if (!accountId) {\n return false;\n }\n\n const hederaIdPattern = /^[0-9]+\\.[0-9]+\\.[0-9]+$/;\n\n if (!hederaIdPattern.test(accountId)) {\n return false;\n }\n\n if (!hederaIdPattern.test(agentTopicId)) {\n return false;\n }\n\n return true;\n }\n}\n\nexport class HCS10Cache {\n private static instance: HCS10Cache;\n private cache: Map<string, ProfileResponse>;\n private cacheExpiry: Map<string, number>;\n private readonly CACHE_TTL = 3600000;\n\n private constructor() {\n this.cache = new Map();\n this.cacheExpiry = new Map();\n }\n\n static getInstance(): HCS10Cache {\n if (!HCS10Cache.instance) {\n HCS10Cache.instance = new HCS10Cache();\n }\n return HCS10Cache.instance;\n }\n\n set(key: string, value: ProfileResponse): void {\n this.cache.set(key, value);\n this.cacheExpiry.set(key, Date.now() + this.CACHE_TTL);\n }\n\n get(key: string): ProfileResponse | undefined {\n const expiry = this.cacheExpiry.get(key);\n if (expiry && expiry > Date.now()) {\n return this.cache.get(key);\n }\n if (expiry) {\n this.cache.delete(key);\n this.cacheExpiry.delete(key);\n }\n return undefined;\n }\n\n clear(): void {\n this.cache.clear();\n this.cacheExpiry.clear();\n }\n}\n"],"names":["Hcs10MemoType"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import utils from "./standards-sdk.es36.js";
2
- import parseHeaders from "./standards-sdk.es83.js";
2
+ import parseHeaders from "./standards-sdk.es65.js";
3
3
  const $internals = Symbol("internals");
4
4
  function normalizeHeader(header) {
5
5
  return header && String(header).trim().toLowerCase();
@@ -1,7 +1,7 @@
1
1
  import utils from "./standards-sdk.es36.js";
2
- import httpAdapter from "./standards-sdk.es84.js";
3
- import xhrAdapter from "./standards-sdk.es85.js";
4
- import fetchAdapter from "./standards-sdk.es86.js";
2
+ import httpAdapter from "./standards-sdk.es66.js";
3
+ import xhrAdapter from "./standards-sdk.es67.js";
4
+ import fetchAdapter from "./standards-sdk.es68.js";
5
5
  import AxiosError from "./standards-sdk.es47.js";
6
6
  const knownAdapters = {
7
7
  http: httpAdapter,
@@ -1,26 +1,104 @@
1
- import { keccak_256 } from "./standards-sdk.es54.js";
2
- import { getBytes, hexlify } from "./standards-sdk.es55.js";
3
- let locked = false;
4
- const _keccak256 = function(data) {
5
- return keccak_256(data);
6
- };
7
- let __keccak256 = _keccak256;
8
- function keccak256(_data) {
9
- const data = getBytes(_data, "data");
10
- return hexlify(__keccak256(data));
1
+ import { __exports as mimeTypes } from "./standards-sdk.es54.js";
2
+ import { __require as requireMimeDb } from "./standards-sdk.es55.js";
3
+ import { __require as requirePathBrowserify } from "./standards-sdk.es56.js";
4
+ /*!
5
+ * mime-types
6
+ * Copyright(c) 2014 Jonathan Ong
7
+ * Copyright(c) 2015 Douglas Christopher Wilson
8
+ * MIT Licensed
9
+ */
10
+ var hasRequiredMimeTypes;
11
+ function requireMimeTypes() {
12
+ if (hasRequiredMimeTypes) return mimeTypes;
13
+ hasRequiredMimeTypes = 1;
14
+ (function(exports) {
15
+ var db = requireMimeDb();
16
+ var extname = requirePathBrowserify().extname;
17
+ var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
18
+ var TEXT_TYPE_REGEXP = /^text\//i;
19
+ exports.charset = charset;
20
+ exports.charsets = { lookup: charset };
21
+ exports.contentType = contentType;
22
+ exports.extension = extension;
23
+ exports.extensions = /* @__PURE__ */ Object.create(null);
24
+ exports.lookup = lookup;
25
+ exports.types = /* @__PURE__ */ Object.create(null);
26
+ populateMaps(exports.extensions, exports.types);
27
+ function charset(type) {
28
+ if (!type || typeof type !== "string") {
29
+ return false;
30
+ }
31
+ var match = EXTRACT_TYPE_REGEXP.exec(type);
32
+ var mime = match && db[match[1].toLowerCase()];
33
+ if (mime && mime.charset) {
34
+ return mime.charset;
35
+ }
36
+ if (match && TEXT_TYPE_REGEXP.test(match[1])) {
37
+ return "UTF-8";
38
+ }
39
+ return false;
40
+ }
41
+ function contentType(str) {
42
+ if (!str || typeof str !== "string") {
43
+ return false;
44
+ }
45
+ var mime = str.indexOf("/") === -1 ? exports.lookup(str) : str;
46
+ if (!mime) {
47
+ return false;
48
+ }
49
+ if (mime.indexOf("charset") === -1) {
50
+ var charset2 = exports.charset(mime);
51
+ if (charset2) mime += "; charset=" + charset2.toLowerCase();
52
+ }
53
+ return mime;
54
+ }
55
+ function extension(type) {
56
+ if (!type || typeof type !== "string") {
57
+ return false;
58
+ }
59
+ var match = EXTRACT_TYPE_REGEXP.exec(type);
60
+ var exts = match && exports.extensions[match[1].toLowerCase()];
61
+ if (!exts || !exts.length) {
62
+ return false;
63
+ }
64
+ return exts[0];
65
+ }
66
+ function lookup(path) {
67
+ if (!path || typeof path !== "string") {
68
+ return false;
69
+ }
70
+ var extension2 = extname("x." + path).toLowerCase().substr(1);
71
+ if (!extension2) {
72
+ return false;
73
+ }
74
+ return exports.types[extension2] || false;
75
+ }
76
+ function populateMaps(extensions, types) {
77
+ var preference = ["nginx", "apache", void 0, "iana"];
78
+ Object.keys(db).forEach(function forEachMimeType(type) {
79
+ var mime = db[type];
80
+ var exts = mime.extensions;
81
+ if (!exts || !exts.length) {
82
+ return;
83
+ }
84
+ extensions[type] = exts;
85
+ for (var i = 0; i < exts.length; i++) {
86
+ var extension2 = exts[i];
87
+ if (types[extension2]) {
88
+ var from = preference.indexOf(db[types[extension2]].source);
89
+ var to = preference.indexOf(mime.source);
90
+ if (types[extension2] !== "application/octet-stream" && (from > to || from === to && types[extension2].substr(0, 12) === "application/")) {
91
+ continue;
92
+ }
93
+ }
94
+ types[extension2] = type;
95
+ }
96
+ });
97
+ }
98
+ })(mimeTypes);
99
+ return mimeTypes;
11
100
  }
12
- keccak256._ = _keccak256;
13
- keccak256.lock = function() {
14
- locked = true;
15
- };
16
- keccak256.register = function(func) {
17
- if (locked) {
18
- throw new TypeError("keccak256 is locked");
19
- }
20
- __keccak256 = func;
21
- };
22
- Object.freeze(keccak256);
23
101
  export {
24
- keccak256
102
+ requireMimeTypes as __require
25
103
  };
26
104
  //# sourceMappingURL=standards-sdk.es53.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es53.js","sources":["../../node_modules/ethers/lib.esm/crypto/keccak.js"],"sourcesContent":["/**\n * Cryptographic hashing functions\n *\n * @_subsection: api/crypto:Hash Functions [about-crypto-hashing]\n */\nimport { keccak_256 } from \"@noble/hashes/sha3\";\nimport { getBytes, hexlify } from \"../utils/index.js\";\nlet locked = false;\nconst _keccak256 = function (data) {\n return keccak_256(data);\n};\nlet __keccak256 = _keccak256;\n/**\n * Compute the cryptographic KECCAK256 hash of %%data%%.\n *\n * The %%data%% **must** be a data representation, to compute the\n * hash of UTF-8 data use the [[id]] function.\n *\n * @returns DataHexstring\n * @example:\n * keccak256(\"0x\")\n * //_result:\n *\n * keccak256(\"0x1337\")\n * //_result:\n *\n * keccak256(new Uint8Array([ 0x13, 0x37 ]))\n * //_result:\n *\n * // Strings are assumed to be DataHexString, otherwise it will\n * // throw. To hash UTF-8 data, see the note above.\n * keccak256(\"Hello World\")\n * //_error:\n */\nexport function keccak256(_data) {\n const data = getBytes(_data, \"data\");\n return hexlify(__keccak256(data));\n}\nkeccak256._ = _keccak256;\nkeccak256.lock = function () { locked = true; };\nkeccak256.register = function (func) {\n if (locked) {\n throw new TypeError(\"keccak256 is locked\");\n }\n __keccak256 = func;\n};\nObject.freeze(keccak256);\n//# sourceMappingURL=keccak.js.map"],"names":[],"mappings":";;AAOA,IAAI,SAAS;AACb,MAAM,aAAa,SAAU,MAAM;AAC/B,SAAO,WAAW,IAAI;AAC1B;AACA,IAAI,cAAc;AAuBX,SAAS,UAAU,OAAO;AAC7B,QAAM,OAAO,SAAS,OAAO,MAAM;AACnC,SAAO,QAAQ,YAAY,IAAI,CAAC;AACpC;AACA,UAAU,IAAI;AACd,UAAU,OAAO,WAAY;AAAE,WAAS;AAAO;AAC/C,UAAU,WAAW,SAAU,MAAM;AACjC,MAAI,QAAQ;AACR,UAAM,IAAI,UAAU,qBAAqB;AAAA,EACjD;AACI,gBAAc;AAClB;AACA,OAAO,OAAO,SAAS;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"standards-sdk.es53.js","sources":["../../node_modules/mime-types/index.js"],"sourcesContent":["/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n"],"names":["require$$0","require$$1","charset","extension"],"mappings":";;;;;;;;;;;;;;AAcA,QAAI,KAAKA,cAAA;AACT,QAAI,UAAUC,wBAAgB;AAO9B,QAAI,sBAAsB;AAC1B,QAAI,mBAAmB;AAOvB,YAAkB,UAAA;AAClB,YAAmB,WAAA,EAAE,QAAQ,QAAO;AACpC,YAAsB,cAAA;AACtB,YAAoB,YAAA;AACpB,YAAA,aAAqB,uBAAO,OAAO,IAAI;AACvC,YAAiB,SAAA;AACjB,YAAA,QAAgB,uBAAO,OAAO,IAAI;AAGlC,iBAAa,QAAQ,YAAY,QAAQ,KAAK;AAS9C,aAAS,QAAS,MAAM;AACtB,UAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,eAAO;AAAA,MACX;AAGE,UAAI,QAAQ,oBAAoB,KAAK,IAAI;AACzC,UAAI,OAAO,SAAS,GAAG,MAAM,CAAC,EAAE,YAAa,CAAA;AAE7C,UAAI,QAAQ,KAAK,SAAS;AACxB,eAAO,KAAK;AAAA,MAChB;AAGE,UAAI,SAAS,iBAAiB,KAAK,MAAM,CAAC,CAAC,GAAG;AAC5C,eAAO;AAAA,MACX;AAEE,aAAO;AAAA,IACT;AASA,aAAS,YAAa,KAAK;AAEzB,UAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,eAAO;AAAA,MACX;AAEE,UAAI,OAAO,IAAI,QAAQ,GAAG,MAAM,KAC5B,QAAQ,OAAO,GAAG,IAClB;AAEJ,UAAI,CAAC,MAAM;AACT,eAAO;AAAA,MACX;AAGE,UAAI,KAAK,QAAQ,SAAS,MAAM,IAAI;AAClC,YAAIC,WAAU,QAAQ,QAAQ,IAAI;AAClC,YAAIA,SAAS,SAAQ,eAAeA,SAAQ,YAAW;AAAA,MAC3D;AAEE,aAAO;AAAA,IACT;AASA,aAAS,UAAW,MAAM;AACxB,UAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,eAAO;AAAA,MACX;AAGE,UAAI,QAAQ,oBAAoB,KAAK,IAAI;AAGzC,UAAI,OAAO,SAAS,QAAQ,WAAW,MAAM,CAAC,EAAE,YAAa,CAAA;AAE7D,UAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ;AACzB,eAAO;AAAA,MACX;AAEE,aAAO,KAAK,CAAC;AAAA,IACf;AASA,aAAS,OAAQ,MAAM;AACrB,UAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,eAAO;AAAA,MACX;AAGE,UAAIC,aAAY,QAAQ,OAAO,IAAI,EAChC,YAAW,EACX,OAAO,CAAC;AAEX,UAAI,CAACA,YAAW;AACd,eAAO;AAAA,MACX;AAEE,aAAO,QAAQ,MAAMA,UAAS,KAAK;AAAA,IACrC;AAOA,aAAS,aAAc,YAAY,OAAO;AAExC,UAAI,aAAa,CAAC,SAAS,UAAU,QAAW,MAAM;AAEtD,aAAO,KAAK,EAAE,EAAE,QAAQ,SAAS,gBAAiB,MAAM;AACtD,YAAI,OAAO,GAAG,IAAI;AAClB,YAAI,OAAO,KAAK;AAEhB,YAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ;AACzB;AAAA,QACN;AAGI,mBAAW,IAAI,IAAI;AAGnB,iBAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,cAAIA,aAAY,KAAK,CAAC;AAEtB,cAAI,MAAMA,UAAS,GAAG;AACpB,gBAAI,OAAO,WAAW,QAAQ,GAAG,MAAMA,UAAS,CAAC,EAAE,MAAM;AACzD,gBAAI,KAAK,WAAW,QAAQ,KAAK,MAAM;AAEvC,gBAAI,MAAMA,UAAS,MAAM,+BACtB,OAAO,MAAO,SAAS,MAAM,MAAMA,UAAS,EAAE,OAAO,GAAG,EAAE,MAAM,iBAAkB;AAEnF;AAAA,YACV;AAAA,UACA;AAGM,gBAAMA,UAAS,IAAI;AAAA,QACzB;AAAA,MACG,CAAA;AAAA,IACH;AAAA;;;","x_google_ignoreList":[0]}
@@ -1,177 +1,5 @@
1
- import { number, exists, bytes, output } from "./standards-sdk.es87.js";
2
- import { rotlSH, rotlSL, rotlBH, rotlBL, split } from "./standards-sdk.es88.js";
3
- import { wrapConstructor, Hash, u32, toBytes } from "./standards-sdk.es89.js";
4
- const [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];
5
- const _0n = /* @__PURE__ */ BigInt(0);
6
- const _1n = /* @__PURE__ */ BigInt(1);
7
- const _2n = /* @__PURE__ */ BigInt(2);
8
- const _7n = /* @__PURE__ */ BigInt(7);
9
- const _256n = /* @__PURE__ */ BigInt(256);
10
- const _0x71n = /* @__PURE__ */ BigInt(113);
11
- for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {
12
- [x, y] = [y, (2 * x + 3 * y) % 5];
13
- SHA3_PI.push(2 * (5 * y + x));
14
- SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64);
15
- let t = _0n;
16
- for (let j = 0; j < 7; j++) {
17
- R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n;
18
- if (R & _2n)
19
- t ^= _1n << (_1n << /* @__PURE__ */ BigInt(j)) - _1n;
20
- }
21
- _SHA3_IOTA.push(t);
22
- }
23
- const [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);
24
- const rotlH = (h, l, s) => s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s);
25
- const rotlL = (h, l, s) => s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s);
26
- function keccakP(s, rounds = 24) {
27
- const B = new Uint32Array(5 * 2);
28
- for (let round = 24 - rounds; round < 24; round++) {
29
- for (let x = 0; x < 10; x++)
30
- B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];
31
- for (let x = 0; x < 10; x += 2) {
32
- const idx1 = (x + 8) % 10;
33
- const idx0 = (x + 2) % 10;
34
- const B0 = B[idx0];
35
- const B1 = B[idx0 + 1];
36
- const Th = rotlH(B0, B1, 1) ^ B[idx1];
37
- const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];
38
- for (let y = 0; y < 50; y += 10) {
39
- s[x + y] ^= Th;
40
- s[x + y + 1] ^= Tl;
41
- }
42
- }
43
- let curH = s[2];
44
- let curL = s[3];
45
- for (let t = 0; t < 24; t++) {
46
- const shift = SHA3_ROTL[t];
47
- const Th = rotlH(curH, curL, shift);
48
- const Tl = rotlL(curH, curL, shift);
49
- const PI = SHA3_PI[t];
50
- curH = s[PI];
51
- curL = s[PI + 1];
52
- s[PI] = Th;
53
- s[PI + 1] = Tl;
54
- }
55
- for (let y = 0; y < 50; y += 10) {
56
- for (let x = 0; x < 10; x++)
57
- B[x] = s[y + x];
58
- for (let x = 0; x < 10; x++)
59
- s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];
60
- }
61
- s[0] ^= SHA3_IOTA_H[round];
62
- s[1] ^= SHA3_IOTA_L[round];
63
- }
64
- B.fill(0);
65
- }
66
- class Keccak extends Hash {
67
- // NOTE: we accept arguments in bytes instead of bits here.
68
- constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {
69
- super();
70
- this.blockLen = blockLen;
71
- this.suffix = suffix;
72
- this.outputLen = outputLen;
73
- this.enableXOF = enableXOF;
74
- this.rounds = rounds;
75
- this.pos = 0;
76
- this.posOut = 0;
77
- this.finished = false;
78
- this.destroyed = false;
79
- number(outputLen);
80
- if (0 >= this.blockLen || this.blockLen >= 200)
81
- throw new Error("Sha3 supports only keccak-f1600 function");
82
- this.state = new Uint8Array(200);
83
- this.state32 = u32(this.state);
84
- }
85
- keccak() {
86
- keccakP(this.state32, this.rounds);
87
- this.posOut = 0;
88
- this.pos = 0;
89
- }
90
- update(data) {
91
- exists(this);
92
- const { blockLen, state } = this;
93
- data = toBytes(data);
94
- const len = data.length;
95
- for (let pos = 0; pos < len; ) {
96
- const take = Math.min(blockLen - this.pos, len - pos);
97
- for (let i = 0; i < take; i++)
98
- state[this.pos++] ^= data[pos++];
99
- if (this.pos === blockLen)
100
- this.keccak();
101
- }
102
- return this;
103
- }
104
- finish() {
105
- if (this.finished)
106
- return;
107
- this.finished = true;
108
- const { state, suffix, pos, blockLen } = this;
109
- state[pos] ^= suffix;
110
- if ((suffix & 128) !== 0 && pos === blockLen - 1)
111
- this.keccak();
112
- state[blockLen - 1] ^= 128;
113
- this.keccak();
114
- }
115
- writeInto(out) {
116
- exists(this, false);
117
- bytes(out);
118
- this.finish();
119
- const bufferOut = this.state;
120
- const { blockLen } = this;
121
- for (let pos = 0, len = out.length; pos < len; ) {
122
- if (this.posOut >= blockLen)
123
- this.keccak();
124
- const take = Math.min(blockLen - this.posOut, len - pos);
125
- out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);
126
- this.posOut += take;
127
- pos += take;
128
- }
129
- return out;
130
- }
131
- xofInto(out) {
132
- if (!this.enableXOF)
133
- throw new Error("XOF is not possible for this instance");
134
- return this.writeInto(out);
135
- }
136
- xof(bytes2) {
137
- number(bytes2);
138
- return this.xofInto(new Uint8Array(bytes2));
139
- }
140
- digestInto(out) {
141
- output(out, this);
142
- if (this.finished)
143
- throw new Error("digest() was already called");
144
- this.writeInto(out);
145
- this.destroy();
146
- return out;
147
- }
148
- digest() {
149
- return this.digestInto(new Uint8Array(this.outputLen));
150
- }
151
- destroy() {
152
- this.destroyed = true;
153
- this.state.fill(0);
154
- }
155
- _cloneInto(to) {
156
- const { blockLen, suffix, outputLen, rounds, enableXOF } = this;
157
- to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));
158
- to.state32.set(this.state32);
159
- to.pos = this.pos;
160
- to.posOut = this.posOut;
161
- to.finished = this.finished;
162
- to.rounds = rounds;
163
- to.suffix = suffix;
164
- to.outputLen = outputLen;
165
- to.enableXOF = enableXOF;
166
- to.destroyed = this.destroyed;
167
- return to;
168
- }
169
- }
170
- const gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));
171
- const keccak_256 = /* @__PURE__ */ gen(1, 136, 256 / 8);
1
+ var mimeTypes = {};
172
2
  export {
173
- Keccak,
174
- keccakP,
175
- keccak_256
3
+ mimeTypes as __exports
176
4
  };
177
5
  //# sourceMappingURL=standards-sdk.es54.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es54.js","sources":["../../node_modules/@noble/hashes/esm/sha3.js"],"sourcesContent":["import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n exists(this, false);\n bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map"],"names":["bytes"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"standards-sdk.es54.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,94 +1,19 @@
1
- import { assert, assertArgument } from "./standards-sdk.es70.js";
2
- function _getBytes(value, name, copy) {
3
- if (value instanceof Uint8Array) {
4
- if (copy) {
5
- return new Uint8Array(value);
6
- }
7
- return value;
8
- }
9
- if (typeof value === "string" && value.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)) {
10
- const result = new Uint8Array((value.length - 2) / 2);
11
- let offset = 2;
12
- for (let i = 0; i < result.length; i++) {
13
- result[i] = parseInt(value.substring(offset, offset + 2), 16);
14
- offset += 2;
15
- }
16
- return result;
17
- }
18
- assertArgument(false, "invalid BytesLike value", name || "value", value);
19
- }
20
- function getBytes(value, name) {
21
- return _getBytes(value, name, false);
22
- }
23
- function getBytesCopy(value, name) {
24
- return _getBytes(value, name, true);
25
- }
26
- function isHexString(value, length) {
27
- if (typeof value !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) {
28
- return false;
29
- }
30
- if (typeof length === "number" && value.length !== 2 + 2 * length) {
31
- return false;
32
- }
33
- if (length === true && value.length % 2 !== 0) {
34
- return false;
35
- }
36
- return true;
37
- }
38
- const HexCharacters = "0123456789abcdef";
39
- function hexlify(data) {
40
- const bytes = getBytes(data);
41
- let result = "0x";
42
- for (let i = 0; i < bytes.length; i++) {
43
- const v = bytes[i];
44
- result += HexCharacters[(v & 240) >> 4] + HexCharacters[v & 15];
45
- }
46
- return result;
47
- }
48
- function concat(datas) {
49
- return "0x" + datas.map((d) => hexlify(d).substring(2)).join("");
50
- }
51
- function dataSlice(data, start, end) {
52
- const bytes = getBytes(data);
53
- if (end != null && end > bytes.length) {
54
- assert(false, "cannot slice beyond data bounds", "BUFFER_OVERRUN", {
55
- buffer: bytes,
56
- length: bytes.length,
57
- offset: end
58
- });
59
- }
60
- return hexlify(bytes.slice(start == null ? 0 : start, end == null ? bytes.length : end));
61
- }
62
- function zeroPad(data, length, left) {
63
- const bytes = getBytes(data);
64
- assert(length >= bytes.length, "padding exceeds data length", "BUFFER_OVERRUN", {
65
- buffer: new Uint8Array(bytes),
66
- length,
67
- offset: length + 1
68
- });
69
- const result = new Uint8Array(length);
70
- result.fill(0);
71
- if (left) {
72
- result.set(bytes, length - bytes.length);
73
- } else {
74
- result.set(bytes, 0);
75
- }
76
- return hexlify(result);
77
- }
78
- function zeroPadValue(data, length) {
79
- return zeroPad(data, length, true);
80
- }
81
- function zeroPadBytes(data, length) {
82
- return zeroPad(data, length, false);
1
+ import require$$0 from "./standards-sdk.es69.js";
2
+ /*!
3
+ * mime-db
4
+ * Copyright(c) 2014 Jonathan Ong
5
+ * Copyright(c) 2015-2022 Douglas Christopher Wilson
6
+ * MIT Licensed
7
+ */
8
+ var mimeDb;
9
+ var hasRequiredMimeDb;
10
+ function requireMimeDb() {
11
+ if (hasRequiredMimeDb) return mimeDb;
12
+ hasRequiredMimeDb = 1;
13
+ mimeDb = require$$0;
14
+ return mimeDb;
83
15
  }
84
16
  export {
85
- concat,
86
- dataSlice,
87
- getBytes,
88
- getBytesCopy,
89
- hexlify,
90
- isHexString,
91
- zeroPadBytes,
92
- zeroPadValue
17
+ requireMimeDb as __require
93
18
  };
94
19
  //# sourceMappingURL=standards-sdk.es55.js.map