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,80 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { isViemVerifierContract, readTotalTeleported } from "../helpers.js";
|
|
3
|
+
describe("isViemVerifierContract", () => {
|
|
4
|
+
test("returns true for viem-style contract with read.totalTeleported", () => {
|
|
5
|
+
const viemContract = {
|
|
6
|
+
read: {
|
|
7
|
+
totalTeleported: async () => 100n,
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
expect(isViemVerifierContract(viemContract)).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
test("returns false for legacy contract without read property", () => {
|
|
13
|
+
const legacyContract = {
|
|
14
|
+
totalTeleported: async () => 100n,
|
|
15
|
+
};
|
|
16
|
+
expect(isViemVerifierContract(legacyContract)).toBe(false);
|
|
17
|
+
});
|
|
18
|
+
test("returns false for object with read but no totalTeleported", () => {
|
|
19
|
+
const invalidContract = {
|
|
20
|
+
read: {
|
|
21
|
+
otherMethod: async () => 100n,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
expect(isViemVerifierContract(invalidContract)).toBe(false);
|
|
25
|
+
});
|
|
26
|
+
test("returns false for empty object", () => {
|
|
27
|
+
expect(isViemVerifierContract({})).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
test("returns false for null read property", () => {
|
|
30
|
+
const contract = { read: null };
|
|
31
|
+
expect(isViemVerifierContract(contract)).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe("readTotalTeleported", () => {
|
|
35
|
+
test("reads from viem-style contract", async () => {
|
|
36
|
+
const viemContract = {
|
|
37
|
+
read: {
|
|
38
|
+
totalTeleported: async (args) => {
|
|
39
|
+
expect(args).toEqual(["0x1234"]);
|
|
40
|
+
return 500n;
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
const result = await readTotalTeleported(viemContract, "0x1234");
|
|
45
|
+
expect(result).toBe(500n);
|
|
46
|
+
});
|
|
47
|
+
test("reads from legacy contract", async () => {
|
|
48
|
+
const legacyContract = {
|
|
49
|
+
totalTeleported: async (recipientFr) => {
|
|
50
|
+
expect(recipientFr).toBe("0xabcd");
|
|
51
|
+
return 1000n;
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
const result = await readTotalTeleported(legacyContract, "0xabcd");
|
|
55
|
+
expect(result).toBe(1000n);
|
|
56
|
+
});
|
|
57
|
+
test("converts number return value to bigint", async () => {
|
|
58
|
+
const contract = {
|
|
59
|
+
read: {
|
|
60
|
+
totalTeleported: async () => 999,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
const result = await readTotalTeleported(contract, "0x1234");
|
|
64
|
+
expect(result).toBe(999n);
|
|
65
|
+
});
|
|
66
|
+
test("converts string return value to bigint", async () => {
|
|
67
|
+
const contract = {
|
|
68
|
+
totalTeleported: async () => "12345",
|
|
69
|
+
};
|
|
70
|
+
const result = await readTotalTeleported(contract, "0x1234");
|
|
71
|
+
expect(result).toBe(12345n);
|
|
72
|
+
});
|
|
73
|
+
test("throws for contract without totalTeleported", async () => {
|
|
74
|
+
const invalidContract = {
|
|
75
|
+
otherMethod: async () => 100n,
|
|
76
|
+
};
|
|
77
|
+
await expect(readTotalTeleported(invalidContract, "0x1234")).rejects.toThrow("verifier contract must expose totalTeleported");
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=helpers.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../../../src/operations/receive/__tests__/helpers.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redeemContext.test.d.ts","sourceRoot":"","sources":["../../../../src/operations/receive/__tests__/redeemContext.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
2
|
+
import { collectRedeemContext } from "../redeemContext.js";
|
|
3
|
+
// Mock dependencies
|
|
4
|
+
vi.mock("../../../registry/tokens.js", () => ({
|
|
5
|
+
findTokenByChain: vi.fn(),
|
|
6
|
+
}));
|
|
7
|
+
vi.mock("../../../wasm/index.js", () => ({
|
|
8
|
+
fetchAggregationTreeState: vi.fn(),
|
|
9
|
+
fetchTransferEvents: vi.fn(),
|
|
10
|
+
separateEventsByEligibility: vi.fn(),
|
|
11
|
+
fetchLocalTeleportMerkleProofs: vi.fn(),
|
|
12
|
+
generateGlobalTeleportMerkleProofs: vi.fn(),
|
|
13
|
+
}));
|
|
14
|
+
vi.mock("../../teleport.js", () => ({
|
|
15
|
+
getTreeIndexForChain: vi.fn(),
|
|
16
|
+
}));
|
|
17
|
+
vi.mock("../helpers.js", () => ({
|
|
18
|
+
readTotalTeleported: vi.fn(),
|
|
19
|
+
}));
|
|
20
|
+
import { findTokenByChain } from "../../../registry/tokens.js";
|
|
21
|
+
import { fetchAggregationTreeState, fetchTransferEvents, separateEventsByEligibility, fetchLocalTeleportMerkleProofs, generateGlobalTeleportMerkleProofs, } from "../../../wasm/index.js";
|
|
22
|
+
import { getTreeIndexForChain } from "../../teleport.js";
|
|
23
|
+
import { readTotalTeleported } from "../helpers.js";
|
|
24
|
+
const mockFindTokenByChain = vi.mocked(findTokenByChain);
|
|
25
|
+
const mockFetchAggregationTreeState = vi.mocked(fetchAggregationTreeState);
|
|
26
|
+
const mockFetchTransferEvents = vi.mocked(fetchTransferEvents);
|
|
27
|
+
const mockSeparateEventsByEligibility = vi.mocked(separateEventsByEligibility);
|
|
28
|
+
const mockFetchLocalTeleportMerkleProofs = vi.mocked(fetchLocalTeleportMerkleProofs);
|
|
29
|
+
const mockGenerateGlobalTeleportMerkleProofs = vi.mocked(generateGlobalTeleportMerkleProofs);
|
|
30
|
+
const mockGetTreeIndexForChain = vi.mocked(getTreeIndexForChain);
|
|
31
|
+
const mockReadTotalTeleported = vi.mocked(readTotalTeleported);
|
|
32
|
+
describe("collectRedeemContext", () => {
|
|
33
|
+
const mockToken1 = {
|
|
34
|
+
chainId: 1n,
|
|
35
|
+
tokenAddress: "0xToken1",
|
|
36
|
+
rpcUrls: ["https://rpc1.example.com"],
|
|
37
|
+
};
|
|
38
|
+
const mockToken2 = {
|
|
39
|
+
chainId: 2n,
|
|
40
|
+
tokenAddress: "0xToken2",
|
|
41
|
+
rpcUrls: ["https://rpc2.example.com"],
|
|
42
|
+
};
|
|
43
|
+
const mockHub = {
|
|
44
|
+
hubAddress: "0xHub",
|
|
45
|
+
chains: [],
|
|
46
|
+
};
|
|
47
|
+
const mockBurn = {
|
|
48
|
+
burnAddress: "0xBurnAddress",
|
|
49
|
+
generalRecipient: {
|
|
50
|
+
chainId: 1n,
|
|
51
|
+
fr: "0xRecipientFr",
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
const mockAggregationState = {
|
|
55
|
+
root: "0xRoot",
|
|
56
|
+
trees: [],
|
|
57
|
+
};
|
|
58
|
+
const mockVerifierContract = {
|
|
59
|
+
read: {
|
|
60
|
+
totalTeleported: vi.fn(),
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
beforeEach(() => {
|
|
64
|
+
vi.clearAllMocks();
|
|
65
|
+
mockFindTokenByChain.mockReturnValue(mockToken1);
|
|
66
|
+
mockFetchAggregationTreeState.mockResolvedValue(mockAggregationState);
|
|
67
|
+
mockFetchTransferEvents.mockResolvedValue([]);
|
|
68
|
+
mockSeparateEventsByEligibility.mockResolvedValue([]);
|
|
69
|
+
mockReadTotalTeleported.mockResolvedValue(0n);
|
|
70
|
+
});
|
|
71
|
+
test("collects redeem context with no events", async () => {
|
|
72
|
+
mockSeparateEventsByEligibility.mockResolvedValue([
|
|
73
|
+
{ chainId: 1n, events: { eligible: [], ineligible: [] } },
|
|
74
|
+
]);
|
|
75
|
+
const params = {
|
|
76
|
+
burn: mockBurn,
|
|
77
|
+
tokens: [mockToken1],
|
|
78
|
+
hub: mockHub,
|
|
79
|
+
verifierContract: mockVerifierContract,
|
|
80
|
+
indexerUrl: "https://indexer.example.com",
|
|
81
|
+
};
|
|
82
|
+
const result = await collectRedeemContext(params);
|
|
83
|
+
expect(result.token).toBe(mockToken1);
|
|
84
|
+
expect(result.aggregationState).toBe(mockAggregationState);
|
|
85
|
+
expect(result.totalEligibleValue).toBe(0n);
|
|
86
|
+
expect(result.totalPendingValue).toBe(0n);
|
|
87
|
+
expect(result.totalIndexedValue).toBe(0n);
|
|
88
|
+
expect(result.totalTeleported).toBe(0n);
|
|
89
|
+
expect(result.chains).toHaveLength(1);
|
|
90
|
+
});
|
|
91
|
+
test("collects redeem context with eligible events", async () => {
|
|
92
|
+
const eligibleEvent = {
|
|
93
|
+
value: 100n,
|
|
94
|
+
eventIndex: 1n,
|
|
95
|
+
from: "0xfrom",
|
|
96
|
+
to: "0xto",
|
|
97
|
+
ethBlockNumber: 1n,
|
|
98
|
+
};
|
|
99
|
+
mockSeparateEventsByEligibility.mockResolvedValue([
|
|
100
|
+
{
|
|
101
|
+
chainId: 1n,
|
|
102
|
+
events: {
|
|
103
|
+
eligible: [eligibleEvent],
|
|
104
|
+
ineligible: [],
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
]);
|
|
108
|
+
const mockLocalProof = {
|
|
109
|
+
event: eligibleEvent,
|
|
110
|
+
};
|
|
111
|
+
const mockGlobalProof = {
|
|
112
|
+
event: eligibleEvent,
|
|
113
|
+
};
|
|
114
|
+
mockGetTreeIndexForChain.mockReturnValue(0n);
|
|
115
|
+
mockFetchLocalTeleportMerkleProofs.mockResolvedValue([mockLocalProof]);
|
|
116
|
+
mockGenerateGlobalTeleportMerkleProofs.mockResolvedValue([mockGlobalProof]);
|
|
117
|
+
mockReadTotalTeleported.mockResolvedValue(50n);
|
|
118
|
+
const params = {
|
|
119
|
+
burn: mockBurn,
|
|
120
|
+
tokens: [mockToken1],
|
|
121
|
+
hub: mockHub,
|
|
122
|
+
verifierContract: mockVerifierContract,
|
|
123
|
+
indexerUrl: "https://indexer.example.com",
|
|
124
|
+
};
|
|
125
|
+
const result = await collectRedeemContext(params);
|
|
126
|
+
expect(result.totalEligibleValue).toBe(100n);
|
|
127
|
+
expect(result.totalPendingValue).toBe(0n);
|
|
128
|
+
expect(result.totalIndexedValue).toBe(100n);
|
|
129
|
+
expect(result.totalTeleported).toBe(50n);
|
|
130
|
+
expect(result.eligibleProofs).toHaveLength(1);
|
|
131
|
+
expect(result.globalProofs).toHaveLength(1);
|
|
132
|
+
});
|
|
133
|
+
test("collects redeem context with ineligible events", async () => {
|
|
134
|
+
const ineligibleEvent = {
|
|
135
|
+
value: 200n,
|
|
136
|
+
eventIndex: 2n,
|
|
137
|
+
from: "0xfrom",
|
|
138
|
+
to: "0xto",
|
|
139
|
+
ethBlockNumber: 1n,
|
|
140
|
+
};
|
|
141
|
+
mockSeparateEventsByEligibility.mockResolvedValue([
|
|
142
|
+
{
|
|
143
|
+
chainId: 1n,
|
|
144
|
+
events: {
|
|
145
|
+
eligible: [],
|
|
146
|
+
ineligible: [ineligibleEvent],
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
]);
|
|
150
|
+
const params = {
|
|
151
|
+
burn: mockBurn,
|
|
152
|
+
tokens: [mockToken1],
|
|
153
|
+
hub: mockHub,
|
|
154
|
+
verifierContract: mockVerifierContract,
|
|
155
|
+
indexerUrl: "https://indexer.example.com",
|
|
156
|
+
};
|
|
157
|
+
const result = await collectRedeemContext(params);
|
|
158
|
+
expect(result.totalEligibleValue).toBe(0n);
|
|
159
|
+
expect(result.totalPendingValue).toBe(200n);
|
|
160
|
+
expect(result.totalIndexedValue).toBe(200n);
|
|
161
|
+
});
|
|
162
|
+
test("collects redeem context across multiple chains", async () => {
|
|
163
|
+
const event1 = {
|
|
164
|
+
value: 100n,
|
|
165
|
+
eventIndex: 1n,
|
|
166
|
+
from: "0xfrom",
|
|
167
|
+
to: "0xto",
|
|
168
|
+
ethBlockNumber: 1n,
|
|
169
|
+
};
|
|
170
|
+
const event2 = {
|
|
171
|
+
value: 150n,
|
|
172
|
+
eventIndex: 2n,
|
|
173
|
+
from: "0xfrom",
|
|
174
|
+
to: "0xto",
|
|
175
|
+
ethBlockNumber: 1n,
|
|
176
|
+
};
|
|
177
|
+
mockSeparateEventsByEligibility.mockResolvedValue([
|
|
178
|
+
{ chainId: 1n, events: { eligible: [event1], ineligible: [] } },
|
|
179
|
+
{ chainId: 2n, events: { eligible: [event2], ineligible: [] } },
|
|
180
|
+
]);
|
|
181
|
+
mockGetTreeIndexForChain.mockReturnValue(0n);
|
|
182
|
+
mockFetchLocalTeleportMerkleProofs.mockResolvedValue([]);
|
|
183
|
+
mockGenerateGlobalTeleportMerkleProofs.mockResolvedValue([]);
|
|
184
|
+
const params = {
|
|
185
|
+
burn: mockBurn,
|
|
186
|
+
tokens: [mockToken1, mockToken2],
|
|
187
|
+
hub: mockHub,
|
|
188
|
+
verifierContract: mockVerifierContract,
|
|
189
|
+
indexerUrl: "https://indexer.example.com",
|
|
190
|
+
};
|
|
191
|
+
const result = await collectRedeemContext(params);
|
|
192
|
+
expect(result.totalEligibleValue).toBe(250n);
|
|
193
|
+
expect(result.chains).toHaveLength(2);
|
|
194
|
+
expect(result.chains[0].chainId).toBe(1n);
|
|
195
|
+
expect(result.chains[0].totalEligibleValue).toBe(100n);
|
|
196
|
+
expect(result.chains[1].chainId).toBe(2n);
|
|
197
|
+
expect(result.chains[1].totalEligibleValue).toBe(150n);
|
|
198
|
+
});
|
|
199
|
+
test("uses custom indexerFetchLimit", async () => {
|
|
200
|
+
mockSeparateEventsByEligibility.mockResolvedValue([]);
|
|
201
|
+
const params = {
|
|
202
|
+
burn: mockBurn,
|
|
203
|
+
tokens: [mockToken1],
|
|
204
|
+
hub: mockHub,
|
|
205
|
+
verifierContract: mockVerifierContract,
|
|
206
|
+
indexerUrl: "https://indexer.example.com",
|
|
207
|
+
indexerFetchLimit: 500,
|
|
208
|
+
};
|
|
209
|
+
await collectRedeemContext(params);
|
|
210
|
+
expect(mockFetchTransferEvents).toHaveBeenCalledWith(expect.objectContaining({
|
|
211
|
+
indexerFetchLimit: 500,
|
|
212
|
+
}));
|
|
213
|
+
});
|
|
214
|
+
test("passes eventBlockSpan to fetchAggregationTreeState", async () => {
|
|
215
|
+
mockSeparateEventsByEligibility.mockResolvedValue([]);
|
|
216
|
+
const params = {
|
|
217
|
+
burn: mockBurn,
|
|
218
|
+
tokens: [mockToken1],
|
|
219
|
+
hub: mockHub,
|
|
220
|
+
verifierContract: mockVerifierContract,
|
|
221
|
+
indexerUrl: "https://indexer.example.com",
|
|
222
|
+
eventBlockSpan: 1000n,
|
|
223
|
+
};
|
|
224
|
+
await collectRedeemContext(params);
|
|
225
|
+
expect(mockFetchAggregationTreeState).toHaveBeenCalledWith(expect.objectContaining({
|
|
226
|
+
eventBlockSpan: 1000n,
|
|
227
|
+
}));
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
//# sourceMappingURL=redeemContext.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redeemContext.test.js","sourceRoot":"","sources":["../../../../src/operations/receive/__tests__/redeemContext.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Announcement status retrieval for receive operations.
|
|
3
|
+
*/
|
|
4
|
+
import type { AnnouncementStatus, AnnouncementStatusParams } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Retrieve a summary status of announcements for a burn recipient.
|
|
7
|
+
* @remarks
|
|
8
|
+
* Similar to `collectRedeemContext`, but focused on totals and per-chain event separation.
|
|
9
|
+
* Aggregation state can be cached via `cacheTtlMs`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getAnnouncementStatus(params: AnnouncementStatusParams): Promise<AnnouncementStatus>;
|
|
12
|
+
//# sourceMappingURL=announcementStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"announcementStatus.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/announcementStatus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE/E;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAoD7B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Announcement status retrieval 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 { fetchTransferEvents, separateEventsByEligibility } from "../../wasm/index.js";
|
|
8
|
+
import { fetchAggregationTreeStateWithCache } from "./cache.js";
|
|
9
|
+
import { readTotalTeleported } from "./helpers.js";
|
|
10
|
+
/**
|
|
11
|
+
* Retrieve a summary status of announcements for a burn recipient.
|
|
12
|
+
* @remarks
|
|
13
|
+
* Similar to `collectRedeemContext`, but focused on totals and per-chain event separation.
|
|
14
|
+
* Aggregation state can be cached via `cacheTtlMs`.
|
|
15
|
+
*/
|
|
16
|
+
export async function getAnnouncementStatus(params) {
|
|
17
|
+
const primaryChainId = params.burn.generalRecipient.chainId;
|
|
18
|
+
const primaryToken = findTokenByChain(params.tokens, primaryChainId);
|
|
19
|
+
const aggregationState = await fetchAggregationTreeStateWithCache({
|
|
20
|
+
hub: params.hub,
|
|
21
|
+
token: primaryToken,
|
|
22
|
+
eventBlockSpan: params.eventBlockSpan,
|
|
23
|
+
cacheTtlMs: params.cacheTtlMs,
|
|
24
|
+
});
|
|
25
|
+
const chainEvents = await fetchTransferEvents({
|
|
26
|
+
indexerUrl: params.indexerUrl,
|
|
27
|
+
tokens: params.tokens,
|
|
28
|
+
burnAddresses: [params.burn.burnAddress],
|
|
29
|
+
indexerFetchLimit: params.indexerFetchLimit ?? DEFAULT_INDEXER_FETCH_LIMIT,
|
|
30
|
+
});
|
|
31
|
+
const separatedChains = await separateEventsByEligibility({
|
|
32
|
+
aggregationState,
|
|
33
|
+
events: chainEvents,
|
|
34
|
+
});
|
|
35
|
+
const combinedEvents = { eligible: [], ineligible: [] };
|
|
36
|
+
for (const entry of separatedChains) {
|
|
37
|
+
combinedEvents.eligible.push(...entry.events.eligible);
|
|
38
|
+
combinedEvents.ineligible.push(...entry.events.ineligible);
|
|
39
|
+
}
|
|
40
|
+
const totalEligibleValue = combinedEvents.eligible.reduce((acc, event) => acc + event.value, 0n);
|
|
41
|
+
const totalPendingValue = combinedEvents.ineligible.reduce((acc, event) => acc + event.value, 0n);
|
|
42
|
+
const totalIndexedValue = totalEligibleValue + totalPendingValue;
|
|
43
|
+
const recipientFr = normalizeHex(params.burn.generalRecipient.fr);
|
|
44
|
+
const totalTeleported = await readTotalTeleported(params.verifierContract, recipientFr);
|
|
45
|
+
return {
|
|
46
|
+
token: primaryToken,
|
|
47
|
+
aggregationState,
|
|
48
|
+
events: combinedEvents,
|
|
49
|
+
chains: separatedChains,
|
|
50
|
+
totalEligibleValue,
|
|
51
|
+
totalPendingValue,
|
|
52
|
+
totalIndexedValue,
|
|
53
|
+
totalTeleported,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=announcementStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"announcementStatus.js","sourceRoot":"","sources":["../../../src/operations/receive/announcementStatus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAgC;IAEhC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;IAC5D,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAErE,MAAM,gBAAgB,GAAG,MAAM,kCAAkC,CAAC;QAChE,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,YAAY;QACnB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC;QAC5C,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QACxC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,2BAA2B;KAC3E,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,2BAA2B,CAAC;QACxD,gBAAgB;QAChB,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IAEH,MAAM,cAAc,GAA0B,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC/E,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvD,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACjC,EAAE,CACH,CAAC;IACF,MAAM,iBAAiB,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CACxD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACjC,EAAE,CACH,CAAC;IACF,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;IAEjE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAExF,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,gBAAgB;QAChB,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,eAAe;QACvB,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,eAAe;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aggregation state caching for receive operations.
|
|
3
|
+
*/
|
|
4
|
+
import type { HubEntry, TokenEntry } from "../../registry/tokens.js";
|
|
5
|
+
import type { AggregationTreeState } from "../../types.js";
|
|
6
|
+
export interface FetchAggregationStateParams {
|
|
7
|
+
/** Hub configuration used to fetch aggregation tree state. */
|
|
8
|
+
hub: HubEntry;
|
|
9
|
+
/** Token entry used to determine chainId and hub address. */
|
|
10
|
+
token: TokenEntry;
|
|
11
|
+
/** Optional block span used when fetching aggregation tree state (performance tuning). */
|
|
12
|
+
eventBlockSpan?: bigint | number;
|
|
13
|
+
/**
|
|
14
|
+
* Optional cache TTL (in milliseconds).
|
|
15
|
+
* @remarks When provided, cached entries are returned if not expired.
|
|
16
|
+
*/
|
|
17
|
+
cacheTtlMs?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Manager for caching aggregation tree states with TTL support.
|
|
21
|
+
*/
|
|
22
|
+
export declare class AggregationStateCacheManager {
|
|
23
|
+
private readonly cache;
|
|
24
|
+
/**
|
|
25
|
+
* Fetch aggregation tree state with caching.
|
|
26
|
+
* @remarks Uses TTL-based invalidation when `cacheTtlMs` is provided.
|
|
27
|
+
*/
|
|
28
|
+
fetchWithCache(params: FetchAggregationStateParams): Promise<AggregationTreeState>;
|
|
29
|
+
/**
|
|
30
|
+
* Clear a specific entry or all entries from the cache.
|
|
31
|
+
*/
|
|
32
|
+
clear(key?: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Reset the cache to its initial empty state.
|
|
35
|
+
* @remarks Alias for `clear()`; useful for testing.
|
|
36
|
+
*/
|
|
37
|
+
reset(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Return the number of cached entries.
|
|
40
|
+
*/
|
|
41
|
+
size(): number;
|
|
42
|
+
/**
|
|
43
|
+
* Return true if the cache contains an entry for the given key.
|
|
44
|
+
*/
|
|
45
|
+
has(key: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Return true if the cache contains an entry for the given hub and chain.
|
|
48
|
+
*/
|
|
49
|
+
hasEntry(hubAddress: string, chainId: bigint): boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Fetch aggregation tree state using the default cache manager.
|
|
53
|
+
* @remarks Uses TTL-based invalidation when `cacheTtlMs` is provided.
|
|
54
|
+
*/
|
|
55
|
+
export declare function fetchAggregationTreeStateWithCache(params: FetchAggregationStateParams): Promise<AggregationTreeState>;
|
|
56
|
+
/**
|
|
57
|
+
* Clear the default aggregation state cache.
|
|
58
|
+
*/
|
|
59
|
+
export declare function clearAggregationStateCache(): void;
|
|
60
|
+
/**
|
|
61
|
+
* Reset the default aggregation state cache to its initial state.
|
|
62
|
+
* @remarks Useful for testing.
|
|
63
|
+
*/
|
|
64
|
+
export declare function resetAggregationStateCache(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Get the default aggregation state cache manager.
|
|
67
|
+
*/
|
|
68
|
+
export declare function getDefaultAggregationStateCacheManager(): AggregationStateCacheManager;
|
|
69
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAa3D,MAAM,WAAW,2BAA2B;IAC1C,8DAA8D;IAC9D,GAAG,EAAE,QAAQ,CAAC;IACd,6DAA6D;IAC7D,KAAK,EAAE,UAAU,CAAC;IAClB,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAcD;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6C;IAEnE;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoBxF;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAQzB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAGvD;AAQD;;;GAGG;AACH,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,sCAAsC,IAAI,4BAA4B,CAErF"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aggregation state caching for receive operations.
|
|
3
|
+
*/
|
|
4
|
+
import { fetchAggregationTreeState } from "../../wasm/index.js";
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// Internal Utilities
|
|
7
|
+
// ============================================================================
|
|
8
|
+
function getCacheKey(hubAddress, chainId) {
|
|
9
|
+
return `${hubAddress.toLowerCase()}-${chainId}`;
|
|
10
|
+
}
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// AggregationStateCacheManager Class
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Manager for caching aggregation tree states with TTL support.
|
|
16
|
+
*/
|
|
17
|
+
export class AggregationStateCacheManager {
|
|
18
|
+
cache = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* Fetch aggregation tree state with caching.
|
|
21
|
+
* @remarks Uses TTL-based invalidation when `cacheTtlMs` is provided.
|
|
22
|
+
*/
|
|
23
|
+
async fetchWithCache(params) {
|
|
24
|
+
const cacheTtl = params.cacheTtlMs;
|
|
25
|
+
const cacheKey = getCacheKey(params.hub.hubAddress, params.token.chainId);
|
|
26
|
+
const cached = this.cache.get(cacheKey);
|
|
27
|
+
const now = Date.now();
|
|
28
|
+
if (cacheTtl != null && cached && now - cached.timestamp < cacheTtl) {
|
|
29
|
+
return cached.state;
|
|
30
|
+
}
|
|
31
|
+
const state = await fetchAggregationTreeState(params);
|
|
32
|
+
this.cache.set(cacheKey, {
|
|
33
|
+
state,
|
|
34
|
+
timestamp: now,
|
|
35
|
+
chainId: params.token.chainId,
|
|
36
|
+
});
|
|
37
|
+
return state;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Clear a specific entry or all entries from the cache.
|
|
41
|
+
*/
|
|
42
|
+
clear(key) {
|
|
43
|
+
if (key) {
|
|
44
|
+
this.cache.delete(key);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.cache.clear();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Reset the cache to its initial empty state.
|
|
51
|
+
* @remarks Alias for `clear()`; useful for testing.
|
|
52
|
+
*/
|
|
53
|
+
reset() {
|
|
54
|
+
this.cache.clear();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Return the number of cached entries.
|
|
58
|
+
*/
|
|
59
|
+
size() {
|
|
60
|
+
return this.cache.size;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Return true if the cache contains an entry for the given key.
|
|
64
|
+
*/
|
|
65
|
+
has(key) {
|
|
66
|
+
return this.cache.has(key);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Return true if the cache contains an entry for the given hub and chain.
|
|
70
|
+
*/
|
|
71
|
+
hasEntry(hubAddress, chainId) {
|
|
72
|
+
return this.cache.has(getCacheKey(hubAddress, chainId));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// ============================================================================
|
|
76
|
+
// Default Singleton & Backward-Compatible Functions
|
|
77
|
+
// ============================================================================
|
|
78
|
+
const defaultManager = new AggregationStateCacheManager();
|
|
79
|
+
/**
|
|
80
|
+
* Fetch aggregation tree state using the default cache manager.
|
|
81
|
+
* @remarks Uses TTL-based invalidation when `cacheTtlMs` is provided.
|
|
82
|
+
*/
|
|
83
|
+
export async function fetchAggregationTreeStateWithCache(params) {
|
|
84
|
+
return defaultManager.fetchWithCache(params);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Clear the default aggregation state cache.
|
|
88
|
+
*/
|
|
89
|
+
export function clearAggregationStateCache() {
|
|
90
|
+
defaultManager.clear();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Reset the default aggregation state cache to its initial state.
|
|
94
|
+
* @remarks Useful for testing.
|
|
95
|
+
*/
|
|
96
|
+
export function resetAggregationStateCache() {
|
|
97
|
+
defaultManager.reset();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get the default aggregation state cache manager.
|
|
101
|
+
*/
|
|
102
|
+
export function getDefaultAggregationStateCacheManager() {
|
|
103
|
+
return defaultManager;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/operations/receive/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AA0BhE,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,SAAS,WAAW,CAAC,UAAkB,EAAE,OAAe;IACtD,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC;AAClD,CAAC;AAED,+EAA+E;AAC/E,qCAAqC;AACrC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,4BAA4B;IACtB,KAAK,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEnE;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,MAAmC;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;QACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,QAAQ,IAAI,IAAI,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;YACpE,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACvB,KAAK;YACL,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;SAC9B,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAY;QAChB,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,UAAkB,EAAE,OAAe;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,+EAA+E;AAC/E,oDAAoD;AACpD,+EAA+E;AAE/E,MAAM,cAAc,GAAG,IAAI,4BAA4B,EAAE,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAmC;IAEnC,OAAO,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,cAAc,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,cAAc,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sCAAsC;IACpD,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper functions for receive operations.
|
|
3
|
+
*/
|
|
4
|
+
import type { VerifierContractLike, ViemVerifierContract } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Type guard for viem verifier contracts.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isViemVerifierContract(contract: VerifierContractLike): contract is ViemVerifierContract;
|
|
9
|
+
/**
|
|
10
|
+
* Read `totalTeleported` from a verifier contract, supporting multiple contract shapes.
|
|
11
|
+
* @param contract - Viem-style or legacy verifier contract instance.
|
|
12
|
+
* @param recipientFr - Recipient field element (as hex string).
|
|
13
|
+
* @throws If the contract does not expose a compatible `totalTeleported` method.
|
|
14
|
+
*/
|
|
15
|
+
export declare function readTotalTeleported(contract: VerifierContractLike, recipientFr: string): Promise<bigint>;
|
|
16
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,oBAAoB,GAC7B,QAAQ,IAAI,oBAAoB,CAElC;AAMD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAUjB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper functions for receive operations.
|
|
3
|
+
*/
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Type Guards
|
|
6
|
+
// ============================================================================
|
|
7
|
+
/**
|
|
8
|
+
* Type guard for viem verifier contracts.
|
|
9
|
+
*/
|
|
10
|
+
export function isViemVerifierContract(contract) {
|
|
11
|
+
return typeof contract.read?.totalTeleported === "function";
|
|
12
|
+
}
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Contract Helpers
|
|
15
|
+
// ============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Read `totalTeleported` from a verifier contract, supporting multiple contract shapes.
|
|
18
|
+
* @param contract - Viem-style or legacy verifier contract instance.
|
|
19
|
+
* @param recipientFr - Recipient field element (as hex string).
|
|
20
|
+
* @throws If the contract does not expose a compatible `totalTeleported` method.
|
|
21
|
+
*/
|
|
22
|
+
export async function readTotalTeleported(contract, recipientFr) {
|
|
23
|
+
if (isViemVerifierContract(contract)) {
|
|
24
|
+
const value = await contract.read.totalTeleported([recipientFr]);
|
|
25
|
+
return BigInt(value);
|
|
26
|
+
}
|
|
27
|
+
if (typeof contract.totalTeleported === "function") {
|
|
28
|
+
const value = await contract.totalTeleported(recipientFr);
|
|
29
|
+
return BigInt(value);
|
|
30
|
+
}
|
|
31
|
+
throw new Error("verifier contract must expose totalTeleported");
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=helpers.js.map
|