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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/operations/receive/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAA8B;IAE9B,OAAO,OAAQ,QAAiC,CAAC,IAAI,EAAE,eAAe,KAAK,UAAU,CAAC;AACxF,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAA8B,EAC9B,WAAmB;IAEnB,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,KAAiC,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAQ,QAAmC,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAO,QAAmC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC,KAAiC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Receive operations for scanning announcements and collecting redeem context.
|
|
3
|
+
*/
|
|
4
|
+
export type { ViemVerifierContract, LegacyVerifierContract, VerifierContractLike, RedeemChainContext, RedeemContext, RedeemContextParams, AnnouncementStatus, AnnouncementStatusParams, } from "./types.js";
|
|
5
|
+
export type { FetchAggregationStateParams } from "./cache.js";
|
|
6
|
+
export { AggregationStateCacheManager, fetchAggregationTreeStateWithCache, clearAggregationStateCache, resetAggregationStateCache, getDefaultAggregationStateCacheManager, } from "./cache.js";
|
|
7
|
+
export { collectRedeemContext } from "./redeemContext.js";
|
|
8
|
+
export { getAnnouncementStatus } from "./announcementStatus.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,0BAA0B,EAC1B,0BAA0B,EAC1B,sCAAsC,GACvC,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Receive operations for scanning announcements and collecting redeem context.
|
|
3
|
+
*/
|
|
4
|
+
export { AggregationStateCacheManager, fetchAggregationTreeStateWithCache, clearAggregationStateCache, resetAggregationStateCache, getDefaultAggregationStateCacheManager, } from "./cache.js";
|
|
5
|
+
// Redeem context
|
|
6
|
+
export { collectRedeemContext } from "./redeemContext.js";
|
|
7
|
+
// Announcement status
|
|
8
|
+
export { getAnnouncementStatus } from "./announcementStatus.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/operations/receive/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,0BAA0B,EAC1B,0BAA0B,EAC1B,sCAAsC,GACvC,MAAM,YAAY,CAAC;AAEpB,iBAAiB;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,sBAAsB;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redeem context collection for receive operations.
|
|
3
|
+
*/
|
|
4
|
+
import type { RedeemContext, RedeemContextParams } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Collect redeem context by combining indexer events, aggregation state, and verifier contract reads.
|
|
7
|
+
* @remarks
|
|
8
|
+
* This performs the following steps:
|
|
9
|
+
* - Fetch aggregation tree state for the primary chain
|
|
10
|
+
* - Fetch transfer events from the indexer across all configured tokens/chains
|
|
11
|
+
* - Split events into eligible vs ineligible (pending) against the aggregation state
|
|
12
|
+
* - For eligible events, fetch local merkle proofs and generate global proofs
|
|
13
|
+
* - Read `totalTeleported` from the verifier contract for the burn recipient
|
|
14
|
+
*/
|
|
15
|
+
export declare function collectRedeemContext(params: RedeemContextParams): Promise<RedeemContext>;
|
|
16
|
+
//# sourceMappingURL=redeemContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redeemContext.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/redeemContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH,OAAO,KAAK,EAAsB,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEzF;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAiH9F"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redeem context collection for receive operations.
|
|
3
|
+
*/
|
|
4
|
+
import { DEFAULT_INDEXER_FETCH_LIMIT } from "../../constants.js";
|
|
5
|
+
import { findTokenByChain } from "../../registry/tokens.js";
|
|
6
|
+
import { normalizeHex } from "../../utils/hex.js";
|
|
7
|
+
import { fetchAggregationTreeState, fetchLocalTeleportMerkleProofs as fetchLocalTeleportProofs, fetchTransferEvents, generateGlobalTeleportMerkleProofs as generateGlobalTeleportProofs, separateEventsByEligibility, } from "../../wasm/index.js";
|
|
8
|
+
import { getTreeIndexForChain } from "../teleport.js";
|
|
9
|
+
import { readTotalTeleported } from "./helpers.js";
|
|
10
|
+
/**
|
|
11
|
+
* Collect redeem context by combining indexer events, aggregation state, and verifier contract reads.
|
|
12
|
+
* @remarks
|
|
13
|
+
* This performs the following steps:
|
|
14
|
+
* - Fetch aggregation tree state for the primary chain
|
|
15
|
+
* - Fetch transfer events from the indexer across all configured tokens/chains
|
|
16
|
+
* - Split events into eligible vs ineligible (pending) against the aggregation state
|
|
17
|
+
* - For eligible events, fetch local merkle proofs and generate global proofs
|
|
18
|
+
* - Read `totalTeleported` from the verifier contract for the burn recipient
|
|
19
|
+
*/
|
|
20
|
+
export async function collectRedeemContext(params) {
|
|
21
|
+
const primaryChainId = params.burn.generalRecipient.chainId;
|
|
22
|
+
const primaryToken = findTokenByChain(params.tokens, primaryChainId);
|
|
23
|
+
const aggregationState = await fetchAggregationTreeState({
|
|
24
|
+
hub: params.hub,
|
|
25
|
+
token: primaryToken,
|
|
26
|
+
eventBlockSpan: params.eventBlockSpan,
|
|
27
|
+
});
|
|
28
|
+
const chainEvents = await fetchTransferEvents({
|
|
29
|
+
indexerUrl: params.indexerUrl,
|
|
30
|
+
tokens: params.tokens,
|
|
31
|
+
burnAddresses: [params.burn.burnAddress],
|
|
32
|
+
indexerFetchLimit: params.indexerFetchLimit ?? DEFAULT_INDEXER_FETCH_LIMIT,
|
|
33
|
+
});
|
|
34
|
+
const separatedChains = await separateEventsByEligibility({
|
|
35
|
+
aggregationState,
|
|
36
|
+
events: chainEvents,
|
|
37
|
+
});
|
|
38
|
+
const eventsByChain = new Map();
|
|
39
|
+
for (const entry of separatedChains) {
|
|
40
|
+
eventsByChain.set(entry.chainId, entry.events);
|
|
41
|
+
}
|
|
42
|
+
const perChain = [];
|
|
43
|
+
const combinedEvents = { eligible: [], ineligible: [] };
|
|
44
|
+
const combinedGlobalProofs = [];
|
|
45
|
+
const combinedEligibleProofs = [];
|
|
46
|
+
for (const tokenEntry of params.tokens) {
|
|
47
|
+
const chainEventsForToken = eventsByChain.get(tokenEntry.chainId) ?? {
|
|
48
|
+
eligible: [],
|
|
49
|
+
ineligible: [],
|
|
50
|
+
};
|
|
51
|
+
combinedEvents.eligible.push(...chainEventsForToken.eligible);
|
|
52
|
+
combinedEvents.ineligible.push(...chainEventsForToken.ineligible);
|
|
53
|
+
const totalEligibleValue = chainEventsForToken.eligible.reduce((acc, event) => acc + event.value, 0n);
|
|
54
|
+
const totalPendingValue = chainEventsForToken.ineligible.reduce((acc, event) => acc + event.value, 0n);
|
|
55
|
+
const totalIndexedValue = totalEligibleValue + totalPendingValue;
|
|
56
|
+
let globalProofs = [];
|
|
57
|
+
let eligibleProofs = [];
|
|
58
|
+
if (chainEventsForToken.eligible.length > 0) {
|
|
59
|
+
const treeRootIndex = getTreeIndexForChain(aggregationState, tokenEntry.chainId);
|
|
60
|
+
eligibleProofs = await fetchLocalTeleportProofs({
|
|
61
|
+
indexerUrl: params.indexerUrl,
|
|
62
|
+
token: tokenEntry,
|
|
63
|
+
treeIndex: treeRootIndex,
|
|
64
|
+
events: chainEventsForToken.eligible,
|
|
65
|
+
});
|
|
66
|
+
globalProofs = await generateGlobalTeleportProofs({
|
|
67
|
+
aggregationState,
|
|
68
|
+
chains: [
|
|
69
|
+
{
|
|
70
|
+
chainId: tokenEntry.chainId,
|
|
71
|
+
proofs: eligibleProofs,
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
perChain.push({
|
|
77
|
+
chainId: tokenEntry.chainId,
|
|
78
|
+
token: tokenEntry,
|
|
79
|
+
events: chainEventsForToken,
|
|
80
|
+
globalProofs,
|
|
81
|
+
eligibleProofs,
|
|
82
|
+
totalEligibleValue,
|
|
83
|
+
totalPendingValue,
|
|
84
|
+
totalIndexedValue,
|
|
85
|
+
});
|
|
86
|
+
combinedGlobalProofs.push(...globalProofs);
|
|
87
|
+
combinedEligibleProofs.push(...eligibleProofs);
|
|
88
|
+
}
|
|
89
|
+
const totalEligibleValue = perChain.reduce((acc, chainContext) => acc + chainContext.totalEligibleValue, 0n);
|
|
90
|
+
const totalPendingValue = perChain.reduce((acc, chainContext) => acc + chainContext.totalPendingValue, 0n);
|
|
91
|
+
const totalIndexedValue = totalEligibleValue + totalPendingValue;
|
|
92
|
+
const recipientFr = normalizeHex(params.burn.generalRecipient.fr);
|
|
93
|
+
const totalTeleported = await readTotalTeleported(params.verifierContract, recipientFr);
|
|
94
|
+
return {
|
|
95
|
+
token: primaryToken,
|
|
96
|
+
aggregationState,
|
|
97
|
+
events: combinedEvents,
|
|
98
|
+
globalProofs: combinedGlobalProofs,
|
|
99
|
+
eligibleProofs: combinedEligibleProofs,
|
|
100
|
+
totalEligibleValue,
|
|
101
|
+
totalPendingValue,
|
|
102
|
+
totalIndexedValue,
|
|
103
|
+
totalTeleported,
|
|
104
|
+
chains: perChain,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=redeemContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redeemContext.js","sourceRoot":"","sources":["../../../src/operations/receive/redeemContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for receive operations.
|
|
3
|
+
*/
|
|
4
|
+
import type { TokenEntry } from "../../registry/tokens.js";
|
|
5
|
+
import type { AggregationTreeState, BurnArtifacts, EventsWithEligibility, GlobalTeleportProofWithEvent, LocalTeleportProof, SeparatedChainEvents } from "../../types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Minimal viem-style verifier contract shape used by receive operations.
|
|
8
|
+
* @remarks This matches contracts created by `viem.getContract(...)`.
|
|
9
|
+
*/
|
|
10
|
+
export type ViemVerifierContract = {
|
|
11
|
+
read: {
|
|
12
|
+
totalTeleported: (args: readonly [string]) => Promise<bigint | number | string>;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Minimal legacy verifier contract shape used by older callers.
|
|
17
|
+
* @remarks This matches an "ethers-like" contract with direct methods.
|
|
18
|
+
*/
|
|
19
|
+
export type LegacyVerifierContract = {
|
|
20
|
+
totalTeleported: (recipientFr: string) => Promise<bigint | number | string>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Union type accepted by receive operations for verifier contracts.
|
|
24
|
+
*/
|
|
25
|
+
export type VerifierContractLike = ViemVerifierContract | LegacyVerifierContract;
|
|
26
|
+
/**
|
|
27
|
+
* Per-chain breakdown for redeem context.
|
|
28
|
+
*/
|
|
29
|
+
export interface RedeemChainContext {
|
|
30
|
+
/** Chain id for the token/network. */
|
|
31
|
+
chainId: bigint;
|
|
32
|
+
/** Token entry corresponding to this chain. */
|
|
33
|
+
token: TokenEntry;
|
|
34
|
+
/** Transfer events split by eligibility against the aggregation tree state. */
|
|
35
|
+
events: EventsWithEligibility;
|
|
36
|
+
/** Global teleport proofs generated for eligible events on this chain. */
|
|
37
|
+
globalProofs: GlobalTeleportProofWithEvent[];
|
|
38
|
+
/** Local teleport proofs (Merkle proofs) for eligible events on this chain. */
|
|
39
|
+
eligibleProofs: LocalTeleportProof[];
|
|
40
|
+
/** Sum of values from eligible events. */
|
|
41
|
+
totalEligibleValue: bigint;
|
|
42
|
+
/** Sum of values from ineligible (pending/indexer-not-yet-aggregated) events. */
|
|
43
|
+
totalPendingValue: bigint;
|
|
44
|
+
/** `totalEligibleValue + totalPendingValue`. */
|
|
45
|
+
totalIndexedValue: bigint;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Combined redeem context across all configured chains for a burn recipient.
|
|
49
|
+
* @remarks
|
|
50
|
+
* This output is typically used to:
|
|
51
|
+
* - Display pending vs eligible amounts
|
|
52
|
+
* - Construct redeem/teleport proofs
|
|
53
|
+
* - Compare indexed totals with on-chain `totalTeleported`
|
|
54
|
+
*/
|
|
55
|
+
export interface RedeemContext {
|
|
56
|
+
/** Primary token entry (matching `burn.generalRecipient.chainId`). */
|
|
57
|
+
token: TokenEntry;
|
|
58
|
+
/** Aggregation tree state for the primary chain. */
|
|
59
|
+
aggregationState: AggregationTreeState;
|
|
60
|
+
/** Combined events across all chains. */
|
|
61
|
+
events: EventsWithEligibility;
|
|
62
|
+
/** Combined global proofs across all chains. */
|
|
63
|
+
globalProofs: GlobalTeleportProofWithEvent[];
|
|
64
|
+
/** Combined eligible local proofs across all chains. */
|
|
65
|
+
eligibleProofs: LocalTeleportProof[];
|
|
66
|
+
/** Sum of values from all eligible events. */
|
|
67
|
+
totalEligibleValue: bigint;
|
|
68
|
+
/** Sum of values from all ineligible events. */
|
|
69
|
+
totalPendingValue: bigint;
|
|
70
|
+
/** `totalEligibleValue + totalPendingValue`. */
|
|
71
|
+
totalIndexedValue: bigint;
|
|
72
|
+
/** On-chain total teleported amount (verifier contract). */
|
|
73
|
+
totalTeleported: bigint;
|
|
74
|
+
/** Per-chain breakdown used to build proofs and display totals. */
|
|
75
|
+
chains: RedeemChainContext[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Parameters for `collectRedeemContext`.
|
|
79
|
+
*/
|
|
80
|
+
export interface RedeemContextParams {
|
|
81
|
+
/** Burn artifact bundle produced by the sender side. */
|
|
82
|
+
burn: BurnArtifacts;
|
|
83
|
+
/** Tokens to include when scanning the indexer. */
|
|
84
|
+
tokens: readonly TokenEntry[];
|
|
85
|
+
/** Hub configuration for aggregation tree state reads. */
|
|
86
|
+
hub: import("../../registry/tokens.js").HubEntry;
|
|
87
|
+
/** Verifier contract used to read `totalTeleported(recipientFr)`. */
|
|
88
|
+
verifierContract: VerifierContractLike;
|
|
89
|
+
/** Base URL for the indexer service. */
|
|
90
|
+
indexerUrl: string;
|
|
91
|
+
/** Max number of indexer events to fetch per request. Defaults to `DEFAULT_INDEXER_FETCH_LIMIT`. */
|
|
92
|
+
indexerFetchLimit?: number;
|
|
93
|
+
/** Optional block span used when fetching aggregation tree state (performance tuning). */
|
|
94
|
+
eventBlockSpan?: bigint | number;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Summary status for announcements for a burn recipient.
|
|
98
|
+
*/
|
|
99
|
+
export interface AnnouncementStatus {
|
|
100
|
+
/** Primary token entry (matching `burn.generalRecipient.chainId`). */
|
|
101
|
+
token: TokenEntry;
|
|
102
|
+
/** Aggregation tree state for the primary chain. */
|
|
103
|
+
aggregationState: AggregationTreeState;
|
|
104
|
+
/** Combined events across all chains. */
|
|
105
|
+
events: EventsWithEligibility;
|
|
106
|
+
/** Per-chain separated events used to compute totals. */
|
|
107
|
+
chains: SeparatedChainEvents[];
|
|
108
|
+
/** Sum of values from all eligible events. */
|
|
109
|
+
totalEligibleValue: bigint;
|
|
110
|
+
/** Sum of values from all ineligible events. */
|
|
111
|
+
totalPendingValue: bigint;
|
|
112
|
+
/** `totalEligibleValue + totalPendingValue`. */
|
|
113
|
+
totalIndexedValue: bigint;
|
|
114
|
+
/** On-chain total teleported amount (verifier contract). */
|
|
115
|
+
totalTeleported: bigint;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Parameters for `getAnnouncementStatus`.
|
|
119
|
+
*/
|
|
120
|
+
export interface AnnouncementStatusParams {
|
|
121
|
+
/** Burn artifact bundle produced by the sender side. */
|
|
122
|
+
burn: BurnArtifacts;
|
|
123
|
+
/** Tokens to include when scanning the indexer. */
|
|
124
|
+
tokens: readonly TokenEntry[];
|
|
125
|
+
/** Hub configuration for aggregation tree state reads. */
|
|
126
|
+
hub: import("../../registry/tokens.js").HubEntry;
|
|
127
|
+
/** Verifier contract used to read `totalTeleported(recipientFr)`. */
|
|
128
|
+
verifierContract: VerifierContractLike;
|
|
129
|
+
/** Base URL for the indexer service. */
|
|
130
|
+
indexerUrl: string;
|
|
131
|
+
/** Max number of indexer events to fetch per request. Defaults to `DEFAULT_INDEXER_FETCH_LIMIT`. */
|
|
132
|
+
indexerFetchLimit?: number;
|
|
133
|
+
/** Optional block span used when fetching aggregation tree state (performance tuning). */
|
|
134
|
+
eventBlockSpan?: bigint | number;
|
|
135
|
+
/**
|
|
136
|
+
* Optional cache TTL for aggregation tree state reads (in milliseconds).
|
|
137
|
+
* @remarks When provided, aggregation state is fetched via the default cache manager.
|
|
138
|
+
*/
|
|
139
|
+
cacheTtlMs?: number;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAMxB;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE;QACJ,eAAe,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;KACjF,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;CAC7E,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAMjF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,KAAK,EAAE,UAAU,CAAC;IAClB,+EAA+E;IAC/E,MAAM,EAAE,qBAAqB,CAAC;IAC9B,0EAA0E;IAC1E,YAAY,EAAE,4BAA4B,EAAE,CAAC;IAC7C,+EAA+E;IAC/E,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,0CAA0C;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,KAAK,EAAE,UAAU,CAAC;IAClB,oDAAoD;IACpD,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,yCAAyC;IACzC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,gDAAgD;IAChD,YAAY,EAAE,4BAA4B,EAAE,CAAC;IAC7C,wDAAwD;IACxD,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,8CAA8C;IAC9C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,IAAI,EAAE,aAAa,CAAC;IACpB,mDAAmD;IACnD,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,0DAA0D;IAC1D,GAAG,EAAE,OAAO,0BAA0B,EAAE,QAAQ,CAAC;IACjD,qEAAqE;IACrE,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,KAAK,EAAE,UAAU,CAAC;IAClB,oDAAoD;IACpD,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,yCAAyC;IACzC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,yDAAyD;IACzD,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,8CAA8C;IAC9C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,wDAAwD;IACxD,IAAI,EAAE,aAAa,CAAC;IACpB,mDAAmD;IACnD,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,0DAA0D;IAC1D,GAAG,EAAE,OAAO,0BAA0B,EAAE,QAAQ,CAAC;IACjD,qEAAqE;IACrE,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/operations/receive/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,67 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
token: TokenEntry;
|
|
7
|
-
events: EventsWithEligibility;
|
|
8
|
-
globalProofs: GlobalTeleportProofWithEvent[];
|
|
9
|
-
eligibleProofs: LocalTeleportProof[];
|
|
10
|
-
totalEligibleValue: bigint;
|
|
11
|
-
totalPendingValue: bigint;
|
|
12
|
-
totalIndexedValue: bigint;
|
|
13
|
-
}
|
|
14
|
-
export interface RedeemContext {
|
|
15
|
-
token: TokenEntry;
|
|
16
|
-
aggregationState: AggregationTreeState;
|
|
17
|
-
events: EventsWithEligibility;
|
|
18
|
-
globalProofs: GlobalTeleportProofWithEvent[];
|
|
19
|
-
eligibleProofs: LocalTeleportProof[];
|
|
20
|
-
totalEligibleValue: bigint;
|
|
21
|
-
totalPendingValue: bigint;
|
|
22
|
-
totalIndexedValue: bigint;
|
|
23
|
-
totalTeleported: bigint;
|
|
24
|
-
chains: RedeemChainContext[];
|
|
25
|
-
}
|
|
26
|
-
type ViemVerifierContract = {
|
|
27
|
-
read: {
|
|
28
|
-
totalTeleported: (args: readonly [string]) => Promise<bigint | number | string>;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
type LegacyVerifierContract = {
|
|
32
|
-
totalTeleported: (recipientFr: string) => Promise<bigint | number | string>;
|
|
33
|
-
};
|
|
34
|
-
type VerifierContractLike = ViemVerifierContract | LegacyVerifierContract;
|
|
35
|
-
export interface RedeemContextParams {
|
|
36
|
-
burn: BurnArtifacts;
|
|
37
|
-
tokens: readonly TokenEntry[];
|
|
38
|
-
hub: HubEntry;
|
|
39
|
-
verifierContract: VerifierContractLike;
|
|
40
|
-
indexerUrl: string;
|
|
41
|
-
indexerFetchLimit?: number;
|
|
42
|
-
eventBlockSpan?: bigint | number;
|
|
43
|
-
}
|
|
44
|
-
export interface AnnouncementStatus {
|
|
45
|
-
token: TokenEntry;
|
|
46
|
-
aggregationState: AggregationTreeState;
|
|
47
|
-
events: EventsWithEligibility;
|
|
48
|
-
chains: SeparatedChainEvents[];
|
|
49
|
-
totalEligibleValue: bigint;
|
|
50
|
-
totalPendingValue: bigint;
|
|
51
|
-
totalIndexedValue: bigint;
|
|
52
|
-
totalTeleported: bigint;
|
|
53
|
-
}
|
|
54
|
-
export interface AnnouncementStatusParams {
|
|
55
|
-
burn: BurnArtifacts;
|
|
56
|
-
tokens: readonly TokenEntry[];
|
|
57
|
-
hub: HubEntry;
|
|
58
|
-
verifierContract: VerifierContractLike;
|
|
59
|
-
indexerUrl: string;
|
|
60
|
-
indexerFetchLimit?: number;
|
|
61
|
-
eventBlockSpan?: bigint | number;
|
|
62
|
-
cacheTtlMs?: number;
|
|
63
|
-
}
|
|
64
|
-
export declare function collectRedeemContext(params: RedeemContextParams): Promise<RedeemContext>;
|
|
65
|
-
export declare function getAnnouncementStatus(params: AnnouncementStatusParams): Promise<AnnouncementStatus>;
|
|
66
|
-
export {};
|
|
1
|
+
/**
|
|
2
|
+
* Re-export from receive module.
|
|
3
|
+
* @deprecated Import from 'zerc20-client-sdk' or './receive/index.js' directly.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./receive/index.js";
|
|
67
6
|
//# sourceMappingURL=receive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receive.d.ts","sourceRoot":"","sources":["../../src/operations/receive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"receive.d.ts","sourceRoot":"","sources":["../../src/operations/receive.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,174 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const aggregationStateCache = new Map();
|
|
7
|
-
function getCacheKey(hubAddress, chainId) {
|
|
8
|
-
return `${hubAddress.toLowerCase()}-${chainId}`;
|
|
9
|
-
}
|
|
10
|
-
async function fetchAggregationTreeStateWithCache(params) {
|
|
11
|
-
const cacheTtl = params.cacheTtlMs;
|
|
12
|
-
const cacheKey = getCacheKey(params.hub.hubAddress, params.token.chainId);
|
|
13
|
-
const cached = aggregationStateCache.get(cacheKey);
|
|
14
|
-
const now = Date.now();
|
|
15
|
-
if (cacheTtl != null && cached && now - cached.timestamp < cacheTtl) {
|
|
16
|
-
return cached.state;
|
|
17
|
-
}
|
|
18
|
-
const state = await fetchAggregationTreeState(params);
|
|
19
|
-
aggregationStateCache.set(cacheKey, {
|
|
20
|
-
state,
|
|
21
|
-
timestamp: now,
|
|
22
|
-
chainId: params.token.chainId,
|
|
23
|
-
});
|
|
24
|
-
return state;
|
|
25
|
-
}
|
|
26
|
-
export function clearAggregationStateCache() {
|
|
27
|
-
aggregationStateCache.clear();
|
|
28
|
-
}
|
|
29
|
-
export async function collectRedeemContext(params) {
|
|
30
|
-
const primaryChainId = params.burn.generalRecipient.chainId;
|
|
31
|
-
const primaryToken = findTokenByChain(params.tokens, primaryChainId);
|
|
32
|
-
const aggregationState = await fetchAggregationTreeState({
|
|
33
|
-
hub: params.hub,
|
|
34
|
-
token: primaryToken,
|
|
35
|
-
eventBlockSpan: params.eventBlockSpan,
|
|
36
|
-
});
|
|
37
|
-
const chainEvents = await fetchTransferEvents({
|
|
38
|
-
indexerUrl: params.indexerUrl,
|
|
39
|
-
tokens: params.tokens,
|
|
40
|
-
burnAddresses: [params.burn.burnAddress],
|
|
41
|
-
indexerFetchLimit: params.indexerFetchLimit ?? DEFAULT_INDEXER_FETCH_LIMIT,
|
|
42
|
-
});
|
|
43
|
-
const separatedChains = await separateEventsByEligibility({
|
|
44
|
-
aggregationState,
|
|
45
|
-
events: chainEvents,
|
|
46
|
-
});
|
|
47
|
-
const eventsByChain = new Map();
|
|
48
|
-
for (const entry of separatedChains) {
|
|
49
|
-
eventsByChain.set(entry.chainId, entry.events);
|
|
50
|
-
}
|
|
51
|
-
const perChain = [];
|
|
52
|
-
const combinedEvents = { eligible: [], ineligible: [] };
|
|
53
|
-
const combinedGlobalProofs = [];
|
|
54
|
-
const combinedEligibleProofs = [];
|
|
55
|
-
for (const tokenEntry of params.tokens) {
|
|
56
|
-
const chainEventsForToken = eventsByChain.get(tokenEntry.chainId) ?? {
|
|
57
|
-
eligible: [],
|
|
58
|
-
ineligible: [],
|
|
59
|
-
};
|
|
60
|
-
combinedEvents.eligible.push(...chainEventsForToken.eligible);
|
|
61
|
-
combinedEvents.ineligible.push(...chainEventsForToken.ineligible);
|
|
62
|
-
const totalEligibleValue = chainEventsForToken.eligible.reduce((acc, event) => acc + event.value, 0n);
|
|
63
|
-
const totalPendingValue = chainEventsForToken.ineligible.reduce((acc, event) => acc + event.value, 0n);
|
|
64
|
-
const totalIndexedValue = totalEligibleValue + totalPendingValue;
|
|
65
|
-
let globalProofs = [];
|
|
66
|
-
let eligibleProofs = [];
|
|
67
|
-
if (chainEventsForToken.eligible.length > 0) {
|
|
68
|
-
const treeRootIndex = getTreeIndexForChain(aggregationState, tokenEntry.chainId);
|
|
69
|
-
eligibleProofs = await fetchLocalTeleportProofs({
|
|
70
|
-
indexerUrl: params.indexerUrl,
|
|
71
|
-
token: tokenEntry,
|
|
72
|
-
treeIndex: treeRootIndex,
|
|
73
|
-
events: chainEventsForToken.eligible,
|
|
74
|
-
});
|
|
75
|
-
globalProofs = await generateGlobalTeleportProofs({
|
|
76
|
-
aggregationState,
|
|
77
|
-
chains: [
|
|
78
|
-
{
|
|
79
|
-
chainId: tokenEntry.chainId,
|
|
80
|
-
proofs: eligibleProofs,
|
|
81
|
-
},
|
|
82
|
-
],
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
perChain.push({
|
|
86
|
-
chainId: tokenEntry.chainId,
|
|
87
|
-
token: tokenEntry,
|
|
88
|
-
events: chainEventsForToken,
|
|
89
|
-
globalProofs,
|
|
90
|
-
eligibleProofs,
|
|
91
|
-
totalEligibleValue,
|
|
92
|
-
totalPendingValue,
|
|
93
|
-
totalIndexedValue,
|
|
94
|
-
});
|
|
95
|
-
combinedGlobalProofs.push(...globalProofs);
|
|
96
|
-
combinedEligibleProofs.push(...eligibleProofs);
|
|
97
|
-
}
|
|
98
|
-
const totalEligibleValue = perChain.reduce((acc, chainContext) => acc + chainContext.totalEligibleValue, 0n);
|
|
99
|
-
const totalPendingValue = perChain.reduce((acc, chainContext) => acc + chainContext.totalPendingValue, 0n);
|
|
100
|
-
const totalIndexedValue = totalEligibleValue + totalPendingValue;
|
|
101
|
-
const recipientFr = normalizeHex(params.burn.generalRecipient.fr);
|
|
102
|
-
const totalTeleported = await readTotalTeleported(params.verifierContract, recipientFr);
|
|
103
|
-
return {
|
|
104
|
-
token: primaryToken,
|
|
105
|
-
aggregationState,
|
|
106
|
-
events: combinedEvents,
|
|
107
|
-
globalProofs: combinedGlobalProofs,
|
|
108
|
-
eligibleProofs: combinedEligibleProofs,
|
|
109
|
-
totalEligibleValue,
|
|
110
|
-
totalPendingValue,
|
|
111
|
-
totalIndexedValue,
|
|
112
|
-
totalTeleported,
|
|
113
|
-
chains: perChain,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
function isViemVerifierContract(contract) {
|
|
117
|
-
return typeof contract.read?.totalTeleported === "function";
|
|
118
|
-
}
|
|
119
|
-
export async function getAnnouncementStatus(params) {
|
|
120
|
-
const primaryChainId = params.burn.generalRecipient.chainId;
|
|
121
|
-
const primaryToken = findTokenByChain(params.tokens, primaryChainId);
|
|
122
|
-
// Use cached aggregation state for display
|
|
123
|
-
const aggregationState = await fetchAggregationTreeStateWithCache({
|
|
124
|
-
hub: params.hub,
|
|
125
|
-
token: primaryToken,
|
|
126
|
-
eventBlockSpan: params.eventBlockSpan,
|
|
127
|
-
cacheTtlMs: params.cacheTtlMs,
|
|
128
|
-
});
|
|
129
|
-
const chainEvents = await fetchTransferEvents({
|
|
130
|
-
indexerUrl: params.indexerUrl,
|
|
131
|
-
tokens: params.tokens,
|
|
132
|
-
burnAddresses: [params.burn.burnAddress],
|
|
133
|
-
indexerFetchLimit: params.indexerFetchLimit ?? DEFAULT_INDEXER_FETCH_LIMIT,
|
|
134
|
-
});
|
|
135
|
-
const separatedChains = await separateEventsByEligibility({
|
|
136
|
-
aggregationState,
|
|
137
|
-
events: chainEvents,
|
|
138
|
-
});
|
|
139
|
-
// Combine all events from all chains
|
|
140
|
-
const combinedEvents = { eligible: [], ineligible: [] };
|
|
141
|
-
for (const entry of separatedChains) {
|
|
142
|
-
combinedEvents.eligible.push(...entry.events.eligible);
|
|
143
|
-
combinedEvents.ineligible.push(...entry.events.ineligible);
|
|
144
|
-
}
|
|
145
|
-
// Calculate totals
|
|
146
|
-
const totalEligibleValue = combinedEvents.eligible.reduce((acc, event) => acc + event.value, 0n);
|
|
147
|
-
const totalPendingValue = combinedEvents.ineligible.reduce((acc, event) => acc + event.value, 0n);
|
|
148
|
-
const totalIndexedValue = totalEligibleValue + totalPendingValue;
|
|
149
|
-
// Get total teleported amount
|
|
150
|
-
const recipientFr = normalizeHex(params.burn.generalRecipient.fr);
|
|
151
|
-
const totalTeleported = await readTotalTeleported(params.verifierContract, recipientFr);
|
|
152
|
-
return {
|
|
153
|
-
token: primaryToken,
|
|
154
|
-
aggregationState,
|
|
155
|
-
events: combinedEvents,
|
|
156
|
-
chains: separatedChains,
|
|
157
|
-
totalEligibleValue,
|
|
158
|
-
totalPendingValue,
|
|
159
|
-
totalIndexedValue,
|
|
160
|
-
totalTeleported,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
async function readTotalTeleported(contract, recipientFr) {
|
|
164
|
-
if (isViemVerifierContract(contract)) {
|
|
165
|
-
const value = await contract.read.totalTeleported([recipientFr]);
|
|
166
|
-
return BigInt(value);
|
|
167
|
-
}
|
|
168
|
-
if (typeof contract.totalTeleported === "function") {
|
|
169
|
-
const value = await contract.totalTeleported(recipientFr);
|
|
170
|
-
return BigInt(value);
|
|
171
|
-
}
|
|
172
|
-
throw new Error("verifier contract must expose totalTeleported");
|
|
173
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Re-export from receive module.
|
|
3
|
+
* @deprecated Import from 'zerc20-client-sdk' or './receive/index.js' directly.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./receive/index.js";
|
|
174
6
|
//# sourceMappingURL=receive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receive.js","sourceRoot":"","sources":["../../src/operations/receive.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"receive.js","sourceRoot":"","sources":["../../src/operations/receive.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,oBAAoB,CAAC"}
|