zerc20-client-sdk 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +261 -0
- package/dist/constants.d.ts +15 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +15 -0
- package/dist/constants.js.map +1 -1
- package/dist/decider/__tests__/prover.test.d.ts +2 -0
- package/dist/decider/__tests__/prover.test.d.ts.map +1 -0
- package/dist/decider/__tests__/prover.test.js +246 -0
- package/dist/decider/__tests__/prover.test.js.map +1 -0
- package/dist/decider/prover.d.ts +36 -4
- package/dist/decider/prover.d.ts.map +1 -1
- package/dist/decider/prover.js +48 -38
- package/dist/decider/prover.js.map +1 -1
- package/dist/ic/__tests__/candid.test.d.ts +2 -0
- package/dist/ic/__tests__/candid.test.d.ts.map +1 -0
- package/dist/ic/__tests__/candid.test.js +44 -0
- package/dist/ic/__tests__/candid.test.js.map +1 -0
- package/dist/ic/__tests__/client.test.d.ts +2 -0
- package/dist/ic/__tests__/client.test.d.ts.map +1 -0
- package/dist/ic/__tests__/client.test.js +522 -0
- package/dist/ic/__tests__/client.test.js.map +1 -0
- package/dist/ic/__tests__/config.test.d.ts +2 -0
- package/dist/ic/__tests__/config.test.d.ts.map +1 -0
- package/dist/ic/__tests__/config.test.js +72 -0
- package/dist/ic/__tests__/config.test.js.map +1 -0
- package/dist/ic/__tests__/connections.test.d.ts +2 -0
- package/dist/ic/__tests__/connections.test.d.ts.map +1 -0
- package/dist/ic/__tests__/connections.test.js +385 -0
- package/dist/ic/__tests__/connections.test.js.map +1 -0
- package/dist/ic/__tests__/invoice.test.d.ts +2 -0
- package/dist/ic/__tests__/invoice.test.d.ts.map +1 -0
- package/dist/ic/__tests__/invoice.test.js +95 -0
- package/dist/ic/__tests__/invoice.test.js.map +1 -0
- package/dist/ic/authorization.d.ts +28 -0
- package/dist/ic/authorization.d.ts.map +1 -1
- package/dist/ic/authorization.js +24 -0
- package/dist/ic/authorization.js.map +1 -1
- package/dist/ic/candid.d.ts +72 -0
- package/dist/ic/candid.d.ts.map +1 -0
- package/dist/ic/candid.js +35 -0
- package/dist/ic/candid.js.map +1 -0
- package/dist/ic/client.d.ts +57 -59
- package/dist/ic/client.d.ts.map +1 -1
- package/dist/ic/client.js +59 -81
- package/dist/ic/client.js.map +1 -1
- package/dist/ic/config.d.ts +27 -0
- package/dist/ic/config.d.ts.map +1 -1
- package/dist/ic/config.js +27 -0
- package/dist/ic/config.js.map +1 -1
- package/dist/ic/connections.d.ts +99 -4
- package/dist/ic/connections.d.ts.map +1 -1
- package/dist/ic/connections.js +222 -30
- package/dist/ic/connections.js.map +1 -1
- package/dist/ic/encryption.d.ts +33 -0
- package/dist/ic/encryption.d.ts.map +1 -1
- package/dist/ic/encryption.js +21 -0
- package/dist/ic/encryption.js.map +1 -1
- package/dist/ic/errors.d.ts +15 -0
- package/dist/ic/errors.d.ts.map +1 -1
- package/dist/ic/errors.js +15 -0
- package/dist/ic/errors.js.map +1 -1
- package/dist/ic/idl.d.ts +26 -0
- package/dist/ic/idl.d.ts.map +1 -0
- package/dist/ic/idl.js +84 -0
- package/dist/ic/idl.js.map +1 -0
- package/dist/ic/index.d.ts +1 -1
- package/dist/ic/index.d.ts.map +1 -1
- package/dist/ic/index.js +1 -1
- package/dist/ic/index.js.map +1 -1
- package/dist/ic/invoice.d.ts.map +1 -1
- package/dist/ic/invoice.js.map +1 -1
- package/dist/ic/types.d.ts +42 -0
- package/dist/ic/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/onchain/__tests__/contracts.test.d.ts +2 -0
- package/dist/onchain/__tests__/contracts.test.d.ts.map +1 -0
- package/dist/onchain/__tests__/contracts.test.js +42 -0
- package/dist/onchain/__tests__/contracts.test.js.map +1 -0
- package/dist/onchain/contracts.d.ts +22 -0
- package/dist/onchain/contracts.d.ts.map +1 -1
- package/dist/onchain/contracts.js +22 -0
- package/dist/onchain/contracts.js.map +1 -1
- package/dist/operations/__tests__/invoice.test.d.ts +2 -0
- package/dist/operations/__tests__/invoice.test.d.ts.map +1 -0
- package/dist/operations/__tests__/invoice.test.js +261 -0
- package/dist/operations/__tests__/invoice.test.js.map +1 -0
- package/dist/operations/__tests__/privateSend.test.d.ts +2 -0
- package/dist/operations/__tests__/privateSend.test.d.ts.map +1 -0
- package/dist/operations/__tests__/privateSend.test.js +135 -0
- package/dist/operations/__tests__/privateSend.test.js.map +1 -0
- package/dist/operations/__tests__/reexports.test.d.ts +2 -0
- package/dist/operations/__tests__/reexports.test.d.ts.map +1 -0
- package/dist/operations/__tests__/reexports.test.js +22 -0
- package/dist/operations/__tests__/reexports.test.js.map +1 -0
- package/dist/operations/__tests__/scanner.test.d.ts +2 -0
- package/dist/operations/__tests__/scanner.test.d.ts.map +1 -0
- package/dist/operations/__tests__/scanner.test.js +201 -0
- package/dist/operations/__tests__/scanner.test.js.map +1 -0
- package/dist/operations/__tests__/teleport.test.d.ts +2 -0
- package/dist/operations/__tests__/teleport.test.d.ts.map +1 -0
- package/dist/operations/__tests__/teleport.test.js +35 -0
- package/dist/operations/__tests__/teleport.test.js.map +1 -0
- package/dist/operations/__tests__/teleportProof.test.d.ts +2 -0
- package/dist/operations/__tests__/teleportProof.test.d.ts.map +1 -0
- package/dist/operations/__tests__/teleportProof.test.js +126 -0
- package/dist/operations/__tests__/teleportProof.test.js.map +1 -0
- package/dist/operations/invoice.d.ts +44 -0
- package/dist/operations/invoice.d.ts.map +1 -1
- package/dist/operations/invoice.js +30 -0
- package/dist/operations/invoice.js.map +1 -1
- package/dist/operations/liquidityManager/__tests__/balance.test.d.ts +2 -0
- package/dist/operations/liquidityManager/__tests__/balance.test.d.ts.map +1 -0
- package/dist/operations/liquidityManager/__tests__/balance.test.js +104 -0
- package/dist/operations/liquidityManager/__tests__/balance.test.js.map +1 -0
- package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.d.ts +2 -0
- package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.d.ts.map +1 -0
- package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.js +198 -0
- package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.js.map +1 -0
- package/dist/operations/liquidityManager/__tests__/helpers.test.d.ts +2 -0
- package/dist/operations/liquidityManager/__tests__/helpers.test.d.ts.map +1 -0
- package/dist/operations/liquidityManager/__tests__/helpers.test.js +126 -0
- package/dist/operations/liquidityManager/__tests__/helpers.test.js.map +1 -0
- package/dist/operations/liquidityManager/__tests__/unwrap.test.d.ts +2 -0
- package/dist/operations/liquidityManager/__tests__/unwrap.test.d.ts.map +1 -0
- package/dist/operations/liquidityManager/__tests__/unwrap.test.js +224 -0
- package/dist/operations/liquidityManager/__tests__/unwrap.test.js.map +1 -0
- package/dist/operations/liquidityManager/__tests__/wrap.test.d.ts +2 -0
- package/dist/operations/liquidityManager/__tests__/wrap.test.d.ts.map +1 -0
- package/dist/operations/liquidityManager/__tests__/wrap.test.js +144 -0
- package/dist/operations/liquidityManager/__tests__/wrap.test.js.map +1 -0
- package/dist/operations/liquidityManager/balance.d.ts +19 -0
- package/dist/operations/liquidityManager/balance.d.ts.map +1 -0
- package/dist/operations/liquidityManager/balance.js +62 -0
- package/dist/operations/liquidityManager/balance.js.map +1 -0
- package/dist/operations/liquidityManager/crossUnwrap.d.ts +73 -0
- package/dist/operations/liquidityManager/crossUnwrap.d.ts.map +1 -0
- package/dist/operations/liquidityManager/crossUnwrap.js +189 -0
- package/dist/operations/liquidityManager/crossUnwrap.js.map +1 -0
- package/dist/operations/liquidityManager/helpers.d.ts +15521 -0
- package/dist/operations/liquidityManager/helpers.d.ts.map +1 -0
- package/dist/operations/liquidityManager/helpers.js +81 -0
- package/dist/operations/liquidityManager/helpers.js.map +1 -0
- package/dist/operations/liquidityManager/index.d.ts +12 -0
- package/dist/operations/liquidityManager/index.d.ts.map +1 -0
- package/dist/operations/liquidityManager/index.js +9 -0
- package/dist/operations/liquidityManager/index.js.map +1 -0
- package/dist/operations/liquidityManager/types.d.ts +90 -0
- package/dist/operations/liquidityManager/types.d.ts.map +1 -0
- package/dist/operations/liquidityManager/types.js +5 -0
- package/dist/operations/liquidityManager/types.js.map +1 -0
- package/dist/operations/liquidityManager/unwrap.d.ts +54 -0
- package/dist/operations/liquidityManager/unwrap.d.ts.map +1 -0
- package/dist/operations/liquidityManager/unwrap.js +80 -0
- package/dist/operations/liquidityManager/unwrap.js.map +1 -0
- package/dist/operations/liquidityManager/wrap.d.ts +38 -0
- package/dist/operations/liquidityManager/wrap.d.ts.map +1 -0
- package/dist/operations/liquidityManager/wrap.js +53 -0
- package/dist/operations/liquidityManager/wrap.js.map +1 -0
- package/dist/operations/liquidityManager.d.ts +3 -104
- package/dist/operations/liquidityManager.d.ts.map +1 -1
- package/dist/operations/liquidityManager.js +3 -343
- package/dist/operations/liquidityManager.js.map +1 -1
- package/dist/operations/privateSend.d.ts +26 -0
- package/dist/operations/privateSend.d.ts.map +1 -1
- package/dist/operations/privateSend.js +11 -0
- package/dist/operations/privateSend.js.map +1 -1
- package/dist/operations/receive/__tests__/announcementStatus.test.d.ts +2 -0
- package/dist/operations/receive/__tests__/announcementStatus.test.d.ts.map +1 -0
- package/dist/operations/receive/__tests__/announcementStatus.test.js +223 -0
- package/dist/operations/receive/__tests__/announcementStatus.test.js.map +1 -0
- package/dist/operations/receive/__tests__/cache.test.d.ts +2 -0
- package/dist/operations/receive/__tests__/cache.test.d.ts.map +1 -0
- package/dist/operations/receive/__tests__/cache.test.js +339 -0
- package/dist/operations/receive/__tests__/cache.test.js.map +1 -0
- package/dist/operations/receive/__tests__/helpers.test.d.ts +2 -0
- package/dist/operations/receive/__tests__/helpers.test.d.ts.map +1 -0
- package/dist/operations/receive/__tests__/helpers.test.js +80 -0
- package/dist/operations/receive/__tests__/helpers.test.js.map +1 -0
- package/dist/operations/receive/__tests__/redeemContext.test.d.ts +2 -0
- package/dist/operations/receive/__tests__/redeemContext.test.d.ts.map +1 -0
- package/dist/operations/receive/__tests__/redeemContext.test.js +230 -0
- package/dist/operations/receive/__tests__/redeemContext.test.js.map +1 -0
- package/dist/operations/receive/announcementStatus.d.ts +12 -0
- package/dist/operations/receive/announcementStatus.d.ts.map +1 -0
- package/dist/operations/receive/announcementStatus.js +56 -0
- package/dist/operations/receive/announcementStatus.js.map +1 -0
- package/dist/operations/receive/cache.d.ts +69 -0
- package/dist/operations/receive/cache.d.ts.map +1 -0
- package/dist/operations/receive/cache.js +105 -0
- package/dist/operations/receive/cache.js.map +1 -0
- package/dist/operations/receive/helpers.d.ts +16 -0
- package/dist/operations/receive/helpers.d.ts.map +1 -0
- package/dist/operations/receive/helpers.js +33 -0
- package/dist/operations/receive/helpers.js.map +1 -0
- package/dist/operations/receive/index.d.ts +9 -0
- package/dist/operations/receive/index.d.ts.map +1 -0
- package/dist/operations/receive/index.js +9 -0
- package/dist/operations/receive/index.js.map +1 -0
- package/dist/operations/receive/redeemContext.d.ts +16 -0
- package/dist/operations/receive/redeemContext.d.ts.map +1 -0
- package/dist/operations/receive/redeemContext.js +107 -0
- package/dist/operations/receive/redeemContext.js.map +1 -0
- package/dist/operations/receive/types.d.ts +141 -0
- package/dist/operations/receive/types.d.ts.map +1 -0
- package/dist/operations/receive/types.js +5 -0
- package/dist/operations/receive/types.js.map +1 -0
- package/dist/operations/receive.d.ts +5 -66
- package/dist/operations/receive.d.ts.map +1 -1
- package/dist/operations/receive.js +5 -173
- package/dist/operations/receive.js.map +1 -1
- package/dist/operations/scanner.d.ts +37 -0
- package/dist/operations/scanner.d.ts.map +1 -1
- package/dist/operations/scanner.js +21 -0
- package/dist/operations/scanner.js.map +1 -1
- package/dist/operations/teleport.d.ts +5 -0
- package/dist/operations/teleport.d.ts.map +1 -1
- package/dist/operations/teleport.js +5 -0
- package/dist/operations/teleport.js.map +1 -1
- package/dist/operations/teleportProof.d.ts +34 -0
- package/dist/operations/teleportProof.d.ts.map +1 -1
- package/dist/operations/teleportProof.js +16 -0
- package/dist/operations/teleportProof.js.map +1 -1
- package/dist/registry/__tests__/helpers.test.d.ts +2 -0
- package/dist/registry/__tests__/helpers.test.d.ts.map +1 -0
- package/dist/registry/__tests__/helpers.test.js +98 -0
- package/dist/registry/__tests__/helpers.test.js.map +1 -0
- package/dist/registry/__tests__/loader.test.d.ts +2 -0
- package/dist/registry/__tests__/loader.test.d.ts.map +1 -0
- package/dist/registry/__tests__/loader.test.js +300 -0
- package/dist/registry/__tests__/loader.test.js.map +1 -0
- package/dist/registry/__tests__/normalize.test.d.ts +2 -0
- package/dist/registry/__tests__/normalize.test.d.ts.map +1 -0
- package/dist/registry/__tests__/normalize.test.js +180 -0
- package/dist/registry/__tests__/normalize.test.js.map +1 -0
- package/dist/registry/__tests__/parsing.test.d.ts +2 -0
- package/dist/registry/__tests__/parsing.test.d.ts.map +1 -0
- package/dist/registry/__tests__/parsing.test.js +188 -0
- package/dist/registry/__tests__/parsing.test.js.map +1 -0
- package/dist/registry/helpers.d.ts +14 -0
- package/dist/registry/helpers.d.ts.map +1 -0
- package/dist/registry/helpers.js +29 -0
- package/dist/registry/helpers.js.map +1 -0
- package/dist/registry/index.d.ts +13 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +15 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/loader.d.ts +57 -0
- package/dist/registry/loader.d.ts.map +1 -0
- package/dist/registry/loader.js +188 -0
- package/dist/registry/loader.js.map +1 -0
- package/dist/registry/normalize.d.ts +29 -0
- package/dist/registry/normalize.d.ts.map +1 -0
- package/dist/registry/normalize.js +81 -0
- package/dist/registry/normalize.js.map +1 -0
- package/dist/registry/parsing.d.ts +55 -0
- package/dist/registry/parsing.d.ts.map +1 -0
- package/dist/registry/parsing.js +139 -0
- package/dist/registry/parsing.js.map +1 -0
- package/dist/registry/tokens.d.ts +6 -42
- package/dist/registry/tokens.d.ts.map +1 -1
- package/dist/registry/tokens.js +6 -231
- package/dist/registry/tokens.js.map +1 -1
- package/dist/registry/types.d.ts +81 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +2 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/sdk.d.ts +57 -0
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +21 -0
- package/dist/sdk.js.map +1 -1
- package/dist/sdk.publicApi.test.d.ts +2 -0
- package/dist/sdk.publicApi.test.d.ts.map +1 -0
- package/dist/sdk.publicApi.test.js +78 -0
- package/dist/sdk.publicApi.test.js.map +1 -0
- package/dist/types.d.ts +159 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/__tests__/branded.test.d.ts +2 -0
- package/dist/utils/__tests__/branded.test.d.ts.map +1 -0
- package/dist/utils/__tests__/branded.test.js +293 -0
- package/dist/utils/__tests__/branded.test.js.map +1 -0
- package/dist/utils/__tests__/fees.test.d.ts +2 -0
- package/dist/utils/__tests__/fees.test.d.ts.map +1 -0
- package/dist/utils/__tests__/fees.test.js +84 -0
- package/dist/utils/__tests__/fees.test.js.map +1 -0
- package/dist/utils/__tests__/hex.test.d.ts +2 -0
- package/dist/utils/__tests__/hex.test.d.ts.map +1 -0
- package/dist/utils/__tests__/hex.test.js +252 -0
- package/dist/utils/__tests__/hex.test.js.map +1 -0
- package/dist/utils/__tests__/http.test.d.ts +2 -0
- package/dist/utils/__tests__/http.test.d.ts.map +1 -0
- package/dist/utils/__tests__/http.test.js +295 -0
- package/dist/utils/__tests__/http.test.js.map +1 -0
- package/dist/utils/branded.d.ts +154 -0
- package/dist/utils/branded.d.ts.map +1 -0
- package/dist/utils/branded.js +177 -0
- package/dist/utils/branded.js.map +1 -0
- package/dist/utils/fees.d.ts +6 -0
- package/dist/utils/fees.d.ts.map +1 -1
- package/dist/utils/fees.js +4 -0
- package/dist/utils/fees.js.map +1 -1
- package/dist/utils/hex.d.ts +37 -0
- package/dist/utils/hex.d.ts.map +1 -1
- package/dist/utils/hex.js +30 -0
- package/dist/utils/hex.js.map +1 -1
- package/dist/utils/http.d.ts +100 -0
- package/dist/utils/http.d.ts.map +1 -1
- package/dist/utils/http.js +158 -0
- package/dist/utils/http.js.map +1 -1
- package/dist/utils/merkle.d.ts +26 -0
- package/dist/utils/merkle.d.ts.map +1 -1
- package/dist/utils/merkle.js +26 -0
- package/dist/utils/merkle.js.map +1 -1
- package/dist/wasm/__tests__/artifacts.test.d.ts +2 -0
- package/dist/wasm/__tests__/artifacts.test.d.ts.map +1 -0
- package/dist/wasm/__tests__/artifacts.test.js +437 -0
- package/dist/wasm/__tests__/artifacts.test.js.map +1 -0
- package/dist/wasm/__tests__/functions.test.d.ts +2 -0
- package/dist/wasm/__tests__/functions.test.d.ts.map +1 -0
- package/dist/wasm/__tests__/functions.test.js +34 -0
- package/dist/wasm/__tests__/functions.test.js.map +1 -0
- package/dist/wasm/__tests__/helpers.test.d.ts +2 -0
- package/dist/wasm/__tests__/helpers.test.d.ts.map +1 -0
- package/dist/wasm/__tests__/helpers.test.js +128 -0
- package/dist/wasm/__tests__/helpers.test.js.map +1 -0
- package/dist/wasm/__tests__/loader.test.d.ts +2 -0
- package/dist/wasm/__tests__/loader.test.d.ts.map +1 -0
- package/dist/wasm/__tests__/loader.test.js +201 -0
- package/dist/wasm/__tests__/loader.test.js.map +1 -0
- package/dist/wasm/__tests__/runtime.test.d.ts +2 -0
- package/dist/wasm/__tests__/runtime.test.d.ts.map +1 -0
- package/dist/wasm/__tests__/runtime.test.js +335 -0
- package/dist/wasm/__tests__/runtime.test.js.map +1 -0
- package/dist/wasm/__tests__/serialization.test.d.ts +2 -0
- package/dist/wasm/__tests__/serialization.test.d.ts.map +1 -0
- package/dist/wasm/__tests__/serialization.test.js +226 -0
- package/dist/wasm/__tests__/serialization.test.js.map +1 -0
- package/dist/wasm/__tests__/validation.test.js +15 -15
- package/dist/wasm/__tests__/validation.test.js.map +1 -1
- package/dist/wasm/artifacts.d.ts +121 -3
- package/dist/wasm/artifacts.d.ts.map +1 -1
- package/dist/wasm/artifacts.js +175 -50
- package/dist/wasm/artifacts.js.map +1 -1
- package/dist/wasm/functions.d.ts +77 -0
- package/dist/wasm/functions.d.ts.map +1 -0
- package/dist/wasm/functions.js +120 -0
- package/dist/wasm/functions.js.map +1 -0
- package/dist/wasm/helpers.d.ts +32 -0
- package/dist/wasm/helpers.d.ts.map +1 -0
- package/dist/wasm/helpers.js +79 -0
- package/dist/wasm/helpers.js.map +1 -0
- package/dist/wasm/index.d.ts +13 -68
- package/dist/wasm/index.d.ts.map +1 -1
- package/dist/wasm/index.js +14 -514
- package/dist/wasm/index.js.map +1 -1
- package/dist/wasm/loader.d.ts +76 -0
- package/dist/wasm/loader.d.ts.map +1 -0
- package/dist/wasm/loader.js +145 -0
- package/dist/wasm/loader.js.map +1 -0
- package/dist/wasm/runtime.d.ts +65 -0
- package/dist/wasm/runtime.d.ts.map +1 -0
- package/dist/wasm/runtime.js +227 -0
- package/dist/wasm/runtime.js.map +1 -0
- package/dist/wasm/serialization.d.ts +113 -0
- package/dist/wasm/serialization.d.ts.map +1 -0
- package/dist/wasm/serialization.js +188 -0
- package/dist/wasm/serialization.js.map +1 -0
- package/dist/wasm/types.d.ts +30 -0
- package/dist/wasm/types.d.ts.map +1 -0
- package/dist/wasm/types.js +2 -0
- package/dist/wasm/types.js.map +1 -0
- package/dist/zkp/__tests__/proofService.test.d.ts +2 -0
- package/dist/zkp/__tests__/proofService.test.d.ts.map +1 -0
- package/dist/zkp/__tests__/proofService.test.js +283 -0
- package/dist/zkp/__tests__/proofService.test.js.map +1 -0
- package/dist/zkp/__tests__/proofUtils.test.js +86 -0
- package/dist/zkp/__tests__/proofUtils.test.js.map +1 -1
- package/dist/zkp/__tests__/runNovaProver.test.js +13 -1
- package/dist/zkp/__tests__/runNovaProver.test.js.map +1 -1
- package/dist/zkp/__tests__/workerClient.test.d.ts +2 -0
- package/dist/zkp/__tests__/workerClient.test.d.ts.map +1 -0
- package/dist/zkp/__tests__/workerClient.test.js +415 -0
- package/dist/zkp/__tests__/workerClient.test.js.map +1 -0
- package/dist/zkp/index.d.ts +1 -1
- package/dist/zkp/index.d.ts.map +1 -1
- package/dist/zkp/index.js +1 -1
- package/dist/zkp/index.js.map +1 -1
- package/dist/zkp/proofService.d.ts +27 -0
- package/dist/zkp/proofService.d.ts.map +1 -1
- package/dist/zkp/proofService.js +29 -21
- package/dist/zkp/proofService.js.map +1 -1
- package/dist/zkp/proofUtils.d.ts +36 -0
- package/dist/zkp/proofUtils.d.ts.map +1 -1
- package/dist/zkp/proofUtils.js +50 -0
- package/dist/zkp/proofUtils.js.map +1 -1
- package/dist/zkp/workerClient.d.ts +65 -0
- package/dist/zkp/workerClient.d.ts.map +1 -1
- package/dist/zkp/workerClient.js +135 -61
- package/dist/zkp/workerClient.js.map +1 -1
- package/dist/zkp/workerTypes.d.ts +27 -0
- package/dist/zkp/workerTypes.d.ts.map +1 -1
- package/package.json +7 -3
package/dist/zkp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zkp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zkp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC"}
|
package/dist/zkp/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { ProofService } from "./proofService.js";
|
|
2
|
-
export { canUseZkpWorker, disableZkpWorker } from "./workerClient.js";
|
|
2
|
+
export { ZkpWorkerClient, canUseZkpWorker, disableZkpWorker, resetZkpWorker, getDefaultZkpWorkerClient, } from "./workerClient.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/zkp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zkp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zkp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,eAAe,EAEf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,9 +1,36 @@
|
|
|
1
1
|
import type { NovaProverInput, NovaProverOutput, SingleTeleportArtifacts, SingleTeleportParams } from "../types.js";
|
|
2
2
|
import type { WasmRuntime } from "../wasm/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* High-level proof orchestration service.
|
|
5
|
+
* @remarks
|
|
6
|
+
* This service:
|
|
7
|
+
* - Loads required prover artifacts
|
|
8
|
+
* - Optionally runs jobs in a Web Worker (when available)
|
|
9
|
+
* - Falls back to main-thread computation on worker failures
|
|
10
|
+
*
|
|
11
|
+
* Errors thrown by the underlying WASM prover are wrapped with a stable prefix for easier handling.
|
|
12
|
+
*/
|
|
3
13
|
export declare class ProofService {
|
|
4
14
|
private readonly wasm;
|
|
15
|
+
/**
|
|
16
|
+
* Create a proof service bound to a {@link WasmRuntime}.
|
|
17
|
+
*/
|
|
5
18
|
constructor(wasm: WasmRuntime);
|
|
19
|
+
/**
|
|
20
|
+
* Create a single teleport (Groth16) proof for an eligible event.
|
|
21
|
+
* @remarks
|
|
22
|
+
* - Verifies global teleport proofs before proving.
|
|
23
|
+
* - Uses a worker when available; falls back to main thread if the worker fails.
|
|
24
|
+
* @throws If proof verification fails or the prover fails.
|
|
25
|
+
*/
|
|
6
26
|
createSingleTeleportProof(params: SingleTeleportParams): Promise<SingleTeleportArtifacts>;
|
|
27
|
+
/**
|
|
28
|
+
* Run the Nova batch prover to produce an IVC proof for multiple events.
|
|
29
|
+
* @remarks
|
|
30
|
+
* - Requires `events.length === proofs.length` and that each event/proof pair correspond by index.
|
|
31
|
+
* - Uses a worker when available; falls back to main thread if the worker fails.
|
|
32
|
+
* @throws If inputs are invalid, proof verification fails, or the prover fails.
|
|
33
|
+
*/
|
|
7
34
|
runNovaProver(params: NovaProverInput): Promise<NovaProverOutput>;
|
|
8
35
|
private shouldUseWorker;
|
|
9
36
|
private computeSingleTeleportProof;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proofService.d.ts","sourceRoot":"","sources":["../../src/zkp/proofService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"proofService.d.ts","sourceRoot":"","sources":["../../src/zkp/proofService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC;;OAEG;gBAC0B,IAAI,EAAE,WAAW;IAE9C;;;;;;OAMG;IACG,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgB/F;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgBvE,OAAO,CAAC,eAAe;YAIT,0BAA0B;YA+C1B,gBAAgB;CA6D/B"}
|
package/dist/zkp/proofService.js
CHANGED
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
import { hexToBytes, normalizeHex } from "../utils/hex.js";
|
|
2
2
|
import { verifyGlobalTeleportProofs } from "../utils/merkle.js";
|
|
3
3
|
import { loadBatchTeleportArtifacts, loadSingleTeleportArtifacts, } from "../wasm/artifacts.js";
|
|
4
|
-
import { appendDummySteps, formatFieldElement, toFieldHex, toLeafIndexString, } from "./proofUtils.js";
|
|
5
|
-
import { canUseZkpWorker, disableZkpWorker, runZkpWorkerJob
|
|
4
|
+
import { appendDummySteps, formatFieldElement, sortProofsByLeafIndex, toFieldHex, toLeafIndexString, } from "./proofUtils.js";
|
|
5
|
+
import { canUseZkpWorker, disableZkpWorker, runZkpWorkerJob } from "./workerClient.js";
|
|
6
|
+
/**
|
|
7
|
+
* High-level proof orchestration service.
|
|
8
|
+
* @remarks
|
|
9
|
+
* This service:
|
|
10
|
+
* - Loads required prover artifacts
|
|
11
|
+
* - Optionally runs jobs in a Web Worker (when available)
|
|
12
|
+
* - Falls back to main-thread computation on worker failures
|
|
13
|
+
*
|
|
14
|
+
* Errors thrown by the underlying WASM prover are wrapped with a stable prefix for easier handling.
|
|
15
|
+
*/
|
|
6
16
|
export class ProofService {
|
|
7
17
|
wasm;
|
|
18
|
+
/**
|
|
19
|
+
* Create a proof service bound to a {@link WasmRuntime}.
|
|
20
|
+
*/
|
|
8
21
|
constructor(wasm) {
|
|
9
22
|
this.wasm = wasm;
|
|
10
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Create a single teleport (Groth16) proof for an eligible event.
|
|
26
|
+
* @remarks
|
|
27
|
+
* - Verifies global teleport proofs before proving.
|
|
28
|
+
* - Uses a worker when available; falls back to main thread if the worker fails.
|
|
29
|
+
* @throws If proof verification fails or the prover fails.
|
|
30
|
+
*/
|
|
11
31
|
async createSingleTeleportProof(params) {
|
|
12
32
|
const wasmArtifacts = await loadSingleTeleportArtifacts();
|
|
13
33
|
if (this.shouldUseWorker()) {
|
|
@@ -24,6 +44,13 @@ export class ProofService {
|
|
|
24
44
|
}
|
|
25
45
|
return this.computeSingleTeleportProof(params, wasmArtifacts);
|
|
26
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Run the Nova batch prover to produce an IVC proof for multiple events.
|
|
49
|
+
* @remarks
|
|
50
|
+
* - Requires `events.length === proofs.length` and that each event/proof pair correspond by index.
|
|
51
|
+
* - Uses a worker when available; falls back to main thread if the worker fails.
|
|
52
|
+
* @throws If inputs are invalid, proof verification fails, or the prover fails.
|
|
53
|
+
*/
|
|
27
54
|
async runNovaProver(params) {
|
|
28
55
|
const wasmArtifacts = await loadBatchTeleportArtifacts();
|
|
29
56
|
if (this.shouldUseWorker()) {
|
|
@@ -120,23 +147,4 @@ export class ProofService {
|
|
|
120
147
|
}
|
|
121
148
|
}
|
|
122
149
|
}
|
|
123
|
-
function sortProofsByLeafIndex(events, proofs) {
|
|
124
|
-
const proofEventPairs = events.map((event, idx) => ({
|
|
125
|
-
event,
|
|
126
|
-
proof: proofs[idx],
|
|
127
|
-
}));
|
|
128
|
-
proofEventPairs.sort((a, b) => {
|
|
129
|
-
if (a.proof.leafIndex < b.proof.leafIndex) {
|
|
130
|
-
return -1;
|
|
131
|
-
}
|
|
132
|
-
if (a.proof.leafIndex > b.proof.leafIndex) {
|
|
133
|
-
return 1;
|
|
134
|
-
}
|
|
135
|
-
return 0;
|
|
136
|
-
});
|
|
137
|
-
return {
|
|
138
|
-
events: proofEventPairs.map((pair) => pair.event),
|
|
139
|
-
proofs: proofEventPairs.map((pair) => pair.proof),
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
150
|
//# sourceMappingURL=proofService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proofService.js","sourceRoot":"","sources":["../../src/zkp/proofService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proofService.js","sourceRoot":"","sources":["../../src/zkp/proofService.ts"],"names":[],"mappings":"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"}
|
package/dist/zkp/proofUtils.d.ts
CHANGED
|
@@ -1,7 +1,43 @@
|
|
|
1
|
+
import type { GlobalTeleportProof, IndexedEvent } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Convert a bigint to a fixed-width hex string.
|
|
4
|
+
* @param value - Non-negative integer value.
|
|
5
|
+
* @param bytes - Desired byte width. Defaults to 32.
|
|
6
|
+
* @throws If `value` is negative.
|
|
7
|
+
*/
|
|
1
8
|
export declare function toFixedHex(value: bigint, bytes?: number): string;
|
|
9
|
+
/**
|
|
10
|
+
* Convert a bigint to a 32-byte field element hex string.
|
|
11
|
+
*/
|
|
2
12
|
export declare function toFieldHex(value: bigint): string;
|
|
13
|
+
/**
|
|
14
|
+
* Convert a leaf index to its decimal string representation.
|
|
15
|
+
* @remarks Nova circuits often expect indices as decimal strings.
|
|
16
|
+
*/
|
|
3
17
|
export declare function toLeafIndexString(index: bigint): string;
|
|
4
18
|
export declare function formatFieldElement(value: string, label: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Choose a small number of dummy steps to append to a Nova batch.
|
|
21
|
+
* @remarks Uses `crypto.getRandomValues` when available; otherwise returns a minimal default.
|
|
22
|
+
*/
|
|
5
23
|
export declare function randomDummySteps(): number;
|
|
24
|
+
/**
|
|
25
|
+
* Append protocol-specific dummy steps to a list of Nova steps.
|
|
26
|
+
* @remarks
|
|
27
|
+
* Dummy steps are placed at the end of the global transfer tree to avoid collisions.
|
|
28
|
+
*/
|
|
6
29
|
export declare function appendDummySteps(steps: any[]): void;
|
|
30
|
+
/**
|
|
31
|
+
* Sorts events and proofs by leaf index in ascending order.
|
|
32
|
+
* Used for Nova batch proofs to ensure correct ordering.
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* This function assumes that events and proofs arrays have the same length
|
|
36
|
+
* and are indexed correspondingly (events[i] pairs with proofs[i]).
|
|
37
|
+
* Callers should validate length equality before calling this function.
|
|
38
|
+
*/
|
|
39
|
+
export declare function sortProofsByLeafIndex(events: readonly IndexedEvent[], proofs: readonly GlobalTeleportProof[]): {
|
|
40
|
+
events: IndexedEvent[];
|
|
41
|
+
proofs: GlobalTeleportProof[];
|
|
42
|
+
};
|
|
7
43
|
//# sourceMappingURL=proofUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proofUtils.d.ts","sourceRoot":"","sources":["../../src/zkp/proofUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proofUtils.d.ts","sourceRoot":"","sources":["../../src/zkp/proofUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGrE;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,CAMpE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAiBD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAUzC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAmBnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,MAAM,EAAE,SAAS,mBAAmB,EAAE,GACrC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAAC,MAAM,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAkB3D"}
|
package/dist/zkp/proofUtils.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { GLOBAL_TRANSFER_TREE_HEIGHT } from "../constants.js";
|
|
2
2
|
import { normalizeHex } from "../utils/hex.js";
|
|
3
|
+
/**
|
|
4
|
+
* Convert a bigint to a fixed-width hex string.
|
|
5
|
+
* @param value - Non-negative integer value.
|
|
6
|
+
* @param bytes - Desired byte width. Defaults to 32.
|
|
7
|
+
* @throws If `value` is negative.
|
|
8
|
+
*/
|
|
3
9
|
export function toFixedHex(value, bytes = 32) {
|
|
4
10
|
if (value < 0n) {
|
|
5
11
|
throw new Error("toFixedHex: negative values are not supported");
|
|
@@ -7,9 +13,16 @@ export function toFixedHex(value, bytes = 32) {
|
|
|
7
13
|
const hex = value.toString(16).padStart(bytes * 2, "0");
|
|
8
14
|
return `0x${hex}`;
|
|
9
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Convert a bigint to a 32-byte field element hex string.
|
|
18
|
+
*/
|
|
10
19
|
export function toFieldHex(value) {
|
|
11
20
|
return toFixedHex(value, 32);
|
|
12
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Convert a leaf index to its decimal string representation.
|
|
24
|
+
* @remarks Nova circuits often expect indices as decimal strings.
|
|
25
|
+
*/
|
|
13
26
|
export function toLeafIndexString(index) {
|
|
14
27
|
return index.toString(10);
|
|
15
28
|
}
|
|
@@ -30,6 +43,10 @@ function zeroPadField(value, label) {
|
|
|
30
43
|
export function formatFieldElement(value, label) {
|
|
31
44
|
return zeroPadField(value, label);
|
|
32
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Choose a small number of dummy steps to append to a Nova batch.
|
|
48
|
+
* @remarks Uses `crypto.getRandomValues` when available; otherwise returns a minimal default.
|
|
49
|
+
*/
|
|
33
50
|
export function randomDummySteps() {
|
|
34
51
|
const MIN_DUMMY_STEPS = 1;
|
|
35
52
|
const MAX_DUMMY_STEPS = 3;
|
|
@@ -41,6 +58,11 @@ export function randomDummySteps() {
|
|
|
41
58
|
}
|
|
42
59
|
return MIN_DUMMY_STEPS;
|
|
43
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Append protocol-specific dummy steps to a list of Nova steps.
|
|
63
|
+
* @remarks
|
|
64
|
+
* Dummy steps are placed at the end of the global transfer tree to avoid collisions.
|
|
65
|
+
*/
|
|
44
66
|
export function appendDummySteps(steps) {
|
|
45
67
|
const dummySteps = randomDummySteps();
|
|
46
68
|
const maxLeaves = 1n << BigInt(GLOBAL_TRANSFER_TREE_HEIGHT);
|
|
@@ -59,4 +81,32 @@ export function appendDummySteps(steps) {
|
|
|
59
81
|
});
|
|
60
82
|
}
|
|
61
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Sorts events and proofs by leaf index in ascending order.
|
|
86
|
+
* Used for Nova batch proofs to ensure correct ordering.
|
|
87
|
+
*
|
|
88
|
+
* @remarks
|
|
89
|
+
* This function assumes that events and proofs arrays have the same length
|
|
90
|
+
* and are indexed correspondingly (events[i] pairs with proofs[i]).
|
|
91
|
+
* Callers should validate length equality before calling this function.
|
|
92
|
+
*/
|
|
93
|
+
export function sortProofsByLeafIndex(events, proofs) {
|
|
94
|
+
const proofEventPairs = events.map((event, idx) => ({
|
|
95
|
+
event,
|
|
96
|
+
proof: proofs[idx],
|
|
97
|
+
}));
|
|
98
|
+
proofEventPairs.sort((a, b) => {
|
|
99
|
+
if (a.proof.leafIndex < b.proof.leafIndex) {
|
|
100
|
+
return -1;
|
|
101
|
+
}
|
|
102
|
+
if (a.proof.leafIndex > b.proof.leafIndex) {
|
|
103
|
+
return 1;
|
|
104
|
+
}
|
|
105
|
+
return 0;
|
|
106
|
+
});
|
|
107
|
+
return {
|
|
108
|
+
events: proofEventPairs.map((pair) => pair.event),
|
|
109
|
+
proofs: proofEventPairs.map((pair) => pair.proof),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
62
112
|
//# sourceMappingURL=proofUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proofUtils.js","sourceRoot":"","sources":["../../src/zkp/proofUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"proofUtils.js","sourceRoot":"","sources":["../../src/zkp/proofUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,70 @@
|
|
|
1
1
|
import type { ProofWorkerJobType, ProofWorkerPayloads, ProofWorkerResults } from "./workerTypes.js";
|
|
2
|
+
/**
|
|
3
|
+
* Options for creating a ZkpWorkerClient.
|
|
4
|
+
*/
|
|
5
|
+
export interface ZkpWorkerClientOptions {
|
|
6
|
+
/** Custom worker factory for testing */
|
|
7
|
+
createWorker?: () => Worker;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Client for running ZKP proof jobs in a Web Worker.
|
|
11
|
+
* Manages worker lifecycle, job queue, and error handling.
|
|
12
|
+
*/
|
|
13
|
+
export declare class ZkpWorkerClient {
|
|
14
|
+
private worker;
|
|
15
|
+
private failed;
|
|
16
|
+
private nextJobId;
|
|
17
|
+
private readonly pendingJobs;
|
|
18
|
+
private readonly createWorkerFn;
|
|
19
|
+
constructor(options?: ZkpWorkerClientOptions);
|
|
20
|
+
/**
|
|
21
|
+
* Returns true if this client can run jobs (Worker API available and not failed).
|
|
22
|
+
*/
|
|
23
|
+
canUse(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Runs a ZKP proof job in the worker.
|
|
26
|
+
*
|
|
27
|
+
* **Important:** Always await or catch the returned promise.
|
|
28
|
+
* Calling `disable()` or `reset()` will reject pending jobs,
|
|
29
|
+
* which can cause unhandled rejections if not properly awaited.
|
|
30
|
+
*
|
|
31
|
+
* @throws Error if worker is not available or has failed.
|
|
32
|
+
*/
|
|
33
|
+
runJob<T extends ProofWorkerJobType>(type: T, payload: ProofWorkerPayloads[T]): Promise<ProofWorkerResults[T]>;
|
|
34
|
+
/**
|
|
35
|
+
* Disables the worker and rejects all pending jobs.
|
|
36
|
+
*/
|
|
37
|
+
disable(error?: unknown): void;
|
|
38
|
+
/**
|
|
39
|
+
* Resets the client to its initial state. Useful for testing.
|
|
40
|
+
*/
|
|
41
|
+
reset(): void;
|
|
42
|
+
private ensureWorker;
|
|
43
|
+
private handleMessage;
|
|
44
|
+
private handleError;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Returns true if ZKP worker can be used (Worker API available and not failed).
|
|
48
|
+
*/
|
|
2
49
|
export declare function canUseZkpWorker(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Runs a ZKP proof job in the default worker.
|
|
52
|
+
*
|
|
53
|
+
* **Important:** Always await or catch the returned promise to avoid unhandled rejections.
|
|
54
|
+
*/
|
|
3
55
|
export declare function runZkpWorkerJob<T extends ProofWorkerJobType>(type: T, payload: ProofWorkerPayloads[T]): Promise<ProofWorkerResults[T]>;
|
|
56
|
+
/**
|
|
57
|
+
* Disables the default ZKP worker and rejects all pending jobs.
|
|
58
|
+
*/
|
|
4
59
|
export declare function disableZkpWorker(error?: unknown): void;
|
|
60
|
+
/**
|
|
61
|
+
* Resets the default ZKP worker to its initial state.
|
|
62
|
+
* Useful for testing to ensure clean state between tests.
|
|
63
|
+
*/
|
|
64
|
+
export declare function resetZkpWorker(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Returns the default ZKP worker client instance.
|
|
67
|
+
* Useful when you need direct access to the client.
|
|
68
|
+
*/
|
|
69
|
+
export declare function getDefaultZkpWorkerClient(): ZkpWorkerClient;
|
|
5
70
|
//# sourceMappingURL=workerClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerClient.d.ts","sourceRoot":"","sources":["../../src/zkp/workerClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EAGnB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"workerClient.d.ts","sourceRoot":"","sources":["../../src/zkp/workerClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EAGnB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAO1B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAMD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;gBAEhD,OAAO,GAAE,sBAA2B;IAIhD;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;;;;;OAQG;IACG,MAAM,CAAC,CAAC,SAAS,kBAAkB,EACvC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAcjC;;OAEG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAY9B;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,WAAW;CAWpB;AAKD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,CAAC,SAAS,kBAAkB,EAChE,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAEhC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAEtD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,eAAe,CAE3D"}
|
package/dist/zkp/workerClient.js
CHANGED
|
@@ -1,80 +1,154 @@
|
|
|
1
|
-
let worker = null;
|
|
2
|
-
let workerFailed = false;
|
|
3
|
-
let nextJobId = 0;
|
|
4
|
-
const pendingJobs = new Map();
|
|
5
1
|
function hasWorkerSupport() {
|
|
6
2
|
return typeof Worker !== "undefined";
|
|
7
3
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Client for running ZKP proof jobs in a Web Worker.
|
|
6
|
+
* Manages worker lifecycle, job queue, and error handling.
|
|
7
|
+
*/
|
|
8
|
+
export class ZkpWorkerClient {
|
|
9
|
+
worker = null;
|
|
10
|
+
failed = false;
|
|
11
|
+
nextJobId = 0;
|
|
12
|
+
pendingJobs = new Map();
|
|
13
|
+
createWorkerFn;
|
|
14
|
+
constructor(options = {}) {
|
|
15
|
+
this.createWorkerFn = options.createWorker;
|
|
12
16
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Returns true if this client can run jobs (Worker API available and not failed).
|
|
19
|
+
*/
|
|
20
|
+
canUse() {
|
|
21
|
+
return hasWorkerSupport() && !this.failed;
|
|
16
22
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Runs a ZKP proof job in the worker.
|
|
25
|
+
*
|
|
26
|
+
* **Important:** Always await or catch the returned promise.
|
|
27
|
+
* Calling `disable()` or `reset()` will reject pending jobs,
|
|
28
|
+
* which can cause unhandled rejections if not properly awaited.
|
|
29
|
+
*
|
|
30
|
+
* @throws Error if worker is not available or has failed.
|
|
31
|
+
*/
|
|
32
|
+
async runJob(type, payload) {
|
|
33
|
+
const instance = this.ensureWorker();
|
|
34
|
+
const jobId = this.nextJobId++;
|
|
35
|
+
const message = { id: jobId, type, payload };
|
|
36
|
+
const promise = new Promise((resolve, reject) => {
|
|
37
|
+
this.pendingJobs.set(jobId, {
|
|
38
|
+
resolve: (value) => resolve(value),
|
|
39
|
+
reject,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
instance.postMessage(message);
|
|
43
|
+
return promise;
|
|
25
44
|
}
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Disables the worker and rejects all pending jobs.
|
|
47
|
+
*/
|
|
48
|
+
disable(error) {
|
|
49
|
+
this.failed = true;
|
|
50
|
+
if (this.worker) {
|
|
51
|
+
this.worker.terminate();
|
|
52
|
+
this.worker = null;
|
|
53
|
+
}
|
|
54
|
+
this.pendingJobs.forEach((pending) => pending.reject(error ?? new Error("ZKP worker disabled")));
|
|
55
|
+
this.pendingJobs.clear();
|
|
28
56
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Resets the client to its initial state. Useful for testing.
|
|
59
|
+
*/
|
|
60
|
+
reset() {
|
|
61
|
+
if (this.worker) {
|
|
62
|
+
this.worker.terminate();
|
|
63
|
+
this.worker = null;
|
|
64
|
+
}
|
|
65
|
+
this.failed = false;
|
|
66
|
+
this.nextJobId = 0;
|
|
67
|
+
this.pendingJobs.clear();
|
|
37
68
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
69
|
+
ensureWorker() {
|
|
70
|
+
if (this.failed) {
|
|
71
|
+
throw new Error("ZKP worker previously failed and has been disabled");
|
|
72
|
+
}
|
|
73
|
+
if (!hasWorkerSupport()) {
|
|
74
|
+
throw new Error("Web Worker API is not available in this environment");
|
|
75
|
+
}
|
|
76
|
+
if (!this.worker) {
|
|
77
|
+
const instance = this.createWorkerFn
|
|
78
|
+
? this.createWorkerFn()
|
|
79
|
+
: new Worker(new URL("./worker.js", import.meta.url), { type: "module" });
|
|
80
|
+
instance.addEventListener("message", (event) => this.handleMessage(event));
|
|
81
|
+
instance.addEventListener("error", (event) => this.handleError(event));
|
|
82
|
+
this.worker = instance;
|
|
83
|
+
}
|
|
84
|
+
return this.worker;
|
|
42
85
|
}
|
|
43
|
-
|
|
44
|
-
|
|
86
|
+
handleMessage(event) {
|
|
87
|
+
const message = event.data;
|
|
88
|
+
if (!message || typeof message !== "object") {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const pending = this.pendingJobs.get(message.id);
|
|
92
|
+
if (!pending) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this.pendingJobs.delete(message.id);
|
|
96
|
+
if (message.type === "result") {
|
|
97
|
+
pending.resolve(message.result);
|
|
98
|
+
}
|
|
99
|
+
else if (message.type === "error") {
|
|
100
|
+
const error = new Error(message.error?.message ?? "ZKP worker failure");
|
|
101
|
+
error.stack = message.error?.stack;
|
|
102
|
+
pending.reject(error);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
pending.reject(new Error(`ZKP worker returned unexpected message type ${message.type}`));
|
|
106
|
+
}
|
|
45
107
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
108
|
+
handleError(event) {
|
|
109
|
+
this.pendingJobs.forEach((pending) => pending.reject(event.error ?? new Error("ZKP worker error")));
|
|
110
|
+
this.pendingJobs.clear();
|
|
111
|
+
this.failed = true;
|
|
112
|
+
if (this.worker) {
|
|
113
|
+
this.worker.terminate();
|
|
114
|
+
this.worker = null;
|
|
115
|
+
}
|
|
52
116
|
}
|
|
53
|
-
return worker;
|
|
54
117
|
}
|
|
118
|
+
// Default singleton instance
|
|
119
|
+
const defaultClient = new ZkpWorkerClient();
|
|
120
|
+
/**
|
|
121
|
+
* Returns true if ZKP worker can be used (Worker API available and not failed).
|
|
122
|
+
*/
|
|
55
123
|
export function canUseZkpWorker() {
|
|
56
|
-
return
|
|
124
|
+
return defaultClient.canUse();
|
|
57
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Runs a ZKP proof job in the default worker.
|
|
128
|
+
*
|
|
129
|
+
* **Important:** Always await or catch the returned promise to avoid unhandled rejections.
|
|
130
|
+
*/
|
|
58
131
|
export async function runZkpWorkerJob(type, payload) {
|
|
59
|
-
|
|
60
|
-
const jobId = nextJobId++;
|
|
61
|
-
const message = { id: jobId, type, payload };
|
|
62
|
-
const promise = new Promise((resolve, reject) => {
|
|
63
|
-
pendingJobs.set(jobId, {
|
|
64
|
-
resolve: (value) => resolve(value),
|
|
65
|
-
reject,
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
instance.postMessage(message);
|
|
69
|
-
return promise;
|
|
132
|
+
return defaultClient.runJob(type, payload);
|
|
70
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Disables the default ZKP worker and rejects all pending jobs.
|
|
136
|
+
*/
|
|
71
137
|
export function disableZkpWorker(error) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
138
|
+
defaultClient.disable(error);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Resets the default ZKP worker to its initial state.
|
|
142
|
+
* Useful for testing to ensure clean state between tests.
|
|
143
|
+
*/
|
|
144
|
+
export function resetZkpWorker() {
|
|
145
|
+
defaultClient.reset();
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Returns the default ZKP worker client instance.
|
|
149
|
+
* Useful when you need direct access to the client.
|
|
150
|
+
*/
|
|
151
|
+
export function getDefaultZkpWorkerClient() {
|
|
152
|
+
return defaultClient;
|
|
79
153
|
}
|
|
80
154
|
//# sourceMappingURL=workerClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerClient.js","sourceRoot":"","sources":["../../src/zkp/workerClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workerClient.js","sourceRoot":"","sources":["../../src/zkp/workerClient.ts"],"names":[],"mappings":"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"}
|