@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,883 +1,211 @@
|
|
|
1
|
-
import { InscriptionSDK } from "./standards-sdk.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { validateQuoteParameters, getCachedQuote, getOrCreateSDK, cacheQuote } from "./standards-sdk.es126.js";
|
|
8
|
-
import { HederaMirrorNode } from "./standards-sdk.es127.js";
|
|
9
|
-
import BigNumber from "bignumber.js";
|
|
10
|
-
import { sleep } from "./standards-sdk.es116.js";
|
|
11
|
-
let nodeModules = {};
|
|
12
|
-
const normalizeTransactionId = (txId) => {
|
|
13
|
-
if (!txId.includes("@")) {
|
|
14
|
-
return txId;
|
|
1
|
+
import { InscriptionSDK } from "./standards-sdk.es149.js";
|
|
2
|
+
class QuoteCache {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
5
|
+
this.maxSize = 100;
|
|
6
|
+
this.defaultTtlMs = 5 * 60 * 1e3;
|
|
15
7
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return
|
|
8
|
+
// 5 minutes
|
|
9
|
+
/**
|
|
10
|
+
* Generate cache key from input parameters
|
|
11
|
+
*/
|
|
12
|
+
generateKey(key) {
|
|
13
|
+
return `${key.inputHash}-${key.clientConfigHash}-${key.optionsHash}`;
|
|
22
14
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const path = req("path");
|
|
29
|
-
nodeModules.readFileSync = fs.readFileSync;
|
|
30
|
-
nodeModules.basename = path.basename;
|
|
31
|
-
nodeModules.extname = path.extname;
|
|
32
|
-
} else {
|
|
33
|
-
throw new Error("require function not available");
|
|
34
|
-
}
|
|
35
|
-
} catch (error) {
|
|
36
|
-
console.warn(
|
|
37
|
-
"Node.js modules not available, file path operations will be disabled"
|
|
38
|
-
);
|
|
15
|
+
/**
|
|
16
|
+
* Hash object to string for cache key
|
|
17
|
+
*/
|
|
18
|
+
hashObject(obj) {
|
|
19
|
+
return Buffer.from(JSON.stringify(obj)).toString("base64").slice(0, 16);
|
|
39
20
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const COST_LOGGER_MODULE = "InscriberCost";
|
|
45
|
-
async function convertFileToBase64(filePath) {
|
|
46
|
-
if (isBrowser) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
"File path operations are not supported in browser environment. Use buffer input type instead."
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
await loadNodeModules();
|
|
52
|
-
if (!nodeModules.readFileSync || !nodeModules.basename || !nodeModules.extname) {
|
|
53
|
-
throw new Error(
|
|
54
|
-
"Node.js file system modules are not available. Cannot read file from path."
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
try {
|
|
58
|
-
const buffer = nodeModules.readFileSync(filePath);
|
|
59
|
-
const base64 = buffer.toString("base64");
|
|
60
|
-
const fileName = nodeModules.basename(filePath);
|
|
61
|
-
let mimeType = "application/octet-stream";
|
|
62
|
-
try {
|
|
63
|
-
const fileTypeResult = await fileTypeFromBuffer(buffer);
|
|
64
|
-
if (fileTypeResult) {
|
|
65
|
-
mimeType = fileTypeResult.mime;
|
|
66
|
-
}
|
|
67
|
-
} catch (error) {
|
|
68
|
-
const ext = nodeModules.extname(filePath).toLowerCase();
|
|
69
|
-
const mimeMap = {
|
|
70
|
-
".txt": "text/plain",
|
|
71
|
-
".json": "application/json",
|
|
72
|
-
".html": "text/html",
|
|
73
|
-
".css": "text/css",
|
|
74
|
-
".js": "application/javascript",
|
|
75
|
-
".png": "image/png",
|
|
76
|
-
".jpg": "image/jpeg",
|
|
77
|
-
".jpeg": "image/jpeg",
|
|
78
|
-
".gif": "image/gif",
|
|
79
|
-
".svg": "image/svg+xml",
|
|
80
|
-
".pdf": "application/pdf"
|
|
81
|
-
};
|
|
82
|
-
mimeType = mimeMap[ext] || "application/octet-stream";
|
|
83
|
-
}
|
|
84
|
-
return { base64, fileName, mimeType };
|
|
85
|
-
} catch (error) {
|
|
86
|
-
throw new Error(
|
|
87
|
-
`Failed to read file ${filePath}: ${error.message}`
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
function normalizeClientConfig(cfg) {
|
|
92
|
-
return {
|
|
93
|
-
accountId: cfg.accountId,
|
|
94
|
-
privateKey: typeof cfg.privateKey === "string" ? cfg.privateKey : cfg.privateKey.toString(),
|
|
95
|
-
network: cfg.network
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
async function inscribe(input, clientConfig, options, existingSDK) {
|
|
99
|
-
const logger = Logger.getInstance({
|
|
100
|
-
module: "Inscriber",
|
|
101
|
-
...options.logging
|
|
102
|
-
});
|
|
103
|
-
logger.info("Starting inscription process", {
|
|
104
|
-
type: input.type,
|
|
105
|
-
mode: options.mode || "file",
|
|
106
|
-
quoteOnly: options.quoteOnly || false,
|
|
107
|
-
...input.type === "url" ? { url: input.url } : {},
|
|
108
|
-
...input.type === "file" ? { path: input.path } : {},
|
|
109
|
-
...input.type === "buffer" ? { fileName: input.fileName, bufferSize: input.buffer.byteLength } : {}
|
|
110
|
-
});
|
|
111
|
-
try {
|
|
112
|
-
if (options.quoteOnly) {
|
|
113
|
-
logger.debug("Quote-only mode requested, generating quote");
|
|
114
|
-
return await generateQuote(input, clientConfig, options, existingSDK);
|
|
115
|
-
}
|
|
116
|
-
if (options.mode === "hashinal" && options.metadata) {
|
|
117
|
-
validateHashinalMetadata(options.metadata, logger);
|
|
118
|
-
}
|
|
119
|
-
let sdk;
|
|
120
|
-
if (existingSDK) {
|
|
121
|
-
logger.debug("Using existing InscriptionSDK instance");
|
|
122
|
-
sdk = existingSDK;
|
|
123
|
-
} else if (options.apiKey) {
|
|
124
|
-
logger.debug("Initializing InscriptionSDK with API key");
|
|
125
|
-
sdk = new InscriptionSDK({
|
|
126
|
-
apiKey: options.apiKey,
|
|
127
|
-
network: clientConfig.network || "mainnet",
|
|
128
|
-
connectionMode: "auto"
|
|
129
|
-
});
|
|
130
|
-
} else {
|
|
131
|
-
logger.debug("Initializing InscriptionSDK with server auth");
|
|
132
|
-
const normalized = normalizeClientConfig(clientConfig);
|
|
133
|
-
sdk = await InscriptionSDK.createWithAuth({
|
|
134
|
-
type: "server",
|
|
135
|
-
accountId: normalized.accountId,
|
|
136
|
-
privateKey: normalized.privateKey,
|
|
137
|
-
network: normalized.network || "mainnet",
|
|
138
|
-
connectionMode: "auto"
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
const baseRequest = {
|
|
142
|
-
holderId: clientConfig.accountId,
|
|
143
|
-
metadata: options.metadata || {},
|
|
144
|
-
tags: options.tags || [],
|
|
145
|
-
mode: options.mode || "file",
|
|
146
|
-
fileStandard: options.fileStandard,
|
|
147
|
-
chunkSize: options.chunkSize
|
|
148
|
-
};
|
|
149
|
-
let request;
|
|
150
|
-
switch (input.type) {
|
|
151
|
-
case "url":
|
|
152
|
-
request = {
|
|
153
|
-
...baseRequest,
|
|
154
|
-
file: {
|
|
155
|
-
type: "url",
|
|
156
|
-
url: input.url
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
break;
|
|
160
|
-
case "file": {
|
|
161
|
-
const fileData = await convertFileToBase64(input.path);
|
|
162
|
-
request = {
|
|
163
|
-
...baseRequest,
|
|
164
|
-
file: {
|
|
165
|
-
type: "base64",
|
|
166
|
-
base64: fileData.base64,
|
|
167
|
-
fileName: fileData.fileName,
|
|
168
|
-
mimeType: fileData.mimeType
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
break;
|
|
172
|
-
}
|
|
173
|
-
case "buffer":
|
|
174
|
-
request = {
|
|
175
|
-
...baseRequest,
|
|
176
|
-
file: {
|
|
177
|
-
type: "base64",
|
|
178
|
-
base64: Buffer.from(
|
|
179
|
-
input.buffer instanceof ArrayBuffer ? new Uint8Array(input.buffer) : input.buffer
|
|
180
|
-
).toString("base64"),
|
|
181
|
-
fileName: input.fileName,
|
|
182
|
-
mimeType: input.mimeType
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
if (options.mode === "hashinal") {
|
|
188
|
-
request.metadataObject = options.metadata;
|
|
189
|
-
request.creator = options.metadata?.creator || clientConfig.accountId;
|
|
190
|
-
request.description = options.metadata?.description;
|
|
191
|
-
if (options.jsonFileURL) {
|
|
192
|
-
request.jsonFileURL = options.jsonFileURL;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
logger.debug("Preparing to inscribe content", {
|
|
196
|
-
type: input.type,
|
|
197
|
-
mode: options.mode || "file",
|
|
198
|
-
holderId: clientConfig.accountId
|
|
199
|
-
});
|
|
200
|
-
const normalizedCfg = normalizeClientConfig(clientConfig);
|
|
201
|
-
const result = await sdk.inscribeAndExecute(request, normalizedCfg);
|
|
202
|
-
const rawJobId = result.jobId || result.tx_id || result.transactionId || "";
|
|
203
|
-
const rawTxId = result.transactionId || rawJobId || "";
|
|
204
|
-
const normalizedJobId = normalizeTransactionId(rawJobId);
|
|
205
|
-
const normalizedTxId = normalizeTransactionId(rawTxId);
|
|
206
|
-
const waitId = normalizeTransactionId(
|
|
207
|
-
normalizedJobId || normalizedTxId || rawJobId || result.jobId || ""
|
|
208
|
-
);
|
|
209
|
-
logger.info("Starting to inscribe.", {
|
|
210
|
-
type: input.type,
|
|
211
|
-
mode: options.mode || "file",
|
|
212
|
-
transactionId: result.jobId
|
|
213
|
-
});
|
|
214
|
-
if (options.waitForConfirmation) {
|
|
215
|
-
logger.debug("Waiting for inscription confirmation", {
|
|
216
|
-
transactionId: waitId,
|
|
217
|
-
maxAttempts: options.waitMaxAttempts,
|
|
218
|
-
intervalMs: options.waitIntervalMs
|
|
219
|
-
});
|
|
220
|
-
const inscription = await waitForInscriptionConfirmation(
|
|
221
|
-
sdk,
|
|
222
|
-
waitId,
|
|
223
|
-
options.waitMaxAttempts,
|
|
224
|
-
options.waitIntervalMs,
|
|
225
|
-
options.progressCallback
|
|
226
|
-
);
|
|
227
|
-
logger.info("Inscription confirmation received", {
|
|
228
|
-
transactionId: result.jobId
|
|
229
|
-
});
|
|
230
|
-
return {
|
|
231
|
-
confirmed: true,
|
|
232
|
-
result: {
|
|
233
|
-
...result,
|
|
234
|
-
jobId: waitId,
|
|
235
|
-
transactionId: normalizedTxId
|
|
236
|
-
},
|
|
237
|
-
inscription,
|
|
238
|
-
sdk,
|
|
239
|
-
costSummary: await resolveInscriptionCost(
|
|
240
|
-
normalizedTxId,
|
|
241
|
-
clientConfig.network || "mainnet",
|
|
242
|
-
options.logging?.level
|
|
243
|
-
)
|
|
244
|
-
};
|
|
245
|
-
}
|
|
21
|
+
/**
|
|
22
|
+
* Create cache key from parameters
|
|
23
|
+
*/
|
|
24
|
+
createCacheKey(input, clientConfig, options) {
|
|
246
25
|
return {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
)
|
|
26
|
+
inputHash: this.hashObject(input),
|
|
27
|
+
clientConfigHash: this.hashObject({
|
|
28
|
+
accountId: clientConfig.accountId,
|
|
29
|
+
network: clientConfig.network
|
|
30
|
+
}),
|
|
31
|
+
optionsHash: this.hashObject({
|
|
32
|
+
mode: options.mode,
|
|
33
|
+
apiKey: options.apiKey ? "present" : "absent",
|
|
34
|
+
network: options.network,
|
|
35
|
+
metadata: options.metadata
|
|
36
|
+
})
|
|
259
37
|
};
|
|
260
|
-
} catch (error) {
|
|
261
|
-
logger.error("Error during inscription process", error);
|
|
262
|
-
throw error;
|
|
263
38
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
}
|
|
282
|
-
const payerTransfer = txn.transfers?.find(
|
|
283
|
-
(transfer) => transfer.account === payerAccountId && typeof transfer.amount === "number" && transfer.amount < 0
|
|
284
|
-
);
|
|
285
|
-
let payerTinybars = null;
|
|
286
|
-
if (payerTransfer) {
|
|
287
|
-
payerTinybars = Math.abs(payerTransfer.amount);
|
|
288
|
-
} else if (txn.transfers && txn.transfers.length > 0) {
|
|
289
|
-
const negativeSum = txn.transfers.filter((t) => typeof t.amount === "number" && t.amount < 0).reduce((sum, t) => sum + Math.abs(t.amount), 0);
|
|
290
|
-
payerTinybars = negativeSum > 0 ? negativeSum : null;
|
|
291
|
-
} else if (typeof txn.charged_tx_fee === "number") {
|
|
292
|
-
payerTinybars = txn.charged_tx_fee;
|
|
293
|
-
}
|
|
294
|
-
if (!payerTinybars || payerTinybars <= 0) {
|
|
295
|
-
if (attempt < COST_LOOKUP_ATTEMPTS - 1) {
|
|
296
|
-
await sleep(COST_LOOKUP_DELAY_MS);
|
|
297
|
-
}
|
|
298
|
-
continue;
|
|
299
|
-
}
|
|
300
|
-
const totalCostHbar = new BigNumber(payerTinybars).dividedBy(TINYBAR_DIVISOR).toFixed();
|
|
301
|
-
return {
|
|
302
|
-
totalCostHbar,
|
|
303
|
-
breakdown: {
|
|
304
|
-
transfers: [
|
|
305
|
-
{
|
|
306
|
-
to: "Hedera network (payer)",
|
|
307
|
-
amount: totalCostHbar,
|
|
308
|
-
description: `Transaction fee debited from ${payerAccountId}`
|
|
309
|
-
}
|
|
310
|
-
]
|
|
311
|
-
}
|
|
312
|
-
};
|
|
313
|
-
} catch (error) {
|
|
314
|
-
logger.warn("Unable to resolve inscription cost", {
|
|
315
|
-
transactionId: normalizedId,
|
|
316
|
-
attempt: attempt + 1,
|
|
317
|
-
error: error instanceof Error ? error.message : String(error)
|
|
318
|
-
});
|
|
319
|
-
if (attempt < COST_LOOKUP_ATTEMPTS - 1) {
|
|
320
|
-
await sleep(COST_LOOKUP_DELAY_MS);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
39
|
+
/**
|
|
40
|
+
* Get cached quote if available and not expired
|
|
41
|
+
*/
|
|
42
|
+
get(key) {
|
|
43
|
+
const cacheKey = this.generateKey(key);
|
|
44
|
+
const entry = this.cache.get(cacheKey);
|
|
45
|
+
if (!entry) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const now = Date.now();
|
|
49
|
+
if (now - entry.timestamp > entry.ttlMs) {
|
|
50
|
+
this.cache.delete(cacheKey);
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
this.cache.delete(cacheKey);
|
|
54
|
+
this.cache.set(cacheKey, entry);
|
|
55
|
+
return entry.quote;
|
|
323
56
|
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
mode: options.mode || "file",
|
|
334
|
-
quoteOnly: options.quoteOnly || false,
|
|
335
|
-
...input.type === "url" ? { url: input.url } : {},
|
|
336
|
-
...input.type === "file" ? { path: input.path } : {},
|
|
337
|
-
...input.type === "buffer" ? { fileName: input.fileName, bufferSize: input.buffer.byteLength } : {}
|
|
338
|
-
});
|
|
339
|
-
try {
|
|
340
|
-
if (options.quoteOnly) {
|
|
341
|
-
logger.debug("Quote-only mode requested with signer, generating quote");
|
|
342
|
-
const clientConfig = {
|
|
343
|
-
accountId: signer.getAccountId().toString(),
|
|
344
|
-
privateKey: "",
|
|
345
|
-
network: options.network || "mainnet"
|
|
346
|
-
};
|
|
347
|
-
return await generateQuote(input, clientConfig, options, existingSDK);
|
|
348
|
-
}
|
|
349
|
-
if (options.mode === "hashinal" && options.metadata) {
|
|
350
|
-
validateHashinalMetadata(options.metadata, logger);
|
|
351
|
-
}
|
|
352
|
-
const accountId = signer.getAccountId().toString();
|
|
353
|
-
logger.debug("Using account ID from signer", { accountId });
|
|
354
|
-
let sdk;
|
|
355
|
-
if (existingSDK) {
|
|
356
|
-
logger.debug("Using existing InscriptionSDK instance");
|
|
357
|
-
sdk = existingSDK;
|
|
358
|
-
} else if (options.apiKey) {
|
|
359
|
-
logger.debug("Initializing InscriptionSDK with API key");
|
|
360
|
-
sdk = new InscriptionSDK({
|
|
361
|
-
apiKey: options.apiKey,
|
|
362
|
-
network: options.network || "mainnet",
|
|
363
|
-
connectionMode: "websocket"
|
|
364
|
-
});
|
|
365
|
-
} else {
|
|
366
|
-
logger.debug("Initializing InscriptionSDK with client auth (websocket)");
|
|
367
|
-
sdk = await InscriptionSDK.createWithAuth({
|
|
368
|
-
type: "client",
|
|
369
|
-
accountId,
|
|
370
|
-
signer,
|
|
371
|
-
network: options.network || "mainnet",
|
|
372
|
-
connectionMode: "websocket"
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
const baseRequest = {
|
|
376
|
-
holderId: accountId,
|
|
377
|
-
metadata: options.metadata || {},
|
|
378
|
-
tags: options.tags || [],
|
|
379
|
-
mode: options.mode || "file",
|
|
380
|
-
fileStandard: options.fileStandard,
|
|
381
|
-
chunkSize: options.chunkSize
|
|
382
|
-
};
|
|
383
|
-
let request;
|
|
384
|
-
switch (input.type) {
|
|
385
|
-
case "url":
|
|
386
|
-
request = {
|
|
387
|
-
...baseRequest,
|
|
388
|
-
file: {
|
|
389
|
-
type: "url",
|
|
390
|
-
url: input.url
|
|
391
|
-
}
|
|
392
|
-
};
|
|
393
|
-
break;
|
|
394
|
-
case "file": {
|
|
395
|
-
const fileData = await convertFileToBase64(input.path);
|
|
396
|
-
request = {
|
|
397
|
-
...baseRequest,
|
|
398
|
-
file: {
|
|
399
|
-
type: "base64",
|
|
400
|
-
base64: fileData.base64,
|
|
401
|
-
fileName: fileData.fileName,
|
|
402
|
-
mimeType: fileData.mimeType
|
|
403
|
-
}
|
|
404
|
-
};
|
|
405
|
-
break;
|
|
406
|
-
}
|
|
407
|
-
case "buffer":
|
|
408
|
-
request = {
|
|
409
|
-
...baseRequest,
|
|
410
|
-
file: {
|
|
411
|
-
type: "base64",
|
|
412
|
-
base64: Buffer.from(
|
|
413
|
-
input.buffer instanceof ArrayBuffer ? new Uint8Array(input.buffer) : input.buffer
|
|
414
|
-
).toString("base64"),
|
|
415
|
-
fileName: input.fileName,
|
|
416
|
-
mimeType: input.mimeType
|
|
417
|
-
}
|
|
418
|
-
};
|
|
419
|
-
break;
|
|
420
|
-
}
|
|
421
|
-
if (options.mode === "hashinal") {
|
|
422
|
-
request.metadataObject = options.metadata;
|
|
423
|
-
request.creator = options.metadata?.creator || accountId;
|
|
424
|
-
request.description = options.metadata?.description;
|
|
425
|
-
if (options.jsonFileURL) {
|
|
426
|
-
request.jsonFileURL = options.jsonFileURL;
|
|
57
|
+
/**
|
|
58
|
+
* Store quote in cache
|
|
59
|
+
*/
|
|
60
|
+
set(key, quote, ttlMs = this.defaultTtlMs) {
|
|
61
|
+
const cacheKey = this.generateKey(key);
|
|
62
|
+
if (this.cache.size >= this.maxSize) {
|
|
63
|
+
const firstKey = this.cache.keys().next().value;
|
|
64
|
+
if (firstKey) {
|
|
65
|
+
this.cache.delete(firstKey);
|
|
427
66
|
}
|
|
428
67
|
}
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
usesStartInscription: true
|
|
68
|
+
this.cache.set(cacheKey, {
|
|
69
|
+
quote,
|
|
70
|
+
timestamp: Date.now(),
|
|
71
|
+
ttlMs
|
|
434
72
|
});
|
|
435
|
-
const startResult = await sdk.startInscription({
|
|
436
|
-
...request,
|
|
437
|
-
holderId: accountId,
|
|
438
|
-
network: options.network || "mainnet"
|
|
439
|
-
});
|
|
440
|
-
logger.info("about to start inscription", {
|
|
441
|
-
type: input.type,
|
|
442
|
-
mode: options.mode || "file",
|
|
443
|
-
jobId: startResult.id || startResult.tx_id,
|
|
444
|
-
...startResult
|
|
445
|
-
});
|
|
446
|
-
if (typeof startResult?.transactionBytes === "string") {
|
|
447
|
-
logger.debug("Executing inscription transaction with signer from bytes");
|
|
448
|
-
await sdk.executeTransactionWithSigner(
|
|
449
|
-
startResult.transactionBytes,
|
|
450
|
-
signer
|
|
451
|
-
);
|
|
452
|
-
} else if (startResult?.transactionBytes?.type === "Buffer") {
|
|
453
|
-
logger.debug("Executing inscription transaction with signer from buffer");
|
|
454
|
-
await sdk.executeTransactionWithSigner(
|
|
455
|
-
Buffer.from(startResult.transactionBytes.data).toString("base64"),
|
|
456
|
-
signer
|
|
457
|
-
);
|
|
458
|
-
}
|
|
459
|
-
const trackingId = normalizeTransactionId(
|
|
460
|
-
startResult.tx_id || startResult.id || ""
|
|
461
|
-
);
|
|
462
|
-
const waitId = normalizeTransactionId(
|
|
463
|
-
trackingId || startResult.id || startResult.tx_id || ""
|
|
464
|
-
);
|
|
465
|
-
if (options.waitForConfirmation) {
|
|
466
|
-
logger.debug("Waiting for inscription confirmation (websocket)", {
|
|
467
|
-
jobId: startResult.id || startResult.tx_id,
|
|
468
|
-
maxAttempts: options.waitMaxAttempts,
|
|
469
|
-
intervalMs: options.waitIntervalMs
|
|
470
|
-
});
|
|
471
|
-
const inscription = await waitForInscriptionConfirmation(
|
|
472
|
-
sdk,
|
|
473
|
-
waitId,
|
|
474
|
-
options.waitMaxAttempts,
|
|
475
|
-
options.waitIntervalMs,
|
|
476
|
-
options.progressCallback
|
|
477
|
-
);
|
|
478
|
-
logger.info("Inscription confirmation received", {
|
|
479
|
-
jobId: waitId
|
|
480
|
-
});
|
|
481
|
-
return {
|
|
482
|
-
confirmed: true,
|
|
483
|
-
result: {
|
|
484
|
-
jobId: waitId,
|
|
485
|
-
transactionId: waitId,
|
|
486
|
-
topic_id: startResult.topic_id,
|
|
487
|
-
status: startResult.status,
|
|
488
|
-
completed: startResult.completed
|
|
489
|
-
},
|
|
490
|
-
inscription,
|
|
491
|
-
sdk,
|
|
492
|
-
costSummary: await resolveInscriptionCost(
|
|
493
|
-
waitId,
|
|
494
|
-
options.network || "mainnet",
|
|
495
|
-
options.logging?.level
|
|
496
|
-
)
|
|
497
|
-
};
|
|
498
|
-
}
|
|
499
|
-
return {
|
|
500
|
-
confirmed: false,
|
|
501
|
-
result: {
|
|
502
|
-
jobId: waitId,
|
|
503
|
-
transactionId: waitId,
|
|
504
|
-
topic_id: startResult.topic_id,
|
|
505
|
-
status: startResult.status,
|
|
506
|
-
completed: startResult.completed
|
|
507
|
-
},
|
|
508
|
-
sdk,
|
|
509
|
-
costSummary: await resolveInscriptionCost(
|
|
510
|
-
waitId,
|
|
511
|
-
options.network || "mainnet",
|
|
512
|
-
options.logging?.level
|
|
513
|
-
)
|
|
514
|
-
};
|
|
515
|
-
} catch (error) {
|
|
516
|
-
logger.error("Error during inscription process", error);
|
|
517
|
-
throw error;
|
|
518
73
|
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
});
|
|
525
|
-
const formattedTransactionId = transactionId.includes("@") ? `${transactionId.split("@")[0]}-${transactionId.split("@")[1].replace(/\./g, "-")}` : transactionId;
|
|
526
|
-
logger.info("Retrieving inscription", {
|
|
527
|
-
originalTransactionId: transactionId,
|
|
528
|
-
formattedTransactionId
|
|
529
|
-
});
|
|
530
|
-
try {
|
|
531
|
-
let sdk;
|
|
532
|
-
if (options?.apiKey) {
|
|
533
|
-
logger.debug("Initializing InscriptionSDK with API key");
|
|
534
|
-
sdk = new InscriptionSDK({
|
|
535
|
-
apiKey: options.apiKey,
|
|
536
|
-
network: options.network || "mainnet"
|
|
537
|
-
});
|
|
538
|
-
} else if (options?.accountId && options?.privateKey) {
|
|
539
|
-
logger.debug("Initializing InscriptionSDK with server auth");
|
|
540
|
-
sdk = await InscriptionSDK.createWithAuth({
|
|
541
|
-
type: "server",
|
|
542
|
-
accountId: options.accountId,
|
|
543
|
-
privateKey: options.privateKey,
|
|
544
|
-
network: options.network || "mainnet"
|
|
545
|
-
});
|
|
546
|
-
} else {
|
|
547
|
-
const error = new Error(
|
|
548
|
-
"Either API key or account ID and private key are required for retrieving inscriptions"
|
|
549
|
-
);
|
|
550
|
-
logger.error("Missing authentication credentials", {
|
|
551
|
-
hasApiKey: Boolean(options?.apiKey),
|
|
552
|
-
hasAccountId: Boolean(options?.accountId),
|
|
553
|
-
hasPrivateKey: Boolean(options?.privateKey)
|
|
554
|
-
});
|
|
555
|
-
throw error;
|
|
556
|
-
}
|
|
557
|
-
logger.debug("Initialized SDK for inscription retrieval", {
|
|
558
|
-
formattedTransactionId,
|
|
559
|
-
network: options.network || "mainnet"
|
|
560
|
-
});
|
|
561
|
-
const result = await sdk.retrieveInscription(formattedTransactionId);
|
|
562
|
-
logger.info("Successfully retrieved inscription", {
|
|
563
|
-
formattedTransactionId
|
|
564
|
-
});
|
|
565
|
-
return result;
|
|
566
|
-
} catch (error) {
|
|
567
|
-
logger.error("Error retrieving inscription", {
|
|
568
|
-
formattedTransactionId,
|
|
569
|
-
error
|
|
570
|
-
});
|
|
571
|
-
throw error;
|
|
74
|
+
/**
|
|
75
|
+
* Clear all cached entries
|
|
76
|
+
*/
|
|
77
|
+
clear() {
|
|
78
|
+
this.cache.clear();
|
|
572
79
|
}
|
|
573
80
|
}
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
`Missing required Hashinal metadata fields: ${missingFields.join(", ")}`
|
|
580
|
-
);
|
|
581
|
-
logger.error("Hashinal metadata validation failed", { missingFields });
|
|
582
|
-
throw error;
|
|
81
|
+
class SDKCache {
|
|
82
|
+
constructor() {
|
|
83
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
84
|
+
this.maxSize = 10;
|
|
85
|
+
this.defaultTtlMs = 30 * 60 * 1e3;
|
|
583
86
|
}
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
if (options.mode === "hashinal" && options.metadata) {
|
|
617
|
-
validateHashinalMetadata(options.metadata, logger);
|
|
618
|
-
}
|
|
619
|
-
const sdk = await getOrCreateSDK(clientConfig, options, existingSDK);
|
|
620
|
-
const baseRequest = {
|
|
621
|
-
holderId: clientConfig.accountId,
|
|
622
|
-
metadata: options.metadata || {},
|
|
623
|
-
tags: options.tags || [],
|
|
624
|
-
mode: options.mode || "file",
|
|
625
|
-
fileStandard: options.fileStandard,
|
|
626
|
-
chunkSize: options.chunkSize
|
|
627
|
-
};
|
|
628
|
-
let request;
|
|
629
|
-
switch (input.type) {
|
|
630
|
-
case "url":
|
|
631
|
-
request = {
|
|
632
|
-
...baseRequest,
|
|
633
|
-
file: {
|
|
634
|
-
type: "url",
|
|
635
|
-
url: input.url
|
|
636
|
-
}
|
|
637
|
-
};
|
|
638
|
-
break;
|
|
639
|
-
case "file": {
|
|
640
|
-
const fileData = await convertFileToBase64(input.path);
|
|
641
|
-
request = {
|
|
642
|
-
...baseRequest,
|
|
643
|
-
file: {
|
|
644
|
-
type: "base64",
|
|
645
|
-
base64: fileData.base64,
|
|
646
|
-
fileName: fileData.fileName,
|
|
647
|
-
mimeType: fileData.mimeType
|
|
648
|
-
}
|
|
649
|
-
};
|
|
650
|
-
break;
|
|
651
|
-
}
|
|
652
|
-
case "buffer":
|
|
653
|
-
request = {
|
|
654
|
-
...baseRequest,
|
|
655
|
-
file: {
|
|
656
|
-
type: "base64",
|
|
657
|
-
base64: Buffer.from(
|
|
658
|
-
input.buffer instanceof ArrayBuffer ? new Uint8Array(input.buffer) : input.buffer
|
|
659
|
-
).toString("base64"),
|
|
660
|
-
fileName: input.fileName,
|
|
661
|
-
mimeType: input.mimeType
|
|
662
|
-
}
|
|
663
|
-
};
|
|
664
|
-
break;
|
|
665
|
-
}
|
|
666
|
-
if (options.mode === "hashinal") {
|
|
667
|
-
request.metadataObject = options.metadata;
|
|
668
|
-
request.creator = options.metadata?.creator || clientConfig.accountId;
|
|
669
|
-
request.description = options.metadata?.description;
|
|
670
|
-
if (options.jsonFileURL) {
|
|
671
|
-
request.jsonFileURL = options.jsonFileURL;
|
|
87
|
+
// 30 minutes
|
|
88
|
+
/**
|
|
89
|
+
* Generate config key for SDK instance
|
|
90
|
+
*/
|
|
91
|
+
generateConfigKey(config) {
|
|
92
|
+
return Buffer.from(JSON.stringify(config)).toString("base64");
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get cached SDK instance
|
|
96
|
+
*/
|
|
97
|
+
get(config) {
|
|
98
|
+
const configKey = this.generateConfigKey(config);
|
|
99
|
+
const entry = this.cache.get(configKey);
|
|
100
|
+
if (!entry) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
const now = Date.now();
|
|
104
|
+
if (now - entry.timestamp > this.defaultTtlMs) {
|
|
105
|
+
this.cache.delete(configKey);
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
return entry.sdk;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Store SDK instance in cache
|
|
112
|
+
*/
|
|
113
|
+
set(config, sdk) {
|
|
114
|
+
const configKey = this.generateConfigKey(config);
|
|
115
|
+
if (this.cache.size >= this.maxSize) {
|
|
116
|
+
const firstKey = this.cache.keys().next().value;
|
|
117
|
+
if (firstKey) {
|
|
118
|
+
this.cache.delete(firstKey);
|
|
672
119
|
}
|
|
673
120
|
}
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
});
|
|
679
|
-
const inscriptionResponse = await sdk.startInscription(request);
|
|
680
|
-
logger.debug("Received inscription response for quote parsing", {
|
|
681
|
-
hasTransactionBytes: !!inscriptionResponse.transactionBytes,
|
|
682
|
-
bytesLength: inscriptionResponse.transactionBytes?.length || 0,
|
|
683
|
-
transactionBytesType: typeof inscriptionResponse.transactionBytes,
|
|
684
|
-
totalCost: inscriptionResponse.totalCost
|
|
685
|
-
});
|
|
686
|
-
const quote = await parseTransactionForQuote(
|
|
687
|
-
inscriptionResponse,
|
|
688
|
-
logger
|
|
689
|
-
);
|
|
690
|
-
cacheQuote(input, clientConfig, options, quote);
|
|
691
|
-
logger.info("Successfully generated inscription quote", {
|
|
692
|
-
totalCostHbar: quote.totalCostHbar
|
|
121
|
+
this.cache.set(configKey, {
|
|
122
|
+
sdk,
|
|
123
|
+
timestamp: Date.now(),
|
|
124
|
+
config: configKey
|
|
693
125
|
});
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
logger.error("Error generating inscription quote", error);
|
|
701
|
-
throw error;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Clear all cached SDK instances
|
|
129
|
+
*/
|
|
130
|
+
clear() {
|
|
131
|
+
this.cache.clear();
|
|
702
132
|
}
|
|
703
133
|
}
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
hasTransfers: !!parsedTransaction.transfers,
|
|
737
|
-
transferCount: parsedTransaction.transfers?.length || 0,
|
|
738
|
-
transfers: parsedTransaction.transfers
|
|
739
|
-
});
|
|
740
|
-
let totalTransferAmount = 0;
|
|
741
|
-
if (parsedTransaction.transfers && parsedTransaction.transfers.length > 0) {
|
|
742
|
-
for (const transfer of parsedTransaction.transfers) {
|
|
743
|
-
const transferAmount = typeof transfer.amount === "string" ? parseFloat(transfer.amount) : transfer.amount;
|
|
744
|
-
if (transferAmount < 0) {
|
|
745
|
-
const amountHbar = Math.abs(transferAmount);
|
|
746
|
-
totalTransferAmount += amountHbar;
|
|
747
|
-
logger.debug("Found HBAR transfer", {
|
|
748
|
-
from: transfer.accountId,
|
|
749
|
-
to: "service",
|
|
750
|
-
amount: amountHbar
|
|
751
|
-
});
|
|
752
|
-
}
|
|
753
|
-
}
|
|
754
|
-
}
|
|
755
|
-
if (totalTransferAmount > 0) {
|
|
756
|
-
totalCostHbar = totalTransferAmount.toString();
|
|
757
|
-
logger.debug("Using parsed transaction transfer amount", {
|
|
758
|
-
totalTransferAmount,
|
|
759
|
-
totalCostHbar
|
|
760
|
-
});
|
|
761
|
-
}
|
|
762
|
-
} catch (parseError) {
|
|
763
|
-
logger.warn(
|
|
764
|
-
"Could not parse transaction bytes, using totalCost fallback",
|
|
765
|
-
{
|
|
766
|
-
error: parseError,
|
|
767
|
-
errorMessage: parseError instanceof Error ? parseError.message : String(parseError)
|
|
768
|
-
}
|
|
769
|
-
);
|
|
770
|
-
}
|
|
771
|
-
}
|
|
772
|
-
const transfers = [
|
|
773
|
-
{
|
|
774
|
-
to: "Inscription Service",
|
|
775
|
-
amount: totalCostHbar,
|
|
776
|
-
description: `Inscription fee (${totalCostHbar} HBAR)`
|
|
777
|
-
}
|
|
778
|
-
];
|
|
779
|
-
const validUntil = new Date(Date.now() + 15 * 60 * 1e3).toISOString();
|
|
780
|
-
const quote = {
|
|
781
|
-
totalCostHbar,
|
|
782
|
-
validUntil,
|
|
783
|
-
breakdown: {
|
|
784
|
-
transfers
|
|
785
|
-
}
|
|
786
|
-
};
|
|
787
|
-
logger.debug("Successfully parsed transaction for quote", {
|
|
788
|
-
totalCostHbar: quote.totalCostHbar,
|
|
789
|
-
transferCount: transfers.length,
|
|
790
|
-
hasTransactionBytes: !!inscriptionResponse.transactionBytes,
|
|
791
|
-
hasTotalCost: !!inscriptionResponse.totalCost
|
|
134
|
+
const quoteCache = new QuoteCache();
|
|
135
|
+
const sdkCache = new SDKCache();
|
|
136
|
+
async function getOrCreateSDK(clientConfig, options, existingSDK) {
|
|
137
|
+
if (existingSDK) {
|
|
138
|
+
return existingSDK;
|
|
139
|
+
}
|
|
140
|
+
const connectionMode = options.connectionMode ?? "auto";
|
|
141
|
+
const cacheConfig = {
|
|
142
|
+
apiKey: options.apiKey,
|
|
143
|
+
accountId: clientConfig.accountId,
|
|
144
|
+
network: clientConfig.network || "mainnet",
|
|
145
|
+
authType: options.apiKey ? "api" : "server",
|
|
146
|
+
connectionMode
|
|
147
|
+
};
|
|
148
|
+
const cachedSDK = sdkCache.get(cacheConfig);
|
|
149
|
+
if (cachedSDK) {
|
|
150
|
+
return cachedSDK;
|
|
151
|
+
}
|
|
152
|
+
let sdk;
|
|
153
|
+
if (options.apiKey) {
|
|
154
|
+
sdk = new InscriptionSDK({
|
|
155
|
+
apiKey: options.apiKey,
|
|
156
|
+
network: clientConfig.network || "mainnet",
|
|
157
|
+
connectionMode
|
|
158
|
+
});
|
|
159
|
+
} else {
|
|
160
|
+
sdk = await InscriptionSDK.createWithAuth({
|
|
161
|
+
type: "server",
|
|
162
|
+
accountId: clientConfig.accountId,
|
|
163
|
+
privateKey: typeof clientConfig.privateKey === "string" ? clientConfig.privateKey : clientConfig.privateKey.toString(),
|
|
164
|
+
network: clientConfig.network || "mainnet",
|
|
165
|
+
connectionMode
|
|
792
166
|
});
|
|
793
|
-
return quote;
|
|
794
|
-
} catch (error) {
|
|
795
|
-
logger.error("Error parsing transaction for quote", error);
|
|
796
|
-
throw error;
|
|
797
167
|
}
|
|
168
|
+
sdkCache.set(cacheConfig, sdk);
|
|
169
|
+
return sdk;
|
|
798
170
|
}
|
|
799
|
-
|
|
800
|
-
const
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
];
|
|
830
|
-
const stage = allowedStages.includes(stageRaw) ? stageRaw : "confirming";
|
|
831
|
-
const message = data.message || "Processing inscription";
|
|
832
|
-
const percent = data.progressPercent || 50;
|
|
833
|
-
progressReporter.report({
|
|
834
|
-
stage,
|
|
835
|
-
message,
|
|
836
|
-
progressPercent: percent,
|
|
837
|
-
details: data.details
|
|
838
|
-
});
|
|
839
|
-
};
|
|
840
|
-
return await waitMethod(
|
|
841
|
-
normalizedId,
|
|
842
|
-
maxAttempts,
|
|
843
|
-
intervalMs,
|
|
844
|
-
true,
|
|
845
|
-
wrappedCallback
|
|
846
|
-
);
|
|
847
|
-
} catch (e) {
|
|
848
|
-
logger.debug("Falling back to standard waitForInscription method", {
|
|
849
|
-
error: e
|
|
850
|
-
});
|
|
851
|
-
progressReporter.verifying("Verifying inscription status", 50, {
|
|
852
|
-
error: e
|
|
853
|
-
});
|
|
854
|
-
return await sdk.waitForInscription(
|
|
855
|
-
normalizedId,
|
|
856
|
-
maxAttempts,
|
|
857
|
-
intervalMs,
|
|
858
|
-
true
|
|
171
|
+
function getCachedQuote(input, clientConfig, options) {
|
|
172
|
+
const cacheKey = quoteCache.createCacheKey(input, clientConfig, options);
|
|
173
|
+
return quoteCache.get(cacheKey);
|
|
174
|
+
}
|
|
175
|
+
function cacheQuote(input, clientConfig, options, quote) {
|
|
176
|
+
const cacheKey = quoteCache.createCacheKey(input, clientConfig, options);
|
|
177
|
+
const quoteTtlMs = 10 * 60 * 1e3;
|
|
178
|
+
quoteCache.set(cacheKey, quote, quoteTtlMs);
|
|
179
|
+
}
|
|
180
|
+
function validateQuoteParameters(input, clientConfig, options) {
|
|
181
|
+
if (!input || typeof input !== "object" || !("type" in input)) {
|
|
182
|
+
throw new Error("Invalid inscription input: type is required");
|
|
183
|
+
}
|
|
184
|
+
if (!clientConfig || !clientConfig.accountId) {
|
|
185
|
+
throw new Error("Invalid client config: accountId is required");
|
|
186
|
+
}
|
|
187
|
+
if (!options) {
|
|
188
|
+
throw new Error("Options are required");
|
|
189
|
+
}
|
|
190
|
+
if (options.mode === "hashinal") {
|
|
191
|
+
if (!options.metadata) {
|
|
192
|
+
throw new Error("Hashinal mode requires metadata");
|
|
193
|
+
}
|
|
194
|
+
const requiredFields = ["name", "creator", "description", "type"];
|
|
195
|
+
const missingFields = requiredFields.filter(
|
|
196
|
+
(field) => !options.metadata || !options.metadata[field]
|
|
197
|
+
);
|
|
198
|
+
if (missingFields.length > 0) {
|
|
199
|
+
throw new Error(
|
|
200
|
+
`Missing required Hashinal metadata fields: ${missingFields.join(", ")}`
|
|
859
201
|
);
|
|
860
202
|
}
|
|
861
|
-
} catch (error) {
|
|
862
|
-
logger.error("Error waiting for inscription confirmation", {
|
|
863
|
-
transactionId,
|
|
864
|
-
maxAttempts,
|
|
865
|
-
intervalMs,
|
|
866
|
-
error
|
|
867
|
-
});
|
|
868
|
-
progressReporter.failed("Inscription confirmation failed", {
|
|
869
|
-
transactionId,
|
|
870
|
-
error
|
|
871
|
-
});
|
|
872
|
-
throw error;
|
|
873
203
|
}
|
|
874
204
|
}
|
|
875
205
|
export {
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
retrieveInscription,
|
|
881
|
-
waitForInscriptionConfirmation
|
|
206
|
+
cacheQuote,
|
|
207
|
+
getCachedQuote,
|
|
208
|
+
getOrCreateSDK,
|
|
209
|
+
validateQuoteParameters
|
|
882
210
|
};
|
|
883
211
|
//# sourceMappingURL=standards-sdk.es125.js.map
|