@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,108 @@
|
|
|
1
|
+
import { Clock, Config, Effect, Ref, Schema } from "effect";
|
|
2
|
+
import { DEFAULT_MAX_DELAY } from "../constants/index.js";
|
|
3
|
+
export const CircuitBreakerConfigFromEnv = Config.all({
|
|
4
|
+
failureThreshold: Config.number("FAILURE_THRESHOLD").pipe(Config.withDefault(5)),
|
|
5
|
+
resetTimeout: Config.number("RESET_TIMEOUT").pipe(Config.withDefault(30_000)),
|
|
6
|
+
successThreshold: Config.number("SUCCESS_THRESHOLD").pipe(Config.withDefault(3)),
|
|
7
|
+
}).pipe(Config.nested("EW3_CIRCUIT_BREAKER"));
|
|
8
|
+
export class CircuitOpenError extends Schema.TaggedError()("CircuitOpenError", {
|
|
9
|
+
message: Schema.String,
|
|
10
|
+
openedAt: Schema.Number,
|
|
11
|
+
}) {
|
|
12
|
+
}
|
|
13
|
+
export const makeCircuitBreaker = (config) => {
|
|
14
|
+
const { failureThreshold = 5, resetTimeout = DEFAULT_MAX_DELAY, successThreshold = 2, } = config ?? {};
|
|
15
|
+
return Effect.gen(function* () {
|
|
16
|
+
const stateRef = yield* Ref.make({
|
|
17
|
+
failures: 0,
|
|
18
|
+
lastFailureTime: 0,
|
|
19
|
+
state: "closed",
|
|
20
|
+
successes: 0,
|
|
21
|
+
});
|
|
22
|
+
const recordSuccess = Effect.gen(function* () {
|
|
23
|
+
yield* Ref.update(stateRef, (state) => {
|
|
24
|
+
if (state.state === "half-open") {
|
|
25
|
+
const newSuccesses = state.successes + 1;
|
|
26
|
+
if (newSuccesses >= successThreshold) {
|
|
27
|
+
return {
|
|
28
|
+
failures: 0,
|
|
29
|
+
lastFailureTime: 0,
|
|
30
|
+
state: "closed",
|
|
31
|
+
successes: 0,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return { ...state, successes: newSuccesses };
|
|
35
|
+
}
|
|
36
|
+
return { ...state, failures: 0 };
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
const recordFailure = Effect.gen(function* () {
|
|
40
|
+
const now = yield* Clock.currentTimeMillis;
|
|
41
|
+
yield* Ref.update(stateRef, (state) => {
|
|
42
|
+
const newFailures = state.failures + 1;
|
|
43
|
+
if (state.state === "half-open") {
|
|
44
|
+
return {
|
|
45
|
+
failures: newFailures,
|
|
46
|
+
lastFailureTime: now,
|
|
47
|
+
state: "open",
|
|
48
|
+
successes: 0,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (state.state === "closed" && newFailures >= failureThreshold) {
|
|
52
|
+
return {
|
|
53
|
+
failures: newFailures,
|
|
54
|
+
lastFailureTime: now,
|
|
55
|
+
state: "open",
|
|
56
|
+
successes: 0,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return { ...state, failures: newFailures, lastFailureTime: now };
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
const execute = (effect) => Effect.gen(function* () {
|
|
63
|
+
const now = yield* Clock.currentTimeMillis;
|
|
64
|
+
const currentState = yield* Ref.get(stateRef);
|
|
65
|
+
if (currentState.state === "open" && now - currentState.lastFailureTime >= resetTimeout) {
|
|
66
|
+
yield* Ref.update(stateRef, (s) => ({
|
|
67
|
+
...s,
|
|
68
|
+
state: "half-open",
|
|
69
|
+
successes: 0,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
const state = yield* Ref.get(stateRef);
|
|
73
|
+
if (state.state === "open") {
|
|
74
|
+
return yield* Effect.fail(new CircuitOpenError({
|
|
75
|
+
message: "Circuit breaker is open",
|
|
76
|
+
openedAt: state.lastFailureTime,
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
const result = yield* Effect.matchEffect(effect, {
|
|
80
|
+
onFailure: (error) => Effect.gen(function* () {
|
|
81
|
+
yield* recordFailure;
|
|
82
|
+
return yield* Effect.fail(error);
|
|
83
|
+
}),
|
|
84
|
+
onSuccess: (value) => Effect.gen(function* () {
|
|
85
|
+
yield* recordSuccess;
|
|
86
|
+
return value;
|
|
87
|
+
}),
|
|
88
|
+
});
|
|
89
|
+
return result;
|
|
90
|
+
});
|
|
91
|
+
const getState = Effect.gen(function* () {
|
|
92
|
+
const state = yield* Ref.get(stateRef);
|
|
93
|
+
return state.state;
|
|
94
|
+
});
|
|
95
|
+
const reset = Ref.set(stateRef, {
|
|
96
|
+
failures: 0,
|
|
97
|
+
lastFailureTime: 0,
|
|
98
|
+
state: "closed",
|
|
99
|
+
successes: 0,
|
|
100
|
+
});
|
|
101
|
+
return {
|
|
102
|
+
execute,
|
|
103
|
+
getState,
|
|
104
|
+
reset,
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=circuit-breaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/rpc/circuit-breaker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
export type RequestDedupShape = {
|
|
3
|
+
readonly dedupe: <A, E, R>(key: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
4
|
+
};
|
|
5
|
+
declare const RequestDedup_base: Context.TagClass<RequestDedup, "ew3/RequestDedup", RequestDedupShape>;
|
|
6
|
+
export declare class RequestDedup extends RequestDedup_base {
|
|
7
|
+
}
|
|
8
|
+
export declare const RequestDedupLive: Layer.Layer<RequestDedup>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=dedup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../src/rpc/dedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAK1D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACnG,CAAC;;AAEF,qBAAa,YAAa,SAAQ,iBAG/B;CAAG;AAUN,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CA8CzB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Context, Deferred, Effect, Layer } from "effect";
|
|
2
|
+
export class RequestDedup extends Context.Tag("ew3/RequestDedup")() {
|
|
3
|
+
}
|
|
4
|
+
const globalInflight = new Map();
|
|
5
|
+
export const RequestDedupLive = Layer.succeed(RequestDedup, {
|
|
6
|
+
dedupe: (key, effect) => Effect.suspend(() => {
|
|
7
|
+
const existing = globalInflight.get(key);
|
|
8
|
+
if (existing) {
|
|
9
|
+
return Deferred.await(existing);
|
|
10
|
+
}
|
|
11
|
+
return Effect.gen(function* () {
|
|
12
|
+
const deferred = yield* Deferred.make();
|
|
13
|
+
const raceCheck = Effect.sync(() => {
|
|
14
|
+
const current = globalInflight.get(key);
|
|
15
|
+
if (current) {
|
|
16
|
+
return { _tag: "raced", existing: current };
|
|
17
|
+
}
|
|
18
|
+
globalInflight.set(key, deferred);
|
|
19
|
+
return { _tag: "added" };
|
|
20
|
+
});
|
|
21
|
+
const result = yield* raceCheck;
|
|
22
|
+
if (result._tag === "raced") {
|
|
23
|
+
return yield* Deferred.await(result.existing);
|
|
24
|
+
}
|
|
25
|
+
const cleanup = Effect.sync(() => {
|
|
26
|
+
const current = globalInflight.get(key);
|
|
27
|
+
if (current === deferred) {
|
|
28
|
+
globalInflight.delete(key);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
yield* Effect.uninterruptibleMask((restore) => Effect.ensuring(Effect.intoDeferred(restore(effect), deferred), cleanup));
|
|
32
|
+
return yield* Deferred.await(deferred);
|
|
33
|
+
});
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
36
|
+
export const _resetDedupState = () => {
|
|
37
|
+
globalInflight.clear();
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=dedup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedup.js","sourceRoot":"","sources":["../../src/rpc/dedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAS1D,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAG9D;CAAG;AAKN,MAAM,cAAc,GAAG,IAAI,GAAG,EAA+C,CAAC;AAK9E,MAAM,CAAC,MAAM,gBAAgB,GAA8B,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;IACrF,MAAM,EAAE,CAAU,GAAW,EAAE,MAA8B,EAA0B,EAAE,CAEvF,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QAElB,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAwC,CAAC;QAChF,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAID,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAC;YAG9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAwC,CAAC;gBAC/E,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,EAAE,IAAI,EAAE,OAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;gBACvD,CAAC;gBACD,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,QAA+C,CAAC,CAAC;gBACzE,OAAO,EAAE,IAAI,EAAE,OAAgB,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;YAChC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAE5B,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,OAAO,KAAM,QAAgD,EAAE,CAAC;oBAClE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;YAGH,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CACzE,CAAC;YAEF,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;CACuB,CAAC,CAAC;AAM/B,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAS,EAAE;IACzC,cAAc,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./cache.js";
|
|
2
|
+
export { type CircuitBreaker, type CircuitBreakerConfig, CircuitBreakerConfigFromEnv, CircuitOpenError, type CircuitState, makeCircuitBreaker, } from "./circuit-breaker.js";
|
|
3
|
+
export * from "./dedup.js";
|
|
4
|
+
export { defaultRetryableErrors, makeRetrySchedule, type RetryConfig, RetryConfigFromEnv, withRetry, } from "./retry.js";
|
|
5
|
+
export * from "./routemesh.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,2BAA2B,EAC3B,gBAAgB,EAChB,KAAK,YAAY,EACjB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,WAAW,EAChB,kBAAkB,EAClB,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./cache.js";
|
|
2
|
+
export { CircuitBreakerConfigFromEnv, CircuitOpenError, makeCircuitBreaker, } from "./circuit-breaker.js";
|
|
3
|
+
export * from "./dedup.js";
|
|
4
|
+
export { defaultRetryableErrors, makeRetrySchedule, RetryConfigFromEnv, withRetry, } from "./retry.js";
|
|
5
|
+
export * from "./routemesh.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAGL,2BAA2B,EAC3B,gBAAgB,EAEhB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EAEjB,kBAAkB,EAClB,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Config, Effect, Schedule } from "effect";
|
|
2
|
+
import type { BackoffConfig } from "../internal/index.js";
|
|
3
|
+
export type RetryConfig = BackoffConfig & {
|
|
4
|
+
retryableErrors?: string[];
|
|
5
|
+
};
|
|
6
|
+
export declare const RetryConfigFromEnv: Config.Config<{
|
|
7
|
+
baseDelay: number;
|
|
8
|
+
jitter: boolean;
|
|
9
|
+
maxDelay: number;
|
|
10
|
+
maxRetries: number;
|
|
11
|
+
}>;
|
|
12
|
+
export declare const defaultRetryableErrors: string[];
|
|
13
|
+
export declare const makeRetrySchedule: <E>(config?: RetryConfig) => Schedule.Schedule<number, E>;
|
|
14
|
+
export declare const withRetry: (config?: RetryConfig) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
15
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/rpc/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG;IAExC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAsBF,eAAO,MAAM,kBAAkB;;;;;EAKI,CAAC;AAMpC,eAAO,MAAM,sBAAsB,UAQlC,CAAC;AAwBF,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,SAAS,WAAW,KAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAMtF,CAAC;AAUF,eAAO,MAAM,SAAS,GACnB,SAAS,WAAW,MACpB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACZ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Config, Effect, Schedule } from "effect";
|
|
2
|
+
import { makeBackoffSchedule } from "../internal/index.js";
|
|
3
|
+
export const RetryConfigFromEnv = Config.all({
|
|
4
|
+
baseDelay: Config.number("BASE_DELAY").pipe(Config.withDefault(100)),
|
|
5
|
+
jitter: Config.boolean("JITTER").pipe(Config.withDefault(true)),
|
|
6
|
+
maxDelay: Config.number("MAX_DELAY").pipe(Config.withDefault(10_000)),
|
|
7
|
+
maxRetries: Config.number("MAX_RETRIES").pipe(Config.withDefault(3)),
|
|
8
|
+
}).pipe(Config.nested("EW3_RETRY"));
|
|
9
|
+
export const defaultRetryableErrors = [
|
|
10
|
+
"rate limit",
|
|
11
|
+
"timeout",
|
|
12
|
+
"ECONNRESET",
|
|
13
|
+
"ETIMEDOUT",
|
|
14
|
+
"503",
|
|
15
|
+
"502",
|
|
16
|
+
"429",
|
|
17
|
+
];
|
|
18
|
+
const isRetryableError = (error, retryablePatterns) => {
|
|
19
|
+
if (error instanceof Error) {
|
|
20
|
+
const message = error.message.toLowerCase();
|
|
21
|
+
return retryablePatterns.some((pattern) => message.includes(pattern.toLowerCase()));
|
|
22
|
+
}
|
|
23
|
+
if (typeof error === "string") {
|
|
24
|
+
const message = error.toLowerCase();
|
|
25
|
+
return retryablePatterns.some((pattern) => message.includes(pattern.toLowerCase()));
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
};
|
|
29
|
+
export const makeRetrySchedule = (config) => {
|
|
30
|
+
const { retryableErrors = defaultRetryableErrors, ...backoffConfig } = config ?? {};
|
|
31
|
+
return makeBackoffSchedule(backoffConfig).pipe(Schedule.whileInput((error) => isRetryableError(error, retryableErrors)));
|
|
32
|
+
};
|
|
33
|
+
export const withRetry = (config) => (effect) => Effect.retry(effect, makeRetrySchedule(config));
|
|
34
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/rpc/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA2B9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACrE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CACrE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAMpC,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,WAAW;IACX,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAKF,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAE,iBAA2B,EAAW,EAAE;IAChF,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAI,MAAoB,EAAgC,EAAE;IACzF,MAAM,EAAE,eAAe,GAAG,sBAAsB,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAEpF,OAAO,mBAAmB,CAAC,aAAa,CAAC,CAAC,IAAI,CAC5C,QAAQ,CAAC,UAAU,CAAI,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAC5E,CAAC;AACJ,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,SAAS,GACpB,CAAC,MAAoB,EAAE,EAAE,CACzB,CAAU,MAA8B,EAA0B,EAAE,CAClE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAI,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
import type { Chain, Transport } from "viem";
|
|
3
|
+
import type { ChainConfig } from "../presets/index.js";
|
|
4
|
+
export declare const ROUTEMESH_BASE_URL = "https://lb.routeme.sh/rpc";
|
|
5
|
+
export type RouteMeshChainEntry = {
|
|
6
|
+
readonly chainId: number;
|
|
7
|
+
readonly chain: Chain;
|
|
8
|
+
};
|
|
9
|
+
export type RouteMeshConfig = {
|
|
10
|
+
readonly apiKey: string;
|
|
11
|
+
readonly chains: readonly RouteMeshChainEntry[];
|
|
12
|
+
};
|
|
13
|
+
export type RouteMeshFallbackChainEntry = RouteMeshChainEntry & {
|
|
14
|
+
readonly fallbackUrls?: readonly string[];
|
|
15
|
+
};
|
|
16
|
+
declare const RouteMeshApiKeyMissingError_base: Schema.TaggedErrorClass<RouteMeshApiKeyMissingError, "RouteMeshApiKeyMissingError", {
|
|
17
|
+
readonly _tag: Schema.tag<"RouteMeshApiKeyMissingError">;
|
|
18
|
+
} & {
|
|
19
|
+
message: typeof Schema.String;
|
|
20
|
+
}>;
|
|
21
|
+
export declare class RouteMeshApiKeyMissingError extends RouteMeshApiKeyMissingError_base {
|
|
22
|
+
}
|
|
23
|
+
export declare const routemeshUrl: (chainId: number, apiKey: string) => string;
|
|
24
|
+
export declare const routemeshRpc: (chainId: number) => ((apiKey: string) => string);
|
|
25
|
+
export declare const routemeshToChainConfigs: (config: RouteMeshConfig) => ChainConfig[];
|
|
26
|
+
export declare const routemeshWithFallback: (chainId: number, apiKey: string, fallbackUrls: readonly string[]) => string[];
|
|
27
|
+
export declare const makeRouteMeshTransports: (apiKey: string, chains: readonly RouteMeshFallbackChainEntry[]) => Record<number, Transport>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=routemesh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routemesh.d.ts","sourceRoot":"","sources":["../../src/rpc/routemesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAK1D,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAO9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB,CAAC;AAKF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACjD,CAAC;AAKF,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;;;;;;AAIF,qBAAa,2BAA4B,SAAQ,gCAKhD;CAAG;AAaJ,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,MACjB,CAAC;AAa/C,eAAO,MAAM,YAAY,GACtB,SAAS,MAAM,KAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAEf,CAAC;AAwBlC,eAAO,MAAM,uBAAuB,GAAI,QAAQ,eAAe,KAAG,WAAW,EAKxE,CAAC;AAmBN,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,cAAc,SAAS,MAAM,EAAE,KAC9B,MAAM,EAAsD,CAAC;AAsBhE,eAAO,MAAM,uBAAuB,GAClC,QAAQ,MAAM,EACd,QAAQ,SAAS,2BAA2B,EAAE,KAC7C,MAAM,CAAC,MAAM,EAAE,SAAS,CAQxB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
import { makeFallbackTransport } from "../presets/index.js";
|
|
3
|
+
export const ROUTEMESH_BASE_URL = "https://lb.routeme.sh/rpc";
|
|
4
|
+
export class RouteMeshApiKeyMissingError extends Schema.TaggedError()("RouteMeshApiKeyMissingError", {
|
|
5
|
+
message: Schema.String,
|
|
6
|
+
}) {
|
|
7
|
+
}
|
|
8
|
+
export const routemeshUrl = (chainId, apiKey) => `${ROUTEMESH_BASE_URL}/${chainId}/${apiKey}`;
|
|
9
|
+
export const routemeshRpc = (chainId) => (apiKey) => routemeshUrl(chainId, apiKey);
|
|
10
|
+
export const routemeshToChainConfigs = (config) => config.chains.map((entry) => ({
|
|
11
|
+
chain: entry.chain,
|
|
12
|
+
chainId: entry.chainId,
|
|
13
|
+
rpcUrls: [routemeshUrl(entry.chainId, config.apiKey)],
|
|
14
|
+
}));
|
|
15
|
+
export const routemeshWithFallback = (chainId, apiKey, fallbackUrls) => [routemeshUrl(chainId, apiKey), ...fallbackUrls];
|
|
16
|
+
export const makeRouteMeshTransports = (apiKey, chains) => chains.reduce((acc, entry) => {
|
|
17
|
+
const urls = routemeshWithFallback(entry.chainId, apiKey, entry.fallbackUrls ?? []);
|
|
18
|
+
acc[entry.chainId] = makeFallbackTransport(urls);
|
|
19
|
+
return acc;
|
|
20
|
+
}, {});
|
|
21
|
+
//# sourceMappingURL=routemesh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routemesh.js","sourceRoot":"","sources":["../../src/rpc/routemesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AA6B9D,MAAM,OAAO,2BAA4B,SAAQ,MAAM,CAAC,WAAW,EAA+B,CAChG,6BAA6B,EAC7B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAaJ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,MAAc,EAAU,EAAE,CACtE,GAAG,kBAAkB,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;AAa/C,MAAM,CAAC,MAAM,YAAY,GACvB,CAAC,OAAe,EAAgC,EAAE,CAClD,CAAC,MAAM,EAAE,EAAE,CACT,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAwBlC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAuB,EAAiB,EAAE,CAChF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;CACtD,CAAC,CAAC,CAAC;AAmBN,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,OAAe,EACf,MAAc,EACd,YAA+B,EACrB,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC;AAsBhE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAAc,EACd,MAA8C,EACnB,EAAE,CAC7B,MAAM,CAAC,MAAM,CACX,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACb,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACpF,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAA+B,CAChC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { SafeSdkUnavailableError } from "./errors.js";
|
|
3
|
+
export type SafeAppsSdkConfig = {
|
|
4
|
+
allowedDomains?: RegExp[];
|
|
5
|
+
debug?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const loadSafeSdk: (config?: SafeAppsSdkConfig) => Effect.Effect<import("@safe-global/safe-apps-sdk").default, SafeSdkUnavailableError, never>;
|
|
8
|
+
export type SafeAppsSDKInstance = any;
|
|
9
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/safe/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAGF,eAAO,MAAM,WAAW,GAAI,SAAS,iBAAiB,gGAYlD,CAAC;AAIL,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { SafeSdkUnavailableError } from "./errors.js";
|
|
3
|
+
export const loadSafeSdk = (config) => Effect.tryPromise({
|
|
4
|
+
catch: (cause) => new SafeSdkUnavailableError({
|
|
5
|
+
cause,
|
|
6
|
+
message: "Failed to load @safe-global/safe-apps-sdk. Ensure it is installed: bun add @safe-global/safe-apps-sdk",
|
|
7
|
+
}),
|
|
8
|
+
try: async () => {
|
|
9
|
+
const { default: SafeAppsSDK } = await import("@safe-global/safe-apps-sdk");
|
|
10
|
+
return new SafeAppsSDK(config);
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/safe/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAStD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAA0B,EAAE,EAAE,CACxD,MAAM,CAAC,UAAU,CAAC;IAChB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,uBAAuB,CAAC;QAC1B,KAAK;QACL,OAAO,EACL,uGAAuG;KAC1G,CAAC;IACJ,GAAG,EAAE,KAAK,IAAI,EAAE;QACd,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAC5E,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
import type { Address, Hex } from "viem";
|
|
3
|
+
import type { ClientNotFoundError } from "../core/index.js";
|
|
4
|
+
import { PublicClientService } from "../core/index.js";
|
|
5
|
+
declare const SafeDetectionError_base: Schema.TaggedErrorClass<SafeDetectionError, "SafeDetectionError", {
|
|
6
|
+
readonly _tag: Schema.tag<"SafeDetectionError">;
|
|
7
|
+
} & {
|
|
8
|
+
address: typeof Schema.String;
|
|
9
|
+
cause: Schema.optional<typeof Schema.Unknown>;
|
|
10
|
+
message: typeof Schema.String;
|
|
11
|
+
}>;
|
|
12
|
+
export declare class SafeDetectionError extends SafeDetectionError_base {
|
|
13
|
+
}
|
|
14
|
+
export type SafeDetectionParams = {
|
|
15
|
+
address: Address;
|
|
16
|
+
chainId: number;
|
|
17
|
+
};
|
|
18
|
+
export type SafeDetectionResult = {
|
|
19
|
+
isSafe: boolean;
|
|
20
|
+
proxyHash: Hex | undefined;
|
|
21
|
+
singletonAddress: Address | undefined;
|
|
22
|
+
singletonHash: Hex | undefined;
|
|
23
|
+
};
|
|
24
|
+
export declare function isSafeMultisig(params: SafeDetectionParams): Effect.Effect<SafeDetectionResult, SafeDetectionError | ClientNotFoundError, PublicClientService>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/safe/detection.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;;;;;;;;AAuD1D,qBAAa,kBAAmB,SAAQ,uBAOvC;CAAG;AAoBJ,MAAM,MAAM,mBAAmB,GAAG;IAEhC,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAEhC,MAAM,EAAE,OAAO,CAAC;IAEhB,SAAS,EAAE,GAAG,GAAG,SAAS,CAAC;IAE3B,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;IAEtC,aAAa,EAAE,GAAG,GAAG,SAAS,CAAC;CAChC,CAAC;AA8BF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,mBAAmB,GAC1B,MAAM,CAAC,MAAM,CACd,mBAAmB,EACnB,kBAAkB,GAAG,mBAAmB,EACxC,mBAAmB,CACpB,CAuFA"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
import { keccak256 } from "viem";
|
|
3
|
+
import { PublicClientService } from "../core/index.js";
|
|
4
|
+
const KNOWN_SAFE_PROXY_HASHES = new Set([
|
|
5
|
+
"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000",
|
|
6
|
+
"0xd7d408ebcd99b2b70be43e20253d6d92a8ea8fab29bd3be7f55b10032331fb4c",
|
|
7
|
+
]);
|
|
8
|
+
const KNOWN_SAFE_SINGLETON_HASHES = new Set([
|
|
9
|
+
"0xe1f1593df76e69abc2d692792c80f329457551d5e83dde597546a1d58764da80",
|
|
10
|
+
"0x56b8be58b5ad629a621593a2e5e5e8e9a28408dc06e95597497b303902772e45",
|
|
11
|
+
"0x2ae2d1231f0d754a7fa4f5e5d0e5554085e1b500d8e09f95aaaaa3f49c0db922",
|
|
12
|
+
"0xbba688fbdb21ad2bb58bc320638b43d94e7d100f6f3ebaab0a4e4de6304b1c2e",
|
|
13
|
+
"0x21842597390c4c6e3c1239e434a682b054bd9548eee5e9b1d6a4482731023c0f",
|
|
14
|
+
"0x1fe2df852ba3299d6534ef416eefa406e56ced995bca886ab7a553e6d0c5e1c4",
|
|
15
|
+
"0xb1f926978a0f44a2c0ec8fe822418ae969bd8c3f18d61e5103100339894f81ff",
|
|
16
|
+
"0xdda019cbd7c867a533a2a86e5c53434fdc50b13122b5a5ddb4a8df61b31c20f2",
|
|
17
|
+
"0x180193227186ccb85316c94db1f0d156ed932b14712cfaac78901899178572dc",
|
|
18
|
+
]);
|
|
19
|
+
export class SafeDetectionError extends Schema.TaggedError()("SafeDetectionError", {
|
|
20
|
+
address: Schema.String,
|
|
21
|
+
cause: Schema.optional(Schema.Unknown),
|
|
22
|
+
message: Schema.String,
|
|
23
|
+
}) {
|
|
24
|
+
}
|
|
25
|
+
const masterCopyAbi = [
|
|
26
|
+
{
|
|
27
|
+
inputs: [],
|
|
28
|
+
name: "masterCopy",
|
|
29
|
+
outputs: [{ name: "", type: "address" }],
|
|
30
|
+
stateMutability: "view",
|
|
31
|
+
type: "function",
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
export function isSafeMultisig(params) {
|
|
35
|
+
return Effect.gen(function* () {
|
|
36
|
+
const { address, chainId } = params;
|
|
37
|
+
const publicClientService = yield* PublicClientService;
|
|
38
|
+
const client = yield* publicClientService.get(chainId);
|
|
39
|
+
const proxyBytecode = yield* Effect.tryPromise({
|
|
40
|
+
catch: (cause) => new SafeDetectionError({
|
|
41
|
+
address,
|
|
42
|
+
cause,
|
|
43
|
+
message: `Failed to get bytecode for ${address}`,
|
|
44
|
+
}),
|
|
45
|
+
try: () => client.getCode({ address }),
|
|
46
|
+
});
|
|
47
|
+
if (!proxyBytecode || proxyBytecode === "0x") {
|
|
48
|
+
return {
|
|
49
|
+
isSafe: false,
|
|
50
|
+
proxyHash: undefined,
|
|
51
|
+
singletonAddress: undefined,
|
|
52
|
+
singletonHash: undefined,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const proxyHash = keccak256(proxyBytecode);
|
|
56
|
+
if (!KNOWN_SAFE_PROXY_HASHES.has(proxyHash)) {
|
|
57
|
+
return {
|
|
58
|
+
isSafe: false,
|
|
59
|
+
proxyHash,
|
|
60
|
+
singletonAddress: undefined,
|
|
61
|
+
singletonHash: undefined,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const singletonAddress = yield* Effect.tryPromise({
|
|
65
|
+
catch: (cause) => new SafeDetectionError({
|
|
66
|
+
address,
|
|
67
|
+
cause,
|
|
68
|
+
message: `Failed to call masterCopy() on ${address}`,
|
|
69
|
+
}),
|
|
70
|
+
try: () => client.readContract({
|
|
71
|
+
abi: masterCopyAbi,
|
|
72
|
+
address,
|
|
73
|
+
functionName: "masterCopy",
|
|
74
|
+
}),
|
|
75
|
+
});
|
|
76
|
+
const singletonBytecode = yield* Effect.tryPromise({
|
|
77
|
+
catch: (cause) => new SafeDetectionError({
|
|
78
|
+
address,
|
|
79
|
+
cause,
|
|
80
|
+
message: `Failed to get bytecode for singleton ${singletonAddress}`,
|
|
81
|
+
}),
|
|
82
|
+
try: () => client.getCode({ address: singletonAddress }),
|
|
83
|
+
});
|
|
84
|
+
if (!singletonBytecode || singletonBytecode === "0x") {
|
|
85
|
+
return {
|
|
86
|
+
isSafe: false,
|
|
87
|
+
proxyHash,
|
|
88
|
+
singletonAddress,
|
|
89
|
+
singletonHash: undefined,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const singletonHash = keccak256(singletonBytecode);
|
|
93
|
+
const isSafe = KNOWN_SAFE_SINGLETON_HASHES.has(singletonHash);
|
|
94
|
+
return {
|
|
95
|
+
isSafe,
|
|
96
|
+
proxyHash,
|
|
97
|
+
singletonAddress,
|
|
98
|
+
singletonHash,
|
|
99
|
+
};
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.js","sourceRoot":"","sources":["../../src/safe/detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
declare const SafeSdkUnavailableError_base: Schema.TaggedErrorClass<SafeSdkUnavailableError, "SafeSdkUnavailableError", {
|
|
3
|
+
readonly _tag: Schema.tag<"SafeSdkUnavailableError">;
|
|
4
|
+
} & {
|
|
5
|
+
cause: Schema.optional<typeof Schema.Unknown>;
|
|
6
|
+
message: typeof Schema.String;
|
|
7
|
+
}>;
|
|
8
|
+
export declare class SafeSdkUnavailableError extends SafeSdkUnavailableError_base {
|
|
9
|
+
}
|
|
10
|
+
declare const NotInSafeAppContextError_base: Schema.TaggedErrorClass<NotInSafeAppContextError, "NotInSafeAppContextError", {
|
|
11
|
+
readonly _tag: Schema.tag<"NotInSafeAppContextError">;
|
|
12
|
+
} & {
|
|
13
|
+
message: typeof Schema.String;
|
|
14
|
+
}>;
|
|
15
|
+
export declare class NotInSafeAppContextError extends NotInSafeAppContextError_base {
|
|
16
|
+
}
|
|
17
|
+
declare const SafeInfoUnavailableError_base: Schema.TaggedErrorClass<SafeInfoUnavailableError, "SafeInfoUnavailableError", {
|
|
18
|
+
readonly _tag: Schema.tag<"SafeInfoUnavailableError">;
|
|
19
|
+
} & {
|
|
20
|
+
cause: Schema.optional<typeof Schema.Unknown>;
|
|
21
|
+
message: typeof Schema.String;
|
|
22
|
+
}>;
|
|
23
|
+
export declare class SafeInfoUnavailableError extends SafeInfoUnavailableError_base {
|
|
24
|
+
}
|
|
25
|
+
declare const SafeSettingsError_base: Schema.TaggedErrorClass<SafeSettingsError, "SafeSettingsError", {
|
|
26
|
+
readonly _tag: Schema.tag<"SafeSettingsError">;
|
|
27
|
+
} & {
|
|
28
|
+
cause: Schema.optional<typeof Schema.Unknown>;
|
|
29
|
+
message: typeof Schema.String;
|
|
30
|
+
}>;
|
|
31
|
+
export declare class SafeSettingsError extends SafeSettingsError_base {
|
|
32
|
+
}
|
|
33
|
+
declare const SafeTxSubmissionError_base: Schema.TaggedErrorClass<SafeTxSubmissionError, "SafeTxSubmissionError", {
|
|
34
|
+
readonly _tag: Schema.tag<"SafeTxSubmissionError">;
|
|
35
|
+
} & {
|
|
36
|
+
cause: Schema.optional<typeof Schema.Unknown>;
|
|
37
|
+
message: typeof Schema.String;
|
|
38
|
+
}>;
|
|
39
|
+
export declare class SafeTxSubmissionError extends SafeTxSubmissionError_base {
|
|
40
|
+
}
|
|
41
|
+
declare const SafeTxLookupError_base: Schema.TaggedErrorClass<SafeTxLookupError, "SafeTxLookupError", {
|
|
42
|
+
readonly _tag: Schema.tag<"SafeTxLookupError">;
|
|
43
|
+
} & {
|
|
44
|
+
cause: Schema.optional<typeof Schema.Unknown>;
|
|
45
|
+
message: typeof Schema.String;
|
|
46
|
+
retryable: typeof Schema.Boolean;
|
|
47
|
+
safeTxHash: typeof Schema.String;
|
|
48
|
+
}>;
|
|
49
|
+
export declare class SafeTxLookupError extends SafeTxLookupError_base {
|
|
50
|
+
}
|
|
51
|
+
declare const SafeTxExecutionTimeoutError_base: Schema.TaggedErrorClass<SafeTxExecutionTimeoutError, "SafeTxExecutionTimeoutError", {
|
|
52
|
+
readonly _tag: Schema.tag<"SafeTxExecutionTimeoutError">;
|
|
53
|
+
} & {
|
|
54
|
+
lastStatus: Schema.optional<typeof Schema.String>;
|
|
55
|
+
message: typeof Schema.String;
|
|
56
|
+
safeTxHash: typeof Schema.String;
|
|
57
|
+
timeout: typeof Schema.Number;
|
|
58
|
+
}>;
|
|
59
|
+
export declare class SafeTxExecutionTimeoutError extends SafeTxExecutionTimeoutError_base {
|
|
60
|
+
}
|
|
61
|
+
declare const SignTypedDataError_base: Schema.TaggedErrorClass<SignTypedDataError, "SignTypedDataError", {
|
|
62
|
+
readonly _tag: Schema.tag<"SignTypedDataError">;
|
|
63
|
+
} & {
|
|
64
|
+
cause: Schema.optional<typeof Schema.Unknown>;
|
|
65
|
+
message: typeof Schema.String;
|
|
66
|
+
}>;
|
|
67
|
+
export declare class SignTypedDataError extends SignTypedDataError_base {
|
|
68
|
+
}
|
|
69
|
+
declare const OffchainSignatureTimeoutError_base: Schema.TaggedErrorClass<OffchainSignatureTimeoutError, "OffchainSignatureTimeoutError", {
|
|
70
|
+
readonly _tag: Schema.tag<"OffchainSignatureTimeoutError">;
|
|
71
|
+
} & {
|
|
72
|
+
message: typeof Schema.String;
|
|
73
|
+
messageHash: typeof Schema.String;
|
|
74
|
+
timeout: typeof Schema.Number;
|
|
75
|
+
}>;
|
|
76
|
+
export declare class OffchainSignatureTimeoutError extends OffchainSignatureTimeoutError_base {
|
|
77
|
+
}
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/safe/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;;AAGhC,qBAAa,uBAAwB,SAAQ,4BAG5C;CAAG;;;;;;AAEJ,qBAAa,wBAAyB,SAAQ,6BAG7C;CAAG;;;;;;;AAGJ,qBAAa,wBAAyB,SAAQ,6BAG7C;CAAG;;;;;;;AAEJ,qBAAa,iBAAkB,SAAQ,sBAGtC;CAAG;;;;;;;AAEJ,qBAAa,qBAAsB,SAAQ,0BAG1C;CAAG;;;;;;;;;AAEJ,qBAAa,iBAAkB,SAAQ,sBAQtC;CAAG;;;;;;;;;AAEJ,qBAAa,2BAA4B,SAAQ,gCAQhD;CAAG;;;;;;;AAGJ,qBAAa,kBAAmB,SAAQ,uBAGvC;CAAG;;;;;;;;AAEJ,qBAAa,6BAA8B,SAAQ,kCAOlD;CAAG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
export class SafeSdkUnavailableError extends Schema.TaggedError()("SafeSdkUnavailableError", { cause: Schema.optional(Schema.Unknown), message: Schema.String }) {
|
|
3
|
+
}
|
|
4
|
+
export class NotInSafeAppContextError extends Schema.TaggedError()("NotInSafeAppContextError", { message: Schema.String }) {
|
|
5
|
+
}
|
|
6
|
+
export class SafeInfoUnavailableError extends Schema.TaggedError()("SafeInfoUnavailableError", { cause: Schema.optional(Schema.Unknown), message: Schema.String }) {
|
|
7
|
+
}
|
|
8
|
+
export class SafeSettingsError extends Schema.TaggedError()("SafeSettingsError", { cause: Schema.optional(Schema.Unknown), message: Schema.String }) {
|
|
9
|
+
}
|
|
10
|
+
export class SafeTxSubmissionError extends Schema.TaggedError()("SafeTxSubmissionError", { cause: Schema.optional(Schema.Unknown), message: Schema.String }) {
|
|
11
|
+
}
|
|
12
|
+
export class SafeTxLookupError extends Schema.TaggedError()("SafeTxLookupError", {
|
|
13
|
+
cause: Schema.optional(Schema.Unknown),
|
|
14
|
+
message: Schema.String,
|
|
15
|
+
retryable: Schema.Boolean,
|
|
16
|
+
safeTxHash: Schema.String,
|
|
17
|
+
}) {
|
|
18
|
+
}
|
|
19
|
+
export class SafeTxExecutionTimeoutError extends Schema.TaggedError()("SafeTxExecutionTimeoutError", {
|
|
20
|
+
lastStatus: Schema.optional(Schema.String),
|
|
21
|
+
message: Schema.String,
|
|
22
|
+
safeTxHash: Schema.String,
|
|
23
|
+
timeout: Schema.Number,
|
|
24
|
+
}) {
|
|
25
|
+
}
|
|
26
|
+
export class SignTypedDataError extends Schema.TaggedError()("SignTypedDataError", { cause: Schema.optional(Schema.Unknown), message: Schema.String }) {
|
|
27
|
+
}
|
|
28
|
+
export class OffchainSignatureTimeoutError extends Schema.TaggedError()("OffchainSignatureTimeoutError", {
|
|
29
|
+
message: Schema.String,
|
|
30
|
+
messageHash: Schema.String,
|
|
31
|
+
timeout: Schema.Number,
|
|
32
|
+
}) {
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/safe/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC,WAAW,EAA2B,CACxF,yBAAyB,EACzB,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CACnE;CAAG;AAEJ,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAC3B;CAAG;AAGJ,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CACnE;CAAG;AAEJ,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,WAAW,EAAqB,CAC5E,mBAAmB,EACnB,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CACnE;CAAG;AAEJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CACnE;CAAG;AAEJ,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,WAAW,EAAqB,CAC5E,mBAAmB,EACnB;IACE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,SAAS,EAAE,MAAM,CAAC,OAAO;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM;CAC1B,CACF;CAAG;AAEJ,MAAM,OAAO,2BAA4B,SAAQ,MAAM,CAAC,WAAW,EAA+B,CAChG,6BAA6B,EAC7B;IACE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,UAAU,EAAE,MAAM,CAAC,MAAM;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAGJ,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CACnE;CAAG;AAEJ,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,EAAiC,CACpG,+BAA+B,EAC/B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG"}
|