@hashgraphonline/standards-sdk 0.1.143 → 0.1.144-feat-solana-register.canary.5001619.81
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-12/validation/schemas.d.ts +8 -8
- 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/hcs-21/types.d.ts +75 -75
- package/dist/cjs/index.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 +70 -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/feedback.d.ts +2 -0
- package/dist/cjs/services/registry-broker/client/feedback.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 -205
- package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
- 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 +2509 -816
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/types.d.ts +64 -2
- package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +3 -3
- 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-12/validation/schemas.d.ts +8 -8
- 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/hcs-21/types.d.ts +75 -75
- package/dist/es/index.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 +70 -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/feedback.d.ts +2 -0
- package/dist/es/services/registry-broker/client/feedback.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 -205
- package/dist/es/services/registry-broker/client.d.ts.map +1 -1
- 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 +2509 -816
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/services/registry-broker/types.d.ts +64 -2
- package/dist/es/services/registry-broker/types.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +148 -133
- 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 -160
- 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 +184 -2190
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +100 -63
- 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 +112 -78
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +232 -144
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +181 -8
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +118 -82
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +322 -61
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +464 -28
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +14 -135
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +78 -39
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +85 -764
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +135 -12250
- 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 -56
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +72 -68
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +61 -13
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +30 -172
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +34 -322
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +28 -346
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +112 -427
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +40 -329
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +958 -76
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +12292 -0
- package/dist/es/standards-sdk.es149.js.map +1 -0
- 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 +59 -0
- package/dist/es/standards-sdk.es150.js.map +1 -0
- package/dist/es/standards-sdk.es151.js +87 -0
- package/dist/es/standards-sdk.es151.js.map +1 -0
- package/dist/es/standards-sdk.es152.js +20 -0
- package/dist/es/standards-sdk.es152.js.map +1 -0
- package/dist/es/standards-sdk.es153.js +175 -0
- package/dist/es/standards-sdk.es153.js.map +1 -0
- package/dist/es/standards-sdk.es154.js +325 -0
- package/dist/es/standards-sdk.es154.js.map +1 -0
- package/dist/es/standards-sdk.es155.js +349 -0
- package/dist/es/standards-sdk.es155.js.map +1 -0
- package/dist/es/standards-sdk.es156.js +456 -0
- package/dist/es/standards-sdk.es156.js.map +1 -0
- package/dist/es/standards-sdk.es157.js +334 -0
- package/dist/es/standards-sdk.es157.js.map +1 -0
- package/dist/es/standards-sdk.es158.js +79 -0
- package/dist/es/standards-sdk.es158.js.map +1 -0
- package/dist/es/standards-sdk.es159.js +242 -0
- package/dist/es/standards-sdk.es159.js.map +1 -0
- 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 -938
- 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 +826 -2075
- 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 -1086
- 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 -897
- 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 +274 -191
- 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 -195
- 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 -364
- 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 +16 -16
- 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,64 +1,204 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
1
|
+
import { Logger } from "./standards-sdk.es105.js";
|
|
2
|
+
class WasmBridge {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.wasm = null;
|
|
5
|
+
this.WASM_VECTOR_LEN = 0;
|
|
6
|
+
this.cachedUint8Memory = null;
|
|
7
|
+
this.cachedDataViewMemory = null;
|
|
8
|
+
this.textEncoder = new TextEncoder();
|
|
9
|
+
this.textDecoder = new TextDecoder("utf-8", {
|
|
10
|
+
ignoreBOM: true,
|
|
11
|
+
fatal: true
|
|
12
|
+
});
|
|
13
|
+
this.textDecoder.decode();
|
|
14
|
+
this.logger = Logger.getInstance({ module: "WasmBridge" });
|
|
15
|
+
}
|
|
16
|
+
setLogLevel(level) {
|
|
17
|
+
this.logger.setLogLevel(level);
|
|
18
|
+
}
|
|
19
|
+
get wasmInstance() {
|
|
20
|
+
if (!this.wasm) {
|
|
21
|
+
throw new Error("WASM not initialized");
|
|
22
|
+
}
|
|
23
|
+
return this.wasm;
|
|
24
|
+
}
|
|
25
|
+
getUint8Memory() {
|
|
26
|
+
if (!this.wasm) {
|
|
27
|
+
throw new Error("WASM not initialized");
|
|
28
|
+
}
|
|
29
|
+
if (this.cachedUint8Memory === null || this.cachedUint8Memory.byteLength === 0) {
|
|
30
|
+
this.cachedUint8Memory = new Uint8Array(this.wasm.memory.buffer);
|
|
31
|
+
}
|
|
32
|
+
return this.cachedUint8Memory;
|
|
33
|
+
}
|
|
34
|
+
getDataViewMemory() {
|
|
35
|
+
if (!this.wasm) {
|
|
36
|
+
throw new Error("WASM not initialized");
|
|
37
|
+
}
|
|
38
|
+
if (this.cachedDataViewMemory === null || this.cachedDataViewMemory.buffer !== this.wasm.memory.buffer) {
|
|
39
|
+
this.cachedDataViewMemory = new DataView(this.wasm.memory.buffer);
|
|
40
|
+
}
|
|
41
|
+
return this.cachedDataViewMemory;
|
|
42
|
+
}
|
|
43
|
+
encodeString(arg, view) {
|
|
44
|
+
if (arg.length === 0) {
|
|
45
|
+
return { read: 0, written: 0 };
|
|
46
|
+
}
|
|
47
|
+
const buf = this.textEncoder.encode(arg);
|
|
48
|
+
view.set(buf);
|
|
49
|
+
return { read: arg.length, written: buf.length };
|
|
50
|
+
}
|
|
51
|
+
passStringToWasm(arg, malloc, realloc) {
|
|
52
|
+
if (realloc === void 0) {
|
|
53
|
+
const buf = this.textEncoder.encode(arg);
|
|
54
|
+
const ptr2 = malloc(buf.length, 1);
|
|
55
|
+
const view = this.getUint8Memory();
|
|
56
|
+
view.set(buf, ptr2);
|
|
57
|
+
this.WASM_VECTOR_LEN = buf.length;
|
|
58
|
+
return ptr2;
|
|
59
|
+
}
|
|
60
|
+
let len = this.textEncoder.encode(arg).length;
|
|
61
|
+
let ptr = malloc(len, 1);
|
|
62
|
+
const mem = this.getUint8Memory();
|
|
63
|
+
let offset = 0;
|
|
64
|
+
for (; offset < len; offset++) {
|
|
65
|
+
const code = arg.charCodeAt(offset);
|
|
66
|
+
if (code > 127) break;
|
|
67
|
+
mem[ptr + offset] = code;
|
|
68
|
+
}
|
|
69
|
+
if (offset !== len) {
|
|
70
|
+
if (offset !== 0) {
|
|
71
|
+
arg = arg.slice(offset);
|
|
72
|
+
}
|
|
73
|
+
ptr = realloc(
|
|
74
|
+
ptr,
|
|
75
|
+
len,
|
|
76
|
+
len = offset + this.textEncoder.encode(arg).length * 3,
|
|
77
|
+
1
|
|
78
|
+
);
|
|
79
|
+
const view = this.getUint8Memory().subarray(ptr + offset, ptr + len);
|
|
80
|
+
const ret = this.encodeString(arg, view);
|
|
81
|
+
offset += ret.written;
|
|
82
|
+
}
|
|
83
|
+
this.WASM_VECTOR_LEN = offset;
|
|
84
|
+
return ptr;
|
|
85
|
+
}
|
|
86
|
+
getStringFromWasm(ptr, len) {
|
|
87
|
+
ptr = ptr >>> 0;
|
|
88
|
+
return this.textDecoder.decode(
|
|
89
|
+
this.getUint8Memory().subarray(ptr, ptr + len)
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
createWasmFunction(wasmFn) {
|
|
93
|
+
if (!this.wasm) {
|
|
94
|
+
throw new Error("WASM not initialized");
|
|
95
|
+
}
|
|
96
|
+
return (...args) => {
|
|
97
|
+
const retptr = this.wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
98
|
+
let deferred = [0, 0];
|
|
99
|
+
try {
|
|
100
|
+
const ptrLenPairs = args.map((arg) => {
|
|
101
|
+
const ptr = this.passStringToWasm(
|
|
102
|
+
arg,
|
|
103
|
+
this.wasm.__wbindgen_malloc,
|
|
104
|
+
this.wasm.__wbindgen_realloc
|
|
105
|
+
);
|
|
106
|
+
return [ptr, this.WASM_VECTOR_LEN];
|
|
107
|
+
});
|
|
108
|
+
const wasmArgs = [retptr, ...ptrLenPairs.flat()];
|
|
109
|
+
wasmFn.apply(this.wasm, wasmArgs);
|
|
110
|
+
const r0 = this.getDataViewMemory().getInt32(retptr + 4 * 0, true);
|
|
111
|
+
const r1 = this.getDataViewMemory().getInt32(retptr + 4 * 1, true);
|
|
112
|
+
deferred = [r0, r1];
|
|
113
|
+
return this.getStringFromWasm(r0, r1);
|
|
114
|
+
} finally {
|
|
115
|
+
this.wasm.__wbindgen_add_to_stack_pointer(16);
|
|
116
|
+
this.wasm.__wbindgen_free(deferred[0], deferred[1], 1);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
async initWasm(wasmBytes) {
|
|
121
|
+
const bridge = this;
|
|
122
|
+
const imports = {
|
|
123
|
+
__wbindgen_placeholder__: {
|
|
124
|
+
__wbindgen_throw: function(ptr, len) {
|
|
125
|
+
const message = bridge.getStringFromWasm(ptr, len);
|
|
126
|
+
bridge.logger.error(`WASM error: ${message}`);
|
|
127
|
+
throw new Error(message);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
try {
|
|
132
|
+
this.logger.debug("Compiling WASM module");
|
|
133
|
+
const wasmModule = await WebAssembly.compile(wasmBytes);
|
|
134
|
+
this.logger.debug("Instantiating WASM module");
|
|
135
|
+
const wasmInstance = await WebAssembly.instantiate(wasmModule, imports);
|
|
136
|
+
this.wasm = wasmInstance.exports;
|
|
137
|
+
this.logger.info("WASM module initialized successfully");
|
|
138
|
+
return this.wasm;
|
|
139
|
+
} catch (error) {
|
|
140
|
+
this.logger.error("Failed to initialize WASM module", error);
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
createStateData(wasmConfig, stateData = {}) {
|
|
145
|
+
let dynamicStateData = {};
|
|
146
|
+
if (wasmConfig?.c?.inputType?.stateData) {
|
|
147
|
+
if (stateData.latestRoundData && Object.keys(wasmConfig.c.inputType.stateData).every(
|
|
148
|
+
(key) => key in stateData.latestRoundData
|
|
149
|
+
)) {
|
|
150
|
+
dynamicStateData.latestRoundData = {};
|
|
151
|
+
Object.entries(wasmConfig.c.inputType.stateData).forEach(([key, _]) => {
|
|
152
|
+
dynamicStateData.latestRoundData[key] = String(
|
|
153
|
+
stateData.latestRoundData[key]
|
|
154
|
+
);
|
|
155
|
+
});
|
|
156
|
+
} else {
|
|
157
|
+
Object.entries(wasmConfig.c.inputType.stateData).forEach(
|
|
158
|
+
([key, type]) => {
|
|
159
|
+
const result = stateData[key];
|
|
160
|
+
if (result && typeof result === "object" && "values" in result && result.values.length > 0) {
|
|
161
|
+
dynamicStateData[key] = String(result.values[0]);
|
|
162
|
+
} else {
|
|
163
|
+
dynamicStateData[key] = this.getDefaultValueForType(
|
|
164
|
+
type
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return dynamicStateData;
|
|
172
|
+
}
|
|
173
|
+
getDefaultValueForType(type) {
|
|
174
|
+
if (type.startsWith("uint") || type.startsWith("int") || type === "number") {
|
|
175
|
+
return "0";
|
|
176
|
+
} else if (type === "bool") {
|
|
177
|
+
return "false";
|
|
178
|
+
} else {
|
|
179
|
+
return "";
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
executeWasm(stateData, messages) {
|
|
183
|
+
if (!this.wasm) {
|
|
184
|
+
this.logger.error("WASM not initialized");
|
|
185
|
+
throw new Error("WASM not initialized");
|
|
186
|
+
}
|
|
187
|
+
try {
|
|
188
|
+
this.logger.debug("Executing WASM with stateData", stateData);
|
|
189
|
+
const fn = this.createWasmFunction(this.wasmInstance.process_state);
|
|
190
|
+
return fn(JSON.stringify(stateData), JSON.stringify(messages));
|
|
191
|
+
} catch (error) {
|
|
192
|
+
this.logger.error("Error executing WASM", error);
|
|
193
|
+
throw error;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
getParams() {
|
|
197
|
+
const fn = this.createWasmFunction(this.wasmInstance.get_params);
|
|
198
|
+
return fn();
|
|
199
|
+
}
|
|
57
200
|
}
|
|
58
201
|
export {
|
|
59
|
-
|
|
60
|
-
buildHcs7EvmMessageTx,
|
|
61
|
-
buildHcs7SubmitMessageTx,
|
|
62
|
-
buildHcs7WasmMessageTx
|
|
202
|
+
WasmBridge
|
|
63
203
|
};
|
|
64
204
|
//# sourceMappingURL=standards-sdk.es13.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es13.js","sources":["../../src/hcs-7/tx.ts"],"sourcesContent":["import {\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n PublicKey,\n} from '@hashgraph/sdk';\nimport {\n buildMessageTx,\n buildTopicCreateTx,\n MaybeKey,\n} from '../common/tx/tx-utils';\nimport {\n HCS7ConfigType,\n HCS7EvmConfigMessage,\n HCS7Message,\n HCS7Operation,\n HCS7RegisterConfigInput,\n HCS7WasmConfigMessage,\n} from './types';\n\nexport function buildHcs7CreateRegistryTx(params: {\n ttl: number;\n submitKey?: MaybeKey;\n adminKey?: MaybeKey;\n operatorPublicKey?: PublicKey;\n}): TopicCreateTransaction {\n const memo = `hcs-7:indexed:${params.ttl}`;\n return buildTopicCreateTx({\n memo,\n submitKey: params.submitKey,\n adminKey: params.adminKey,\n operatorPublicKey: params.operatorPublicKey,\n });\n}\n\nexport function buildHcs7SubmitMessageTx(params: {\n topicId: string;\n message: HCS7Message;\n transactionMemo?: string;\n}): TopicMessageSubmitTransaction {\n const payload = {\n p: 'hcs-7',\n ...params.message,\n } as HCS7Message;\n return buildMessageTx({\n topicId: params.topicId,\n message: JSON.stringify(payload),\n transactionMemo: params.transactionMemo,\n });\n}\n\nexport function buildHcs7EvmMessageTx(params: {\n topicId: string;\n config: HCS7RegisterConfigInput & { type: HCS7ConfigType.EVM; memo?: string };\n transactionMemo?: string;\n}): TopicMessageSubmitTransaction {\n const payload: HCS7EvmConfigMessage = {\n p: 'hcs-7',\n op: HCS7Operation.REGISTER_CONFIG,\n t: HCS7ConfigType.EVM,\n c: {\n contractAddress: params.config.contractAddress,\n abi: params.config.abi,\n },\n m: params.config.memo ?? '',\n };\n return buildHcs7SubmitMessageTx({\n topicId: params.topicId,\n message: payload,\n transactionMemo: params.transactionMemo,\n });\n}\n\nexport function buildHcs7WasmMessageTx(params: {\n topicId: string;\n config: HCS7RegisterConfigInput & {\n type: HCS7ConfigType.WASM;\n memo?: string;\n };\n transactionMemo?: string;\n}): TopicMessageSubmitTransaction {\n const payload: HCS7WasmConfigMessage = {\n p: 'hcs-7',\n op: HCS7Operation.REGISTER_CONFIG,\n t: HCS7ConfigType.WASM,\n c: {\n wasmTopicId: params.config.wasmTopicId,\n inputType: params.config.inputType,\n outputType: params.config.outputType,\n },\n m: params.config.memo ?? '',\n };\n return buildHcs7SubmitMessageTx({\n topicId: params.topicId,\n message: payload,\n transactionMemo: params.transactionMemo,\n });\n}\n"],"names":[],"mappings":";;AAmBO,SAAS,0BAA0B,QAKf;AACzB,QAAM,OAAO,iBAAiB,OAAO,GAAG;AACxC,SAAO,mBAAmB;AAAA,IACxB;AAAA,IACA,WAAW,OAAO;AAAA,IAClB,UAAU,OAAO;AAAA,IACjB,mBAAmB,OAAO;AAAA,EAAA,CAC3B;AACH;AAEO,SAAS,yBAAyB,QAIP;AAChC,QAAM,UAAU;AAAA,IACd,GAAG;AAAA,IACH,GAAG,OAAO;AAAA,EAAA;AAEZ,SAAO,eAAe;AAAA,IACpB,SAAS,OAAO;AAAA,IAChB,SAAS,KAAK,UAAU,OAAO;AAAA,IAC/B,iBAAiB,OAAO;AAAA,EAAA,CACzB;AACH;AAEO,SAAS,sBAAsB,QAIJ;AAChC,QAAM,UAAgC;AAAA,IACpC,GAAG;AAAA,IACH,IAAI,cAAc;AAAA,IAClB,GAAG,eAAe;AAAA,IAClB,GAAG;AAAA,MACD,iBAAiB,OAAO,OAAO;AAAA,MAC/B,KAAK,OAAO,OAAO;AAAA,IAAA;AAAA,IAErB,GAAG,OAAO,OAAO,QAAQ;AAAA,EAAA;AAE3B,SAAO,yBAAyB;AAAA,IAC9B,SAAS,OAAO;AAAA,IAChB,SAAS;AAAA,IACT,iBAAiB,OAAO;AAAA,EAAA,CACzB;AACH;AAEO,SAAS,uBAAuB,QAOL;AAChC,QAAM,UAAiC;AAAA,IACrC,GAAG;AAAA,IACH,IAAI,cAAc;AAAA,IAClB,GAAG,eAAe;AAAA,IAClB,GAAG;AAAA,MACD,aAAa,OAAO,OAAO;AAAA,MAC3B,WAAW,OAAO,OAAO;AAAA,MACzB,YAAY,OAAO,OAAO;AAAA,IAAA;AAAA,IAE5B,GAAG,OAAO,OAAO,QAAQ;AAAA,EAAA;AAE3B,SAAO,yBAAyB;AAAA,IAC9B,SAAS,OAAO;AAAA,IAChB,SAAS;AAAA,IACT,iBAAiB,OAAO;AAAA,EAAA,CACzB;AACH;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es13.js","sources":["../../src/hcs-7/wasm-bridge.ts"],"sourcesContent":["import { Logger, ILogger } from '../utils/logger';\n\nexport interface BaseMessage {\n p: string;\n op: string;\n m: string;\n t?: string;\n t_id?: string;\n d?: Record<string, unknown>;\n}\n\nexport interface EVMConfig extends BaseMessage {\n c: {\n contractAddress: string;\n abi: {\n inputs: Array<{\n name: string;\n type: string;\n }>;\n name: string;\n outputs: Array<{\n name: string;\n type: string;\n }>;\n stateMutability: string;\n type: string;\n };\n };\n}\n\nexport interface WASMConfig extends BaseMessage {\n c: {\n wasmTopicId: string;\n inputType: {\n stateData: Record<string, string>;\n };\n outputType: {\n type: string;\n format: string;\n };\n };\n}\n\nexport interface WasmExports extends WebAssembly.Exports {\n __wbindgen_add_to_stack_pointer: (a: number) => number;\n __wbindgen_malloc: (a: number, b: number) => number;\n __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;\n __wbindgen_free: (a: number, b: number, c: number) => void;\n memory: WebAssembly.Memory;\n process_state: (state_json: string, messages_json: string) => string;\n get_params: () => string;\n [key: string]: any;\n}\n\nexport class WasmBridge {\n wasm: WasmExports | null = null;\n private WASM_VECTOR_LEN: number = 0;\n private cachedUint8Memory: Uint8Array | null = null;\n private cachedDataViewMemory: DataView | null = null;\n private readonly textEncoder: TextEncoder;\n private readonly textDecoder: TextDecoder;\n private logger: ILogger;\n\n constructor() {\n this.textEncoder = new TextEncoder();\n this.textDecoder = new TextDecoder('utf-8', {\n ignoreBOM: true,\n fatal: true,\n });\n this.textDecoder.decode();\n this.logger = Logger.getInstance({ module: 'WasmBridge' });\n }\n\n setLogLevel(level: 'debug' | 'info' | 'warn' | 'error'): void {\n this.logger.setLogLevel(level);\n }\n\n get wasmInstance(): WasmExports {\n if (!this.wasm) {\n throw new Error('WASM not initialized');\n }\n return this.wasm;\n }\n\n private getUint8Memory(): Uint8Array {\n if (!this.wasm) {\n throw new Error('WASM not initialized');\n }\n if (\n this.cachedUint8Memory === null ||\n this.cachedUint8Memory.byteLength === 0\n ) {\n this.cachedUint8Memory = new Uint8Array(this.wasm.memory.buffer);\n }\n return this.cachedUint8Memory;\n }\n\n private getDataViewMemory(): DataView {\n if (!this.wasm) {\n throw new Error('WASM not initialized');\n }\n if (\n this.cachedDataViewMemory === null ||\n this.cachedDataViewMemory.buffer !== this.wasm.memory.buffer\n ) {\n this.cachedDataViewMemory = new DataView(this.wasm.memory.buffer);\n }\n return this.cachedDataViewMemory;\n }\n\n private encodeString(\n arg: string,\n view: Uint8Array,\n ): { read: number; written: number } {\n if (arg.length === 0) {\n return { read: 0, written: 0 };\n }\n\n const buf = this.textEncoder.encode(arg);\n view.set(buf);\n return { read: arg.length, written: buf.length };\n }\n\n private passStringToWasm(\n arg: string,\n malloc: (a: number, b: number) => number,\n realloc?: (a: number, b: number, c: number, d: number) => number,\n ): number {\n if (realloc === undefined) {\n const buf = this.textEncoder.encode(arg);\n const ptr = malloc(buf.length, 1);\n const view = this.getUint8Memory();\n view.set(buf, ptr);\n this.WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = this.textEncoder.encode(arg).length;\n let ptr = malloc(len, 1);\n\n const mem = this.getUint8Memory();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7f) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(\n ptr,\n len,\n (len = offset + this.textEncoder.encode(arg).length * 3),\n 1,\n );\n const view = this.getUint8Memory().subarray(ptr + offset, ptr + len);\n const ret = this.encodeString(arg, view);\n\n offset += ret.written;\n }\n\n this.WASM_VECTOR_LEN = offset;\n return ptr;\n }\n\n private getStringFromWasm(ptr: number, len: number): string {\n ptr = ptr >>> 0;\n return this.textDecoder.decode(\n this.getUint8Memory().subarray(ptr, ptr + len),\n );\n }\n\n createWasmFunction(\n wasmFn: (...args: any[]) => any,\n ): (...args: string[]) => string {\n if (!this.wasm) {\n throw new Error('WASM not initialized');\n }\n\n return (...args: string[]): string => {\n const retptr = this.wasm!.__wbindgen_add_to_stack_pointer(-16);\n let deferred: [number, number] = [0, 0];\n\n try {\n const ptrLenPairs = args.map(arg => {\n const ptr = this.passStringToWasm(\n arg,\n this.wasm!.__wbindgen_malloc,\n this.wasm!.__wbindgen_realloc,\n );\n return [ptr, this.WASM_VECTOR_LEN];\n });\n\n const wasmArgs = [retptr, ...ptrLenPairs.flat()];\n\n wasmFn.apply(this.wasm, wasmArgs);\n\n const r0 = this.getDataViewMemory().getInt32(retptr + 4 * 0, true);\n const r1 = this.getDataViewMemory().getInt32(retptr + 4 * 1, true);\n deferred = [r0, r1];\n\n return this.getStringFromWasm(r0, r1);\n } finally {\n this.wasm!.__wbindgen_add_to_stack_pointer(16);\n this.wasm!.__wbindgen_free(deferred[0], deferred[1], 1);\n }\n };\n }\n\n async initWasm(wasmBytes: BufferSource): Promise<WasmExports> {\n const bridge = this;\n const imports = {\n __wbindgen_placeholder__: {\n __wbindgen_throw: function (ptr: number, len: number) {\n const message = bridge.getStringFromWasm(ptr, len);\n bridge.logger.error(`WASM error: ${message}`);\n throw new Error(message);\n },\n },\n };\n\n try {\n this.logger.debug('Compiling WASM module');\n const wasmModule = await WebAssembly.compile(wasmBytes);\n this.logger.debug('Instantiating WASM module');\n const wasmInstance = await WebAssembly.instantiate(wasmModule, imports);\n this.wasm = wasmInstance.exports as WasmExports;\n this.logger.info('WASM module initialized successfully');\n return this.wasm;\n } catch (error) {\n this.logger.error('Failed to initialize WASM module', error);\n throw error;\n }\n }\n\n createStateData(wasmConfig: WASMConfig, stateData: Record<string, any> = {}) {\n let dynamicStateData: Record<string, any> = {};\n\n if (wasmConfig?.c?.inputType?.stateData) {\n if (\n stateData.latestRoundData &&\n Object.keys(wasmConfig.c.inputType.stateData).every(\n key => key in stateData.latestRoundData,\n )\n ) {\n dynamicStateData.latestRoundData = {};\n Object.entries(wasmConfig.c.inputType.stateData).forEach(([key, _]) => {\n dynamicStateData.latestRoundData[key] = String(\n stateData.latestRoundData[key],\n );\n });\n } else {\n Object.entries(wasmConfig.c.inputType.stateData).forEach(\n ([key, type]) => {\n const result = stateData[key];\n if (\n result &&\n typeof result === 'object' &&\n 'values' in result &&\n result.values.length > 0\n ) {\n dynamicStateData[key] = String(result.values[0]);\n } else {\n dynamicStateData[key] = this.getDefaultValueForType(\n type as string,\n );\n }\n },\n );\n }\n }\n return dynamicStateData;\n }\n\n private getDefaultValueForType(type: string): string {\n if (\n type.startsWith('uint') ||\n type.startsWith('int') ||\n type === 'number'\n ) {\n return '0';\n } else if (type === 'bool') {\n return 'false';\n } else {\n return '';\n }\n }\n\n executeWasm(stateData: Record<string, any>, messages: BaseMessage[]) {\n if (!this.wasm) {\n this.logger.error('WASM not initialized');\n throw new Error('WASM not initialized');\n }\n\n try {\n this.logger.debug('Executing WASM with stateData', stateData);\n const fn = this.createWasmFunction(this.wasmInstance.process_state);\n return fn(JSON.stringify(stateData), JSON.stringify(messages));\n } catch (error) {\n this.logger.error('Error executing WASM', error);\n throw error;\n }\n }\n\n getParams(): string {\n const fn = this.createWasmFunction(this.wasmInstance.get_params);\n return fn();\n }\n}\n"],"names":["ptr"],"mappings":"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"}
|
|
@@ -1,90 +1,124 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
[
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const EVM_NETWORK_CHAIN_IDS = {
|
|
13
|
-
abstract: 2741,
|
|
14
|
-
"abstract-testnet": 11124,
|
|
15
|
-
base: 8453,
|
|
16
|
-
"base-sepolia": 84532,
|
|
17
|
-
avalanche: 43114,
|
|
18
|
-
"avalanche-fuji": 43113,
|
|
19
|
-
iotex: 4689,
|
|
20
|
-
sei: 1329,
|
|
21
|
-
"sei-testnet": 1328,
|
|
22
|
-
polygon: 137,
|
|
23
|
-
"polygon-amoy": 80002,
|
|
24
|
-
peaq: 3338
|
|
25
|
-
};
|
|
26
|
-
const CHAIN_ID_TO_ALIAS = new Map(
|
|
27
|
-
Object.entries(EVM_NETWORK_CHAIN_IDS).map(([alias, id]) => [id, alias])
|
|
28
|
-
);
|
|
29
|
-
const parseChainId = (value) => {
|
|
30
|
-
if (/^eip155:\d+$/i.test(value)) {
|
|
31
|
-
return Number.parseInt(value.split(":")[1], 10);
|
|
32
|
-
}
|
|
33
|
-
if (/^\d+$/.test(value)) {
|
|
34
|
-
return Number.parseInt(value, 10);
|
|
35
|
-
}
|
|
36
|
-
return void 0;
|
|
37
|
-
};
|
|
38
|
-
const normaliseEvmNetwork = (value) => {
|
|
39
|
-
const trimmed = normalise(value);
|
|
40
|
-
let chainId = parseChainId(trimmed);
|
|
41
|
-
let alias;
|
|
42
|
-
if (chainId === void 0) {
|
|
43
|
-
const mapped = EVM_NETWORK_CHAIN_IDS[trimmed];
|
|
44
|
-
if (mapped !== void 0) {
|
|
45
|
-
chainId = mapped;
|
|
46
|
-
alias = trimmed;
|
|
47
|
-
}
|
|
48
|
-
} else if (CHAIN_ID_TO_ALIAS.has(chainId)) {
|
|
49
|
-
alias = CHAIN_ID_TO_ALIAS.get(chainId);
|
|
50
|
-
}
|
|
51
|
-
if (chainId === void 0) {
|
|
1
|
+
import { creditPurchaseResponseSchema, x402MinimumsResponseSchema, x402CreditPurchaseResponseSchema } from "./standards-sdk.es148.js";
|
|
2
|
+
import { RegistryBrokerClient } from "./standards-sdk.es135.js";
|
|
3
|
+
import { normalizeHexPrivateKey } from "./standards-sdk.es159.js";
|
|
4
|
+
import { optionalImport } from "./standards-sdk.es151.js";
|
|
5
|
+
async function loadX402Dependencies(client) {
|
|
6
|
+
const [{ default: axios }, x402Axios, x402Types] = await Promise.all([
|
|
7
|
+
import("axios"),
|
|
8
|
+
optionalImport("x402-axios"),
|
|
9
|
+
optionalImport("x402/types")
|
|
10
|
+
]);
|
|
11
|
+
if (!x402Axios || !x402Types) {
|
|
52
12
|
throw new Error(
|
|
53
|
-
|
|
13
|
+
"x402-axios and x402/types are required for X402 flows. Install them to enable ledger payments."
|
|
54
14
|
);
|
|
55
15
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
16
|
+
const withPaymentInterceptor = x402Axios.withPaymentInterceptor;
|
|
17
|
+
const decodePaymentResponse = x402Axios.decodeXPaymentResponse;
|
|
18
|
+
const createX402Signer = x402Types.createSigner;
|
|
19
|
+
const createPaymentClient = (walletClient) => {
|
|
20
|
+
const axiosClient = axios.create({
|
|
21
|
+
baseURL: client.baseUrl,
|
|
22
|
+
headers: {
|
|
23
|
+
...client.getDefaultHeaders(),
|
|
24
|
+
"content-type": "application/json"
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const paymentClient = withPaymentInterceptor(axiosClient, walletClient);
|
|
28
|
+
return paymentClient;
|
|
61
29
|
};
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
if (
|
|
67
|
-
throw new Error(
|
|
68
|
-
'Unsupported Hedera network. Use hedera:mainnet or hedera:testnet (legacy "mainnet"/"testnet" also accepted).'
|
|
69
|
-
);
|
|
30
|
+
return { createPaymentClient, decodePaymentResponse, createX402Signer };
|
|
31
|
+
}
|
|
32
|
+
function calculateHbarAmountParam(hbarAmount) {
|
|
33
|
+
const tinybars = Math.ceil(hbarAmount * 1e8);
|
|
34
|
+
if (tinybars <= 0) {
|
|
35
|
+
throw new Error("Calculated purchase amount must be positive");
|
|
70
36
|
}
|
|
71
|
-
return
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
37
|
+
return tinybars / 1e8;
|
|
38
|
+
}
|
|
39
|
+
RegistryBrokerClient.prototype.purchaseCreditsWithHbar = async function(params) {
|
|
40
|
+
const body = {
|
|
41
|
+
accountId: params.accountId,
|
|
42
|
+
payerKey: params.privateKey,
|
|
43
|
+
hbarAmount: calculateHbarAmountParam(params.hbarAmount)
|
|
75
44
|
};
|
|
45
|
+
if (params.memo) {
|
|
46
|
+
body.memo = params.memo;
|
|
47
|
+
}
|
|
48
|
+
if (params.metadata) {
|
|
49
|
+
body.metadata = params.metadata;
|
|
50
|
+
}
|
|
51
|
+
const raw = await this.requestJson("/credits/purchase", {
|
|
52
|
+
method: "POST",
|
|
53
|
+
headers: { "content-type": "application/json" },
|
|
54
|
+
body
|
|
55
|
+
});
|
|
56
|
+
return this.parseWithSchema(
|
|
57
|
+
raw,
|
|
58
|
+
creditPurchaseResponseSchema,
|
|
59
|
+
"credit purchase response"
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
RegistryBrokerClient.prototype.getX402Minimums = async function() {
|
|
63
|
+
const raw = await this.requestJson(
|
|
64
|
+
"/credits/purchase/x402/minimums",
|
|
65
|
+
{ method: "GET" }
|
|
66
|
+
);
|
|
67
|
+
return this.parseWithSchema(
|
|
68
|
+
raw,
|
|
69
|
+
x402MinimumsResponseSchema,
|
|
70
|
+
"x402 minimums response"
|
|
71
|
+
);
|
|
76
72
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
73
|
+
RegistryBrokerClient.prototype.purchaseCreditsWithX402 = async function(params) {
|
|
74
|
+
const { createPaymentClient, decodePaymentResponse } = await loadX402Dependencies(this);
|
|
75
|
+
if (!Number.isFinite(params.credits) || params.credits <= 0) {
|
|
76
|
+
throw new Error("credits must be a positive number");
|
|
80
77
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
if (params.usdAmount !== void 0 && (!Number.isFinite(params.usdAmount) || params.usdAmount <= 0)) {
|
|
79
|
+
throw new Error("usdAmount must be a positive number when provided");
|
|
80
|
+
}
|
|
81
|
+
const body = {
|
|
82
|
+
accountId: params.accountId,
|
|
83
|
+
credits: params.credits
|
|
84
|
+
};
|
|
85
|
+
if (params.usdAmount !== void 0) {
|
|
86
|
+
body.usdAmount = params.usdAmount;
|
|
84
87
|
}
|
|
85
|
-
|
|
88
|
+
if (params.description) {
|
|
89
|
+
body.description = params.description;
|
|
90
|
+
}
|
|
91
|
+
if (params.metadata) {
|
|
92
|
+
body.metadata = params.metadata;
|
|
93
|
+
}
|
|
94
|
+
const paymentClient = createPaymentClient(params.walletClient);
|
|
95
|
+
const response = await paymentClient.post("/credits/purchase/x402", body);
|
|
96
|
+
const parsed = this.parseWithSchema(
|
|
97
|
+
response.data,
|
|
98
|
+
x402CreditPurchaseResponseSchema,
|
|
99
|
+
"x402 credit purchase response"
|
|
100
|
+
);
|
|
101
|
+
const responseHeaders = response.headers ?? {};
|
|
102
|
+
const paymentHeader = typeof responseHeaders["x-payment-response"] === "string" ? responseHeaders["x-payment-response"] : void 0;
|
|
103
|
+
const decodedPayment = paymentHeader !== void 0 ? decodePaymentResponse(paymentHeader) : void 0;
|
|
104
|
+
return {
|
|
105
|
+
...parsed,
|
|
106
|
+
paymentResponseHeader: paymentHeader,
|
|
107
|
+
paymentResponse: decodedPayment
|
|
108
|
+
};
|
|
86
109
|
};
|
|
87
|
-
|
|
88
|
-
|
|
110
|
+
RegistryBrokerClient.prototype.buyCreditsWithX402 = async function(params) {
|
|
111
|
+
const network = params.network ?? "base";
|
|
112
|
+
const { createX402Signer } = await loadX402Dependencies(this);
|
|
113
|
+
const normalizedKey = normalizeHexPrivateKey(params.evmPrivateKey);
|
|
114
|
+
const walletClient = await createX402Signer(network, normalizedKey);
|
|
115
|
+
return this.purchaseCreditsWithX402({
|
|
116
|
+
accountId: params.accountId,
|
|
117
|
+
credits: params.credits,
|
|
118
|
+
usdAmount: params.usdAmount,
|
|
119
|
+
description: params.description,
|
|
120
|
+
metadata: params.metadata,
|
|
121
|
+
walletClient
|
|
122
|
+
});
|
|
89
123
|
};
|
|
90
124
|
//# sourceMappingURL=standards-sdk.es130.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es130.js","sources":["../../src/services/registry-broker/ledger-network.ts"],"sourcesContent":["type HederaNetwork = 'mainnet' | 'testnet';\ntype LedgerNetworkKind = 'hedera' | 'evm';\n\nexport interface CanonicalLedgerNetwork {\n canonical: string;\n kind: LedgerNetworkKind;\n hederaNetwork?: HederaNetwork;\n chainId?: number;\n legacyName?: string;\n}\n\nconst normalise = (value: string): string => value.trim().toLowerCase();\n\nconst HEDERA_NETWORK_ALIASES = new Map<\n string,\n { canonical: `hedera:${HederaNetwork}`; hederaNetwork: HederaNetwork }\n>([\n ['hedera:mainnet', { canonical: 'hedera:mainnet', hederaNetwork: 'mainnet' }],\n ['mainnet', { canonical: 'hedera:mainnet', hederaNetwork: 'mainnet' }],\n ['hedera-mainnet', { canonical: 'hedera:mainnet', hederaNetwork: 'mainnet' }],\n ['hedera_mainnet', { canonical: 'hedera:mainnet', hederaNetwork: 'mainnet' }],\n ['hedera:testnet', { canonical: 'hedera:testnet', hederaNetwork: 'testnet' }],\n ['testnet', { canonical: 'hedera:testnet', hederaNetwork: 'testnet' }],\n ['hedera-testnet', { canonical: 'hedera:testnet', hederaNetwork: 'testnet' }],\n ['hedera_testnet', { canonical: 'hedera:testnet', hederaNetwork: 'testnet' }],\n]);\n\nconst EVM_NETWORK_CHAIN_IDS: Record<string, number> = {\n abstract: 2741,\n 'abstract-testnet': 11124,\n base: 8453,\n 'base-sepolia': 84532,\n avalanche: 43114,\n 'avalanche-fuji': 43113,\n iotex: 4689,\n sei: 1329,\n 'sei-testnet': 1328,\n polygon: 137,\n 'polygon-amoy': 80002,\n peaq: 3338,\n};\n\nconst CHAIN_ID_TO_ALIAS = new Map<number, string>(\n Object.entries(EVM_NETWORK_CHAIN_IDS).map(([alias, id]) => [id, alias]),\n);\n\nconst parseChainId = (value: string): number | undefined => {\n if (/^eip155:\\d+$/i.test(value)) {\n return Number.parseInt(value.split(':')[1]!, 10);\n }\n if (/^\\d+$/.test(value)) {\n return Number.parseInt(value, 10);\n }\n return undefined;\n};\n\nconst normaliseEvmNetwork = (value: string): CanonicalLedgerNetwork => {\n const trimmed = normalise(value);\n let chainId = parseChainId(trimmed);\n let alias: string | undefined;\n\n if (chainId === undefined) {\n const mapped = EVM_NETWORK_CHAIN_IDS[trimmed];\n if (mapped !== undefined) {\n chainId = mapped;\n alias = trimmed;\n }\n } else if (CHAIN_ID_TO_ALIAS.has(chainId)) {\n alias = CHAIN_ID_TO_ALIAS.get(chainId);\n }\n\n if (chainId === undefined) {\n throw new Error(\n 'Unsupported EVM ledger network. Provide an alias like \"base-sepolia\" or a canonical eip155:<chainId> string.',\n );\n }\n\n return {\n canonical: `eip155:${chainId}`,\n kind: 'evm',\n chainId,\n legacyName: alias,\n };\n};\n\nconst normaliseHederaNetwork = (value: string): CanonicalLedgerNetwork => {\n const trimmed = normalise(value);\n const mapping = HEDERA_NETWORK_ALIASES.get(trimmed);\n if (!mapping) {\n throw new Error(\n 'Unsupported Hedera network. Use hedera:mainnet or hedera:testnet (legacy \"mainnet\"/\"testnet\" also accepted).',\n );\n }\n return {\n canonical: mapping.canonical,\n kind: 'hedera',\n hederaNetwork: mapping.hederaNetwork,\n };\n};\n\nexport const canonicalizeLedgerNetwork = (\n network: string,\n): CanonicalLedgerNetwork => {\n if (typeof network !== 'string' || network.trim().length === 0) {\n throw new Error('Ledger network is required.');\n }\n const trimmed = normalise(network);\n if (\n trimmed.startsWith('hedera:') ||\n trimmed.includes('hedera-') ||\n trimmed.includes('hedera_') ||\n trimmed === 'mainnet' ||\n trimmed === 'testnet'\n ) {\n return normaliseHederaNetwork(trimmed);\n }\n return normaliseEvmNetwork(trimmed);\n};\n"],"names":[],"mappings":"AAWA,MAAM,YAAY,CAAC,UAA0B,MAAM,KAAA,EAAO,YAAA;AAE1D,MAAM,6CAA6B,IAGjC;AAAA,EACA,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,WAAW,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EACrE,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,WAAW,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EACrE,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAC9E,CAAC;AAED,MAAM,wBAAgD;AAAA,EACpD,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,OAAO;AAAA,EACP,KAAK;AAAA,EACL,eAAe;AAAA,EACf,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,MAAM;AACR;AAEA,MAAM,oBAAoB,IAAI;AAAA,EAC5B,OAAO,QAAQ,qBAAqB,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC;AACxE;AAEA,MAAM,eAAe,CAAC,UAAsC;AAC1D,MAAI,gBAAgB,KAAK,KAAK,GAAG;AAC/B,WAAO,OAAO,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC,GAAI,EAAE;AAAA,EACjD;AACA,MAAI,QAAQ,KAAK,KAAK,GAAG;AACvB,WAAO,OAAO,SAAS,OAAO,EAAE;AAAA,EAClC;AACA,SAAO;AACT;AAEA,MAAM,sBAAsB,CAAC,UAA0C;AACrE,QAAM,UAAU,UAAU,KAAK;AAC/B,MAAI,UAAU,aAAa,OAAO;AAClC,MAAI;AAEJ,MAAI,YAAY,QAAW;AACzB,UAAM,SAAS,sBAAsB,OAAO;AAC5C,QAAI,WAAW,QAAW;AACxB,gBAAU;AACV,cAAQ;AAAA,IACV;AAAA,EACF,WAAW,kBAAkB,IAAI,OAAO,GAAG;AACzC,YAAQ,kBAAkB,IAAI,OAAO;AAAA,EACvC;AAEA,MAAI,YAAY,QAAW;AACzB,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAO;AAAA,IACL,WAAW,UAAU,OAAO;AAAA,IAC5B,MAAM;AAAA,IACN;AAAA,IACA,YAAY;AAAA,EAAA;AAEhB;AAEA,MAAM,yBAAyB,CAAC,UAA0C;AACxE,QAAM,UAAU,UAAU,KAAK;AAC/B,QAAM,UAAU,uBAAuB,IAAI,OAAO;AAClD,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACA,SAAO;AAAA,IACL,WAAW,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,eAAe,QAAQ;AAAA,EAAA;AAE3B;AAEO,MAAM,4BAA4B,CACvC,YAC2B;AAC3B,MAAI,OAAO,YAAY,YAAY,QAAQ,KAAA,EAAO,WAAW,GAAG;AAC9D,UAAM,IAAI,MAAM,6BAA6B;AAAA,EAC/C;AACA,QAAM,UAAU,UAAU,OAAO;AACjC,MACE,QAAQ,WAAW,SAAS,KAC5B,QAAQ,SAAS,SAAS,KAC1B,QAAQ,SAAS,SAAS,KAC1B,YAAY,aACZ,YAAY,WACZ;AACA,WAAO,uBAAuB,OAAO;AAAA,EACvC;AACA,SAAO,oBAAoB,OAAO;AACpC;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es130.js","sources":["../../src/services/registry-broker/client/credits.ts"],"sourcesContent":["import type {\n CreditPurchaseResponse,\n JsonObject,\n JsonValue,\n X402CreditPurchaseResponse,\n X402MinimumsResponse,\n} from '../types';\nimport {\n creditPurchaseResponseSchema,\n x402CreditPurchaseResponseSchema,\n x402MinimumsResponseSchema,\n} from '../schemas';\nimport { RegistryBrokerClient } from './base-client';\nimport { normalizeHexPrivateKey, type X402NetworkId } from './utils';\nimport { optionalImport } from '../../../utils/dynamic-import';\n\ntype PaymentHeaders = Record<string, string | string[] | undefined>;\ntype PaymentClient = {\n post: (\n url: string,\n body: JsonObject,\n ) => Promise<{ data: JsonValue; headers?: PaymentHeaders }>;\n};\n\ninterface PurchaseCreditsWithX402Params {\n accountId: string;\n credits: number;\n usdAmount?: number;\n description?: string;\n metadata?: JsonObject;\n walletClient: object;\n}\n\ninterface BuyCreditsWithX402Params {\n accountId: string;\n credits: number;\n usdAmount?: number;\n description?: string;\n metadata?: JsonObject;\n evmPrivateKey: string;\n network?: X402NetworkId;\n rpcUrl?: string;\n}\n\ntype X402PurchaseResult = X402CreditPurchaseResponse & {\n paymentResponseHeader?: string;\n paymentResponse?: unknown;\n};\n\ntype LoadX402DependenciesResult = {\n createPaymentClient: (walletClient: object) => PaymentClient;\n decodePaymentResponse: (value: string) => unknown;\n createX402Signer: (\n network: X402NetworkId,\n privateKey: `0x${string}`,\n ) => Promise<object>;\n};\n\nasync function loadX402Dependencies(\n client: RegistryBrokerClient,\n): Promise<LoadX402DependenciesResult> {\n type X402AxiosModule = {\n withPaymentInterceptor: (client: unknown, walletClient: object) => unknown;\n decodeXPaymentResponse: (value: string) => unknown;\n };\n type X402TypesModule = {\n createSigner: (\n network: X402NetworkId,\n privateKey: `0x${string}`,\n ) => Promise<object>;\n };\n\n const [{ default: axios }, x402Axios, x402Types] = await Promise.all([\n import('axios'),\n optionalImport<X402AxiosModule>('x402-axios'),\n optionalImport<X402TypesModule>('x402/types'),\n ]);\n\n if (!x402Axios || !x402Types) {\n throw new Error(\n 'x402-axios and x402/types are required for X402 flows. Install them to enable ledger payments.',\n );\n }\n\n const withPaymentInterceptor = x402Axios.withPaymentInterceptor;\n const decodePaymentResponse = x402Axios.decodeXPaymentResponse;\n const createX402Signer = x402Types.createSigner;\n\n const createPaymentClient = (walletClient: object): PaymentClient => {\n const axiosClient = axios.create({\n baseURL: client.baseUrl,\n headers: {\n ...client.getDefaultHeaders(),\n 'content-type': 'application/json',\n },\n });\n const paymentClient = withPaymentInterceptor(axiosClient, walletClient);\n return paymentClient as PaymentClient;\n };\n\n return { createPaymentClient, decodePaymentResponse, createX402Signer };\n}\n\nfunction calculateHbarAmountParam(hbarAmount: number): number {\n const tinybars = Math.ceil(hbarAmount * 1e8);\n if (tinybars <= 0) {\n throw new Error('Calculated purchase amount must be positive');\n }\n return tinybars / 1e8;\n}\n\ndeclare module './base-client' {\n interface RegistryBrokerClient {\n purchaseCreditsWithHbar(params: {\n accountId: string;\n privateKey: string;\n hbarAmount: number;\n memo?: string;\n metadata?: JsonObject;\n }): Promise<CreditPurchaseResponse>;\n getX402Minimums(): Promise<X402MinimumsResponse>;\n purchaseCreditsWithX402(\n params: PurchaseCreditsWithX402Params,\n ): Promise<X402PurchaseResult>;\n buyCreditsWithX402(\n params: BuyCreditsWithX402Params,\n ): Promise<X402PurchaseResult>;\n }\n}\n\nRegistryBrokerClient.prototype.purchaseCreditsWithHbar = async function (\n this: RegistryBrokerClient,\n params: {\n accountId: string;\n privateKey: string;\n hbarAmount: number;\n memo?: string;\n metadata?: JsonObject;\n },\n): Promise<CreditPurchaseResponse> {\n const body: JsonObject = {\n accountId: params.accountId,\n payerKey: params.privateKey,\n hbarAmount: calculateHbarAmountParam(params.hbarAmount),\n };\n\n if (params.memo) {\n body.memo = params.memo;\n }\n\n if (params.metadata) {\n body.metadata = params.metadata;\n }\n\n const raw = await this.requestJson<JsonValue>('/credits/purchase', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n });\n\n return this.parseWithSchema(\n raw,\n creditPurchaseResponseSchema,\n 'credit purchase response',\n );\n};\n\nRegistryBrokerClient.prototype.getX402Minimums = async function (\n this: RegistryBrokerClient,\n): Promise<X402MinimumsResponse> {\n const raw = await this.requestJson<JsonValue>(\n '/credits/purchase/x402/minimums',\n { method: 'GET' },\n );\n return this.parseWithSchema(\n raw,\n x402MinimumsResponseSchema,\n 'x402 minimums response',\n );\n};\n\nRegistryBrokerClient.prototype.purchaseCreditsWithX402 = async function (\n this: RegistryBrokerClient,\n params: PurchaseCreditsWithX402Params,\n): Promise<X402PurchaseResult> {\n const { createPaymentClient, decodePaymentResponse } =\n await loadX402Dependencies(this);\n\n if (!Number.isFinite(params.credits) || params.credits <= 0) {\n throw new Error('credits must be a positive number');\n }\n if (\n params.usdAmount !== undefined &&\n (!Number.isFinite(params.usdAmount) || params.usdAmount <= 0)\n ) {\n throw new Error('usdAmount must be a positive number when provided');\n }\n\n const body: JsonObject = {\n accountId: params.accountId,\n credits: params.credits,\n };\n\n if (params.usdAmount !== undefined) {\n body.usdAmount = params.usdAmount;\n }\n if (params.description) {\n body.description = params.description;\n }\n if (params.metadata) {\n body.metadata = params.metadata;\n }\n\n const paymentClient = createPaymentClient(params.walletClient);\n\n const response = await paymentClient.post('/credits/purchase/x402', body);\n\n const parsed = this.parseWithSchema(\n response.data,\n x402CreditPurchaseResponseSchema,\n 'x402 credit purchase response',\n );\n\n const responseHeaders = response.headers ?? {};\n const paymentHeader =\n typeof responseHeaders['x-payment-response'] === 'string'\n ? responseHeaders['x-payment-response']\n : undefined;\n const decodedPayment =\n paymentHeader !== undefined\n ? decodePaymentResponse(paymentHeader)\n : undefined;\n\n return {\n ...parsed,\n paymentResponseHeader: paymentHeader,\n paymentResponse: decodedPayment,\n };\n};\n\nRegistryBrokerClient.prototype.buyCreditsWithX402 = async function (\n this: RegistryBrokerClient,\n params: BuyCreditsWithX402Params,\n): Promise<X402PurchaseResult> {\n const network: X402NetworkId = params.network ?? 'base';\n const { createX402Signer } = await loadX402Dependencies(this);\n const normalizedKey = normalizeHexPrivateKey(params.evmPrivateKey);\n const walletClient = await createX402Signer(network, normalizedKey);\n\n return this.purchaseCreditsWithX402({\n accountId: params.accountId,\n credits: params.credits,\n usdAmount: params.usdAmount,\n description: params.description,\n metadata: params.metadata,\n walletClient,\n });\n};\n"],"names":[],"mappings":"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"}
|