@hashgraphonline/standards-sdk 0.1.159 → 0.1.161
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-12/validation/schemas.d.ts +4 -4
- package/dist/cjs/hcs-14/index.d.ts +5 -0
- package/dist/cjs/hcs-14/index.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts +37 -0
- package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/dns.d.ts +3 -0
- package/dist/cjs/hcs-14/resolvers/dns.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts +8 -0
- package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/profile-utils.d.ts +9 -0
- package/dist/cjs/hcs-14/resolvers/profile-utils.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/registry.d.ts +38 -1
- package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/types.d.ts +123 -5
- package/dist/cjs/hcs-14/resolvers/types.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +10 -0
- package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts +22 -0
- package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -0
- package/dist/cjs/hcs-14/sdk.d.ts +31 -5
- package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
- package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/schemas.d.ts +1548 -0
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +3 -3
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/hcs-12/validation/schemas.d.ts +4 -4
- package/dist/es/hcs-14/index.d.ts +5 -0
- package/dist/es/hcs-14/index.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts +37 -0
- package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/dns.d.ts +3 -0
- package/dist/es/hcs-14/resolvers/dns.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts +8 -0
- package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/profile-utils.d.ts +9 -0
- package/dist/es/hcs-14/resolvers/profile-utils.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/registry.d.ts +38 -1
- package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/types.d.ts +123 -5
- package/dist/es/hcs-14/resolvers/types.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +10 -0
- package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts +22 -0
- package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -0
- package/dist/es/hcs-14/sdk.d.ts +31 -5
- package/dist/es/hcs-14/sdk.d.ts.map +1 -1
- package/dist/es/inscribe/inscriber.d.ts.map +1 -1
- package/dist/es/services/registry-broker/schemas.d.ts +1548 -0
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +102 -85
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es100.js +138 -225
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +44 -108
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +255 -24
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +98 -80
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +91 -21
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +29 -251
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +211 -457
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +104 -96
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +26 -152
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +77 -27
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +28 -9
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +247 -137
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +477 -28
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +103 -20
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +141 -141
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +31 -200
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +9 -787
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +140 -11
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +29 -567
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +17 -597
- 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 +159 -12
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +203 -2
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +774 -71
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +11 -38
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +567 -2
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +576 -209
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +12 -1139
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +2 -306
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +83 -418
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +36 -351
- 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 +2 -1116
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +215 -188
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +1055 -1482
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +306 -1236
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +419 -14
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +350 -82
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +1107 -72
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +181 -866
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +1558 -51
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +1255 -159
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es140.js +17 -7
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +79 -78
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +75 -59
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +893 -30
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +60 -34
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +159 -28
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +7 -138
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +80 -36
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +44 -12461
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +30 -242
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es150.js +34 -172
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +45 -322
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +120 -328
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +40 -451
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +12418 -267
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +15 -74
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +54 -15
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +70 -59
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +73 -48
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +59 -70
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +5 -5
- package/dist/es/standards-sdk.es160.js +160 -160
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +312 -212
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +335 -228
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +446 -112
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +320 -115
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +65 -150
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +223 -166
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +153 -120
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +178 -287
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +218 -238
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +75 -72
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +129 -0
- package/dist/es/standards-sdk.es171.js.map +1 -0
- package/dist/es/standards-sdk.es172.js +164 -0
- package/dist/es/standards-sdk.es172.js.map +1 -0
- package/dist/es/standards-sdk.es173.js +188 -0
- package/dist/es/standards-sdk.es173.js.map +1 -0
- package/dist/es/standards-sdk.es174.js +142 -0
- package/dist/es/standards-sdk.es174.js.map +1 -0
- package/dist/es/standards-sdk.es175.js +334 -0
- package/dist/es/standards-sdk.es175.js.map +1 -0
- package/dist/es/standards-sdk.es176.js +262 -0
- package/dist/es/standards-sdk.es176.js.map +1 -0
- package/dist/es/standards-sdk.es177.js +119 -0
- package/dist/es/standards-sdk.es177.js.map +1 -0
- package/dist/es/standards-sdk.es18.js +12 -12
- package/dist/es/standards-sdk.es19.js +9 -9
- package/dist/es/standards-sdk.es2.js +2 -2
- package/dist/es/standards-sdk.es20.js +1 -1
- package/dist/es/standards-sdk.es21.js +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es23.js +1 -1
- package/dist/es/standards-sdk.es24.js +1 -1
- package/dist/es/standards-sdk.es25.js +1 -1
- package/dist/es/standards-sdk.es26.js +1 -1
- package/dist/es/standards-sdk.es27.js +12 -12
- package/dist/es/standards-sdk.es30.js +2 -2
- package/dist/es/standards-sdk.es31.js +4 -4
- package/dist/es/standards-sdk.es32.js +1 -1
- package/dist/es/standards-sdk.es35.js +6 -6
- package/dist/es/standards-sdk.es36.js +4 -4
- package/dist/es/standards-sdk.es37.js +2 -2
- package/dist/es/standards-sdk.es38.js +2 -2
- package/dist/es/standards-sdk.es39.js +1 -1
- package/dist/es/standards-sdk.es4.js +2 -2
- package/dist/es/standards-sdk.es40.js +1 -1
- package/dist/es/standards-sdk.es41.js +2 -2
- package/dist/es/standards-sdk.es46.js +1 -1
- package/dist/es/standards-sdk.es5.js +2 -2
- package/dist/es/standards-sdk.es51.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +2 -2
- package/dist/es/standards-sdk.es58.js +11 -55
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +321 -35
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +39 -200
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +103 -25
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +164 -78
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +222 -3
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +122 -92
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +40 -93
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +266 -18
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +34 -77
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +85 -447
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +3 -323
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es70.js +87 -194
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +99 -71
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +19 -71
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +77 -143
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +433 -44
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +254 -334
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +166 -454
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +71 -364
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +71 -89
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +143 -125
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +67 -6
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +400 -43
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +476 -81
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +332 -315
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +88 -280
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +125 -61
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +6 -47
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +44 -147
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +94 -60
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +339 -21
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es9.js +2 -2
- package/dist/es/standards-sdk.es90.js +279 -23
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +51 -230
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +48 -281
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +133 -140
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +54 -132
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +26 -45
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +23 -263
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +233 -95
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +260 -79
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +156 -29
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/package.json +16 -3
|
@@ -1,499 +1,211 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
import { HCS2Client } from "./standards-sdk.es68.js";
|
|
7
|
-
import { buildHcs20DeployTx, buildHcs20MintTx, buildHcs20TransferTx, buildHcs20BurnTx, buildHcs20RegisterTx } from "./standards-sdk.es78.js";
|
|
8
|
-
class HCS20Client extends HCS20BaseClient {
|
|
9
|
-
constructor(config) {
|
|
10
|
-
super(config);
|
|
11
|
-
this.operatorAccountId = typeof config.operatorId === "string" ? AccountId.fromString(config.operatorId) : config.operatorId;
|
|
12
|
-
this.operatorId = this.operatorAccountId.toString();
|
|
13
|
-
const baseClient = this.network === "mainnet" ? Client.forMainnet() : Client.forTestnet();
|
|
14
|
-
this.operatorCtx = createNodeOperatorContext({
|
|
15
|
-
network: this.network,
|
|
16
|
-
operatorId: this.operatorId,
|
|
17
|
-
operatorKey: config.operatorKey,
|
|
18
|
-
keyType: config.keyType,
|
|
19
|
-
mirrorNode: this.mirrorNode,
|
|
20
|
-
logger: this.logger,
|
|
21
|
-
client: baseClient
|
|
22
|
-
});
|
|
23
|
-
this.client = this.operatorCtx.client;
|
|
24
|
-
void this.operatorCtx.ensureInitialized();
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Ensure operator is initialized before operations
|
|
28
|
-
*/
|
|
29
|
-
async ensureInitialized() {
|
|
30
|
-
await this.operatorCtx.ensureInitialized();
|
|
31
|
-
}
|
|
1
|
+
import { Logger } from "./standards-sdk.es117.js";
|
|
2
|
+
import { HederaMirrorNode } from "./standards-sdk.es138.js";
|
|
3
|
+
import { hcs2MessageSchema, HCS2Operation, HCS2RegistryType } from "./standards-sdk.es73.js";
|
|
4
|
+
import { ZodError } from "zod";
|
|
5
|
+
class HCS2BaseClient {
|
|
32
6
|
/**
|
|
33
|
-
*
|
|
7
|
+
* Create a new HCS-2 base client
|
|
8
|
+
* @param config Client configuration
|
|
34
9
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
receipt,
|
|
50
|
-
transactionId: transactionResponse.transactionId.toString()
|
|
51
|
-
};
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.network = config.network;
|
|
12
|
+
this.logger = config.logger || Logger.getInstance({
|
|
13
|
+
level: config.logLevel || "info",
|
|
14
|
+
module: "HCS2Client",
|
|
15
|
+
silent: config.silent
|
|
16
|
+
});
|
|
17
|
+
this.mirrorNode = new HederaMirrorNode(
|
|
18
|
+
this.network,
|
|
19
|
+
this.logger,
|
|
20
|
+
config.mirrorNodeUrl ? { customUrl: config.mirrorNodeUrl } : void 0
|
|
21
|
+
);
|
|
52
22
|
}
|
|
53
23
|
/**
|
|
54
|
-
*
|
|
24
|
+
* Determine the registry type from a topic memo
|
|
25
|
+
* @param memo The topic memo
|
|
26
|
+
* @returns The registry type or undefined if not found
|
|
55
27
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
28
|
+
parseRegistryTypeFromMemo(memo) {
|
|
29
|
+
try {
|
|
30
|
+
const regex = /hcs-2:(\d):(\d+)/;
|
|
31
|
+
const match = memo.match(regex);
|
|
32
|
+
if (match && match.length === 3) {
|
|
33
|
+
const registryType = parseInt(match[1]);
|
|
34
|
+
const ttl = parseInt(match[2]);
|
|
35
|
+
if (registryType !== void 0 && !isNaN(ttl)) {
|
|
36
|
+
return { registryType, ttl };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return void 0;
|
|
40
|
+
} catch (error) {
|
|
41
|
+
this.logger.error(`Error parsing registry type from memo: ${error}`);
|
|
42
|
+
return void 0;
|
|
63
43
|
}
|
|
64
|
-
const topicId = receipt.topicId.toString();
|
|
65
|
-
this.logger.info(`Created public topic: ${topicId}`);
|
|
66
|
-
this.publicTopicId = topicId;
|
|
67
|
-
return topicId;
|
|
68
44
|
}
|
|
69
45
|
/**
|
|
70
|
-
*
|
|
46
|
+
* Generate a memo string for a registry topic
|
|
47
|
+
* @param registryType The registry type
|
|
48
|
+
* @param ttl The time-to-live in seconds
|
|
49
|
+
* @returns The memo string
|
|
71
50
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
this.logger.info("Creating HCS-20 registry topic...");
|
|
75
|
-
const hcs2Client = new HCS2Client({
|
|
76
|
-
operatorId: this.operatorId,
|
|
77
|
-
operatorKey: this.operatorCtx.operatorKey,
|
|
78
|
-
network: this.network
|
|
79
|
-
});
|
|
80
|
-
const topicCreateResponse = await hcs2Client.createRegistry({
|
|
81
|
-
submitKey: this.operatorCtx.operatorKey,
|
|
82
|
-
adminKey: this.operatorCtx.operatorKey
|
|
83
|
-
});
|
|
84
|
-
if (!topicCreateResponse.success) {
|
|
85
|
-
throw new Error("Failed to create registry topic");
|
|
86
|
-
}
|
|
87
|
-
const topicId = topicCreateResponse.topicId;
|
|
88
|
-
this.logger.info(`Created registry topic: ${topicId}`);
|
|
89
|
-
this.registryTopicId = topicId;
|
|
90
|
-
return topicId;
|
|
51
|
+
generateRegistryMemo(registryType, ttl) {
|
|
52
|
+
return `hcs-2:${registryType}:${ttl}`;
|
|
91
53
|
}
|
|
92
54
|
/**
|
|
93
|
-
*
|
|
55
|
+
* Validate a HCS-2 message
|
|
56
|
+
* @param message The message to validate
|
|
57
|
+
* @returns Validation result
|
|
94
58
|
*/
|
|
95
|
-
|
|
96
|
-
await this.ensureInitialized();
|
|
97
|
-
const { progressCallback } = options;
|
|
59
|
+
validateMessage(message) {
|
|
98
60
|
try {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
network: this.network
|
|
108
|
-
});
|
|
109
|
-
if (options.usePrivateTopic) {
|
|
110
|
-
const topicCreateResponse = await hcs2Client.createRegistry({
|
|
111
|
-
submitKey: this.operatorCtx.operatorKey,
|
|
112
|
-
adminKey: this.operatorCtx.operatorKey
|
|
61
|
+
hcs2MessageSchema.parse(message);
|
|
62
|
+
return { valid: true, errors: [] };
|
|
63
|
+
} catch (error) {
|
|
64
|
+
const errors = [];
|
|
65
|
+
if (error instanceof ZodError) {
|
|
66
|
+
error.errors.forEach((err) => {
|
|
67
|
+
const path = err.path.join(".");
|
|
68
|
+
errors.push(`${path ? path + ": " : ""}${err.message}`);
|
|
113
69
|
});
|
|
114
|
-
if (!topicCreateResponse.success) {
|
|
115
|
-
throw new PointsDeploymentError(
|
|
116
|
-
"Failed to create topic",
|
|
117
|
-
options.tick
|
|
118
|
-
);
|
|
119
|
-
}
|
|
120
|
-
topicId = topicCreateResponse.topicId;
|
|
121
|
-
this.logger.info(`Created private topic: ${topicId}`);
|
|
122
70
|
} else {
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
progressCallback?.({
|
|
126
|
-
stage: "submitting-deploy",
|
|
127
|
-
percentage: 50,
|
|
128
|
-
topicId
|
|
129
|
-
});
|
|
130
|
-
const deployMessage = {
|
|
131
|
-
p: "hcs-20",
|
|
132
|
-
op: "deploy",
|
|
133
|
-
name: options.name,
|
|
134
|
-
tick: this.normalizeTick(options.tick),
|
|
135
|
-
max: options.maxSupply,
|
|
136
|
-
lim: options.limitPerMint,
|
|
137
|
-
metadata: options.metadata,
|
|
138
|
-
m: options.topicMemo
|
|
139
|
-
};
|
|
140
|
-
const validation = this.validateMessage(deployMessage);
|
|
141
|
-
if (!validation.valid) {
|
|
142
|
-
throw new PointsValidationError(
|
|
143
|
-
"Invalid deploy message",
|
|
144
|
-
validation.errors
|
|
145
|
-
);
|
|
71
|
+
errors.push(`Unexpected error: ${error}`);
|
|
146
72
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
name: options.name,
|
|
150
|
-
tick: options.tick,
|
|
151
|
-
max: options.maxSupply,
|
|
152
|
-
lim: options.limitPerMint,
|
|
153
|
-
metadata: options.metadata,
|
|
154
|
-
memo: options.topicMemo
|
|
155
|
-
});
|
|
156
|
-
const { transactionId: deployTxId } = await this.submitPayload(deployTransaction);
|
|
157
|
-
progressCallback?.({
|
|
158
|
-
stage: "confirming",
|
|
159
|
-
percentage: 80,
|
|
160
|
-
topicId,
|
|
161
|
-
deployTxId
|
|
162
|
-
});
|
|
163
|
-
await this.waitForMirrorNodeConfirmation(topicId, deployTxId);
|
|
164
|
-
progressCallback?.({
|
|
165
|
-
stage: "complete",
|
|
166
|
-
percentage: 100,
|
|
167
|
-
topicId,
|
|
168
|
-
deployTxId
|
|
169
|
-
});
|
|
170
|
-
const pointsInfo = {
|
|
171
|
-
name: options.name,
|
|
172
|
-
tick: this.normalizeTick(options.tick),
|
|
173
|
-
maxSupply: options.maxSupply,
|
|
174
|
-
limitPerMint: options.limitPerMint,
|
|
175
|
-
metadata: options.metadata,
|
|
176
|
-
topicId,
|
|
177
|
-
deployerAccountId: this.operatorId,
|
|
178
|
-
currentSupply: "0",
|
|
179
|
-
deploymentTimestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
180
|
-
isPrivate: options.usePrivateTopic || false
|
|
181
|
-
};
|
|
182
|
-
return pointsInfo;
|
|
183
|
-
} catch (error) {
|
|
184
|
-
progressCallback?.({
|
|
185
|
-
stage: "complete",
|
|
186
|
-
percentage: 100,
|
|
187
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
188
|
-
});
|
|
189
|
-
throw error;
|
|
73
|
+
this.logger.debug(`Message validation failed: ${errors.join(", ")}`);
|
|
74
|
+
return { valid: false, errors };
|
|
190
75
|
}
|
|
191
76
|
}
|
|
192
77
|
/**
|
|
193
|
-
*
|
|
78
|
+
* Create a register message
|
|
79
|
+
* @param targetTopicId The target topic ID
|
|
80
|
+
* @param metadata Optional metadata URI
|
|
81
|
+
* @param memo Optional memo
|
|
82
|
+
* @param protocol Optional protocol version (defaults to 'hcs-2')
|
|
83
|
+
* @returns The register message
|
|
194
84
|
*/
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const normalizedTick = this.normalizeTick(options.tick);
|
|
204
|
-
progressCallback?.({
|
|
205
|
-
stage: "submitting",
|
|
206
|
-
percentage: 50
|
|
207
|
-
});
|
|
208
|
-
const topicId = options.topicId ? this.topicToString(options.topicId) : this.publicTopicId;
|
|
209
|
-
const mintTransaction = buildHcs20MintTx({
|
|
210
|
-
topicId,
|
|
211
|
-
tick: options.tick,
|
|
212
|
-
amt: options.amount,
|
|
213
|
-
to: this.accountToString(options.to),
|
|
214
|
-
memo: options.memo
|
|
215
|
-
});
|
|
216
|
-
const { transactionId: mintTxId } = await this.submitPayload(mintTransaction);
|
|
217
|
-
progressCallback?.({
|
|
218
|
-
stage: "confirming",
|
|
219
|
-
percentage: 80,
|
|
220
|
-
mintTxId
|
|
221
|
-
});
|
|
222
|
-
if (!options.disableMirrorCheck) {
|
|
223
|
-
await this.waitForMirrorNodeConfirmation(topicId, mintTxId);
|
|
224
|
-
}
|
|
225
|
-
progressCallback?.({
|
|
226
|
-
stage: "complete",
|
|
227
|
-
percentage: 100,
|
|
228
|
-
mintTxId
|
|
229
|
-
});
|
|
230
|
-
const transaction = {
|
|
231
|
-
id: mintTxId,
|
|
232
|
-
operation: "mint",
|
|
233
|
-
tick: normalizedTick,
|
|
234
|
-
amount: options.amount,
|
|
235
|
-
to: this.accountToString(options.to),
|
|
236
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
237
|
-
sequenceNumber: 0,
|
|
238
|
-
topicId,
|
|
239
|
-
transactionId: mintTxId,
|
|
240
|
-
memo: options.memo
|
|
241
|
-
};
|
|
242
|
-
return transaction;
|
|
243
|
-
} catch (error) {
|
|
244
|
-
progressCallback?.({
|
|
245
|
-
stage: "complete",
|
|
246
|
-
percentage: 100,
|
|
247
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
248
|
-
});
|
|
249
|
-
throw error;
|
|
250
|
-
}
|
|
85
|
+
createRegisterMessage(targetTopicId, metadata, memo, protocol = "hcs-2") {
|
|
86
|
+
return {
|
|
87
|
+
p: protocol,
|
|
88
|
+
op: HCS2Operation.REGISTER,
|
|
89
|
+
t_id: targetTopicId,
|
|
90
|
+
metadata,
|
|
91
|
+
m: memo
|
|
92
|
+
};
|
|
251
93
|
}
|
|
252
94
|
/**
|
|
253
|
-
*
|
|
95
|
+
* Create an update message
|
|
96
|
+
* @param targetTopicId The target topic ID
|
|
97
|
+
* @param uid The unique ID to update
|
|
98
|
+
* @param metadata Optional metadata URI
|
|
99
|
+
* @param memo Optional memo
|
|
100
|
+
* @param protocol Optional protocol version (defaults to 'hcs-2')
|
|
101
|
+
* @returns The update message
|
|
254
102
|
*/
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
const fromAccount = this.accountToString(options.from);
|
|
265
|
-
const toAccount = this.accountToString(options.to);
|
|
266
|
-
if (fromAccount !== this.operatorId) {
|
|
267
|
-
throw new PointsTransferError(
|
|
268
|
-
"For public topics, transaction payer must match sender",
|
|
269
|
-
options.tick,
|
|
270
|
-
fromAccount,
|
|
271
|
-
toAccount,
|
|
272
|
-
options.amount
|
|
273
|
-
);
|
|
274
|
-
}
|
|
275
|
-
progressCallback?.({
|
|
276
|
-
stage: "submitting",
|
|
277
|
-
percentage: 50
|
|
278
|
-
});
|
|
279
|
-
const topicId = options.topicId ? this.topicToString(options.topicId) : this.publicTopicId;
|
|
280
|
-
const transferTransaction = buildHcs20TransferTx({
|
|
281
|
-
topicId,
|
|
282
|
-
tick: options.tick,
|
|
283
|
-
amt: options.amount,
|
|
284
|
-
from: fromAccount,
|
|
285
|
-
to: toAccount,
|
|
286
|
-
memo: options.memo
|
|
287
|
-
});
|
|
288
|
-
const { transactionId: transferTxId } = await this.submitPayload(transferTransaction);
|
|
289
|
-
progressCallback?.({
|
|
290
|
-
stage: "confirming",
|
|
291
|
-
percentage: 80,
|
|
292
|
-
transferTxId
|
|
293
|
-
});
|
|
294
|
-
await this.waitForMirrorNodeConfirmation(topicId, transferTxId);
|
|
295
|
-
progressCallback?.({
|
|
296
|
-
stage: "complete",
|
|
297
|
-
percentage: 100,
|
|
298
|
-
transferTxId
|
|
299
|
-
});
|
|
300
|
-
const transaction = {
|
|
301
|
-
id: transferTxId,
|
|
302
|
-
operation: "transfer",
|
|
303
|
-
tick: normalizedTick,
|
|
304
|
-
amount: options.amount,
|
|
305
|
-
from: fromAccount,
|
|
306
|
-
to: toAccount,
|
|
307
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
308
|
-
sequenceNumber: 0,
|
|
309
|
-
topicId,
|
|
310
|
-
transactionId: transferTxId,
|
|
311
|
-
memo: options.memo
|
|
312
|
-
};
|
|
313
|
-
return transaction;
|
|
314
|
-
} catch (error) {
|
|
315
|
-
progressCallback?.({
|
|
316
|
-
stage: "complete",
|
|
317
|
-
percentage: 100,
|
|
318
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
319
|
-
});
|
|
320
|
-
throw error;
|
|
321
|
-
}
|
|
103
|
+
createUpdateMessage(targetTopicId, uid, metadata, memo, protocol = "hcs-2") {
|
|
104
|
+
return {
|
|
105
|
+
p: protocol,
|
|
106
|
+
op: HCS2Operation.UPDATE,
|
|
107
|
+
t_id: targetTopicId,
|
|
108
|
+
uid,
|
|
109
|
+
metadata,
|
|
110
|
+
m: memo
|
|
111
|
+
};
|
|
322
112
|
}
|
|
323
113
|
/**
|
|
324
|
-
*
|
|
114
|
+
* Create a delete message
|
|
115
|
+
* @param uid The unique ID to delete
|
|
116
|
+
* @param memo Optional memo
|
|
117
|
+
* @param protocol Optional protocol version (defaults to 'hcs-2')
|
|
118
|
+
* @returns The delete message
|
|
325
119
|
*/
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
});
|
|
334
|
-
const normalizedTick = this.normalizeTick(options.tick);
|
|
335
|
-
const fromAccount = this.accountToString(options.from);
|
|
336
|
-
if (fromAccount !== this.operatorId) {
|
|
337
|
-
throw new PointsBurnError(
|
|
338
|
-
"For public topics, transaction payer must match burner",
|
|
339
|
-
options.tick,
|
|
340
|
-
fromAccount,
|
|
341
|
-
options.amount
|
|
342
|
-
);
|
|
343
|
-
}
|
|
344
|
-
progressCallback?.({
|
|
345
|
-
stage: "submitting",
|
|
346
|
-
percentage: 50
|
|
347
|
-
});
|
|
348
|
-
const topicId = options.topicId ? this.topicToString(options.topicId) : this.publicTopicId;
|
|
349
|
-
const burnTransaction = buildHcs20BurnTx({
|
|
350
|
-
topicId,
|
|
351
|
-
tick: options.tick,
|
|
352
|
-
amt: options.amount,
|
|
353
|
-
from: fromAccount,
|
|
354
|
-
memo: options.memo
|
|
355
|
-
});
|
|
356
|
-
const { transactionId: burnTxId } = await this.submitPayload(burnTransaction);
|
|
357
|
-
progressCallback?.({
|
|
358
|
-
stage: "confirming",
|
|
359
|
-
percentage: 80,
|
|
360
|
-
burnTxId
|
|
361
|
-
});
|
|
362
|
-
await this.waitForMirrorNodeConfirmation(topicId, burnTxId);
|
|
363
|
-
progressCallback?.({
|
|
364
|
-
stage: "complete",
|
|
365
|
-
percentage: 100,
|
|
366
|
-
burnTxId
|
|
367
|
-
});
|
|
368
|
-
const transaction = {
|
|
369
|
-
id: burnTxId,
|
|
370
|
-
operation: "burn",
|
|
371
|
-
tick: normalizedTick,
|
|
372
|
-
amount: options.amount,
|
|
373
|
-
from: fromAccount,
|
|
374
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
375
|
-
sequenceNumber: 0,
|
|
376
|
-
topicId,
|
|
377
|
-
transactionId: burnTxId,
|
|
378
|
-
memo: options.memo
|
|
379
|
-
};
|
|
380
|
-
return transaction;
|
|
381
|
-
} catch (error) {
|
|
382
|
-
progressCallback?.({
|
|
383
|
-
stage: "complete",
|
|
384
|
-
percentage: 100,
|
|
385
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
386
|
-
});
|
|
387
|
-
throw error;
|
|
388
|
-
}
|
|
120
|
+
createDeleteMessage(uid, memo, protocol = "hcs-2") {
|
|
121
|
+
return {
|
|
122
|
+
p: protocol,
|
|
123
|
+
op: HCS2Operation.DELETE,
|
|
124
|
+
uid,
|
|
125
|
+
m: memo
|
|
126
|
+
};
|
|
389
127
|
}
|
|
390
128
|
/**
|
|
391
|
-
*
|
|
129
|
+
* Create a migrate message
|
|
130
|
+
* @param targetTopicId The target topic ID to migrate to
|
|
131
|
+
* @param metadata Optional metadata URI
|
|
132
|
+
* @param memo Optional memo
|
|
133
|
+
* @param protocol Optional protocol version (defaults to 'hcs-2')
|
|
134
|
+
* @returns The migrate message
|
|
392
135
|
*/
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
const registerMessage = {
|
|
402
|
-
p: "hcs-20",
|
|
403
|
-
op: "register",
|
|
404
|
-
name: options.name,
|
|
405
|
-
metadata: options.metadata,
|
|
406
|
-
private: options.isPrivate,
|
|
407
|
-
t_id: this.topicToString(options.topicId),
|
|
408
|
-
m: options.memo
|
|
409
|
-
};
|
|
410
|
-
const validation = this.validateMessage(registerMessage);
|
|
411
|
-
if (!validation.valid) {
|
|
412
|
-
throw new PointsValidationError(
|
|
413
|
-
"Invalid register message",
|
|
414
|
-
validation.errors
|
|
415
|
-
);
|
|
416
|
-
}
|
|
417
|
-
if (!this.registryTopicId) {
|
|
418
|
-
throw new PointsDeploymentError(
|
|
419
|
-
"Registry topic not available",
|
|
420
|
-
options.name
|
|
421
|
-
);
|
|
422
|
-
}
|
|
423
|
-
progressCallback?.({
|
|
424
|
-
stage: "submitting",
|
|
425
|
-
percentage: 50
|
|
426
|
-
});
|
|
427
|
-
const registerTransaction = buildHcs20RegisterTx({
|
|
428
|
-
registryTopicId: this.registryTopicId,
|
|
429
|
-
name: options.name,
|
|
430
|
-
topicId: this.topicToString(options.topicId),
|
|
431
|
-
isPrivate: options.isPrivate,
|
|
432
|
-
metadata: options.metadata,
|
|
433
|
-
memo: options.memo
|
|
434
|
-
});
|
|
435
|
-
const { transactionId: registerTxId } = await this.submitPayload(
|
|
436
|
-
registerTransaction,
|
|
437
|
-
this.operatorCtx.operatorKey
|
|
438
|
-
);
|
|
439
|
-
progressCallback?.({
|
|
440
|
-
stage: "confirming",
|
|
441
|
-
percentage: 80,
|
|
442
|
-
registerTxId
|
|
443
|
-
});
|
|
444
|
-
await this.waitForMirrorNodeConfirmation(
|
|
445
|
-
this.registryTopicId,
|
|
446
|
-
registerTxId
|
|
447
|
-
);
|
|
448
|
-
progressCallback?.({
|
|
449
|
-
stage: "complete",
|
|
450
|
-
percentage: 100,
|
|
451
|
-
registerTxId
|
|
452
|
-
});
|
|
453
|
-
this.logger.info(`Registered topic ${options.topicId} in registry`);
|
|
454
|
-
} catch (error) {
|
|
455
|
-
progressCallback?.({
|
|
456
|
-
stage: "complete",
|
|
457
|
-
percentage: 100,
|
|
458
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
459
|
-
});
|
|
460
|
-
throw error;
|
|
461
|
-
}
|
|
136
|
+
createMigrateMessage(targetTopicId, metadata, memo, protocol = "hcs-2") {
|
|
137
|
+
return {
|
|
138
|
+
p: protocol,
|
|
139
|
+
op: HCS2Operation.MIGRATE,
|
|
140
|
+
t_id: targetTopicId,
|
|
141
|
+
metadata,
|
|
142
|
+
m: memo
|
|
143
|
+
};
|
|
462
144
|
}
|
|
463
145
|
/**
|
|
464
|
-
*
|
|
146
|
+
* Parse registry entries from topic messages
|
|
147
|
+
* @param topicId The topic ID
|
|
148
|
+
* @param messages The messages to parse
|
|
149
|
+
* @param registryType The registry type
|
|
150
|
+
* @param ttl The time-to-live in seconds
|
|
151
|
+
* @returns The parsed registry
|
|
465
152
|
*/
|
|
466
|
-
|
|
467
|
-
|
|
153
|
+
parseRegistryEntries(topicId, messages, registryType, ttl) {
|
|
154
|
+
const entries = [];
|
|
155
|
+
let latestEntry;
|
|
156
|
+
this.logger.debug(
|
|
157
|
+
`Parsing ${messages.length} messages for topic ${topicId}`
|
|
158
|
+
);
|
|
159
|
+
for (const msg of messages) {
|
|
468
160
|
try {
|
|
469
|
-
|
|
470
|
-
limit: 10,
|
|
471
|
-
order: "desc"
|
|
472
|
-
});
|
|
473
|
-
const found = messages.some((message) => {
|
|
474
|
-
if (typeof message !== "object" || message === null) {
|
|
475
|
-
return false;
|
|
476
|
-
}
|
|
477
|
-
const candidate = message;
|
|
478
|
-
return typeof candidate.consensus_timestamp === "string";
|
|
479
|
-
});
|
|
480
|
-
if (found) {
|
|
161
|
+
if (!msg.message) {
|
|
481
162
|
this.logger.debug(
|
|
482
|
-
`
|
|
163
|
+
`Message is missing 'message' property: ${JSON.stringify(msg)}`
|
|
483
164
|
);
|
|
484
|
-
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
const decodedMessage = Buffer.from(msg.message, "base64").toString(
|
|
168
|
+
"utf-8"
|
|
169
|
+
);
|
|
170
|
+
const message = JSON.parse(decodedMessage);
|
|
171
|
+
this.logger.debug(
|
|
172
|
+
`Successfully parsed message: ${JSON.stringify(message)}`
|
|
173
|
+
);
|
|
174
|
+
const { valid, errors } = this.validateMessage(message);
|
|
175
|
+
if (!valid) {
|
|
176
|
+
this.logger.warn(`Invalid HCS-2 message: ${errors.join(", ")}`);
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
const entry = {
|
|
180
|
+
topicId,
|
|
181
|
+
sequence: msg.sequence_number,
|
|
182
|
+
timestamp: msg.consensus_timestamp,
|
|
183
|
+
payer: msg.payer_account_id,
|
|
184
|
+
message,
|
|
185
|
+
consensus_timestamp: msg.consensus_timestamp,
|
|
186
|
+
registry_type: registryType
|
|
187
|
+
};
|
|
188
|
+
entries.push(entry);
|
|
189
|
+
if (registryType === HCS2RegistryType.NON_INDEXED || !latestEntry || entry.timestamp > latestEntry.timestamp) {
|
|
190
|
+
latestEntry = entry;
|
|
485
191
|
}
|
|
486
192
|
} catch (error) {
|
|
487
|
-
this.logger.
|
|
193
|
+
this.logger.warn(`Error parsing message: ${error}`);
|
|
488
194
|
}
|
|
489
|
-
await sleep(2e3);
|
|
490
195
|
}
|
|
491
|
-
this.logger.
|
|
492
|
-
`
|
|
196
|
+
this.logger.debug(
|
|
197
|
+
`Parsed ${entries.length} valid entries for topic ${topicId}`
|
|
493
198
|
);
|
|
199
|
+
return {
|
|
200
|
+
topicId,
|
|
201
|
+
registryType,
|
|
202
|
+
ttl,
|
|
203
|
+
entries: registryType === HCS2RegistryType.INDEXED ? entries : latestEntry ? [latestEntry] : [],
|
|
204
|
+
latestEntry
|
|
205
|
+
};
|
|
494
206
|
}
|
|
495
207
|
}
|
|
496
208
|
export {
|
|
497
|
-
|
|
209
|
+
HCS2BaseClient
|
|
498
210
|
};
|
|
499
211
|
//# sourceMappingURL=standards-sdk.es76.js.map
|