@hashgraphonline/standards-sdk 0.1.141-canary.0 → 0.1.141

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 (84) hide show
  1. package/README.md +0 -11
  2. package/dist/cjs/hcs-21/base-client.d.ts +12 -12
  3. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
  4. package/dist/cjs/hcs-21/browser.d.ts +3 -3
  5. package/dist/cjs/hcs-21/sdk.d.ts +6 -8
  6. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
  7. package/dist/cjs/hcs-21/tx.d.ts +2 -6
  8. package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
  9. package/dist/cjs/hcs-21/types.d.ts +67 -668
  10. package/dist/cjs/hcs-21/types.d.ts.map +1 -1
  11. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  12. package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
  13. package/dist/cjs/inscribe/types.d.ts +0 -2
  14. package/dist/cjs/inscribe/types.d.ts.map +1 -1
  15. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  16. package/dist/cjs/services/registry-broker/schemas.d.ts +1 -25
  17. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  18. package/dist/cjs/services/registry-broker/types.d.ts +2 -1
  19. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  20. package/dist/cjs/standards-sdk.cjs +2 -2
  21. package/dist/cjs/standards-sdk.cjs.map +1 -1
  22. package/dist/es/hcs-21/base-client.d.ts +12 -12
  23. package/dist/es/hcs-21/base-client.d.ts.map +1 -1
  24. package/dist/es/hcs-21/browser.d.ts +3 -3
  25. package/dist/es/hcs-21/sdk.d.ts +6 -8
  26. package/dist/es/hcs-21/sdk.d.ts.map +1 -1
  27. package/dist/es/hcs-21/tx.d.ts +2 -6
  28. package/dist/es/hcs-21/tx.d.ts.map +1 -1
  29. package/dist/es/hcs-21/types.d.ts +67 -668
  30. package/dist/es/hcs-21/types.d.ts.map +1 -1
  31. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  32. package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
  33. package/dist/es/inscribe/types.d.ts +0 -2
  34. package/dist/es/inscribe/types.d.ts.map +1 -1
  35. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  36. package/dist/es/services/registry-broker/schemas.d.ts +1 -25
  37. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  38. package/dist/es/services/registry-broker/types.d.ts +2 -1
  39. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  40. package/dist/es/standards-sdk.es.js +4 -9
  41. package/dist/es/standards-sdk.es109.js +1 -1
  42. package/dist/es/standards-sdk.es124.js +52 -76
  43. package/dist/es/standards-sdk.es124.js.map +1 -1
  44. package/dist/es/standards-sdk.es125.js +4 -8
  45. package/dist/es/standards-sdk.es125.js.map +1 -1
  46. package/dist/es/standards-sdk.es127.js +2 -2
  47. package/dist/es/standards-sdk.es127.js.map +1 -1
  48. package/dist/es/standards-sdk.es137.js +712 -12254
  49. package/dist/es/standards-sdk.es137.js.map +1 -1
  50. package/dist/es/standards-sdk.es138.js +12254 -740
  51. package/dist/es/standards-sdk.es138.js.map +1 -1
  52. package/dist/es/standards-sdk.es139.js +15 -54
  53. package/dist/es/standards-sdk.es139.js.map +1 -1
  54. package/dist/es/standards-sdk.es140.js +49 -57
  55. package/dist/es/standards-sdk.es140.js.map +1 -1
  56. package/dist/es/standards-sdk.es141.js +62 -15
  57. package/dist/es/standards-sdk.es141.js.map +1 -1
  58. package/dist/es/standards-sdk.es17.js +1 -1
  59. package/dist/es/standards-sdk.es19.js +2 -2
  60. package/dist/es/standards-sdk.es20.js +2 -2
  61. package/dist/es/standards-sdk.es28.js +2 -2
  62. package/dist/es/standards-sdk.es31.js +1 -1
  63. package/dist/es/standards-sdk.es32.js +1 -1
  64. package/dist/es/standards-sdk.es36.js +2 -2
  65. package/dist/es/standards-sdk.es37.js +1 -1
  66. package/dist/es/standards-sdk.es38.js +1 -1
  67. package/dist/es/standards-sdk.es57.js +1 -1
  68. package/dist/es/standards-sdk.es59.js +1 -1
  69. package/dist/es/standards-sdk.es60.js +1 -1
  70. package/dist/es/standards-sdk.es61.js +1 -1
  71. package/dist/es/standards-sdk.es63.js +1 -1
  72. package/dist/es/standards-sdk.es65.js +1 -1
  73. package/dist/es/standards-sdk.es66.js +1 -1
  74. package/dist/es/standards-sdk.es78.js +1 -1
  75. package/dist/es/standards-sdk.es80.js +30 -102
  76. package/dist/es/standards-sdk.es80.js.map +1 -1
  77. package/dist/es/standards-sdk.es82.js +3 -14
  78. package/dist/es/standards-sdk.es82.js.map +1 -1
  79. package/dist/es/standards-sdk.es83.js +10 -10
  80. package/dist/es/standards-sdk.es83.js.map +1 -1
  81. package/dist/es/standards-sdk.es84.js +11 -17
  82. package/dist/es/standards-sdk.es84.js.map +1 -1
  83. package/dist/es/standards-sdk.es85.js.map +1 -1
  84. package/package.json +61 -63
@@ -1,116 +1,44 @@
1
1
  import { z } from "zod";
2
2
  const HCS21_PROTOCOL = "hcs-21";
3
3
  const HCS21_MAX_MESSAGE_BYTES = 1024;
4
- const HCS21ManifestPointerPattern = /^hcs:\/\/1\/0\.0\.\d+\/\d+$/;
5
- const HCS21TopicIdPattern = /^0\.0\.\d+$/;
4
+ const HCS21_REGISTRY_NAMESPACES = [
5
+ "npm",
6
+ "pypi",
7
+ "oci",
8
+ "composer",
9
+ "packagist",
10
+ "cargo",
11
+ "nuget",
12
+ "maven",
13
+ "rubygems",
14
+ "helm",
15
+ "go"
16
+ ];
17
+ const HCS21MetadataPointerPattern = /^hcs:\/\/1\/0\.0\.\d+\/\d+$/;
6
18
  var HCS21TopicType = /* @__PURE__ */ ((HCS21TopicType2) => {
7
- HCS21TopicType2[HCS21TopicType2["ADAPTER_REGISTRY"] = 0] = "ADAPTER_REGISTRY";
8
- HCS21TopicType2[HCS21TopicType2["REGISTRY_OF_REGISTRIES"] = 1] = "REGISTRY_OF_REGISTRIES";
19
+ HCS21TopicType2[HCS21TopicType2["REGISTRY"] = 0] = "REGISTRY";
9
20
  return HCS21TopicType2;
10
21
  })(HCS21TopicType || {});
11
- const adapterPackageSchema = z.object({
12
- registry: z.string().min(1),
13
- name: z.string().min(1),
14
- version: z.string().min(1),
15
- integrity: z.string().min(1)
16
- });
17
- const floraContextSchema = z.object({
18
- account: z.string().min(1),
19
- threshold: z.string().min(1),
20
- ctopic: z.string().min(1),
21
- ttopic: z.string().min(1),
22
- stopic: z.string().min(1)
23
- });
24
- const adapterDeclarationSchema = z.object({
22
+ const packageDeclarationSchema = z.object({
25
23
  p: z.literal(HCS21_PROTOCOL),
26
- op: z.enum(["register", "update", "delete"]),
27
- adapter_id: z.string().min(1),
28
- entity: z.string().min(1),
29
- package: adapterPackageSchema,
30
- manifest: z.string().regex(
31
- HCS21ManifestPointerPattern,
32
- "manifest must be an HCS-1 HRL (hcs://1/<topicId>/<sequence>)"
33
- ),
34
- flora: floraContextSchema,
35
- state_model: z.string().min(1),
36
- signature: z.string().min(1).optional()
37
- });
38
- const adapterManifestSchema = z.object({
39
- meta: z.object({
40
- spec_version: z.string().min(1),
41
- adapter_version: z.string().min(1),
42
- minimum_flora_version: z.string().min(1),
43
- generated: z.string().min(1)
44
- }),
45
- adapter: z.object({
46
- name: z.string().min(1),
47
- id: z.string().min(1),
48
- maintainers: z.array(
49
- z.object({
50
- name: z.string().min(1),
51
- contact: z.string().min(1)
52
- })
53
- ).min(1),
54
- license: z.string().min(1)
55
- }),
56
- package: z.object({
57
- registry: z.string().min(1),
58
- dist_tag: z.string().min(1).optional(),
59
- artifacts: z.array(
60
- z.object({
61
- url: z.string().min(1),
62
- digest: z.string().min(1),
63
- signature: z.string().min(1).optional()
64
- })
65
- ).min(1)
66
- }),
67
- runtime: z.object({
68
- platforms: z.array(z.string().min(1)).min(1),
69
- primary: z.string().min(1),
70
- entry: z.string().min(1),
71
- dependencies: z.array(z.string().min(1)).optional(),
72
- env: z.array(z.string().min(1)).optional()
73
- }),
74
- capabilities: z.object({
75
- discovery: z.boolean(),
76
- communication: z.boolean(),
77
- protocols: z.array(z.string().min(1))
78
- }),
79
- consensus: z.object({
80
- entity_schema: z.string().min(1),
81
- required_fields: z.array(z.string().min(1)),
82
- hashing: z.literal("sha384")
83
- })
84
- });
85
- const registryMetadataSchema = z.object({
86
- version: z.string().min(1),
87
- name: z.string().min(1),
88
- description: z.string().min(1),
89
- operator: z.object({
90
- account: z.string().min(1),
91
- name: z.string().optional(),
92
- contact: z.string().optional()
93
- }),
94
- entityTypes: z.array(z.string().min(1)),
95
- categories: z.array(z.string().min(1)).optional(),
96
- tags: z.array(z.string().min(1)).optional(),
97
- links: z.record(z.string().min(1)).optional()
24
+ op: z.enum(["register", "update"]),
25
+ registry: z.enum(HCS21_REGISTRY_NAMESPACES),
26
+ t_id: z.string().min(1),
27
+ n: z.string().min(1),
28
+ d: z.string().min(1),
29
+ a: z.string().min(1),
30
+ tags: z.array(z.string().min(1)).max(16).optional(),
31
+ metadata: z.string().regex(
32
+ HCS21MetadataPointerPattern,
33
+ "metadata must be an HCS-1 HRL (hcs://1/<topicId>/<sequence>)"
34
+ ).optional()
98
35
  });
99
- const metadataDocumentSchema = z.union([
100
- adapterManifestSchema,
101
- registryMetadataSchema
102
- ]);
103
36
  export {
104
- HCS21ManifestPointerPattern,
105
- HCS21TopicIdPattern,
37
+ HCS21MetadataPointerPattern,
106
38
  HCS21TopicType,
107
39
  HCS21_MAX_MESSAGE_BYTES,
108
40
  HCS21_PROTOCOL,
109
- adapterDeclarationSchema,
110
- adapterManifestSchema,
111
- adapterPackageSchema,
112
- floraContextSchema,
113
- metadataDocumentSchema,
114
- registryMetadataSchema
41
+ HCS21_REGISTRY_NAMESPACES,
42
+ packageDeclarationSchema
115
43
  };
116
44
  //# sourceMappingURL=standards-sdk.es80.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es80.js","sources":["../../src/hcs-21/types.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const HCS21_PROTOCOL = 'hcs-21';\nexport const HCS21_MAX_MESSAGE_BYTES = 1024;\nexport const HCS21ManifestPointerPattern = /^hcs:\\/\\/1\\/0\\.0\\.\\d+\\/\\d+$/;\nexport const HCS21TopicIdPattern = /^0\\.0\\.\\d+$/;\n\nexport type HCS21Operation = 'register' | 'update' | 'delete';\n\nexport interface AdapterPackage {\n registry: string;\n name: string;\n version: string;\n integrity: string;\n}\n\nexport interface FloraContext {\n account: string;\n threshold: string;\n ctopic: string;\n ttopic: string;\n stopic: string;\n}\n\nexport interface AdapterDeclaration {\n p: typeof HCS21_PROTOCOL;\n op: HCS21Operation;\n adapter_id: string;\n entity: string;\n package: AdapterPackage;\n manifest: string;\n flora: FloraContext;\n state_model: string;\n signature?: string;\n}\n\nexport interface AdapterDeclarationEnvelope {\n declaration: AdapterDeclaration;\n consensusTimestamp?: string;\n sequenceNumber: number;\n payer?: string;\n}\n\nexport enum HCS21TopicType {\n ADAPTER_REGISTRY = 0,\n REGISTRY_OF_REGISTRIES = 1,\n}\n\nexport interface ManifestPointer {\n pointer: string;\n topicId: string;\n sequenceNumber: number;\n jobId?: string;\n transactionId?: string;\n}\n\nexport const adapterPackageSchema = z.object({\n registry: z.string().min(1),\n name: z.string().min(1),\n version: z.string().min(1),\n integrity: z.string().min(1),\n});\n\nexport const floraContextSchema = z.object({\n account: z.string().min(1),\n threshold: z.string().min(1),\n ctopic: z.string().min(1),\n ttopic: z.string().min(1),\n stopic: z.string().min(1),\n});\n\nexport const adapterDeclarationSchema = z.object({\n p: z.literal(HCS21_PROTOCOL),\n op: z.enum(['register', 'update', 'delete']),\n adapter_id: z.string().min(1),\n entity: z.string().min(1),\n package: adapterPackageSchema,\n manifest: z\n .string()\n .regex(\n HCS21ManifestPointerPattern,\n 'manifest must be an HCS-1 HRL (hcs://1/<topicId>/<sequence>)',\n ),\n flora: floraContextSchema,\n state_model: z.string().min(1),\n signature: z.string().min(1).optional(),\n});\n\nexport const adapterManifestSchema = z.object({\n meta: z.object({\n spec_version: z.string().min(1),\n adapter_version: z.string().min(1),\n minimum_flora_version: z.string().min(1),\n generated: z.string().min(1),\n }),\n adapter: z.object({\n name: z.string().min(1),\n id: z.string().min(1),\n maintainers: z\n .array(\n z.object({\n name: z.string().min(1),\n contact: z.string().min(1),\n }),\n )\n .min(1),\n license: z.string().min(1),\n }),\n package: z.object({\n registry: z.string().min(1),\n dist_tag: z.string().min(1).optional(),\n artifacts: z\n .array(\n z.object({\n url: z.string().min(1),\n digest: z.string().min(1),\n signature: z.string().min(1).optional(),\n }),\n )\n .min(1),\n }),\n runtime: z.object({\n platforms: z.array(z.string().min(1)).min(1),\n primary: z.string().min(1),\n entry: z.string().min(1),\n dependencies: z.array(z.string().min(1)).optional(),\n env: z.array(z.string().min(1)).optional(),\n }),\n capabilities: z.object({\n discovery: z.boolean(),\n communication: z.boolean(),\n protocols: z.array(z.string().min(1)),\n }),\n consensus: z.object({\n entity_schema: z.string().min(1),\n required_fields: z.array(z.string().min(1)),\n hashing: z.literal('sha384'),\n }),\n});\n\nexport const registryMetadataSchema = z.object({\n version: z.string().min(1),\n name: z.string().min(1),\n description: z.string().min(1),\n operator: z.object({\n account: z.string().min(1),\n name: z.string().optional(),\n contact: z.string().optional(),\n }),\n entityTypes: z.array(z.string().min(1)),\n categories: z.array(z.string().min(1)).optional(),\n tags: z.array(z.string().min(1)).optional(),\n links: z.record(z.string().min(1)).optional(),\n});\n\nexport const metadataDocumentSchema = z.union([\n adapterManifestSchema,\n registryMetadataSchema,\n]);\n\nexport type AdapterDeclarationValidation = z.infer<\n typeof adapterDeclarationSchema\n>;\nexport type AdapterManifest = z.infer<typeof adapterManifestSchema>;\nexport type RegistryMetadataRecord = z.infer<typeof registryMetadataSchema>;\nexport type HCS21MetadataDocument = AdapterManifest | RegistryMetadataRecord;\n"],"names":["HCS21TopicType"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es80.js","sources":["../../src/hcs-21/types.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const HCS21_PROTOCOL = 'hcs-21';\nexport const HCS21_MAX_MESSAGE_BYTES = 1024;\n\nexport const HCS21_REGISTRY_NAMESPACES = [\n 'npm',\n 'pypi',\n 'oci',\n 'composer',\n 'packagist',\n 'cargo',\n 'nuget',\n 'maven',\n 'rubygems',\n 'helm',\n 'go',\n] as const;\n\nexport type PackageRegistryNamespace =\n (typeof HCS21_REGISTRY_NAMESPACES)[number];\nexport type HCS21Operation = 'register' | 'update';\n\nexport const HCS21MetadataPointerPattern = /^hcs:\\/\\/1\\/0\\.0\\.\\d+\\/\\d+$/;\n\nexport interface PackageDeclaration {\n p: typeof HCS21_PROTOCOL;\n op: HCS21Operation;\n registry: PackageRegistryNamespace;\n t_id: string;\n n: string;\n d: string;\n a: string;\n tags?: string[];\n metadata?: string;\n}\n\nexport interface PackageArtifact {\n type: string;\n url: string;\n digest?: string;\n signature?: string;\n [key: string]: unknown;\n}\n\nexport interface PackageMetadataRecord {\n schema: string;\n t_id?: string;\n description?: string;\n maintainers?: string[];\n website?: string;\n docs?: string;\n source?: string;\n support?: string;\n tags?: string[];\n artifacts?: PackageArtifact[];\n capabilities?: string[];\n dependencies?: Record<string, string>;\n [key: string]: unknown;\n}\n\nexport interface PackageMetadataPointer {\n pointer: string;\n topicId: string;\n sequenceNumber: number;\n jobId?: string;\n transactionId?: string;\n}\n\nexport interface PackageDeclarationEnvelope {\n declaration: PackageDeclaration;\n consensusTimestamp?: string;\n sequenceNumber: number;\n payer?: string;\n}\n\nexport enum HCS21TopicType {\n REGISTRY = 0,\n}\n\nexport const packageDeclarationSchema = z.object({\n p: z.literal(HCS21_PROTOCOL),\n op: z.enum(['register', 'update']),\n registry: z.enum(HCS21_REGISTRY_NAMESPACES),\n t_id: z.string().min(1),\n n: z.string().min(1),\n d: z.string().min(1),\n a: z.string().min(1),\n tags: z.array(z.string().min(1)).max(16).optional(),\n metadata: z\n .string()\n .regex(\n HCS21MetadataPointerPattern,\n 'metadata must be an HCS-1 HRL (hcs://1/<topicId>/<sequence>)',\n )\n .optional(),\n});\n\nexport type PackageDeclarationValidation = z.infer<\n typeof packageDeclarationSchema\n>;\n"],"names":["HCS21TopicType"],"mappings":";AAEO,MAAM,iBAAiB;AACvB,MAAM,0BAA0B;AAEhC,MAAM,4BAA4B;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMO,MAAM,8BAA8B;AAqDpC,IAAK,mCAAAA,oBAAL;AACLA,kBAAAA,gBAAA,cAAW,CAAA,IAAX;AADU,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;AAIL,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,GAAG,EAAE,QAAQ,cAAc;AAAA,EAC3B,IAAI,EAAE,KAAK,CAAC,YAAY,QAAQ,CAAC;AAAA,EACjC,UAAU,EAAE,KAAK,yBAAyB;AAAA,EAC1C,MAAM,EAAE,SAAS,IAAI,CAAC;AAAA,EACtB,GAAG,EAAE,SAAS,IAAI,CAAC;AAAA,EACnB,GAAG,EAAE,SAAS,IAAI,CAAC;AAAA,EACnB,GAAG,EAAE,SAAS,IAAI,CAAC;AAAA,EACnB,MAAM,EAAE,MAAM,EAAE,OAAA,EAAS,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,SAAA;AAAA,EACzC,UAAU,EACP,OAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,EAAA,EAED,SAAA;AACL,CAAC;"}
@@ -1,24 +1,13 @@
1
1
  import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es136.js";
2
- import { HCS21TopicType, HCS21TopicIdPattern } from "./standards-sdk.es80.js";
3
- import { HCS21ValidationError } from "./standards-sdk.es81.js";
2
+ import { HCS21TopicType } from "./standards-sdk.es80.js";
4
3
  function buildHcs21RegistryMemo(params) {
5
4
  const indexed = params.indexed ?? 0;
6
- const topicType = params.type ?? HCS21TopicType.ADAPTER_REGISTRY;
7
- if (params.metaTopicId && !HCS21TopicIdPattern.test(params.metaTopicId)) {
8
- throw new HCS21ValidationError(
9
- "Meta topic must be a Hedera topic ID (0.0.x)",
10
- "invalid_payload"
11
- );
12
- }
13
- const metaSegment = params.metaTopicId ? `:${params.metaTopicId}` : "";
14
- return `hcs-21:${indexed}:${params.ttl}:${topicType}${metaSegment}`;
5
+ return `hcs-21:${indexed}:${params.ttl}:${HCS21TopicType.REGISTRY}`;
15
6
  }
16
7
  function buildHcs21CreateRegistryTx(params) {
17
8
  const memo = buildHcs21RegistryMemo({
18
9
  ttl: params.ttl,
19
- indexed: params.indexed,
20
- type: params.type,
21
- metaTopicId: params.metaTopicId
10
+ indexed: params.indexed
22
11
  });
23
12
  return buildTopicCreateTx({
24
13
  memo,
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es82.js","sources":["../../src/hcs-21/tx.ts"],"sourcesContent":["import {\n PublicKey,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n} from '@hashgraph/sdk';\nimport {\n buildTopicCreateTx,\n buildMessageTx,\n MaybeKey,\n} from '../common/tx/tx-utils';\nimport { HCS21TopicType, AdapterDeclaration, HCS21TopicIdPattern } from './types';\nimport { HCS21ValidationError } from './errors';\n\nexport function buildHcs21RegistryMemo(params: {\n ttl: number;\n indexed?: 0 | 1;\n type?: HCS21TopicType;\n metaTopicId?: string;\n}): string {\n const indexed = params.indexed ?? 0;\n const topicType = params.type ?? HCS21TopicType.ADAPTER_REGISTRY;\n\n if (params.metaTopicId && !HCS21TopicIdPattern.test(params.metaTopicId)) {\n throw new HCS21ValidationError(\n 'Meta topic must be a Hedera topic ID (0.0.x)',\n 'invalid_payload',\n );\n }\n\n const metaSegment = params.metaTopicId ? `:${params.metaTopicId}` : '';\n return `hcs-21:${indexed}:${params.ttl}:${topicType}${metaSegment}`;\n}\n\nexport function buildHcs21CreateRegistryTx(params: {\n ttl: number;\n indexed?: 0 | 1;\n type?: HCS21TopicType;\n metaTopicId?: string;\n adminKey?: MaybeKey;\n submitKey?: MaybeKey;\n operatorPublicKey?: PublicKey;\n}): TopicCreateTransaction {\n const memo = buildHcs21RegistryMemo({\n ttl: params.ttl,\n indexed: params.indexed,\n type: params.type,\n metaTopicId: params.metaTopicId,\n });\n return buildTopicCreateTx({\n memo,\n adminKey: params.adminKey,\n submitKey: params.submitKey,\n operatorPublicKey: params.operatorPublicKey,\n });\n}\n\nexport function buildHcs21MessageTx(params: {\n topicId: string;\n declaration: AdapterDeclaration;\n transactionMemo?: string;\n}): TopicMessageSubmitTransaction {\n return buildMessageTx({\n topicId: params.topicId,\n message: JSON.stringify(params.declaration),\n transactionMemo: params.transactionMemo,\n });\n}\n"],"names":[],"mappings":";;;AAaO,SAAS,uBAAuB,QAK5B;AACT,QAAM,UAAU,OAAO,WAAW;AAClC,QAAM,YAAY,OAAO,QAAQ,eAAe;AAEhD,MAAI,OAAO,eAAe,CAAC,oBAAoB,KAAK,OAAO,WAAW,GAAG;AACvE,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,cAAc,OAAO,cAAc,IAAI,OAAO,WAAW,KAAK;AACpE,SAAO,UAAU,OAAO,IAAI,OAAO,GAAG,IAAI,SAAS,GAAG,WAAW;AACnE;AAEO,SAAS,2BAA2B,QAQhB;AACzB,QAAM,OAAO,uBAAuB;AAAA,IAClC,KAAK,OAAO;AAAA,IACZ,SAAS,OAAO;AAAA,IAChB,MAAM,OAAO;AAAA,IACb,aAAa,OAAO;AAAA,EAAA,CACrB;AACD,SAAO,mBAAmB;AAAA,IACxB;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,WAAW,OAAO;AAAA,IAClB,mBAAmB,OAAO;AAAA,EAAA,CAC3B;AACH;AAEO,SAAS,oBAAoB,QAIF;AAChC,SAAO,eAAe;AAAA,IACpB,SAAS,OAAO;AAAA,IAChB,SAAS,KAAK,UAAU,OAAO,WAAW;AAAA,IAC1C,iBAAiB,OAAO;AAAA,EAAA,CACzB;AACH;"}
1
+ {"version":3,"file":"standards-sdk.es82.js","sources":["../../src/hcs-21/tx.ts"],"sourcesContent":["import {\n PublicKey,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n} from '@hashgraph/sdk';\nimport {\n buildTopicCreateTx,\n buildMessageTx,\n MaybeKey,\n} from '../common/tx/tx-utils';\nimport { HCS21TopicType, PackageDeclaration } from './types';\n\nexport function buildHcs21RegistryMemo(params: {\n ttl: number;\n indexed?: 0 | 1;\n}): string {\n const indexed = params.indexed ?? 0;\n return `hcs-21:${indexed}:${params.ttl}:${HCS21TopicType.REGISTRY}`;\n}\n\nexport function buildHcs21CreateRegistryTx(params: {\n ttl: number;\n indexed?: 0 | 1;\n adminKey?: MaybeKey;\n submitKey?: MaybeKey;\n operatorPublicKey?: PublicKey;\n}): TopicCreateTransaction {\n const memo = buildHcs21RegistryMemo({\n ttl: params.ttl,\n indexed: params.indexed,\n });\n return buildTopicCreateTx({\n memo,\n adminKey: params.adminKey,\n submitKey: params.submitKey,\n operatorPublicKey: params.operatorPublicKey,\n });\n}\n\nexport function buildHcs21MessageTx(params: {\n topicId: string;\n declaration: PackageDeclaration;\n transactionMemo?: string;\n}): TopicMessageSubmitTransaction {\n return buildMessageTx({\n topicId: params.topicId,\n message: JSON.stringify(params.declaration),\n transactionMemo: params.transactionMemo,\n });\n}\n"],"names":[],"mappings":";;AAYO,SAAS,uBAAuB,QAG5B;AACT,QAAM,UAAU,OAAO,WAAW;AAClC,SAAO,UAAU,OAAO,IAAI,OAAO,GAAG,IAAI,eAAe,QAAQ;AACnE;AAEO,SAAS,2BAA2B,QAMhB;AACzB,QAAM,OAAO,uBAAuB;AAAA,IAClC,KAAK,OAAO;AAAA,IACZ,SAAS,OAAO;AAAA,EAAA,CACjB;AACD,SAAO,mBAAmB;AAAA,IACxB;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,WAAW,OAAO;AAAA,IAClB,mBAAmB,OAAO;AAAA,EAAA,CAC3B;AACH;AAEO,SAAS,oBAAoB,QAIF;AAChC,SAAO,eAAe;AAAA,IACpB,SAAS,OAAO;AAAA,IAChB,SAAS,KAAK,UAAU,OAAO,WAAW;AAAA,IAC1C,iBAAiB,OAAO;AAAA,EAAA,CACzB;AACH;"}
@@ -1,7 +1,7 @@
1
1
  import { HederaMirrorNode } from "./standards-sdk.es126.js";
2
2
  import { Logger } from "./standards-sdk.es105.js";
3
3
  import { HCS21ValidationError } from "./standards-sdk.es81.js";
4
- import { HCS21_PROTOCOL, adapterDeclarationSchema, HCS21_MAX_MESSAGE_BYTES } from "./standards-sdk.es80.js";
4
+ import { HCS21_PROTOCOL, packageDeclarationSchema, HCS21_MAX_MESSAGE_BYTES } from "./standards-sdk.es80.js";
5
5
  class HCS21BaseClient {
6
6
  constructor(params) {
7
7
  this.network = params.network;
@@ -14,26 +14,26 @@ class HCS21BaseClient {
14
14
  const declaration = {
15
15
  p: HCS21_PROTOCOL,
16
16
  op: params.op,
17
- adapter_id: params.adapterId,
18
- entity: params.entity,
19
- package: params.adapterPackage,
20
- manifest: params.manifest,
21
- flora: params.flora,
22
- state_model: params.stateModel,
23
- signature: params.signature
17
+ registry: params.registry,
18
+ t_id: params.t_id,
19
+ n: params.name,
20
+ d: params.description,
21
+ a: params.author,
22
+ tags: params.tags,
23
+ metadata: params.metadata
24
24
  };
25
25
  return this.validateDeclaration(declaration);
26
26
  }
27
27
  validateDeclaration(input) {
28
28
  try {
29
29
  const payload = typeof input === "string" ? JSON.parse(input) : input;
30
- const parsed = adapterDeclarationSchema.parse(
30
+ const parsed = packageDeclarationSchema.parse(
31
31
  payload
32
32
  );
33
33
  this.assertSizeLimit(parsed);
34
34
  return parsed;
35
35
  } catch (error) {
36
- const message = error instanceof Error ? error.message : "Invalid adapter declaration";
36
+ const message = error instanceof Error ? error.message : "Invalid package declaration";
37
37
  throw new HCS21ValidationError(message, "invalid_payload");
38
38
  }
39
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es83.js","sources":["../../src/hcs-21/base-client.ts"],"sourcesContent":["import { HederaMirrorNode } from '../services/mirror-node';\nimport { ILogger, Logger } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HCS21ValidationError } from './errors';\nimport {\n AdapterDeclaration,\n AdapterDeclarationEnvelope,\n AdapterPackage,\n FloraContext,\n HCS21_MAX_MESSAGE_BYTES,\n HCS21Operation,\n HCS21_PROTOCOL,\n adapterDeclarationSchema,\n} from './types';\n\nexport interface BuildDeclarationParams {\n op: HCS21Operation;\n adapterId: string;\n entity: string;\n adapterPackage: AdapterPackage;\n manifest: string;\n flora: FloraContext;\n stateModel: string;\n signature?: string;\n}\n\nexport interface FetchDeclarationsOptions {\n limit?: number;\n order?: 'asc' | 'desc';\n}\n\nexport class HCS21BaseClient {\n protected readonly network: NetworkType;\n protected readonly logger: ILogger;\n protected readonly mirrorNode: HederaMirrorNode;\n\n constructor(params: {\n network: NetworkType;\n logger?: ILogger;\n mirrorNodeUrl?: string;\n }) {\n this.network = params.network;\n this.logger =\n params.logger || new Logger({ level: 'info', module: 'HCS-21' });\n this.mirrorNode = new HederaMirrorNode(this.network, this.logger, {\n customUrl: params.mirrorNodeUrl,\n });\n }\n\n buildDeclaration(params: BuildDeclarationParams): AdapterDeclaration {\n const declaration: AdapterDeclaration = {\n p: HCS21_PROTOCOL,\n op: params.op,\n adapter_id: params.adapterId,\n entity: params.entity,\n package: params.adapterPackage,\n manifest: params.manifest,\n flora: params.flora,\n state_model: params.stateModel,\n signature: params.signature,\n };\n\n return this.validateDeclaration(declaration);\n }\n\n validateDeclaration(input: unknown): AdapterDeclaration {\n try {\n const payload = typeof input === 'string' ? JSON.parse(input) : input;\n const parsed = adapterDeclarationSchema.parse(\n payload,\n ) as AdapterDeclaration;\n this.assertSizeLimit(parsed);\n return parsed;\n } catch (error) {\n const message =\n error instanceof Error ? error.message : 'Invalid adapter declaration';\n throw new HCS21ValidationError(message, 'invalid_payload');\n }\n }\n\n async fetchDeclarations(\n topicId: string,\n options?: FetchDeclarationsOptions,\n ): Promise<AdapterDeclarationEnvelope[]> {\n const rawMessages = await this.mirrorNode.getTopicMessages(topicId, {\n limit: options?.limit,\n order: options?.order,\n });\n\n const envelopes: AdapterDeclarationEnvelope[] = [];\n\n for (const message of rawMessages) {\n if (message.p !== HCS21_PROTOCOL) {\n continue;\n }\n\n try {\n const declaration = this.validateDeclaration(message);\n envelopes.push({\n declaration,\n consensusTimestamp: message.consensus_timestamp,\n sequenceNumber: message.sequence_number,\n payer: message.payer,\n });\n } catch (error) {\n const detail = error instanceof Error ? error.message : 'unknown error';\n this.logger.warn(`Skipping invalid HCS-21 message: ${detail}`);\n }\n }\n\n return envelopes;\n }\n\n protected assertSizeLimit(payload: AdapterDeclaration): void {\n const json = JSON.stringify(payload);\n const bytes = Buffer.byteLength(json, 'utf8');\n if (bytes > HCS21_MAX_MESSAGE_BYTES) {\n throw new HCS21ValidationError(\n `HCS-21 payload exceeds 1024 bytes (${bytes})`,\n 'size_exceeded',\n );\n }\n }\n}\n"],"names":[],"mappings":";;;;AA+BO,MAAM,gBAAgB;AAAA,EAK3B,YAAY,QAIT;AACD,SAAK,UAAU,OAAO;AACtB,SAAK,SACH,OAAO,UAAU,IAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,UAAU;AACjE,SAAK,aAAa,IAAI,iBAAiB,KAAK,SAAS,KAAK,QAAQ;AAAA,MAChE,WAAW,OAAO;AAAA,IAAA,CACnB;AAAA,EACH;AAAA,EAEA,iBAAiB,QAAoD;AACnE,UAAM,cAAkC;AAAA,MACtC,GAAG;AAAA,MACH,IAAI,OAAO;AAAA,MACX,YAAY,OAAO;AAAA,MACnB,QAAQ,OAAO;AAAA,MACf,SAAS,OAAO;AAAA,MAChB,UAAU,OAAO;AAAA,MACjB,OAAO,OAAO;AAAA,MACd,aAAa,OAAO;AAAA,MACpB,WAAW,OAAO;AAAA,IAAA;AAGpB,WAAO,KAAK,oBAAoB,WAAW;AAAA,EAC7C;AAAA,EAEA,oBAAoB,OAAoC;AACtD,QAAI;AACF,YAAM,UAAU,OAAO,UAAU,WAAW,KAAK,MAAM,KAAK,IAAI;AAChE,YAAM,SAAS,yBAAyB;AAAA,QACtC;AAAA,MAAA;AAEF,WAAK,gBAAgB,MAAM;AAC3B,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU;AAC3C,YAAM,IAAI,qBAAqB,SAAS,iBAAiB;AAAA,IAC3D;AAAA,EACF;AAAA,EAEA,MAAM,kBACJ,SACA,SACuC;AACvC,UAAM,cAAc,MAAM,KAAK,WAAW,iBAAiB,SAAS;AAAA,MAClE,OAAO,SAAS;AAAA,MAChB,OAAO,SAAS;AAAA,IAAA,CACjB;AAED,UAAM,YAA0C,CAAA;AAEhD,eAAW,WAAW,aAAa;AACjC,UAAI,QAAQ,MAAM,gBAAgB;AAChC;AAAA,MACF;AAEA,UAAI;AACF,cAAM,cAAc,KAAK,oBAAoB,OAAO;AACpD,kBAAU,KAAK;AAAA,UACb;AAAA,UACA,oBAAoB,QAAQ;AAAA,UAC5B,gBAAgB,QAAQ;AAAA,UACxB,OAAO,QAAQ;AAAA,QAAA,CAChB;AAAA,MACH,SAAS,OAAO;AACd,cAAM,SAAS,iBAAiB,QAAQ,MAAM,UAAU;AACxD,aAAK,OAAO,KAAK,oCAAoC,MAAM,EAAE;AAAA,MAC/D;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEU,gBAAgB,SAAmC;AAC3D,UAAM,OAAO,KAAK,UAAU,OAAO;AACnC,UAAM,QAAQ,OAAO,WAAW,MAAM,MAAM;AAC5C,QAAI,QAAQ,yBAAyB;AACnC,YAAM,IAAI;AAAA,QACR,sCAAsC,KAAK;AAAA,QAC3C;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es83.js","sources":["../../src/hcs-21/base-client.ts"],"sourcesContent":["import { HederaMirrorNode } from '../services/mirror-node';\nimport { ILogger, Logger } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HCS21ValidationError } from './errors';\nimport {\n HCS21_MAX_MESSAGE_BYTES,\n HCS21Operation,\n HCS21_PROTOCOL,\n PackageDeclaration,\n PackageDeclarationEnvelope,\n PackageRegistryNamespace,\n packageDeclarationSchema,\n} from './types';\n\nexport interface BuildDeclarationParams {\n op: HCS21Operation;\n registry: PackageRegistryNamespace;\n t_id: string;\n name: string;\n description: string;\n author: string;\n tags?: string[];\n metadata?: string;\n}\n\nexport interface FetchDeclarationsOptions {\n limit?: number;\n order?: 'asc' | 'desc';\n}\n\nexport class HCS21BaseClient {\n protected readonly network: NetworkType;\n protected readonly logger: ILogger;\n protected readonly mirrorNode: HederaMirrorNode;\n\n constructor(params: {\n network: NetworkType;\n logger?: ILogger;\n mirrorNodeUrl?: string;\n }) {\n this.network = params.network;\n this.logger =\n params.logger || new Logger({ level: 'info', module: 'HCS-21' });\n this.mirrorNode = new HederaMirrorNode(this.network, this.logger, {\n customUrl: params.mirrorNodeUrl,\n });\n }\n\n buildDeclaration(params: BuildDeclarationParams): PackageDeclaration {\n const declaration: PackageDeclaration = {\n p: HCS21_PROTOCOL,\n op: params.op,\n registry: params.registry,\n t_id: params.t_id,\n n: params.name,\n d: params.description,\n a: params.author,\n tags: params.tags,\n metadata: params.metadata,\n };\n\n return this.validateDeclaration(declaration);\n }\n\n validateDeclaration(input: unknown): PackageDeclaration {\n try {\n const payload = typeof input === 'string' ? JSON.parse(input) : input;\n const parsed = packageDeclarationSchema.parse(\n payload,\n ) as PackageDeclaration;\n this.assertSizeLimit(parsed);\n return parsed;\n } catch (error) {\n const message =\n error instanceof Error ? error.message : 'Invalid package declaration';\n throw new HCS21ValidationError(message, 'invalid_payload');\n }\n }\n\n async fetchDeclarations(\n topicId: string,\n options?: FetchDeclarationsOptions,\n ): Promise<PackageDeclarationEnvelope[]> {\n const rawMessages = await this.mirrorNode.getTopicMessages(topicId, {\n limit: options?.limit,\n order: options?.order,\n });\n\n const envelopes: PackageDeclarationEnvelope[] = [];\n\n for (const message of rawMessages) {\n if (message.p !== HCS21_PROTOCOL) {\n continue;\n }\n\n try {\n const declaration = this.validateDeclaration(message);\n envelopes.push({\n declaration,\n consensusTimestamp: message.consensus_timestamp,\n sequenceNumber: message.sequence_number,\n payer: message.payer,\n });\n } catch (error) {\n const detail = error instanceof Error ? error.message : 'unknown error';\n this.logger.warn(`Skipping invalid HCS-21 message: ${detail}`);\n }\n }\n\n return envelopes;\n }\n\n protected assertSizeLimit(payload: PackageDeclaration): void {\n const json = JSON.stringify(payload);\n const bytes = Buffer.byteLength(json, 'utf8');\n if (bytes > HCS21_MAX_MESSAGE_BYTES) {\n throw new HCS21ValidationError(\n `HCS-21 payload exceeds 1024 bytes (${bytes})`,\n 'size_exceeded',\n );\n }\n }\n}\n"],"names":[],"mappings":";;;;AA8BO,MAAM,gBAAgB;AAAA,EAK3B,YAAY,QAIT;AACD,SAAK,UAAU,OAAO;AACtB,SAAK,SACH,OAAO,UAAU,IAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,UAAU;AACjE,SAAK,aAAa,IAAI,iBAAiB,KAAK,SAAS,KAAK,QAAQ;AAAA,MAChE,WAAW,OAAO;AAAA,IAAA,CACnB;AAAA,EACH;AAAA,EAEA,iBAAiB,QAAoD;AACnE,UAAM,cAAkC;AAAA,MACtC,GAAG;AAAA,MACH,IAAI,OAAO;AAAA,MACX,UAAU,OAAO;AAAA,MACjB,MAAM,OAAO;AAAA,MACb,GAAG,OAAO;AAAA,MACV,GAAG,OAAO;AAAA,MACV,GAAG,OAAO;AAAA,MACV,MAAM,OAAO;AAAA,MACb,UAAU,OAAO;AAAA,IAAA;AAGnB,WAAO,KAAK,oBAAoB,WAAW;AAAA,EAC7C;AAAA,EAEA,oBAAoB,OAAoC;AACtD,QAAI;AACF,YAAM,UAAU,OAAO,UAAU,WAAW,KAAK,MAAM,KAAK,IAAI;AAChE,YAAM,SAAS,yBAAyB;AAAA,QACtC;AAAA,MAAA;AAEF,WAAK,gBAAgB,MAAM;AAC3B,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU;AAC3C,YAAM,IAAI,qBAAqB,SAAS,iBAAiB;AAAA,IAC3D;AAAA,EACF;AAAA,EAEA,MAAM,kBACJ,SACA,SACuC;AACvC,UAAM,cAAc,MAAM,KAAK,WAAW,iBAAiB,SAAS;AAAA,MAClE,OAAO,SAAS;AAAA,MAChB,OAAO,SAAS;AAAA,IAAA,CACjB;AAED,UAAM,YAA0C,CAAA;AAEhD,eAAW,WAAW,aAAa;AACjC,UAAI,QAAQ,MAAM,gBAAgB;AAChC;AAAA,MACF;AAEA,UAAI;AACF,cAAM,cAAc,KAAK,oBAAoB,OAAO;AACpD,kBAAU,KAAK;AAAA,UACb;AAAA,UACA,oBAAoB,QAAQ;AAAA,UAC5B,gBAAgB,QAAQ;AAAA,UACxB,OAAO,QAAQ;AAAA,QAAA,CAChB;AAAA,MACH,SAAS,OAAO;AACd,cAAM,SAAS,iBAAiB,QAAQ,MAAM,UAAU;AACxD,aAAK,OAAO,KAAK,oCAAoC,MAAM,EAAE;AAAA,MAC/D;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEU,gBAAgB,SAAmC;AAC3D,UAAM,OAAO,KAAK,UAAU,OAAO;AACnC,UAAM,QAAQ,OAAO,WAAW,MAAM,MAAM;AAC5C,QAAI,QAAQ,yBAAyB;AACnC,YAAM,IAAI;AAAA,QACR,sCAAsC,KAAK;AAAA,QAC3C;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AACF;"}
@@ -2,7 +2,7 @@ import { Client, Status } from "@hashgraph/sdk";
2
2
  import { createNodeOperatorContext } from "./standards-sdk.es135.js";
3
3
  import { Logger } from "./standards-sdk.es105.js";
4
4
  import { HCS21BaseClient } from "./standards-sdk.es83.js";
5
- import { metadataDocumentSchema, HCS21ManifestPointerPattern } from "./standards-sdk.es80.js";
5
+ import { HCS21MetadataPointerPattern } from "./standards-sdk.es80.js";
6
6
  import { buildHcs21CreateRegistryTx, buildHcs21MessageTx } from "./standards-sdk.es82.js";
7
7
  import { HCS21ValidationError } from "./standards-sdk.es81.js";
8
8
  import { inscribe } from "./standards-sdk.es124.js";
@@ -30,25 +30,21 @@ class HCS21Client extends HCS21BaseClient {
30
30
  }
31
31
  async inscribeMetadata(params) {
32
32
  await this.operatorCtx.ensureInitialized();
33
- const metadataPayload = metadataDocumentSchema.parse(params.document);
34
- const metadataJson = JSON.stringify(metadataPayload, null, 2);
33
+ const metadataJson = JSON.stringify(params.metadata, null, 2);
35
34
  const buffer = Buffer.from(metadataJson, "utf8");
36
- const connectionMode = params.inscriptionOptions?.connectionMode ?? (params.inscriptionOptions?.websocket === false ? "http" : "auto");
37
35
  const inscriptionOptions = {
38
36
  waitForConfirmation: true,
39
- connectionMode,
40
- websocket: params.inscriptionOptions?.websocket ?? false,
41
37
  ...params.inscriptionOptions || {},
42
38
  metadata: {
43
39
  ...params.inscriptionOptions?.metadata || {},
44
- ...metadataPayload
40
+ ...params.metadata
45
41
  }
46
42
  };
47
43
  const inscription = await inscribe(
48
44
  {
49
45
  type: "buffer",
50
46
  buffer,
51
- fileName: params.fileName || `hcs21-adapter-manifest-${Date.now()}.json`,
47
+ fileName: params.fileName || `hcs21-package-metadata-${Date.now()}.json`,
52
48
  mimeType: "application/json"
53
49
  },
54
50
  {
@@ -60,7 +56,7 @@ class HCS21Client extends HCS21BaseClient {
60
56
  );
61
57
  if (!inscription.confirmed || !inscription.inscription) {
62
58
  throw new HCS21ValidationError(
63
- "Failed to inscribe HCS-21 metadata",
59
+ "Failed to inscribe package metadata",
64
60
  "invalid_payload"
65
61
  );
66
62
  }
@@ -72,7 +68,7 @@ class HCS21Client extends HCS21BaseClient {
72
68
  );
73
69
  }
74
70
  const rawSequence = inscription.inscription.sequence_number ?? inscription.inscription.sequenceNumber;
75
- const pointerResult = await this.resolveManifestPointer(
71
+ const pointerResult = await this.resolveMetadataPointer(
76
72
  topicId,
77
73
  rawSequence
78
74
  );
@@ -92,8 +88,6 @@ class HCS21Client extends HCS21BaseClient {
92
88
  const tx = buildHcs21CreateRegistryTx({
93
89
  ttl: params.ttl,
94
90
  indexed: params.indexed,
95
- type: params.type,
96
- metaTopicId: params.metaTopicId,
97
91
  adminKey: params.adminKey,
98
92
  submitKey: params.submitKey,
99
93
  operatorPublicKey: this.operatorCtx.operatorKey.publicKey
@@ -138,7 +132,7 @@ class HCS21Client extends HCS21BaseClient {
138
132
  }
139
133
  return this.buildDeclaration(declaration);
140
134
  }
141
- async resolveManifestPointer(topicId, sequence) {
135
+ async resolveMetadataPointer(topicId, sequence) {
142
136
  const numericSequence = typeof sequence === "string" ? Number(sequence) : sequence;
143
137
  let resolvedSequence = typeof numericSequence === "number" && Number.isFinite(numericSequence) ? numericSequence : void 0;
144
138
  if (!resolvedSequence) {
@@ -148,7 +142,7 @@ class HCS21Client extends HCS21BaseClient {
148
142
  });
149
143
  if (!latest || !latest.sequence_number) {
150
144
  throw new HCS21ValidationError(
151
- "Unable to resolve manifest sequence number",
145
+ "Unable to resolve metadata sequence number",
152
146
  "invalid_payload"
153
147
  );
154
148
  }
@@ -156,14 +150,14 @@ class HCS21Client extends HCS21BaseClient {
156
150
  }
157
151
  if (!Number.isFinite(resolvedSequence)) {
158
152
  throw new HCS21ValidationError(
159
- "Invalid manifest sequence number",
153
+ "Invalid metadata sequence number",
160
154
  "invalid_payload"
161
155
  );
162
156
  }
163
157
  const pointer = `hcs://1/${topicId}/${resolvedSequence}`;
164
- if (!HCS21ManifestPointerPattern.test(pointer)) {
158
+ if (!HCS21MetadataPointerPattern.test(pointer)) {
165
159
  throw new HCS21ValidationError(
166
- "Manifest pointer format is invalid",
160
+ "Metadata pointer format is invalid",
167
161
  "invalid_payload"
168
162
  );
169
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es84.js","sources":["../../src/hcs-21/sdk.ts"],"sourcesContent":["import {\n Client,\n PrivateKey,\n Status,\n TopicCreateTransaction,\n} from '@hashgraph/sdk';\nimport {\n createNodeOperatorContext,\n NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport { Logger, ILogger, LogLevel } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HCS21BaseClient, BuildDeclarationParams } from './base-client';\nimport {\n AdapterDeclaration,\n HCS21ManifestPointerPattern,\n HCS21MetadataDocument,\n HCS21TopicType,\n ManifestPointer,\n metadataDocumentSchema,\n} from './types';\nimport { buildHcs21CreateRegistryTx, buildHcs21MessageTx } from './tx';\nimport { HCS21ValidationError } from './errors';\nimport { MaybeKey } from '../common/tx/tx-utils';\nimport { inscribe } from '../inscribe/inscriber';\nimport type { InscriptionOptions } from '../inscribe/types';\nimport { getTopicId } from '../utils/topic-id-utils';\n\nexport interface HCS21ClientConfig {\n network: NetworkType;\n operatorId: string;\n operatorKey: string | PrivateKey;\n keyType?: 'ed25519' | 'ecdsa';\n logLevel?: LogLevel;\n logger?: ILogger;\n mirrorNodeUrl?: string;\n}\n\nexport interface CreateRegistryTopicParams {\n ttl: number;\n indexed?: 0 | 1;\n type?: HCS21TopicType;\n metaTopicId?: string;\n adminKey?: MaybeKey;\n submitKey?: MaybeKey;\n transactionMemo?: string;\n}\n\nexport interface PublishDeclarationResult {\n sequenceNumber?: number;\n transactionId: string;\n}\n\nexport interface PublishDeclarationParams {\n topicId: string;\n declaration: AdapterDeclaration | BuildDeclarationParams;\n transactionMemo?: string;\n}\n\nexport interface InscribeMetadataParams {\n document: HCS21MetadataDocument;\n fileName?: string;\n inscriptionOptions?: InscriptionOptions;\n}\n\nexport class HCS21Client extends HCS21BaseClient {\n private readonly client: Client;\n private readonly operatorCtx: NodeOperatorContext;\n\n constructor(config: HCS21ClientConfig) {\n const logger =\n config.logger ||\n new Logger({ level: config.logLevel || 'info', module: 'HCS-21' });\n super({\n network: config.network,\n logger,\n mirrorNodeUrl: config.mirrorNodeUrl,\n });\n\n const baseClient =\n config.network === 'mainnet' ? Client.forMainnet() : Client.forTestnet();\n\n this.operatorCtx = createNodeOperatorContext({\n network: config.network,\n operatorId: config.operatorId,\n operatorKey: config.operatorKey,\n keyType: config.keyType,\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n client: baseClient,\n });\n\n void this.operatorCtx.ensureInitialized();\n this.client = this.operatorCtx.client;\n }\n\n async inscribeMetadata(\n params: InscribeMetadataParams,\n ): Promise<ManifestPointer> {\n await this.operatorCtx.ensureInitialized();\n\n const metadataPayload = metadataDocumentSchema.parse(params.document);\n const metadataJson = JSON.stringify(metadataPayload, null, 2);\n const buffer = Buffer.from(metadataJson, 'utf8');\n const connectionMode =\n params.inscriptionOptions?.connectionMode ??\n (params.inscriptionOptions?.websocket === false ? 'http' : 'auto');\n const inscriptionOptions: InscriptionOptions = {\n waitForConfirmation: true,\n connectionMode,\n websocket: params.inscriptionOptions?.websocket ?? false,\n ...(params.inscriptionOptions || {}),\n metadata: {\n ...(params.inscriptionOptions?.metadata || {}),\n ...metadataPayload,\n },\n };\n\n const inscription = await inscribe(\n {\n type: 'buffer',\n buffer,\n fileName: params.fileName || `hcs21-adapter-manifest-${Date.now()}.json`,\n mimeType: 'application/json',\n },\n {\n accountId: this.operatorCtx.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey,\n network: this.network,\n },\n inscriptionOptions,\n );\n\n if (!inscription.confirmed || !inscription.inscription) {\n throw new HCS21ValidationError(\n 'Failed to inscribe HCS-21 metadata',\n 'invalid_payload',\n );\n }\n\n const topicId =\n (inscription.inscription as { jsonTopicId?: string }).jsonTopicId ||\n (inscription.inscription as { topic_id?: string }).topic_id ||\n getTopicId(inscription.inscription);\n\n if (!topicId) {\n throw new HCS21ValidationError(\n 'Metadata inscription did not return a topic ID',\n 'invalid_payload',\n );\n }\n\n const rawSequence =\n (inscription.inscription as { sequence_number?: number })\n .sequence_number ??\n (inscription.inscription as { sequenceNumber?: number }).sequenceNumber;\n\n const pointerResult = await this.resolveManifestPointer(\n topicId,\n rawSequence,\n );\n\n const resultDetails =\n inscription.result && 'jobId' in inscription.result\n ? {\n jobId: inscription.result.jobId,\n transactionId: inscription.result.transactionId,\n }\n : {};\n\n return {\n pointer: pointerResult.pointer,\n topicId,\n sequenceNumber: pointerResult.sequenceNumber,\n ...resultDetails,\n };\n }\n\n async createRegistryTopic(\n params: CreateRegistryTopicParams,\n ): Promise<string> {\n await this.operatorCtx.ensureInitialized();\n\n const tx: TopicCreateTransaction = buildHcs21CreateRegistryTx({\n ttl: params.ttl,\n indexed: params.indexed,\n type: params.type,\n metaTopicId: params.metaTopicId,\n adminKey: params.adminKey,\n submitKey: params.submitKey,\n operatorPublicKey: this.operatorCtx.operatorKey.publicKey,\n });\n\n if (params.transactionMemo) {\n tx.setTransactionMemo(params.transactionMemo);\n }\n\n const response = await tx.execute(this.client);\n const receipt = await response.getReceipt(this.client);\n\n if (receipt.status !== Status.Success || !receipt.topicId) {\n throw new HCS21ValidationError(\n 'Failed to create HCS-21 registry topic',\n 'invalid_payload',\n );\n }\n\n return receipt.topicId.toString();\n }\n\n async publishDeclaration(\n params: PublishDeclarationParams,\n ): Promise<PublishDeclarationResult> {\n await this.operatorCtx.ensureInitialized();\n\n const declaration = this.normalizeDeclarationInput(params.declaration);\n const tx = buildHcs21MessageTx({\n topicId: params.topicId,\n declaration,\n transactionMemo: params.transactionMemo,\n });\n\n const response = await tx.execute(this.client);\n const receipt = await response.getReceipt(this.client);\n\n if (receipt.status !== Status.Success) {\n throw new HCS21ValidationError(\n 'Failed to submit HCS-21 declaration',\n 'invalid_payload',\n );\n }\n\n return {\n sequenceNumber: receipt.topicSequenceNumber?.toNumber(),\n transactionId: response.transactionId.toString(),\n };\n }\n\n private normalizeDeclarationInput(\n declaration: AdapterDeclaration | BuildDeclarationParams,\n ): AdapterDeclaration {\n if ('p' in declaration) {\n return this.validateDeclaration(declaration);\n }\n return this.buildDeclaration(declaration);\n }\n\n private async resolveManifestPointer(\n topicId: string,\n sequence?: number,\n ): Promise<{ pointer: string; sequenceNumber: number }> {\n const numericSequence =\n typeof sequence === 'string' ? Number(sequence) : sequence;\n let resolvedSequence =\n typeof numericSequence === 'number' && Number.isFinite(numericSequence)\n ? numericSequence\n : undefined;\n\n if (!resolvedSequence) {\n const [latest] = await this.mirrorNode.getTopicMessages(topicId, {\n limit: 1,\n order: 'desc',\n });\n\n if (!latest || !latest.sequence_number) {\n throw new HCS21ValidationError(\n 'Unable to resolve manifest sequence number',\n 'invalid_payload',\n );\n }\n\n resolvedSequence = Number(latest.sequence_number);\n }\n\n if (!Number.isFinite(resolvedSequence)) {\n throw new HCS21ValidationError(\n 'Invalid manifest sequence number',\n 'invalid_payload',\n );\n }\n\n const pointer = `hcs://1/${topicId}/${resolvedSequence}`;\n\n if (!HCS21ManifestPointerPattern.test(pointer)) {\n throw new HCS21ValidationError(\n 'Manifest pointer format is invalid',\n 'invalid_payload',\n );\n }\n\n return { pointer, sequenceNumber: resolvedSequence };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es84.js","sources":["../../src/hcs-21/sdk.ts"],"sourcesContent":["import {\n Client,\n PrivateKey,\n Status,\n TopicCreateTransaction,\n} from '@hashgraph/sdk';\nimport {\n createNodeOperatorContext,\n NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport { Logger, ILogger, LogLevel } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HCS21BaseClient, BuildDeclarationParams } from './base-client';\nimport {\n HCS21MetadataPointerPattern,\n PackageDeclaration,\n PackageMetadataPointer,\n PackageMetadataRecord,\n} from './types';\nimport { buildHcs21CreateRegistryTx, buildHcs21MessageTx } from './tx';\nimport { HCS21ValidationError } from './errors';\nimport { MaybeKey } from '../common/tx/tx-utils';\nimport { inscribe } from '../inscribe/inscriber';\nimport type { InscriptionOptions } from '../inscribe/types';\nimport { getTopicId } from '../utils/topic-id-utils';\n\nexport interface HCS21ClientConfig {\n network: NetworkType;\n operatorId: string;\n operatorKey: string | PrivateKey;\n keyType?: 'ed25519' | 'ecdsa';\n logLevel?: LogLevel;\n logger?: ILogger;\n mirrorNodeUrl?: string;\n}\n\nexport interface CreateRegistryTopicParams {\n ttl: number;\n indexed?: 0 | 1;\n adminKey?: MaybeKey;\n submitKey?: MaybeKey;\n transactionMemo?: string;\n}\n\nexport interface PublishDeclarationResult {\n sequenceNumber?: number;\n transactionId: string;\n}\n\nexport interface PublishDeclarationParams {\n topicId: string;\n declaration: PackageDeclaration | BuildDeclarationParams;\n transactionMemo?: string;\n}\n\nexport interface InscribePackageMetadataParams {\n metadata: PackageMetadataRecord;\n fileName?: string;\n inscriptionOptions?: InscriptionOptions;\n}\n\nexport class HCS21Client extends HCS21BaseClient {\n private readonly client: Client;\n private readonly operatorCtx: NodeOperatorContext;\n\n constructor(config: HCS21ClientConfig) {\n const logger =\n config.logger ||\n new Logger({ level: config.logLevel || 'info', module: 'HCS-21' });\n super({\n network: config.network,\n logger,\n mirrorNodeUrl: config.mirrorNodeUrl,\n });\n\n const baseClient =\n config.network === 'mainnet' ? Client.forMainnet() : Client.forTestnet();\n\n this.operatorCtx = createNodeOperatorContext({\n network: config.network,\n operatorId: config.operatorId,\n operatorKey: config.operatorKey,\n keyType: config.keyType,\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n client: baseClient,\n });\n\n void this.operatorCtx.ensureInitialized();\n this.client = this.operatorCtx.client;\n }\n\n async inscribeMetadata(\n params: InscribePackageMetadataParams,\n ): Promise<PackageMetadataPointer> {\n await this.operatorCtx.ensureInitialized();\n\n const metadataJson = JSON.stringify(params.metadata, null, 2);\n const buffer = Buffer.from(metadataJson, 'utf8');\n const inscriptionOptions: InscriptionOptions = {\n waitForConfirmation: true,\n ...(params.inscriptionOptions || {}),\n metadata: {\n ...(params.inscriptionOptions?.metadata || {}),\n ...params.metadata,\n },\n };\n\n const inscription = await inscribe(\n {\n type: 'buffer',\n buffer,\n fileName:\n params.fileName || `hcs21-package-metadata-${Date.now()}.json`,\n mimeType: 'application/json',\n },\n {\n accountId: this.operatorCtx.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey,\n network: this.network,\n },\n inscriptionOptions,\n );\n\n if (!inscription.confirmed || !inscription.inscription) {\n throw new HCS21ValidationError(\n 'Failed to inscribe package metadata',\n 'invalid_payload',\n );\n }\n\n const topicId =\n (inscription.inscription as { jsonTopicId?: string }).jsonTopicId ||\n (inscription.inscription as { topic_id?: string }).topic_id ||\n getTopicId(inscription.inscription);\n\n if (!topicId) {\n throw new HCS21ValidationError(\n 'Metadata inscription did not return a topic ID',\n 'invalid_payload',\n );\n }\n\n const rawSequence =\n (inscription.inscription as { sequence_number?: number })\n .sequence_number ??\n (inscription.inscription as { sequenceNumber?: number }).sequenceNumber;\n\n const pointerResult = await this.resolveMetadataPointer(\n topicId,\n rawSequence,\n );\n\n const resultDetails =\n inscription.result && 'jobId' in inscription.result\n ? {\n jobId: inscription.result.jobId,\n transactionId: inscription.result.transactionId,\n }\n : {};\n\n return {\n pointer: pointerResult.pointer,\n topicId,\n sequenceNumber: pointerResult.sequenceNumber,\n ...resultDetails,\n };\n }\n\n async createRegistryTopic(\n params: CreateRegistryTopicParams,\n ): Promise<string> {\n await this.operatorCtx.ensureInitialized();\n\n const tx: TopicCreateTransaction = buildHcs21CreateRegistryTx({\n ttl: params.ttl,\n indexed: params.indexed,\n adminKey: params.adminKey,\n submitKey: params.submitKey,\n operatorPublicKey: this.operatorCtx.operatorKey.publicKey,\n });\n\n if (params.transactionMemo) {\n tx.setTransactionMemo(params.transactionMemo);\n }\n\n const response = await tx.execute(this.client);\n const receipt = await response.getReceipt(this.client);\n\n if (receipt.status !== Status.Success || !receipt.topicId) {\n throw new HCS21ValidationError(\n 'Failed to create HCS-21 registry topic',\n 'invalid_payload',\n );\n }\n\n return receipt.topicId.toString();\n }\n\n async publishDeclaration(\n params: PublishDeclarationParams,\n ): Promise<PublishDeclarationResult> {\n await this.operatorCtx.ensureInitialized();\n\n const declaration = this.normalizeDeclarationInput(params.declaration);\n const tx = buildHcs21MessageTx({\n topicId: params.topicId,\n declaration,\n transactionMemo: params.transactionMemo,\n });\n\n const response = await tx.execute(this.client);\n const receipt = await response.getReceipt(this.client);\n\n if (receipt.status !== Status.Success) {\n throw new HCS21ValidationError(\n 'Failed to submit HCS-21 declaration',\n 'invalid_payload',\n );\n }\n\n return {\n sequenceNumber: receipt.topicSequenceNumber?.toNumber(),\n transactionId: response.transactionId.toString(),\n };\n }\n\n private normalizeDeclarationInput(\n declaration: PackageDeclaration | BuildDeclarationParams,\n ): PackageDeclaration {\n if ('p' in declaration) {\n return this.validateDeclaration(declaration);\n }\n return this.buildDeclaration(declaration);\n }\n\n private async resolveMetadataPointer(\n topicId: string,\n sequence?: number,\n ): Promise<{ pointer: string; sequenceNumber: number }> {\n const numericSequence =\n typeof sequence === 'string' ? Number(sequence) : sequence;\n let resolvedSequence =\n typeof numericSequence === 'number' && Number.isFinite(numericSequence)\n ? numericSequence\n : undefined;\n\n if (!resolvedSequence) {\n const [latest] = await this.mirrorNode.getTopicMessages(topicId, {\n limit: 1,\n order: 'desc',\n });\n\n if (!latest || !latest.sequence_number) {\n throw new HCS21ValidationError(\n 'Unable to resolve metadata sequence number',\n 'invalid_payload',\n );\n }\n\n resolvedSequence = Number(latest.sequence_number);\n }\n\n if (!Number.isFinite(resolvedSequence)) {\n throw new HCS21ValidationError(\n 'Invalid metadata sequence number',\n 'invalid_payload',\n );\n }\n\n const pointer = `hcs://1/${topicId}/${resolvedSequence}`;\n\n if (!HCS21MetadataPointerPattern.test(pointer)) {\n throw new HCS21ValidationError(\n 'Metadata pointer format is invalid',\n 'invalid_payload',\n );\n }\n\n return { pointer, sequenceNumber: resolvedSequence };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es85.js","sources":["../../src/hcs-21/browser.ts"],"sourcesContent":["import type { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport type { ILogger } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HCS21BaseClient, BuildDeclarationParams } from './base-client';\nimport { AdapterDeclaration, AdapterDeclarationEnvelope } from './types';\n\nexport interface BrowserHCS21ClientConfig {\n network: NetworkType;\n hwc: HashinalsWalletConnectSDK;\n logger?: ILogger;\n}\n\nexport class HCS21BrowserClient extends HCS21BaseClient {\n private readonly hwc: HashinalsWalletConnectSDK;\n\n constructor(config: BrowserHCS21ClientConfig) {\n super({ network: config.network, logger: config.logger });\n this.hwc = config.hwc;\n }\n\n async publishDeclaration(params: {\n topicId: string;\n declaration: AdapterDeclaration | BuildDeclarationParams;\n }): Promise<void> {\n const declaration =\n 'p' in params.declaration\n ? this.validateDeclaration(params.declaration)\n : this.buildDeclaration(params.declaration);\n\n await this.hwc.submitMessageToTopic(\n params.topicId,\n JSON.stringify(declaration),\n );\n }\n\n async fetchDeclarations(\n topicId: string,\n ): Promise<AdapterDeclarationEnvelope[]> {\n const { messages = [] } = await this.hwc.getMessages(topicId);\n const envelopes: AdapterDeclarationEnvelope[] = [];\n\n for (const message of messages) {\n try {\n const declaration = this.validateDeclaration(message.message);\n envelopes.push({\n declaration,\n consensusTimestamp: message.consensus_timestamp,\n sequenceNumber: Number(message.sequence_number || 0),\n payer: message.payer_account_id,\n });\n } catch (error) {\n const detail = error instanceof Error ? error.message : 'unknown error';\n this.logger.warn(`Skipping invalid HCS-21 browser message: ${detail}`);\n }\n }\n\n return envelopes;\n }\n}\n"],"names":[],"mappings":";AAYO,MAAM,2BAA2B,gBAAgB;AAAA,EAGtD,YAAY,QAAkC;AAC5C,UAAM,EAAE,SAAS,OAAO,SAAS,QAAQ,OAAO,QAAQ;AACxD,SAAK,MAAM,OAAO;AAAA,EACpB;AAAA,EAEA,MAAM,mBAAmB,QAGP;AAChB,UAAM,cACJ,OAAO,OAAO,cACV,KAAK,oBAAoB,OAAO,WAAW,IAC3C,KAAK,iBAAiB,OAAO,WAAW;AAE9C,UAAM,KAAK,IAAI;AAAA,MACb,OAAO;AAAA,MACP,KAAK,UAAU,WAAW;AAAA,IAAA;AAAA,EAE9B;AAAA,EAEA,MAAM,kBACJ,SACuC;AACvC,UAAM,EAAE,WAAW,GAAC,IAAM,MAAM,KAAK,IAAI,YAAY,OAAO;AAC5D,UAAM,YAA0C,CAAA;AAEhD,eAAW,WAAW,UAAU;AAC9B,UAAI;AACF,cAAM,cAAc,KAAK,oBAAoB,QAAQ,OAAO;AAC5D,kBAAU,KAAK;AAAA,UACb;AAAA,UACA,oBAAoB,QAAQ;AAAA,UAC5B,gBAAgB,OAAO,QAAQ,mBAAmB,CAAC;AAAA,UACnD,OAAO,QAAQ;AAAA,QAAA,CAChB;AAAA,MACH,SAAS,OAAO;AACd,cAAM,SAAS,iBAAiB,QAAQ,MAAM,UAAU;AACxD,aAAK,OAAO,KAAK,4CAA4C,MAAM,EAAE;AAAA,MACvE;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es85.js","sources":["../../src/hcs-21/browser.ts"],"sourcesContent":["import type { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport type { ILogger } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HCS21BaseClient, BuildDeclarationParams } from './base-client';\nimport { PackageDeclaration, PackageDeclarationEnvelope } from './types';\n\nexport interface BrowserHCS21ClientConfig {\n network: NetworkType;\n hwc: HashinalsWalletConnectSDK;\n logger?: ILogger;\n}\n\nexport class HCS21BrowserClient extends HCS21BaseClient {\n private readonly hwc: HashinalsWalletConnectSDK;\n\n constructor(config: BrowserHCS21ClientConfig) {\n super({ network: config.network, logger: config.logger });\n this.hwc = config.hwc;\n }\n\n async publishDeclaration(params: {\n topicId: string;\n declaration: PackageDeclaration | BuildDeclarationParams;\n }): Promise<void> {\n const declaration =\n 'p' in params.declaration\n ? this.validateDeclaration(params.declaration)\n : this.buildDeclaration(params.declaration);\n\n await this.hwc.submitMessageToTopic(\n params.topicId,\n JSON.stringify(declaration),\n );\n }\n\n async fetchDeclarations(\n topicId: string,\n ): Promise<PackageDeclarationEnvelope[]> {\n const { messages = [] } = await this.hwc.getMessages(topicId);\n const envelopes: PackageDeclarationEnvelope[] = [];\n\n for (const message of messages) {\n try {\n const declaration = this.validateDeclaration(message.message);\n envelopes.push({\n declaration,\n consensusTimestamp: message.consensus_timestamp,\n sequenceNumber: Number(message.sequence_number || 0),\n payer: message.payer_account_id,\n });\n } catch (error) {\n const detail = error instanceof Error ? error.message : 'unknown error';\n this.logger.warn(`Skipping invalid HCS-21 browser message: ${detail}`);\n }\n }\n\n return envelopes;\n }\n}\n"],"names":[],"mappings":";AAYO,MAAM,2BAA2B,gBAAgB;AAAA,EAGtD,YAAY,QAAkC;AAC5C,UAAM,EAAE,SAAS,OAAO,SAAS,QAAQ,OAAO,QAAQ;AACxD,SAAK,MAAM,OAAO;AAAA,EACpB;AAAA,EAEA,MAAM,mBAAmB,QAGP;AAChB,UAAM,cACJ,OAAO,OAAO,cACV,KAAK,oBAAoB,OAAO,WAAW,IAC3C,KAAK,iBAAiB,OAAO,WAAW;AAE9C,UAAM,KAAK,IAAI;AAAA,MACb,OAAO;AAAA,MACP,KAAK,UAAU,WAAW;AAAA,IAAA;AAAA,EAE9B;AAAA,EAEA,MAAM,kBACJ,SACuC;AACvC,UAAM,EAAE,WAAW,GAAC,IAAM,MAAM,KAAK,IAAI,YAAY,OAAO;AAC5D,UAAM,YAA0C,CAAA;AAEhD,eAAW,WAAW,UAAU;AAC9B,UAAI;AACF,cAAM,cAAc,KAAK,oBAAoB,QAAQ,OAAO;AAC5D,kBAAU,KAAK;AAAA,UACb;AAAA,UACA,oBAAoB,QAAQ;AAAA,UAC5B,gBAAgB,OAAO,QAAQ,mBAAmB,CAAC;AAAA,UACnD,OAAO,QAAQ;AAAA,QAAA,CAChB;AAAA,MACH,SAAS,OAAO;AACd,cAAM,SAAS,iBAAiB,QAAQ,MAAM,UAAU;AACxD,aAAK,OAAO,KAAK,4CAA4C,MAAM,EAAE;AAAA,MACvE;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hashgraphonline/standards-sdk",
3
- "version": "0.1.141-canary.0",
3
+ "version": "0.1.141",
4
4
  "description": "The Hashgraph Online Standards SDK provides a complete implementation of the Hashgraph Consensus Standards (HCS), giving developers all the tools needed to build applications on Hedera.",
5
5
  "type": "module",
6
6
  "files": [
@@ -45,66 +45,6 @@
45
45
  "default": "./dist/es/standards-sdk.es.js"
46
46
  }
47
47
  },
48
- "scripts": {
49
- "clean": "rimraf dist",
50
- "build:es": "BUILD_FORMAT=es vite build",
51
- "build:umd": "BUILD_FORMAT=umd vite build",
52
- "build:cjs": "BUILD_FORMAT=cjs vite build",
53
- "build": "npm run clean && npm run build:es && npm run build:cjs",
54
- "cli": "([ -d cli/standards-cli/node_modules ] || pnpm --dir cli/standards-cli install) && pnpm --dir cli/standards-cli start",
55
- "cli:build": "([ -d cli/standards-cli/node_modules ] || pnpm --dir cli/standards-cli install) && pnpm --dir cli/standards-cli build",
56
- "cli:install": "pnpm --dir cli/standards-cli install",
57
- "prepublishOnly": "npm run build",
58
- "release": "npm publish --access public",
59
- "release:canary": "npm run prepublishOnly && npm publish --tag canary --access public",
60
- "version:canary": "npm version prerelease --preid canary --no-git-tag-version",
61
- "publish:canary": "npm run version:canary && npm run release:canary",
62
- "demo:inscribe": "tsx demo/inscribe-demo.ts",
63
- "demo:hcs-10": "tsx demo/hcs-10/index.ts",
64
- "demo:fee": "tsx demo/hcs-10/fee-demo.ts",
65
- "demo:transact": "tsx demo/hcs-10/transact-demo.ts",
66
- "demo:transact-agent": "tsx demo/hcs-10/transact-agent.ts",
67
- "demo:polling-agent": "tsx demo/hcs-10/polling-agent.ts",
68
- "demo:connection-manager": "tsx demo/hcs-10/connection-manager.ts",
69
- "demo:hrl-content": "tsx demo/hrl-content-demo.ts",
70
- "demo:hcs-14:issue-resolve": "tsx demo/hcs-14/issue-and-resolve-did.ts",
71
- "demo:hcs12": "tsx demo/hcs-12/hcs12-demo.ts",
72
- "demo:mcp-chat": "tsx demo/hcs-10/create-mcp.ts",
73
- "demo:hcs-2:create": "tsx demo/hcs-2/create-registry.ts",
74
- "demo:hcs-6": "tsx demo/hcs-6/dynamic-hashinal-demo.ts",
75
- "demo:hcs-6:create-registry": "tsx demo/hcs-6/create-registry.ts",
76
- "demo:hcs-6:query-registry": "tsx demo/hcs-6/query-registry.ts",
77
- "demo:hcs-6:mint": "tsx demo/hcs-6/mint-hashinal.ts",
78
- "demo:hcs-17": "tsx demo/hcs-17/state-hash-demo.ts",
79
- "demo:hcs-7:create": "tsx demo/hcs-7/create-hcs-7-topic.ts",
80
- "demo:hcs-15": "tsx demo/hcs-15/petal-accounts-demo.ts",
81
- "demo:hcs-10:create-registry": "tsx demo/hcs-10/create-registry.ts",
82
- "demo:hcs-16:create-flora": "tsx demo/hcs-16/create-flora-demo.ts",
83
- "demo:hcs-11:profile": "tsx demo/hcs-11/inscribe-profile-with-uaid.ts",
84
- "demo:hcs-11:resolve-uaid": "tsx demo/hcs-11/resolve-profile-uaid.ts",
85
- "demo:hcs-20:deploy-and-mint": "tsx demo/hcs-20/deploy-and-mint.ts",
86
- "demo:hcs-20:deploy-points": "tsx demo/hcs-20/deploy-points.ts",
87
- "demo:hcs-20:mint-transfer-burn": "tsx demo/hcs-20/mint-transfer-burn.ts",
88
- "demo:hcs-21": "tsx demo/hcs-21/package-declaration-demo.ts",
89
- "demo:hcs-6:browser": "pnpm run build && pnpm --dir demo/hcs-6/browser i && pnpm --dir demo/hcs-6/browser dev",
90
- "demo:hcs-5": "tsx demo/hcs-5/mint-hashinal.ts",
91
- "demo:registry-broker": "tsx demo/registry-broker/registry-broker-demo.ts",
92
- "demo:registry-broker-history": "tsx demo/registry-broker/registry-broker-history-demo.ts",
93
- "demo:registry-broker-erc8004": "tsx demo/registry-broker/registry-broker-erc8004-demo.ts",
94
- "demo:registry-broker-agentverse": "tsx demo/registry-broker/registry-broker-agentverse-demo.ts",
95
- "demo:registry-broker-ping": "tsx demo/registry-broker/ping-agent-demo.ts",
96
- "demo:registry-broker-x402": "tsx demo/registry-broker/registry-broker-x402-demo.ts",
97
- "demo:registry-broker-erc8004-x402": "tsx demo/registry-broker/registry-broker-erc8004-x402-demo.ts",
98
- "demo:registry-broker-x402-topup": "tsx demo/registry-broker/registry-broker-x402-topup.ts",
99
- "watch": "nodemon --watch src --ext ts,tsx --exec \"npm run build && yalc push\"",
100
- "test": "jest",
101
- "test:unit-list": "jest --listTests --testPathPattern __tests__/utils/ --testPathPattern __tests__/services/ --testPathPattern __tests__/content-store/ --testPathPattern __tests__/fees/ --testPathPattern __tests__/common/tx/",
102
- "test:unit-fast": "jest --coverage --runInBand --detectOpenHandles --testPathPattern __tests__/utils/ --testPathPattern __tests__/services/ --testPathPattern __tests__/content-store/ --testPathPattern __tests__/fees/ --testPathPattern __tests__/common/tx/",
103
- "lint": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json}\" \"demo/**/*.{ts,tsx,js,jsx,json}\" \"__tests__/**/*.{ts,tsx,js,jsx,json}\"",
104
- "lint:fix": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\" \"demo/**/*.{ts,tsx,js,jsx,json}\" \"__tests__/**/*.{ts,tsx,js,jsx,json}\"",
105
- "format": "npm run lint:fix",
106
- "format:check": "npm run lint"
107
- },
108
48
  "devDependencies": {
109
49
  "@hashgraphonline/conversational-agent": "0.2.104",
110
50
  "@swc/jest": "^0.2.39",
@@ -165,5 +105,63 @@
165
105
  "@hashgraphonline/standards-sdk": "0.1.132",
166
106
  "@hashgraph/sdk": "^2.77.0"
167
107
  },
168
- "packageManager": "pnpm@10.11.1+sha512.e519b9f7639869dc8d5c3c5dfef73b3f091094b0a006d7317353c72b124e80e1afd429732e28705ad6bfa1ee879c1fce46c128ccebd3192101f43dd67c667912"
169
- }
108
+ "scripts": {
109
+ "clean": "rimraf dist",
110
+ "build:es": "BUILD_FORMAT=es vite build",
111
+ "build:umd": "BUILD_FORMAT=umd vite build",
112
+ "build:cjs": "BUILD_FORMAT=cjs vite build",
113
+ "build": "npm run clean && npm run build:es && npm run build:cjs",
114
+ "cli": "([ -d cli/standards-cli/node_modules ] || pnpm --dir cli/standards-cli install) && pnpm --dir cli/standards-cli start",
115
+ "cli:build": "([ -d cli/standards-cli/node_modules ] || pnpm --dir cli/standards-cli install) && pnpm --dir cli/standards-cli build",
116
+ "cli:install": "pnpm --dir cli/standards-cli install",
117
+ "release": "npm publish --access public",
118
+ "release:canary": "npm run prepublishOnly && npm publish --tag canary --access public",
119
+ "version:canary": "npm version prerelease --preid canary --no-git-tag-version",
120
+ "publish:canary": "npm run version:canary && npm run release:canary",
121
+ "demo:inscribe": "tsx demo/inscribe-demo.ts",
122
+ "demo:hcs-10": "tsx demo/hcs-10/index.ts",
123
+ "demo:fee": "tsx demo/hcs-10/fee-demo.ts",
124
+ "demo:transact": "tsx demo/hcs-10/transact-demo.ts",
125
+ "demo:transact-agent": "tsx demo/hcs-10/transact-agent.ts",
126
+ "demo:polling-agent": "tsx demo/hcs-10/polling-agent.ts",
127
+ "demo:connection-manager": "tsx demo/hcs-10/connection-manager.ts",
128
+ "demo:hrl-content": "tsx demo/hrl-content-demo.ts",
129
+ "demo:hcs-14:issue-resolve": "tsx demo/hcs-14/issue-and-resolve-did.ts",
130
+ "demo:hcs12": "tsx demo/hcs-12/hcs12-demo.ts",
131
+ "demo:mcp-chat": "tsx demo/hcs-10/create-mcp.ts",
132
+ "demo:hcs-2:create": "tsx demo/hcs-2/create-registry.ts",
133
+ "demo:hcs-6": "tsx demo/hcs-6/dynamic-hashinal-demo.ts",
134
+ "demo:hcs-6:create-registry": "tsx demo/hcs-6/create-registry.ts",
135
+ "demo:hcs-6:query-registry": "tsx demo/hcs-6/query-registry.ts",
136
+ "demo:hcs-6:mint": "tsx demo/hcs-6/mint-hashinal.ts",
137
+ "demo:hcs-17": "tsx demo/hcs-17/state-hash-demo.ts",
138
+ "demo:hcs-7:create": "tsx demo/hcs-7/create-hcs-7-topic.ts",
139
+ "demo:hcs-15": "tsx demo/hcs-15/petal-accounts-demo.ts",
140
+ "demo:hcs-10:create-registry": "tsx demo/hcs-10/create-registry.ts",
141
+ "demo:hcs-16:create-flora": "tsx demo/hcs-16/create-flora-demo.ts",
142
+ "demo:hcs-11:profile": "tsx demo/hcs-11/inscribe-profile-with-uaid.ts",
143
+ "demo:hcs-11:resolve-uaid": "tsx demo/hcs-11/resolve-profile-uaid.ts",
144
+ "demo:hcs-20:deploy-and-mint": "tsx demo/hcs-20/deploy-and-mint.ts",
145
+ "demo:hcs-20:deploy-points": "tsx demo/hcs-20/deploy-points.ts",
146
+ "demo:hcs-20:mint-transfer-burn": "tsx demo/hcs-20/mint-transfer-burn.ts",
147
+ "demo:hcs-21": "tsx demo/hcs-21/package-declaration-demo.ts",
148
+ "demo:hcs-6:browser": "pnpm run build && pnpm --dir demo/hcs-6/browser i && pnpm --dir demo/hcs-6/browser dev",
149
+ "demo:hcs-5": "tsx demo/hcs-5/mint-hashinal.ts",
150
+ "demo:registry-broker": "tsx demo/registry-broker/registry-broker-demo.ts",
151
+ "demo:registry-broker-history": "tsx demo/registry-broker/registry-broker-history-demo.ts",
152
+ "demo:registry-broker-erc8004": "tsx demo/registry-broker/registry-broker-erc8004-demo.ts",
153
+ "demo:registry-broker-agentverse": "tsx demo/registry-broker/registry-broker-agentverse-demo.ts",
154
+ "demo:registry-broker-ping": "tsx demo/registry-broker/ping-agent-demo.ts",
155
+ "demo:registry-broker-x402": "tsx demo/registry-broker/registry-broker-x402-demo.ts",
156
+ "demo:registry-broker-erc8004-x402": "tsx demo/registry-broker/registry-broker-erc8004-x402-demo.ts",
157
+ "demo:registry-broker-x402-topup": "tsx demo/registry-broker/registry-broker-x402-topup.ts",
158
+ "watch": "nodemon --watch src --ext ts,tsx --exec \"npm run build && yalc push\"",
159
+ "test": "jest",
160
+ "test:unit-list": "jest --listTests --testPathPattern __tests__/utils/ --testPathPattern __tests__/services/ --testPathPattern __tests__/content-store/ --testPathPattern __tests__/fees/ --testPathPattern __tests__/common/tx/",
161
+ "test:unit-fast": "jest --coverage --runInBand --detectOpenHandles --testPathPattern __tests__/utils/ --testPathPattern __tests__/services/ --testPathPattern __tests__/content-store/ --testPathPattern __tests__/fees/ --testPathPattern __tests__/common/tx/",
162
+ "lint": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json}\" \"demo/**/*.{ts,tsx,js,jsx,json}\" \"__tests__/**/*.{ts,tsx,js,jsx,json}\"",
163
+ "lint:fix": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\" \"demo/**/*.{ts,tsx,js,jsx,json}\" \"__tests__/**/*.{ts,tsx,js,jsx,json}\"",
164
+ "format": "npm run lint:fix",
165
+ "format:check": "npm run lint"
166
+ }
167
+ }