@hashgraphonline/standards-sdk 0.1.141-canary.12 → 0.1.141-canary.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-21/index.d.ts +1 -0
- package/dist/cjs/hcs-21/index.d.ts.map +1 -1
- package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-21/verify.d.ts +6 -0
- package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
- package/dist/cjs/standards-sdk.cjs +1 -1
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/hcs-21/base-client.d.ts.map +1 -1
- package/dist/es/hcs-21/index.d.ts +1 -0
- package/dist/es/hcs-21/index.d.ts.map +1 -1
- package/dist/es/hcs-21/tx.d.ts.map +1 -1
- package/dist/es/hcs-21/verify.d.ts +6 -0
- package/dist/es/hcs-21/verify.d.ts.map +1 -0
- package/dist/es/standards-sdk.es.js +53 -48
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es10.js +2 -2
- package/dist/es/standards-sdk.es100.js +26 -229
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +228 -109
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +94 -15
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +30 -80
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +80 -27
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +25 -136
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +140 -27
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +27 -20
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +18 -156
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +148 -196
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es110.js +165 -747
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +786 -9
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +13 -567
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +541 -576
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +601 -12
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +13 -2
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +2 -83
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +80 -36
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +39 -2
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +2 -223
- 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 +193 -1110
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +1059 -225
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +303 -419
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +418 -351
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +348 -818
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +804 -187
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +153 -1512
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +1373 -1987
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +2174 -65
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +64 -79
- 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 +80 -152
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +159 -7
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +7 -86
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +65 -44
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +65 -28
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +28 -138
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +12265 -33
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +746 -12254
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +138 -766
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +40 -15
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es141.js +1 -1
- package/dist/es/standards-sdk.es148.js +20 -0
- package/dist/es/standards-sdk.es148.js.map +1 -0
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es16.js +1 -1
- package/dist/es/standards-sdk.es17.js +5 -5
- package/dist/es/standards-sdk.es19.js +12 -12
- package/dist/es/standards-sdk.es20.js +9 -9
- 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 +1 -1
- package/dist/es/standards-sdk.es28.js +12 -12
- package/dist/es/standards-sdk.es3.js +2 -2
- package/dist/es/standards-sdk.es31.js +2 -2
- package/dist/es/standards-sdk.es32.js +4 -4
- package/dist/es/standards-sdk.es33.js +1 -1
- package/dist/es/standards-sdk.es36.js +6 -6
- package/dist/es/standards-sdk.es37.js +4 -4
- package/dist/es/standards-sdk.es38.js +2 -2
- package/dist/es/standards-sdk.es39.js +2 -2
- package/dist/es/standards-sdk.es40.js +1 -1
- package/dist/es/standards-sdk.es41.js +1 -1
- package/dist/es/standards-sdk.es42.js +2 -2
- package/dist/es/standards-sdk.es47.js +1 -1
- package/dist/es/standards-sdk.es5.js +2 -2
- package/dist/es/standards-sdk.es52.js +1 -1
- package/dist/es/standards-sdk.es54.js +1 -1
- package/dist/es/standards-sdk.es57.js +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es61.js +7 -7
- package/dist/es/standards-sdk.es65.js +2 -2
- package/dist/es/standards-sdk.es66.js +3 -3
- package/dist/es/standards-sdk.es69.js +2 -2
- package/dist/es/standards-sdk.es7.js +2 -2
- package/dist/es/standards-sdk.es70.js +3 -3
- package/dist/es/standards-sdk.es71.js +2 -2
- package/dist/es/standards-sdk.es72.js +1 -1
- package/dist/es/standards-sdk.es75.js +2 -2
- package/dist/es/standards-sdk.es77.js +2 -2
- package/dist/es/standards-sdk.es78.js +4 -4
- package/dist/es/standards-sdk.es79.js +1 -1
- package/dist/es/standards-sdk.es8.js +1 -1
- package/dist/es/standards-sdk.es82.js +10 -2
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +5 -5
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +4 -4
- package/dist/es/standards-sdk.es86.js +55 -21
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +22 -75
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +45 -30
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +57 -22
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es90.js +28 -23
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +23 -167
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +158 -119
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +68 -95
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +136 -119
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +134 -39
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +40 -258
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +243 -80
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +47 -48
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +100 -28
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getCryptoAdapter } from "./standards-sdk.
|
|
2
|
-
import { isSSREnvironment } from "./standards-sdk.
|
|
1
|
+
import { getCryptoAdapter } from "./standards-sdk.es120.js";
|
|
2
|
+
import { isSSREnvironment } from "./standards-sdk.es118.js";
|
|
3
3
|
class ActionBuilder {
|
|
4
4
|
constructor(logger) {
|
|
5
5
|
this.cryptoAdapter = getCryptoAdapter();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getCryptoAdapter } from "./standards-sdk.
|
|
2
|
-
import { isSSREnvironment } from "./standards-sdk.
|
|
1
|
+
import { getCryptoAdapter } from "./standards-sdk.es120.js";
|
|
2
|
+
import { isSSREnvironment } from "./standards-sdk.es118.js";
|
|
3
3
|
class WasmValidator {
|
|
4
4
|
constructor(logger) {
|
|
5
5
|
this.cryptoAdapter = getCryptoAdapter();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HCS } from "./standards-sdk.es3.js";
|
|
2
|
-
import { isSSREnvironment } from "./standards-sdk.
|
|
2
|
+
import { isSSREnvironment } from "./standards-sdk.es118.js";
|
|
3
3
|
class ResourceManager {
|
|
4
4
|
constructor(networkType, logger, hcs, options = {}) {
|
|
5
5
|
this.cache = /* @__PURE__ */ new Map();
|
|
@@ -2,8 +2,8 @@ import { HCS6BaseClient } from "./standards-sdk.es7.js";
|
|
|
2
2
|
import { buildHcs6Hrl } from "./standards-sdk.es4.js";
|
|
3
3
|
import { AccountId, Client, TopicMessageSubmitTransaction, TopicId, PrivateKey, PublicKey, TokenMintTransaction, TokenId } from "@hashgraph/sdk";
|
|
4
4
|
import { buildHcs6CreateRegistryTx } from "./standards-sdk.es8.js";
|
|
5
|
-
import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.
|
|
6
|
-
import { inscribe } from "./standards-sdk.
|
|
5
|
+
import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.es138.js";
|
|
6
|
+
import { inscribe } from "./standards-sdk.es125.js";
|
|
7
7
|
class HCS6Client extends HCS6BaseClient {
|
|
8
8
|
constructor(config) {
|
|
9
9
|
super({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getCryptoAdapter } from "./standards-sdk.
|
|
1
|
+
import { getCryptoAdapter } from "./standards-sdk.es120.js";
|
|
2
2
|
import { base58Encode } from "./standards-sdk.es140.js";
|
|
3
3
|
import { canonicalizeAgentData } from "./standards-sdk.es56.js";
|
|
4
4
|
function encodeMultibaseB58btc(input) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HCS6BaseClient } from "./standards-sdk.es7.js";
|
|
2
2
|
import { HCS6RegistryType } from "./standards-sdk.es4.js";
|
|
3
|
-
import { inscribeWithSigner } from "./standards-sdk.
|
|
4
|
-
import { getTopicId } from "./standards-sdk.
|
|
3
|
+
import { inscribeWithSigner } from "./standards-sdk.es125.js";
|
|
4
|
+
import { getTopicId } from "./standards-sdk.es115.js";
|
|
5
5
|
class HCS6BrowserClient extends HCS6BaseClient {
|
|
6
6
|
/**
|
|
7
7
|
* Create a new HCS-6 browser client
|
|
@@ -7,27 +7,27 @@ import { IssuerRegistry } from "./standards-sdk.es62.js";
|
|
|
7
7
|
import { HederaHieroIssuer } from "./standards-sdk.es63.js";
|
|
8
8
|
import { Client } from "@hashgraph/sdk";
|
|
9
9
|
import { HCS11Client } from "./standards-sdk.es28.js";
|
|
10
|
-
import { Logger } from "./standards-sdk.
|
|
11
|
-
import { HederaMirrorNode } from "./standards-sdk.
|
|
10
|
+
import { Logger } from "./standards-sdk.es106.js";
|
|
11
|
+
import { HederaMirrorNode } from "./standards-sdk.es127.js";
|
|
12
12
|
import "axios";
|
|
13
13
|
import "node:path";
|
|
14
14
|
import "node:buffer";
|
|
15
15
|
import "node:crypto";
|
|
16
16
|
import "node:module";
|
|
17
17
|
import "@noble/curves/secp256k1.js";
|
|
18
|
-
import "./standards-sdk.
|
|
18
|
+
import "./standards-sdk.es130.js";
|
|
19
19
|
import "viem/accounts";
|
|
20
20
|
import "viem/chains";
|
|
21
21
|
import "x402-axios";
|
|
22
22
|
import "x402/types";
|
|
23
|
-
import "./standards-sdk.
|
|
23
|
+
import "./standards-sdk.es137.js";
|
|
24
24
|
import "zod";
|
|
25
25
|
import "@hashgraph/proto";
|
|
26
26
|
import "buffer";
|
|
27
27
|
import "ethers";
|
|
28
|
-
import "./standards-sdk.
|
|
29
|
-
import "./standards-sdk.
|
|
30
|
-
import { createNodeOperatorContext } from "./standards-sdk.
|
|
28
|
+
import "./standards-sdk.es123.js";
|
|
29
|
+
import "./standards-sdk.es114.js";
|
|
30
|
+
import { createNodeOperatorContext } from "./standards-sdk.es138.js";
|
|
31
31
|
import { HCS10Client } from "./standards-sdk.es19.js";
|
|
32
32
|
class HCS14Client {
|
|
33
33
|
constructor(options) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { HCS5BaseClient } from "./standards-sdk.
|
|
1
|
+
import { HCS5BaseClient } from "./standards-sdk.es148.js";
|
|
2
2
|
import { buildHcs1Hrl } from "./standards-sdk.es64.js";
|
|
3
3
|
import { PrivateKey } from "@hashgraph/sdk";
|
|
4
|
-
import { inscribeWithSigner } from "./standards-sdk.
|
|
4
|
+
import { inscribeWithSigner } from "./standards-sdk.es125.js";
|
|
5
5
|
import { buildHcs5MintTx } from "./standards-sdk.es67.js";
|
|
6
6
|
class HCS5BrowserClient extends HCS5BaseClient {
|
|
7
7
|
constructor(config) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { HCS5BaseClient } from "./standards-sdk.
|
|
1
|
+
import { HCS5BaseClient } from "./standards-sdk.es148.js";
|
|
2
2
|
import { buildHcs1Hrl } from "./standards-sdk.es64.js";
|
|
3
3
|
import { AccountId } from "@hashgraph/sdk";
|
|
4
|
-
import { inscribe } from "./standards-sdk.
|
|
4
|
+
import { inscribe } from "./standards-sdk.es125.js";
|
|
5
5
|
import { buildHcs5MintTx } from "./standards-sdk.es67.js";
|
|
6
|
-
import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.
|
|
6
|
+
import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.es138.js";
|
|
7
7
|
class HCS5Client extends HCS5BaseClient {
|
|
8
8
|
constructor(config) {
|
|
9
9
|
super(config);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AccountId, Client, PublicKey } from "@hashgraph/sdk";
|
|
2
2
|
import { HCS2BaseClient } from "./standards-sdk.es71.js";
|
|
3
3
|
import { HCS2Operation, HCS2RegistryType } from "./standards-sdk.es68.js";
|
|
4
|
-
import { createNodeOperatorContext } from "./standards-sdk.
|
|
5
|
-
import { buildMessageTx } from "./standards-sdk.
|
|
4
|
+
import { createNodeOperatorContext } from "./standards-sdk.es138.js";
|
|
5
|
+
import { buildMessageTx } from "./standards-sdk.es139.js";
|
|
6
6
|
import { buildHcs2CreateRegistryTx } from "./standards-sdk.es72.js";
|
|
7
7
|
const _HCS2Client = class _HCS2Client extends HCS2BaseClient {
|
|
8
8
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Logger } from "./standards-sdk.
|
|
2
|
-
import { HederaMirrorNode } from "./standards-sdk.
|
|
1
|
+
import { Logger } from "./standards-sdk.es106.js";
|
|
2
|
+
import { HederaMirrorNode } from "./standards-sdk.es127.js";
|
|
3
3
|
import { HCS6RegistryType, validateHCS6TTL, generateHCS6RegistryMemo, hcs6MessageSchema, HCS6Operation } from "./standards-sdk.es4.js";
|
|
4
4
|
import { ZodError } from "zod";
|
|
5
5
|
class HCS6BaseClient {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { TopicCreateTransaction, PublicKey } from "@hashgraph/sdk";
|
|
2
2
|
import { HCS2BaseClient } from "./standards-sdk.es71.js";
|
|
3
3
|
import { HCS2RegistryType, HCS2Operation } from "./standards-sdk.es68.js";
|
|
4
|
-
import { isBrowser } from "./standards-sdk.
|
|
5
|
-
import { KeyTypeDetector } from "./standards-sdk.
|
|
6
|
-
import { buildMessageTx } from "./standards-sdk.
|
|
4
|
+
import { isBrowser } from "./standards-sdk.es119.js";
|
|
5
|
+
import { KeyTypeDetector } from "./standards-sdk.es114.js";
|
|
6
|
+
import { buildMessageTx } from "./standards-sdk.es139.js";
|
|
7
7
|
class BrowserHCS2Client extends HCS2BaseClient {
|
|
8
8
|
/**
|
|
9
9
|
* Create a new browser HCS-2 client
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Logger } from "./standards-sdk.
|
|
2
|
-
import { HederaMirrorNode } from "./standards-sdk.
|
|
1
|
+
import { Logger } from "./standards-sdk.es106.js";
|
|
2
|
+
import { HederaMirrorNode } from "./standards-sdk.es127.js";
|
|
3
3
|
import { hcs2MessageSchema, HCS2Operation, HCS2RegistryType } from "./standards-sdk.es68.js";
|
|
4
4
|
import { ZodError } from "zod";
|
|
5
5
|
class HCS2BaseClient {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buildTopicCreateTx, buildMessageTx, encodeHcs2RegistryMemo } from "./standards-sdk.
|
|
1
|
+
import { buildTopicCreateTx, buildMessageTx, encodeHcs2RegistryMemo } from "./standards-sdk.es139.js";
|
|
2
2
|
import { HCS2Operation } from "./standards-sdk.es68.js";
|
|
3
3
|
function buildHcs2CreateRegistryTx(params) {
|
|
4
4
|
const memo = params.memoOverride ?? encodeHcs2RegistryMemo(params.registryType, params.ttl);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Logger } from "./standards-sdk.
|
|
2
|
-
import { HederaMirrorNode } from "./standards-sdk.
|
|
1
|
+
import { Logger } from "./standards-sdk.es106.js";
|
|
2
|
+
import { HederaMirrorNode } from "./standards-sdk.es127.js";
|
|
3
3
|
import { HCS20_CONSTANTS, HCS20MessageSchema } from "./standards-sdk.es73.js";
|
|
4
4
|
import { InvalidAccountFormatError } from "./standards-sdk.es74.js";
|
|
5
5
|
class HCS20BaseClient {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AccountId, Client, Status, TopicCreateTransaction } from "@hashgraph/sdk";
|
|
2
2
|
import { HCS20BaseClient } from "./standards-sdk.es75.js";
|
|
3
3
|
import { PointsDeploymentError, PointsValidationError, PointsTransferError, PointsBurnError } from "./standards-sdk.es74.js";
|
|
4
|
-
import { sleep } from "./standards-sdk.
|
|
5
|
-
import { createNodeOperatorContext } from "./standards-sdk.
|
|
4
|
+
import { sleep } from "./standards-sdk.es116.js";
|
|
5
|
+
import { createNodeOperatorContext } from "./standards-sdk.es138.js";
|
|
6
6
|
import { HCS2Client } from "./standards-sdk.es69.js";
|
|
7
7
|
import { buildHcs20DeployTx, buildHcs20MintTx, buildHcs20TransferTx, buildHcs20BurnTx, buildHcs20RegisterTx } from "./standards-sdk.es79.js";
|
|
8
8
|
class HCS20Client extends HCS20BaseClient {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Logger } from "./standards-sdk.
|
|
2
|
-
import { HederaMirrorNode } from "./standards-sdk.
|
|
1
|
+
import { Logger } from "./standards-sdk.es106.js";
|
|
2
|
+
import { HederaMirrorNode } from "./standards-sdk.es127.js";
|
|
3
3
|
import "node:path";
|
|
4
4
|
import "node:buffer";
|
|
5
5
|
import "node:crypto";
|
|
6
6
|
import "node:module";
|
|
7
7
|
import "@noble/curves/secp256k1.js";
|
|
8
|
-
import "./standards-sdk.
|
|
8
|
+
import "./standards-sdk.es130.js";
|
|
9
9
|
import "axios";
|
|
10
10
|
import "viem/accounts";
|
|
11
11
|
import "viem/chains";
|
|
12
12
|
import "x402-axios";
|
|
13
13
|
import "x402/types";
|
|
14
|
-
import "./standards-sdk.
|
|
14
|
+
import "./standards-sdk.es137.js";
|
|
15
15
|
import "zod";
|
|
16
16
|
import { HCS20_CONSTANTS, HCS20MessageSchema } from "./standards-sdk.es73.js";
|
|
17
17
|
class HCS20PointsIndexer {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buildMessageTx } from "./standards-sdk.
|
|
1
|
+
import { buildMessageTx } from "./standards-sdk.es139.js";
|
|
2
2
|
function buildHcs20SubmitMessageTx(params) {
|
|
3
3
|
const msg = typeof params.payload === "string" ? params.payload : JSON.stringify(params.payload);
|
|
4
4
|
return buildMessageTx({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.
|
|
1
|
+
import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es139.js";
|
|
2
2
|
import { HCS6Operation } from "./standards-sdk.es4.js";
|
|
3
3
|
function encodeHcs6NonIndexedMemo(ttl) {
|
|
4
4
|
return `hcs-6:1:${ttl}`;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.
|
|
2
|
-
import { HCS21TopicType, HCS21MetadataPointerPattern } from "./standards-sdk.es80.js";
|
|
1
|
+
import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es139.js";
|
|
2
|
+
import { HCS21TopicType, HCS21MetadataPointerPattern, HCS21_SAFE_MESSAGE_BYTES, HCS21_MAX_MESSAGE_BYTES } from "./standards-sdk.es80.js";
|
|
3
3
|
import { HCS21ValidationError } from "./standards-sdk.es81.js";
|
|
4
4
|
function buildHcs21RegistryMemo(params) {
|
|
5
5
|
const indexed = params.indexed ?? 0;
|
|
@@ -28,6 +28,14 @@ function buildHcs21CreateRegistryTx(params) {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
function buildHcs21MessageTx(params) {
|
|
31
|
+
const json = JSON.stringify(params.declaration);
|
|
32
|
+
const bytes = Buffer.byteLength(json, "utf8");
|
|
33
|
+
if (bytes > HCS21_SAFE_MESSAGE_BYTES) {
|
|
34
|
+
throw new HCS21ValidationError(
|
|
35
|
+
`HCS-21 payload exceeds safe limit of ${HCS21_SAFE_MESSAGE_BYTES} bytes (${bytes}); Hedera cap is ${HCS21_MAX_MESSAGE_BYTES}`,
|
|
36
|
+
"size_exceeded"
|
|
37
|
+
);
|
|
38
|
+
}
|
|
31
39
|
return buildMessageTx({
|
|
32
40
|
topicId: params.topicId,
|
|
33
41
|
message: JSON.stringify(params.declaration),
|
|
@@ -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 {\n HCS21TopicType,\n AdapterDeclaration,\n HCS21MetadataPointerPattern,\n} 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 (\n params.metaTopicId &&\n !HCS21MetadataPointerPattern.test(params.metaTopicId)\n ) {\n throw new HCS21ValidationError(\n 'Meta value must be a short pointer (topic ID, HRL, IPFS, Arweave, OCI, or HTTPS)',\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":";;;
|
|
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 {\n HCS21TopicType,\n AdapterDeclaration,\n HCS21MetadataPointerPattern,\n HCS21_SAFE_MESSAGE_BYTES,\n HCS21_MAX_MESSAGE_BYTES,\n} 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 (\n params.metaTopicId &&\n !HCS21MetadataPointerPattern.test(params.metaTopicId)\n ) {\n throw new HCS21ValidationError(\n 'Meta value must be a short pointer (topic ID, HRL, IPFS, Arweave, OCI, or HTTPS)',\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 const json = JSON.stringify(params.declaration);\n const bytes = Buffer.byteLength(json, 'utf8');\n if (bytes > HCS21_SAFE_MESSAGE_BYTES) {\n throw new HCS21ValidationError(\n `HCS-21 payload exceeds safe limit of ${HCS21_SAFE_MESSAGE_BYTES} bytes (${bytes}); Hedera cap is ${HCS21_MAX_MESSAGE_BYTES}`,\n 'size_exceeded',\n );\n }\n return buildMessageTx({\n topicId: params.topicId,\n message: JSON.stringify(params.declaration),\n transactionMemo: params.transactionMemo,\n });\n}\n"],"names":[],"mappings":";;;AAmBO,SAAS,uBAAuB,QAK5B;AACT,QAAM,UAAU,OAAO,WAAW;AAClC,QAAM,YAAY,OAAO,QAAQ,eAAe;AAEhD,MACE,OAAO,eACP,CAAC,4BAA4B,KAAK,OAAO,WAAW,GACpD;AACA,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,QAAM,OAAO,KAAK,UAAU,OAAO,WAAW;AAC9C,QAAM,QAAQ,OAAO,WAAW,MAAM,MAAM;AAC5C,MAAI,QAAQ,0BAA0B;AACpC,UAAM,IAAI;AAAA,MACR,wCAAwC,wBAAwB,WAAW,KAAK,oBAAoB,uBAAuB;AAAA,MAC3H;AAAA,IAAA;AAAA,EAEJ;AACA,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
|
-
import { HederaMirrorNode } from "./standards-sdk.
|
|
2
|
-
import { Logger } from "./standards-sdk.
|
|
1
|
+
import { HederaMirrorNode } from "./standards-sdk.es127.js";
|
|
2
|
+
import { Logger } from "./standards-sdk.es106.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, adapterDeclarationSchema, HCS21_SAFE_MESSAGE_BYTES, HCS21_MAX_MESSAGE_BYTES } from "./standards-sdk.es80.js";
|
|
5
5
|
class HCS21BaseClient {
|
|
6
6
|
constructor(params) {
|
|
7
7
|
this.network = params.network;
|
|
@@ -66,9 +66,9 @@ class HCS21BaseClient {
|
|
|
66
66
|
assertSizeLimit(payload) {
|
|
67
67
|
const json = JSON.stringify(payload);
|
|
68
68
|
const bytes = Buffer.byteLength(json, "utf8");
|
|
69
|
-
if (bytes >
|
|
69
|
+
if (bytes > HCS21_SAFE_MESSAGE_BYTES) {
|
|
70
70
|
throw new HCS21ValidationError(
|
|
71
|
-
`HCS-21 payload exceeds
|
|
71
|
+
`HCS-21 payload exceeds safe limit of ${HCS21_SAFE_MESSAGE_BYTES} bytes (${bytes}); Hedera cap is ${HCS21_MAX_MESSAGE_BYTES}`,
|
|
72
72
|
"size_exceeded"
|
|
73
73
|
);
|
|
74
74
|
}
|
|
@@ -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 HCS21_MAX_MESSAGE_BYTES,\n HCS21Operation,\n HCS21_PROTOCOL,\n AdapterConfigContext,\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 manifestSequence?: number;\n config: AdapterConfigContext;\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 ...(params.manifestSequence\n ? { manifest_sequence: params.manifestSequence }\n : {}),\n config: params.config,\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 >
|
|
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 HCS21_MAX_MESSAGE_BYTES,\n HCS21_SAFE_MESSAGE_BYTES,\n HCS21Operation,\n HCS21_PROTOCOL,\n AdapterConfigContext,\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 manifestSequence?: number;\n config: AdapterConfigContext;\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 ...(params.manifestSequence\n ? { manifest_sequence: params.manifestSequence }\n : {}),\n config: params.config,\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_SAFE_MESSAGE_BYTES) {\n throw new HCS21ValidationError(\n `HCS-21 payload exceeds safe limit of ${HCS21_SAFE_MESSAGE_BYTES} bytes (${bytes}); Hedera cap is ${HCS21_MAX_MESSAGE_BYTES}`,\n 'size_exceeded',\n );\n }\n }\n}\n"],"names":[],"mappings":";;;;AAiCO,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,GAAI,OAAO,mBACP,EAAE,mBAAmB,OAAO,iBAAA,IAC5B,CAAA;AAAA,MACJ,QAAQ,OAAO;AAAA,MACf,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,0BAA0B;AACpC,YAAM,IAAI;AAAA,QACR,wCAAwC,wBAAwB,WAAW,KAAK,oBAAoB,uBAAuB;AAAA,QAC3H;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AACF;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Client, Status } from "@hashgraph/sdk";
|
|
2
|
-
import { createNodeOperatorContext } from "./standards-sdk.
|
|
3
|
-
import { Logger } from "./standards-sdk.
|
|
2
|
+
import { createNodeOperatorContext } from "./standards-sdk.es138.js";
|
|
3
|
+
import { Logger } from "./standards-sdk.es106.js";
|
|
4
4
|
import { HCS21BaseClient } from "./standards-sdk.es83.js";
|
|
5
5
|
import { metadataDocumentSchema, HCS21ManifestPointerPattern } 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
|
-
import { inscribe } from "./standards-sdk.
|
|
9
|
-
import { getTopicId } from "./standards-sdk.
|
|
8
|
+
import { inscribe } from "./standards-sdk.es125.js";
|
|
9
|
+
import { getTopicId } from "./standards-sdk.es115.js";
|
|
10
10
|
class HCS21Client extends HCS21BaseClient {
|
|
11
11
|
constructor(config) {
|
|
12
12
|
const logger = config.logger || new Logger({ level: config.logLevel || "info", module: "HCS-21" });
|
|
@@ -1,30 +1,64 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (typeof params.maxAutomaticTokenAssociations === "number") {
|
|
7
|
-
tx.setMaxAutomaticTokenAssociations(params.maxAutomaticTokenAssociations);
|
|
1
|
+
import { PublicKey } from "@hashgraph/sdk";
|
|
2
|
+
import { createHash } from "crypto";
|
|
3
|
+
function sortObject(value) {
|
|
4
|
+
if (Array.isArray(value)) {
|
|
5
|
+
return value.map(sortObject);
|
|
8
6
|
}
|
|
9
|
-
if (
|
|
10
|
-
|
|
7
|
+
if (value && typeof value === "object") {
|
|
8
|
+
const entries = Object.entries(value).sort(
|
|
9
|
+
([a], [b]) => a < b ? -1 : a > b ? 1 : 0
|
|
10
|
+
);
|
|
11
|
+
const sorted = {};
|
|
12
|
+
for (const [key, val] of entries) {
|
|
13
|
+
sorted[key] = sortObject(val);
|
|
14
|
+
}
|
|
15
|
+
return sorted;
|
|
11
16
|
}
|
|
12
|
-
return
|
|
17
|
+
return value;
|
|
13
18
|
}
|
|
14
|
-
function
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
function canonicalize(value) {
|
|
20
|
+
const sorted = sortObject(value);
|
|
21
|
+
return JSON.stringify(sorted);
|
|
22
|
+
}
|
|
23
|
+
function verifyDeclarationSignature(declaration, publisherPublicKey) {
|
|
24
|
+
if (!declaration.signature) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const { signature, ...unsigned } = declaration;
|
|
29
|
+
const payload = canonicalize(unsigned);
|
|
30
|
+
const signatureBytes = Buffer.from(signature, "base64");
|
|
31
|
+
const publicKey = PublicKey.fromString(publisherPublicKey);
|
|
32
|
+
return publicKey.verify(Buffer.from(payload, "utf8"), signatureBytes);
|
|
33
|
+
} catch {
|
|
34
|
+
return false;
|
|
20
35
|
}
|
|
21
|
-
|
|
22
|
-
|
|
36
|
+
}
|
|
37
|
+
function verifyManifestSignature(manifest, signatureBase64, publisherPublicKey) {
|
|
38
|
+
try {
|
|
39
|
+
const payload = canonicalize(manifest);
|
|
40
|
+
const signatureBytes = Buffer.from(signatureBase64, "base64");
|
|
41
|
+
const publicKey = PublicKey.fromString(publisherPublicKey);
|
|
42
|
+
return publicKey.verify(Buffer.from(payload, "utf8"), signatureBytes);
|
|
43
|
+
} catch {
|
|
44
|
+
return false;
|
|
23
45
|
}
|
|
24
|
-
|
|
46
|
+
}
|
|
47
|
+
function normalizeDigest(value) {
|
|
48
|
+
return value.replace(/^sha384[-:]?/i, "").trim().toLowerCase();
|
|
49
|
+
}
|
|
50
|
+
function verifyArtifactDigest(artifact, expectedDigest) {
|
|
51
|
+
const hash = createHash("sha384");
|
|
52
|
+
hash.update(artifact);
|
|
53
|
+
const hex = hash.digest("hex").toLowerCase();
|
|
54
|
+
const base64 = Buffer.from(hex, "hex").toString("base64").toLowerCase();
|
|
55
|
+
const expected = normalizeDigest(expectedDigest);
|
|
56
|
+
return expected === hex || expected === base64;
|
|
25
57
|
}
|
|
26
58
|
export {
|
|
27
|
-
|
|
28
|
-
|
|
59
|
+
canonicalize,
|
|
60
|
+
verifyArtifactDigest,
|
|
61
|
+
verifyDeclarationSignature,
|
|
62
|
+
verifyManifestSignature
|
|
29
63
|
};
|
|
30
64
|
//# sourceMappingURL=standards-sdk.es86.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es86.js","sources":["../../src/hcs-
|
|
1
|
+
{"version":3,"file":"standards-sdk.es86.js","sources":["../../src/hcs-21/verify.ts"],"sourcesContent":["import { PublicKey } from '@hashgraph/sdk';\nimport { createHash } from 'crypto';\nimport { AdapterDeclaration } from './types';\n\ntype JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };\n\nfunction sortObject(value: JsonValue): JsonValue {\n if (Array.isArray(value)) {\n return value.map(sortObject) as JsonValue;\n }\n if (value && typeof value === 'object') {\n const entries = Object.entries(value as Record<string, JsonValue>).sort(\n ([a], [b]) => (a < b ? -1 : a > b ? 1 : 0),\n );\n const sorted: Record<string, JsonValue> = {};\n for (const [key, val] of entries) {\n sorted[key] = sortObject(val);\n }\n return sorted;\n }\n return value;\n}\n\nexport function canonicalize(value: unknown): string {\n const sorted = sortObject(value as JsonValue);\n return JSON.stringify(sorted);\n}\n\nexport function verifyDeclarationSignature(\n declaration: AdapterDeclaration,\n publisherPublicKey: string,\n): boolean {\n if (!declaration.signature) {\n return false;\n }\n try {\n const { signature, ...unsigned } = declaration;\n const payload = canonicalize(unsigned);\n const signatureBytes = Buffer.from(signature, 'base64');\n const publicKey = PublicKey.fromString(publisherPublicKey);\n return publicKey.verify(Buffer.from(payload, 'utf8'), signatureBytes);\n } catch {\n return false;\n }\n}\n\nexport function verifyManifestSignature(\n manifest: unknown,\n signatureBase64: string,\n publisherPublicKey: string,\n): boolean {\n try {\n const payload = canonicalize(manifest as JsonValue);\n const signatureBytes = Buffer.from(signatureBase64, 'base64');\n const publicKey = PublicKey.fromString(publisherPublicKey);\n return publicKey.verify(Buffer.from(payload, 'utf8'), signatureBytes);\n } catch {\n return false;\n }\n}\n\nfunction normalizeDigest(value: string): string {\n return value.replace(/^sha384[-:]?/i, '').trim().toLowerCase();\n}\n\nexport function verifyArtifactDigest(\n artifact: Buffer | Uint8Array,\n expectedDigest: string,\n): boolean {\n const hash = createHash('sha384');\n hash.update(artifact);\n const hex = hash.digest('hex').toLowerCase();\n const base64 = Buffer.from(hex, 'hex').toString('base64').toLowerCase();\n const expected = normalizeDigest(expectedDigest);\n return expected === hex || expected === base64;\n}\n"],"names":[],"mappings":";;AAMA,SAAS,WAAW,OAA6B;AAC/C,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,UAAU;AAAA,EAC7B;AACA,MAAI,SAAS,OAAO,UAAU,UAAU;AACtC,UAAM,UAAU,OAAO,QAAQ,KAAkC,EAAE;AAAA,MACjE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;AAAA,IAAA;AAE1C,UAAM,SAAoC,CAAA;AAC1C,eAAW,CAAC,KAAK,GAAG,KAAK,SAAS;AAChC,aAAO,GAAG,IAAI,WAAW,GAAG;AAAA,IAC9B;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,SAAS,aAAa,OAAwB;AACnD,QAAM,SAAS,WAAW,KAAkB;AAC5C,SAAO,KAAK,UAAU,MAAM;AAC9B;AAEO,SAAS,2BACd,aACA,oBACS;AACT,MAAI,CAAC,YAAY,WAAW;AAC1B,WAAO;AAAA,EACT;AACA,MAAI;AACF,UAAM,EAAE,WAAW,GAAG,SAAA,IAAa;AACnC,UAAM,UAAU,aAAa,QAAQ;AACrC,UAAM,iBAAiB,OAAO,KAAK,WAAW,QAAQ;AACtD,UAAM,YAAY,UAAU,WAAW,kBAAkB;AACzD,WAAO,UAAU,OAAO,OAAO,KAAK,SAAS,MAAM,GAAG,cAAc;AAAA,EACtE,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,wBACd,UACA,iBACA,oBACS;AACT,MAAI;AACF,UAAM,UAAU,aAAa,QAAqB;AAClD,UAAM,iBAAiB,OAAO,KAAK,iBAAiB,QAAQ;AAC5D,UAAM,YAAY,UAAU,WAAW,kBAAkB;AACzD,WAAO,UAAU,OAAO,OAAO,KAAK,SAAS,MAAM,GAAG,cAAc;AAAA,EACtE,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,gBAAgB,OAAuB;AAC9C,SAAO,MAAM,QAAQ,iBAAiB,EAAE,EAAE,KAAA,EAAO,YAAA;AACnD;AAEO,SAAS,qBACd,UACA,gBACS;AACT,QAAM,OAAO,WAAW,QAAQ;AAChC,OAAK,OAAO,QAAQ;AACpB,QAAM,MAAM,KAAK,OAAO,KAAK,EAAE,YAAA;AAC/B,QAAM,SAAS,OAAO,KAAK,KAAK,KAAK,EAAE,SAAS,QAAQ,EAAE,YAAA;AAC1D,QAAM,WAAW,gBAAgB,cAAc;AAC/C,SAAO,aAAa,OAAO,aAAa;AAC1C;"}
|
|
@@ -1,83 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this.operatorId = AccountId.fromString(config.operatorId);
|
|
9
|
-
this.operatorCtx = createNodeOperatorContext({
|
|
10
|
-
network: this.network,
|
|
11
|
-
operatorId: this.operatorId,
|
|
12
|
-
operatorKey: config.operatorKey,
|
|
13
|
-
keyType: config.keyType,
|
|
14
|
-
mirrorNode: this.mirrorNode,
|
|
15
|
-
logger: this.logger,
|
|
16
|
-
client: this.network === "mainnet" ? Client.forMainnet() : Client.forTestnet()
|
|
17
|
-
});
|
|
18
|
-
this.client = this.operatorCtx.client;
|
|
1
|
+
import { AccountCreateTransaction, Hbar } from "@hashgraph/sdk";
|
|
2
|
+
function buildHcs15BaseAccountCreateTx(params) {
|
|
3
|
+
const tx = new AccountCreateTransaction().setECDSAKeyWithAlias(params.publicKey).setInitialBalance(
|
|
4
|
+
params.initialBalance instanceof Hbar ? params.initialBalance : new Hbar(params.initialBalance ?? 1)
|
|
5
|
+
);
|
|
6
|
+
if (typeof params.maxAutomaticTokenAssociations === "number") {
|
|
7
|
+
tx.setMaxAutomaticTokenAssociations(params.maxAutomaticTokenAssociations);
|
|
19
8
|
}
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
if (params.accountMemo) {
|
|
10
|
+
tx.setAccountMemo(params.accountMemo);
|
|
22
11
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
*/
|
|
32
|
-
async createBaseAccount(options) {
|
|
33
|
-
const priv = PrivateKey.generateECDSA();
|
|
34
|
-
const pub = priv.publicKey;
|
|
35
|
-
const tx = buildHcs15BaseAccountCreateTx({
|
|
36
|
-
publicKey: pub,
|
|
37
|
-
initialBalance: new Hbar(options?.initialBalance ?? 10),
|
|
38
|
-
maxAutomaticTokenAssociations: options?.maxAutomaticTokenAssociations,
|
|
39
|
-
accountMemo: options?.accountMemo
|
|
40
|
-
});
|
|
41
|
-
const resp = await tx.execute(this.client);
|
|
42
|
-
const receipt = await resp.getReceipt(this.client);
|
|
43
|
-
if (!receipt.accountId) {
|
|
44
|
-
throw new Error("HCS-15 BASE_ACCOUNT_CREATE_FAILED");
|
|
45
|
-
}
|
|
46
|
-
const accountId = receipt.accountId.toString();
|
|
47
|
-
const evmAddress = `0x${pub.toEvmAddress()}`;
|
|
48
|
-
this.logger.info("Created HCS-15 base account", { accountId, evmAddress });
|
|
49
|
-
return {
|
|
50
|
-
accountId,
|
|
51
|
-
privateKey: priv,
|
|
52
|
-
privateKeyHex: priv.toStringRaw(),
|
|
53
|
-
publicKey: pub,
|
|
54
|
-
evmAddress,
|
|
55
|
-
receipt
|
|
56
|
-
};
|
|
12
|
+
return tx;
|
|
13
|
+
}
|
|
14
|
+
function buildHcs15PetalAccountCreateTx(params) {
|
|
15
|
+
const tx = new AccountCreateTransaction().setKeyWithoutAlias(params.publicKey).setInitialBalance(
|
|
16
|
+
params.initialBalance instanceof Hbar ? params.initialBalance : new Hbar(params.initialBalance ?? 1)
|
|
17
|
+
);
|
|
18
|
+
if (typeof params.maxAutomaticTokenAssociations === "number") {
|
|
19
|
+
tx.setMaxAutomaticTokenAssociations(params.maxAutomaticTokenAssociations);
|
|
57
20
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
*/
|
|
61
|
-
async createPetalAccount(params) {
|
|
62
|
-
const baseKey = typeof params.basePrivateKey === "string" ? PrivateKey.fromStringECDSA(params.basePrivateKey) : params.basePrivateKey;
|
|
63
|
-
const pub = baseKey.publicKey;
|
|
64
|
-
const tx = buildHcs15PetalAccountCreateTx({
|
|
65
|
-
publicKey: pub,
|
|
66
|
-
initialBalance: new Hbar(params.initialBalance ?? 1),
|
|
67
|
-
maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,
|
|
68
|
-
accountMemo: params.accountMemo
|
|
69
|
-
});
|
|
70
|
-
const resp = await tx.execute(this.client);
|
|
71
|
-
const receipt = await resp.getReceipt(this.client);
|
|
72
|
-
if (!receipt.accountId) {
|
|
73
|
-
throw new Error("HCS-15 PETAL_ACCOUNT_CREATE_FAILED");
|
|
74
|
-
}
|
|
75
|
-
const accountId = receipt.accountId.toString();
|
|
76
|
-
this.logger.info("Created HCS-15 petal account", { accountId });
|
|
77
|
-
return { accountId, receipt };
|
|
21
|
+
if (params.accountMemo) {
|
|
22
|
+
tx.setAccountMemo(params.accountMemo);
|
|
78
23
|
}
|
|
24
|
+
return tx;
|
|
79
25
|
}
|
|
80
26
|
export {
|
|
81
|
-
|
|
27
|
+
buildHcs15BaseAccountCreateTx,
|
|
28
|
+
buildHcs15PetalAccountCreateTx
|
|
82
29
|
};
|
|
83
30
|
//# sourceMappingURL=standards-sdk.es87.js.map
|