@hashgraphonline/standards-sdk 0.1.141 → 0.1.143-feat-adapter-registry.canary.fb173dc.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -1
- package/dist/cjs/hcs-11/client.d.ts.map +1 -1
- package/dist/cjs/hcs-11/types.d.ts +1 -0
- package/dist/cjs/hcs-11/types.d.ts.map +1 -1
- package/dist/cjs/hcs-12/validation/schemas.d.ts +8 -8
- package/dist/cjs/hcs-16/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-17/types.d.ts.map +1 -1
- package/dist/cjs/hcs-20/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-20/types.d.ts +9 -8
- package/dist/cjs/hcs-20/types.d.ts.map +1 -1
- package/dist/cjs/hcs-21/base-client.d.ts +14 -12
- package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-21/browser.d.ts +17 -7
- package/dist/cjs/hcs-21/browser.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/sdk.d.ts +70 -6
- package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-21/tx.d.ts +6 -2
- package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-21/types.d.ts +751 -66
- package/dist/cjs/hcs-21/types.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/inscribe/inscriber.d.ts +3 -1
- package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
- package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
- package/dist/cjs/inscribe/types.d.ts +7 -0
- package/dist/cjs/inscribe/types.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/adapters.d.ts +20 -0
- package/dist/cjs/services/registry-broker/client/adapters.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/agents.d.ts +16 -0
- package/dist/cjs/services/registry-broker/client/agents.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/base-client.d.ts +57 -0
- package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/chat-history.d.ts +23 -0
- package/dist/cjs/services/registry-broker/client/chat-history.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/chat.d.ts +33 -0
- package/dist/cjs/services/registry-broker/client/chat.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/credits.d.ts +40 -0
- package/dist/cjs/services/registry-broker/client/credits.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
- package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/encryption.d.ts +33 -0
- package/dist/cjs/services/registry-broker/client/encryption.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/errors.d.ts +19 -0
- package/dist/cjs/services/registry-broker/client/errors.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts +10 -0
- package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/search.d.ts +19 -0
- package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/utils.d.ts +21 -0
- package/dist/cjs/services/registry-broker/client/utils.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client.d.ts +2 -204
- package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/schemas.d.ts +1473 -177
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/types.d.ts +45 -3
- package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
- package/dist/cjs/services/types.d.ts +1 -0
- package/dist/cjs/services/types.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +2 -2
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/cjs/utils/dynamic-import.d.ts +1 -0
- package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
- package/dist/es/hcs-11/client.d.ts.map +1 -1
- package/dist/es/hcs-11/types.d.ts +1 -0
- package/dist/es/hcs-11/types.d.ts.map +1 -1
- package/dist/es/hcs-12/validation/schemas.d.ts +8 -8
- package/dist/es/hcs-16/base-client.d.ts.map +1 -1
- package/dist/es/hcs-17/types.d.ts.map +1 -1
- package/dist/es/hcs-20/sdk.d.ts.map +1 -1
- package/dist/es/hcs-20/types.d.ts +9 -8
- package/dist/es/hcs-20/types.d.ts.map +1 -1
- package/dist/es/hcs-21/base-client.d.ts +14 -12
- package/dist/es/hcs-21/base-client.d.ts.map +1 -1
- package/dist/es/hcs-21/browser.d.ts +17 -7
- package/dist/es/hcs-21/browser.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/sdk.d.ts +70 -6
- package/dist/es/hcs-21/sdk.d.ts.map +1 -1
- package/dist/es/hcs-21/tx.d.ts +6 -2
- package/dist/es/hcs-21/tx.d.ts.map +1 -1
- package/dist/es/hcs-21/types.d.ts +751 -66
- package/dist/es/hcs-21/types.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/inscribe/inscriber.d.ts +3 -1
- package/dist/es/inscribe/inscriber.d.ts.map +1 -1
- package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
- package/dist/es/inscribe/types.d.ts +7 -0
- package/dist/es/inscribe/types.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/adapters.d.ts +20 -0
- package/dist/es/services/registry-broker/client/adapters.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/agents.d.ts +16 -0
- package/dist/es/services/registry-broker/client/agents.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/base-client.d.ts +57 -0
- package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/chat-history.d.ts +23 -0
- package/dist/es/services/registry-broker/client/chat-history.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/chat.d.ts +33 -0
- package/dist/es/services/registry-broker/client/chat.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/credits.d.ts +40 -0
- package/dist/es/services/registry-broker/client/credits.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
- package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/encryption.d.ts +33 -0
- package/dist/es/services/registry-broker/client/encryption.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/errors.d.ts +19 -0
- package/dist/es/services/registry-broker/client/errors.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/ledger-auth.d.ts +10 -0
- package/dist/es/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/search.d.ts +19 -0
- package/dist/es/services/registry-broker/client/search.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/utils.d.ts +21 -0
- package/dist/es/services/registry-broker/client/utils.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client.d.ts +2 -204
- package/dist/es/services/registry-broker/client.d.ts.map +1 -1
- package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/es/services/registry-broker/schemas.d.ts +1473 -177
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/services/registry-broker/types.d.ts +45 -3
- package/dist/es/services/registry-broker/types.d.ts.map +1 -1
- package/dist/es/services/types.d.ts +1 -0
- package/dist/es/services/types.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +73 -51
- 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 +167 -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 -754
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +854 -178
- 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 -1977
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +176 -51
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +196 -76
- 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 +98 -153
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +122 -8
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +234 -73
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +171 -56
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +123 -29
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +313 -125
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +358 -34
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +17 -732
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +65 -12264
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +86 -16
- 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 +152 -49
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +7 -64
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +71 -157
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +49 -306
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +28 -346
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +112 -427
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +40 -329
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +12277 -66
- package/dist/es/standards-sdk.es147.js.map +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.es149.js +59 -0
- package/dist/es/standards-sdk.es149.js.map +1 -0
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es150.js +85 -0
- package/dist/es/standards-sdk.es150.js.map +1 -0
- package/dist/es/standards-sdk.es151.js +175 -0
- package/dist/es/standards-sdk.es151.js.map +1 -0
- package/dist/es/standards-sdk.es152.js +325 -0
- package/dist/es/standards-sdk.es152.js.map +1 -0
- package/dist/es/standards-sdk.es153.js +349 -0
- package/dist/es/standards-sdk.es153.js.map +1 -0
- package/dist/es/standards-sdk.es154.js +456 -0
- package/dist/es/standards-sdk.es154.js.map +1 -0
- package/dist/es/standards-sdk.es155.js +334 -0
- package/dist/es/standards-sdk.es155.js.map +1 -0
- package/dist/es/standards-sdk.es156.js +79 -0
- package/dist/es/standards-sdk.es156.js.map +1 -0
- package/dist/es/standards-sdk.es157.js +874 -0
- package/dist/es/standards-sdk.es157.js.map +1 -0
- package/dist/es/standards-sdk.es158.js +242 -0
- package/dist/es/standards-sdk.es158.js.map +1 -0
- package/dist/es/standards-sdk.es159.js +247 -0
- package/dist/es/standards-sdk.es159.js.map +1 -0
- package/dist/es/standards-sdk.es16.js +1 -1
- package/dist/es/standards-sdk.es17.js +13 -11
- package/dist/es/standards-sdk.es17.js.map +1 -1
- package/dist/es/standards-sdk.es19.js +20 -17
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es20.js +17 -14
- package/dist/es/standards-sdk.es20.js.map +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 +1 -1
- package/dist/es/standards-sdk.es28.js +24 -19
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es29.js.map +1 -1
- 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 +16 -13
- package/dist/es/standards-sdk.es36.js.map +1 -1
- 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 +2 -2
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +1 -1
- package/dist/es/standards-sdk.es61.js +15 -12
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +1 -1
- 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.es73.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +2 -2
- package/dist/es/standards-sdk.es77.js +5 -3
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +12 -11
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +1 -1
- package/dist/es/standards-sdk.es8.js +1 -1
- package/dist/es/standards-sdk.es80.js +113 -29
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +23 -4
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +39 -14
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +198 -17
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +256 -9
- package/dist/es/standards-sdk.es85.js.map +1 -1
- 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 +139 -39
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +42 -257
- 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/dist/es/utils/dynamic-import.d.ts +1 -0
- package/dist/es/utils/dynamic-import.d.ts.map +1 -1
- package/package.json +6 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es101.js","sources":["../../src/hcs-18/sdk.ts"],"sourcesContent":["import {\n Client,\n TopicCreateTransaction,\n TransactionReceipt,\n} from '@hashgraph/sdk';\nimport { Logger } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport {\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport type { MaybeKey } from '../common/tx/tx-utils';\nimport { buildHcs18CreateDiscoveryTopicTx } from './tx';\nimport { HCS18BaseClient } from './base-client';\nimport type {\n AnnounceData,\n ProposeData,\n RespondData,\n CompleteMessage,\n WithdrawMessage,\n DiscoveryMessage,\n} from './types';\nimport {\n buildHcs18SubmitDiscoveryMessageTx,\n buildHcs18AnnounceMessage,\n buildHcs18ProposeMessage,\n buildHcs18RespondMessage,\n buildHcs18CompleteMessage,\n buildHcs18WithdrawMessage,\n} from './tx';\n\nexport interface SDKHCS18ClientConfig {\n network: NetworkType;\n operatorId: string;\n operatorKey: string | import('@hashgraph/sdk').PrivateKey;\n logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'silent';\n silent?: boolean;\n}\n\nexport class HCS18Client extends HCS18BaseClient {\n private readonly operatorCtx: NodeOperatorContext;\n private readonly client: Client;\n\n constructor(config: SDKHCS18ClientConfig) {\n super({\n network: config.network,\n logger: Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS-18',\n silent: config.silent,\n }),\n });\n this.operatorCtx = createNodeOperatorContext({\n network: this.network,\n operatorId: config.operatorId,\n operatorKey: config.operatorKey,\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n client: Client.forName(this.network),\n });\n this.client = this.operatorCtx.client;\n }\n\n private async ensureInitialized(): Promise<void> {\n await this.operatorCtx.ensureInitialized();\n }\n\n async createDiscoveryTopic(options?: {\n ttlSeconds?: number;\n adminKey?: MaybeKey;\n submitKey?: MaybeKey;\n memoOverride?: string;\n }): Promise<{ topicId: string; receipt: TransactionReceipt }> {\n await this.ensureInitialized();\n const ttl = options?.ttlSeconds;\n\n let operatorPublicKey: import('@hashgraph/sdk').PublicKey | undefined;\n try {\n operatorPublicKey = this.operatorCtx.operatorKey.publicKey;\n } catch {\n operatorPublicKey = undefined;\n }\n const tx: TopicCreateTransaction = buildHcs18CreateDiscoveryTopicTx({\n ttlSeconds: ttl,\n adminKey: options?.adminKey,\n submitKey: options?.submitKey,\n operatorPublicKey,\n memoOverride: options?.memoOverride,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const topicId = receipt.topicId?.toString();\n if (!topicId) {\n throw new Error('Failed to create discovery topic');\n }\n return { topicId, receipt };\n }\n\n async announce(params: {\n discoveryTopicId: string;\n data: AnnounceData;\n memo?: string;\n }): Promise<{ receipt: TransactionReceipt; sequenceNumber: number }> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18AnnounceMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const seq = receipt.topicSequenceNumber.toNumber();\n return { receipt, sequenceNumber: seq };\n }\n\n async propose(params: {\n discoveryTopicId: string;\n data: ProposeData;\n memo?: string;\n }): Promise<{ receipt: TransactionReceipt; sequenceNumber: number }> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18ProposeMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const seq = receipt.topicSequenceNumber.toNumber();\n return { receipt, sequenceNumber: seq };\n }\n\n async respond(params: {\n discoveryTopicId: string;\n data: RespondData;\n memo?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18RespondMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n\n async complete(params: {\n discoveryTopicId: string;\n data: CompleteMessage['data'];\n memo?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18CompleteMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n\n async withdraw(params: {\n discoveryTopicId: string;\n data: WithdrawMessage['data'];\n memo?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18WithdrawMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es101.js","sources":["../../src/hcs-18/types.ts"],"sourcesContent":["/**\n * HCS-18 Flora Discovery Protocol Types\n * Standard for Flora discovery and formation\n */\n\nimport { TopicId } from '@hashgraph/sdk';\n\n/**\n * HCS-18 Operation types\n */\nexport enum DiscoveryOperation {\n ANNOUNCE = 'announce',\n PROPOSE = 'propose',\n RESPOND = 'respond',\n COMPLETE = 'complete',\n WITHDRAW = 'withdraw',\n}\n\n/**\n * Base HCS-18 message structure\n */\nexport interface DiscoveryMessage {\n p: 'hcs-18';\n op: DiscoveryOperation;\n data: any;\n}\n\n/**\n * Announce operation data\n */\nexport interface AnnounceData {\n account: string;\n petal: {\n name: string;\n priority: number;\n };\n capabilities: {\n protocols: string[];\n resources?: {\n compute?: 'high' | 'medium' | 'low';\n storage?: 'high' | 'medium' | 'low';\n bandwidth?: 'high' | 'medium' | 'low';\n };\n group_preferences?: {\n sizes?: number[];\n threshold_ratios?: number[];\n };\n };\n valid_for?: number;\n}\n\n/**\n * Propose operation data\n */\nexport interface ProposeData {\n proposer: string;\n members: Array<{\n account: string;\n announce_seq?: number;\n priority: number;\n status?: 'existing' | 'proposed';\n }>;\n config: {\n name: string;\n threshold: number;\n purpose?: string;\n reason?: string;\n };\n existing_flora?: string;\n}\n\n/**\n * Respond operation data\n */\nexport interface RespondData {\n responder: string;\n proposal_seq: number;\n decision: 'accept' | 'reject';\n reason?: string;\n accepted_seq?: number;\n}\n\n/**\n * Complete operation data\n */\nexport interface CompleteData {\n proposal_seq: number;\n flora_account: string;\n topics: {\n communication: string;\n transaction: string;\n state: string;\n };\n proposer?: string;\n}\n\n/**\n * Withdraw operation data\n */\nexport interface WithdrawData {\n account: string;\n announce_seq: number;\n reason?: string;\n}\n\n/**\n * Typed message operations\n */\nexport interface AnnounceMessage extends DiscoveryMessage {\n op: DiscoveryOperation.ANNOUNCE;\n data: AnnounceData;\n}\n\nexport interface ProposeMessage extends DiscoveryMessage {\n op: DiscoveryOperation.PROPOSE;\n data: ProposeData;\n}\n\nexport interface RespondMessage extends DiscoveryMessage {\n op: DiscoveryOperation.RESPOND;\n data: RespondData;\n}\n\nexport interface CompleteMessage extends DiscoveryMessage {\n op: DiscoveryOperation.COMPLETE;\n data: CompleteData;\n}\n\nexport interface WithdrawMessage extends DiscoveryMessage {\n op: DiscoveryOperation.WITHDRAW;\n data: WithdrawData;\n}\n\n/**\n * Type guard utilities for HCS-18 discovery messages\n */\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nfunction isNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction isArray(value: unknown): value is unknown[] {\n return Array.isArray(value);\n}\n\nfunction isArrayOfStrings(value: unknown): value is string[] {\n return Array.isArray(value) && value.every(isString);\n}\n\nexport function isDiscoveryMessage(value: unknown): value is DiscoveryMessage {\n if (!isRecord(value)) {\n return false;\n }\n if (value.p !== 'hcs-18') {\n return false;\n }\n if (!isString((value as Record<string, unknown>).op)) {\n return false;\n }\n const op = (value as Record<string, unknown>).op as string;\n if (\n !['announce', 'propose', 'respond', 'complete', 'withdraw'].includes(op)\n ) {\n return false;\n }\n return 'data' in value;\n}\n\nexport function isAnnounceMessage(value: unknown): value is AnnounceMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.ANNOUNCE) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.account)) {\n return false;\n }\n if (!isRecord(d.petal)) {\n return false;\n }\n const petal = d.petal as Record<string, unknown>;\n if (!isString(petal.name) || !isNumber(petal.priority)) {\n return false;\n }\n if (!isRecord(d.capabilities)) {\n return false;\n }\n const caps = d.capabilities as Record<string, unknown>;\n if (!isArrayOfStrings(caps.protocols)) {\n return false;\n }\n if (\n 'valid_for' in d &&\n d.valid_for !== undefined &&\n d.valid_for !== null &&\n !isNumber(d.valid_for)\n ) {\n return false;\n }\n return true;\n}\n\nexport function isProposeMessage(value: unknown): value is ProposeMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.PROPOSE) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.proposer)) {\n return false;\n }\n if (!isArray(d.members)) {\n return false;\n }\n const membersOk = (d.members as unknown[]).every(m => {\n if (!isRecord(m)) {\n return false;\n }\n const mr = m as Record<string, unknown>;\n if (!isString(mr.account)) {\n return false;\n }\n if (!('priority' in mr) || !isNumber(mr.priority)) {\n return false;\n }\n if (\n 'announce_seq' in mr &&\n mr.announce_seq !== undefined &&\n mr.announce_seq !== null &&\n !isNumber(mr.announce_seq)\n ) {\n return false;\n }\n return true;\n });\n if (!membersOk) {\n return false;\n }\n if (!isRecord(d.config)) {\n return false;\n }\n const cfg = d.config as Record<string, unknown>;\n if (!isString(cfg.name) || !isNumber(cfg.threshold)) {\n return false;\n }\n return true;\n}\n\nexport function isRespondMessage(value: unknown): value is RespondMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.RESPOND) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.responder)) {\n return false;\n }\n if (!isNumber(d.proposal_seq)) {\n return false;\n }\n if (!isString(d.decision)) {\n return false;\n }\n if (!['accept', 'reject'].includes(d.decision as string)) {\n return false;\n }\n return true;\n}\n\nexport function isCompleteMessage(value: unknown): value is CompleteMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.COMPLETE) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.proposer)) {\n return false;\n }\n if (!isNumber(d.proposal_seq)) {\n return false;\n }\n if (!isString(d.flora_account)) {\n return false;\n }\n if (!isRecord(d.topics)) {\n return false;\n }\n const t = d.topics as Record<string, unknown>;\n if (\n !isString(t.communication) ||\n !isString(t.transaction) ||\n !isString(t.state)\n ) {\n return false;\n }\n return true;\n}\n\nexport function isWithdrawMessage(value: unknown): value is WithdrawMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.WITHDRAW) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.account)) {\n return false;\n }\n if (!isNumber(d.announce_seq)) {\n return false;\n }\n if (\n 'reason' in d &&\n d.reason !== undefined &&\n d.reason !== null &&\n !isString(d.reason)\n ) {\n return false;\n }\n return true;\n}\n\n/**\n * Discovery phase states\n */\nexport enum DiscoveryState {\n IDLE = 'idle',\n ANNOUNCED = 'announced',\n PROPOSING = 'proposing',\n FORMING = 'forming',\n ACTIVE = 'active',\n WITHDRAWN = 'withdrawn',\n}\n\n/**\n * Tracked announcement with HCS metadata\n */\nexport interface TrackedAnnouncement {\n account: string;\n sequenceNumber: number;\n consensusTimestamp: string;\n data: AnnounceData;\n}\n\n/**\n * Tracked proposal with HCS metadata\n */\nexport interface TrackedProposal {\n sequenceNumber: number;\n consensusTimestamp: string;\n proposer: string;\n data: ProposeData;\n responses: Map<string, RespondData>;\n}\n\n/**\n * Flora formation result\n */\nexport interface FloraFormation {\n proposalSeq: number;\n floraAccountId: string;\n topics: {\n communication: string;\n transaction: string;\n state: string;\n };\n members: Array<{\n account: string;\n priority: number;\n }>;\n threshold: number;\n createdAt: Date;\n}\n\n/**\n * Discovery event types for monitoring\n */\nexport interface DiscoveryEvent {\n type:\n | 'announcement_received'\n | 'proposal_received'\n | 'response_received'\n | 'formation_complete'\n | 'withdrawal_received'\n | 'discovery_timeout';\n sequenceNumber?: number;\n timestamp: Date;\n data: any;\n}\n\n/**\n * Discovery configuration\n */\nexport interface DiscoveryConfig {\n discoveryTopicId: string | TopicId;\n accountId: string;\n petalName: string;\n priority: number;\n capabilities: {\n protocols: string[];\n resources?: AnnounceData['capabilities']['resources'];\n group_preferences?: AnnounceData['capabilities']['group_preferences'];\n };\n autoAcceptFilter?: (proposal: TrackedProposal) => boolean;\n onDiscoveryEvent?: (event: DiscoveryEvent) => void;\n memberPrivateKeys?: Map<string, string>;\n}\n\n/**\n * HCS-18 Errors\n */\nexport class DiscoveryError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n ) {\n super(message);\n this.name = 'DiscoveryError';\n }\n}\n\nexport const DiscoveryErrorCodes = {\n INVALID_MESSAGE: 'INVALID_MESSAGE',\n TIMEOUT: 'TIMEOUT',\n INSUFFICIENT_PETALS: 'INSUFFICIENT_PETALS',\n FLORA_CREATION_FAILED: 'FLORA_CREATION_FAILED',\n ALREADY_IN_DISCOVERY: 'ALREADY_IN_DISCOVERY',\n INVALID_STATE: 'INVALID_STATE',\n} as const;\n"],"names":["DiscoveryOperation","DiscoveryState"],"mappings":"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"}
|
|
@@ -1,37 +1,116 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { Client } from "@hashgraph/sdk";
|
|
2
|
+
import { Logger } from "./standards-sdk.es106.js";
|
|
3
|
+
import { createNodeOperatorContext } from "./standards-sdk.es145.js";
|
|
4
|
+
import { buildHcs18CreateDiscoveryTopicTx, buildHcs18AnnounceMessage, buildHcs18SubmitDiscoveryMessageTx, buildHcs18ProposeMessage, buildHcs18RespondMessage, buildHcs18CompleteMessage, buildHcs18WithdrawMessage } from "./standards-sdk.es104.js";
|
|
5
|
+
import { HCS18BaseClient } from "./standards-sdk.es105.js";
|
|
6
|
+
class HCS18Client extends HCS18BaseClient {
|
|
3
7
|
constructor(config) {
|
|
4
|
-
|
|
8
|
+
super({
|
|
9
|
+
network: config.network,
|
|
10
|
+
logger: Logger.getInstance({
|
|
11
|
+
level: config.logLevel || "info",
|
|
12
|
+
module: "HCS-18",
|
|
13
|
+
silent: config.silent
|
|
14
|
+
})
|
|
15
|
+
});
|
|
16
|
+
this.operatorCtx = createNodeOperatorContext({
|
|
17
|
+
network: this.network,
|
|
18
|
+
operatorId: config.operatorId,
|
|
19
|
+
operatorKey: config.operatorKey,
|
|
20
|
+
mirrorNode: this.mirrorNode,
|
|
21
|
+
logger: this.logger,
|
|
22
|
+
client: Client.forName(this.network)
|
|
23
|
+
});
|
|
24
|
+
this.client = this.operatorCtx.client;
|
|
5
25
|
}
|
|
6
|
-
async
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
);
|
|
11
|
-
|
|
26
|
+
async ensureInitialized() {
|
|
27
|
+
await this.operatorCtx.ensureInitialized();
|
|
28
|
+
}
|
|
29
|
+
async createDiscoveryTopic(options) {
|
|
30
|
+
await this.ensureInitialized();
|
|
31
|
+
const ttl = options?.ttlSeconds;
|
|
32
|
+
let operatorPublicKey;
|
|
33
|
+
try {
|
|
34
|
+
operatorPublicKey = this.operatorCtx.operatorKey.publicKey;
|
|
35
|
+
} catch {
|
|
36
|
+
operatorPublicKey = void 0;
|
|
37
|
+
}
|
|
38
|
+
const tx = buildHcs18CreateDiscoveryTopicTx({
|
|
39
|
+
ttlSeconds: ttl,
|
|
40
|
+
adminKey: options?.adminKey,
|
|
41
|
+
submitKey: options?.submitKey,
|
|
42
|
+
operatorPublicKey,
|
|
43
|
+
memoOverride: options?.memoOverride
|
|
44
|
+
});
|
|
45
|
+
const resp = await tx.execute(this.client);
|
|
46
|
+
const receipt = await resp.getReceipt(this.client);
|
|
47
|
+
const topicId = receipt.topicId?.toString();
|
|
48
|
+
if (!topicId) {
|
|
49
|
+
throw new Error("Failed to create discovery topic");
|
|
50
|
+
}
|
|
51
|
+
return { topicId, receipt };
|
|
12
52
|
}
|
|
13
53
|
async announce(params) {
|
|
54
|
+
await this.ensureInitialized();
|
|
14
55
|
const message = buildHcs18AnnounceMessage(params.data);
|
|
15
|
-
|
|
56
|
+
const tx = buildHcs18SubmitDiscoveryMessageTx({
|
|
57
|
+
topicId: params.discoveryTopicId,
|
|
58
|
+
message,
|
|
59
|
+
transactionMemo: params.memo
|
|
60
|
+
});
|
|
61
|
+
const resp = await tx.execute(this.client);
|
|
62
|
+
const receipt = await resp.getReceipt(this.client);
|
|
63
|
+
const seq = receipt.topicSequenceNumber.toNumber();
|
|
64
|
+
return { receipt, sequenceNumber: seq };
|
|
16
65
|
}
|
|
17
66
|
async propose(params) {
|
|
67
|
+
await this.ensureInitialized();
|
|
18
68
|
const message = buildHcs18ProposeMessage(params.data);
|
|
19
|
-
|
|
69
|
+
const tx = buildHcs18SubmitDiscoveryMessageTx({
|
|
70
|
+
topicId: params.discoveryTopicId,
|
|
71
|
+
message,
|
|
72
|
+
transactionMemo: params.memo
|
|
73
|
+
});
|
|
74
|
+
const resp = await tx.execute(this.client);
|
|
75
|
+
const receipt = await resp.getReceipt(this.client);
|
|
76
|
+
const seq = receipt.topicSequenceNumber.toNumber();
|
|
77
|
+
return { receipt, sequenceNumber: seq };
|
|
20
78
|
}
|
|
21
79
|
async respond(params) {
|
|
80
|
+
await this.ensureInitialized();
|
|
22
81
|
const message = buildHcs18RespondMessage(params.data);
|
|
23
|
-
|
|
82
|
+
const tx = buildHcs18SubmitDiscoveryMessageTx({
|
|
83
|
+
topicId: params.discoveryTopicId,
|
|
84
|
+
message,
|
|
85
|
+
transactionMemo: params.memo
|
|
86
|
+
});
|
|
87
|
+
const resp = await tx.execute(this.client);
|
|
88
|
+
return await resp.getReceipt(this.client);
|
|
24
89
|
}
|
|
25
90
|
async complete(params) {
|
|
91
|
+
await this.ensureInitialized();
|
|
26
92
|
const message = buildHcs18CompleteMessage(params.data);
|
|
27
|
-
|
|
93
|
+
const tx = buildHcs18SubmitDiscoveryMessageTx({
|
|
94
|
+
topicId: params.discoveryTopicId,
|
|
95
|
+
message,
|
|
96
|
+
transactionMemo: params.memo
|
|
97
|
+
});
|
|
98
|
+
const resp = await tx.execute(this.client);
|
|
99
|
+
return await resp.getReceipt(this.client);
|
|
28
100
|
}
|
|
29
101
|
async withdraw(params) {
|
|
102
|
+
await this.ensureInitialized();
|
|
30
103
|
const message = buildHcs18WithdrawMessage(params.data);
|
|
31
|
-
|
|
104
|
+
const tx = buildHcs18SubmitDiscoveryMessageTx({
|
|
105
|
+
topicId: params.discoveryTopicId,
|
|
106
|
+
message,
|
|
107
|
+
transactionMemo: params.memo
|
|
108
|
+
});
|
|
109
|
+
const resp = await tx.execute(this.client);
|
|
110
|
+
return await resp.getReceipt(this.client);
|
|
32
111
|
}
|
|
33
112
|
}
|
|
34
113
|
export {
|
|
35
|
-
|
|
114
|
+
HCS18Client
|
|
36
115
|
};
|
|
37
116
|
//# sourceMappingURL=standards-sdk.es102.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es102.js","sources":["../../src/hcs-18/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es102.js","sources":["../../src/hcs-18/sdk.ts"],"sourcesContent":["import {\n Client,\n TopicCreateTransaction,\n TransactionReceipt,\n} from '@hashgraph/sdk';\nimport { Logger } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport {\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport type { MaybeKey } from '../common/tx/tx-utils';\nimport { buildHcs18CreateDiscoveryTopicTx } from './tx';\nimport { HCS18BaseClient } from './base-client';\nimport type {\n AnnounceData,\n ProposeData,\n RespondData,\n CompleteMessage,\n WithdrawMessage,\n DiscoveryMessage,\n} from './types';\nimport {\n buildHcs18SubmitDiscoveryMessageTx,\n buildHcs18AnnounceMessage,\n buildHcs18ProposeMessage,\n buildHcs18RespondMessage,\n buildHcs18CompleteMessage,\n buildHcs18WithdrawMessage,\n} from './tx';\n\nexport interface SDKHCS18ClientConfig {\n network: NetworkType;\n operatorId: string;\n operatorKey: string | import('@hashgraph/sdk').PrivateKey;\n logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'silent';\n silent?: boolean;\n}\n\nexport class HCS18Client extends HCS18BaseClient {\n private readonly operatorCtx: NodeOperatorContext;\n private readonly client: Client;\n\n constructor(config: SDKHCS18ClientConfig) {\n super({\n network: config.network,\n logger: Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS-18',\n silent: config.silent,\n }),\n });\n this.operatorCtx = createNodeOperatorContext({\n network: this.network,\n operatorId: config.operatorId,\n operatorKey: config.operatorKey,\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n client: Client.forName(this.network),\n });\n this.client = this.operatorCtx.client;\n }\n\n private async ensureInitialized(): Promise<void> {\n await this.operatorCtx.ensureInitialized();\n }\n\n async createDiscoveryTopic(options?: {\n ttlSeconds?: number;\n adminKey?: MaybeKey;\n submitKey?: MaybeKey;\n memoOverride?: string;\n }): Promise<{ topicId: string; receipt: TransactionReceipt }> {\n await this.ensureInitialized();\n const ttl = options?.ttlSeconds;\n\n let operatorPublicKey: import('@hashgraph/sdk').PublicKey | undefined;\n try {\n operatorPublicKey = this.operatorCtx.operatorKey.publicKey;\n } catch {\n operatorPublicKey = undefined;\n }\n const tx: TopicCreateTransaction = buildHcs18CreateDiscoveryTopicTx({\n ttlSeconds: ttl,\n adminKey: options?.adminKey,\n submitKey: options?.submitKey,\n operatorPublicKey,\n memoOverride: options?.memoOverride,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const topicId = receipt.topicId?.toString();\n if (!topicId) {\n throw new Error('Failed to create discovery topic');\n }\n return { topicId, receipt };\n }\n\n async announce(params: {\n discoveryTopicId: string;\n data: AnnounceData;\n memo?: string;\n }): Promise<{ receipt: TransactionReceipt; sequenceNumber: number }> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18AnnounceMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const seq = receipt.topicSequenceNumber.toNumber();\n return { receipt, sequenceNumber: seq };\n }\n\n async propose(params: {\n discoveryTopicId: string;\n data: ProposeData;\n memo?: string;\n }): Promise<{ receipt: TransactionReceipt; sequenceNumber: number }> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18ProposeMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const seq = receipt.topicSequenceNumber.toNumber();\n return { receipt, sequenceNumber: seq };\n }\n\n async respond(params: {\n discoveryTopicId: string;\n data: RespondData;\n memo?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18RespondMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n\n async complete(params: {\n discoveryTopicId: string;\n data: CompleteMessage['data'];\n memo?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18CompleteMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n\n async withdraw(params: {\n discoveryTopicId: string;\n data: WithdrawMessage['data'];\n memo?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18WithdrawMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,87 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (memoOverride && memoOverride.trim().length > 0) {
|
|
6
|
-
return memoOverride;
|
|
1
|
+
import { buildHcs18AnnounceMessage, buildHcs18ProposeMessage, buildHcs18RespondMessage, buildHcs18CompleteMessage, buildHcs18WithdrawMessage } from "./standards-sdk.es104.js";
|
|
2
|
+
class HCS18BrowserClient {
|
|
3
|
+
constructor(config) {
|
|
4
|
+
this.hwc = config.hwc;
|
|
7
5
|
}
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
async submit(discoveryTopicId, message) {
|
|
7
|
+
const receipt = await this.hwc.submitMessageToTopic(
|
|
8
|
+
discoveryTopicId,
|
|
9
|
+
JSON.stringify(message)
|
|
10
|
+
);
|
|
11
|
+
return receipt;
|
|
10
12
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
case DiscoveryOperation.COMPLETE:
|
|
31
|
-
return 3;
|
|
32
|
-
case DiscoveryOperation.WITHDRAW:
|
|
33
|
-
return 4;
|
|
34
|
-
default:
|
|
35
|
-
return 0;
|
|
13
|
+
async announce(params) {
|
|
14
|
+
const message = buildHcs18AnnounceMessage(params.data);
|
|
15
|
+
return this.submit(params.discoveryTopicId, message);
|
|
16
|
+
}
|
|
17
|
+
async propose(params) {
|
|
18
|
+
const message = buildHcs18ProposeMessage(params.data);
|
|
19
|
+
return this.submit(params.discoveryTopicId, message);
|
|
20
|
+
}
|
|
21
|
+
async respond(params) {
|
|
22
|
+
const message = buildHcs18RespondMessage(params.data);
|
|
23
|
+
return this.submit(params.discoveryTopicId, message);
|
|
24
|
+
}
|
|
25
|
+
async complete(params) {
|
|
26
|
+
const message = buildHcs18CompleteMessage(params.data);
|
|
27
|
+
return this.submit(params.discoveryTopicId, message);
|
|
28
|
+
}
|
|
29
|
+
async withdraw(params) {
|
|
30
|
+
const message = buildHcs18WithdrawMessage(params.data);
|
|
31
|
+
return this.submit(params.discoveryTopicId, message);
|
|
36
32
|
}
|
|
37
|
-
}
|
|
38
|
-
function buildHcs18SubmitDiscoveryMessageTx(params) {
|
|
39
|
-
const memo = typeof params.transactionMemo === "string" && params.transactionMemo.length > 0 ? params.transactionMemo : `hcs-18:op:${opCode(params.message.op)}`;
|
|
40
|
-
return new TopicMessageSubmitTransaction().setTopicId(params.topicId).setMessage(JSON.stringify(params.message)).setTransactionMemo(memo);
|
|
41
|
-
}
|
|
42
|
-
function buildHcs18AnnounceMessage(data) {
|
|
43
|
-
return {
|
|
44
|
-
p: "hcs-18",
|
|
45
|
-
op: DiscoveryOperation.ANNOUNCE,
|
|
46
|
-
data
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function buildHcs18ProposeMessage(data) {
|
|
50
|
-
return {
|
|
51
|
-
p: "hcs-18",
|
|
52
|
-
op: DiscoveryOperation.PROPOSE,
|
|
53
|
-
data
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
function buildHcs18RespondMessage(data) {
|
|
57
|
-
return {
|
|
58
|
-
p: "hcs-18",
|
|
59
|
-
op: DiscoveryOperation.RESPOND,
|
|
60
|
-
data
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
function buildHcs18CompleteMessage(data) {
|
|
64
|
-
return {
|
|
65
|
-
p: "hcs-18",
|
|
66
|
-
op: DiscoveryOperation.COMPLETE,
|
|
67
|
-
data
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
function buildHcs18WithdrawMessage(data) {
|
|
71
|
-
return {
|
|
72
|
-
p: "hcs-18",
|
|
73
|
-
op: DiscoveryOperation.WITHDRAW,
|
|
74
|
-
data
|
|
75
|
-
};
|
|
76
33
|
}
|
|
77
34
|
export {
|
|
78
|
-
|
|
79
|
-
buildHcs18CompleteMessage,
|
|
80
|
-
buildHcs18CreateDiscoveryTopicTx,
|
|
81
|
-
buildHcs18DiscoveryMemo,
|
|
82
|
-
buildHcs18ProposeMessage,
|
|
83
|
-
buildHcs18RespondMessage,
|
|
84
|
-
buildHcs18SubmitDiscoveryMessageTx,
|
|
85
|
-
buildHcs18WithdrawMessage
|
|
35
|
+
HCS18BrowserClient
|
|
86
36
|
};
|
|
87
37
|
//# sourceMappingURL=standards-sdk.es103.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es103.js","sources":["../../src/hcs-18/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es103.js","sources":["../../src/hcs-18/browser.ts"],"sourcesContent":["import type { TransactionReceipt } from '@hashgraph/sdk';\nimport { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport type {\n DiscoveryMessage,\n AnnounceData,\n ProposeData,\n RespondData,\n CompleteMessage,\n WithdrawMessage,\n} from './types';\nimport {\n buildHcs18AnnounceMessage,\n buildHcs18ProposeMessage,\n buildHcs18RespondMessage,\n buildHcs18CompleteMessage,\n buildHcs18WithdrawMessage,\n} from './tx';\n\nexport interface BrowserHCS18ClientConfig {\n network: 'testnet' | 'mainnet';\n hwc: HashinalsWalletConnectSDK;\n}\n\nexport class HCS18BrowserClient {\n private readonly hwc: HashinalsWalletConnectSDK;\n\n constructor(config: BrowserHCS18ClientConfig) {\n this.hwc = config.hwc;\n }\n\n async submit(\n discoveryTopicId: string,\n message: DiscoveryMessage,\n ): Promise<TransactionReceipt> {\n const receipt = await this.hwc.submitMessageToTopic(\n discoveryTopicId,\n JSON.stringify(message),\n );\n return receipt;\n }\n\n async announce(params: {\n discoveryTopicId: string;\n data: AnnounceData;\n }): Promise<TransactionReceipt> {\n const message = buildHcs18AnnounceMessage(params.data);\n return this.submit(params.discoveryTopicId, message);\n }\n\n async propose(params: {\n discoveryTopicId: string;\n data: ProposeData;\n }): Promise<TransactionReceipt> {\n const message = buildHcs18ProposeMessage(params.data);\n return this.submit(params.discoveryTopicId, message);\n }\n\n async respond(params: {\n discoveryTopicId: string;\n data: RespondData;\n }): Promise<TransactionReceipt> {\n const message = buildHcs18RespondMessage(params.data);\n return this.submit(params.discoveryTopicId, message);\n }\n\n async complete(params: {\n discoveryTopicId: string;\n data: CompleteMessage['data'];\n }): Promise<TransactionReceipt> {\n const message = buildHcs18CompleteMessage(params.data);\n return this.submit(params.discoveryTopicId, message);\n }\n\n async withdraw(params: {\n discoveryTopicId: string;\n data: WithdrawMessage['data'];\n }): Promise<TransactionReceipt> {\n const message = buildHcs18WithdrawMessage(params.data);\n return this.submit(params.discoveryTopicId, message);\n }\n}\n"],"names":[],"mappings":";AAuBO,MAAM,mBAAmB;AAAA,EAG9B,YAAY,QAAkC;AAC5C,SAAK,MAAM,OAAO;AAAA,EACpB;AAAA,EAEA,MAAM,OACJ,kBACA,SAC6B;AAC7B,UAAM,UAAU,MAAM,KAAK,IAAI;AAAA,MAC7B;AAAA,MACA,KAAK,UAAU,OAAO;AAAA,IAAA;AAExB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,SAAS,QAGiB;AAC9B,UAAM,UAAU,0BAA0B,OAAO,IAAI;AACrD,WAAO,KAAK,OAAO,OAAO,kBAAkB,OAAO;AAAA,EACrD;AAAA,EAEA,MAAM,QAAQ,QAGkB;AAC9B,UAAM,UAAU,yBAAyB,OAAO,IAAI;AACpD,WAAO,KAAK,OAAO,OAAO,kBAAkB,OAAO;AAAA,EACrD;AAAA,EAEA,MAAM,QAAQ,QAGkB;AAC9B,UAAM,UAAU,yBAAyB,OAAO,IAAI;AACpD,WAAO,KAAK,OAAO,OAAO,kBAAkB,OAAO;AAAA,EACrD;AAAA,EAEA,MAAM,SAAS,QAGiB;AAC9B,UAAM,UAAU,0BAA0B,OAAO,IAAI;AACrD,WAAO,KAAK,OAAO,OAAO,kBAAkB,OAAO;AAAA,EACrD;AAAA,EAEA,MAAM,SAAS,QAGiB;AAC9B,UAAM,UAAU,0BAA0B,OAAO,IAAI;AACrD,WAAO,KAAK,OAAO,OAAO,kBAAkB,OAAO;AAAA,EACrD;AACF;"}
|
|
@@ -1,34 +1,87 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
this.mirrorNode = new HederaMirrorNode(this.network, this.logger);
|
|
1
|
+
import { TopicMessageSubmitTransaction } from "@hashgraph/sdk";
|
|
2
|
+
import { DiscoveryOperation } from "./standards-sdk.es101.js";
|
|
3
|
+
import { buildTopicCreateTx } from "./standards-sdk.es146.js";
|
|
4
|
+
function buildHcs18DiscoveryMemo(ttlSeconds, memoOverride) {
|
|
5
|
+
if (memoOverride && memoOverride.trim().length > 0) {
|
|
6
|
+
return memoOverride;
|
|
8
7
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
async getDiscoveryMessages(topicId, options) {
|
|
13
|
-
const validOps = ["announce", "propose", "respond", "complete", "withdraw"];
|
|
14
|
-
const messages = await this.mirrorNode.getTopicMessages(topicId, options);
|
|
15
|
-
if (!messages) {
|
|
16
|
-
return [];
|
|
17
|
-
}
|
|
18
|
-
return messages.filter((m) => m.p === "hcs-18" && validOps.includes(m.op));
|
|
8
|
+
if (ttlSeconds && ttlSeconds > 0) {
|
|
9
|
+
return `hcs-18:0:${ttlSeconds}`;
|
|
19
10
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
11
|
+
return "hcs-18:0";
|
|
12
|
+
}
|
|
13
|
+
function buildHcs18CreateDiscoveryTopicTx(params) {
|
|
14
|
+
const memo = buildHcs18DiscoveryMemo(params.ttlSeconds, params.memoOverride);
|
|
15
|
+
return buildTopicCreateTx({
|
|
16
|
+
memo,
|
|
17
|
+
adminKey: params.adminKey,
|
|
18
|
+
submitKey: params.submitKey,
|
|
19
|
+
operatorPublicKey: params.operatorPublicKey
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function opCode(op) {
|
|
23
|
+
switch (op) {
|
|
24
|
+
case DiscoveryOperation.ANNOUNCE:
|
|
25
|
+
return 0;
|
|
26
|
+
case DiscoveryOperation.PROPOSE:
|
|
27
|
+
return 1;
|
|
28
|
+
case DiscoveryOperation.RESPOND:
|
|
29
|
+
return 2;
|
|
30
|
+
case DiscoveryOperation.COMPLETE:
|
|
31
|
+
return 3;
|
|
32
|
+
case DiscoveryOperation.WITHDRAW:
|
|
33
|
+
return 4;
|
|
34
|
+
default:
|
|
35
|
+
return 0;
|
|
29
36
|
}
|
|
30
37
|
}
|
|
38
|
+
function buildHcs18SubmitDiscoveryMessageTx(params) {
|
|
39
|
+
const memo = typeof params.transactionMemo === "string" && params.transactionMemo.length > 0 ? params.transactionMemo : `hcs-18:op:${opCode(params.message.op)}`;
|
|
40
|
+
return new TopicMessageSubmitTransaction().setTopicId(params.topicId).setMessage(JSON.stringify(params.message)).setTransactionMemo(memo);
|
|
41
|
+
}
|
|
42
|
+
function buildHcs18AnnounceMessage(data) {
|
|
43
|
+
return {
|
|
44
|
+
p: "hcs-18",
|
|
45
|
+
op: DiscoveryOperation.ANNOUNCE,
|
|
46
|
+
data
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function buildHcs18ProposeMessage(data) {
|
|
50
|
+
return {
|
|
51
|
+
p: "hcs-18",
|
|
52
|
+
op: DiscoveryOperation.PROPOSE,
|
|
53
|
+
data
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function buildHcs18RespondMessage(data) {
|
|
57
|
+
return {
|
|
58
|
+
p: "hcs-18",
|
|
59
|
+
op: DiscoveryOperation.RESPOND,
|
|
60
|
+
data
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function buildHcs18CompleteMessage(data) {
|
|
64
|
+
return {
|
|
65
|
+
p: "hcs-18",
|
|
66
|
+
op: DiscoveryOperation.COMPLETE,
|
|
67
|
+
data
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function buildHcs18WithdrawMessage(data) {
|
|
71
|
+
return {
|
|
72
|
+
p: "hcs-18",
|
|
73
|
+
op: DiscoveryOperation.WITHDRAW,
|
|
74
|
+
data
|
|
75
|
+
};
|
|
76
|
+
}
|
|
31
77
|
export {
|
|
32
|
-
|
|
78
|
+
buildHcs18AnnounceMessage,
|
|
79
|
+
buildHcs18CompleteMessage,
|
|
80
|
+
buildHcs18CreateDiscoveryTopicTx,
|
|
81
|
+
buildHcs18DiscoveryMemo,
|
|
82
|
+
buildHcs18ProposeMessage,
|
|
83
|
+
buildHcs18RespondMessage,
|
|
84
|
+
buildHcs18SubmitDiscoveryMessageTx,
|
|
85
|
+
buildHcs18WithdrawMessage
|
|
33
86
|
};
|
|
34
87
|
//# sourceMappingURL=standards-sdk.es104.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es104.js","sources":["../../src/hcs-18/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es104.js","sources":["../../src/hcs-18/tx.ts"],"sourcesContent":["import {\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n PublicKey,\n} from '@hashgraph/sdk';\nimport type {\n DiscoveryMessage,\n AnnounceData,\n ProposeData,\n RespondData,\n CompleteMessage,\n WithdrawMessage,\n AnnounceMessage,\n ProposeMessage,\n RespondMessage,\n} from './types';\nimport { DiscoveryOperation } from './types';\nimport type { MaybeKey } from '../common/tx/tx-utils';\nimport { buildTopicCreateTx } from '../common/tx/tx-utils';\n\nexport function buildHcs18DiscoveryMemo(\n ttlSeconds?: number,\n memoOverride?: string,\n): string {\n if (memoOverride && memoOverride.trim().length > 0) {\n return memoOverride;\n }\n if (ttlSeconds && ttlSeconds > 0) {\n return `hcs-18:0:${ttlSeconds}`;\n }\n return 'hcs-18:0';\n}\n\nexport function buildHcs18CreateDiscoveryTopicTx(params: {\n ttlSeconds?: number;\n adminKey?: MaybeKey;\n submitKey?: MaybeKey;\n operatorPublicKey?: PublicKey;\n memoOverride?: string;\n}): TopicCreateTransaction {\n const memo = buildHcs18DiscoveryMemo(params.ttlSeconds, params.memoOverride);\n return buildTopicCreateTx({\n memo,\n adminKey: params.adminKey,\n submitKey: params.submitKey,\n operatorPublicKey: params.operatorPublicKey,\n });\n}\n\nfunction opCode(op: DiscoveryOperation): number {\n switch (op) {\n case DiscoveryOperation.ANNOUNCE:\n return 0;\n case DiscoveryOperation.PROPOSE:\n return 1;\n case DiscoveryOperation.RESPOND:\n return 2;\n case DiscoveryOperation.COMPLETE:\n return 3;\n case DiscoveryOperation.WITHDRAW:\n return 4;\n default:\n return 0;\n }\n}\n\nexport function buildHcs18SubmitDiscoveryMessageTx(params: {\n topicId: string;\n message: DiscoveryMessage;\n transactionMemo?: string;\n}): TopicMessageSubmitTransaction {\n const memo =\n typeof params.transactionMemo === 'string' &&\n params.transactionMemo.length > 0\n ? params.transactionMemo\n : `hcs-18:op:${opCode(params.message.op)}`;\n return new TopicMessageSubmitTransaction()\n .setTopicId(params.topicId)\n .setMessage(JSON.stringify(params.message))\n .setTransactionMemo(memo);\n}\n\nexport function buildHcs18AnnounceMessage(data: AnnounceData): AnnounceMessage {\n return {\n p: 'hcs-18',\n op: DiscoveryOperation.ANNOUNCE,\n data,\n } as AnnounceMessage;\n}\n\nexport function buildHcs18ProposeMessage(data: ProposeData): ProposeMessage {\n return {\n p: 'hcs-18',\n op: DiscoveryOperation.PROPOSE,\n data,\n } as ProposeMessage;\n}\n\nexport function buildHcs18RespondMessage(data: RespondData): RespondMessage {\n return {\n p: 'hcs-18',\n op: DiscoveryOperation.RESPOND,\n data,\n } as RespondMessage;\n}\n\nexport function buildHcs18CompleteMessage(\n data: CompleteMessage['data'],\n): CompleteMessage {\n return {\n p: 'hcs-18',\n op: DiscoveryOperation.COMPLETE,\n data,\n } as CompleteMessage;\n}\n\nexport function buildHcs18WithdrawMessage(\n data: WithdrawMessage['data'],\n): WithdrawMessage {\n return {\n p: 'hcs-18',\n op: DiscoveryOperation.WITHDRAW,\n data,\n } as WithdrawMessage;\n}\n"],"names":[],"mappings":";;;AAoBO,SAAS,wBACd,YACA,cACQ;AACR,MAAI,gBAAgB,aAAa,KAAA,EAAO,SAAS,GAAG;AAClD,WAAO;AAAA,EACT;AACA,MAAI,cAAc,aAAa,GAAG;AAChC,WAAO,YAAY,UAAU;AAAA,EAC/B;AACA,SAAO;AACT;AAEO,SAAS,iCAAiC,QAMtB;AACzB,QAAM,OAAO,wBAAwB,OAAO,YAAY,OAAO,YAAY;AAC3E,SAAO,mBAAmB;AAAA,IACxB;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,WAAW,OAAO;AAAA,IAClB,mBAAmB,OAAO;AAAA,EAAA,CAC3B;AACH;AAEA,SAAS,OAAO,IAAgC;AAC9C,UAAQ,IAAA;AAAA,IACN,KAAK,mBAAmB;AACtB,aAAO;AAAA,IACT,KAAK,mBAAmB;AACtB,aAAO;AAAA,IACT,KAAK,mBAAmB;AACtB,aAAO;AAAA,IACT,KAAK,mBAAmB;AACtB,aAAO;AAAA,IACT,KAAK,mBAAmB;AACtB,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAEO,SAAS,mCAAmC,QAIjB;AAChC,QAAM,OACJ,OAAO,OAAO,oBAAoB,YAClC,OAAO,gBAAgB,SAAS,IAC5B,OAAO,kBACP,aAAa,OAAO,OAAO,QAAQ,EAAE,CAAC;AAC5C,SAAO,IAAI,8BAAA,EACR,WAAW,OAAO,OAAO,EACzB,WAAW,KAAK,UAAU,OAAO,OAAO,CAAC,EACzC,mBAAmB,IAAI;AAC5B;AAEO,SAAS,0BAA0B,MAAqC;AAC7E,SAAO;AAAA,IACL,GAAG;AAAA,IACH,IAAI,mBAAmB;AAAA,IACvB;AAAA,EAAA;AAEJ;AAEO,SAAS,yBAAyB,MAAmC;AAC1E,SAAO;AAAA,IACL,GAAG;AAAA,IACH,IAAI,mBAAmB;AAAA,IACvB;AAAA,EAAA;AAEJ;AAEO,SAAS,yBAAyB,MAAmC;AAC1E,SAAO;AAAA,IACL,GAAG;AAAA,IACH,IAAI,mBAAmB;AAAA,IACvB;AAAA,EAAA;AAEJ;AAEO,SAAS,0BACd,MACiB;AACjB,SAAO;AAAA,IACL,GAAG;AAAA,IACH,IAAI,mBAAmB;AAAA,IACvB;AAAA,EAAA;AAEJ;AAEO,SAAS,0BACd,MACiB;AACjB,SAAO;AAAA,IACL,GAAG;AAAA,IACH,IAAI,mBAAmB;AAAA,IACvB;AAAA,EAAA;AAEJ;"}
|