@hashgraphonline/standards-sdk 0.1.158 → 0.1.160
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 +21 -1
- package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/types.d.ts +106 -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 +16 -1
- package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
- package/dist/cjs/inscribe/inscriber.d.ts +1 -1
- package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
- package/dist/cjs/inscribe/inscription-cost.d.ts +12 -0
- package/dist/cjs/inscribe/inscription-cost.d.ts.map +1 -0
- package/dist/cjs/inscribe/types.d.ts +5 -1
- package/dist/cjs/inscribe/types.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 +2 -2
- 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 +21 -1
- package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/types.d.ts +106 -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 +16 -1
- package/dist/es/hcs-14/sdk.d.ts.map +1 -1
- package/dist/es/inscribe/inscriber.d.ts +1 -1
- package/dist/es/inscribe/inscriber.d.ts.map +1 -1
- package/dist/es/inscribe/inscription-cost.d.ts +12 -0
- package/dist/es/inscribe/inscription-cost.d.ts.map +1 -0
- package/dist/es/inscribe/types.d.ts +5 -1
- package/dist/es/inscribe/types.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 +96 -83
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es100.js +41 -224
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +249 -97
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +95 -27
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +97 -80
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +29 -30
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +229 -249
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +103 -468
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +32 -103
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +79 -155
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +28 -31
- 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 +250 -10
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +451 -115
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +101 -25
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +155 -17
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +29 -155
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +9 -200
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +109 -757
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +27 -11
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +19 -564
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +140 -582
- 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 +202 -12
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +790 -2
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +10 -84
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +567 -40
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +602 -2
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +12 -234
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +2 -1140
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +73 -292
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +36 -418
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +2 -355
- 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 +197 -1090
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +1107 -175
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +218 -1479
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +422 -1236
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +351 -13
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +1102 -73
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +203 -76
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +1459 -785
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +1254 -59
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +14 -156
- 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 +87 -7
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +74 -79
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +889 -61
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +60 -30
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +159 -34
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +7 -28
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +70 -122
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +58 -35
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +30 -12320
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +34 -56
- 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 +41 -84
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +134 -13
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +36 -236
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +12444 -134
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +139 -289
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +274 -298
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +262 -369
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +316 -194
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +319 -64
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +61 -157
- 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 +14 -219
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +226 -223
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +49 -112
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +72 -114
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +67 -147
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +61 -173
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +153 -120
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +178 -287
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +218 -238
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +75 -72
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +129 -0
- package/dist/es/standards-sdk.es170.js.map +1 -0
- package/dist/es/standards-sdk.es171.js +164 -0
- package/dist/es/standards-sdk.es171.js.map +1 -0
- package/dist/es/standards-sdk.es172.js +188 -0
- package/dist/es/standards-sdk.es172.js.map +1 -0
- package/dist/es/standards-sdk.es173.js +142 -0
- package/dist/es/standards-sdk.es173.js.map +1 -0
- package/dist/es/standards-sdk.es174.js +334 -0
- package/dist/es/standards-sdk.es174.js.map +1 -0
- package/dist/es/standards-sdk.es175.js +262 -0
- package/dist/es/standards-sdk.es175.js.map +1 -0
- package/dist/es/standards-sdk.es176.js +119 -0
- package/dist/es/standards-sdk.es176.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 +194 -13
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +100 -192
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +172 -24
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +204 -77
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +130 -3
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +41 -95
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +245 -88
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +32 -17
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +96 -77
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +4 -458
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +72 -295
- 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 +86 -194
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +16 -69
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +69 -63
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +458 -143
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +298 -43
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +174 -370
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +71 -495
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +71 -365
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +137 -83
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +69 -125
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +402 -6
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +492 -43
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +350 -86
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +88 -347
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +125 -281
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +6 -59
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +43 -45
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +86 -135
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +333 -52
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +277 -26
- 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 +59 -23
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +26 -217
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +104 -236
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +51 -141
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +22 -137
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +20 -44
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +227 -252
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +248 -68
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +108 -52
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +144 -29
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/package.json +14 -4
|
@@ -1,285 +1,153 @@
|
|
|
1
|
-
import { AccountId, Client,
|
|
2
|
-
import "./standards-sdk.
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
import { HCS16BaseClient } from "./standards-sdk.es94.js";
|
|
7
|
-
import { buildHcs16CreateFloraTopicTx, buildHcs16CreateAccountTx, buildHcs16FloraCreatedTx, buildHcs16TransactionTx, buildHcs16StateUpdateTx, buildHcs16FloraJoinRequestTx, buildHcs16FloraJoinVoteTx, buildHcs16FloraJoinAcceptedTx } from "./standards-sdk.es91.js";
|
|
8
|
-
class HCS16Client extends HCS16BaseClient {
|
|
1
|
+
import { AccountId, Client, PrivateKey, Hbar } from "@hashgraph/sdk";
|
|
2
|
+
import { createNodeOperatorContext } from "./standards-sdk.es151.js";
|
|
3
|
+
import { buildHcs15BaseAccountCreateTx, buildHcs15PetalAccountCreateTx } from "./standards-sdk.es91.js";
|
|
4
|
+
import { HCS15BaseClient } from "./standards-sdk.es94.js";
|
|
5
|
+
class HCS15Client extends HCS15BaseClient {
|
|
9
6
|
constructor(config) {
|
|
10
|
-
super(
|
|
7
|
+
super(config);
|
|
11
8
|
this.operatorId = AccountId.fromString(config.operatorId);
|
|
12
|
-
const mirror = new HederaMirrorNode(config.network, this.logger);
|
|
13
9
|
this.operatorCtx = createNodeOperatorContext({
|
|
14
|
-
network:
|
|
10
|
+
network: this.network,
|
|
15
11
|
operatorId: this.operatorId,
|
|
16
12
|
operatorKey: config.operatorKey,
|
|
17
13
|
keyType: config.keyType,
|
|
18
|
-
mirrorNode:
|
|
14
|
+
mirrorNode: this.mirrorNode,
|
|
19
15
|
logger: this.logger,
|
|
20
|
-
client:
|
|
16
|
+
client: this.network === "mainnet" ? Client.forMainnet() : Client.forTestnet()
|
|
21
17
|
});
|
|
22
18
|
this.client = this.operatorCtx.client;
|
|
23
19
|
}
|
|
20
|
+
getKeyType() {
|
|
21
|
+
return this.operatorCtx.keyType;
|
|
22
|
+
}
|
|
23
|
+
async close() {
|
|
24
|
+
try {
|
|
25
|
+
this.client.close();
|
|
26
|
+
} catch {
|
|
27
|
+
}
|
|
28
|
+
}
|
|
24
29
|
async ensureOperatorReady() {
|
|
25
30
|
await this.operatorCtx.ensureInitialized();
|
|
26
31
|
}
|
|
27
32
|
/**
|
|
28
|
-
* Create a
|
|
33
|
+
* Create a new base account with a newly generated ECDSA key and EVM alias.
|
|
29
34
|
*/
|
|
30
|
-
async
|
|
35
|
+
async createBaseAccount(options) {
|
|
31
36
|
await this.ensureOperatorReady();
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const signerKeys = params.signerKeys ?? [];
|
|
41
|
-
if (signerKeys.length > 0) {
|
|
42
|
-
const frozen = await tx.freezeWith(this.client);
|
|
43
|
-
let signed = frozen;
|
|
44
|
-
for (const key of signerKeys) {
|
|
45
|
-
signed = await signed.sign(key);
|
|
46
|
-
}
|
|
47
|
-
const resp2 = await signed.execute(this.client);
|
|
48
|
-
const receipt2 = await resp2.getReceipt(this.client);
|
|
49
|
-
if (!receipt2.topicId) {
|
|
50
|
-
throw new Error("Failed to create Flora topic");
|
|
51
|
-
}
|
|
52
|
-
return receipt2.topicId.toString();
|
|
53
|
-
}
|
|
54
|
-
const resp = await tx.execute(this.client);
|
|
55
|
-
const receipt = await resp.getReceipt(this.client);
|
|
56
|
-
if (!receipt.topicId) {
|
|
57
|
-
throw new Error("Failed to create Flora topic");
|
|
58
|
-
}
|
|
59
|
-
return receipt.topicId.toString();
|
|
60
|
-
}
|
|
61
|
-
async createFloraAccount(params) {
|
|
62
|
-
await this.ensureOperatorReady();
|
|
63
|
-
const tx = buildHcs16CreateAccountTx({
|
|
64
|
-
keyList: params.keyList,
|
|
65
|
-
initialBalanceHbar: params.initialBalanceHbar,
|
|
66
|
-
maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations
|
|
37
|
+
const priv = PrivateKey.generateECDSA();
|
|
38
|
+
const pub = priv.publicKey;
|
|
39
|
+
const tx = buildHcs15BaseAccountCreateTx({
|
|
40
|
+
publicKey: pub,
|
|
41
|
+
initialBalance: new Hbar(options?.initialBalance ?? 10),
|
|
42
|
+
maxAutomaticTokenAssociations: options?.maxAutomaticTokenAssociations,
|
|
43
|
+
accountMemo: options?.accountMemo,
|
|
44
|
+
transactionMemo: options?.transactionMemo
|
|
67
45
|
});
|
|
68
46
|
const resp = await tx.execute(this.client);
|
|
69
47
|
const receipt = await resp.getReceipt(this.client);
|
|
70
48
|
if (!receipt.accountId) {
|
|
71
|
-
throw new Error("
|
|
49
|
+
throw new Error("HCS-15 BASE_ACCOUNT_CREATE_FAILED");
|
|
72
50
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
async sendTransaction(params) {
|
|
85
|
-
await this.ensureOperatorReady();
|
|
86
|
-
const tx = buildHcs16TransactionTx(params);
|
|
87
|
-
const resp = await tx.execute(this.client);
|
|
88
|
-
return resp.getReceipt(this.client);
|
|
51
|
+
const accountId = receipt.accountId.toString();
|
|
52
|
+
const evmAddress = `0x${pub.toEvmAddress()}`;
|
|
53
|
+
this.logger.info("Created HCS-15 base account", { accountId, evmAddress });
|
|
54
|
+
return {
|
|
55
|
+
accountId,
|
|
56
|
+
privateKey: priv,
|
|
57
|
+
privateKeyHex: priv.toStringRaw(),
|
|
58
|
+
publicKey: pub,
|
|
59
|
+
evmAddress,
|
|
60
|
+
receipt
|
|
61
|
+
};
|
|
89
62
|
}
|
|
90
63
|
/**
|
|
91
|
-
*
|
|
92
|
-
* The signer must be a valid member key for the scheduled transaction to count toward threshold.
|
|
64
|
+
* Create a Petal account that reuses the base account ECDSA key (no alias).
|
|
93
65
|
*/
|
|
94
|
-
async
|
|
95
|
-
await this.ensureOperatorReady();
|
|
96
|
-
const tx = await new ScheduleSignTransaction().setScheduleId(params.scheduleId).freezeWith(this.client);
|
|
97
|
-
const signed = await tx.sign(params.signerKey);
|
|
98
|
-
const resp = await signed.execute(this.client);
|
|
99
|
-
return resp.getReceipt(this.client);
|
|
100
|
-
}
|
|
101
|
-
async sendStateUpdate(params) {
|
|
66
|
+
async createPetalAccount(params) {
|
|
102
67
|
await this.ensureOperatorReady();
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
memo: params.memo,
|
|
68
|
+
const baseKey = typeof params.basePrivateKey === "string" ? PrivateKey.fromStringECDSA(params.basePrivateKey) : params.basePrivateKey;
|
|
69
|
+
const pub = baseKey.publicKey;
|
|
70
|
+
const tx = buildHcs15PetalAccountCreateTx({
|
|
71
|
+
publicKey: pub,
|
|
72
|
+
initialBalance: new Hbar(params.initialBalance ?? 1),
|
|
73
|
+
maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,
|
|
74
|
+
accountMemo: params.accountMemo,
|
|
111
75
|
transactionMemo: params.transactionMemo
|
|
112
76
|
});
|
|
113
|
-
if (params.signerKeys && params.signerKeys.length > 0) {
|
|
114
|
-
const frozen = await tx.freezeWith(this.client);
|
|
115
|
-
let signed = frozen;
|
|
116
|
-
for (const key of params.signerKeys) {
|
|
117
|
-
signed = await signed.sign(key);
|
|
118
|
-
}
|
|
119
|
-
const resp2 = await signed.execute(this.client);
|
|
120
|
-
return resp2.getReceipt(this.client);
|
|
121
|
-
}
|
|
122
|
-
const resp = await tx.execute(this.client);
|
|
123
|
-
return resp.getReceipt(this.client);
|
|
124
|
-
}
|
|
125
|
-
async sendFloraJoinRequest(params) {
|
|
126
|
-
await this.ensureOperatorReady();
|
|
127
|
-
const tx = buildHcs16FloraJoinRequestTx(params);
|
|
128
|
-
if (params.signerKey) {
|
|
129
|
-
const frozen = await tx.freezeWith(this.client);
|
|
130
|
-
const signed = await frozen.sign(params.signerKey);
|
|
131
|
-
const resp2 = await signed.execute(this.client);
|
|
132
|
-
return resp2.getReceipt(this.client);
|
|
133
|
-
}
|
|
134
|
-
const resp = await tx.execute(this.client);
|
|
135
|
-
return resp.getReceipt(this.client);
|
|
136
|
-
}
|
|
137
|
-
async sendFloraJoinVote(params) {
|
|
138
|
-
await this.ensureOperatorReady();
|
|
139
|
-
const tx = buildHcs16FloraJoinVoteTx(params);
|
|
140
|
-
if (params.signerKey) {
|
|
141
|
-
const frozen = await tx.freezeWith(this.client);
|
|
142
|
-
const signed = await frozen.sign(params.signerKey);
|
|
143
|
-
const resp2 = await signed.execute(this.client);
|
|
144
|
-
return resp2.getReceipt(this.client);
|
|
145
|
-
}
|
|
146
77
|
const resp = await tx.execute(this.client);
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
await this.ensureOperatorReady();
|
|
151
|
-
const tx = buildHcs16FloraJoinAcceptedTx(params);
|
|
152
|
-
if (params.signerKeys && params.signerKeys.length > 0) {
|
|
153
|
-
const frozen = await tx.freezeWith(this.client);
|
|
154
|
-
let signed = frozen;
|
|
155
|
-
for (const key of params.signerKeys) {
|
|
156
|
-
signed = await signed.sign(key);
|
|
157
|
-
}
|
|
158
|
-
const resp2 = await signed.execute(this.client);
|
|
159
|
-
return resp2.getReceipt(this.client);
|
|
78
|
+
const receipt = await resp.getReceipt(this.client);
|
|
79
|
+
if (!receipt.accountId) {
|
|
80
|
+
throw new Error("HCS-15 PETAL_ACCOUNT_CREATE_FAILED");
|
|
160
81
|
}
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Create a Flora account with a threshold KeyList, then create the three Flora topics.
|
|
172
|
-
* Returns the Flora account ID and the topic IDs.
|
|
173
|
-
*/
|
|
174
|
-
async createFloraAccountWithTopics(params) {
|
|
175
|
-
await this.ensureOperatorReady();
|
|
176
|
-
const keyList = await this.assembleKeyList({
|
|
177
|
-
members: params.members,
|
|
178
|
-
threshold: params.threshold
|
|
179
|
-
});
|
|
180
|
-
const submitList = await this.assembleSubmitKeyList(params.members);
|
|
181
|
-
const createAcc = buildHcs16CreateAccountTx({
|
|
182
|
-
keyList,
|
|
183
|
-
initialBalanceHbar: typeof params.initialBalanceHbar === "number" ? params.initialBalanceHbar : 5,
|
|
184
|
-
maxAutomaticTokenAssociations: -1
|
|
185
|
-
});
|
|
186
|
-
const accResp = await createAcc.execute(this.client);
|
|
187
|
-
const accReceipt = await accResp.getReceipt(this.client);
|
|
188
|
-
if (!accReceipt.accountId) {
|
|
189
|
-
throw new Error("Failed to create Flora account");
|
|
82
|
+
const accountId = receipt.accountId.toString();
|
|
83
|
+
this.logger.info("Created HCS-15 petal account", { accountId });
|
|
84
|
+
let profile;
|
|
85
|
+
if (params.profile) {
|
|
86
|
+
profile = await this.createPetalProfile({
|
|
87
|
+
accountId,
|
|
88
|
+
basePrivateKey: baseKey,
|
|
89
|
+
profile: params.profile
|
|
90
|
+
});
|
|
190
91
|
}
|
|
191
|
-
|
|
192
|
-
const {
|
|
193
|
-
communication: commTx,
|
|
194
|
-
transaction: trnTx,
|
|
195
|
-
state: stateTx
|
|
196
|
-
} = this.buildFloraTopicCreateTxs({
|
|
197
|
-
floraAccountId,
|
|
198
|
-
keyList,
|
|
199
|
-
submitList,
|
|
200
|
-
autoRenewAccountId: params.autoRenewAccountId
|
|
201
|
-
});
|
|
202
|
-
const commR = await commTx.execute(this.client).then((r) => r.getReceipt(this.client));
|
|
203
|
-
const trnR = await trnTx.execute(this.client).then((r) => r.getReceipt(this.client));
|
|
204
|
-
const stateR = await stateTx.execute(this.client).then((r) => r.getReceipt(this.client));
|
|
205
|
-
const topics = {
|
|
206
|
-
communication: commR.topicId.toString(),
|
|
207
|
-
transaction: trnR.topicId.toString(),
|
|
208
|
-
state: stateR.topicId.toString()
|
|
209
|
-
};
|
|
210
|
-
return { floraAccountId, topics };
|
|
92
|
+
return { accountId, receipt, profile };
|
|
211
93
|
}
|
|
212
|
-
async
|
|
213
|
-
await
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
const profile = {
|
|
218
|
-
version: "1.0",
|
|
219
|
-
type: 3,
|
|
220
|
-
display_name: params.displayName,
|
|
221
|
-
members: params.members,
|
|
222
|
-
threshold: params.threshold,
|
|
223
|
-
topics: params.topics,
|
|
224
|
-
inboundTopicId: params.inboundTopicId ?? params.topics.communication,
|
|
225
|
-
outboundTopicId: params.outboundTopicId ?? params.topics.transaction,
|
|
226
|
-
bio: params.bio,
|
|
227
|
-
metadata: params.metadata,
|
|
228
|
-
policies: params.policies
|
|
229
|
-
};
|
|
230
|
-
const hcs11 = new HCS11Client({
|
|
94
|
+
async createPetalProfile(params) {
|
|
95
|
+
const { HCS10Client } = await import("./standards-sdk.es148.js");
|
|
96
|
+
const { PersonBuilder } = await import("./standards-sdk.es149.js");
|
|
97
|
+
const hcs10 = new HCS10Client({
|
|
231
98
|
network: this.network,
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
privateKey: this.operatorCtx.operatorKey.toString()
|
|
235
|
-
},
|
|
99
|
+
operatorId: params.accountId,
|
|
100
|
+
operatorPrivateKey: params.basePrivateKey.toString(),
|
|
236
101
|
logLevel: this.logger.getLevel()
|
|
237
102
|
});
|
|
238
103
|
try {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
);
|
|
104
|
+
const builder = new PersonBuilder().setName(params.profile.displayName).setBaseAccount(params.profile.baseAccountId);
|
|
105
|
+
if (params.profile.alias) {
|
|
106
|
+
builder.setAlias(params.profile.alias);
|
|
107
|
+
}
|
|
108
|
+
if (params.profile.bio) {
|
|
109
|
+
builder.setBio(params.profile.bio);
|
|
110
|
+
}
|
|
111
|
+
if (params.profile.profileImage) {
|
|
112
|
+
builder.setProfileImage(params.profile.profileImage);
|
|
113
|
+
}
|
|
114
|
+
if (params.profile.socials) {
|
|
115
|
+
for (const social of params.profile.socials) {
|
|
116
|
+
builder.addSocial(social.platform, social.handle);
|
|
117
|
+
}
|
|
245
118
|
}
|
|
246
|
-
|
|
247
|
-
params.
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
119
|
+
if (params.profile.properties) {
|
|
120
|
+
for (const [key, value] of Object.entries(params.profile.properties)) {
|
|
121
|
+
builder.addProperty(key, value);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const result = await hcs10.create(builder, {
|
|
125
|
+
ttl: params.profile.ttl ?? 300,
|
|
126
|
+
updateAccountMemo: true
|
|
127
|
+
});
|
|
128
|
+
if ("success" in result && result.success === false) {
|
|
129
|
+
throw new Error(result.error ?? "Failed to create petal profile");
|
|
130
|
+
}
|
|
131
|
+
const inboundTopicId = "inboundTopicId" in result ? result.inboundTopicId : "";
|
|
132
|
+
const outboundTopicId = "outboundTopicId" in result ? result.outboundTopicId : "";
|
|
133
|
+
const profileTopicId = "profileTopicId" in result ? result.profileTopicId : "";
|
|
134
|
+
if (!profileTopicId) {
|
|
135
|
+
throw new Error("Failed to resolve petal profile topic ID");
|
|
255
136
|
}
|
|
256
137
|
return {
|
|
257
|
-
profileTopicId
|
|
258
|
-
|
|
138
|
+
profileTopicId,
|
|
139
|
+
inboundTopicId,
|
|
140
|
+
outboundTopicId
|
|
259
141
|
};
|
|
260
142
|
} finally {
|
|
261
143
|
try {
|
|
262
|
-
|
|
144
|
+
hcs10.getClient().close();
|
|
263
145
|
} catch {
|
|
264
146
|
}
|
|
265
147
|
}
|
|
266
148
|
}
|
|
267
|
-
/**
|
|
268
|
-
* Convenience: publish flora_created on the communication topic.
|
|
269
|
-
*/
|
|
270
|
-
async publishFloraCreated(params) {
|
|
271
|
-
await this.ensureOperatorReady();
|
|
272
|
-
const tx = buildHcs16FloraCreatedTx({
|
|
273
|
-
topicId: params.communicationTopicId,
|
|
274
|
-
operatorId: params.operatorId,
|
|
275
|
-
floraAccountId: params.floraAccountId,
|
|
276
|
-
topics: params.topics
|
|
277
|
-
});
|
|
278
|
-
const resp = await tx.execute(this.client);
|
|
279
|
-
return resp.getReceipt(this.client);
|
|
280
|
-
}
|
|
281
149
|
}
|
|
282
150
|
export {
|
|
283
|
-
|
|
151
|
+
HCS15Client
|
|
284
152
|
};
|
|
285
153
|
//# sourceMappingURL=standards-sdk.es92.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es92.js","sources":["../../src/hcs-16/sdk.ts"],"sourcesContent":["import {\n Client,\n AccountId,\n PublicKey,\n KeyList,\n TransactionReceipt,\n Hbar,\n ScheduleSignTransaction,\n PrivateKey,\n} from '@hashgraph/sdk';\nimport type { NetworkType } from '../utils/types';\nimport type { Logger } from '../utils/logger';\nimport { HCS11Client } from '../hcs-11';\nimport {\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport { HCS16BaseClient } from './base-client';\nimport {\n buildHcs16CreateFloraTopicTx,\n buildHcs16FloraCreatedTx,\n buildHcs16TransactionTx,\n buildHcs16StateUpdateTx,\n} from './tx';\nimport { FloraTopicType, type FloraMember, type FloraProfile } from './types';\nimport {\n buildHcs16FloraJoinRequestTx,\n buildHcs16FloraJoinVoteTx,\n buildHcs16FloraJoinAcceptedTx,\n buildHcs16CreateAccountTx,\n} from './tx';\n\nexport interface HCS16ClientConfig {\n network: NetworkType;\n operatorId: string;\n operatorKey: string;\n keyType?: 'ecdsa' | 'ed25519';\n logger?: Logger;\n}\n\nexport interface FloraProfileOptions {\n floraAccountId: string;\n displayName: string;\n members: FloraMember[];\n threshold: number;\n topics: { communication: string; transaction: string; state: string };\n inboundTopicId?: string;\n outboundTopicId?: string;\n bio?: string;\n metadata?: Record<string, unknown>;\n policies?: Record<string, string>;\n signerKeys: PrivateKey[];\n}\n\n/**\n * Node SDK client for HCS‑16 Flora operations.\n */\nexport class HCS16Client extends HCS16BaseClient {\n private readonly client: Client;\n private readonly operatorId: AccountId;\n private readonly operatorCtx: NodeOperatorContext;\n\n constructor(config: HCS16ClientConfig) {\n super({ network: config.network, logger: config.logger });\n this.operatorId = AccountId.fromString(config.operatorId);\n const mirror = new HederaMirrorNode(config.network, this.logger);\n this.operatorCtx = createNodeOperatorContext({\n network: config.network,\n operatorId: this.operatorId,\n operatorKey: config.operatorKey,\n keyType: config.keyType,\n mirrorNode: mirror,\n logger: this.logger,\n client:\n config.network === 'mainnet'\n ? Client.forMainnet()\n : Client.forTestnet(),\n });\n this.client = this.operatorCtx.client;\n }\n\n private async ensureOperatorReady(): Promise<void> {\n await this.operatorCtx.ensureInitialized();\n }\n\n /**\n * Create a Flora topic with memo `hcs-16:<floraAccountId>:<topicType>`.\n */\n async createFloraTopic(params: {\n floraAccountId: string;\n topicType: FloraTopicType;\n adminKey?: PublicKey | KeyList;\n submitKey?: PublicKey | KeyList;\n autoRenewAccountId?: string;\n signerKeys?: PrivateKey[];\n }): Promise<string> {\n await this.ensureOperatorReady();\n const tx = buildHcs16CreateFloraTopicTx({\n floraAccountId: params.floraAccountId,\n topicType: params.topicType,\n adminKey: params.adminKey,\n submitKey: params.submitKey,\n operatorPublicKey: this.client.operatorPublicKey || undefined,\n autoRenewAccountId: params.autoRenewAccountId,\n });\n const signerKeys = params.signerKeys ?? [];\n if (signerKeys.length > 0) {\n const frozen = await tx.freezeWith(this.client);\n let signed = frozen;\n for (const key of signerKeys) {\n signed = await signed.sign(key);\n }\n const resp = await signed.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.topicId) {\n throw new Error('Failed to create Flora topic');\n }\n return receipt.topicId.toString();\n }\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.topicId) {\n throw new Error('Failed to create Flora topic');\n }\n return receipt.topicId.toString();\n }\n\n async createFloraAccount(params: {\n keyList: KeyList;\n initialBalanceHbar?: number;\n maxAutomaticTokenAssociations?: number;\n }): Promise<{ accountId: string; receipt: TransactionReceipt }> {\n await this.ensureOperatorReady();\n const tx = buildHcs16CreateAccountTx({\n keyList: params.keyList,\n initialBalanceHbar: params.initialBalanceHbar,\n maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.accountId) {\n throw new Error('Failed to create Flora account');\n }\n return { accountId: receipt.accountId.toString(), receipt };\n }\n\n async sendFloraCreated(params: {\n topicId: string;\n operatorId: string;\n floraAccountId: string;\n topics: { communication: string; transaction: string; state: string };\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraCreatedTx(params);\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n /**\n * Send HCS-16 transaction (preferred). scheduleId is the ScheduleId entity (e.g., 0.0.12345).\n */\n async sendTransaction(params: {\n topicId: string;\n operatorId: string;\n scheduleId: string;\n data?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16TransactionTx(params);\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n /**\n * Sign a scheduled transaction by ScheduleId entity using provided signer key (PrivateKey).\n * The signer must be a valid member key for the scheduled transaction to count toward threshold.\n */\n async signSchedule(params: {\n scheduleId: string;\n signerKey: PrivateKey;\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = await new ScheduleSignTransaction()\n .setScheduleId(params.scheduleId)\n .freezeWith(this.client);\n const signed = await tx.sign(params.signerKey);\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n async sendStateUpdate(params: {\n topicId: string;\n operatorId: string;\n hash: string;\n epoch?: number;\n accountId?: string;\n topics?: string[];\n memo?: string;\n transactionMemo?: string;\n signerKeys?: PrivateKey[];\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16StateUpdateTx({\n topicId: params.topicId,\n operatorId: params.operatorId,\n hash: params.hash,\n epoch: params.epoch,\n accountId: params.accountId,\n topics: params.topics,\n memo: params.memo,\n transactionMemo: params.transactionMemo,\n });\n if (params.signerKeys && params.signerKeys.length > 0) {\n const frozen = await tx.freezeWith(this.client);\n let signed = frozen;\n for (const key of params.signerKeys) {\n signed = await signed.sign(key);\n }\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n async sendFloraJoinRequest(params: {\n topicId: string;\n operatorId: string;\n accountId: string;\n connectionRequestId: number;\n connectionTopicId: string;\n connectionSeq: number;\n signerKey?: PrivateKey;\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraJoinRequestTx(params);\n if (params.signerKey) {\n const frozen = await tx.freezeWith(this.client);\n const signed = await frozen.sign(params.signerKey);\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n async sendFloraJoinVote(params: {\n topicId: string;\n operatorId: string;\n accountId: string;\n approve: boolean;\n connectionRequestId: number;\n connectionSeq: number;\n signerKey?: PrivateKey;\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraJoinVoteTx(params);\n if (params.signerKey) {\n const frozen = await tx.freezeWith(this.client);\n const signed = await frozen.sign(params.signerKey);\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n async sendFloraJoinAccepted(params: {\n topicId: string;\n operatorId: string;\n members: string[];\n epoch?: number;\n signerKeys?: PrivateKey[];\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraJoinAcceptedTx(params);\n if (params.signerKeys && params.signerKeys.length > 0) {\n const frozen = await tx.freezeWith(this.client);\n let signed = frozen;\n for (const key of params.signerKeys) {\n signed = await signed.sign(key);\n }\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n /**\n * Resolve member public keys from Mirror Node and build a KeyList with the given threshold.\n */\n async assembleKeyList(params: {\n members: string[];\n threshold: number;\n }): Promise<KeyList> {\n return super.assembleKeyList(params);\n }\n\n /**\n * Create a Flora account with a threshold KeyList, then create the three Flora topics.\n * Returns the Flora account ID and the topic IDs.\n */\n async createFloraAccountWithTopics(params: {\n members: string[];\n threshold: number;\n initialBalanceHbar?: number;\n autoRenewAccountId?: string;\n }): Promise<{\n floraAccountId: string;\n topics: { communication: string; transaction: string; state: string };\n }> {\n await this.ensureOperatorReady();\n const keyList = await this.assembleKeyList({\n members: params.members,\n threshold: params.threshold,\n });\n const submitList = await this.assembleSubmitKeyList(params.members);\n\n const createAcc = buildHcs16CreateAccountTx({\n keyList,\n initialBalanceHbar:\n typeof params.initialBalanceHbar === 'number'\n ? params.initialBalanceHbar\n : 5,\n maxAutomaticTokenAssociations: -1,\n });\n const accResp = await createAcc.execute(this.client);\n const accReceipt = await accResp.getReceipt(this.client);\n if (!accReceipt.accountId) {\n throw new Error('Failed to create Flora account');\n }\n const floraAccountId = accReceipt.accountId.toString();\n\n const {\n communication: commTx,\n transaction: trnTx,\n state: stateTx,\n } = this.buildFloraTopicCreateTxs({\n floraAccountId,\n keyList,\n submitList,\n autoRenewAccountId: params.autoRenewAccountId,\n });\n\n const commR = await commTx\n .execute(this.client)\n .then(r => r.getReceipt(this.client));\n const trnR = await trnTx\n .execute(this.client)\n .then(r => r.getReceipt(this.client));\n const stateR = await stateTx\n .execute(this.client)\n .then(r => r.getReceipt(this.client));\n const topics = {\n communication: commR.topicId!.toString(),\n transaction: trnR.topicId!.toString(),\n state: stateR.topicId!.toString(),\n };\n return { floraAccountId, topics };\n }\n\n async createFloraProfile(params: FloraProfileOptions): Promise<{\n profileTopicId: string;\n transactionId: string;\n }> {\n await this.ensureOperatorReady();\n if (params.signerKeys.length === 0) {\n throw new Error('Flora profile creation requires signer keys');\n }\n\n const profile: FloraProfile = {\n version: '1.0',\n type: 3,\n display_name: params.displayName,\n members: params.members,\n threshold: params.threshold,\n topics: params.topics,\n inboundTopicId: params.inboundTopicId ?? params.topics.communication,\n outboundTopicId: params.outboundTopicId ?? params.topics.transaction,\n bio: params.bio,\n metadata: params.metadata,\n policies: params.policies,\n };\n\n const hcs11 = new HCS11Client({\n network: this.network,\n auth: {\n operatorId: this.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey.toString(),\n },\n logLevel: this.logger.getLevel(),\n });\n\n try {\n await hcs11.initializeOperator();\n const profileResult = await hcs11.inscribeProfile(profile);\n if (!profileResult.success) {\n throw new Error(\n profileResult.error ?? 'Failed to inscribe Flora profile',\n );\n }\n\n const memoResult = await hcs11.updateAccountMemoWithProfile(\n params.floraAccountId,\n profileResult.profileTopicId,\n params.signerKeys,\n );\n\n if (!memoResult.success) {\n throw new Error(\n memoResult.error ?? 'Failed to update Flora account memo',\n );\n }\n\n return {\n profileTopicId: profileResult.profileTopicId,\n transactionId: profileResult.transactionId,\n };\n } finally {\n try {\n hcs11.getClient().close();\n } catch {}\n }\n }\n\n /**\n * Convenience: publish flora_created on the communication topic.\n */\n async publishFloraCreated(params: {\n communicationTopicId: string;\n operatorId: string;\n floraAccountId: string;\n topics: { communication: string; transaction: string; state: string };\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraCreatedTx({\n topicId: params.communicationTopicId,\n operatorId: params.operatorId,\n floraAccountId: params.floraAccountId,\n topics: params.topics,\n });\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n}\n"],"names":["resp","receipt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es92.js","sources":["../../src/hcs-15/sdk.ts"],"sourcesContent":["import {\n AccountId,\n Client,\n Hbar,\n PrivateKey,\n PublicKey,\n TransactionReceipt,\n} from '@hashgraph/sdk';\nimport { NetworkType } from '../utils/types';\nimport {\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport {\n buildHcs15BaseAccountCreateTx,\n buildHcs15PetalAccountCreateTx,\n} from './tx';\nimport type {\n PetalProfileOptions,\n PetalProfileResult,\n SDKHCS15ClientConfig,\n} from './types';\nimport { HCS15BaseClient } from './base-client';\n\nexport class HCS15Client extends HCS15BaseClient {\n private readonly operatorCtx: NodeOperatorContext;\n private readonly client: Client;\n private readonly operatorId: AccountId;\n\n constructor(config: SDKHCS15ClientConfig) {\n super(config);\n this.operatorId = AccountId.fromString(config.operatorId);\n this.operatorCtx = createNodeOperatorContext({\n network: this.network,\n operatorId: this.operatorId,\n operatorKey: config.operatorKey,\n keyType: config.keyType,\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n client:\n this.network === 'mainnet' ? Client.forMainnet() : Client.forTestnet(),\n });\n this.client = this.operatorCtx.client;\n }\n\n public getKeyType(): 'ed25519' | 'ecdsa' {\n return this.operatorCtx.keyType;\n }\n\n public async close(): Promise<void> {\n try {\n this.client.close();\n } catch {}\n }\n\n private async ensureOperatorReady(): Promise<void> {\n await this.operatorCtx.ensureInitialized();\n }\n\n /**\n * Create a new base account with a newly generated ECDSA key and EVM alias.\n */\n async createBaseAccount(options?: {\n initialBalance?: number;\n maxAutomaticTokenAssociations?: number;\n accountMemo?: string;\n transactionMemo?: string;\n }): Promise<{\n accountId: string;\n privateKey: PrivateKey;\n privateKeyHex: string;\n publicKey: PublicKey;\n evmAddress: string;\n receipt: TransactionReceipt;\n }> {\n await this.ensureOperatorReady();\n const priv = PrivateKey.generateECDSA();\n const pub = priv.publicKey;\n const tx = buildHcs15BaseAccountCreateTx({\n publicKey: pub,\n initialBalance: new Hbar(options?.initialBalance ?? 10),\n maxAutomaticTokenAssociations: options?.maxAutomaticTokenAssociations,\n accountMemo: options?.accountMemo,\n transactionMemo: options?.transactionMemo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.accountId) {\n throw new Error('HCS-15 BASE_ACCOUNT_CREATE_FAILED');\n }\n const accountId = receipt.accountId.toString();\n const evmAddress = `0x${pub.toEvmAddress()}`;\n this.logger.info('Created HCS-15 base account', { accountId, evmAddress });\n return {\n accountId,\n privateKey: priv,\n privateKeyHex: priv.toStringRaw(),\n publicKey: pub,\n evmAddress,\n receipt,\n };\n }\n\n /**\n * Create a Petal account that reuses the base account ECDSA key (no alias).\n */\n async createPetalAccount(params: {\n basePrivateKey: string | PrivateKey;\n initialBalance?: number;\n maxAutomaticTokenAssociations?: number;\n accountMemo?: string;\n transactionMemo?: string;\n profile?: PetalProfileOptions;\n }): Promise<{\n accountId: string;\n receipt: TransactionReceipt;\n profile?: PetalProfileResult;\n }> {\n await this.ensureOperatorReady();\n const baseKey =\n typeof params.basePrivateKey === 'string'\n ? PrivateKey.fromStringECDSA(params.basePrivateKey)\n : params.basePrivateKey;\n const pub = baseKey.publicKey;\n const tx = buildHcs15PetalAccountCreateTx({\n publicKey: pub,\n initialBalance: new Hbar(params.initialBalance ?? 1),\n maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,\n accountMemo: params.accountMemo,\n transactionMemo: params.transactionMemo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.accountId) {\n throw new Error('HCS-15 PETAL_ACCOUNT_CREATE_FAILED');\n }\n const accountId = receipt.accountId.toString();\n this.logger.info('Created HCS-15 petal account', { accountId });\n let profile: PetalProfileResult | undefined;\n if (params.profile) {\n profile = await this.createPetalProfile({\n accountId,\n basePrivateKey: baseKey,\n profile: params.profile,\n });\n }\n return { accountId, receipt, profile };\n }\n\n private async createPetalProfile(params: {\n accountId: string;\n basePrivateKey: PrivateKey;\n profile: PetalProfileOptions;\n }): Promise<PetalProfileResult> {\n const { HCS10Client } = await import('../hcs-10');\n const { PersonBuilder } = await import('../hcs-11');\n const hcs10 = new HCS10Client({\n network: this.network,\n operatorId: params.accountId,\n operatorPrivateKey: params.basePrivateKey.toString(),\n logLevel: this.logger.getLevel(),\n });\n\n try {\n const builder = new PersonBuilder()\n .setName(params.profile.displayName)\n .setBaseAccount(params.profile.baseAccountId);\n\n if (params.profile.alias) {\n builder.setAlias(params.profile.alias);\n }\n\n if (params.profile.bio) {\n builder.setBio(params.profile.bio);\n }\n\n if (params.profile.profileImage) {\n builder.setProfileImage(params.profile.profileImage);\n }\n\n if (params.profile.socials) {\n for (const social of params.profile.socials) {\n builder.addSocial(social.platform, social.handle);\n }\n }\n\n if (params.profile.properties) {\n for (const [key, value] of Object.entries(params.profile.properties)) {\n builder.addProperty(key, value);\n }\n }\n\n const result = await hcs10.create(builder, {\n ttl: params.profile.ttl ?? 300,\n updateAccountMemo: true,\n });\n\n if ('success' in result && result.success === false) {\n throw new Error(result.error ?? 'Failed to create petal profile');\n }\n\n const inboundTopicId =\n 'inboundTopicId' in result ? result.inboundTopicId : '';\n const outboundTopicId =\n 'outboundTopicId' in result ? result.outboundTopicId : '';\n const profileTopicId =\n 'profileTopicId' in result ? result.profileTopicId : '';\n\n if (!profileTopicId) {\n throw new Error('Failed to resolve petal profile topic ID');\n }\n\n return {\n profileTopicId,\n inboundTopicId,\n outboundTopicId,\n };\n } finally {\n try {\n hcs10.getClient().close();\n } catch {}\n }\n }\n}\n"],"names":[],"mappings":"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"}
|