@hashgraphonline/standards-sdk 0.1.144 → 0.1.145
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-10/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-10/sdk.d.ts +8 -0
- package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-11/client.d.ts +2 -2
- package/dist/cjs/hcs-11/client.d.ts.map +1 -1
- package/dist/cjs/hcs-11/person-builder.d.ts +1 -0
- package/dist/cjs/hcs-11/person-builder.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/rendering/resource-manager.d.ts.map +1 -1
- package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
- package/dist/cjs/hcs-15/browser.d.ts +2 -0
- package/dist/cjs/hcs-15/browser.d.ts.map +1 -1
- package/dist/cjs/hcs-15/sdk.d.ts +7 -1
- package/dist/cjs/hcs-15/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-15/tx.d.ts +4 -0
- package/dist/cjs/hcs-15/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-15/types.d.ts +16 -1
- package/dist/cjs/hcs-15/types.d.ts.map +1 -1
- package/dist/cjs/hcs-16/browser.d.ts +11 -2
- package/dist/cjs/hcs-16/browser.d.ts.map +1 -1
- package/dist/cjs/hcs-16/sdk.d.ts +62 -1
- package/dist/cjs/hcs-16/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-16/tx.d.ts +21 -3
- package/dist/cjs/hcs-16/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-17/base-client.d.ts +1 -0
- package/dist/cjs/hcs-17/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-17/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-17/tx.d.ts +2 -0
- package/dist/cjs/hcs-17/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-17/types.d.ts +4 -0
- package/dist/cjs/hcs-17/types.d.ts.map +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts +14 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/feedback.d.ts +2 -0
- package/dist/cjs/services/registry-broker/client/feedback.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -0
- package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/schemas.d.ts +998 -577
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/types.d.ts +20 -1
- package/dist/cjs/services/registry-broker/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/crypto-abstraction.d.ts.map +1 -1
- package/dist/cjs/utils/crypto-env.d.ts.map +1 -1
- package/dist/cjs/utils/dynamic-import.d.ts +5 -1
- package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
- package/dist/cjs/utils/hash-adapter.d.ts.map +1 -1
- package/dist/es/hcs-10/base-client.d.ts.map +1 -1
- package/dist/es/hcs-10/sdk.d.ts +8 -0
- package/dist/es/hcs-10/sdk.d.ts.map +1 -1
- package/dist/es/hcs-11/client.d.ts +2 -2
- package/dist/es/hcs-11/client.d.ts.map +1 -1
- package/dist/es/hcs-11/person-builder.d.ts +1 -0
- package/dist/es/hcs-11/person-builder.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/rendering/resource-manager.d.ts.map +1 -1
- package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
- package/dist/es/hcs-15/browser.d.ts +2 -0
- package/dist/es/hcs-15/browser.d.ts.map +1 -1
- package/dist/es/hcs-15/sdk.d.ts +7 -1
- package/dist/es/hcs-15/sdk.d.ts.map +1 -1
- package/dist/es/hcs-15/tx.d.ts +4 -0
- package/dist/es/hcs-15/tx.d.ts.map +1 -1
- package/dist/es/hcs-15/types.d.ts +16 -1
- package/dist/es/hcs-15/types.d.ts.map +1 -1
- package/dist/es/hcs-16/browser.d.ts +11 -2
- package/dist/es/hcs-16/browser.d.ts.map +1 -1
- package/dist/es/hcs-16/sdk.d.ts +62 -1
- package/dist/es/hcs-16/sdk.d.ts.map +1 -1
- package/dist/es/hcs-16/tx.d.ts +21 -3
- package/dist/es/hcs-16/tx.d.ts.map +1 -1
- package/dist/es/hcs-17/base-client.d.ts +1 -0
- package/dist/es/hcs-17/base-client.d.ts.map +1 -1
- package/dist/es/hcs-17/sdk.d.ts.map +1 -1
- package/dist/es/hcs-17/tx.d.ts +2 -0
- package/dist/es/hcs-17/tx.d.ts.map +1 -1
- package/dist/es/hcs-17/types.d.ts +4 -0
- package/dist/es/hcs-17/types.d.ts.map +1 -1
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts +14 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/feedback.d.ts +2 -0
- package/dist/es/services/registry-broker/client/feedback.d.ts.map +1 -0
- package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -0
- package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/es/services/registry-broker/schemas.d.ts +998 -577
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/services/registry-broker/types.d.ts +20 -1
- package/dist/es/services/registry-broker/types.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +141 -135
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es10.js +70 -90
- package/dist/es/standards-sdk.es10.js.map +1 -1
- package/dist/es/standards-sdk.es100.js +229 -26
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +109 -228
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +15 -94
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +80 -30
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +27 -80
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +136 -25
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +27 -140
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +20 -27
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +156 -18
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +198 -148
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es11.js +121 -45
- package/dist/es/standards-sdk.es11.js.map +1 -1
- package/dist/es/standards-sdk.es110.js +747 -166
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +9 -786
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +567 -13
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +576 -541
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +12 -601
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +2 -13
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +87 -2
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +37 -80
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +2 -39
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +231 -2
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es12.js +60 -159
- package/dist/es/standards-sdk.es12.js.map +1 -1
- package/dist/es/standards-sdk.es120.js +1110 -193
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +225 -1059
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +419 -303
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +351 -418
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +872 -347
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +182 -854
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +1512 -153
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +157 -1547
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +192 -162
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +61 -164
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +200 -60
- package/dist/es/standards-sdk.es13.js.map +1 -1
- package/dist/es/standards-sdk.es130.js +102 -85
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +222 -96
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +153 -220
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +104 -162
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +296 -92
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +432 -294
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +14 -363
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +79 -15
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +79 -59
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +152 -80
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +149 -178
- package/dist/es/standards-sdk.es14.js.map +1 -1
- package/dist/es/standards-sdk.es140.js +7 -159
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +86 -7
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +44 -65
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +30 -65
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +34 -28
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +28 -138
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +133 -37
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +34 -12281
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +12284 -12
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +958 -56
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es15.js +152 -151
- package/dist/es/standards-sdk.es15.js.map +1 -1
- package/dist/es/standards-sdk.es150.js +48 -74
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +72 -160
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +13 -318
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +120 -294
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +191 -322
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +294 -279
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +440 -63
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +331 -871
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +68 -231
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +218 -223
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +917 -136
- package/dist/es/standards-sdk.es16.js.map +1 -1
- package/dist/es/standards-sdk.es160.js +247 -0
- package/dist/es/standards-sdk.es160.js.map +1 -0
- package/dist/es/standards-sdk.es17.js +23 -944
- package/dist/es/standards-sdk.es17.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +2422 -24
- package/dist/es/standards-sdk.es18.js.map +1 -1
- package/dist/es/standards-sdk.es19.js +817 -2071
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es2.js +654 -189
- package/dist/es/standards-sdk.es2.js.map +1 -1
- package/dist/es/standards-sdk.es20.js +205 -1091
- package/dist/es/standards-sdk.es20.js.map +1 -1
- package/dist/es/standards-sdk.es21.js +858 -221
- package/dist/es/standards-sdk.es21.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +179 -903
- package/dist/es/standards-sdk.es22.js.map +1 -1
- package/dist/es/standards-sdk.es23.js +164 -179
- package/dist/es/standards-sdk.es23.js.map +1 -1
- package/dist/es/standards-sdk.es24.js +62 -118
- package/dist/es/standards-sdk.es24.js.map +1 -1
- package/dist/es/standards-sdk.es25.js +377 -52
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +36 -394
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es27.js +901 -50
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es28.js +134 -902
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es29.js +7 -134
- package/dist/es/standards-sdk.es29.js.map +1 -1
- package/dist/es/standards-sdk.es3.js +63 -680
- package/dist/es/standards-sdk.es3.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +344 -7
- package/dist/es/standards-sdk.es30.js.map +1 -1
- package/dist/es/standards-sdk.es31.js +302 -287
- package/dist/es/standards-sdk.es31.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +94 -322
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es33.js +458 -101
- package/dist/es/standards-sdk.es33.js.map +1 -1
- package/dist/es/standards-sdk.es34.js +132 -451
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es35.js +216 -130
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +273 -195
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +148 -87
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es38.js +183 -320
- package/dist/es/standards-sdk.es38.js.map +1 -1
- package/dist/es/standards-sdk.es39.js +238 -161
- package/dist/es/standards-sdk.es39.js.map +1 -1
- package/dist/es/standards-sdk.es4.js +425 -63
- package/dist/es/standards-sdk.es4.js.map +1 -1
- package/dist/es/standards-sdk.es40.js +136 -254
- package/dist/es/standards-sdk.es40.js.map +1 -1
- package/dist/es/standards-sdk.es41.js +225 -176
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es42.js +199 -261
- package/dist/es/standards-sdk.es42.js.map +1 -1
- package/dist/es/standards-sdk.es43.js +237 -199
- package/dist/es/standards-sdk.es43.js.map +1 -1
- package/dist/es/standards-sdk.es44.js +209 -201
- package/dist/es/standards-sdk.es44.js.map +1 -1
- package/dist/es/standards-sdk.es45.js +305 -201
- package/dist/es/standards-sdk.es45.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +371 -261
- package/dist/es/standards-sdk.es46.js.map +1 -1
- package/dist/es/standards-sdk.es47.js +316 -371
- package/dist/es/standards-sdk.es47.js.map +1 -1
- package/dist/es/standards-sdk.es48.js +404 -336
- package/dist/es/standards-sdk.es48.js.map +1 -1
- package/dist/es/standards-sdk.es49.js +83 -449
- package/dist/es/standards-sdk.es49.js.map +1 -1
- package/dist/es/standards-sdk.es5.js +232 -354
- package/dist/es/standards-sdk.es5.js.map +1 -1
- package/dist/es/standards-sdk.es50.js +179 -89
- package/dist/es/standards-sdk.es50.js.map +1 -1
- package/dist/es/standards-sdk.es51.js +231 -165
- package/dist/es/standards-sdk.es51.js.map +1 -1
- package/dist/es/standards-sdk.es52.js +25 -262
- package/dist/es/standards-sdk.es52.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +56 -26
- package/dist/es/standards-sdk.es53.js.map +1 -1
- package/dist/es/standards-sdk.es54.js +12 -57
- package/dist/es/standards-sdk.es54.js.map +1 -1
- package/dist/es/standards-sdk.es55.js +49 -12
- package/dist/es/standards-sdk.es55.js.map +1 -1
- package/dist/es/standards-sdk.es56.js +115 -43
- package/dist/es/standards-sdk.es56.js.map +1 -1
- package/dist/es/standards-sdk.es57.js +42 -115
- package/dist/es/standards-sdk.es57.js.map +1 -1
- package/dist/es/standards-sdk.es58.js +52 -43
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +36 -50
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es6.js +125 -246
- package/dist/es/standards-sdk.es6.js.map +1 -1
- package/dist/es/standards-sdk.es60.js +207 -39
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +24 -200
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +87 -25
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +3 -51
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +100 -3
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +61 -62
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +17 -98
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +77 -19
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +458 -77
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +106 -240
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es7.js +28 -183
- package/dist/es/standards-sdk.es7.js.map +1 -1
- package/dist/es/standards-sdk.es70.js +170 -286
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +71 -207
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +71 -72
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +143 -71
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +62 -136
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +380 -45
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +222 -130
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +320 -444
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +88 -370
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +125 -89
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es8.js +80 -29
- package/dist/es/standards-sdk.es8.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +8 -125
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +45 -6
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +98 -44
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +331 -84
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +93 -160
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +55 -275
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +43 -55
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +145 -22
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +34 -47
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +22 -57
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es9.js +104 -80
- package/dist/es/standards-sdk.es9.js.map +1 -1
- package/dist/es/standards-sdk.es90.js +23 -28
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +238 -23
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +265 -152
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +95 -68
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +124 -136
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +42 -138
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +259 -42
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +82 -243
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +48 -47
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +29 -100
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
- package/dist/es/utils/crypto-env.d.ts.map +1 -1
- package/dist/es/utils/dynamic-import.d.ts +5 -1
- package/dist/es/utils/dynamic-import.d.ts.map +1 -1
- package/dist/es/utils/hash-adapter.d.ts.map +1 -1
- package/package.json +8 -7
- package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
- package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
- package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
- package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
|
@@ -1,72 +1,407 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
class HCS20BaseClient {
|
|
1
|
+
import { TopicMessageSubmitTransaction, TopicId, Hbar } from "@hashgraph/sdk";
|
|
2
|
+
import { HCS20BaseClient } from "./standards-sdk.es74.js";
|
|
3
|
+
import { PointsValidationError, TopicRegistrationError } from "./standards-sdk.es73.js";
|
|
4
|
+
import { BrowserHCS2Client } from "./standards-sdk.es69.js";
|
|
5
|
+
class BrowserHCS20Client extends HCS20BaseClient {
|
|
6
6
|
constructor(config) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
);
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
7
|
+
super({
|
|
8
|
+
network: config.network,
|
|
9
|
+
logger: config.logger,
|
|
10
|
+
mirrorNodeUrl: config.mirrorNodeUrl,
|
|
11
|
+
registryTopicId: config.registryTopicId,
|
|
12
|
+
publicTopicId: config.publicTopicId
|
|
13
|
+
});
|
|
14
|
+
this.hwc = config.hwc;
|
|
15
|
+
this.feeAmount = config.feeAmount || 20;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get operator account ID
|
|
19
|
+
*/
|
|
20
|
+
getOperatorId() {
|
|
21
|
+
const accountInfo = this.hwc.getAccountInfo();
|
|
22
|
+
if (!accountInfo?.accountId) {
|
|
23
|
+
throw new Error("Wallet not connected");
|
|
24
|
+
}
|
|
25
|
+
return accountInfo.accountId;
|
|
26
|
+
}
|
|
27
|
+
async createRegistryTopic() {
|
|
28
|
+
const hcs2Client = new BrowserHCS2Client({
|
|
29
|
+
hwc: this.hwc,
|
|
30
|
+
network: this.network
|
|
31
|
+
});
|
|
32
|
+
const topicCreateResponse = await hcs2Client.createRegistry();
|
|
33
|
+
if (!topicCreateResponse.success) {
|
|
34
|
+
throw new Error("Failed to create topic");
|
|
35
|
+
}
|
|
36
|
+
return topicCreateResponse.topicId;
|
|
16
37
|
}
|
|
17
38
|
/**
|
|
18
|
-
*
|
|
39
|
+
* Deploy new points
|
|
19
40
|
*/
|
|
20
|
-
|
|
41
|
+
async deployPoints(options) {
|
|
42
|
+
const operatorId = this.getOperatorId();
|
|
43
|
+
const { progressCallback } = options;
|
|
21
44
|
try {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
progressCallback?.({
|
|
46
|
+
stage: "creating-topic",
|
|
47
|
+
percentage: 20
|
|
48
|
+
});
|
|
49
|
+
let topicId;
|
|
50
|
+
if (options.usePrivateTopic) {
|
|
51
|
+
const publicKey = await this.mirrorNode.getPublicKey(operatorId);
|
|
52
|
+
const hcs2Client = new BrowserHCS2Client({
|
|
53
|
+
hwc: this.hwc,
|
|
54
|
+
network: this.network
|
|
55
|
+
});
|
|
56
|
+
const topicCreateResponse = await hcs2Client.createRegistry({
|
|
57
|
+
submitKey: publicKey.toString(),
|
|
58
|
+
adminKey: publicKey.toString()
|
|
59
|
+
});
|
|
60
|
+
if (!topicCreateResponse.success) {
|
|
61
|
+
throw new Error("Failed to create topic");
|
|
62
|
+
}
|
|
63
|
+
topicId = topicCreateResponse.topicId;
|
|
64
|
+
this.logger.info(`Created private topic: ${topicId}`);
|
|
65
|
+
} else {
|
|
66
|
+
topicId = this.publicTopicId;
|
|
67
|
+
}
|
|
68
|
+
progressCallback?.({
|
|
69
|
+
stage: "submitting-deploy",
|
|
70
|
+
percentage: 50,
|
|
71
|
+
topicId
|
|
72
|
+
});
|
|
73
|
+
const deployMessage = {
|
|
74
|
+
p: "hcs-20",
|
|
75
|
+
op: "deploy",
|
|
76
|
+
name: options.name,
|
|
77
|
+
tick: this.normalizeTick(options.tick),
|
|
78
|
+
max: options.maxSupply,
|
|
79
|
+
lim: options.limitPerMint,
|
|
80
|
+
metadata: options.metadata,
|
|
81
|
+
m: options.topicMemo
|
|
82
|
+
};
|
|
83
|
+
const validation = this.validateMessage(deployMessage);
|
|
84
|
+
if (!validation.valid) {
|
|
85
|
+
throw new PointsValidationError(
|
|
86
|
+
"Invalid deploy message",
|
|
87
|
+
validation.errors
|
|
28
88
|
);
|
|
29
|
-
return { valid: false, errors };
|
|
30
89
|
}
|
|
31
|
-
|
|
90
|
+
const deployResult = await this.submitPayload(
|
|
91
|
+
topicId,
|
|
92
|
+
deployMessage,
|
|
93
|
+
options.usePrivateTopic
|
|
94
|
+
);
|
|
95
|
+
const deployTxId = deployResult.transactionHash?.toString() || "";
|
|
96
|
+
progressCallback?.({
|
|
97
|
+
stage: "confirming",
|
|
98
|
+
percentage: 80,
|
|
99
|
+
topicId,
|
|
100
|
+
deployTxId
|
|
101
|
+
});
|
|
102
|
+
await new Promise((resolve) => setTimeout(resolve, 2e3));
|
|
103
|
+
progressCallback?.({
|
|
104
|
+
stage: "complete",
|
|
105
|
+
percentage: 100,
|
|
106
|
+
topicId,
|
|
107
|
+
deployTxId
|
|
108
|
+
});
|
|
109
|
+
return {
|
|
110
|
+
name: options.name,
|
|
111
|
+
tick: this.normalizeTick(options.tick),
|
|
112
|
+
maxSupply: options.maxSupply,
|
|
113
|
+
limitPerMint: options.limitPerMint,
|
|
114
|
+
metadata: options.metadata,
|
|
115
|
+
topicId,
|
|
116
|
+
deployerAccountId: operatorId,
|
|
117
|
+
currentSupply: "0",
|
|
118
|
+
deploymentTimestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
119
|
+
isPrivate: options.usePrivateTopic || false
|
|
120
|
+
};
|
|
121
|
+
} catch (error) {
|
|
122
|
+
progressCallback?.({
|
|
123
|
+
stage: "complete",
|
|
124
|
+
percentage: 100,
|
|
125
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
126
|
+
});
|
|
127
|
+
throw error;
|
|
32
128
|
}
|
|
33
129
|
}
|
|
34
130
|
/**
|
|
35
|
-
*
|
|
131
|
+
* Mint points
|
|
36
132
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
133
|
+
async mintPoints(options) {
|
|
134
|
+
const { progressCallback } = options;
|
|
135
|
+
try {
|
|
136
|
+
progressCallback?.({
|
|
137
|
+
stage: "validating",
|
|
138
|
+
percentage: 20
|
|
139
|
+
});
|
|
140
|
+
progressCallback?.({
|
|
141
|
+
stage: "submitting",
|
|
142
|
+
percentage: 50
|
|
143
|
+
});
|
|
144
|
+
const mintMessage = {
|
|
145
|
+
p: "hcs-20",
|
|
146
|
+
op: "mint",
|
|
147
|
+
tick: this.normalizeTick(options.tick),
|
|
148
|
+
amt: options.amount,
|
|
149
|
+
to: this.accountToString(options.to),
|
|
150
|
+
m: options.memo
|
|
151
|
+
};
|
|
152
|
+
const topicId = options.topicId || this.publicTopicId;
|
|
153
|
+
const mintResult = await this.submitPayload(topicId, mintMessage, false);
|
|
154
|
+
const mintTxId = mintResult.transactionHash?.toString() || "";
|
|
155
|
+
progressCallback?.({
|
|
156
|
+
stage: "confirming",
|
|
157
|
+
percentage: 80,
|
|
158
|
+
mintTxId
|
|
159
|
+
});
|
|
160
|
+
await new Promise((resolve) => setTimeout(resolve, 2e3));
|
|
161
|
+
progressCallback?.({
|
|
162
|
+
stage: "complete",
|
|
163
|
+
percentage: 100,
|
|
164
|
+
mintTxId
|
|
165
|
+
});
|
|
166
|
+
return {
|
|
167
|
+
id: mintTxId,
|
|
168
|
+
operation: "mint",
|
|
169
|
+
tick: this.normalizeTick(options.tick),
|
|
170
|
+
amount: options.amount,
|
|
171
|
+
to: this.accountToString(options.to),
|
|
172
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
173
|
+
sequenceNumber: 0,
|
|
174
|
+
topicId,
|
|
175
|
+
transactionId: mintTxId,
|
|
176
|
+
memo: options.memo
|
|
177
|
+
};
|
|
178
|
+
} catch (error) {
|
|
179
|
+
progressCallback?.({
|
|
180
|
+
stage: "complete",
|
|
181
|
+
percentage: 100,
|
|
182
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
183
|
+
});
|
|
184
|
+
throw error;
|
|
185
|
+
}
|
|
39
186
|
}
|
|
40
187
|
/**
|
|
41
|
-
*
|
|
188
|
+
* Transfer points
|
|
42
189
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
190
|
+
async transferPoints(options) {
|
|
191
|
+
const { progressCallback } = options;
|
|
192
|
+
try {
|
|
193
|
+
progressCallback?.({
|
|
194
|
+
stage: "validating-balance",
|
|
195
|
+
percentage: 20
|
|
196
|
+
});
|
|
197
|
+
progressCallback?.({
|
|
198
|
+
stage: "submitting",
|
|
199
|
+
percentage: 50
|
|
200
|
+
});
|
|
201
|
+
const transferMessage = {
|
|
202
|
+
p: "hcs-20",
|
|
203
|
+
op: "transfer",
|
|
204
|
+
tick: this.normalizeTick(options.tick),
|
|
205
|
+
amt: options.amount,
|
|
206
|
+
from: this.accountToString(options.from),
|
|
207
|
+
to: this.accountToString(options.to),
|
|
208
|
+
m: options.memo
|
|
209
|
+
};
|
|
210
|
+
const topicId = options.topicId || this.publicTopicId;
|
|
211
|
+
const transferResult = await this.submitPayload(
|
|
212
|
+
topicId,
|
|
213
|
+
transferMessage,
|
|
214
|
+
false
|
|
215
|
+
);
|
|
216
|
+
const transferTxId = transferResult.transactionHash?.toString() || "";
|
|
217
|
+
progressCallback?.({
|
|
218
|
+
stage: "confirming",
|
|
219
|
+
percentage: 80,
|
|
220
|
+
transferTxId
|
|
221
|
+
});
|
|
222
|
+
await new Promise((resolve) => setTimeout(resolve, 2e3));
|
|
223
|
+
progressCallback?.({
|
|
224
|
+
stage: "complete",
|
|
225
|
+
percentage: 100,
|
|
226
|
+
transferTxId
|
|
227
|
+
});
|
|
228
|
+
return {
|
|
229
|
+
id: transferTxId,
|
|
230
|
+
operation: "transfer",
|
|
231
|
+
tick: this.normalizeTick(options.tick),
|
|
232
|
+
amount: options.amount,
|
|
233
|
+
from: this.accountToString(options.from),
|
|
234
|
+
to: this.accountToString(options.to),
|
|
235
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
236
|
+
sequenceNumber: 0,
|
|
237
|
+
topicId,
|
|
238
|
+
transactionId: transferTxId,
|
|
239
|
+
memo: options.memo
|
|
240
|
+
};
|
|
241
|
+
} catch (error) {
|
|
242
|
+
progressCallback?.({
|
|
243
|
+
stage: "complete",
|
|
244
|
+
percentage: 100,
|
|
245
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
246
|
+
});
|
|
247
|
+
throw error;
|
|
49
248
|
}
|
|
50
|
-
return account.toString();
|
|
51
249
|
}
|
|
52
250
|
/**
|
|
53
|
-
*
|
|
251
|
+
* Burn points
|
|
54
252
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
253
|
+
async burnPoints(options) {
|
|
254
|
+
const { progressCallback } = options;
|
|
255
|
+
try {
|
|
256
|
+
progressCallback?.({
|
|
257
|
+
stage: "validating-balance",
|
|
258
|
+
percentage: 20
|
|
259
|
+
});
|
|
260
|
+
progressCallback?.({
|
|
261
|
+
stage: "submitting",
|
|
262
|
+
percentage: 50
|
|
263
|
+
});
|
|
264
|
+
const burnMessage = {
|
|
265
|
+
p: "hcs-20",
|
|
266
|
+
op: "burn",
|
|
267
|
+
tick: this.normalizeTick(options.tick),
|
|
268
|
+
amt: options.amount,
|
|
269
|
+
from: this.accountToString(options.from),
|
|
270
|
+
m: options.memo
|
|
271
|
+
};
|
|
272
|
+
const topicId = options.topicId || this.publicTopicId;
|
|
273
|
+
const burnResult = await this.submitPayload(topicId, burnMessage, false);
|
|
274
|
+
const burnTxId = burnResult.transactionHash?.toString() || "";
|
|
275
|
+
progressCallback?.({
|
|
276
|
+
stage: "confirming",
|
|
277
|
+
percentage: 80,
|
|
278
|
+
burnTxId
|
|
279
|
+
});
|
|
280
|
+
await new Promise((resolve) => setTimeout(resolve, 2e3));
|
|
281
|
+
progressCallback?.({
|
|
282
|
+
stage: "complete",
|
|
283
|
+
percentage: 100,
|
|
284
|
+
burnTxId
|
|
285
|
+
});
|
|
286
|
+
return {
|
|
287
|
+
id: burnTxId,
|
|
288
|
+
operation: "burn",
|
|
289
|
+
tick: this.normalizeTick(options.tick),
|
|
290
|
+
amount: options.amount,
|
|
291
|
+
from: this.accountToString(options.from),
|
|
292
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
293
|
+
sequenceNumber: 0,
|
|
294
|
+
topicId,
|
|
295
|
+
transactionId: burnTxId,
|
|
296
|
+
memo: options.memo
|
|
297
|
+
};
|
|
298
|
+
} catch (error) {
|
|
299
|
+
progressCallback?.({
|
|
300
|
+
stage: "complete",
|
|
301
|
+
percentage: 100,
|
|
302
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
303
|
+
});
|
|
304
|
+
throw error;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Register a topic in the registry
|
|
309
|
+
*/
|
|
310
|
+
async registerTopic(options) {
|
|
311
|
+
const { progressCallback } = options;
|
|
312
|
+
try {
|
|
313
|
+
progressCallback?.({
|
|
314
|
+
stage: "validating",
|
|
315
|
+
percentage: 20
|
|
316
|
+
});
|
|
317
|
+
const registerMessage = {
|
|
318
|
+
p: "hcs-20",
|
|
319
|
+
op: "register",
|
|
320
|
+
name: options.name,
|
|
321
|
+
metadata: options.metadata,
|
|
322
|
+
private: options.isPrivate,
|
|
323
|
+
t_id: this.topicToString(options.topicId),
|
|
324
|
+
m: options.memo
|
|
325
|
+
};
|
|
326
|
+
const validation = this.validateMessage(registerMessage);
|
|
327
|
+
if (!validation.valid) {
|
|
328
|
+
throw new PointsValidationError(
|
|
329
|
+
"Invalid register message",
|
|
330
|
+
validation.errors
|
|
331
|
+
);
|
|
59
332
|
}
|
|
60
|
-
|
|
333
|
+
progressCallback?.({
|
|
334
|
+
stage: "submitting",
|
|
335
|
+
percentage: 50
|
|
336
|
+
});
|
|
337
|
+
const registerResult = await this.submitPayload(
|
|
338
|
+
this.registryTopicId,
|
|
339
|
+
registerMessage,
|
|
340
|
+
false
|
|
341
|
+
);
|
|
342
|
+
const registerTxId = registerResult.transactionHash?.toString() || "";
|
|
343
|
+
progressCallback?.({
|
|
344
|
+
stage: "confirming",
|
|
345
|
+
percentage: 80,
|
|
346
|
+
registerTxId
|
|
347
|
+
});
|
|
348
|
+
await new Promise((resolve) => setTimeout(resolve, 2e3));
|
|
349
|
+
progressCallback?.({
|
|
350
|
+
stage: "complete",
|
|
351
|
+
percentage: 100,
|
|
352
|
+
registerTxId
|
|
353
|
+
});
|
|
354
|
+
} catch (error) {
|
|
355
|
+
progressCallback?.({
|
|
356
|
+
stage: "complete",
|
|
357
|
+
percentage: 100,
|
|
358
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
359
|
+
});
|
|
360
|
+
throw new TopicRegistrationError(
|
|
361
|
+
error instanceof Error ? error.message : "Unknown error",
|
|
362
|
+
this.topicToString(options.topicId)
|
|
363
|
+
);
|
|
61
364
|
}
|
|
62
|
-
return topic.toString();
|
|
63
365
|
}
|
|
64
366
|
/**
|
|
65
|
-
*
|
|
66
|
-
* The HCS-20 clients only handle message submission. Use HCS20PointsIndexer for state management.
|
|
367
|
+
* Submit payload to topic using HWC
|
|
67
368
|
*/
|
|
369
|
+
async submitPayload(topicId, payload, requiresFee) {
|
|
370
|
+
this.logger.debug(`Submitting payload to topic ${topicId}`);
|
|
371
|
+
let message;
|
|
372
|
+
if (typeof payload === "string") {
|
|
373
|
+
message = payload;
|
|
374
|
+
} else {
|
|
375
|
+
message = JSON.stringify(payload);
|
|
376
|
+
}
|
|
377
|
+
const transaction = new TopicMessageSubmitTransaction().setTopicId(TopicId.fromString(topicId)).setMessage(message);
|
|
378
|
+
if (requiresFee) {
|
|
379
|
+
this.logger.info(
|
|
380
|
+
"Topic requires fee payment, setting max transaction fee"
|
|
381
|
+
);
|
|
382
|
+
transaction.setMaxTransactionFee(new Hbar(this.feeAmount));
|
|
383
|
+
}
|
|
384
|
+
const transactionResponse = await this.hwc.executeTransactionWithErrorHandling(
|
|
385
|
+
transaction,
|
|
386
|
+
false
|
|
387
|
+
);
|
|
388
|
+
if (transactionResponse?.error) {
|
|
389
|
+
this.logger.error(
|
|
390
|
+
`Failed to submit payload: ${transactionResponse.error}`
|
|
391
|
+
);
|
|
392
|
+
throw new Error(`Failed to submit payload: ${transactionResponse.error}`);
|
|
393
|
+
}
|
|
394
|
+
if (!transactionResponse?.result) {
|
|
395
|
+
this.logger.error(
|
|
396
|
+
"Failed to submit message: receipt is null or undefined"
|
|
397
|
+
);
|
|
398
|
+
throw new Error("Failed to submit message: receipt is null or undefined");
|
|
399
|
+
}
|
|
400
|
+
this.logger.debug("Payload submitted successfully via HWC");
|
|
401
|
+
return transactionResponse.result;
|
|
402
|
+
}
|
|
68
403
|
}
|
|
69
404
|
export {
|
|
70
|
-
|
|
405
|
+
BrowserHCS20Client
|
|
71
406
|
};
|
|
72
407
|
//# sourceMappingURL=standards-sdk.es75.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es75.js","sources":["../../src/hcs-20/base-client.ts"],"sourcesContent":["/**\n * Base client for HCS-20 Auditable Points operations\n */\n\nimport { AccountId, TopicId } from '@hashgraph/sdk';\nimport { Logger, ILogger } from '../utils/logger';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport type { NetworkType } from '../utils/types';\nimport {\n HCS20ClientConfig,\n HCS20MessageSchema,\n PointsInfo,\n PointsTransaction,\n HCS20_CONSTANTS,\n DeployPointsOptions,\n MintPointsOptions,\n TransferPointsOptions,\n BurnPointsOptions,\n RegisterTopicOptions,\n} from './types';\nimport { InvalidAccountFormatError } from './errors';\n\n/**\n * Abstract base class for HCS-20 clients\n */\nexport abstract class HCS20BaseClient {\n protected logger: ILogger;\n protected mirrorNode: HederaMirrorNode;\n protected network: NetworkType;\n protected registryTopicId: string;\n protected publicTopicId: string;\n\n constructor(config: HCS20ClientConfig) {\n this.logger = config.logger || new Logger({ module: 'HCS20Client' });\n this.network = config.network === 'mainnet' ? 'mainnet' : 'testnet';\n this.mirrorNode = new HederaMirrorNode(\n this.network,\n this.logger,\n config.mirrorNodeUrl ? { customUrl: config.mirrorNodeUrl } : undefined,\n );\n this.registryTopicId =\n config.registryTopicId || HCS20_CONSTANTS.REGISTRY_TOPIC_ID;\n this.publicTopicId =\n config.publicTopicId || HCS20_CONSTANTS.PUBLIC_TOPIC_ID;\n }\n\n /**\n * Deploy new points\n */\n abstract deployPoints(options: DeployPointsOptions): Promise<PointsInfo>;\n\n /**\n * Mint points\n */\n abstract mintPoints(options: MintPointsOptions): Promise<PointsTransaction>;\n\n /**\n * Transfer points\n */\n abstract transferPoints(\n options: TransferPointsOptions,\n ): Promise<PointsTransaction>;\n\n /**\n * Burn points\n */\n abstract burnPoints(options: BurnPointsOptions): Promise<PointsTransaction>;\n\n /**\n * Register a topic in the registry\n */\n abstract registerTopic(options: RegisterTopicOptions): Promise<void>;\n\n /**\n * Validate HCS-20 message using Zod schema\n */\n protected validateMessage(message: any): {\n valid: boolean;\n errors?: string[];\n } {\n try {\n HCS20MessageSchema.parse(message);\n return { valid: true };\n } catch (error: any) {\n if (error.errors) {\n const errors = error.errors.map(\n (e: any) => `${e.path.join('.')}: ${e.message}`,\n );\n return { valid: false, errors };\n }\n return { valid: false, errors: [error.message] };\n }\n }\n\n /**\n * Normalize tick to lowercase and trimmed\n */\n protected normalizeTick(tick: string): string {\n return tick.toLowerCase().trim();\n }\n\n /**\n * Convert account to string format\n */\n protected accountToString(account: string | AccountId): string {\n if (typeof account === 'string') {\n if (!HCS20_CONSTANTS.HEDERA_ACCOUNT_REGEX.test(account)) {\n throw new InvalidAccountFormatError(account);\n }\n return account;\n }\n return account.toString();\n }\n\n /**\n * Convert topic to string format\n */\n protected topicToString(topic: string | TopicId): string {\n if (typeof topic === 'string') {\n if (!HCS20_CONSTANTS.HEDERA_ACCOUNT_REGEX.test(topic)) {\n throw new InvalidAccountFormatError(topic);\n }\n return topic;\n }\n return topic.toString();\n }\n\n /**\n * NOTE: State queries (getPointsInfo, getBalance, etc.) require an external indexing service.\n * The HCS-20 clients only handle message submission. Use HCS20PointsIndexer for state management.\n */\n}\n"],"names":[],"mappings":";;;;AAyBO,MAAe,gBAAgB;AAAA,EAOpC,YAAY,QAA2B;AACrC,SAAK,SAAS,OAAO,UAAU,IAAI,OAAO,EAAE,QAAQ,eAAe;AACnE,SAAK,UAAU,OAAO,YAAY,YAAY,YAAY;AAC1D,SAAK,aAAa,IAAI;AAAA,MACpB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO,gBAAgB,EAAE,WAAW,OAAO,kBAAkB;AAAA,IAAA;AAE/D,SAAK,kBACH,OAAO,mBAAmB,gBAAgB;AAC5C,SAAK,gBACH,OAAO,iBAAiB,gBAAgB;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAgCU,gBAAgB,SAGxB;AACA,QAAI;AACF,yBAAmB,MAAM,OAAO;AAChC,aAAO,EAAE,OAAO,KAAA;AAAA,IAClB,SAAS,OAAY;AACnB,UAAI,MAAM,QAAQ;AAChB,cAAM,SAAS,MAAM,OAAO;AAAA,UAC1B,CAAC,MAAW,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,OAAO;AAAA,QAAA;AAE/C,eAAO,EAAE,OAAO,OAAO,OAAA;AAAA,MACzB;AACA,aAAO,EAAE,OAAO,OAAO,QAAQ,CAAC,MAAM,OAAO,EAAA;AAAA,IAC/C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKU,cAAc,MAAsB;AAC5C,WAAO,KAAK,YAAA,EAAc,KAAA;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKU,gBAAgB,SAAqC;AAC7D,QAAI,OAAO,YAAY,UAAU;AAC/B,UAAI,CAAC,gBAAgB,qBAAqB,KAAK,OAAO,GAAG;AACvD,cAAM,IAAI,0BAA0B,OAAO;AAAA,MAC7C;AACA,aAAO;AAAA,IACT;AACA,WAAO,QAAQ,SAAA;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA,EAKU,cAAc,OAAiC;AACvD,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,CAAC,gBAAgB,qBAAqB,KAAK,KAAK,GAAG;AACrD,cAAM,IAAI,0BAA0B,KAAK;AAAA,MAC3C;AACA,aAAO;AAAA,IACT;AACA,WAAO,MAAM,SAAA;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAMF;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es75.js","sources":["../../src/hcs-20/browser.ts"],"sourcesContent":["/**\n * Browser implementation of HCS-20 client using Hashinals WalletConnect\n */\n\nimport {\n TopicId,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n TransactionReceipt,\n Hbar,\n AccountId,\n} from '@hashgraph/sdk';\nimport { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport { HCS20BaseClient } from './base-client';\nimport {\n DeployPointsOptions,\n MintPointsOptions,\n TransferPointsOptions,\n BurnPointsOptions,\n RegisterTopicOptions,\n PointsInfo,\n PointsTransaction,\n HCS20DeployMessage,\n HCS20MintMessage,\n HCS20TransferMessage,\n HCS20BurnMessage,\n HCS20RegisterMessage,\n} from './types';\nimport {\n PointsDeploymentError,\n TopicRegistrationError,\n PointsValidationError,\n} from './errors';\nimport { BrowserHCS2Client } from '../hcs-2/browser';\n\n/**\n * Browser-specific HCS-20 client configuration\n */\nexport interface BrowserHCS20Config {\n network: 'mainnet' | 'testnet';\n hwc: HashinalsWalletConnectSDK;\n mirrorNodeUrl?: string;\n logger?: any;\n registryTopicId?: string;\n publicTopicId?: string;\n feeAmount?: number;\n}\n\n/**\n * Browser HCS-20 client for managing auditable points\n */\nexport class BrowserHCS20Client extends HCS20BaseClient {\n private hwc: HashinalsWalletConnectSDK;\n private feeAmount: number;\n\n constructor(config: BrowserHCS20Config) {\n super({\n network: config.network,\n logger: config.logger,\n mirrorNodeUrl: config.mirrorNodeUrl,\n registryTopicId: config.registryTopicId,\n publicTopicId: config.publicTopicId,\n });\n\n this.hwc = config.hwc;\n this.feeAmount = config.feeAmount || 20;\n }\n\n /**\n * Get operator account ID\n */\n private getOperatorId(): string {\n const accountInfo = this.hwc.getAccountInfo();\n if (!accountInfo?.accountId) {\n throw new Error('Wallet not connected');\n }\n return accountInfo.accountId;\n }\n\n async createRegistryTopic(): Promise<string> {\n const hcs2Client = new BrowserHCS2Client({\n hwc: this.hwc,\n network: this.network,\n });\n\n const topicCreateResponse = await hcs2Client.createRegistry();\n\n if (!topicCreateResponse.success) {\n throw new Error('Failed to create topic');\n }\n\n return topicCreateResponse.topicId;\n }\n\n /**\n * Deploy new points\n */\n async deployPoints(options: DeployPointsOptions): Promise<PointsInfo> {\n const operatorId = this.getOperatorId();\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'creating-topic',\n percentage: 20,\n });\n\n let topicId: string;\n\n if (options.usePrivateTopic) {\n const publicKey = await this.mirrorNode.getPublicKey(operatorId);\n\n const hcs2Client = new BrowserHCS2Client({\n hwc: this.hwc,\n network: this.network,\n });\n\n const topicCreateResponse = await hcs2Client.createRegistry({\n submitKey: publicKey.toString(),\n adminKey: publicKey.toString(),\n });\n\n if (!topicCreateResponse.success) {\n throw new Error('Failed to create topic');\n }\n\n topicId = topicCreateResponse.topicId;\n this.logger.info(`Created private topic: ${topicId}`);\n } else {\n topicId = this.publicTopicId;\n }\n\n progressCallback?.({\n stage: 'submitting-deploy',\n percentage: 50,\n topicId,\n });\n\n const deployMessage: HCS20DeployMessage = {\n p: 'hcs-20',\n op: 'deploy',\n name: options.name,\n tick: this.normalizeTick(options.tick),\n max: options.maxSupply,\n lim: options.limitPerMint,\n metadata: options.metadata,\n m: options.topicMemo,\n };\n\n const validation = this.validateMessage(deployMessage);\n if (!validation.valid) {\n throw new PointsValidationError(\n 'Invalid deploy message',\n validation.errors!,\n );\n }\n\n const deployResult = await this.submitPayload(\n topicId,\n deployMessage,\n options.usePrivateTopic,\n );\n\n const deployTxId =\n (deployResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n topicId,\n deployTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n topicId,\n deployTxId,\n });\n\n return {\n name: options.name,\n tick: this.normalizeTick(options.tick),\n maxSupply: options.maxSupply,\n limitPerMint: options.limitPerMint,\n metadata: options.metadata,\n topicId,\n deployerAccountId: operatorId,\n currentSupply: '0',\n deploymentTimestamp: new Date().toISOString(),\n isPrivate: options.usePrivateTopic || false,\n };\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n }\n }\n\n /**\n * Mint points\n */\n async mintPoints(options: MintPointsOptions): Promise<PointsTransaction> {\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'validating',\n percentage: 20,\n });\n\n progressCallback?.({\n stage: 'submitting',\n percentage: 50,\n });\n\n const mintMessage: HCS20MintMessage = {\n p: 'hcs-20',\n op: 'mint',\n tick: this.normalizeTick(options.tick),\n amt: options.amount,\n to: this.accountToString(options.to),\n m: options.memo,\n };\n\n const topicId = (options as any).topicId || this.publicTopicId;\n const mintResult = await this.submitPayload(topicId, mintMessage, false);\n\n const mintTxId = (mintResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n mintTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n mintTxId,\n });\n\n return {\n id: mintTxId,\n operation: 'mint',\n tick: this.normalizeTick(options.tick),\n amount: options.amount,\n to: this.accountToString(options.to),\n timestamp: new Date().toISOString(),\n sequenceNumber: 0,\n topicId,\n transactionId: mintTxId,\n memo: options.memo,\n };\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n }\n }\n\n /**\n * Transfer points\n */\n async transferPoints(\n options: TransferPointsOptions,\n ): Promise<PointsTransaction> {\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'validating-balance',\n percentage: 20,\n });\n\n progressCallback?.({\n stage: 'submitting',\n percentage: 50,\n });\n\n const transferMessage: HCS20TransferMessage = {\n p: 'hcs-20',\n op: 'transfer',\n tick: this.normalizeTick(options.tick),\n amt: options.amount,\n from: this.accountToString(options.from),\n to: this.accountToString(options.to),\n m: options.memo,\n };\n\n const topicId = (options as any).topicId || this.publicTopicId;\n const transferResult = await this.submitPayload(\n topicId,\n transferMessage,\n false,\n );\n\n const transferTxId =\n (transferResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n transferTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n transferTxId,\n });\n\n return {\n id: transferTxId,\n operation: 'transfer',\n tick: this.normalizeTick(options.tick),\n amount: options.amount,\n from: this.accountToString(options.from),\n to: this.accountToString(options.to),\n timestamp: new Date().toISOString(),\n sequenceNumber: 0,\n topicId,\n transactionId: transferTxId,\n memo: options.memo,\n };\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n }\n }\n\n /**\n * Burn points\n */\n async burnPoints(options: BurnPointsOptions): Promise<PointsTransaction> {\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'validating-balance',\n percentage: 20,\n });\n\n progressCallback?.({\n stage: 'submitting',\n percentage: 50,\n });\n\n const burnMessage: HCS20BurnMessage = {\n p: 'hcs-20',\n op: 'burn',\n tick: this.normalizeTick(options.tick),\n amt: options.amount,\n from: this.accountToString(options.from),\n m: options.memo,\n };\n\n const topicId = (options as any).topicId || this.publicTopicId;\n const burnResult = await this.submitPayload(topicId, burnMessage, false);\n\n const burnTxId = (burnResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n burnTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n burnTxId,\n });\n\n return {\n id: burnTxId,\n operation: 'burn',\n tick: this.normalizeTick(options.tick),\n amount: options.amount,\n from: this.accountToString(options.from),\n timestamp: new Date().toISOString(),\n sequenceNumber: 0,\n topicId,\n transactionId: burnTxId,\n memo: options.memo,\n };\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n }\n }\n\n /**\n * Register a topic in the registry\n */\n async registerTopic(options: RegisterTopicOptions): Promise<void> {\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'validating',\n percentage: 20,\n });\n\n const registerMessage: HCS20RegisterMessage = {\n p: 'hcs-20',\n op: 'register',\n name: options.name,\n metadata: options.metadata,\n private: options.isPrivate,\n t_id: this.topicToString(options.topicId),\n m: options.memo,\n };\n\n const validation = this.validateMessage(registerMessage);\n if (!validation.valid) {\n throw new PointsValidationError(\n 'Invalid register message',\n validation.errors!,\n );\n }\n\n progressCallback?.({\n stage: 'submitting',\n percentage: 50,\n });\n\n const registerResult = await this.submitPayload(\n this.registryTopicId,\n registerMessage,\n false,\n );\n\n const registerTxId =\n (registerResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n registerTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n registerTxId,\n });\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw new TopicRegistrationError(\n error instanceof Error ? error.message : 'Unknown error',\n this.topicToString(options.topicId),\n );\n }\n }\n\n /**\n * Submit payload to topic using HWC\n */\n private async submitPayload(\n topicId: string,\n payload: object | string,\n requiresFee?: boolean,\n ): Promise<TransactionReceipt> {\n this.logger.debug(`Submitting payload to topic ${topicId}`);\n\n let message: string;\n if (typeof payload === 'string') {\n message = payload;\n } else {\n message = JSON.stringify(payload);\n }\n\n const transaction = new TopicMessageSubmitTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setMessage(message);\n\n if (requiresFee) {\n this.logger.info(\n 'Topic requires fee payment, setting max transaction fee',\n );\n transaction.setMaxTransactionFee(new Hbar(this.feeAmount));\n }\n\n const transactionResponse =\n await this.hwc.executeTransactionWithErrorHandling(\n transaction as any,\n false,\n );\n\n if (transactionResponse?.error) {\n this.logger.error(\n `Failed to submit payload: ${transactionResponse.error}`,\n );\n throw new Error(`Failed to submit payload: ${transactionResponse.error}`);\n }\n\n if (!transactionResponse?.result) {\n this.logger.error(\n 'Failed to submit message: receipt is null or undefined',\n );\n throw new Error('Failed to submit message: receipt is null or undefined');\n }\n\n this.logger.debug('Payload submitted successfully via HWC');\n return transactionResponse.result;\n }\n}\n"],"names":[],"mappings":";;;;AAmDO,MAAM,2BAA2B,gBAAgB;AAAA,EAItD,YAAY,QAA4B;AACtC,UAAM;AAAA,MACJ,SAAS,OAAO;AAAA,MAChB,QAAQ,OAAO;AAAA,MACf,eAAe,OAAO;AAAA,MACtB,iBAAiB,OAAO;AAAA,MACxB,eAAe,OAAO;AAAA,IAAA,CACvB;AAED,SAAK,MAAM,OAAO;AAClB,SAAK,YAAY,OAAO,aAAa;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKQ,gBAAwB;AAC9B,UAAM,cAAc,KAAK,IAAI,eAAA;AAC7B,QAAI,CAAC,aAAa,WAAW;AAC3B,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,WAAO,YAAY;AAAA,EACrB;AAAA,EAEA,MAAM,sBAAuC;AAC3C,UAAM,aAAa,IAAI,kBAAkB;AAAA,MACvC,KAAK,KAAK;AAAA,MACV,SAAS,KAAK;AAAA,IAAA,CACf;AAED,UAAM,sBAAsB,MAAM,WAAW,eAAA;AAE7C,QAAI,CAAC,oBAAoB,SAAS;AAChC,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AAEA,WAAO,oBAAoB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,aAAa,SAAmD;AACpE,UAAM,aAAa,KAAK,cAAA;AACxB,UAAM,EAAE,qBAAqB;AAE7B,QAAI;AACF,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA,CACb;AAED,UAAI;AAEJ,UAAI,QAAQ,iBAAiB;AAC3B,cAAM,YAAY,MAAM,KAAK,WAAW,aAAa,UAAU;AAE/D,cAAM,aAAa,IAAI,kBAAkB;AAAA,UACvC,KAAK,KAAK;AAAA,UACV,SAAS,KAAK;AAAA,QAAA,CACf;AAED,cAAM,sBAAsB,MAAM,WAAW,eAAe;AAAA,UAC1D,WAAW,UAAU,SAAA;AAAA,UACrB,UAAU,UAAU,SAAA;AAAA,QAAS,CAC9B;AAED,YAAI,CAAC,oBAAoB,SAAS;AAChC,gBAAM,IAAI,MAAM,wBAAwB;AAAA,QAC1C;AAEA,kBAAU,oBAAoB;AAC9B,aAAK,OAAO,KAAK,0BAA0B,OAAO,EAAE;AAAA,MACtD,OAAO;AACL,kBAAU,KAAK;AAAA,MACjB;AAEA,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,MAAA,CACD;AAED,YAAM,gBAAoC;AAAA,QACxC,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,MAAM,QAAQ;AAAA,QACd,MAAM,KAAK,cAAc,QAAQ,IAAI;AAAA,QACrC,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,UAAU,QAAQ;AAAA,QAClB,GAAG,QAAQ;AAAA,MAAA;AAGb,YAAM,aAAa,KAAK,gBAAgB,aAAa;AACrD,UAAI,CAAC,WAAW,OAAO;AACrB,cAAM,IAAI;AAAA,UACR;AAAA,UACA,WAAW;AAAA,QAAA;AAAA,MAEf;AAEA,YAAM,eAAe,MAAM,KAAK;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,QAAQ;AAAA,MAAA;AAGV,YAAM,aACH,aAAqB,iBAAiB,SAAA,KAAc;AAEvD,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,MAAA,CACD;AAED,YAAM,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,GAAI,CAAC;AAEtD,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,MAAA,CACD;AAED,aAAO;AAAA,QACL,MAAM,QAAQ;AAAA,QACd,MAAM,KAAK,cAAc,QAAQ,IAAI;AAAA,QACrC,WAAW,QAAQ;AAAA,QACnB,cAAc,QAAQ;AAAA,QACtB,UAAU,QAAQ;AAAA,QAClB;AAAA,QACA,mBAAmB;AAAA,QACnB,eAAe;AAAA,QACf,sBAAqB,oBAAI,KAAA,GAAO,YAAA;AAAA,QAChC,WAAW,QAAQ,mBAAmB;AAAA,MAAA;AAAA,IAE1C,SAAS,OAAO;AACd,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAAA,CACjD;AACD,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAW,SAAwD;AACvE,UAAM,EAAE,qBAAqB;AAE7B,QAAI;AACF,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA,CACb;AAED,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA,CACb;AAED,YAAM,cAAgC;AAAA,QACpC,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,MAAM,KAAK,cAAc,QAAQ,IAAI;AAAA,QACrC,KAAK,QAAQ;AAAA,QACb,IAAI,KAAK,gBAAgB,QAAQ,EAAE;AAAA,QACnC,GAAG,QAAQ;AAAA,MAAA;AAGb,YAAM,UAAW,QAAgB,WAAW,KAAK;AACjD,YAAM,aAAa,MAAM,KAAK,cAAc,SAAS,aAAa,KAAK;AAEvE,YAAM,WAAY,WAAmB,iBAAiB,SAAA,KAAc;AAEpE,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,MAAA,CACD;AAED,YAAM,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,GAAI,CAAC;AAEtD,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,MAAA,CACD;AAED,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,MAAM,KAAK,cAAc,QAAQ,IAAI;AAAA,QACrC,QAAQ,QAAQ;AAAA,QAChB,IAAI,KAAK,gBAAgB,QAAQ,EAAE;AAAA,QACnC,YAAW,oBAAI,KAAA,GAAO,YAAA;AAAA,QACtB,gBAAgB;AAAA,QAChB;AAAA,QACA,eAAe;AAAA,QACf,MAAM,QAAQ;AAAA,MAAA;AAAA,IAElB,SAAS,OAAO;AACd,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAAA,CACjD;AACD,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,eACJ,SAC4B;AAC5B,UAAM,EAAE,qBAAqB;AAE7B,QAAI;AACF,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA,CACb;AAED,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA,CACb;AAED,YAAM,kBAAwC;AAAA,QAC5C,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,MAAM,KAAK,cAAc,QAAQ,IAAI;AAAA,QACrC,KAAK,QAAQ;AAAA,QACb,MAAM,KAAK,gBAAgB,QAAQ,IAAI;AAAA,QACvC,IAAI,KAAK,gBAAgB,QAAQ,EAAE;AAAA,QACnC,GAAG,QAAQ;AAAA,MAAA;AAGb,YAAM,UAAW,QAAgB,WAAW,KAAK;AACjD,YAAM,iBAAiB,MAAM,KAAK;AAAA,QAChC;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAGF,YAAM,eACH,eAAuB,iBAAiB,SAAA,KAAc;AAEzD,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,MAAA,CACD;AAED,YAAM,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,GAAI,CAAC;AAEtD,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,MAAA,CACD;AAED,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,MAAM,KAAK,cAAc,QAAQ,IAAI;AAAA,QACrC,QAAQ,QAAQ;AAAA,QAChB,MAAM,KAAK,gBAAgB,QAAQ,IAAI;AAAA,QACvC,IAAI,KAAK,gBAAgB,QAAQ,EAAE;AAAA,QACnC,YAAW,oBAAI,KAAA,GAAO,YAAA;AAAA,QACtB,gBAAgB;AAAA,QAChB;AAAA,QACA,eAAe;AAAA,QACf,MAAM,QAAQ;AAAA,MAAA;AAAA,IAElB,SAAS,OAAO;AACd,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAAA,CACjD;AACD,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAW,SAAwD;AACvE,UAAM,EAAE,qBAAqB;AAE7B,QAAI;AACF,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA,CACb;AAED,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA,CACb;AAED,YAAM,cAAgC;AAAA,QACpC,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,MAAM,KAAK,cAAc,QAAQ,IAAI;AAAA,QACrC,KAAK,QAAQ;AAAA,QACb,MAAM,KAAK,gBAAgB,QAAQ,IAAI;AAAA,QACvC,GAAG,QAAQ;AAAA,MAAA;AAGb,YAAM,UAAW,QAAgB,WAAW,KAAK;AACjD,YAAM,aAAa,MAAM,KAAK,cAAc,SAAS,aAAa,KAAK;AAEvE,YAAM,WAAY,WAAmB,iBAAiB,SAAA,KAAc;AAEpE,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,MAAA,CACD;AAED,YAAM,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,GAAI,CAAC;AAEtD,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,MAAA,CACD;AAED,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,MAAM,KAAK,cAAc,QAAQ,IAAI;AAAA,QACrC,QAAQ,QAAQ;AAAA,QAChB,MAAM,KAAK,gBAAgB,QAAQ,IAAI;AAAA,QACvC,YAAW,oBAAI,KAAA,GAAO,YAAA;AAAA,QACtB,gBAAgB;AAAA,QAChB;AAAA,QACA,eAAe;AAAA,QACf,MAAM,QAAQ;AAAA,MAAA;AAAA,IAElB,SAAS,OAAO;AACd,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAAA,CACjD;AACD,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAAc,SAA8C;AAChE,UAAM,EAAE,qBAAqB;AAE7B,QAAI;AACF,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA,CACb;AAED,YAAM,kBAAwC;AAAA,QAC5C,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,MAAM,QAAQ;AAAA,QACd,UAAU,QAAQ;AAAA,QAClB,SAAS,QAAQ;AAAA,QACjB,MAAM,KAAK,cAAc,QAAQ,OAAO;AAAA,QACxC,GAAG,QAAQ;AAAA,MAAA;AAGb,YAAM,aAAa,KAAK,gBAAgB,eAAe;AACvD,UAAI,CAAC,WAAW,OAAO;AACrB,cAAM,IAAI;AAAA,UACR;AAAA,UACA,WAAW;AAAA,QAAA;AAAA,MAEf;AAEA,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA,CACb;AAED,YAAM,iBAAiB,MAAM,KAAK;AAAA,QAChC,KAAK;AAAA,QACL;AAAA,QACA;AAAA,MAAA;AAGF,YAAM,eACH,eAAuB,iBAAiB,SAAA,KAAc;AAEzD,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,MAAA,CACD;AAED,YAAM,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,GAAI,CAAC;AAEtD,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ;AAAA,MAAA,CACD;AAAA,IACH,SAAS,OAAO;AACd,yBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAAA,CACjD;AACD,YAAM,IAAI;AAAA,QACR,iBAAiB,QAAQ,MAAM,UAAU;AAAA,QACzC,KAAK,cAAc,QAAQ,OAAO;AAAA,MAAA;AAAA,IAEtC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,cACZ,SACA,SACA,aAC6B;AAC7B,SAAK,OAAO,MAAM,+BAA+B,OAAO,EAAE;AAE1D,QAAI;AACJ,QAAI,OAAO,YAAY,UAAU;AAC/B,gBAAU;AAAA,IACZ,OAAO;AACL,gBAAU,KAAK,UAAU,OAAO;AAAA,IAClC;AAEA,UAAM,cAAc,IAAI,8BAAA,EACrB,WAAW,QAAQ,WAAW,OAAO,CAAC,EACtC,WAAW,OAAO;AAErB,QAAI,aAAa;AACf,WAAK,OAAO;AAAA,QACV;AAAA,MAAA;AAEF,kBAAY,qBAAqB,IAAI,KAAK,KAAK,SAAS,CAAC;AAAA,IAC3D;AAEA,UAAM,sBACJ,MAAM,KAAK,IAAI;AAAA,MACb;AAAA,MACA;AAAA,IAAA;AAGJ,QAAI,qBAAqB,OAAO;AAC9B,WAAK,OAAO;AAAA,QACV,6BAA6B,oBAAoB,KAAK;AAAA,MAAA;AAExD,YAAM,IAAI,MAAM,6BAA6B,oBAAoB,KAAK,EAAE;AAAA,IAC1E;AAEA,QAAI,CAAC,qBAAqB,QAAQ;AAChC,WAAK,OAAO;AAAA,QACV;AAAA,MAAA;AAEF,YAAM,IAAI,MAAM,wDAAwD;AAAA,IAC1E;AAEA,SAAK,OAAO,MAAM,wCAAwC;AAC1D,WAAO,oBAAoB;AAAA,EAC7B;AACF;"}
|