@hashgraphonline/standards-sdk 0.1.168 → 0.1.170
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/browser/hcs-11/client.d.ts.map +1 -1
- package/dist/browser/hcs-21/sdk.d.ts.map +1 -1
- package/dist/browser/hcs-27/base-client.d.ts +41 -0
- package/dist/browser/hcs-27/base-client.d.ts.map +1 -0
- package/dist/browser/hcs-27/index.d.ts +6 -0
- package/dist/browser/hcs-27/index.d.ts.map +1 -0
- package/dist/browser/hcs-27/memos.d.ts +5 -0
- package/dist/browser/hcs-27/memos.d.ts.map +1 -0
- package/dist/browser/hcs-27/merkle.d.ts +23 -0
- package/dist/browser/hcs-27/merkle.d.ts.map +1 -0
- package/dist/browser/hcs-27/sdk.d.ts +23 -0
- package/dist/browser/hcs-27/sdk.d.ts.map +1 -0
- package/dist/browser/hcs-27/types.d.ts +1611 -0
- package/dist/browser/hcs-27/types.d.ts.map +1 -0
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/standards-sdk.browser.js +29 -5
- package/dist/browser/standards-sdk.browser.js.map +1 -1
- package/dist/browser/utils/key-type-detector.d.ts.map +1 -1
- package/dist/cjs/hcs-11/client.d.ts.map +1 -1
- package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-27/base-client.d.ts +41 -0
- package/dist/cjs/hcs-27/base-client.d.ts.map +1 -0
- package/dist/cjs/hcs-27/index.d.ts +6 -0
- package/dist/cjs/hcs-27/index.d.ts.map +1 -0
- package/dist/cjs/hcs-27/memos.d.ts +5 -0
- package/dist/cjs/hcs-27/memos.d.ts.map +1 -0
- package/dist/cjs/hcs-27/merkle.d.ts +23 -0
- package/dist/cjs/hcs-27/merkle.d.ts.map +1 -0
- package/dist/cjs/hcs-27/sdk.d.ts +23 -0
- package/dist/cjs/hcs-27/sdk.d.ts.map +1 -0
- package/dist/cjs/hcs-27/types.d.ts +1611 -0
- package/dist/cjs/hcs-27/types.d.ts.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +2 -2
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/cjs/utils/key-type-detector.d.ts.map +1 -1
- package/dist/es/hcs-11/client.d.ts.map +1 -1
- package/dist/es/hcs-21/sdk.d.ts.map +1 -1
- package/dist/es/hcs-27/base-client.d.ts +41 -0
- package/dist/es/hcs-27/base-client.d.ts.map +1 -0
- package/dist/es/hcs-27/index.d.ts +6 -0
- package/dist/es/hcs-27/index.d.ts.map +1 -0
- package/dist/es/hcs-27/memos.d.ts +5 -0
- package/dist/es/hcs-27/memos.d.ts.map +1 -0
- package/dist/es/hcs-27/merkle.d.ts +23 -0
- package/dist/es/hcs-27/merkle.d.ts.map +1 -0
- package/dist/es/hcs-27/sdk.d.ts +23 -0
- package/dist/es/hcs-27/sdk.d.ts.map +1 -0
- package/dist/es/hcs-27/types.d.ts +1611 -0
- package/dist/es/hcs-27/types.d.ts.map +1 -0
- package/dist/es/index.d.ts +1 -0
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +67 -38
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +2 -2
- package/dist/es/standards-sdk.es103.js +2 -2
- package/dist/es/standards-sdk.es104.js +1 -1
- package/dist/es/standards-sdk.es106.js +1 -1
- package/dist/es/standards-sdk.es108.js +2 -2
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +1 -1
- package/dist/es/standards-sdk.es111.js +2 -2
- package/dist/es/standards-sdk.es112.js +151 -234
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +20 -471
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +263 -104
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +167 -138
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +315 -29
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +250 -10
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +448 -152
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +101 -25
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es120.js +155 -17
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +29 -155
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +9 -200
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +146 -754
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +27 -11
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +19 -564
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +140 -582
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +202 -12
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +790 -2
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +10 -84
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es130.js +567 -40
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +626 -2
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +12 -234
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +2 -1140
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +73 -292
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +36 -418
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +2 -355
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +198 -1079
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +1107 -175
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +218 -1479
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es140.js +422 -1500
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +351 -13
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +1102 -73
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +203 -76
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +1459 -830
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +1499 -59
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +14 -156
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +87 -7
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +74 -79
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +934 -61
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es150.js +60 -30
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +159 -34
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +7 -48
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +70 -122
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +58 -35
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +30 -56
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +34 -84
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +48 -81
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +124 -186
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +34 -12474
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +5 -5
- package/dist/es/standards-sdk.es160.js +12477 -12
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +51 -68
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +67 -533
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +70 -161
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +187 -309
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +13 -342
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +538 -441
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +142 -301
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +310 -64
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +332 -158
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +441 -210
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +314 -222
- package/dist/es/standards-sdk.es171.js.map +1 -1
- package/dist/es/standards-sdk.es172.js +65 -108
- package/dist/es/standards-sdk.es172.js.map +1 -1
- package/dist/es/standards-sdk.es173.js +61 -114
- package/dist/es/standards-sdk.es173.js.map +1 -1
- package/dist/es/standards-sdk.es174.js +151 -140
- package/dist/es/standards-sdk.es174.js.map +1 -1
- package/dist/es/standards-sdk.es175.js +193 -156
- package/dist/es/standards-sdk.es175.js.map +1 -1
- package/dist/es/standards-sdk.es176.js +221 -121
- package/dist/es/standards-sdk.es176.js.map +1 -1
- package/dist/es/standards-sdk.es177.js +81 -293
- package/dist/es/standards-sdk.es177.js.map +1 -1
- package/dist/es/standards-sdk.es178.js +114 -247
- package/dist/es/standards-sdk.es178.js.map +1 -1
- package/dist/es/standards-sdk.es179.js +119 -110
- package/dist/es/standards-sdk.es179.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +12 -12
- package/dist/es/standards-sdk.es180.js +188 -0
- package/dist/es/standards-sdk.es180.js.map +1 -0
- package/dist/es/standards-sdk.es181.js +142 -0
- package/dist/es/standards-sdk.es181.js.map +1 -0
- package/dist/es/standards-sdk.es182.js +334 -0
- package/dist/es/standards-sdk.es182.js.map +1 -0
- package/dist/es/standards-sdk.es183.js +262 -0
- package/dist/es/standards-sdk.es183.js.map +1 -0
- package/dist/es/standards-sdk.es184.js +155 -0
- package/dist/es/standards-sdk.es184.js.map +1 -0
- package/dist/es/standards-sdk.es19.js +9 -9
- package/dist/es/standards-sdk.es2.js +2 -2
- package/dist/es/standards-sdk.es20.js +1 -1
- package/dist/es/standards-sdk.es21.js +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es23.js +1 -1
- package/dist/es/standards-sdk.es24.js +1 -1
- package/dist/es/standards-sdk.es25.js +1 -1
- package/dist/es/standards-sdk.es26.js +1 -1
- package/dist/es/standards-sdk.es27.js +12 -12
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +2 -2
- package/dist/es/standards-sdk.es31.js +4 -4
- package/dist/es/standards-sdk.es32.js +1 -1
- package/dist/es/standards-sdk.es35.js +6 -6
- package/dist/es/standards-sdk.es36.js +4 -4
- package/dist/es/standards-sdk.es37.js +2 -2
- package/dist/es/standards-sdk.es38.js +2 -2
- package/dist/es/standards-sdk.es39.js +1 -1
- package/dist/es/standards-sdk.es4.js +2 -2
- package/dist/es/standards-sdk.es40.js +1 -1
- package/dist/es/standards-sdk.es41.js +2 -2
- package/dist/es/standards-sdk.es46.js +1 -1
- package/dist/es/standards-sdk.es5.js +2 -2
- package/dist/es/standards-sdk.es51.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +2 -2
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +1 -1
- package/dist/es/standards-sdk.es62.js +1 -1
- package/dist/es/standards-sdk.es63.js +2 -2
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +1 -1
- package/dist/es/standards-sdk.es66.js +1 -1
- package/dist/es/standards-sdk.es67.js +7 -7
- package/dist/es/standards-sdk.es69.js +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es71.js +2 -2
- package/dist/es/standards-sdk.es72.js +3 -3
- package/dist/es/standards-sdk.es75.js +5 -5
- package/dist/es/standards-sdk.es76.js +3 -3
- package/dist/es/standards-sdk.es77.js +2 -2
- package/dist/es/standards-sdk.es78.js +1 -1
- package/dist/es/standards-sdk.es81.js +2 -2
- package/dist/es/standards-sdk.es83.js +2 -2
- package/dist/es/standards-sdk.es84.js +4 -4
- package/dist/es/standards-sdk.es85.js +1 -1
- package/dist/es/standards-sdk.es88.js +1 -1
- package/dist/es/standards-sdk.es89.js +2 -2
- package/dist/es/standards-sdk.es9.js +2 -2
- package/dist/es/standards-sdk.es90.js +4 -4
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +3 -3
- package/dist/es/standards-sdk.es96.js +2 -2
- package/dist/es/standards-sdk.es98.js +1 -1
- package/dist/es/standards-sdk.es99.js +3 -3
- package/dist/es/utils/key-type-detector.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es170.js","sources":["../../src/services/registry-broker/client/search.ts"],"sourcesContent":["import type {\n JsonValue,\n PopularSearchesResponse,\n ProtocolDetectionMessage,\n DetectProtocolResponse,\n ProtocolsResponse,\n RegistriesResponse,\n AdditionalRegistryCatalogResponse,\n RegistrySearchByNamespaceResponse,\n RegistryStatsResponse,\n SearchFacetsResponse,\n SearchParams,\n SearchResult,\n SearchStatusResponse,\n VectorSearchRequest,\n VectorSearchResponse,\n WebsocketStatsResponse,\n MetricsSummaryResponse,\n} from '../types';\nimport {\n additionalRegistryCatalogResponseSchema,\n detectProtocolResponseSchema,\n metricsSummaryResponseSchema,\n popularResponseSchema,\n protocolsResponseSchema,\n registriesResponseSchema,\n registrySearchByNamespaceSchema,\n searchFacetsResponseSchema,\n searchResponseSchema,\n searchStatusResponseSchema,\n statsResponseSchema,\n vectorSearchResponseSchema,\n websocketStatsResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\nimport { buildSearchQuery } from './utils';\nimport { RegistryBrokerError } from './errors';\n\nfunction buildVectorFallbackSearchParams(\n request: VectorSearchRequest,\n): SearchParams {\n const params: SearchParams = {\n q: request.query,\n };\n let effectiveLimit: number | undefined;\n if (typeof request.limit === 'number' && Number.isFinite(request.limit)) {\n effectiveLimit = request.limit;\n params.limit = request.limit;\n }\n if (\n typeof request.offset === 'number' &&\n Number.isFinite(request.offset) &&\n request.offset > 0\n ) {\n const limit = effectiveLimit && effectiveLimit > 0 ? effectiveLimit : 20;\n params.limit = limit;\n params.page = Math.floor(request.offset / limit) + 1;\n }\n if (request.filter?.registry) {\n params.registry = request.filter.registry;\n }\n if (request.filter?.protocols?.length) {\n params.protocols = [...request.filter.protocols];\n }\n if (request.filter?.adapter?.length) {\n params.adapters = [...request.filter.adapter];\n }\n if (request.filter?.capabilities?.length) {\n params.capabilities = request.filter.capabilities.map(value =>\n typeof value === 'number' ? value.toString(10) : value,\n );\n }\n if (request.filter?.type) {\n params.type = request.filter.type;\n }\n return params;\n}\n\nfunction convertSearchResultToVectorResponse(\n result: SearchResult,\n): VectorSearchResponse {\n const hits = result.hits.map(agent => ({\n agent,\n score: 0,\n highlights: {},\n }));\n const total = result.total;\n const limit = result.limit;\n const page = result.page;\n const totalVisible = page * limit;\n const limited = total > totalVisible || page > 1;\n\n return {\n hits,\n total,\n took: 0,\n totalAvailable: total,\n visible: hits.length,\n limited,\n credits_used: 0,\n };\n}\n\nexport async function search(\n client: RegistryBrokerClient,\n params: SearchParams = {},\n): Promise<SearchResult> {\n const query = buildSearchQuery(params);\n const raw = await client.requestJson<JsonValue>(`/search${query}`, {\n method: 'GET',\n });\n return client.parseWithSchema(raw, searchResponseSchema, 'search response');\n}\n\nexport async function stats(\n client: RegistryBrokerClient,\n): Promise<RegistryStatsResponse> {\n const raw = await client.requestJson<JsonValue>('/stats', { method: 'GET' });\n return client.parseWithSchema(raw, statsResponseSchema, 'stats response');\n}\n\nexport async function registries(\n client: RegistryBrokerClient,\n): Promise<RegistriesResponse> {\n const raw = await client.requestJson<JsonValue>('/registries', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n registriesResponseSchema,\n 'registries response',\n );\n}\n\nexport async function getAdditionalRegistries(\n client: RegistryBrokerClient,\n): Promise<AdditionalRegistryCatalogResponse> {\n const raw = await client.requestJson<JsonValue>(\n '/register/additional-registries',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n additionalRegistryCatalogResponseSchema,\n 'additional registry catalog response',\n );\n}\n\nexport async function popularSearches(\n client: RegistryBrokerClient,\n): Promise<PopularSearchesResponse> {\n const raw = await client.requestJson<JsonValue>('/popular', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n popularResponseSchema,\n 'popular searches response',\n );\n}\n\nexport async function listProtocols(\n client: RegistryBrokerClient,\n): Promise<ProtocolsResponse> {\n const raw = await client.requestJson<JsonValue>('/protocols', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n protocolsResponseSchema,\n 'protocols response',\n );\n}\n\nexport async function detectProtocol(\n client: RegistryBrokerClient,\n message: ProtocolDetectionMessage,\n): Promise<DetectProtocolResponse> {\n const raw = await client.requestJson<JsonValue>('/detect-protocol', {\n method: 'POST',\n body: { message },\n headers: { 'content-type': 'application/json' },\n });\n return client.parseWithSchema(\n raw,\n detectProtocolResponseSchema,\n 'detect protocol response',\n );\n}\n\nexport async function registrySearchByNamespace(\n client: RegistryBrokerClient,\n registry: string,\n query?: string,\n): Promise<RegistrySearchByNamespaceResponse> {\n const params = new URLSearchParams();\n if (query) {\n params.set('q', query);\n }\n const suffix = params.size > 0 ? `?${params.toString()}` : '';\n const raw = await client.requestJson<JsonValue>(\n `/registries/${encodeURIComponent(registry)}/search${suffix}`,\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n registrySearchByNamespaceSchema,\n 'registry search response',\n );\n}\n\nexport async function vectorSearch(\n client: RegistryBrokerClient,\n request: VectorSearchRequest,\n): Promise<VectorSearchResponse> {\n try {\n const raw = await client.requestJson<JsonValue>('/search', {\n method: 'POST',\n body: request,\n headers: { 'content-type': 'application/json' },\n });\n return client.parseWithSchema(\n raw,\n vectorSearchResponseSchema,\n 'vector search response',\n );\n } catch (error) {\n if (error instanceof RegistryBrokerError && error.status === 501) {\n const fallback = await search(\n client,\n buildVectorFallbackSearchParams(request),\n );\n return convertSearchResultToVectorResponse(fallback);\n }\n throw error;\n }\n}\n\nexport async function searchStatus(\n client: RegistryBrokerClient,\n): Promise<SearchStatusResponse> {\n const raw = await client.requestJson<JsonValue>('/search/status', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n searchStatusResponseSchema,\n 'search status response',\n );\n}\n\nexport async function websocketStats(\n client: RegistryBrokerClient,\n): Promise<WebsocketStatsResponse> {\n const raw = await client.requestJson<JsonValue>('/websocket/stats', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n websocketStatsResponseSchema,\n 'websocket stats response',\n );\n}\n\nexport async function metricsSummary(\n client: RegistryBrokerClient,\n): Promise<MetricsSummaryResponse> {\n const raw = await client.requestJson<JsonValue>('/metrics', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n metricsSummaryResponseSchema,\n 'metrics summary response',\n );\n}\n\nexport async function facets(\n client: RegistryBrokerClient,\n adapter?: string,\n): Promise<SearchFacetsResponse> {\n const params = new URLSearchParams();\n if (adapter) {\n params.set('adapter', adapter);\n }\n const suffix = params.size > 0 ? `?${params.toString()}` : '';\n const raw = await client.requestJson<JsonValue>(`/search/facets${suffix}`, {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n searchFacetsResponseSchema,\n 'search facets response',\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es170.js","sources":["../../src/utils/parsers/scs-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { ContractId, Hbar, HbarUnit, Long, Transaction } from '@hashgraph/sdk';\nimport {\n ContractCallData,\n ContractCreateData,\n ContractUpdateData,\n ContractDeleteData,\n} from '../transaction-parser-types';\nimport { Buffer } from 'buffer';\nimport {\n parseKey,\n extractTransactionBody,\n hasTransactionType,\n} from './parser-utils';\nimport { AccountId, FileId } from '@hashgraph/sdk';\n\n/**\n * Smart Contract Service (SCS) Parser\n *\n * Handles parsing for all contract-related transaction types including:\n * - Contract calls (including EthereumTransaction)\n * - Contract creation, updates, and deletion\n * - Proper dual-branch parsing (regular vs signed transactions)\n * - Comprehensive protobuf extraction\n */\nexport class SCSParser {\n /**\n * Parse Smart Contract Service transaction using unified dual-branch approach\n * This handles both regular transactions and signed transaction variants\n */\n static parseSCSTransaction(\n transaction: Transaction,\n originalBytes?: Uint8Array,\n ): {\n type?: string;\n humanReadableType?: string;\n contractCall?: ContractCallData;\n contractCreate?: ContractCreateData;\n contractUpdate?: ContractUpdateData;\n contractDelete?: ContractDeleteData;\n [key: string]: unknown;\n } {\n try {\n if (originalBytes || transaction.toBytes) {\n try {\n const bytesToParse = originalBytes || transaction.toBytes();\n const decoded = proto.TransactionList.decode(bytesToParse);\n\n if (decoded.transactionList && decoded.transactionList.length > 0) {\n const tx = decoded.transactionList[0];\n let txBody: proto.ITransactionBody | null = null;\n\n if (tx.bodyBytes && tx.bodyBytes.length > 0) {\n txBody = proto.TransactionBody.decode(tx.bodyBytes);\n } else if (\n tx.signedTransactionBytes &&\n tx.signedTransactionBytes.length > 0\n ) {\n const signedTx = proto.SignedTransaction.decode(\n tx.signedTransactionBytes,\n );\n if (signedTx.bodyBytes) {\n txBody = proto.TransactionBody.decode(signedTx.bodyBytes);\n }\n }\n\n if (txBody) {\n const protoResult = this.parseFromProtobufTxBody(txBody);\n if (protoResult.type && protoResult.type !== 'UNKNOWN') {\n return protoResult;\n }\n }\n }\n } catch (protoError) {}\n }\n\n return this.parseFromTransactionInternals(transaction);\n } catch (error) {\n return {\n type: 'UNKNOWN',\n humanReadableType: 'Unknown Contract Transaction',\n };\n }\n }\n\n /**\n * Parse contract transaction from protobuf TransactionBody\n * Handles all contract operations from decoded protobuf data\n */\n private static parseFromProtobufTxBody(txBody: proto.ITransactionBody): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n if (txBody.contractCall) {\n const contractCall = this.parseContractCall(txBody.contractCall);\n if (contractCall) {\n return {\n type: 'CONTRACTCALL',\n humanReadableType: 'Contract Call',\n contractCall,\n };\n }\n }\n\n if (txBody.contractCreateInstance) {\n const contractCreate = this.parseContractCreate(\n txBody.contractCreateInstance,\n );\n if (contractCreate) {\n return {\n type: 'CONTRACTCREATE',\n humanReadableType: 'Contract Create',\n contractCreate,\n };\n }\n }\n\n if (txBody.contractUpdateInstance) {\n const contractUpdate = this.parseContractUpdate(\n txBody.contractUpdateInstance,\n );\n if (contractUpdate) {\n return {\n type: 'CONTRACTUPDATE',\n humanReadableType: 'Contract Update',\n contractUpdate,\n };\n }\n }\n\n if (txBody.contractDeleteInstance) {\n const contractDelete = this.parseContractDelete(\n txBody.contractDeleteInstance,\n );\n if (contractDelete) {\n return {\n type: 'CONTRACTDELETE',\n humanReadableType: 'Contract Delete',\n contractDelete,\n };\n }\n }\n\n if (txBody.ethereumTransaction) {\n const ethereumCall = this.parseEthereumTransaction(\n txBody.ethereumTransaction,\n );\n if (ethereumCall) {\n return {\n type: 'ETHEREUMTRANSACTION',\n humanReadableType: 'Ethereum Transaction',\n ethereumTransaction: ethereumCall,\n };\n }\n }\n\n return {};\n }\n\n /**\n * Extract contract data from Transaction internal fields\n * This handles cases where data is stored in Transaction object internals\n */\n private static parseFromTransactionInternals(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n try {\n const tx = transaction as unknown as {\n _contractId?: { toString(): string };\n _gas?: number | Long;\n _amount?: { toString(): string };\n _functionParameters?: Uint8Array;\n _initialBalance?: { toString(): string };\n _adminKey?: unknown;\n _memo?: string;\n _fileId?: { toString(): string };\n _bytecode?: Uint8Array;\n _constructorParameters?: Uint8Array;\n _maxAutomaticTokenAssociations?: number;\n _stakedAccountId?: { toString(): string };\n _stakedNodeId?: number | Long;\n _declineReward?: boolean;\n _autoRenewPeriod?: { toString(): string };\n _transferAccountId?: { toString(): string };\n _transferContractId?: { toString(): string };\n constructor?: { name?: string };\n };\n\n if (tx._contractId && tx._gas) {\n const contractCall: ContractCallData = {\n contractId: tx._contractId.toString(),\n gas:\n typeof tx._gas === 'number'\n ? tx._gas\n : Long.fromValue(tx._gas).toNumber(),\n amount: tx._amount ? parseFloat(tx._amount.toString()) : 0,\n };\n\n if (tx._functionParameters) {\n const funcParams = Buffer.from(tx._functionParameters).toString(\n 'hex',\n );\n contractCall.functionParameters = funcParams;\n contractCall.functionName = this.extractFunctionName(funcParams);\n }\n\n return {\n type: 'CONTRACTCALL',\n humanReadableType: 'Contract Call',\n contractCall,\n };\n }\n\n if (hasTransactionType(transaction, 'contractCreateInstance')) {\n const contractCreate: ContractCreateData = {\n gas: tx._gas.toString(),\n initialBalance: tx._initialBalance?.toString() || '0',\n };\n\n if (tx._fileId) {\n contractCreate.initcodeSource = 'fileID';\n contractCreate.initcode = tx._fileId.toString();\n } else if (tx._bytecode) {\n contractCreate.initcodeSource = 'bytes';\n contractCreate.initcode = Buffer.from(tx._bytecode).toString('hex');\n }\n\n if (tx._constructorParameters) {\n contractCreate.constructorParameters = Buffer.from(\n tx._constructorParameters,\n ).toString('hex');\n }\n\n if (tx._memo) contractCreate.memo = tx._memo;\n if (tx._adminKey) contractCreate.adminKey = parseKey(tx._adminKey);\n if (tx._maxAutomaticTokenAssociations !== undefined) {\n contractCreate.maxAutomaticTokenAssociations =\n tx._maxAutomaticTokenAssociations;\n }\n if (tx._stakedAccountId) {\n contractCreate.stakedAccountId = tx._stakedAccountId.toString();\n } else if (\n tx._stakedNodeId !== null &&\n tx._stakedNodeId !== undefined\n ) {\n contractCreate.stakedNodeId = Long.fromValue(\n tx._stakedNodeId,\n ).toString();\n }\n if (tx._declineReward !== undefined)\n contractCreate.declineReward = tx._declineReward;\n if (tx._autoRenewPeriod)\n contractCreate.autoRenewPeriod = tx._autoRenewPeriod.toString();\n\n return {\n type: 'CONTRACTCREATE',\n humanReadableType: 'Contract Create',\n contractCreate,\n };\n }\n\n if (hasTransactionType(transaction, 'contractUpdateInstance')) {\n const contractUpdate: ContractUpdateData = {\n contractIdToUpdate: tx._contractId.toString(),\n };\n\n if (tx._memo) contractUpdate.memo = tx._memo;\n if (tx._adminKey) contractUpdate.adminKey = parseKey(tx._adminKey);\n if (tx._maxAutomaticTokenAssociations !== undefined) {\n contractUpdate.maxAutomaticTokenAssociations =\n tx._maxAutomaticTokenAssociations;\n }\n if (tx._stakedAccountId) {\n contractUpdate.stakedAccountId = tx._stakedAccountId.toString();\n } else if (\n tx._stakedNodeId !== null &&\n tx._stakedNodeId !== undefined\n ) {\n contractUpdate.stakedNodeId = Long.fromValue(\n tx._stakedNodeId,\n ).toString();\n }\n if (tx._declineReward !== undefined)\n contractUpdate.declineReward = tx._declineReward;\n if (tx._autoRenewPeriod)\n contractUpdate.autoRenewPeriod = tx._autoRenewPeriod.toString();\n\n return {\n type: 'CONTRACTUPDATE',\n humanReadableType: 'Contract Update',\n contractUpdate,\n };\n }\n\n if (hasTransactionType(transaction, 'contractDeleteInstance')) {\n const contractDelete: ContractDeleteData = {\n contractIdToDelete: tx._contractId.toString(),\n };\n\n if (tx._transferAccountId) {\n contractDelete.transferAccountId = tx._transferAccountId.toString();\n } else if (tx._transferContractId) {\n contractDelete.transferContractId = tx._transferContractId.toString();\n }\n\n return {\n type: 'CONTRACTDELETE',\n humanReadableType: 'Contract Delete',\n contractDelete,\n };\n }\n\n return {};\n } catch (error) {\n return {};\n }\n }\n\n /**\n * Enhanced function name extraction from contract call parameters\n * Attempts to decode function selector and map to known function names\n */\n private static extractFunctionName(functionParameters: string): string {\n if (functionParameters.length < 8) return 'unknown';\n\n const selector = functionParameters.substring(0, 8);\n\n const commonSelectors: Record<string, string> = {\n a9059cbb: 'transfer',\n '095ea7b3': 'approve',\n '23b872dd': 'transferFrom',\n '70a08231': 'balanceOf',\n dd62ed3e: 'allowance',\n '18160ddd': 'totalSupply',\n '06fdde03': 'name',\n '95d89b41': 'symbol',\n '313ce567': 'decimals',\n '42842e0e': 'safeTransferFrom',\n b88d4fde: 'safeTransferFrom',\n e985e9c5: 'isApprovedForAll',\n a22cb465: 'setApprovalForAll',\n '6352211e': 'ownerOf',\n c87b56dd: 'tokenURI',\n '01ffc9a7': 'supportsInterface',\n '40c10f19': 'mint',\n '42966c68': 'burn',\n f2fde38b: 'transferOwnership',\n '715018a6': 'renounceOwnership',\n '8da5cb5b': 'owner',\n };\n\n return commonSelectors[selector] || selector;\n }\n\n /**\n * Parse Ethereum Transaction (was completely missing from original parser)\n */\n static parseEthereumTransaction(\n body: proto.IEthereumTransactionBody,\n ): ContractCallData | undefined {\n if (!body) return undefined;\n\n const data: ContractCallData = {\n contractId: 'EVM',\n gas: body.maxGasAllowance\n ? Long.fromValue(body.maxGasAllowance).toNumber()\n : 0,\n amount: 0,\n };\n\n if (body.ethereumData && body.ethereumData.length > 0) {\n const ethData = Buffer.from(body.ethereumData).toString('hex');\n data.functionParameters = ethData;\n\n if (ethData.length >= 8) {\n data.functionName = this.extractFunctionName(ethData);\n }\n }\n\n return data;\n }\n\n static parseContractCall(\n body: proto.IContractCallTransactionBody,\n ): ContractCallData | undefined {\n if (!body) return undefined;\n const hbarAmount = Hbar.fromTinybars(Long.fromValue(body.amount ?? 0));\n const data: ContractCallData = {\n contractId: new ContractId(\n body.contractID!.shardNum ?? 0,\n body.contractID!.realmNum ?? 0,\n body.contractID!.contractNum ?? 0,\n ).toString(),\n gas: Long.fromValue(body.gas ?? 0).toNumber(),\n amount: parseFloat(hbarAmount.toString(HbarUnit.Hbar)),\n };\n if (body.functionParameters) {\n data.functionParameters = Buffer.from(body.functionParameters).toString(\n 'hex',\n );\n if (data.functionParameters.length >= 8) {\n data.functionName = this.extractFunctionName(data.functionParameters);\n }\n }\n return data;\n }\n\n static parseContractCreate(\n body: proto.IContractCreateTransactionBody,\n ): ContractCreateData | undefined {\n if (!body) return undefined;\n const data: ContractCreateData = {};\n if (body.initialBalance) {\n data.initialBalance = Hbar.fromTinybars(\n Long.fromValue(body.initialBalance),\n ).toString(HbarUnit.Hbar);\n }\n if (body.gas) {\n data.gas = Long.fromValue(body.gas).toString();\n }\n if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n }\n if (body.constructorParameters) {\n data.constructorParameters = Buffer.from(\n body.constructorParameters,\n ).toString('hex');\n }\n if (body.memo) {\n data.memo = body.memo;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0,\n ).toString();\n } else if (body.stakedNodeId !== null && body.stakedNodeId !== undefined) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n }\n if (body.declineReward !== undefined) {\n data.declineReward = body.declineReward;\n }\n if (body.maxAutomaticTokenAssociations !== undefined) {\n data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;\n }\n if (body.fileID) {\n data.initcodeSource = 'fileID';\n data.initcode = new FileId(\n body.fileID.shardNum ?? 0,\n body.fileID.realmNum ?? 0,\n body.fileID.fileNum ?? 0,\n ).toString();\n } else if (body.initcode && body.initcode.length > 0) {\n data.initcodeSource = 'bytes';\n data.initcode = Buffer.from(body.initcode).toString('hex');\n }\n return data;\n }\n\n static parseContractUpdate(\n body: proto.IContractUpdateTransactionBody,\n ): ContractUpdateData | undefined {\n if (!body) return undefined;\n const data: ContractUpdateData = {};\n if (body.contractID) {\n data.contractIdToUpdate = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n }\n if (body.expirationTime?.seconds) {\n data.expirationTime = `${Long.fromValue(\n body.expirationTime.seconds,\n ).toString()}.${body.expirationTime.nanos}`;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n\n if (body.memo) {\n const memoUnion = body.memo as unknown;\n if (\n memoUnion &&\n typeof memoUnion === 'object' &&\n Object.prototype.hasOwnProperty.call(memoUnion, 'value')\n ) {\n const value = (memoUnion as { value: unknown }).value;\n if (value === null || value === undefined) {\n data.memo = undefined;\n } else {\n data.memo = String(value);\n }\n } else if (typeof memoUnion === 'string') {\n data.memo = memoUnion;\n } else {\n data.memo = undefined;\n }\n } else {\n data.memo = undefined;\n }\n\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0,\n ).toString();\n data.stakedNodeId = undefined;\n } else if (\n body.stakedNodeId !== null &&\n body.stakedNodeId !== undefined &&\n Long.fromValue(body.stakedNodeId).notEquals(-1)\n ) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n data.stakedAccountId = undefined;\n } else {\n data.stakedNodeId = undefined;\n data.stakedAccountId = undefined;\n }\n if (body.declineReward?.value !== undefined) {\n data.declineReward = body.declineReward.value;\n }\n if (body.maxAutomaticTokenAssociations?.value !== undefined) {\n data.maxAutomaticTokenAssociations =\n body.maxAutomaticTokenAssociations.value;\n }\n if (body.autoRenewAccountId) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccountId.shardNum ?? 0,\n body.autoRenewAccountId.realmNum ?? 0,\n body.autoRenewAccountId.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseContractDelete(\n body: proto.IContractDeleteTransactionBody,\n ): ContractDeleteData | undefined {\n if (!body) return undefined;\n const data: ContractDeleteData = {};\n if (body.contractID) {\n data.contractIdToDelete = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n if (body.transferAccountID) {\n data.transferAccountId = new AccountId(\n body.transferAccountID.shardNum ?? 0,\n body.transferAccountID.realmNum ?? 0,\n body.transferAccountID.accountNum ?? 0,\n ).toString();\n } else if (body.transferContractID) {\n data.transferContractId = new ContractId(\n body.transferContractID.shardNum ?? 0,\n body.transferContractID.realmNum ?? 0,\n body.transferContractID.contractNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n /**\n * Parse SCS (Smart Contract Service) transaction from Transaction object\n * This is the unified entry point that delegates to the comprehensive parsing logic\n */\n static parseFromTransactionObject(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n return this.parseSCSTransaction(transaction);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,242 +1,334 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
result[key] = toJsonValue(entryValue);
|
|
1
|
+
import { proto } from "@hashgraph/proto";
|
|
2
|
+
import { Long, FileId, ContractId } from "@hashgraph/sdk";
|
|
3
|
+
import { hasTransactionType } from "./standards-sdk.es172.js";
|
|
4
|
+
class UtilParser {
|
|
5
|
+
/**
|
|
6
|
+
* Parse Utility/System Service transaction using unified dual-branch approach
|
|
7
|
+
* This handles both regular transactions and signed transaction variants
|
|
8
|
+
*/
|
|
9
|
+
static parseUtilTransaction(transaction, originalBytes) {
|
|
10
|
+
try {
|
|
11
|
+
if (originalBytes || transaction.toBytes) {
|
|
12
|
+
try {
|
|
13
|
+
const bytesToParse = originalBytes || transaction.toBytes();
|
|
14
|
+
const decoded = proto.TransactionList.decode(bytesToParse);
|
|
15
|
+
if (decoded.transactionList && decoded.transactionList.length > 0) {
|
|
16
|
+
const tx = decoded.transactionList[0];
|
|
17
|
+
let txBody = null;
|
|
18
|
+
if (tx.bodyBytes && tx.bodyBytes.length > 0) {
|
|
19
|
+
txBody = proto.TransactionBody.decode(tx.bodyBytes);
|
|
20
|
+
} else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
|
|
21
|
+
const signedTx = proto.SignedTransaction.decode(
|
|
22
|
+
tx.signedTransactionBytes
|
|
23
|
+
);
|
|
24
|
+
if (signedTx.bodyBytes) {
|
|
25
|
+
txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (txBody) {
|
|
29
|
+
const protoResult = this.parseFromProtobufTxBody(txBody);
|
|
30
|
+
if (protoResult.type && protoResult.type !== "UNKNOWN") {
|
|
31
|
+
return protoResult;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
} catch (protoError) {
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const normalised = toJsonValue(value);
|
|
47
|
-
if (isJsonObject(normalised)) {
|
|
48
|
-
return normalised;
|
|
49
|
-
}
|
|
50
|
-
throw new TypeError("Expected JSON object value");
|
|
51
|
-
};
|
|
52
|
-
const serialiseAuthConfig = (auth) => {
|
|
53
|
-
const authPayload = {};
|
|
54
|
-
if (auth.type) {
|
|
55
|
-
authPayload.type = auth.type;
|
|
56
|
-
}
|
|
57
|
-
if (auth.token) {
|
|
58
|
-
authPayload.token = auth.token;
|
|
59
|
-
}
|
|
60
|
-
if (auth.username) {
|
|
61
|
-
authPayload.username = auth.username;
|
|
62
|
-
}
|
|
63
|
-
if (auth.password) {
|
|
64
|
-
authPayload.password = auth.password;
|
|
65
|
-
}
|
|
66
|
-
if (auth.headerName) {
|
|
67
|
-
authPayload.headerName = auth.headerName;
|
|
68
|
-
}
|
|
69
|
-
if (auth.headerValue) {
|
|
70
|
-
authPayload.headerValue = auth.headerValue;
|
|
71
|
-
}
|
|
72
|
-
if (auth.headers) {
|
|
73
|
-
authPayload.headers = { ...auth.headers };
|
|
74
|
-
}
|
|
75
|
-
return authPayload;
|
|
76
|
-
};
|
|
77
|
-
const serialiseAgentRegistrationRequest = (payload) => {
|
|
78
|
-
const body = {
|
|
79
|
-
profile: toJsonObject(payload.profile)
|
|
80
|
-
};
|
|
81
|
-
if (payload.endpoint !== void 0) {
|
|
82
|
-
body.endpoint = payload.endpoint;
|
|
83
|
-
}
|
|
84
|
-
if (payload.protocol !== void 0) {
|
|
85
|
-
body.protocol = payload.protocol;
|
|
86
|
-
}
|
|
87
|
-
if (payload.communicationProtocol !== void 0) {
|
|
88
|
-
body.communicationProtocol = payload.communicationProtocol;
|
|
89
|
-
}
|
|
90
|
-
if (payload.registry !== void 0) {
|
|
91
|
-
body.registry = payload.registry;
|
|
92
|
-
}
|
|
93
|
-
if (payload.additionalRegistries !== void 0) {
|
|
94
|
-
body.additionalRegistries = payload.additionalRegistries;
|
|
95
|
-
}
|
|
96
|
-
if (payload.metadata !== void 0) {
|
|
97
|
-
body.metadata = toJsonObject(payload.metadata);
|
|
98
|
-
}
|
|
99
|
-
return body;
|
|
100
|
-
};
|
|
101
|
-
const normalizeHexPrivateKey = (value) => {
|
|
102
|
-
const trimmed = value.trim();
|
|
103
|
-
if (!trimmed) {
|
|
104
|
-
throw new Error("evmPrivateKey is required");
|
|
38
|
+
return this.parseFromTransactionInternals(transaction);
|
|
39
|
+
} catch (error) {
|
|
40
|
+
return {
|
|
41
|
+
type: "UNKNOWN",
|
|
42
|
+
humanReadableType: "Unknown Utility Transaction"
|
|
43
|
+
};
|
|
44
|
+
}
|
|
105
45
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Parse utility transaction from protobuf TransactionBody
|
|
48
|
+
* Handles all utility operations from decoded protobuf data
|
|
49
|
+
*/
|
|
50
|
+
static parseFromProtobufTxBody(txBody) {
|
|
51
|
+
if (txBody.utilPrng) {
|
|
52
|
+
const utilPrng = this.parseUtilPrng(txBody.utilPrng);
|
|
53
|
+
if (utilPrng) {
|
|
54
|
+
return {
|
|
55
|
+
type: "PRNG",
|
|
56
|
+
humanReadableType: "Pseudo Random Number",
|
|
57
|
+
utilPrng
|
|
58
|
+
};
|
|
117
59
|
}
|
|
118
|
-
}
|
|
119
|
-
if (
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
} catch {
|
|
128
|
-
}
|
|
129
|
-
const withoutTrailing = stripTrailingSlashes(baseCandidate);
|
|
130
|
-
if (/\/api\/v\d+$/i.test(withoutTrailing)) {
|
|
131
|
-
return withoutTrailing;
|
|
132
|
-
}
|
|
133
|
-
if (/\/api$/i.test(withoutTrailing)) {
|
|
134
|
-
return `${withoutTrailing}/v1`;
|
|
135
|
-
}
|
|
136
|
-
return `${withoutTrailing}/api/v1`;
|
|
137
|
-
}
|
|
138
|
-
function buildSearchQuery(params) {
|
|
139
|
-
const query = new URLSearchParams();
|
|
140
|
-
const appendList = (key, values) => {
|
|
141
|
-
if (!values) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
values.forEach((value) => {
|
|
145
|
-
if (typeof value === "string") {
|
|
146
|
-
const trimmed = value.trim();
|
|
147
|
-
if (trimmed.length > 0) {
|
|
148
|
-
query.append(key, trimmed);
|
|
149
|
-
}
|
|
60
|
+
}
|
|
61
|
+
if (txBody.freeze) {
|
|
62
|
+
const networkFreeze = this.parseNetworkFreezeFromProto(txBody.freeze);
|
|
63
|
+
if (networkFreeze) {
|
|
64
|
+
return {
|
|
65
|
+
type: "FREEZE",
|
|
66
|
+
humanReadableType: "Network Freeze",
|
|
67
|
+
freeze: networkFreeze
|
|
68
|
+
};
|
|
150
69
|
}
|
|
151
|
-
});
|
|
152
|
-
};
|
|
153
|
-
if (params.q) {
|
|
154
|
-
const trimmed = params.q.trim();
|
|
155
|
-
if (trimmed.length > 0) {
|
|
156
|
-
query.set("q", trimmed);
|
|
157
70
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (trimmed.length > 0) {
|
|
168
|
-
query.set("registry", trimmed);
|
|
71
|
+
if (txBody.systemDelete) {
|
|
72
|
+
const systemDelete = this.parseSystemDeleteFromProto(txBody.systemDelete);
|
|
73
|
+
if (systemDelete) {
|
|
74
|
+
return {
|
|
75
|
+
type: "SYSTEMDELETE",
|
|
76
|
+
humanReadableType: "System Delete",
|
|
77
|
+
systemDelete
|
|
78
|
+
};
|
|
79
|
+
}
|
|
169
80
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
81
|
+
if (txBody.systemUndelete) {
|
|
82
|
+
const systemUndelete = this.parseSystemUndeleteFromProto(
|
|
83
|
+
txBody.systemUndelete
|
|
84
|
+
);
|
|
85
|
+
if (systemUndelete) {
|
|
86
|
+
return {
|
|
87
|
+
type: "SYSTEMUNDELETE",
|
|
88
|
+
humanReadableType: "System Undelete",
|
|
89
|
+
systemUndelete
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (txBody.nodeCreate) {
|
|
94
|
+
const nodeCreate = this.parseNodeCreateFromProto(txBody.nodeCreate);
|
|
95
|
+
if (nodeCreate) {
|
|
96
|
+
return {
|
|
97
|
+
type: "NODECREATE",
|
|
98
|
+
humanReadableType: "Node Create",
|
|
99
|
+
nodeCreate
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (txBody.nodeUpdate) {
|
|
104
|
+
const nodeUpdate = this.parseNodeUpdateFromProto(txBody.nodeUpdate);
|
|
105
|
+
if (nodeUpdate) {
|
|
106
|
+
return {
|
|
107
|
+
type: "NODEUPDATE",
|
|
108
|
+
humanReadableType: "Node Update",
|
|
109
|
+
nodeUpdate
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (txBody.nodeDelete) {
|
|
114
|
+
const nodeDelete = this.parseNodeDeleteFromProto(txBody.nodeDelete);
|
|
115
|
+
if (nodeDelete) {
|
|
116
|
+
return {
|
|
117
|
+
type: "NODEDELETE",
|
|
118
|
+
humanReadableType: "Node Delete",
|
|
119
|
+
nodeDelete
|
|
120
|
+
};
|
|
182
121
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
122
|
+
}
|
|
123
|
+
return {};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Extract utility data from Transaction internal fields
|
|
127
|
+
* This handles cases where data is stored in Transaction object internals
|
|
128
|
+
*/
|
|
129
|
+
static parseFromTransactionInternals(transaction) {
|
|
130
|
+
try {
|
|
131
|
+
const tx = transaction;
|
|
132
|
+
if (hasTransactionType(transaction, "utilPrng")) {
|
|
133
|
+
const utilPrng = {};
|
|
134
|
+
if (tx._range && tx._range !== 0) {
|
|
135
|
+
utilPrng.range = tx._range;
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
type: "PRNG",
|
|
139
|
+
humanReadableType: "Pseudo Random Number",
|
|
140
|
+
utilPrng
|
|
141
|
+
};
|
|
186
142
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
143
|
+
if (hasTransactionType(transaction, "freeze")) {
|
|
144
|
+
const networkFreeze = {};
|
|
145
|
+
if (tx._startTime) {
|
|
146
|
+
networkFreeze.startTime = tx._startTime.toString();
|
|
190
147
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
148
|
+
if (tx._endTime) {
|
|
149
|
+
networkFreeze.endTime = tx._endTime.toString();
|
|
150
|
+
}
|
|
151
|
+
if (tx._updateFile) {
|
|
152
|
+
networkFreeze.updateFile = tx._updateFile.toString();
|
|
153
|
+
}
|
|
154
|
+
if (tx._fileHash) {
|
|
155
|
+
networkFreeze.fileHash = Buffer.from(tx._fileHash).toString("hex");
|
|
156
|
+
}
|
|
157
|
+
if (tx._freezeType) {
|
|
158
|
+
networkFreeze.freezeType = tx._freezeType;
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
type: "FREEZE",
|
|
162
|
+
humanReadableType: "Network Freeze",
|
|
163
|
+
freeze: networkFreeze
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
if (hasTransactionType(transaction, "systemDelete")) {
|
|
167
|
+
const systemDelete = {};
|
|
168
|
+
if (tx._fileId) {
|
|
169
|
+
systemDelete.fileId = tx._fileId.toString();
|
|
170
|
+
} else if (tx._contractId) {
|
|
171
|
+
systemDelete.contractId = tx._contractId.toString();
|
|
172
|
+
}
|
|
173
|
+
if (tx._expirationTime) {
|
|
174
|
+
systemDelete.expirationTime = tx._expirationTime.toString();
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
type: "SYSTEMDELETE",
|
|
178
|
+
humanReadableType: "System Delete",
|
|
179
|
+
systemDelete
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
if (hasTransactionType(transaction, "systemUndelete")) {
|
|
183
|
+
const systemUndelete = {};
|
|
184
|
+
if (tx._fileId) {
|
|
185
|
+
systemUndelete.fileId = tx._fileId.toString();
|
|
186
|
+
} else if (tx._contractId) {
|
|
187
|
+
systemUndelete.contractId = tx._contractId.toString();
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
type: "SYSTEMUNDELETE",
|
|
191
|
+
humanReadableType: "System Undelete",
|
|
192
|
+
systemUndelete
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
return {};
|
|
196
|
+
} catch (error) {
|
|
197
|
+
return {};
|
|
199
198
|
}
|
|
200
199
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
200
|
+
/**
|
|
201
|
+
* Parse Network Freeze from protobuf data
|
|
202
|
+
*/
|
|
203
|
+
static parseNetworkFreezeFromProto(body) {
|
|
204
|
+
if (!body) return void 0;
|
|
205
|
+
const data = {};
|
|
206
|
+
if (body.startTime?.seconds) {
|
|
207
|
+
data.startTime = `${Long.fromValue(
|
|
208
|
+
body.startTime.seconds
|
|
209
|
+
).toString()}.${body.startTime.nanos ?? 0}`;
|
|
210
|
+
}
|
|
211
|
+
if (body.updateFile) {
|
|
212
|
+
data.updateFile = new FileId(
|
|
213
|
+
body.updateFile.shardNum ?? 0,
|
|
214
|
+
body.updateFile.realmNum ?? 0,
|
|
215
|
+
body.updateFile.fileNum ?? 0
|
|
216
|
+
).toString();
|
|
217
|
+
}
|
|
218
|
+
if (body.fileHash && body.fileHash.length > 0) {
|
|
219
|
+
data.fileHash = Buffer.from(body.fileHash).toString("hex");
|
|
220
|
+
}
|
|
221
|
+
if (body.freezeType !== void 0) {
|
|
222
|
+
const freezeTypes = [
|
|
223
|
+
"FREEZE_ONLY",
|
|
224
|
+
"PREPARE_UPGRADE",
|
|
225
|
+
"FREEZE_UPGRADE",
|
|
226
|
+
"FREEZE_ABORT"
|
|
227
|
+
];
|
|
228
|
+
data.freezeType = freezeTypes[body.freezeType] || "FREEZE_ONLY";
|
|
211
229
|
}
|
|
230
|
+
return data;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Parse System Delete from protobuf data
|
|
234
|
+
*/
|
|
235
|
+
static parseSystemDeleteFromProto(body) {
|
|
236
|
+
if (!body) return void 0;
|
|
237
|
+
const data = {};
|
|
238
|
+
if (body.fileID) {
|
|
239
|
+
data.fileId = new FileId(
|
|
240
|
+
body.fileID.shardNum ?? 0,
|
|
241
|
+
body.fileID.realmNum ?? 0,
|
|
242
|
+
body.fileID.fileNum ?? 0
|
|
243
|
+
).toString();
|
|
244
|
+
} else if (body.contractID) {
|
|
245
|
+
data.contractId = new ContractId(
|
|
246
|
+
body.contractID.shardNum ?? 0,
|
|
247
|
+
body.contractID.realmNum ?? 0,
|
|
248
|
+
body.contractID.contractNum ?? 0
|
|
249
|
+
).toString();
|
|
250
|
+
}
|
|
251
|
+
if (body.expirationTime?.seconds) {
|
|
252
|
+
data.expirationTime = Long.fromValue(
|
|
253
|
+
body.expirationTime.seconds
|
|
254
|
+
).toString();
|
|
255
|
+
}
|
|
256
|
+
return data;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Parse System Undelete from protobuf data
|
|
260
|
+
*/
|
|
261
|
+
static parseSystemUndeleteFromProto(body) {
|
|
262
|
+
if (!body) return void 0;
|
|
263
|
+
const data = {};
|
|
264
|
+
if (body.fileID) {
|
|
265
|
+
data.fileId = new FileId(
|
|
266
|
+
body.fileID.shardNum ?? 0,
|
|
267
|
+
body.fileID.realmNum ?? 0,
|
|
268
|
+
body.fileID.fileNum ?? 0
|
|
269
|
+
).toString();
|
|
270
|
+
} else if (body.contractID) {
|
|
271
|
+
data.contractId = new ContractId(
|
|
272
|
+
body.contractID.shardNum ?? 0,
|
|
273
|
+
body.contractID.realmNum ?? 0,
|
|
274
|
+
body.contractID.contractNum ?? 0
|
|
275
|
+
).toString();
|
|
276
|
+
}
|
|
277
|
+
return data;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Parse Node Create from protobuf data
|
|
281
|
+
*/
|
|
282
|
+
static parseNodeCreateFromProto(body) {
|
|
283
|
+
if (!body) return void 0;
|
|
284
|
+
const data = {};
|
|
285
|
+
if (body.nodeId !== void 0) {
|
|
286
|
+
data.nodeId = Long.fromValue(body.nodeId).toNumber();
|
|
287
|
+
}
|
|
288
|
+
return data;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Parse Node Update from protobuf data
|
|
292
|
+
*/
|
|
293
|
+
static parseNodeUpdateFromProto(body) {
|
|
294
|
+
if (!body) return void 0;
|
|
295
|
+
const data = {};
|
|
296
|
+
if (body.nodeId !== void 0) {
|
|
297
|
+
data.nodeId = Long.fromValue(body.nodeId).toNumber();
|
|
298
|
+
}
|
|
299
|
+
return data;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Parse Node Delete from protobuf data
|
|
303
|
+
*/
|
|
304
|
+
static parseNodeDeleteFromProto(body) {
|
|
305
|
+
if (!body) return void 0;
|
|
306
|
+
const data = {};
|
|
307
|
+
if (body.nodeId !== void 0) {
|
|
308
|
+
data.nodeId = Long.fromValue(body.nodeId).toNumber();
|
|
309
|
+
}
|
|
310
|
+
return data;
|
|
212
311
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
312
|
+
static parseUtilPrng(body) {
|
|
313
|
+
if (!body) return void 0;
|
|
314
|
+
const data = {};
|
|
315
|
+
if (body.range && body.range !== 0) {
|
|
316
|
+
data.range = body.range;
|
|
217
317
|
}
|
|
318
|
+
return data;
|
|
319
|
+
}
|
|
320
|
+
static parseFreeze(body) {
|
|
321
|
+
return this.parseNetworkFreezeFromProto(body);
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Parse Utility/System Service transaction from Transaction object
|
|
325
|
+
* This is the unified entry point that delegates to the comprehensive parsing logic
|
|
326
|
+
*/
|
|
327
|
+
static parseFromTransactionObject(transaction) {
|
|
328
|
+
return this.parseUtilTransaction(transaction);
|
|
218
329
|
}
|
|
219
|
-
const queryString = query.toString();
|
|
220
|
-
return queryString.length > 0 ? `?${queryString}` : "";
|
|
221
330
|
}
|
|
222
331
|
export {
|
|
223
|
-
|
|
224
|
-
DEFAULT_HISTORY_TOP_UP_HBAR,
|
|
225
|
-
DEFAULT_PROGRESS_INTERVAL_MS,
|
|
226
|
-
DEFAULT_PROGRESS_TIMEOUT_MS,
|
|
227
|
-
DEFAULT_USER_AGENT,
|
|
228
|
-
JSON_CONTENT_TYPE,
|
|
229
|
-
MINIMUM_REGISTRATION_AUTO_TOP_UP_CREDITS,
|
|
230
|
-
buildSearchQuery,
|
|
231
|
-
createAbortError,
|
|
232
|
-
isBrowserRuntime,
|
|
233
|
-
isJsonObject,
|
|
234
|
-
normaliseBaseUrl,
|
|
235
|
-
normaliseHeaderName,
|
|
236
|
-
normalizeHexPrivateKey,
|
|
237
|
-
serialiseAgentRegistrationRequest,
|
|
238
|
-
serialiseAuthConfig,
|
|
239
|
-
toJsonObject,
|
|
240
|
-
toJsonValue
|
|
332
|
+
UtilParser
|
|
241
333
|
};
|
|
242
334
|
//# sourceMappingURL=standards-sdk.es171.js.map
|