@prb/effect-evm 1.0.0-beta.0
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/CONTRIBUTING.md +42 -0
- package/DOCS.md +798 -0
- package/README.md +74 -0
- package/dist/abi/erc165.d.ts +21 -0
- package/dist/abi/erc165.d.ts.map +1 -0
- package/dist/abi/erc165.js +36 -0
- package/dist/abi/erc165.js.map +1 -0
- package/dist/abi/erc20-no-output.d.ts +14 -0
- package/dist/abi/erc20-no-output.d.ts.map +1 -0
- package/dist/abi/erc20-no-output.js +13 -0
- package/dist/abi/erc20-no-output.js.map +1 -0
- package/dist/abi/erc20.d.ts +2 -0
- package/dist/abi/erc20.d.ts.map +1 -0
- package/dist/abi/erc20.js +2 -0
- package/dist/abi/erc20.js.map +1 -0
- package/dist/abi/erc721.d.ts +3 -0
- package/dist/abi/erc721.d.ts.map +1 -0
- package/dist/abi/erc721.js +3 -0
- package/dist/abi/erc721.js.map +1 -0
- package/dist/abi/index.d.ts +5 -0
- package/dist/abi/index.d.ts.map +1 -0
- package/dist/abi/index.js +5 -0
- package/dist/abi/index.js.map +1 -0
- package/dist/balance/index.d.ts +3 -0
- package/dist/balance/index.d.ts.map +1 -0
- package/dist/balance/index.js +3 -0
- package/dist/balance/index.js.map +1 -0
- package/dist/balance/service.d.ts +57 -0
- package/dist/balance/service.d.ts.map +1 -0
- package/dist/balance/service.js +244 -0
- package/dist/balance/service.js.map +1 -0
- package/dist/balance/utils.d.ts +3 -0
- package/dist/balance/utils.d.ts.map +1 -0
- package/dist/balance/utils.js +23 -0
- package/dist/balance/utils.js.map +1 -0
- package/dist/block/errors.d.ts +22 -0
- package/dist/block/errors.d.ts.map +1 -0
- package/dist/block/errors.js +15 -0
- package/dist/block/errors.js.map +1 -0
- package/dist/block/index.d.ts +3 -0
- package/dist/block/index.d.ts.map +1 -0
- package/dist/block/index.js +3 -0
- package/dist/block/index.js.map +1 -0
- package/dist/block/service.d.ts +48 -0
- package/dist/block/service.d.ts.map +1 -0
- package/dist/block/service.js +194 -0
- package/dist/block/service.js.map +1 -0
- package/dist/constants/index.d.ts +16 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +17 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/contract/cross-chain-reader.d.ts +33 -0
- package/dist/contract/cross-chain-reader.d.ts.map +1 -0
- package/dist/contract/cross-chain-reader.js +86 -0
- package/dist/contract/cross-chain-reader.js.map +1 -0
- package/dist/contract/index.d.ts +6 -0
- package/dist/contract/index.d.ts.map +1 -0
- package/dist/contract/index.js +6 -0
- package/dist/contract/index.js.map +1 -0
- package/dist/contract/pipeline/index.d.ts +4 -0
- package/dist/contract/pipeline/index.d.ts.map +1 -0
- package/dist/contract/pipeline/index.js +4 -0
- package/dist/contract/pipeline/index.js.map +1 -0
- package/dist/contract/pipeline/internal/core.d.ts +22 -0
- package/dist/contract/pipeline/internal/core.d.ts.map +1 -0
- package/dist/contract/pipeline/internal/core.js +64 -0
- package/dist/contract/pipeline/internal/core.js.map +1 -0
- package/dist/contract/pipeline/internal/helpers.d.ts +3 -0
- package/dist/contract/pipeline/internal/helpers.d.ts.map +1 -0
- package/dist/contract/pipeline/internal/helpers.js +9 -0
- package/dist/contract/pipeline/internal/helpers.js.map +1 -0
- package/dist/contract/pipeline/internal/nonce.d.ts +22 -0
- package/dist/contract/pipeline/internal/nonce.d.ts.map +1 -0
- package/dist/contract/pipeline/internal/nonce.js +44 -0
- package/dist/contract/pipeline/internal/nonce.js.map +1 -0
- package/dist/contract/pipeline/internal/prepare.d.ts +20 -0
- package/dist/contract/pipeline/internal/prepare.d.ts.map +1 -0
- package/dist/contract/pipeline/internal/prepare.js +41 -0
- package/dist/contract/pipeline/internal/prepare.js.map +1 -0
- package/dist/contract/pipeline/internal/receipt.d.ts +12 -0
- package/dist/contract/pipeline/internal/receipt.d.ts.map +1 -0
- package/dist/contract/pipeline/internal/receipt.js +24 -0
- package/dist/contract/pipeline/internal/receipt.js.map +1 -0
- package/dist/contract/pipeline/live.d.ts +10 -0
- package/dist/contract/pipeline/live.d.ts.map +1 -0
- package/dist/contract/pipeline/live.js +40 -0
- package/dist/contract/pipeline/live.js.map +1 -0
- package/dist/contract/pipeline/service.d.ts +24 -0
- package/dist/contract/pipeline/service.d.ts.map +1 -0
- package/dist/contract/pipeline/service.js +4 -0
- package/dist/contract/pipeline/service.js.map +1 -0
- package/dist/contract/pipeline/types.d.ts +47 -0
- package/dist/contract/pipeline/types.d.ts.map +1 -0
- package/dist/contract/pipeline/types.js +2 -0
- package/dist/contract/pipeline/types.js.map +1 -0
- package/dist/contract/pipeline/write-and-track.d.ts +28 -0
- package/dist/contract/pipeline/write-and-track.d.ts.map +1 -0
- package/dist/contract/pipeline/write-and-track.js +264 -0
- package/dist/contract/pipeline/write-and-track.js.map +1 -0
- package/dist/contract/pipeline/write-and-wait.d.ts +7 -0
- package/dist/contract/pipeline/write-and-wait.d.ts.map +1 -0
- package/dist/contract/pipeline/write-and-wait.js +7 -0
- package/dist/contract/pipeline/write-and-wait.js.map +1 -0
- package/dist/contract/pipeline.d.ts +2 -0
- package/dist/contract/pipeline.d.ts.map +1 -0
- package/dist/contract/pipeline.js +2 -0
- package/dist/contract/pipeline.js.map +1 -0
- package/dist/contract/reader.d.ts +20 -0
- package/dist/contract/reader.d.ts.map +1 -0
- package/dist/contract/reader.js +64 -0
- package/dist/contract/reader.js.map +1 -0
- package/dist/contract/typed-contract.d.ts +33 -0
- package/dist/contract/typed-contract.d.ts.map +1 -0
- package/dist/contract/typed-contract.js +53 -0
- package/dist/contract/typed-contract.js.map +1 -0
- package/dist/contract/writer.d.ts +16 -0
- package/dist/contract/writer.d.ts.map +1 -0
- package/dist/contract/writer.js +84 -0
- package/dist/contract/writer.js.map +1 -0
- package/dist/core/clients/index.d.ts +3 -0
- package/dist/core/clients/index.d.ts.map +1 -0
- package/dist/core/clients/index.js +3 -0
- package/dist/core/clients/index.js.map +1 -0
- package/dist/core/clients/public-client.d.ts +12 -0
- package/dist/core/clients/public-client.d.ts.map +1 -0
- package/dist/core/clients/public-client.js +4 -0
- package/dist/core/clients/public-client.js.map +1 -0
- package/dist/core/clients/wallet-client.d.ts +12 -0
- package/dist/core/clients/wallet-client.d.ts.map +1 -0
- package/dist/core/clients/wallet-client.js +4 -0
- package/dist/core/clients/wallet-client.js.map +1 -0
- package/dist/core/errors/client.d.ts +37 -0
- package/dist/core/errors/client.d.ts.map +1 -0
- package/dist/core/errors/client.js +24 -0
- package/dist/core/errors/client.js.map +1 -0
- package/dist/core/errors/contract.d.ts +58 -0
- package/dist/core/errors/contract.d.ts.map +1 -0
- package/dist/core/errors/contract.js +42 -0
- package/dist/core/errors/contract.js.map +1 -0
- package/dist/core/errors/erc20.d.ts +24 -0
- package/dist/core/errors/erc20.d.ts.map +1 -0
- package/dist/core/errors/erc20.js +17 -0
- package/dist/core/errors/erc20.js.map +1 -0
- package/dist/core/errors/event.d.ts +21 -0
- package/dist/core/errors/event.d.ts.map +1 -0
- package/dist/core/errors/event.js +14 -0
- package/dist/core/errors/event.js.map +1 -0
- package/dist/core/errors/index.d.ts +8 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +8 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/errors/predicates.d.ts +12 -0
- package/dist/core/errors/predicates.d.ts.map +1 -0
- package/dist/core/errors/predicates.js +3 -0
- package/dist/core/errors/predicates.js.map +1 -0
- package/dist/core/errors/transaction.d.ts +57 -0
- package/dist/core/errors/transaction.d.ts.map +1 -0
- package/dist/core/errors/transaction.js +36 -0
- package/dist/core/errors/transaction.js.map +1 -0
- package/dist/core/errors/viem-mapper.d.ts +45 -0
- package/dist/core/errors/viem-mapper.d.ts.map +1 -0
- package/dist/core/errors/viem-mapper.js +251 -0
- package/dist/core/errors/viem-mapper.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -0
- package/dist/deploy/errors.d.ts +30 -0
- package/dist/deploy/errors.d.ts.map +1 -0
- package/dist/deploy/errors.js +20 -0
- package/dist/deploy/errors.js.map +1 -0
- package/dist/deploy/index.d.ts +3 -0
- package/dist/deploy/index.d.ts.map +1 -0
- package/dist/deploy/index.js +3 -0
- package/dist/deploy/index.js.map +1 -0
- package/dist/deploy/service.d.ts +62 -0
- package/dist/deploy/service.d.ts.map +1 -0
- package/dist/deploy/service.js +233 -0
- package/dist/deploy/service.js.map +1 -0
- package/dist/eip7702/erc7579.d.ts +36 -0
- package/dist/eip7702/erc7579.d.ts.map +1 -0
- package/dist/eip7702/erc7579.js +52 -0
- package/dist/eip7702/erc7579.js.map +1 -0
- package/dist/eip7702/errors.d.ts +30 -0
- package/dist/eip7702/errors.d.ts.map +1 -0
- package/dist/eip7702/errors.js +20 -0
- package/dist/eip7702/errors.js.map +1 -0
- package/dist/eip7702/index.d.ts +4 -0
- package/dist/eip7702/index.d.ts.map +1 -0
- package/dist/eip7702/index.js +4 -0
- package/dist/eip7702/index.js.map +1 -0
- package/dist/eip7702/service.d.ts +64 -0
- package/dist/eip7702/service.d.ts.map +1 -0
- package/dist/eip7702/service.js +166 -0
- package/dist/eip7702/service.js.map +1 -0
- package/dist/ens/ens.d.ts +26 -0
- package/dist/ens/ens.d.ts.map +1 -0
- package/dist/ens/ens.js +144 -0
- package/dist/ens/ens.js.map +1 -0
- package/dist/ens/errors.d.ts +53 -0
- package/dist/ens/errors.d.ts.map +1 -0
- package/dist/ens/errors.js +34 -0
- package/dist/ens/errors.js.map +1 -0
- package/dist/ens/index.d.ts +3 -0
- package/dist/ens/index.d.ts.map +1 -0
- package/dist/ens/index.js +3 -0
- package/dist/ens/index.js.map +1 -0
- package/dist/erc20/allowance/core.d.ts +9 -0
- package/dist/erc20/allowance/core.d.ts.map +1 -0
- package/dist/erc20/allowance/core.js +121 -0
- package/dist/erc20/allowance/core.js.map +1 -0
- package/dist/erc20/allowance/index.d.ts +4 -0
- package/dist/erc20/allowance/index.d.ts.map +1 -0
- package/dist/erc20/allowance/index.js +4 -0
- package/dist/erc20/allowance/index.js.map +1 -0
- package/dist/erc20/allowance/no-output.d.ts +9 -0
- package/dist/erc20/allowance/no-output.d.ts.map +1 -0
- package/dist/erc20/allowance/no-output.js +122 -0
- package/dist/erc20/allowance/no-output.js.map +1 -0
- package/dist/erc20/allowance/types.d.ts +42 -0
- package/dist/erc20/allowance/types.d.ts.map +1 -0
- package/dist/erc20/allowance/types.js +2 -0
- package/dist/erc20/allowance/types.js.map +1 -0
- package/dist/erc20/index.d.ts +2 -0
- package/dist/erc20/index.d.ts.map +1 -0
- package/dist/erc20/index.js +2 -0
- package/dist/erc20/index.js.map +1 -0
- package/dist/erc721/errors.d.ts +47 -0
- package/dist/erc721/errors.d.ts.map +1 -0
- package/dist/erc721/errors.js +34 -0
- package/dist/erc721/errors.js.map +1 -0
- package/dist/erc721/helpers.d.ts +24 -0
- package/dist/erc721/helpers.d.ts.map +1 -0
- package/dist/erc721/helpers.js +28 -0
- package/dist/erc721/helpers.js.map +1 -0
- package/dist/erc721/index.d.ts +4 -0
- package/dist/erc721/index.d.ts.map +1 -0
- package/dist/erc721/index.js +4 -0
- package/dist/erc721/index.js.map +1 -0
- package/dist/erc721/metadata.d.ts +28 -0
- package/dist/erc721/metadata.d.ts.map +1 -0
- package/dist/erc721/metadata.js +67 -0
- package/dist/erc721/metadata.js.map +1 -0
- package/dist/erc721/service.d.ts +93 -0
- package/dist/erc721/service.d.ts.map +1 -0
- package/dist/erc721/service.js +277 -0
- package/dist/erc721/service.js.map +1 -0
- package/dist/events/backfill.d.ts +25 -0
- package/dist/events/backfill.d.ts.map +1 -0
- package/dist/events/backfill.js +36 -0
- package/dist/events/backfill.js.map +1 -0
- package/dist/events/cursor.d.ts +40 -0
- package/dist/events/cursor.d.ts.map +1 -0
- package/dist/events/cursor.js +85 -0
- package/dist/events/cursor.js.map +1 -0
- package/dist/events/decoder.d.ts +18 -0
- package/dist/events/decoder.d.ts.map +1 -0
- package/dist/events/decoder.js +33 -0
- package/dist/events/decoder.js.map +1 -0
- package/dist/events/index.d.ts +6 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +6 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/reliable-stream.d.ts +25 -0
- package/dist/events/reliable-stream.d.ts.map +1 -0
- package/dist/events/reliable-stream.js +121 -0
- package/dist/events/reliable-stream.js.map +1 -0
- package/dist/events/stream.d.ts +25 -0
- package/dist/events/stream.d.ts.map +1 -0
- package/dist/events/stream.js +39 -0
- package/dist/events/stream.js.map +1 -0
- package/dist/gas/errors.d.ts +12 -0
- package/dist/gas/errors.d.ts.map +1 -0
- package/dist/gas/errors.js +8 -0
- package/dist/gas/errors.js.map +1 -0
- package/dist/gas/estimator.d.ts +15 -0
- package/dist/gas/estimator.d.ts.map +1 -0
- package/dist/gas/estimator.js +113 -0
- package/dist/gas/estimator.js.map +1 -0
- package/dist/gas/index.d.ts +4 -0
- package/dist/gas/index.d.ts.map +1 -0
- package/dist/gas/index.js +4 -0
- package/dist/gas/index.js.map +1 -0
- package/dist/gas/service.d.ts +37 -0
- package/dist/gas/service.d.ts.map +1 -0
- package/dist/gas/service.js +95 -0
- package/dist/gas/service.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/react-hooks/convenience/index.d.ts +28 -0
- package/dist/integrations/react-hooks/convenience/index.d.ts.map +1 -0
- package/dist/integrations/react-hooks/convenience/index.js +126 -0
- package/dist/integrations/react-hooks/convenience/index.js.map +1 -0
- package/dist/integrations/react-hooks/internal/error.d.ts +5 -0
- package/dist/integrations/react-hooks/internal/error.d.ts.map +1 -0
- package/dist/integrations/react-hooks/internal/error.js +8 -0
- package/dist/integrations/react-hooks/internal/error.js.map +1 -0
- package/dist/integrations/react-hooks/internal/is-dev.d.ts +2 -0
- package/dist/integrations/react-hooks/internal/is-dev.d.ts.map +1 -0
- package/dist/integrations/react-hooks/internal/is-dev.js +4 -0
- package/dist/integrations/react-hooks/internal/is-dev.js.map +1 -0
- package/dist/integrations/react-hooks/internal/runtime.d.ts +21 -0
- package/dist/integrations/react-hooks/internal/runtime.d.ts.map +1 -0
- package/dist/integrations/react-hooks/internal/runtime.js +37 -0
- package/dist/integrations/react-hooks/internal/runtime.js.map +1 -0
- package/dist/integrations/react-hooks/internal/scoped-run.d.ts +11 -0
- package/dist/integrations/react-hooks/internal/scoped-run.d.ts.map +1 -0
- package/dist/integrations/react-hooks/internal/scoped-run.js +20 -0
- package/dist/integrations/react-hooks/internal/scoped-run.js.map +1 -0
- package/dist/integrations/react-hooks/internal/stable.d.ts +2 -0
- package/dist/integrations/react-hooks/internal/stable.d.ts.map +1 -0
- package/dist/integrations/react-hooks/internal/stable.js +2 -0
- package/dist/integrations/react-hooks/internal/stable.js.map +1 -0
- package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.d.ts +11 -0
- package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.d.ts.map +1 -0
- package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.js +92 -0
- package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.js.map +1 -0
- package/dist/integrations/react-hooks/primitives/use-effect.d.ts +23 -0
- package/dist/integrations/react-hooks/primitives/use-effect.d.ts.map +1 -0
- package/dist/integrations/react-hooks/primitives/use-effect.js +93 -0
- package/dist/integrations/react-hooks/primitives/use-effect.js.map +1 -0
- package/dist/integrations/react-hooks/primitives/use-fork-effect.d.ts +4 -0
- package/dist/integrations/react-hooks/primitives/use-fork-effect.d.ts.map +1 -0
- package/dist/integrations/react-hooks/primitives/use-fork-effect.js +20 -0
- package/dist/integrations/react-hooks/primitives/use-fork-effect.js.map +1 -0
- package/dist/integrations/react-hooks/primitives/use-stream.d.ts +26 -0
- package/dist/integrations/react-hooks/primitives/use-stream.d.ts.map +1 -0
- package/dist/integrations/react-hooks/primitives/use-stream.js +161 -0
- package/dist/integrations/react-hooks/primitives/use-stream.js.map +1 -0
- package/dist/integrations/react-hooks/primitives.d.ts +8 -0
- package/dist/integrations/react-hooks/primitives.d.ts.map +1 -0
- package/dist/integrations/react-hooks/primitives.js +6 -0
- package/dist/integrations/react-hooks/primitives.js.map +1 -0
- package/dist/integrations/react-hooks/provider.d.ts +19 -0
- package/dist/integrations/react-hooks/provider.d.ts.map +1 -0
- package/dist/integrations/react-hooks/provider.js +71 -0
- package/dist/integrations/react-hooks/provider.js.map +1 -0
- package/dist/integrations/react-hooks/wagmi/index.d.ts +13 -0
- package/dist/integrations/react-hooks/wagmi/index.d.ts.map +1 -0
- package/dist/integrations/react-hooks/wagmi/index.js +81 -0
- package/dist/integrations/react-hooks/wagmi/index.js.map +1 -0
- package/dist/integrations/react-hooks/wallet-provider-ref.d.ts +7 -0
- package/dist/integrations/react-hooks/wallet-provider-ref.d.ts.map +1 -0
- package/dist/integrations/react-hooks/wallet-provider-ref.js +27 -0
- package/dist/integrations/react-hooks/wallet-provider-ref.js.map +1 -0
- package/dist/integrations/wagmi/index.d.ts +2 -0
- package/dist/integrations/wagmi/index.d.ts.map +1 -0
- package/dist/integrations/wagmi/index.js +2 -0
- package/dist/integrations/wagmi/index.js.map +1 -0
- package/dist/integrations/wagmi/layers.d.ts +12 -0
- package/dist/integrations/wagmi/layers.d.ts.map +1 -0
- package/dist/integrations/wagmi/layers.js +72 -0
- package/dist/integrations/wagmi/layers.js.map +1 -0
- package/dist/internal/index.d.ts +5 -0
- package/dist/internal/index.d.ts.map +1 -0
- package/dist/internal/index.js +5 -0
- package/dist/internal/index.js.map +1 -0
- package/dist/internal/numbers.d.ts +28 -0
- package/dist/internal/numbers.d.ts.map +1 -0
- package/dist/internal/numbers.js +139 -0
- package/dist/internal/numbers.js.map +1 -0
- package/dist/internal/schedule.d.ts +9 -0
- package/dist/internal/schedule.d.ts.map +1 -0
- package/dist/internal/schedule.js +10 -0
- package/dist/internal/schedule.js.map +1 -0
- package/dist/internal/stream-adapters.d.ts +10 -0
- package/dist/internal/stream-adapters.d.ts.map +1 -0
- package/dist/internal/stream-adapters.js +9 -0
- package/dist/internal/stream-adapters.js.map +1 -0
- package/dist/internal/viem-effect.d.ts +8 -0
- package/dist/internal/viem-effect.d.ts.map +1 -0
- package/dist/internal/viem-effect.js +14 -0
- package/dist/internal/viem-effect.js.map +1 -0
- package/dist/nonce/index.d.ts +3 -0
- package/dist/nonce/index.d.ts.map +1 -0
- package/dist/nonce/index.js +3 -0
- package/dist/nonce/index.js.map +1 -0
- package/dist/nonce/manager.d.ts +13 -0
- package/dist/nonce/manager.d.ts.map +1 -0
- package/dist/nonce/manager.js +100 -0
- package/dist/nonce/manager.js.map +1 -0
- package/dist/nonce/service.d.ts +46 -0
- package/dist/nonce/service.d.ts.map +1 -0
- package/dist/nonce/service.js +139 -0
- package/dist/nonce/service.js.map +1 -0
- package/dist/platform/browser/cursor-store/index.d.ts +2 -0
- package/dist/platform/browser/cursor-store/index.d.ts.map +1 -0
- package/dist/platform/browser/cursor-store/index.js +2 -0
- package/dist/platform/browser/cursor-store/index.js.map +1 -0
- package/dist/platform/browser/cursor-store/local-storage.d.ts +5 -0
- package/dist/platform/browser/cursor-store/local-storage.d.ts.map +1 -0
- package/dist/platform/browser/cursor-store/local-storage.js +99 -0
- package/dist/platform/browser/cursor-store/local-storage.js.map +1 -0
- package/dist/platform/browser/index.d.ts +6 -0
- package/dist/platform/browser/index.d.ts.map +1 -0
- package/dist/platform/browser/index.js +6 -0
- package/dist/platform/browser/index.js.map +1 -0
- package/dist/platform/browser/layers.d.ts +13 -0
- package/dist/platform/browser/layers.d.ts.map +1 -0
- package/dist/platform/browser/layers.js +8 -0
- package/dist/platform/browser/layers.js.map +1 -0
- package/dist/platform/browser/storage/errors.d.ts +28 -0
- package/dist/platform/browser/storage/errors.d.ts.map +1 -0
- package/dist/platform/browser/storage/errors.js +17 -0
- package/dist/platform/browser/storage/errors.js.map +1 -0
- package/dist/platform/browser/storage/index.d.ts +3 -0
- package/dist/platform/browser/storage/index.d.ts.map +1 -0
- package/dist/platform/browser/storage/index.js +3 -0
- package/dist/platform/browser/storage/index.js.map +1 -0
- package/dist/platform/browser/storage/local-storage.d.ts +10 -0
- package/dist/platform/browser/storage/local-storage.d.ts.map +1 -0
- package/dist/platform/browser/storage/local-storage.js +89 -0
- package/dist/platform/browser/storage/local-storage.js.map +1 -0
- package/dist/platform/browser/tx-persistence/index.d.ts +2 -0
- package/dist/platform/browser/tx-persistence/index.d.ts.map +1 -0
- package/dist/platform/browser/tx-persistence/index.js +2 -0
- package/dist/platform/browser/tx-persistence/index.js.map +1 -0
- package/dist/platform/browser/tx-persistence/persistence.d.ts +22 -0
- package/dist/platform/browser/tx-persistence/persistence.d.ts.map +1 -0
- package/dist/platform/browser/tx-persistence/persistence.js +170 -0
- package/dist/platform/browser/tx-persistence/persistence.js.map +1 -0
- package/dist/platform/browser/tx-store/errors.d.ts +3 -0
- package/dist/platform/browser/tx-store/errors.d.ts.map +1 -0
- package/dist/platform/browser/tx-store/errors.js +2 -0
- package/dist/platform/browser/tx-store/errors.js.map +1 -0
- package/dist/platform/browser/tx-store/index.d.ts +5 -0
- package/dist/platform/browser/tx-store/index.d.ts.map +1 -0
- package/dist/platform/browser/tx-store/index.js +4 -0
- package/dist/platform/browser/tx-store/index.js.map +1 -0
- package/dist/platform/browser/tx-store/local-storage.d.ts +9 -0
- package/dist/platform/browser/tx-store/local-storage.d.ts.map +1 -0
- package/dist/platform/browser/tx-store/local-storage.js +163 -0
- package/dist/platform/browser/tx-store/local-storage.js.map +1 -0
- package/dist/platform/browser/tx-store/store.d.ts +16 -0
- package/dist/platform/browser/tx-store/store.d.ts.map +1 -0
- package/dist/platform/browser/tx-store/store.js +35 -0
- package/dist/platform/browser/tx-store/store.js.map +1 -0
- package/dist/platform/browser/tx-store/types.d.ts +34 -0
- package/dist/platform/browser/tx-store/types.d.ts.map +1 -0
- package/dist/platform/browser/tx-store/types.js +4 -0
- package/dist/platform/browser/tx-store/types.js.map +1 -0
- package/dist/presets/index.d.ts +3 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +3 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/layers.d.ts +59 -0
- package/dist/presets/layers.d.ts.map +1 -0
- package/dist/presets/layers.js +317 -0
- package/dist/presets/layers.js.map +1 -0
- package/dist/presets/transports.d.ts +16 -0
- package/dist/presets/transports.d.ts.map +1 -0
- package/dist/presets/transports.js +19 -0
- package/dist/presets/transports.js.map +1 -0
- package/dist/query/chain-head.d.ts +14 -0
- package/dist/query/chain-head.d.ts.map +1 -0
- package/dist/query/chain-head.js +34 -0
- package/dist/query/chain-head.js.map +1 -0
- package/dist/query/client.d.ts +21 -0
- package/dist/query/client.d.ts.map +1 -0
- package/dist/query/client.js +64 -0
- package/dist/query/client.js.map +1 -0
- package/dist/query/contract-query.d.ts +25 -0
- package/dist/query/contract-query.d.ts.map +1 -0
- package/dist/query/contract-query.js +76 -0
- package/dist/query/contract-query.js.map +1 -0
- package/dist/query/index.d.ts +5 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +5 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/multicall-batcher.d.ts +16 -0
- package/dist/query/multicall-batcher.d.ts.map +1 -0
- package/dist/query/multicall-batcher.js +62 -0
- package/dist/query/multicall-batcher.js.map +1 -0
- package/dist/react-hooks/index.d.ts +9 -0
- package/dist/react-hooks/index.d.ts.map +1 -0
- package/dist/react-hooks/index.js +7 -0
- package/dist/react-hooks/index.js.map +1 -0
- package/dist/react-hooks/use-is-safe-multisig.d.ts +2 -0
- package/dist/react-hooks/use-is-safe-multisig.d.ts.map +1 -0
- package/dist/react-hooks/use-is-safe-multisig.js +44 -0
- package/dist/react-hooks/use-is-safe-multisig.js.map +1 -0
- package/dist/react-hooks/use-safe-context.d.ts +2 -0
- package/dist/react-hooks/use-safe-context.d.ts.map +1 -0
- package/dist/react-hooks/use-safe-context.js +41 -0
- package/dist/react-hooks/use-safe-context.js.map +1 -0
- package/dist/react-hooks/wagmi/index.d.ts +2 -0
- package/dist/react-hooks/wagmi/index.d.ts.map +1 -0
- package/dist/react-hooks/wagmi/index.js +3 -0
- package/dist/react-hooks/wagmi/index.js.map +1 -0
- package/dist/rpc/cache.d.ts +25 -0
- package/dist/rpc/cache.d.ts.map +1 -0
- package/dist/rpc/cache.js +127 -0
- package/dist/rpc/cache.js.map +1 -0
- package/dist/rpc/circuit-breaker.d.ts +28 -0
- package/dist/rpc/circuit-breaker.d.ts.map +1 -0
- package/dist/rpc/circuit-breaker.js +108 -0
- package/dist/rpc/circuit-breaker.js.map +1 -0
- package/dist/rpc/dedup.d.ts +10 -0
- package/dist/rpc/dedup.d.ts.map +1 -0
- package/dist/rpc/dedup.js +39 -0
- package/dist/rpc/dedup.js.map +1 -0
- package/dist/rpc/index.d.ts +6 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js +6 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/rpc/retry.d.ts +15 -0
- package/dist/rpc/retry.d.ts.map +1 -0
- package/dist/rpc/retry.js +34 -0
- package/dist/rpc/retry.js.map +1 -0
- package/dist/rpc/routemesh.d.ts +29 -0
- package/dist/rpc/routemesh.d.ts.map +1 -0
- package/dist/rpc/routemesh.js +21 -0
- package/dist/rpc/routemesh.js.map +1 -0
- package/dist/safe/adapter.d.ts +9 -0
- package/dist/safe/adapter.d.ts.map +1 -0
- package/dist/safe/adapter.js +13 -0
- package/dist/safe/adapter.js.map +1 -0
- package/dist/safe/detection.d.ts +26 -0
- package/dist/safe/detection.d.ts.map +1 -0
- package/dist/safe/detection.js +102 -0
- package/dist/safe/detection.js.map +1 -0
- package/dist/safe/errors.d.ts +79 -0
- package/dist/safe/errors.d.ts.map +1 -0
- package/dist/safe/errors.js +34 -0
- package/dist/safe/errors.js.map +1 -0
- package/dist/safe/index.d.ts +8 -0
- package/dist/safe/index.d.ts.map +1 -0
- package/dist/safe/index.js +6 -0
- package/dist/safe/index.js.map +1 -0
- package/dist/safe/live.d.ts +8 -0
- package/dist/safe/live.d.ts.map +1 -0
- package/dist/safe/live.js +250 -0
- package/dist/safe/live.js.map +1 -0
- package/dist/safe/service.d.ts +26 -0
- package/dist/safe/service.d.ts.map +1 -0
- package/dist/safe/service.js +4 -0
- package/dist/safe/service.js.map +1 -0
- package/dist/safe/simulation/abis.d.ts +73 -0
- package/dist/safe/simulation/abis.d.ts.map +1 -0
- package/dist/safe/simulation/abis.js +61 -0
- package/dist/safe/simulation/abis.js.map +1 -0
- package/dist/safe/simulation/addresses.d.ts +4 -0
- package/dist/safe/simulation/addresses.d.ts.map +1 -0
- package/dist/safe/simulation/addresses.js +40 -0
- package/dist/safe/simulation/addresses.js.map +1 -0
- package/dist/safe/simulation/encoding.d.ts +16 -0
- package/dist/safe/simulation/encoding.d.ts.map +1 -0
- package/dist/safe/simulation/encoding.js +36 -0
- package/dist/safe/simulation/encoding.js.map +1 -0
- package/dist/safe/simulation/errors.d.ts +56 -0
- package/dist/safe/simulation/errors.d.ts.map +1 -0
- package/dist/safe/simulation/errors.js +37 -0
- package/dist/safe/simulation/errors.js.map +1 -0
- package/dist/safe/simulation/index.d.ts +7 -0
- package/dist/safe/simulation/index.d.ts.map +1 -0
- package/dist/safe/simulation/index.js +6 -0
- package/dist/safe/simulation/index.js.map +1 -0
- package/dist/safe/simulation/service.d.ts +14 -0
- package/dist/safe/simulation/service.d.ts.map +1 -0
- package/dist/safe/simulation/service.js +140 -0
- package/dist/safe/simulation/service.js.map +1 -0
- package/dist/safe/simulation/types.d.ts +20 -0
- package/dist/safe/simulation/types.d.ts.map +1 -0
- package/dist/safe/simulation/types.js +2 -0
- package/dist/safe/simulation/types.js.map +1 -0
- package/dist/safe/types.d.ts +61 -0
- package/dist/safe/types.d.ts.map +1 -0
- package/dist/safe/types.js +2 -0
- package/dist/safe/types.js.map +1 -0
- package/dist/signature/errors.d.ts +29 -0
- package/dist/signature/errors.d.ts.map +1 -0
- package/dist/signature/errors.js +19 -0
- package/dist/signature/errors.js.map +1 -0
- package/dist/signature/index.d.ts +4 -0
- package/dist/signature/index.d.ts.map +1 -0
- package/dist/signature/index.js +4 -0
- package/dist/signature/index.js.map +1 -0
- package/dist/signature/service.d.ts +34 -0
- package/dist/signature/service.d.ts.map +1 -0
- package/dist/signature/service.js +97 -0
- package/dist/signature/service.js.map +1 -0
- package/dist/signature/utils.d.ts +13 -0
- package/dist/signature/utils.d.ts.map +1 -0
- package/dist/signature/utils.js +17 -0
- package/dist/signature/utils.js.map +1 -0
- package/dist/simulation/errors.d.ts +36 -0
- package/dist/simulation/errors.d.ts.map +1 -0
- package/dist/simulation/errors.js +23 -0
- package/dist/simulation/errors.js.map +1 -0
- package/dist/simulation/index.d.ts +5 -0
- package/dist/simulation/index.d.ts.map +1 -0
- package/dist/simulation/index.js +5 -0
- package/dist/simulation/index.js.map +1 -0
- package/dist/simulation/service.d.ts +34 -0
- package/dist/simulation/service.d.ts.map +1 -0
- package/dist/simulation/service.js +149 -0
- package/dist/simulation/service.js.map +1 -0
- package/dist/simulation/tenderly.d.ts +26 -0
- package/dist/simulation/tenderly.d.ts.map +1 -0
- package/dist/simulation/tenderly.js +200 -0
- package/dist/simulation/tenderly.js.map +1 -0
- package/dist/simulation/types.d.ts +47 -0
- package/dist/simulation/types.d.ts.map +1 -0
- package/dist/simulation/types.js +2 -0
- package/dist/simulation/types.js.map +1 -0
- package/dist/subscriptions/block-subscription.d.ts +10 -0
- package/dist/subscriptions/block-subscription.d.ts.map +1 -0
- package/dist/subscriptions/block-subscription.js +31 -0
- package/dist/subscriptions/block-subscription.js.map +1 -0
- package/dist/subscriptions/errors.d.ts +21 -0
- package/dist/subscriptions/errors.d.ts.map +1 -0
- package/dist/subscriptions/errors.js +14 -0
- package/dist/subscriptions/errors.js.map +1 -0
- package/dist/subscriptions/index.d.ts +6 -0
- package/dist/subscriptions/index.d.ts.map +1 -0
- package/dist/subscriptions/index.js +6 -0
- package/dist/subscriptions/index.js.map +1 -0
- package/dist/subscriptions/log-subscription.d.ts +11 -0
- package/dist/subscriptions/log-subscription.d.ts.map +1 -0
- package/dist/subscriptions/log-subscription.js +35 -0
- package/dist/subscriptions/log-subscription.js.map +1 -0
- package/dist/subscriptions/pending-tx.d.ts +8 -0
- package/dist/subscriptions/pending-tx.d.ts.map +1 -0
- package/dist/subscriptions/pending-tx.js +39 -0
- package/dist/subscriptions/pending-tx.js.map +1 -0
- package/dist/subscriptions/service.d.ts +64 -0
- package/dist/subscriptions/service.d.ts.map +1 -0
- package/dist/subscriptions/service.js +56 -0
- package/dist/subscriptions/service.js.map +1 -0
- package/dist/telemetry/index.d.ts +3 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +3 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/logger.d.ts +27 -0
- package/dist/telemetry/logger.d.ts.map +1 -0
- package/dist/telemetry/logger.js +7 -0
- package/dist/telemetry/logger.js.map +1 -0
- package/dist/telemetry/tracer.d.ts +94 -0
- package/dist/telemetry/tracer.d.ts.map +1 -0
- package/dist/telemetry/tracer.js +94 -0
- package/dist/telemetry/tracer.js.map +1 -0
- package/dist/testing-kit/_fixtures/addresses.d.ts +6 -0
- package/dist/testing-kit/_fixtures/addresses.d.ts.map +1 -0
- package/dist/testing-kit/_fixtures/addresses.js +7 -0
- package/dist/testing-kit/_fixtures/addresses.js.map +1 -0
- package/dist/testing-kit/_fixtures/receipts.d.ts +19 -0
- package/dist/testing-kit/_fixtures/receipts.d.ts.map +1 -0
- package/dist/testing-kit/_fixtures/receipts.js +22 -0
- package/dist/testing-kit/_fixtures/receipts.js.map +1 -0
- package/dist/testing-kit/helpers.d.ts +21 -0
- package/dist/testing-kit/helpers.d.ts.map +1 -0
- package/dist/testing-kit/helpers.js +56 -0
- package/dist/testing-kit/helpers.js.map +1 -0
- package/dist/testing-kit/index.d.ts +34 -0
- package/dist/testing-kit/index.d.ts.map +1 -0
- package/dist/testing-kit/index.js +19 -0
- package/dist/testing-kit/index.js.map +1 -0
- package/dist/testing-kit/mock-balance-service.d.ts +47 -0
- package/dist/testing-kit/mock-balance-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-balance-service.js +28 -0
- package/dist/testing-kit/mock-balance-service.js.map +1 -0
- package/dist/testing-kit/mock-block-service.d.ts +44 -0
- package/dist/testing-kit/mock-block-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-block-service.js +55 -0
- package/dist/testing-kit/mock-block-service.js.map +1 -0
- package/dist/testing-kit/mock-cross-chain-reader.d.ts +18 -0
- package/dist/testing-kit/mock-cross-chain-reader.d.ts.map +1 -0
- package/dist/testing-kit/mock-cross-chain-reader.js +65 -0
- package/dist/testing-kit/mock-cross-chain-reader.js.map +1 -0
- package/dist/testing-kit/mock-deploy-service.d.ts +47 -0
- package/dist/testing-kit/mock-deploy-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-deploy-service.js +52 -0
- package/dist/testing-kit/mock-deploy-service.js.map +1 -0
- package/dist/testing-kit/mock-erc721-service.d.ts +87 -0
- package/dist/testing-kit/mock-erc721-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-erc721-service.js +41 -0
- package/dist/testing-kit/mock-erc721-service.js.map +1 -0
- package/dist/testing-kit/mock-gas-service.d.ts +33 -0
- package/dist/testing-kit/mock-gas-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-gas-service.js +58 -0
- package/dist/testing-kit/mock-gas-service.js.map +1 -0
- package/dist/testing-kit/mock-nonce-service.d.ts +43 -0
- package/dist/testing-kit/mock-nonce-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-nonce-service.js +24 -0
- package/dist/testing-kit/mock-nonce-service.js.map +1 -0
- package/dist/testing-kit/mock-public-client.d.ts +56 -0
- package/dist/testing-kit/mock-public-client.d.ts.map +1 -0
- package/dist/testing-kit/mock-public-client.js +91 -0
- package/dist/testing-kit/mock-public-client.js.map +1 -0
- package/dist/testing-kit/mock-signature-service.d.ts +50 -0
- package/dist/testing-kit/mock-signature-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-signature-service.js +30 -0
- package/dist/testing-kit/mock-signature-service.js.map +1 -0
- package/dist/testing-kit/mock-simulation-service.d.ts +29 -0
- package/dist/testing-kit/mock-simulation-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-simulation-service.js +28 -0
- package/dist/testing-kit/mock-simulation-service.js.map +1 -0
- package/dist/testing-kit/mock-subscription-service.d.ts +52 -0
- package/dist/testing-kit/mock-subscription-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-subscription-service.js +49 -0
- package/dist/testing-kit/mock-subscription-service.js.map +1 -0
- package/dist/testing-kit/mock-transfer-service.d.ts +28 -0
- package/dist/testing-kit/mock-transfer-service.d.ts.map +1 -0
- package/dist/testing-kit/mock-transfer-service.js +17 -0
- package/dist/testing-kit/mock-transfer-service.js.map +1 -0
- package/dist/testing-kit/mock-wallet-client.d.ts +17 -0
- package/dist/testing-kit/mock-wallet-client.d.ts.map +1 -0
- package/dist/testing-kit/mock-wallet-client.js +30 -0
- package/dist/testing-kit/mock-wallet-client.js.map +1 -0
- package/dist/testing-kit/mock-wallet-provider.d.ts +11 -0
- package/dist/testing-kit/mock-wallet-provider.d.ts.map +1 -0
- package/dist/testing-kit/mock-wallet-provider.js +6 -0
- package/dist/testing-kit/mock-wallet-provider.js.map +1 -0
- package/dist/testing-kit/test-layer.d.ts +42 -0
- package/dist/testing-kit/test-layer.d.ts.map +1 -0
- package/dist/testing-kit/test-layer.js +65 -0
- package/dist/testing-kit/test-layer.js.map +1 -0
- package/dist/transfer/index.d.ts +2 -0
- package/dist/transfer/index.d.ts.map +1 -0
- package/dist/transfer/index.js +2 -0
- package/dist/transfer/index.js.map +1 -0
- package/dist/transfer/service.d.ts +37 -0
- package/dist/transfer/service.d.ts.map +1 -0
- package/dist/transfer/service.js +146 -0
- package/dist/transfer/service.js.map +1 -0
- package/dist/tx/fees.d.ts +17 -0
- package/dist/tx/fees.d.ts.map +1 -0
- package/dist/tx/fees.js +49 -0
- package/dist/tx/fees.js.map +1 -0
- package/dist/tx/index.d.ts +6 -0
- package/dist/tx/index.d.ts.map +1 -0
- package/dist/tx/index.js +6 -0
- package/dist/tx/index.js.map +1 -0
- package/dist/tx/manager.d.ts +23 -0
- package/dist/tx/manager.d.ts.map +1 -0
- package/dist/tx/manager.js +240 -0
- package/dist/tx/manager.js.map +1 -0
- package/dist/tx/policy.d.ts +18 -0
- package/dist/tx/policy.d.ts.map +1 -0
- package/dist/tx/policy.js +9 -0
- package/dist/tx/policy.js.map +1 -0
- package/dist/tx/replacement.d.ts +17 -0
- package/dist/tx/replacement.d.ts.map +1 -0
- package/dist/tx/replacement.js +116 -0
- package/dist/tx/replacement.js.map +1 -0
- package/dist/tx/tracker.d.ts +72 -0
- package/dist/tx/tracker.d.ts.map +1 -0
- package/dist/tx/tracker.js +95 -0
- package/dist/tx/tracker.js.map +1 -0
- package/dist/types/abi.d.ts +13 -0
- package/dist/types/abi.d.ts.map +1 -0
- package/dist/types/abi.js +2 -0
- package/dist/types/abi.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/params.d.ts +56 -0
- package/dist/types/params.d.ts.map +1 -0
- package/dist/types/params.js +2 -0
- package/dist/types/params.js.map +1 -0
- package/dist/types/tx-overrides.d.ts +20 -0
- package/dist/types/tx-overrides.d.ts.map +1 -0
- package/dist/types/tx-overrides.js +2 -0
- package/dist/types/tx-overrides.js.map +1 -0
- package/dist/wagmi/index.d.ts +2 -0
- package/dist/wagmi/index.d.ts.map +1 -0
- package/dist/wagmi/index.js +2 -0
- package/dist/wagmi/index.js.map +1 -0
- package/dist/wagmi/layers.d.ts +2 -0
- package/dist/wagmi/layers.d.ts.map +1 -0
- package/dist/wagmi/layers.js +2 -0
- package/dist/wagmi/layers.js.map +1 -0
- package/dist/wallet/errors.d.ts +68 -0
- package/dist/wallet/errors.d.ts.map +1 -0
- package/dist/wallet/errors.js +43 -0
- package/dist/wallet/errors.js.map +1 -0
- package/dist/wallet/index.d.ts +7 -0
- package/dist/wallet/index.d.ts.map +1 -0
- package/dist/wallet/index.js +7 -0
- package/dist/wallet/index.js.map +1 -0
- package/dist/wallet/lifecycle.d.ts +22 -0
- package/dist/wallet/lifecycle.d.ts.map +1 -0
- package/dist/wallet/lifecycle.js +242 -0
- package/dist/wallet/lifecycle.js.map +1 -0
- package/dist/wallet/operations.d.ts +8 -0
- package/dist/wallet/operations.d.ts.map +1 -0
- package/dist/wallet/operations.js +211 -0
- package/dist/wallet/operations.js.map +1 -0
- package/dist/wallet/provider-ref.d.ts +14 -0
- package/dist/wallet/provider-ref.d.ts.map +1 -0
- package/dist/wallet/provider-ref.js +13 -0
- package/dist/wallet/provider-ref.js.map +1 -0
- package/dist/wallet/service.d.ts +22 -0
- package/dist/wallet/service.d.ts.map +1 -0
- package/dist/wallet/service.js +156 -0
- package/dist/wallet/service.js.map +1 -0
- package/dist/wallet/types.d.ts +37 -0
- package/dist/wallet/types.d.ts.map +1 -0
- package/dist/wallet/types.js +2 -0
- package/dist/wallet/types.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
import { ContractReadError as ContractReadErrorClass } from "../core/index.js";
|
|
3
|
+
import { ChainHead } from "../query/chain-head.js";
|
|
4
|
+
import { QueryClient } from "../query/client.js";
|
|
5
|
+
import { MulticallBatcher } from "../query/multicall-batcher.js";
|
|
6
|
+
export class ContractQuery extends Context.Tag("ew3/ContractQuery")() {
|
|
7
|
+
}
|
|
8
|
+
const stableStringify = (value) => JSON.stringify(value, (_, v) => (typeof v === "bigint" ? v.toString() : v));
|
|
9
|
+
const stableKey = (params) => {
|
|
10
|
+
const args = params.args ?? [];
|
|
11
|
+
return [
|
|
12
|
+
"contractRead",
|
|
13
|
+
params.chainId,
|
|
14
|
+
params.address,
|
|
15
|
+
params.account ?? "no-account",
|
|
16
|
+
String(params.functionName),
|
|
17
|
+
params.blockNumber?.toString() ?? "no-block-number",
|
|
18
|
+
params.blockTag ?? "no-block-tag",
|
|
19
|
+
stableStringify(args),
|
|
20
|
+
stableStringify(params.abi),
|
|
21
|
+
].join(":");
|
|
22
|
+
};
|
|
23
|
+
const normalizeReadError = (params, cause) => {
|
|
24
|
+
const anyCause = cause;
|
|
25
|
+
if (anyCause && typeof anyCause === "object" && "_tag" in anyCause) {
|
|
26
|
+
const tag = anyCause._tag;
|
|
27
|
+
if (tag === "ClientNotFoundError" || tag === "MulticallError") {
|
|
28
|
+
return cause;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const message = cause instanceof Error ? cause.message : String(cause);
|
|
32
|
+
return new ContractReadErrorClass({
|
|
33
|
+
address: params.address,
|
|
34
|
+
cause,
|
|
35
|
+
functionName: params.functionName,
|
|
36
|
+
message,
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
export const ContractQueryLive = Layer.effect(ContractQuery, Effect.gen(function* () {
|
|
40
|
+
const queryClient = yield* QueryClient;
|
|
41
|
+
const chainHead = yield* ChainHead;
|
|
42
|
+
const batcher = yield* MulticallBatcher;
|
|
43
|
+
const read = (params, options) => {
|
|
44
|
+
const key = stableKey(params);
|
|
45
|
+
const call = {
|
|
46
|
+
abi: params.abi,
|
|
47
|
+
address: params.address,
|
|
48
|
+
args: params.args,
|
|
49
|
+
functionName: params.functionName,
|
|
50
|
+
};
|
|
51
|
+
const effect = batcher
|
|
52
|
+
.enqueue(params.chainId, call, {
|
|
53
|
+
blockNumber: params.blockNumber,
|
|
54
|
+
blockTag: params.blockTag,
|
|
55
|
+
})
|
|
56
|
+
.pipe(Effect.mapError((cause) => normalizeReadError(params, cause)));
|
|
57
|
+
return queryClient.query(key, effect, {
|
|
58
|
+
blockScoped: options?.blockScoped ?? true,
|
|
59
|
+
chainId: params.chainId,
|
|
60
|
+
ttl: options?.ttl,
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
const watchRead = (params, options) => Effect.gen(function* () {
|
|
64
|
+
const refetchOn = options?.refetchOn ?? (yield* chainHead.watch(params.chainId));
|
|
65
|
+
const key = stableKey(params);
|
|
66
|
+
const effect = read(params, options);
|
|
67
|
+
return queryClient.watch(key, effect, {
|
|
68
|
+
blockScoped: options?.blockScoped ?? true,
|
|
69
|
+
chainId: params.chainId,
|
|
70
|
+
refetchOn,
|
|
71
|
+
ttl: options?.ttl,
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
return ContractQuery.of({ read, watchRead });
|
|
75
|
+
}));
|
|
76
|
+
//# sourceMappingURL=contract-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-query.js","sourceRoot":"","sources":["../../src/query/contract-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
import { ContractReader } from "../contract/index.js";
|
|
3
|
+
import type { MulticallCall } from "../types/index.js";
|
|
4
|
+
export type MulticallBatchOptions = {
|
|
5
|
+
readonly blockNumber?: bigint | undefined;
|
|
6
|
+
readonly blockTag?: import("viem").BlockTag | undefined;
|
|
7
|
+
};
|
|
8
|
+
export type MulticallBatcherShape = {
|
|
9
|
+
readonly enqueue: <A>(chainId: number, call: MulticallCall, options?: MulticallBatchOptions | undefined) => Effect.Effect<A, Error>;
|
|
10
|
+
};
|
|
11
|
+
declare const MulticallBatcher_base: Context.TagClass<MulticallBatcher, "ew3/MulticallBatcher", MulticallBatcherShape>;
|
|
12
|
+
export declare class MulticallBatcher extends MulticallBatcher_base {
|
|
13
|
+
}
|
|
14
|
+
export declare const MulticallBatcherLive: Layer.Layer<MulticallBatcher, never, ContractReader>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=multicall-batcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multicall-batcher.d.ts","sourceRoot":"","sources":["../../src/query/multicall-batcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAA4B,MAAM,QAAQ,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;CACzD,CAAC;AAiIF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,qBAAqB,GAAG,SAAS,KACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CAC9B,CAAC;;AAEF,qBAAa,gBAAiB,SAAQ,qBAGnC;CAAG;AAMN,eAAO,MAAM,oBAAoB,sDAchC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Request, RequestResolver } from "effect";
|
|
2
|
+
import { ContractReader } from "../contract/index.js";
|
|
3
|
+
const MulticallRequest = Request.tagged("MulticallRequest");
|
|
4
|
+
const stableStringify = (value) => JSON.stringify(value, (_, v) => (typeof v === "bigint" ? v.toString() : v));
|
|
5
|
+
const keyFor = (chainId, options) => `${chainId}:${stableStringify(options ?? {})}`;
|
|
6
|
+
const groupRequests = (requests) => {
|
|
7
|
+
const grouped = new Map();
|
|
8
|
+
for (const req of requests) {
|
|
9
|
+
const key = keyFor(req.chainId, req.options);
|
|
10
|
+
const existing = grouped.get(key);
|
|
11
|
+
if (existing) {
|
|
12
|
+
grouped.set(key, {
|
|
13
|
+
...existing,
|
|
14
|
+
requests: [...existing.requests, req],
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
grouped.set(key, {
|
|
19
|
+
chainId: req.chainId,
|
|
20
|
+
options: req.options,
|
|
21
|
+
requests: [req],
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return grouped;
|
|
26
|
+
};
|
|
27
|
+
const failGroup = (requests, error) => Effect.forEach(requests, (req) => Request.completeEffect(req, Effect.fail(error)), {
|
|
28
|
+
discard: true,
|
|
29
|
+
});
|
|
30
|
+
const completeGroup = (requests, results) => Effect.forEach(requests, (req, i) => {
|
|
31
|
+
const res = results[i];
|
|
32
|
+
if (res?.status === "success") {
|
|
33
|
+
return Request.completeEffect(req, Effect.succeed(res.result));
|
|
34
|
+
}
|
|
35
|
+
return Request.completeEffect(req, Effect.fail(res?.error ?? new Error("Unknown multicall error")));
|
|
36
|
+
}, { discard: true });
|
|
37
|
+
const executeGroup = (contractReader, group) => Effect.gen(function* () {
|
|
38
|
+
const result = yield* contractReader
|
|
39
|
+
.multicall(group.chainId, group.requests.map((r) => r.call), group.options)
|
|
40
|
+
.pipe(Effect.either);
|
|
41
|
+
if (result._tag === "Left") {
|
|
42
|
+
const error = result.left instanceof Error ? result.left : new Error(String(result.left));
|
|
43
|
+
yield* failGroup(group.requests, error);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
yield* completeGroup(group.requests, result.right);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const makeMulticallResolver = (contractReader) => RequestResolver.makeBatched((requests) => Effect.gen(function* () {
|
|
50
|
+
const grouped = groupRequests(requests);
|
|
51
|
+
yield* Effect.all([...grouped.values()].map((group) => executeGroup(contractReader, group)), { concurrency: "unbounded" });
|
|
52
|
+
})).pipe(RequestResolver.batchN(100));
|
|
53
|
+
export class MulticallBatcher extends Context.Tag("ew3/MulticallBatcher")() {
|
|
54
|
+
}
|
|
55
|
+
export const MulticallBatcherLive = Layer.effect(MulticallBatcher, Effect.gen(function* () {
|
|
56
|
+
const contractReader = yield* ContractReader;
|
|
57
|
+
const resolver = makeMulticallResolver(contractReader);
|
|
58
|
+
return MulticallBatcher.of({
|
|
59
|
+
enqueue: (chainId, call, options) => Effect.request(MulticallRequest({ call, chainId, options }), resolver),
|
|
60
|
+
});
|
|
61
|
+
}));
|
|
62
|
+
//# sourceMappingURL=multicall-batcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multicall-batcher.js","sourceRoot":"","sources":["../../src/query/multicall-batcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAmBzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAmB,kBAAkB,CAAC,CAAC;AAK9E,MAAM,eAAe,GAAG,CAAC,KAAc,EAAU,EAAE,CACjD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,OAA2C,EAAU,EAAE,CACtF,GAAG,OAAO,IAAI,eAAe,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;AAWjD,MAAM,aAAa,GAAG,CAAC,QAAqC,EAA6B,EAAE;IACzF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;gBACf,GAAG,QAAQ;gBACX,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;gBACf,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,CAAC,GAAG,CAAC;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAKF,MAAM,SAAS,GAAG,CAAC,QAAqC,EAAE,KAAY,EAAE,EAAE,CACxE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;IACjF,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAKL,MAAM,aAAa,GAAG,CACpB,QAAqC,EACrC,OAIG,EACH,EAAE,CACF,MAAM,CAAC,OAAO,CACZ,QAAQ,EACR,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;IACT,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,GAAG,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC,cAAc,CAC3B,GAAG,EACH,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAChE,CAAC;AACJ,CAAC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;AAKJ,MAAM,YAAY,GAAG,CAAC,cAAmC,EAAE,KAAmB,EAAE,EAAE,CAChF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc;SACjC,SAAS,CACR,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACjC,KAAK,CAAC,OAAO,CACd;SACA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEvB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC,CAAC;AAKL,MAAM,qBAAqB,GAAG,CAC5B,cAAmC,EACuB,EAAE,CAC5D,eAAe,CAAC,WAAW,CAAC,CAAC,QAAqC,EAAE,EAAE,CACpE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAGxC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,EACzE,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;AACJ,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAUtC,MAAM,OAAO,gBAAiB,SAAQ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAGtE;CAAG;AAMN,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAC9C,gBAAgB,EAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IAC7C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAEvD,OAAO,gBAAgB,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAI,OAAe,EAAE,IAAmB,EAAE,OAA+B,EAAE,EAAE,CACpF,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAGpE;KACJ,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type { EffectMemoOptions, StreamState, UseEffectResult, } from "../integrations/react-hooks/primitives.js";
|
|
2
|
+
export { useEffectMemo, useEffectMemoFactory, useEffectOnce, useForkEffect, useStream, useStreamEffect, useStreamValue, useSubscriptionRef, useSubscriptionRefValue, } from "../integrations/react-hooks/primitives.js";
|
|
3
|
+
export type { EffectEvmLayerProviderProps, EffectEvmProviderProps, } from "../integrations/react-hooks/provider.js";
|
|
4
|
+
export { EffectEvmLayerProvider, EffectEvmProvider, EffectEvmProviderSync, useEffectEvmLayer, useEffectEvmRuntime, } from "../integrations/react-hooks/provider.js";
|
|
5
|
+
export type { WalletProviderRefActions } from "../integrations/react-hooks/wallet-provider-ref.js";
|
|
6
|
+
export { useWalletProviderRef } from "../integrations/react-hooks/wallet-provider-ref.js";
|
|
7
|
+
export { useIsSafeMultisig } from "./use-is-safe-multisig.js";
|
|
8
|
+
export { useSafeContext } from "./use-safe-context.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react-hooks/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,eAAe,GAChB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,8CAA8C,CAAC;AACtD,YAAY,EACV,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export { useEffectMemo, useEffectMemoFactory, useEffectOnce, useForkEffect, useStream, useStreamEffect, useStreamValue, useSubscriptionRef, useSubscriptionRefValue, } from "../integrations/react-hooks/primitives.js";
|
|
3
|
+
export { EffectEvmLayerProvider, EffectEvmProvider, EffectEvmProviderSync, useEffectEvmLayer, useEffectEvmRuntime, } from "../integrations/react-hooks/provider.js";
|
|
4
|
+
export { useWalletProviderRef } from "../integrations/react-hooks/wallet-provider-ref.js";
|
|
5
|
+
export { useIsSafeMultisig } from "./use-is-safe-multisig.js";
|
|
6
|
+
export { useSafeContext } from "./use-safe-context.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react-hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAOb,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,8CAA8C,CAAC;AAKtD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-is-safe-multisig.d.ts","sourceRoot":"","sources":["../../src/react-hooks/use-is-safe-multisig.ts"],"names":[],"mappings":"AAgCA,wBAAgB,iBAAiB,IAAI,OAAO,CAyB3C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { useAccount } from "wagmi";
|
|
4
|
+
import { useSafeContext } from "./use-safe-context.js";
|
|
5
|
+
const SAFE_ORIGINS = [
|
|
6
|
+
"https://app.safe.global",
|
|
7
|
+
"https://gnosis-safe.io",
|
|
8
|
+
"https://safe.global",
|
|
9
|
+
"https://safe.berachain.com",
|
|
10
|
+
"https://safe.chiliz.com",
|
|
11
|
+
"https://safe.lightlink.io",
|
|
12
|
+
"https://safe.optimism.io",
|
|
13
|
+
];
|
|
14
|
+
export function useIsSafeMultisig() {
|
|
15
|
+
const { connector, isConnected } = useAccount();
|
|
16
|
+
const isSafeContext = useSafeContext();
|
|
17
|
+
const [isSafeIframe, setIsSafeIframe] = useState(false);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (window.parent !== window && isValidSafeOrigin()) {
|
|
20
|
+
setIsSafeIframe(true);
|
|
21
|
+
}
|
|
22
|
+
}, []);
|
|
23
|
+
if (isSafeContext) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (isConnected && connector?.id === "safe") {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return isSafeIframe;
|
|
30
|
+
}
|
|
31
|
+
function isValidSafeOrigin() {
|
|
32
|
+
try {
|
|
33
|
+
const parentOrigin = window.parent.location.origin;
|
|
34
|
+
return SAFE_ORIGINS.some((origin) => parentOrigin === origin);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
if (window.location.ancestorOrigins?.length) {
|
|
38
|
+
const ancestorOrigin = window.location.ancestorOrigins[0];
|
|
39
|
+
return SAFE_ORIGINS.some((origin) => ancestorOrigin === origin);
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=use-is-safe-multisig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-is-safe-multisig.js","sourceRoot":"","sources":["../../src/react-hooks/use-is-safe-multisig.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMvD,MAAM,YAAY,GAAG;IAEnB,yBAAyB;IACzB,wBAAwB;IACxB,qBAAqB;IAErB,4BAA4B;IAC5B,yBAAyB;IACzB,2BAA2B;IAC3B,0BAA0B;CAClB,CAAC;AAYX,MAAM,UAAU,iBAAiB;IAC/B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IAChD,MAAM,aAAa,GAAG,cAAc,EAAE,CAAC;IAIvC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,iBAAiB,EAAE,EAAE,CAAC;YACpD,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,IAAI,WAAW,IAAI,SAAS,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,OAAO,YAAY,CAAC;AACtB,CAAC;AAMD,SAAS,iBAAiB;IACxB,IAAI,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QAEP,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;YAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1D,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-safe-context.d.ts","sourceRoot":"","sources":["../../src/react-hooks/use-safe-context.ts"],"names":[],"mappings":"AAkCA,wBAAgB,cAAc,IAAI,OAAO,CA6CxC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
const SAFE_SDK_TIMEOUT = 3000;
|
|
4
|
+
export function useSafeContext() {
|
|
5
|
+
const [isSafe, setIsSafe] = useState(false);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (typeof window === "undefined") {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
let cancelled = false;
|
|
11
|
+
const timeout = setTimeout(() => {
|
|
12
|
+
if (!cancelled) {
|
|
13
|
+
setIsSafe(false);
|
|
14
|
+
}
|
|
15
|
+
}, SAFE_SDK_TIMEOUT);
|
|
16
|
+
import("@safe-global/safe-apps-sdk")
|
|
17
|
+
.then(({ default: SafeAppsSDK }) => {
|
|
18
|
+
const sdk = new SafeAppsSDK();
|
|
19
|
+
return sdk.safe.getInfo();
|
|
20
|
+
})
|
|
21
|
+
.then(() => {
|
|
22
|
+
if (!cancelled) {
|
|
23
|
+
setIsSafe(true);
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
.catch(() => {
|
|
27
|
+
if (!cancelled) {
|
|
28
|
+
setIsSafe(false);
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
.finally(() => {
|
|
32
|
+
clearTimeout(timeout);
|
|
33
|
+
});
|
|
34
|
+
return () => {
|
|
35
|
+
cancelled = true;
|
|
36
|
+
clearTimeout(timeout);
|
|
37
|
+
};
|
|
38
|
+
}, []);
|
|
39
|
+
return isSafe;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=use-safe-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-safe-context.js","sourceRoot":"","sources":["../../src/react-hooks/use-safe-context.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAM5C,MAAM,gBAAgB,GAAG,IAAI,CAAC;AA0B9B,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QAEb,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QAGtB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAGrB,MAAM,CAAC,4BAA4B,CAAC;aACjC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react-hooks/wagmi/index.ts"],"names":[],"mappings":"AAEA,cAAc,+CAA+C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-hooks/wagmi/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,cAAc,+CAA+C,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
export type CacheConfig = {
|
|
3
|
+
ttl?: number;
|
|
4
|
+
maxSize?: number;
|
|
5
|
+
blockScoped?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type CacheEntry<T> = {
|
|
8
|
+
value: T;
|
|
9
|
+
timestamp: number;
|
|
10
|
+
blockNumber?: bigint;
|
|
11
|
+
ttl?: number;
|
|
12
|
+
};
|
|
13
|
+
export type RpcCacheShape = {
|
|
14
|
+
readonly get: <T>(key: string) => Effect.Effect<T | null>;
|
|
15
|
+
readonly set: <T>(key: string, value: T, blockNumber?: bigint, ttl?: number) => Effect.Effect<void>;
|
|
16
|
+
readonly invalidate: (key: string) => Effect.Effect<void>;
|
|
17
|
+
readonly invalidateBlock: (blockNumber: bigint) => Effect.Effect<void>;
|
|
18
|
+
readonly clear: Effect.Effect<void>;
|
|
19
|
+
};
|
|
20
|
+
declare const RpcCache_base: Context.TagClass<RpcCache, "ew3/RpcCache", RpcCacheShape>;
|
|
21
|
+
export declare class RpcCache extends RpcCache_base {
|
|
22
|
+
}
|
|
23
|
+
export declare const makeRpcCacheLive: (config?: CacheConfig) => Layer.Layer<RpcCache>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/rpc/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,KAAK,EAAO,MAAM,QAAQ,CAAC;AAE5D,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM,KACT,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;;AAEF,qBAAa,QAAS,SAAQ,aAAsD;CAAG;AAKvF,eAAO,MAAM,gBAAgB,GAAI,SAAS,WAAW,KAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CA0K3E,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Clock, Context, Effect, Layer, Ref } from "effect";
|
|
2
|
+
export class RpcCache extends Context.Tag("ew3/RpcCache")() {
|
|
3
|
+
}
|
|
4
|
+
export const makeRpcCacheLive = (config) => {
|
|
5
|
+
const defaultTtl = config?.ttl ?? 12_000;
|
|
6
|
+
const maxSize = config?.maxSize ?? 100;
|
|
7
|
+
const blockScoped = config?.blockScoped ?? true;
|
|
8
|
+
return Layer.effect(RpcCache, Effect.gen(function* () {
|
|
9
|
+
const entriesRef = yield* Ref.make(new Map());
|
|
10
|
+
const accessOrderRef = yield* Ref.make(new Map());
|
|
11
|
+
const accessCounterRef = yield* Ref.make(0);
|
|
12
|
+
const evictOldest = Effect.gen(function* () {
|
|
13
|
+
const entries = yield* Ref.get(entriesRef);
|
|
14
|
+
const accessOrder = yield* Ref.get(accessOrderRef);
|
|
15
|
+
if (entries.size >= maxSize) {
|
|
16
|
+
let oldestKey = null;
|
|
17
|
+
let oldestAccess = Number.POSITIVE_INFINITY;
|
|
18
|
+
for (const [key, access] of accessOrder.entries()) {
|
|
19
|
+
if (access < oldestAccess) {
|
|
20
|
+
oldestAccess = access;
|
|
21
|
+
oldestKey = key;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (oldestKey) {
|
|
25
|
+
const keyToEvict = oldestKey;
|
|
26
|
+
yield* Ref.update(entriesRef, (e) => {
|
|
27
|
+
const newEntries = new Map(e);
|
|
28
|
+
newEntries.delete(keyToEvict);
|
|
29
|
+
return newEntries;
|
|
30
|
+
});
|
|
31
|
+
yield* Ref.update(accessOrderRef, (o) => {
|
|
32
|
+
const newAccessOrder = new Map(o);
|
|
33
|
+
newAccessOrder.delete(keyToEvict);
|
|
34
|
+
return newAccessOrder;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
const get = (key) => Effect.gen(function* () {
|
|
40
|
+
const entries = yield* Ref.get(entriesRef);
|
|
41
|
+
const entry = entries.get(key);
|
|
42
|
+
if (!entry) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const now = yield* Clock.currentTimeMillis;
|
|
46
|
+
const entryTtl = entry.ttl ?? defaultTtl;
|
|
47
|
+
if (now - entry.timestamp > entryTtl) {
|
|
48
|
+
yield* Ref.update(entriesRef, (e) => {
|
|
49
|
+
const newEntries = new Map(e);
|
|
50
|
+
newEntries.delete(key);
|
|
51
|
+
return newEntries;
|
|
52
|
+
});
|
|
53
|
+
yield* Ref.update(accessOrderRef, (o) => {
|
|
54
|
+
const newAccessOrder = new Map(o);
|
|
55
|
+
newAccessOrder.delete(key);
|
|
56
|
+
return newAccessOrder;
|
|
57
|
+
});
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const accessCounter = yield* Ref.updateAndGet(accessCounterRef, (n) => n + 1);
|
|
61
|
+
yield* Ref.update(accessOrderRef, (o) => {
|
|
62
|
+
const newAccessOrder = new Map(o);
|
|
63
|
+
newAccessOrder.set(key, accessCounter);
|
|
64
|
+
return newAccessOrder;
|
|
65
|
+
});
|
|
66
|
+
return entry.value;
|
|
67
|
+
});
|
|
68
|
+
const set = (key, value, blockNumber, entryTtl) => Effect.gen(function* () {
|
|
69
|
+
const now = yield* Clock.currentTimeMillis;
|
|
70
|
+
yield* evictOldest;
|
|
71
|
+
yield* Ref.update(entriesRef, (entries) => {
|
|
72
|
+
const newEntries = new Map(entries);
|
|
73
|
+
newEntries.set(key, {
|
|
74
|
+
blockNumber,
|
|
75
|
+
timestamp: now,
|
|
76
|
+
ttl: entryTtl,
|
|
77
|
+
value,
|
|
78
|
+
});
|
|
79
|
+
return newEntries;
|
|
80
|
+
});
|
|
81
|
+
const accessCounter = yield* Ref.updateAndGet(accessCounterRef, (n) => n + 1);
|
|
82
|
+
yield* Ref.update(accessOrderRef, (o) => {
|
|
83
|
+
const newAccessOrder = new Map(o);
|
|
84
|
+
newAccessOrder.set(key, accessCounter);
|
|
85
|
+
return newAccessOrder;
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
const invalidate = (key) => Effect.gen(function* () {
|
|
89
|
+
yield* Ref.update(entriesRef, (entries) => {
|
|
90
|
+
const newEntries = new Map(entries);
|
|
91
|
+
newEntries.delete(key);
|
|
92
|
+
return newEntries;
|
|
93
|
+
});
|
|
94
|
+
yield* Ref.update(accessOrderRef, (o) => {
|
|
95
|
+
const newAccessOrder = new Map(o);
|
|
96
|
+
newAccessOrder.delete(key);
|
|
97
|
+
return newAccessOrder;
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
const invalidateBlock = (blockNumber) => Effect.gen(function* () {
|
|
101
|
+
if (!blockScoped) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const entries = yield* Ref.get(entriesRef);
|
|
105
|
+
const keysToInvalidate = [];
|
|
106
|
+
for (const [key, entry] of entries.entries()) {
|
|
107
|
+
if (entry.blockNumber !== undefined && entry.blockNumber < blockNumber) {
|
|
108
|
+
keysToInvalidate.push(key);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
yield* Effect.all(keysToInvalidate.map((key) => invalidate(key)), { concurrency: "unbounded" });
|
|
112
|
+
});
|
|
113
|
+
const clear = Effect.gen(function* () {
|
|
114
|
+
yield* Ref.set(entriesRef, new Map());
|
|
115
|
+
yield* Ref.set(accessOrderRef, new Map());
|
|
116
|
+
yield* Ref.set(accessCounterRef, 0);
|
|
117
|
+
});
|
|
118
|
+
return {
|
|
119
|
+
clear,
|
|
120
|
+
get,
|
|
121
|
+
invalidate,
|
|
122
|
+
invalidateBlock,
|
|
123
|
+
set,
|
|
124
|
+
};
|
|
125
|
+
}));
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/rpc/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Config, Effect, Schema } from "effect";
|
|
2
|
+
export type CircuitState = "closed" | "open" | "half-open";
|
|
3
|
+
export type CircuitBreakerConfig = {
|
|
4
|
+
failureThreshold?: number;
|
|
5
|
+
resetTimeout?: number;
|
|
6
|
+
successThreshold?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const CircuitBreakerConfigFromEnv: Config.Config<{
|
|
9
|
+
failureThreshold: number;
|
|
10
|
+
resetTimeout: number;
|
|
11
|
+
successThreshold: number;
|
|
12
|
+
}>;
|
|
13
|
+
declare const CircuitOpenError_base: Schema.TaggedErrorClass<CircuitOpenError, "CircuitOpenError", {
|
|
14
|
+
readonly _tag: Schema.tag<"CircuitOpenError">;
|
|
15
|
+
} & {
|
|
16
|
+
message: typeof Schema.String;
|
|
17
|
+
openedAt: typeof Schema.Number;
|
|
18
|
+
}>;
|
|
19
|
+
export declare class CircuitOpenError extends CircuitOpenError_base {
|
|
20
|
+
}
|
|
21
|
+
export type CircuitBreaker = {
|
|
22
|
+
readonly execute: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E | CircuitOpenError, R>;
|
|
23
|
+
readonly getState: Effect.Effect<CircuitState>;
|
|
24
|
+
readonly reset: Effect.Effect<void>;
|
|
25
|
+
};
|
|
26
|
+
export declare const makeCircuitBreaker: (config?: CircuitBreakerConfig) => Effect.Effect<CircuitBreaker>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=circuit-breaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/rpc/circuit-breaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,EAAO,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG5D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG;IAEjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAqBF,eAAO,MAAM,2BAA2B;;;;EAIK,CAAC;;;;;;;AAK9C,qBAAa,gBAAiB,SAAQ,qBAGpC;CAAG;AAeL,MAAM,MAAM,cAAc,GAAG;IAE3B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAE/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;AASF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,oBAAoB,KAC5B,MAAM,CAAC,MAAM,CAAC,cAAc,CA+H9B,CAAC"}
|