@prb/effect-evm 1.0.0-beta.1 → 1.0.0-beta.10
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/DOCS.md +13 -0
- package/README.md +4 -0
- package/dist/abi/erc165.js.map +1 -1
- package/dist/abi/erc20-no-output.js.map +1 -1
- package/dist/abi/erc20.js.map +1 -1
- package/dist/abi/erc721.js.map +1 -1
- package/dist/abi/index.js.map +1 -1
- package/dist/balance/index.js.map +1 -1
- package/dist/balance/service.js.map +1 -1
- package/dist/balance/service.test.integration.d.ts +2 -0
- package/dist/balance/service.test.integration.d.ts.map +1 -0
- package/dist/balance/service.test.integration.js +289 -0
- package/dist/balance/service.test.integration.js.map +1 -0
- package/dist/balance/utils.js.map +1 -1
- package/dist/block/errors.js.map +1 -1
- package/dist/block/index.js.map +1 -1
- package/dist/block/service.js.map +1 -1
- package/dist/block/service.test.integration.d.ts +2 -0
- package/dist/block/service.test.integration.d.ts.map +1 -0
- package/dist/block/service.test.integration.js +190 -0
- package/dist/block/service.test.integration.js.map +1 -0
- package/dist/constants/index.d.ts +0 -4
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -5
- package/dist/constants/index.js.map +1 -1
- package/dist/contract/cross-chain-reader.js.map +1 -1
- package/dist/contract/index.js.map +1 -1
- package/dist/contract/pipeline/index.js.map +1 -1
- package/dist/contract/pipeline/internal/core.d.ts +2 -2
- package/dist/contract/pipeline/internal/core.d.ts.map +1 -1
- package/dist/contract/pipeline/internal/core.js.map +1 -1
- package/dist/contract/pipeline/internal/helpers.js.map +1 -1
- package/dist/contract/pipeline/internal/nonce.js.map +1 -1
- package/dist/contract/pipeline/internal/prepare.js.map +1 -1
- package/dist/contract/pipeline/internal/receipt.d.ts +2 -2
- package/dist/contract/pipeline/internal/receipt.d.ts.map +1 -1
- package/dist/contract/pipeline/internal/receipt.js +1 -1
- package/dist/contract/pipeline/internal/receipt.js.map +1 -1
- package/dist/contract/pipeline/live.js.map +1 -1
- package/dist/contract/pipeline/service.d.ts +3 -3
- package/dist/contract/pipeline/service.d.ts.map +1 -1
- package/dist/contract/pipeline/service.js.map +1 -1
- package/dist/contract/pipeline/types.d.ts +2 -2
- package/dist/contract/pipeline/types.d.ts.map +1 -1
- package/dist/contract/pipeline/types.js.map +1 -1
- package/dist/contract/pipeline/write-and-track.d.ts.map +1 -1
- package/dist/contract/pipeline/write-and-track.js +5 -6
- package/dist/contract/pipeline/write-and-track.js.map +1 -1
- package/dist/contract/pipeline/write-and-wait.d.ts +1 -1
- package/dist/contract/pipeline/write-and-wait.d.ts.map +1 -1
- package/dist/contract/pipeline/write-and-wait.js.map +1 -1
- package/dist/contract/pipeline.js.map +1 -1
- package/dist/contract/reader.js.map +1 -1
- package/dist/contract/typed-contract.js.map +1 -1
- package/dist/contract/writer.js.map +1 -1
- package/dist/core/clients/index.js.map +1 -1
- package/dist/core/clients/public-client.js.map +1 -1
- package/dist/core/clients/wallet-client.js.map +1 -1
- package/dist/core/errors/client.js.map +1 -1
- package/dist/core/errors/contract.js.map +1 -1
- package/dist/core/errors/erc20.js.map +1 -1
- package/dist/core/errors/event.js.map +1 -1
- package/dist/core/errors/index.js.map +1 -1
- package/dist/core/errors/predicates.js.map +1 -1
- package/dist/core/errors/transaction.d.ts +7 -7
- package/dist/core/errors/transaction.d.ts.map +1 -1
- package/dist/core/errors/transaction.js +2 -2
- package/dist/core/errors/transaction.js.map +1 -1
- package/dist/core/errors/viem-mapper.d.ts +3 -3
- package/dist/core/errors/viem-mapper.d.ts.map +1 -1
- package/dist/core/errors/viem-mapper.js +14 -5
- package/dist/core/errors/viem-mapper.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/deploy/errors.js.map +1 -1
- package/dist/deploy/index.js.map +1 -1
- package/dist/deploy/service.d.ts +3 -3
- package/dist/deploy/service.d.ts.map +1 -1
- package/dist/deploy/service.js.map +1 -1
- package/dist/eip7702/erc7579.js.map +1 -1
- package/dist/eip7702/errors.d.ts +3 -3
- package/dist/eip7702/errors.d.ts.map +1 -1
- package/dist/eip7702/errors.js +1 -1
- package/dist/eip7702/errors.js.map +1 -1
- package/dist/eip7702/index.js.map +1 -1
- package/dist/eip7702/service.d.ts +8 -8
- package/dist/eip7702/service.d.ts.map +1 -1
- package/dist/eip7702/service.js +2 -2
- package/dist/eip7702/service.js.map +1 -1
- package/dist/ens/ens.d.ts.map +1 -1
- package/dist/ens/ens.js +6 -6
- package/dist/ens/ens.js.map +1 -1
- package/dist/ens/errors.js.map +1 -1
- package/dist/ens/index.js.map +1 -1
- package/dist/erc20/allowance/core.js.map +1 -1
- package/dist/erc20/allowance/index.js.map +1 -1
- package/dist/erc20/allowance/no-output.js.map +1 -1
- package/dist/erc20/allowance/types.js.map +1 -1
- package/dist/erc20/index.d.ts +1 -0
- package/dist/erc20/index.d.ts.map +1 -1
- package/dist/erc20/index.js +1 -0
- package/dist/erc20/index.js.map +1 -1
- package/dist/erc20/metadata.d.ts +16 -0
- package/dist/erc20/metadata.d.ts.map +1 -0
- package/dist/erc20/metadata.js +67 -0
- package/dist/erc20/metadata.js.map +1 -0
- package/dist/erc721/errors.js.map +1 -1
- package/dist/erc721/helpers.js.map +1 -1
- package/dist/erc721/index.js.map +1 -1
- package/dist/erc721/metadata.js.map +1 -1
- package/dist/erc721/service.js.map +1 -1
- package/dist/events/backfill.js.map +1 -1
- package/dist/events/backfill.test.integration.d.ts +2 -0
- package/dist/events/backfill.test.integration.d.ts.map +1 -0
- package/dist/events/backfill.test.integration.js +112 -0
- package/dist/events/backfill.test.integration.js.map +1 -0
- package/dist/events/cursor.js.map +1 -1
- package/dist/events/decoder.js.map +1 -1
- package/dist/events/index.js.map +1 -1
- package/dist/events/reliable-stream-simple.test.integration.d.ts +2 -0
- package/dist/events/reliable-stream-simple.test.integration.d.ts.map +1 -0
- package/dist/events/reliable-stream-simple.test.integration.js +22 -0
- package/dist/events/reliable-stream-simple.test.integration.js.map +1 -0
- package/dist/events/reliable-stream.js.map +1 -1
- package/dist/events/reliable-stream.test.integration.d.ts +2 -0
- package/dist/events/reliable-stream.test.integration.d.ts.map +1 -0
- package/dist/events/reliable-stream.test.integration.js +327 -0
- package/dist/events/reliable-stream.test.integration.js.map +1 -0
- package/dist/events/stream.js.map +1 -1
- package/dist/events/stream.test.integration.d.ts +2 -0
- package/dist/events/stream.test.integration.d.ts.map +1 -0
- package/dist/events/stream.test.integration.js +120 -0
- package/dist/events/stream.test.integration.js.map +1 -0
- package/dist/gas/errors.js.map +1 -1
- package/dist/gas/estimator.d.ts.map +1 -1
- package/dist/gas/estimator.js +75 -58
- package/dist/gas/estimator.js.map +1 -1
- package/dist/gas/index.js.map +1 -1
- package/dist/gas/service.d.ts.map +1 -1
- package/dist/gas/service.js +14 -2
- package/dist/gas/service.js.map +1 -1
- package/dist/gas/service.test.integration.d.ts +2 -0
- package/dist/gas/service.test.integration.d.ts.map +1 -0
- package/dist/gas/service.test.integration.js +152 -0
- package/dist/gas/service.test.integration.js.map +1 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/react-hooks/convenience/index.js.map +1 -1
- package/dist/integrations/react-hooks/internal/error.js.map +1 -1
- package/dist/integrations/react-hooks/internal/is-dev.js.map +1 -1
- package/dist/integrations/react-hooks/internal/runtime.js.map +1 -1
- package/dist/integrations/react-hooks/internal/scoped-run.js.map +1 -1
- package/dist/integrations/react-hooks/internal/stable.js.map +1 -1
- package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.js.map +1 -1
- package/dist/integrations/react-hooks/primitives/use-effect.js.map +1 -1
- package/dist/integrations/react-hooks/primitives/use-fork-effect.js.map +1 -1
- package/dist/integrations/react-hooks/primitives/use-stream.js.map +1 -1
- package/dist/integrations/react-hooks/primitives.js.map +1 -1
- package/dist/integrations/react-hooks/provider.js.map +1 -1
- package/dist/integrations/react-hooks/wagmi/index.js.map +1 -1
- package/dist/integrations/react-hooks/wallet-provider-ref.js.map +1 -1
- package/dist/integrations/wagmi/index.js.map +1 -1
- package/dist/integrations/wagmi/layers.js.map +1 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/numbers.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/stream-adapters.js.map +1 -1
- package/dist/internal/viem-effect.js.map +1 -1
- package/dist/nonce/index.js.map +1 -1
- package/dist/nonce/manager.js.map +1 -1
- package/dist/nonce/service.js.map +1 -1
- package/dist/nonce/service.test.integration.d.ts +2 -0
- package/dist/nonce/service.test.integration.d.ts.map +1 -0
- package/dist/nonce/service.test.integration.js +141 -0
- package/dist/nonce/service.test.integration.js.map +1 -0
- package/dist/platform/browser/cursor-store/index.js.map +1 -1
- package/dist/platform/browser/cursor-store/local-storage.js.map +1 -1
- package/dist/platform/browser/index.js.map +1 -1
- package/dist/platform/browser/layers.js.map +1 -1
- package/dist/platform/browser/storage/errors.js.map +1 -1
- package/dist/platform/browser/storage/index.js.map +1 -1
- package/dist/platform/browser/storage/local-storage.js.map +1 -1
- package/dist/platform/browser/tx-persistence/index.js.map +1 -1
- package/dist/platform/browser/tx-persistence/persistence.js.map +1 -1
- package/dist/platform/browser/tx-store/errors.js.map +1 -1
- package/dist/platform/browser/tx-store/index.js.map +1 -1
- package/dist/platform/browser/tx-store/local-storage.js.map +1 -1
- package/dist/platform/browser/tx-store/store.js.map +1 -1
- package/dist/platform/browser/tx-store/types.js.map +1 -1
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/layers.js.map +1 -1
- package/dist/presets/transports.js.map +1 -1
- package/dist/query/chain-head.js.map +1 -1
- package/dist/query/client.js.map +1 -1
- package/dist/query/client.test.integration.d.ts +2 -0
- package/dist/query/client.test.integration.d.ts.map +1 -0
- package/dist/query/client.test.integration.js +94 -0
- package/dist/query/client.test.integration.js.map +1 -0
- package/dist/query/contract-query.js.map +1 -1
- package/dist/query/contract-query.test.integration.d.ts +2 -0
- package/dist/query/contract-query.test.integration.d.ts.map +1 -0
- package/dist/query/contract-query.test.integration.js +133 -0
- package/dist/query/contract-query.test.integration.js.map +1 -0
- package/dist/query/index.js.map +1 -1
- package/dist/query/multicall-batcher.js.map +1 -1
- package/dist/react-hooks/index.d.ts +0 -2
- package/dist/react-hooks/index.d.ts.map +1 -1
- package/dist/react-hooks/index.js +0 -2
- package/dist/react-hooks/index.js.map +1 -1
- package/dist/react-hooks/wagmi/index.js.map +1 -1
- package/dist/rpc/cache.js.map +1 -1
- package/dist/rpc/circuit-breaker.js.map +1 -1
- package/dist/rpc/dedup.js.map +1 -1
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/retry.js.map +1 -1
- package/dist/rpc/routemesh.js.map +1 -1
- package/dist/signature/errors.js.map +1 -1
- package/dist/signature/index.js.map +1 -1
- package/dist/signature/service.js.map +1 -1
- package/dist/signature/service.test.integration.d.ts +2 -0
- package/dist/signature/service.test.integration.d.ts.map +1 -0
- package/dist/signature/service.test.integration.js +179 -0
- package/dist/signature/service.test.integration.js.map +1 -0
- package/dist/signature/utils.js.map +1 -1
- package/dist/simulation/errors.js.map +1 -1
- package/dist/simulation/index.js.map +1 -1
- package/dist/simulation/service.js.map +1 -1
- package/dist/simulation/tenderly.js.map +1 -1
- package/dist/simulation/tenderly.test.integration.d.ts +2 -0
- package/dist/simulation/tenderly.test.integration.d.ts.map +1 -0
- package/dist/simulation/tenderly.test.integration.js +104 -0
- package/dist/simulation/tenderly.test.integration.js.map +1 -0
- package/dist/simulation/types.js.map +1 -1
- package/dist/subscriptions/block-subscription.js.map +1 -1
- package/dist/subscriptions/errors.js.map +1 -1
- package/dist/subscriptions/index.js.map +1 -1
- package/dist/subscriptions/log-subscription.js.map +1 -1
- package/dist/subscriptions/pending-tx.d.ts +1 -1
- package/dist/subscriptions/pending-tx.d.ts.map +1 -1
- package/dist/subscriptions/pending-tx.js +1 -1
- package/dist/subscriptions/pending-tx.js.map +1 -1
- package/dist/subscriptions/service.d.ts +2 -2
- package/dist/subscriptions/service.d.ts.map +1 -1
- package/dist/subscriptions/service.js +4 -4
- package/dist/subscriptions/service.js.map +1 -1
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/logger.js.map +1 -1
- package/dist/telemetry/tracer.d.ts +2 -2
- package/dist/telemetry/tracer.js +2 -2
- package/dist/telemetry/tracer.js.map +1 -1
- package/dist/testing-kit/_fixtures/addresses.js.map +1 -1
- package/dist/testing-kit/_fixtures/receipts.js.map +1 -1
- package/dist/testing-kit/helpers.js.map +1 -1
- package/dist/testing-kit/index.js.map +1 -1
- package/dist/testing-kit/mock-balance-service.js.map +1 -1
- package/dist/testing-kit/mock-block-service.js.map +1 -1
- package/dist/testing-kit/mock-cross-chain-reader.js.map +1 -1
- package/dist/testing-kit/mock-deploy-service.js.map +1 -1
- package/dist/testing-kit/mock-erc721-service.js.map +1 -1
- package/dist/testing-kit/mock-gas-service.js.map +1 -1
- package/dist/testing-kit/mock-nonce-service.js.map +1 -1
- package/dist/testing-kit/mock-public-client.js.map +1 -1
- package/dist/testing-kit/mock-signature-service.js.map +1 -1
- package/dist/testing-kit/mock-simulation-service.js.map +1 -1
- package/dist/testing-kit/mock-subscription-service.d.ts +2 -2
- package/dist/testing-kit/mock-subscription-service.d.ts.map +1 -1
- package/dist/testing-kit/mock-subscription-service.js +5 -5
- package/dist/testing-kit/mock-subscription-service.js.map +1 -1
- package/dist/testing-kit/mock-transfer-service.d.ts +3 -3
- package/dist/testing-kit/mock-transfer-service.d.ts.map +1 -1
- package/dist/testing-kit/mock-transfer-service.js.map +1 -1
- package/dist/testing-kit/mock-wallet-client.js.map +1 -1
- package/dist/testing-kit/mock-wallet-provider.js.map +1 -1
- package/dist/testing-kit/test-layer.js.map +1 -1
- package/dist/transfer/index.js.map +1 -1
- package/dist/transfer/service.d.ts +8 -11
- package/dist/transfer/service.d.ts.map +1 -1
- package/dist/transfer/service.js +32 -13
- package/dist/transfer/service.js.map +1 -1
- package/dist/tx/fees.d.ts.map +1 -1
- package/dist/tx/fees.js +3 -0
- package/dist/tx/fees.js.map +1 -1
- package/dist/tx/index.js.map +1 -1
- package/dist/tx/manager.d.ts +3 -2
- package/dist/tx/manager.d.ts.map +1 -1
- package/dist/tx/manager.js +232 -216
- package/dist/tx/manager.js.map +1 -1
- package/dist/tx/manager.test.integration.d.ts +2 -0
- package/dist/tx/manager.test.integration.d.ts.map +1 -0
- package/dist/tx/manager.test.integration.js +177 -0
- package/dist/tx/manager.test.integration.js.map +1 -0
- package/dist/tx/policy.d.ts +1 -1
- package/dist/tx/policy.d.ts.map +1 -1
- package/dist/tx/policy.js.map +1 -1
- package/dist/tx/replacement.d.ts +3 -3
- package/dist/tx/replacement.d.ts.map +1 -1
- package/dist/tx/replacement.js +3 -3
- package/dist/tx/replacement.js.map +1 -1
- package/dist/tx/tracker.d.ts +6 -6
- package/dist/tx/tracker.d.ts.map +1 -1
- package/dist/tx/tracker.js +9 -9
- package/dist/tx/tracker.js.map +1 -1
- package/dist/types/abi.js.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/params.d.ts +1 -1
- package/dist/types/params.d.ts.map +1 -1
- package/dist/types/params.js.map +1 -1
- package/dist/types/tx-overrides.d.ts +1 -1
- package/dist/types/tx-overrides.d.ts.map +1 -1
- package/dist/types/tx-overrides.js.map +1 -1
- package/dist/wagmi/index.js.map +1 -1
- package/dist/wagmi/layers.js.map +1 -1
- package/dist/wallet/errors.d.ts +3 -3
- package/dist/wallet/errors.d.ts.map +1 -1
- package/dist/wallet/errors.js +1 -1
- package/dist/wallet/errors.js.map +1 -1
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/lifecycle.js.map +1 -1
- package/dist/wallet/operations.d.ts +2 -2
- package/dist/wallet/operations.d.ts.map +1 -1
- package/dist/wallet/operations.js +2 -2
- package/dist/wallet/operations.js.map +1 -1
- package/dist/wallet/provider-ref.js.map +1 -1
- package/dist/wallet/service.d.ts +2 -2
- package/dist/wallet/service.d.ts.map +1 -1
- package/dist/wallet/service.js.map +1 -1
- package/dist/wallet/types.js.map +1 -1
- package/package.json +25 -14
- package/dist/react-hooks/use-is-safe-multisig.d.ts +0 -2
- package/dist/react-hooks/use-is-safe-multisig.d.ts.map +0 -1
- package/dist/react-hooks/use-is-safe-multisig.js +0 -44
- package/dist/react-hooks/use-is-safe-multisig.js.map +0 -1
- package/dist/react-hooks/use-safe-context.d.ts +0 -2
- package/dist/react-hooks/use-safe-context.d.ts.map +0 -1
- package/dist/react-hooks/use-safe-context.js +0 -41
- package/dist/react-hooks/use-safe-context.js.map +0 -1
- package/dist/safe/adapter.d.ts +0 -9
- package/dist/safe/adapter.d.ts.map +0 -1
- package/dist/safe/adapter.js +0 -13
- package/dist/safe/adapter.js.map +0 -1
- package/dist/safe/detection.d.ts +0 -26
- package/dist/safe/detection.d.ts.map +0 -1
- package/dist/safe/detection.js +0 -102
- package/dist/safe/detection.js.map +0 -1
- package/dist/safe/errors.d.ts +0 -79
- package/dist/safe/errors.d.ts.map +0 -1
- package/dist/safe/errors.js +0 -34
- package/dist/safe/errors.js.map +0 -1
- package/dist/safe/index.d.ts +0 -8
- package/dist/safe/index.d.ts.map +0 -1
- package/dist/safe/index.js +0 -6
- package/dist/safe/index.js.map +0 -1
- package/dist/safe/live.d.ts +0 -8
- package/dist/safe/live.d.ts.map +0 -1
- package/dist/safe/live.js +0 -250
- package/dist/safe/live.js.map +0 -1
- package/dist/safe/service.d.ts +0 -26
- package/dist/safe/service.d.ts.map +0 -1
- package/dist/safe/service.js +0 -4
- package/dist/safe/service.js.map +0 -1
- package/dist/safe/simulation/abis.d.ts +0 -73
- package/dist/safe/simulation/abis.d.ts.map +0 -1
- package/dist/safe/simulation/abis.js +0 -61
- package/dist/safe/simulation/abis.js.map +0 -1
- package/dist/safe/simulation/addresses.d.ts +0 -4
- package/dist/safe/simulation/addresses.d.ts.map +0 -1
- package/dist/safe/simulation/addresses.js +0 -40
- package/dist/safe/simulation/addresses.js.map +0 -1
- package/dist/safe/simulation/encoding.d.ts +0 -16
- package/dist/safe/simulation/encoding.d.ts.map +0 -1
- package/dist/safe/simulation/encoding.js +0 -36
- package/dist/safe/simulation/encoding.js.map +0 -1
- package/dist/safe/simulation/errors.d.ts +0 -56
- package/dist/safe/simulation/errors.d.ts.map +0 -1
- package/dist/safe/simulation/errors.js +0 -37
- package/dist/safe/simulation/errors.js.map +0 -1
- package/dist/safe/simulation/index.d.ts +0 -7
- package/dist/safe/simulation/index.d.ts.map +0 -1
- package/dist/safe/simulation/index.js +0 -6
- package/dist/safe/simulation/index.js.map +0 -1
- package/dist/safe/simulation/service.d.ts +0 -14
- package/dist/safe/simulation/service.d.ts.map +0 -1
- package/dist/safe/simulation/service.js +0 -140
- package/dist/safe/simulation/service.js.map +0 -1
- package/dist/safe/simulation/types.d.ts +0 -20
- package/dist/safe/simulation/types.d.ts.map +0 -1
- package/dist/safe/simulation/types.js +0 -2
- package/dist/safe/simulation/types.js.map +0 -1
- package/dist/safe/types.d.ts +0 -61
- package/dist/safe/types.d.ts.map +0 -1
- package/dist/safe/types.js +0 -2
- package/dist/safe/types.js.map +0 -1
|
@@ -68,7 +68,6 @@ export const makeWriteAndTrack = (deps) => Effect.fn("ContractPipeline.writeAndT
|
|
|
68
68
|
yield* tracker.update((prev) => ({ hash, status: "submitted", tx: prev.tx }));
|
|
69
69
|
const publicClient = yield* publicClientService.get(params.chainId);
|
|
70
70
|
const replacementStrategy = policy.replacement?.strategy ?? policy.replacementStrategy ?? "none";
|
|
71
|
-
const stuckBlocks = policy.replacement?.stuckBlocks ?? 3;
|
|
72
71
|
const stuckMs = policy.replacement?.stuckMs ?? DEFAULT_STUCK_TX_MS;
|
|
73
72
|
const maxAttempts = policy.replacement?.maxAttempts ?? 1;
|
|
74
73
|
const updatePendingState = (currentHash) => Effect.gen(function* () {
|
|
@@ -112,7 +111,7 @@ export const makeWriteAndTrack = (deps) => Effect.fn("ContractPipeline.writeAndT
|
|
|
112
111
|
})),
|
|
113
112
|
]).pipe(Effect.asVoid);
|
|
114
113
|
}))));
|
|
115
|
-
const autoReplaceIfStuck = (currentHash
|
|
114
|
+
const autoReplaceIfStuck = (currentHash) => {
|
|
116
115
|
if (replacementStrategy === "none") {
|
|
117
116
|
return Effect.void;
|
|
118
117
|
}
|
|
@@ -123,7 +122,7 @@ export const makeWriteAndTrack = (deps) => Effect.fn("ContractPipeline.writeAndT
|
|
|
123
122
|
startedAt: Ref.get(startedAtMsRef),
|
|
124
123
|
}).pipe(Effect.flatMap(({ alreadyReplacing, attempts, now, startedAt }) => {
|
|
125
124
|
const elapsed = startedAt > 0 ? now - startedAt : 0;
|
|
126
|
-
const stuck =
|
|
125
|
+
const stuck = elapsed >= stuckMs;
|
|
127
126
|
const allowed = attempts < maxAttempts && !alreadyReplacing;
|
|
128
127
|
return stuck && allowed ? performAutoReplacement(currentHash, now) : Effect.void;
|
|
129
128
|
}));
|
|
@@ -133,8 +132,8 @@ export const makeWriteAndTrack = (deps) => Effect.fn("ContractPipeline.writeAndT
|
|
|
133
132
|
if (!currentHash) {
|
|
134
133
|
return;
|
|
135
134
|
}
|
|
136
|
-
|
|
137
|
-
yield* autoReplaceIfStuck(currentHash
|
|
135
|
+
yield* updatePendingState(currentHash);
|
|
136
|
+
yield* autoReplaceIfStuck(currentHash);
|
|
138
137
|
});
|
|
139
138
|
const pendingFiber = yield* Stream.runForEach(Stream.async((emit) => {
|
|
140
139
|
const unwatch = publicClient.watchBlockNumber({
|
|
@@ -156,7 +155,7 @@ export const makeWriteAndTrack = (deps) => Effect.fn("ContractPipeline.writeAndT
|
|
|
156
155
|
return exit.right;
|
|
157
156
|
}
|
|
158
157
|
const error = exit.left;
|
|
159
|
-
if (error._tag === "
|
|
158
|
+
if (error._tag === "TxReplacedError") {
|
|
160
159
|
const newHash = error.newHash;
|
|
161
160
|
const now = yield* Clock.currentTimeMillis;
|
|
162
161
|
yield* Ref.set(currentHashRef, newHash);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-and-track.js","sourceRoot":"","sources":["../../../src/contract/pipeline/write-and-track.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"write-and-track.js","sourceRoot":"","sources":["../../../src/contract/pipeline/write-and-track.ts"],"names":[],"mappings":"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","sourcesContent":["import { Clock, Deferred, Effect, Fiber, Ref, Stream } from \"effect\";\nimport type { Abi, Hash, PublicClient } from \"viem\";\nimport { DEFAULT_STUCK_TX_MS } from \"@/src/constants/index.js\";\nimport type { ContractWriterShape } from \"@/src/contract/index.js\";\nimport type { PublicClientServiceShape } from \"@/src/core/index.js\";\nimport type { EventStreamShape } from \"@/src/events/index.js\";\nimport type { GasServiceShape } from \"@/src/gas/index.js\";\nimport type { NonceServiceShape } from \"@/src/nonce/index.js\";\nimport type { TxManagerShape, TxPolicy, TxReplacementShape, TxState } from \"@/src/tx/index.js\";\nimport { defaultPolicy, makeTxTracker } from \"@/src/tx/index.js\";\nimport type { ContractFunctionName } from \"@/src/types/index.js\";\nimport { applyGasLimitMultiplier, nonceToBigInt } from \"./internal/helpers.js\";\nimport { withNonceReservation } from \"./internal/nonce.js\";\nimport { deriveBaseOverrides } from \"./internal/prepare.js\";\nimport type { WriteAndTrackError, WriteAndTrackParams, WriteAndTrackResult } from \"./types.js\";\n\n/**\n * Dependencies required by writeAndTrack\n */\nexport type WriteAndTrackDeps = {\n readonly writer: ContractWriterShape;\n readonly txManager: TxManagerShape;\n readonly eventStream: EventStreamShape;\n readonly nonceService: NonceServiceShape;\n readonly txReplacement: TxReplacementShape;\n readonly publicClientService: PublicClientServiceShape;\n readonly gasService: GasServiceShape;\n};\n\n/**\n * Create the writeAndTrack implementation with full tracking orchestration\n */\nexport const makeWriteAndTrack = (deps: WriteAndTrackDeps) =>\n Effect.fn(\"ContractPipeline.writeAndTrack\")(function* <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n >(params: WriteAndTrackParams<TAbi, TFunctionName>) {\n const {\n writer,\n txManager,\n eventStream,\n nonceService,\n txReplacement,\n publicClientService,\n gasService,\n } = deps;\n\n const tracker = yield* makeTxTracker;\n const policy = params.policy ?? defaultPolicy;\n const currentHashRef = yield* Ref.make<Hash | null>(null);\n const blocksElapsedRef = yield* Ref.make(0);\n const startedAtMsRef = yield* Ref.make(0);\n const autoAttemptsRef = yield* Ref.make(0);\n const autoReplacingRef = yield* Ref.make(false);\n\n const resultDeferred = yield* Deferred.make<WriteAndTrackResult<TAbi>, WriteAndTrackError>();\n\n const run = Effect.gen(function* () {\n // Step 1: Derive base overrides\n const baseOverrides = yield* deriveBaseOverrides(gasService, {\n chainId: params.chainId,\n policy,\n userOverrides: params.overrides,\n });\n\n // Step 2: Estimate gas first to provide a reasonable limit for simulation.\n // Some RPC nodes default to max uint64 when no gas limit is provided,\n // causing \"insufficient funds\" errors during the balance check.\n const estimatedGas = yield* writer.estimateGas({\n ...params,\n overrides: baseOverrides,\n });\n // Apply multiplier to add safety margin; this buffered value is used for\n // both simulation (balance check) and the final transaction.\n const derivedGas = applyGasLimitMultiplier(estimatedGas, policy.gasLimitMultiplier);\n\n const explicitGas = params.overrides?.gas ?? params.gas;\n const finalGas = explicitGas ?? derivedGas;\n\n // Step 3: Simulate with the gas limit to ensure proper balance checks\n yield* tracker.set({ status: \"simulating\" });\n yield* writer.simulate({ ...params, overrides: { ...baseOverrides, gas: finalGas } });\n const explicitNonce = params.overrides?.nonce;\n\n // Step 4: Reserve nonce\n const nonceReservation = yield* withNonceReservation(nonceService, {\n account: params.account,\n chainId: params.chainId,\n explicitNonce,\n });\n\n const nonce = nonceReservation.nonce;\n\n const overridesWithGasAndNonce = {\n ...baseOverrides,\n gas: finalGas,\n nonce,\n };\n\n yield* tracker.set({\n gas: finalGas,\n status: \"estimated\",\n tx: {\n accessList: overridesWithGasAndNonce.accessList,\n gas: finalGas,\n gasPrice: overridesWithGasAndNonce.gasPrice,\n maxFeePerGas: overridesWithGasAndNonce.maxFeePerGas,\n maxPriorityFeePerGas: overridesWithGasAndNonce.maxPriorityFeePerGas,\n nonce,\n type: overridesWithGasAndNonce.type,\n },\n });\n\n // Step 5: Signing\n yield* tracker.update((prev) => ({ status: \"signing\", tx: prev.tx }) as TxState);\n\n // Step 6: Write transaction\n const hash = yield* writer.write({\n ...params,\n overrides: overridesWithGasAndNonce,\n });\n yield* nonceReservation.markSubmitted;\n yield* Ref.set(currentHashRef, hash);\n yield* Ref.set(blocksElapsedRef, 0);\n yield* Ref.set(autoAttemptsRef, 0);\n yield* Ref.set(autoReplacingRef, false);\n yield* Ref.set(startedAtMsRef, yield* Clock.currentTimeMillis);\n yield* tracker.update((prev) => ({ hash, status: \"submitted\", tx: prev.tx }) as TxState);\n\n // Set up block watcher for pending state updates\n const publicClient: PublicClient = yield* publicClientService.get(params.chainId);\n const replacementStrategy =\n policy.replacement?.strategy ?? policy.replacementStrategy ?? \"none\";\n const stuckMs = policy.replacement?.stuckMs ?? DEFAULT_STUCK_TX_MS;\n const maxAttempts = policy.replacement?.maxAttempts ?? 1;\n\n const updatePendingState = (currentHash: Hash) =>\n Effect.gen(function* () {\n const blocksElapsed = yield* Ref.modify(blocksElapsedRef, (n) => [n + 1, n + 1] as const);\n\n yield* tracker.update((prev) => {\n if (prev.status === \"mined\" || prev.status === \"failed\") {\n return prev;\n }\n return {\n confirmations: blocksElapsed,\n hash: currentHash,\n status: \"pending\",\n tx: prev.tx,\n } as TxState;\n });\n\n return blocksElapsed;\n });\n\n const performAutoReplacement = (currentHash: Hash, now: number) =>\n Ref.set(autoReplacingRef, true).pipe(\n Effect.zipRight(\n (replacementStrategy === \"cancel\"\n ? txReplacement.cancel(params.chainId, currentHash, policy)\n : txReplacement.speedup(params.chainId, currentHash, policy)\n ).pipe(\n Effect.either,\n Effect.ensuring(Ref.set(autoReplacingRef, false)),\n Effect.flatMap((replaced) => {\n if (replaced._tag === \"Left\") {\n return Effect.void;\n }\n\n const newHash = replaced.right;\n return Effect.all([\n Ref.set(currentHashRef, newHash),\n Ref.set(blocksElapsedRef, 0),\n Ref.set(startedAtMsRef, now),\n Ref.update(autoAttemptsRef, (n) => n + 1),\n tracker.update(\n (prev) =>\n ({\n newHash,\n oldHash: currentHash,\n reason: replacementStrategy === \"cancel\" ? \"cancelled\" : \"repriced\",\n status: \"replaced\",\n tx: prev.tx,\n }) as TxState\n ),\n tracker.update(\n (prev) =>\n ({\n hash: newHash,\n status: \"submitted\",\n tx: prev.tx,\n }) as TxState\n ),\n ]).pipe(Effect.asVoid);\n })\n )\n )\n );\n\n const autoReplaceIfStuck = (currentHash: Hash) => {\n if (replacementStrategy === \"none\") {\n return Effect.void;\n }\n\n return Effect.all({\n alreadyReplacing: Ref.get(autoReplacingRef),\n attempts: Ref.get(autoAttemptsRef),\n now: Clock.currentTimeMillis,\n startedAt: Ref.get(startedAtMsRef),\n }).pipe(\n Effect.flatMap(({ alreadyReplacing, attempts, now, startedAt }) => {\n const elapsed = startedAt > 0 ? now - startedAt : 0;\n const stuck = elapsed >= stuckMs;\n const allowed = attempts < maxAttempts && !alreadyReplacing;\n return stuck && allowed ? performAutoReplacement(currentHash, now) : Effect.void;\n })\n );\n };\n\n const onPendingBlock = Effect.gen(function* () {\n const currentHash = yield* Ref.get(currentHashRef);\n if (!currentHash) {\n return;\n }\n\n yield* updatePendingState(currentHash);\n yield* autoReplaceIfStuck(currentHash);\n });\n\n const pendingFiber = yield* Stream.runForEach(\n Stream.async<bigint, unknown>((emit) => {\n const unwatch = publicClient.watchBlockNumber({\n onBlockNumber: (blockNumber: bigint) => emit.single(blockNumber),\n onError: (error) => emit.fail(error as unknown),\n pollingInterval: policy.pollingInterval,\n });\n\n return Effect.sync(() => {\n unwatch();\n });\n }),\n () => onPendingBlock\n ).pipe(Effect.forkScoped);\n\n // Step 7: Wait for receipt (follow replacements)\n const receipt = yield* Effect.gen(function* () {\n let waitHash = hash;\n\n while (true) {\n const exit = yield* txManager\n .waitForReceipt(params.chainId, waitHash, policy)\n .pipe(Effect.either);\n\n if (exit._tag === \"Right\") {\n return exit.right;\n }\n\n const error = exit.left;\n if (error._tag === \"TxReplacedError\") {\n const newHash = error.newHash as Hash;\n const now = yield* Clock.currentTimeMillis;\n\n yield* Ref.set(currentHashRef, newHash);\n yield* Ref.set(blocksElapsedRef, 0);\n yield* Ref.set(startedAtMsRef, now);\n yield* tracker.update(\n (prev) =>\n ({\n newHash,\n oldHash: error.oldHash as Hash,\n reason: error.reason,\n status: \"replaced\",\n tx: prev.tx,\n }) as TxState\n );\n yield* tracker.update(\n (prev) =>\n ({\n hash: newHash,\n status: \"submitted\",\n tx: prev.tx,\n }) as TxState\n );\n\n waitHash = newHash;\n continue;\n }\n\n return yield* Effect.fail(error);\n }\n }).pipe(Effect.ensuring(Fiber.interrupt(pendingFiber)));\n\n // Step 8: Update to mined state\n yield* tracker.update(\n (prev) =>\n ({\n effectiveGasPrice: receipt.effectiveGasPrice,\n hash: receipt.transactionHash as Hash,\n receipt,\n status: \"mined\",\n tx: prev.tx,\n }) as TxState\n );\n\n if (nonceReservation.reserved) {\n yield* nonceService.confirm({\n address: params.account,\n chainId: params.chainId,\n nonce: nonceToBigInt(nonceReservation.nonce),\n });\n }\n\n // Step 9: Decode events\n const events = (yield* eventStream.decodeReceipt(\n receipt,\n params.abi\n )) as WriteAndTrackResult<TAbi>[\"events\"];\n\n return {\n events,\n hash: receipt.transactionHash as Hash,\n receipt,\n } as WriteAndTrackResult<TAbi>;\n });\n\n yield* run.pipe(\n Effect.either,\n Effect.flatMap((either) =>\n either._tag === \"Right\"\n ? Deferred.succeed(resultDeferred, either.right)\n : Deferred.fail(resultDeferred, either.left)\n ),\n Effect.forkScoped\n );\n\n return {\n actions: {\n cancel: (overridePolicy?: TxPolicy) =>\n Effect.gen(function* () {\n const currentHash = yield* Ref.get(currentHashRef);\n if (!currentHash) {\n return yield* Effect.fail(new Error(\"Transaction not yet submitted\"));\n }\n\n const nextPolicy = overridePolicy ?? policy;\n const newHash = yield* txReplacement.cancel(params.chainId, currentHash, nextPolicy);\n const now = yield* Clock.currentTimeMillis;\n\n yield* Ref.set(currentHashRef, newHash);\n yield* Ref.set(blocksElapsedRef, 0);\n yield* Ref.set(startedAtMsRef, now);\n yield* tracker.update(\n (prev) =>\n ({\n newHash,\n oldHash: currentHash,\n reason: \"cancelled\",\n status: \"replaced\",\n tx: prev.tx,\n }) as TxState\n );\n yield* tracker.update(\n (prev) =>\n ({\n hash: newHash,\n status: \"submitted\",\n tx: prev.tx,\n }) as TxState\n );\n\n return newHash;\n }),\n\n speedup: (overridePolicy?: TxPolicy) =>\n Effect.gen(function* () {\n const currentHash = yield* Ref.get(currentHashRef);\n if (!currentHash) {\n return yield* Effect.fail(new Error(\"Transaction not yet submitted\"));\n }\n\n const nextPolicy = overridePolicy ?? policy;\n const newHash = yield* txReplacement.speedup(params.chainId, currentHash, nextPolicy);\n const now = yield* Clock.currentTimeMillis;\n\n yield* Ref.set(currentHashRef, newHash);\n yield* Ref.set(blocksElapsedRef, 0);\n yield* Ref.set(startedAtMsRef, now);\n yield* tracker.update(\n (prev) =>\n ({\n newHash,\n oldHash: currentHash,\n reason: \"repriced\",\n status: \"replaced\",\n tx: prev.tx,\n }) as TxState\n );\n yield* tracker.update(\n (prev) =>\n ({\n hash: newHash,\n status: \"submitted\",\n tx: prev.tx,\n }) as TxState\n );\n\n return newHash;\n }),\n },\n result: Deferred.await(resultDeferred),\n stateRef: tracker.ref,\n };\n });\n"]}
|
|
@@ -3,5 +3,5 @@ import type { Abi } from "viem";
|
|
|
3
3
|
import type { ContractFunctionName } from "../../types/index.js";
|
|
4
4
|
import type { CorePipelineDeps } from "./internal/core.js";
|
|
5
5
|
import type { WriteAndTrackParams } from "./types.js";
|
|
6
|
-
export declare const makeWriteAndWait: (deps: CorePipelineDeps) => <TAbi extends Abi, TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable">>(params: WriteAndTrackParams<TAbi, TFunctionName>) => Effect.Effect<import("./types.js").WriteAndTrackResult<TAbi>, import("../../index.js").ClientNotFoundError | import("../../index.js").WalletNotConnectedError | import("../../index.js").WrongNetworkError | import("../../index.js").TransportError | import("../../index.js").ContractReadError | import("../../index.js").SimulationFailedError | import("../../index.js").GasEstimationError | import("../../index.js").ContractWriteError | import("../../index.js").EventDecodeError | import("../../index.js").UserRejectedError | import("../../index.js").
|
|
6
|
+
export declare const makeWriteAndWait: (deps: CorePipelineDeps) => <TAbi extends Abi, TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable">>(params: WriteAndTrackParams<TAbi, TFunctionName>) => Effect.Effect<import("./types.js").WriteAndTrackResult<TAbi>, import("../../index.js").ClientNotFoundError | import("../../index.js").WalletNotConnectedError | import("../../index.js").WrongNetworkError | import("../../index.js").TransportError | import("../../index.js").ContractReadError | import("../../index.js").SimulationFailedError | import("../../index.js").GasEstimationError | import("../../index.js").ContractWriteError | import("../../index.js").EventDecodeError | import("../../index.js").UserRejectedError | import("../../index.js").TxFailedError | import("../../index.js").ReceiptTimeoutError | import("../../index.js").InsufficientFundsError | import("../../index.js").GasPriceUnavailableError, never>;
|
|
7
7
|
//# sourceMappingURL=write-and-wait.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-and-wait.d.ts","sourceRoot":"","sources":["../../../src/contract/pipeline/write-and-wait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKtD,eAAO,MAAM,gBAAgB,GAAI,MAAM,gBAAgB,MAEnD,IAAI,SAAS,GAAG,EAChB,aAAa,
|
|
1
|
+
{"version":3,"file":"write-and-wait.d.ts","sourceRoot":"","sources":["../../../src/contract/pipeline/write-and-wait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKtD,eAAO,MAAM,gBAAgB,GAAI,MAAM,gBAAgB,MAEnD,IAAI,SAAS,GAAG,EAChB,aAAa,i0BAGb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-and-wait.js","sourceRoot":"","sources":["../../../src/contract/pipeline/write-and-wait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAsB,EAAE,EAAE,CACzD,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,EAGlD,MAAgD;IAChD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"write-and-wait.js","sourceRoot":"","sources":["../../../src/contract/pipeline/write-and-wait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAsB,EAAE,EAAE,CACzD,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,EAGlD,MAAgD;IAChD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC","sourcesContent":["import { Effect } from \"effect\";\nimport type { Abi } from \"viem\";\nimport { defaultPolicy } from \"@/src/tx/index.js\";\nimport type { ContractFunctionName } from \"@/src/types/index.js\";\nimport type { CorePipelineDeps } from \"./internal/core.js\";\nimport { runCorePipeline } from \"./internal/core.js\";\nimport type { WriteAndTrackParams } from \"./types.js\";\n\n/**\n * Create the writeAndWait implementation\n */\nexport const makeWriteAndWait = (deps: CorePipelineDeps) =>\n Effect.fn(\"ContractPipeline.writeAndWait\")(function* <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n >(params: WriteAndTrackParams<TAbi, TFunctionName>) {\n return yield* Effect.scoped(runCorePipeline(deps, params, params.policy ?? defaultPolicy));\n });\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/contract/pipeline.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/contract/pipeline.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC","sourcesContent":["export * from \"@/src/contract/pipeline/index.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/contract/reader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/contract/reader.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport type { Abi } from \"viem\";\nimport type { ClientNotFoundError } from \"@/src/core/index.js\";\nimport {\n ContractReadError,\n classifyContractError,\n MulticallError,\n PublicClientService,\n} from \"@/src/core/index.js\";\nimport type {\n ContractFunctionName,\n ContractFunctionReturnType,\n ExtractMulticallReturnType,\n MulticallCall,\n MulticallResult,\n ReadParams,\n} from \"@/src/types/index.js\";\n\n/**\n * Service for reading from smart contracts\n */\nexport type ContractReaderShape = {\n /**\n * Read from a contract function\n */\n readonly read: <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">,\n >(\n params: ReadParams<TAbi, TFunctionName>\n ) => Effect.Effect<\n ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName>,\n ContractReadError | ClientNotFoundError\n >;\n\n /**\n * Execute multiple contract reads in a single call with type-safe results.\n * Each call in the array preserves its ABI and function type information,\n * and the result is a tuple where each element is typed based on its corresponding call.\n *\n * @example\n * ```typescript\n * const results = yield* contractReader.multicall(1, [\n * { address: tokenAddr, abi: ERC20_ABI, functionName: \"balanceOf\", args: [addr] },\n * { address: tokenAddr, abi: ERC20_ABI, functionName: \"totalSupply\" }\n * ]);\n * // results[0].result is typed as bigint (balanceOf return type)\n * // results[1].result is typed as bigint (totalSupply return type)\n * ```\n */\n readonly multicall: <const TCalls extends readonly MulticallCall[]>(\n chainId: number,\n calls: TCalls,\n options?: {\n readonly blockNumber?: bigint | undefined;\n readonly blockTag?: import(\"viem\").BlockTag | undefined;\n }\n ) => Effect.Effect<\n {\n readonly [K in keyof TCalls]: MulticallResult<ExtractMulticallReturnType<TCalls[K]>>;\n },\n MulticallError | ClientNotFoundError\n >;\n};\n\nexport class ContractReader extends Context.Tag(\"ew3/ContractReader\")<\n ContractReader,\n ContractReaderShape\n>() {}\n\n/**\n * Live implementation of ContractReader service\n */\nexport const ContractReaderLive = Layer.effect(\n ContractReader,\n Effect.gen(function* () {\n const publicClientService = yield* PublicClientService;\n\n return ContractReader.of({\n multicall: Effect.fn(\"ContractReader.multicall\")(function* <\n const TCalls extends readonly MulticallCall[],\n >(\n chainId: number,\n calls: TCalls,\n options?: {\n readonly blockNumber?: bigint | undefined;\n readonly blockTag?: import(\"viem\").BlockTag | undefined;\n }\n ) {\n const client = yield* publicClientService.get(chainId);\n\n const results = yield* Effect.tryPromise({\n catch: (cause) =>\n new MulticallError({\n cause,\n failedCalls: 0,\n message: \"Multicall failed\",\n }),\n try: () =>\n client.multicall({\n blockNumber: options?.blockNumber,\n blockTag: options?.blockTag,\n contracts: calls.map((c) => ({\n abi: c.abi,\n address: c.address,\n args: c.args,\n functionName: c.functionName,\n })),\n }),\n });\n\n return results.map((r) =>\n r.status === \"success\"\n ? { result: r.result, status: \"success\" as const }\n : {\n error: new Error(String(r.error)),\n status: \"failure\" as const,\n }\n ) as {\n readonly [K in keyof TCalls]: MulticallResult<ExtractMulticallReturnType<TCalls[K]>>;\n };\n }),\n read: Effect.fn(\"ContractReader.read\")(function* <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">,\n >(params: ReadParams<TAbi, TFunctionName>) {\n const client = yield* publicClientService.get(params.chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) => {\n const classified = classifyContractError(cause, {\n address: params.address,\n functionName: params.functionName as string,\n });\n\n return classified instanceof ContractReadError\n ? classified\n : new ContractReadError({\n address: params.address,\n cause: classified,\n functionName: params.functionName as string,\n message: classified.message,\n });\n },\n try: () =>\n client.readContract({\n abi: params.abi,\n account: params.account,\n address: params.address,\n args: params.args,\n blockNumber: params.blockNumber,\n blockTag: params.blockTag,\n functionName: params.functionName,\n }),\n });\n }),\n });\n })\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-contract.js","sourceRoot":"","sources":["../../src/contract/typed-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA0HzE,MAAM,UAAU,aAAa,CAAmB,GAAS,EAAE,OAAgB;IACzE,OAAO;QACL,GAAG;QACH,OAAO;QAEP,WAAW,EAAE,CACX,OAAe,EACf,YAA2B,EAC3B,MAA2C,EAC3C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC/B,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,GAAG,MAAM;aAC0B,CAAC,CAAC;QACzC,CAAC,CAAC;QAEJ,IAAI,EAAE,CACJ,OAAe,EACf,YAA2B,EAC3B,GAAG,IAAmD,EACtD,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBACxB,GAAG;gBACH,OAAO,EAAE,OAAO,EAAE,OAAO;gBACzB,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACb,WAAW,EAAE,OAAO,EAAE,WAAW;gBACjC,QAAQ,EAAE,OAAO,EAAE,QAAQ;gBAC3B,OAAO;gBACP,YAAY;aACsB,CAAC,CAAC;QACxC,CAAC,CAAC;QAEJ,QAAQ,EAAE,CACR,OAAe,EACf,YAA2B,EAC3B,MAA2C,EAC3C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC5B,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,GAAG,MAAM;aAC0B,CAAC,CAAC;QACzC,CAAC,CAAC;QAEJ,KAAK,EAAE,CACL,OAAe,EACf,YAA2B,EAC3B,MAA2C,EAC3C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACzB,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,GAAG,MAAM;aAC0B,CAAC,CAAC;QACzC,CAAC,CAAC;KACL,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"typed-contract.js","sourceRoot":"","sources":["../../src/contract/typed-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA0HzE,MAAM,UAAU,aAAa,CAAmB,GAAS,EAAE,OAAgB;IACzE,OAAO;QACL,GAAG;QACH,OAAO;QAEP,WAAW,EAAE,CACX,OAAe,EACf,YAA2B,EAC3B,MAA2C,EAC3C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC/B,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,GAAG,MAAM;aAC0B,CAAC,CAAC;QACzC,CAAC,CAAC;QAEJ,IAAI,EAAE,CACJ,OAAe,EACf,YAA2B,EAC3B,GAAG,IAAmD,EACtD,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBACxB,GAAG;gBACH,OAAO,EAAE,OAAO,EAAE,OAAO;gBACzB,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACb,WAAW,EAAE,OAAO,EAAE,WAAW;gBACjC,QAAQ,EAAE,OAAO,EAAE,QAAQ;gBAC3B,OAAO;gBACP,YAAY;aACsB,CAAC,CAAC;QACxC,CAAC,CAAC;QAEJ,QAAQ,EAAE,CACR,OAAe,EACf,YAA2B,EAC3B,MAA2C,EAC3C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC5B,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,GAAG,MAAM;aAC0B,CAAC,CAAC;QACzC,CAAC,CAAC;QAEJ,KAAK,EAAE,CACL,OAAe,EACf,YAA2B,EAC3B,MAA2C,EAC3C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACzB,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,GAAG,MAAM;aAC0B,CAAC,CAAC;QACzC,CAAC,CAAC;KACL,CAAC;AACJ,CAAC","sourcesContent":["import { Effect } from \"effect\";\nimport type { Address, BlockTag, GetValue, Hash } from \"viem\";\nimport { ContractReader, ContractWriter } from \"@/src/contract/index.js\";\nimport type {\n Abi,\n ContractFunctionArgs,\n ContractFunctionReturnType,\n ReadFunctionName,\n ReadParams,\n SimulateResult,\n TxOverrides,\n WriteFunctionName,\n WriteParams,\n} from \"@/src/types/index.js\";\n\ntype ReadArgs<\n TAbi extends Abi,\n TFunctionName extends ReadFunctionName<TAbi>,\n> = ContractFunctionArgs<TAbi, \"pure\" | \"view\", TFunctionName>;\n\ntype ReadCallOptions = {\n readonly account?: Address | undefined;\n readonly blockNumber?: bigint | undefined;\n readonly blockTag?: BlockTag | undefined;\n};\n\ntype ReadArgsWithOptionsParam<\n TAbi extends Abi,\n TFunctionName extends ReadFunctionName<TAbi>,\n> = readonly [] extends ReadArgs<TAbi, TFunctionName>\n ? [args?: ReadArgs<TAbi, TFunctionName>, options?: ReadCallOptions | undefined]\n : [args: ReadArgs<TAbi, TFunctionName>, options?: ReadCallOptions | undefined];\n\ntype WriteArgs<\n TAbi extends Abi,\n TFunctionName extends WriteFunctionName<TAbi>,\n> = ContractFunctionArgs<TAbi, \"nonpayable\" | \"payable\", TFunctionName>;\n\ntype WriteArgsField<\n TAbi extends Abi,\n TFunctionName extends WriteFunctionName<TAbi>,\n> = readonly [] extends WriteArgs<TAbi, TFunctionName>\n ? { readonly args?: WriteArgs<TAbi, TFunctionName> | undefined }\n : { readonly args: WriteArgs<TAbi, TFunctionName> };\n\ntype WriteOverrides<TAbi extends Abi, TFunctionName extends WriteFunctionName<TAbi>> = {\n readonly account: Address;\n readonly overrides?: TxOverrides | undefined;\n readonly gas?: bigint | undefined;\n} & WriteArgsField<TAbi, TFunctionName> &\n GetValue<TAbi, TFunctionName, bigint>;\n\n/**\n * A typed contract instance with the ABI baked in\n */\nexport type TypedContract<TAbi extends Abi> = {\n /**\n * The contract address\n */\n readonly address: Address;\n\n /**\n * The contract ABI\n */\n readonly abi: TAbi;\n\n /**\n * Read from a contract function\n */\n readonly read: <TFunctionName extends ReadFunctionName<TAbi>>(\n chainId: number,\n functionName: TFunctionName,\n ...args: ReadArgsWithOptionsParam<TAbi, TFunctionName>\n ) => Effect.Effect<\n ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName>,\n Error,\n ContractReader\n >;\n\n /**\n * Simulate a contract write\n */\n readonly simulate: <TFunctionName extends WriteFunctionName<TAbi>>(\n chainId: number,\n functionName: TFunctionName,\n args: WriteOverrides<TAbi, TFunctionName>\n ) => Effect.Effect<SimulateResult, Error, ContractWriter>;\n\n /**\n * Estimate gas for a contract write\n */\n readonly estimateGas: <TFunctionName extends WriteFunctionName<TAbi>>(\n chainId: number,\n functionName: TFunctionName,\n args: WriteOverrides<TAbi, TFunctionName>\n ) => Effect.Effect<bigint, Error, ContractWriter>;\n\n /**\n * Write to a contract function\n */\n readonly write: <TFunctionName extends WriteFunctionName<TAbi>>(\n chainId: number,\n functionName: TFunctionName,\n args: WriteOverrides<TAbi, TFunctionName>\n ) => Effect.Effect<Hash, Error, ContractWriter>;\n};\n\n/**\n * Creates a typed contract instance with ABI baked in\n *\n * @example\n * ```typescript\n * const erc20 = typedContract(erc20Abi, \"0x...\")\n *\n * // Type-safe reads\n * const balance = await erc20.read(1, \"balanceOf\", [\"0x...\"])\n *\n * // Type-safe writes\n * const hash = await erc20.write(1, \"transfer\", {\n * args: [\"0x...\", 100n],\n * account: \"0x...\",\n * })\n * ```\n */\nexport function typedContract<TAbi extends Abi>(abi: TAbi, address: Address): TypedContract<TAbi> {\n return {\n abi,\n address,\n\n estimateGas: <TFunctionName extends WriteFunctionName<TAbi>>(\n chainId: number,\n functionName: TFunctionName,\n params: WriteOverrides<TAbi, TFunctionName>\n ) =>\n Effect.gen(function* () {\n const writer = yield* ContractWriter;\n return yield* writer.estimateGas({\n abi,\n address,\n chainId,\n functionName,\n ...params,\n } as WriteParams<TAbi, TFunctionName>);\n }),\n\n read: <TFunctionName extends ReadFunctionName<TAbi>>(\n chainId: number,\n functionName: TFunctionName,\n ...args: ReadArgsWithOptionsParam<TAbi, TFunctionName>\n ) =>\n Effect.gen(function* () {\n const reader = yield* ContractReader;\n const options = args[1];\n return yield* reader.read({\n abi,\n account: options?.account,\n address,\n args: args[0],\n blockNumber: options?.blockNumber,\n blockTag: options?.blockTag,\n chainId,\n functionName,\n } as ReadParams<TAbi, TFunctionName>);\n }),\n\n simulate: <TFunctionName extends WriteFunctionName<TAbi>>(\n chainId: number,\n functionName: TFunctionName,\n params: WriteOverrides<TAbi, TFunctionName>\n ) =>\n Effect.gen(function* () {\n const writer = yield* ContractWriter;\n return yield* writer.simulate({\n abi,\n address,\n chainId,\n functionName,\n ...params,\n } as WriteParams<TAbi, TFunctionName>);\n }),\n\n write: <TFunctionName extends WriteFunctionName<TAbi>>(\n chainId: number,\n functionName: TFunctionName,\n params: WriteOverrides<TAbi, TFunctionName>\n ) =>\n Effect.gen(function* () {\n const writer = yield* ContractWriter;\n return yield* writer.write({\n abi,\n address,\n chainId,\n functionName,\n ...params,\n } as WriteParams<TAbi, TFunctionName>);\n }),\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/contract/writer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/contract/writer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport type {\n Abi,\n Address,\n Chain,\n ContractFunctionArgs,\n EstimateContractGasParameters,\n Hash,\n SimulateContractParameters,\n WriteContractParameters,\n} from \"viem\";\nimport type {\n ClientNotFoundError,\n ContractReadError,\n ContractWriteError,\n GasEstimationError,\n InsufficientFundsError,\n SimulationFailedError,\n UserRejectedError,\n WalletNotConnectedError,\n WrongNetworkError,\n} from \"@/src/core/index.js\";\nimport {\n classifyContractError,\n classifyGasEstimationError,\n classifyWriteError,\n PublicClientService,\n WalletClientService,\n} from \"@/src/core/index.js\";\nimport type { ContractFunctionName, SimulateResult, WriteParams } from \"@/src/types/index.js\";\n\nconst txRequestOverridesFromWriteParams = <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n>(\n params: WriteParams<TAbi, TFunctionName>\n) => {\n const overrides = params.overrides;\n return {\n accessList: overrides?.accessList,\n gas: overrides?.gas ?? params.gas,\n gasPrice: overrides?.gasPrice,\n maxFeePerGas: overrides?.maxFeePerGas,\n maxPriorityFeePerGas: overrides?.maxPriorityFeePerGas,\n nonce: overrides?.nonce,\n type: overrides?.type,\n };\n};\n\n/**\n * Service for writing to smart contracts\n */\nexport type ContractWriterShape = {\n /**\n * Simulate a contract call before executing it\n */\n readonly simulate: <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n >(\n params: WriteParams<TAbi, TFunctionName>\n ) => Effect.Effect<\n SimulateResult,\n | SimulationFailedError\n | ContractReadError\n | InsufficientFundsError\n | UserRejectedError\n | ClientNotFoundError\n >;\n\n /**\n * Estimate gas for a contract call\n */\n readonly estimateGas: <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n >(\n params: WriteParams<TAbi, TFunctionName>\n ) => Effect.Effect<\n bigint,\n GasEstimationError | InsufficientFundsError | UserRejectedError | ClientNotFoundError\n >;\n\n /**\n * Write to a contract function (submits transaction)\n */\n readonly write: <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n >(\n params: WriteParams<TAbi, TFunctionName>\n ) => Effect.Effect<\n Hash,\n | ContractWriteError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n >;\n};\n\nexport class ContractWriter extends Context.Tag(\"ew3/ContractWriter\")<\n ContractWriter,\n ContractWriterShape\n>() {}\n\n/**\n * Live implementation of ContractWriter service\n */\nexport const ContractWriterLive = Layer.effect(\n ContractWriter,\n Effect.gen(function* () {\n const publicClientService = yield* PublicClientService;\n const walletClientService = yield* WalletClientService;\n\n return ContractWriter.of({\n estimateGas: Effect.fn(\"ContractWriter.estimateGas\")(function* <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n >(params: WriteParams<TAbi, TFunctionName>) {\n const publicClient = yield* publicClientService.get(params.chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) =>\n classifyGasEstimationError(cause, {\n address: params.address,\n functionName: params.functionName as string,\n }),\n try: () =>\n publicClient.estimateContractGas({\n abi: params.abi,\n account: params.account,\n address: params.address,\n args: params.args,\n functionName: params.functionName,\n value: params.value,\n ...txRequestOverridesFromWriteParams(params),\n } as EstimateContractGasParameters<TAbi, TFunctionName>),\n });\n }),\n simulate: Effect.fn(\"ContractWriter.simulate\")(function* <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n >(params: WriteParams<TAbi, TFunctionName>) {\n const publicClient = yield* publicClientService.get(params.chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) =>\n classifyContractError(cause, {\n address: params.address,\n functionName: params.functionName as string,\n }),\n try: async () => {\n const result = await publicClient.simulateContract({\n abi: params.abi,\n account: params.account,\n address: params.address,\n args: params.args,\n functionName: params.functionName,\n value: params.value,\n ...txRequestOverridesFromWriteParams(params),\n } as SimulateContractParameters<\n TAbi,\n TFunctionName,\n ContractFunctionArgs<TAbi, \"nonpayable\" | \"payable\", TFunctionName>,\n Chain | undefined,\n Chain | undefined,\n Address\n >);\n return {\n request: result.request,\n result: result.result,\n };\n },\n });\n }),\n\n write: Effect.fn(\"ContractWriter.write\")(function* <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n >(params: WriteParams<TAbi, TFunctionName>) {\n const walletClient = yield* walletClientService.get(params.chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) =>\n classifyWriteError(cause, {\n address: params.address,\n functionName: params.functionName as string,\n }),\n try: () =>\n walletClient.writeContract({\n abi: params.abi,\n account: params.account,\n address: params.address,\n args: params.args,\n chain: walletClient.chain,\n functionName: params.functionName,\n value: params.value,\n ...txRequestOverridesFromWriteParams(params),\n } as WriteContractParameters<TAbi, TFunctionName>),\n });\n }),\n });\n })\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/clients/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/clients/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from \"./public-client.js\";\nexport * from \"./wallet-client.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-client.js","sourceRoot":"","sources":["../../../src/core/clients/public-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQjC,MAAM,OAAO,mBAAoB,SAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAGrE;CAAG"}
|
|
1
|
+
{"version":3,"file":"public-client.js","sourceRoot":"","sources":["../../../src/core/clients/public-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQjC,MAAM,OAAO,mBAAoB,SAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAGrE;CAAG","sourcesContent":["import type { Effect } from \"effect\";\nimport { Context } from \"effect\";\nimport type { PublicClient } from \"viem\";\nimport type { ClientNotFoundError } from \"@/src/core/errors/index.js\";\n\nexport type PublicClientServiceShape = {\n get: (chainId: number) => Effect.Effect<PublicClient, ClientNotFoundError>;\n};\n\nexport class PublicClientService extends Context.Tag(\"ew3/PublicClient\")<\n PublicClientService,\n PublicClientServiceShape\n>() {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-client.js","sourceRoot":"","sources":["../../../src/core/clients/wallet-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAUjC,MAAM,OAAO,mBAAoB,SAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAGrE;CAAG"}
|
|
1
|
+
{"version":3,"file":"wallet-client.js","sourceRoot":"","sources":["../../../src/core/clients/wallet-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAUjC,MAAM,OAAO,mBAAoB,SAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAGrE;CAAG","sourcesContent":["import type { Effect } from \"effect\";\nimport { Context } from \"effect\";\nimport type { WalletClient } from \"viem\";\nimport type { WalletNotConnectedError, WrongNetworkError } from \"@/src/core/errors/index.js\";\n\nexport type WalletClientServiceShape = {\n get: (\n chainId: number\n ) => Effect.Effect<WalletClient, WalletNotConnectedError | WrongNetworkError>;\n};\n\nexport class WalletClientService extends Context.Tag(\"ew3/WalletClient\")<\n WalletClientService,\n WalletClientServiceShape\n>() {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/errors/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,WAAW,EAAuB,CAChF,qBAAqB,EACrB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC,WAAW,EAA2B,CACxF,yBAAyB,EACzB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,WAAW,EAAqB,CAC5E,mBAAmB,EACnB;IACE,aAAa,EAAE,MAAM,CAAC,MAAM;IAC5B,eAAe,EAAE,MAAM,CAAC,MAAM;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,WAAW,EAAkB,CAAC,gBAAgB,EAAE;IACzF,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,GAAG,EAAE,MAAM,CAAC,MAAM;CACnB,CAAC;CAAG"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/errors/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,WAAW,EAAuB,CAChF,qBAAqB,EACrB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC,WAAW,EAA2B,CACxF,yBAAyB,EACzB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,WAAW,EAAqB,CAC5E,mBAAmB,EACnB;IACE,aAAa,EAAE,MAAM,CAAC,MAAM;IAC5B,eAAe,EAAE,MAAM,CAAC,MAAM;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,WAAW,EAAkB,CAAC,gBAAgB,EAAE;IACzF,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,GAAG,EAAE,MAAM,CAAC,MAAM;CACnB,CAAC;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\nexport class ClientNotFoundError extends Schema.TaggedError<ClientNotFoundError>()(\n \"ClientNotFoundError\",\n {\n chainId: Schema.Number,\n message: Schema.String,\n }\n) {}\n\nexport class WalletNotConnectedError extends Schema.TaggedError<WalletNotConnectedError>()(\n \"WalletNotConnectedError\",\n {\n chainId: Schema.Number,\n message: Schema.String,\n }\n) {}\n\nexport class WrongNetworkError extends Schema.TaggedError<WrongNetworkError>()(\n \"WrongNetworkError\",\n {\n actualChainId: Schema.Number,\n expectedChainId: Schema.Number,\n message: Schema.String,\n }\n) {}\n\nexport class TransportError extends Schema.TaggedError<TransportError>()(\"TransportError\", {\n cause: Schema.optional(Schema.Unknown),\n message: Schema.String,\n url: Schema.String,\n}) {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/core/errors/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,WAAW,EAAqB,CAC5E,mBAAmB,EACnB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACvC,CACF;CAAG;AAEJ,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACvC,CACF;CAAG;AAEJ,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACvC,CACF;CAAG;AAEJ,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,WAAW,EAAkB,CAAC,gBAAgB,EAAE;IACzF,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/core/errors/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,WAAW,EAAqB,CAC5E,mBAAmB,EACnB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACvC,CACF;CAAG;AAEJ,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACvC,CACF;CAAG;AAEJ,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACvC,CACF;CAAG;AAEJ,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,WAAW,EAAkB,CAAC,gBAAgB,EAAE;IACzF,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\nexport class ContractReadError extends Schema.TaggedError<ContractReadError>()(\n \"ContractReadError\",\n {\n address: Schema.String,\n cause: Schema.optional(Schema.Unknown),\n functionName: Schema.String,\n message: Schema.String,\n }\n) {}\n\nexport class SimulationFailedError extends Schema.TaggedError<SimulationFailedError>()(\n \"SimulationFailedError\",\n {\n address: Schema.String,\n calldata: Schema.optional(Schema.String),\n functionName: Schema.String,\n message: Schema.String,\n revertData: Schema.optional(Schema.String),\n sender: Schema.optional(Schema.String),\n }\n) {}\n\nexport class GasEstimationError extends Schema.TaggedError<GasEstimationError>()(\n \"GasEstimationError\",\n {\n address: Schema.String,\n calldata: Schema.optional(Schema.String),\n cause: Schema.optional(Schema.Unknown),\n functionName: Schema.String,\n message: Schema.String,\n sender: Schema.optional(Schema.String),\n }\n) {}\n\nexport class ContractWriteError extends Schema.TaggedError<ContractWriteError>()(\n \"ContractWriteError\",\n {\n address: Schema.String,\n calldata: Schema.optional(Schema.String),\n cause: Schema.optional(Schema.Unknown),\n functionName: Schema.String,\n message: Schema.String,\n sender: Schema.optional(Schema.String),\n }\n) {}\n\nexport class MulticallError extends Schema.TaggedError<MulticallError>()(\"MulticallError\", {\n cause: Schema.optional(Schema.Unknown),\n failedCalls: Schema.Number,\n message: Schema.String,\n}) {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../../src/core/errors/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM;CAC5B,CACF;CAAG;AAGJ,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,WAAW,EAAiB,CAAC,eAAe,EAAE;IACtF,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM;CAC5B,CAAC;CAAG"}
|
|
1
|
+
{"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../../src/core/errors/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM;CAC5B,CACF;CAAG;AAGJ,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,WAAW,EAAiB,CAAC,eAAe,EAAE;IACtF,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM;CAC5B,CAAC;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\n/** Token allowance check failed */\nexport class ApprovalCheckError extends Schema.TaggedError<ApprovalCheckError>()(\n \"ApprovalCheckError\",\n {\n cause: Schema.optional(Schema.Unknown),\n message: Schema.String,\n owner: Schema.String,\n spender: Schema.String,\n tokenAddress: Schema.String,\n }\n) {}\n\n/** Token approval transaction failed */\nexport class ApprovalError extends Schema.TaggedError<ApprovalError>()(\"ApprovalError\", {\n cause: Schema.optional(Schema.Unknown),\n message: Schema.String,\n spender: Schema.String,\n tokenAddress: Schema.String,\n}) {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/core/errors/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,kBAAkB,EAAE;IAC/F,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC,OAAO;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAEL,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,WAAW,EAAmB,CAAC,iBAAiB,EAAE;IAC5F,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG"}
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/core/errors/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,kBAAkB,EAAE;IAC/F,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC,OAAO;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAEL,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,WAAW,EAAmB,CAAC,iBAAiB,EAAE;IAC5F,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\nexport class EventDecodeError extends Schema.TaggedError<EventDecodeError>()(\"EventDecodeError\", {\n cause: Schema.optional(Schema.Unknown),\n log: Schema.Unknown,\n message: Schema.String,\n}) {}\n\nexport class EventWatchError extends Schema.TaggedError<EventWatchError>()(\"EventWatchError\", {\n cause: Schema.optional(Schema.Unknown),\n chainId: Schema.Number,\n message: Schema.String,\n}) {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from \"./client.js\";\nexport * from \"./contract.js\";\nexport * from \"./erc20.js\";\nexport * from \"./event.js\";\nexport * from \"./predicates.js\";\nexport * from \"./transaction.js\";\nexport * from \"./viem-mapper.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../../src/core/errors/predicates.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC/E,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAMnG,MAAM,CAAC,MAAM,aAAa,GACxB,CAAsC,GAAc,EAAE,EAAE,CACxD,CAAC,KAAc,EAAc,EAAE,CAC7B,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC"}
|
|
1
|
+
{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../../src/core/errors/predicates.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC/E,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAMnG,MAAM,CAAC,MAAM,aAAa,GACxB,CAAsC,GAAc,EAAE,EAAE,CACxD,CAAC,KAAc,EAAc,EAAE,CAC7B,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC","sourcesContent":["/** Shape of Effect-TS tagged errors with optional contract metadata */\nexport type TaggedErrorShape = {\n readonly _tag: string;\n readonly message: string;\n readonly address?: string;\n readonly functionName?: string;\n readonly cause?: unknown;\n};\n\n/**\n * Check if an error has the shape of a tagged error (has _tag property).\n * Use this for general tagged error detection without checking a specific tag.\n */\nexport const hasTaggedErrorShape = (error: unknown): error is TaggedErrorShape =>\n error !== null && typeof error === \"object\" && \"_tag\" in error && typeof error._tag === \"string\";\n\n/**\n * Creates a type guard for tagged errors with a specific tag.\n * Works with both instanceof checks and _tag property (for serialized errors).\n */\nexport const isTaggedError =\n <T extends { readonly _tag: string }>(tag: T[\"_tag\"]) =>\n (error: unknown): error is T =>\n hasTaggedErrorShape(error) && error._tag === tag;\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect, Schema } from "effect";
|
|
2
|
-
export type
|
|
2
|
+
export type TxReplacementReason = "cancelled" | "replaced" | "repriced";
|
|
3
3
|
declare const UserRejectedError_base: Schema.TaggedErrorClass<UserRejectedError, "UserRejectedError", {
|
|
4
4
|
readonly _tag: Schema.tag<"UserRejectedError">;
|
|
5
5
|
} & {
|
|
@@ -7,24 +7,24 @@ declare const UserRejectedError_base: Schema.TaggedErrorClass<UserRejectedError,
|
|
|
7
7
|
}>;
|
|
8
8
|
export declare class UserRejectedError extends UserRejectedError_base {
|
|
9
9
|
}
|
|
10
|
-
declare const
|
|
11
|
-
readonly _tag: Schema.tag<"
|
|
10
|
+
declare const TxFailedError_base: Schema.TaggedErrorClass<TxFailedError, "TxFailedError", {
|
|
11
|
+
readonly _tag: Schema.tag<"TxFailedError">;
|
|
12
12
|
} & {
|
|
13
13
|
cause: Schema.optional<typeof Schema.Unknown>;
|
|
14
14
|
hash: typeof Schema.String;
|
|
15
15
|
message: typeof Schema.String;
|
|
16
16
|
}>;
|
|
17
|
-
export declare class
|
|
17
|
+
export declare class TxFailedError extends TxFailedError_base {
|
|
18
18
|
}
|
|
19
|
-
declare const
|
|
20
|
-
readonly _tag: Schema.tag<"
|
|
19
|
+
declare const TxReplacedError_base: Schema.TaggedErrorClass<TxReplacedError, "TxReplacedError", {
|
|
20
|
+
readonly _tag: Schema.tag<"TxReplacedError">;
|
|
21
21
|
} & {
|
|
22
22
|
message: typeof Schema.String;
|
|
23
23
|
newHash: typeof Schema.String;
|
|
24
24
|
oldHash: typeof Schema.String;
|
|
25
25
|
reason: Schema.Literal<["cancelled", "replaced", "repriced"]>;
|
|
26
26
|
}>;
|
|
27
|
-
export declare class
|
|
27
|
+
export declare class TxReplacedError extends TxReplacedError_base {
|
|
28
28
|
}
|
|
29
29
|
declare const ReceiptTimeoutError_base: Schema.TaggedErrorClass<ReceiptTimeoutError, "ReceiptTimeoutError", {
|
|
30
30
|
readonly _tag: Schema.tag<"ReceiptTimeoutError">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/core/errors/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAK/C,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/core/errors/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAK/C,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;;;;;;AAExE,qBAAa,iBAAkB,SAAQ,sBAKtC;CAAG;;;;;;;;AAEJ,qBAAa,aAAc,SAAQ,kBAIjC;CAAG;;;;;;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAKnC;CAAG;;;;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBAOxC;CAAG;;;;;;;;AAEJ,qBAAa,sBAAuB,SAAQ,2BAO3C;CAAG;AAKJ,eAAO,MAAM,yBAAyB,gDAAwD,CAAC;AA+G/F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE3D;AAMD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjE;AAkED,eAAO,MAAM,kBAAkB,EAAE;IAC/B,CAAC,EAAE,EACD,QAAQ,EAAE,EAAE,GACX,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,QAAQ,EAAE,EAAE,GACX,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;CAY5D,CAAC;AAcF,eAAO,MAAM,sBAAsB,EAAE;IACnC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EACT,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAClC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAClC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAYtE,CAAC"}
|
|
@@ -5,13 +5,13 @@ export class UserRejectedError extends Schema.TaggedError()("UserRejectedError",
|
|
|
5
5
|
message: Schema.String,
|
|
6
6
|
}) {
|
|
7
7
|
}
|
|
8
|
-
export class
|
|
8
|
+
export class TxFailedError extends Schema.TaggedError()("TxFailedError", {
|
|
9
9
|
cause: Schema.optional(Schema.Unknown),
|
|
10
10
|
hash: Schema.String,
|
|
11
11
|
message: Schema.String,
|
|
12
12
|
}) {
|
|
13
13
|
}
|
|
14
|
-
export class
|
|
14
|
+
export class TxReplacedError extends Schema.TaggedError()("TxReplacedError", {
|
|
15
15
|
message: Schema.String,
|
|
16
16
|
newHash: Schema.String,
|
|
17
17
|
oldHash: Schema.String,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/core/errors/transaction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/core/errors/transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import { Cause, Effect, Schema } from \"effect\";\nimport { dual } from \"effect/Function\";\n\nimport { isTaggedError } from \"./predicates.js\";\n\nexport type TxReplacementReason = \"cancelled\" | \"replaced\" | \"repriced\";\n\nexport class UserRejectedError extends Schema.TaggedError<UserRejectedError>()(\n \"UserRejectedError\",\n {\n message: Schema.String,\n }\n) {}\n\nexport class TxFailedError extends Schema.TaggedError<TxFailedError>()(\"TxFailedError\", {\n cause: Schema.optional(Schema.Unknown),\n hash: Schema.String,\n message: Schema.String,\n}) {}\n\nexport class TxReplacedError extends Schema.TaggedError<TxReplacedError>()(\"TxReplacedError\", {\n message: Schema.String,\n newHash: Schema.String,\n oldHash: Schema.String,\n reason: Schema.Literal(\"cancelled\", \"replaced\", \"repriced\"),\n}) {}\n\nexport class ReceiptTimeoutError extends Schema.TaggedError<ReceiptTimeoutError>()(\n \"ReceiptTimeoutError\",\n {\n hash: Schema.String,\n message: Schema.String,\n timeout: Schema.Number,\n }\n) {}\n\nexport class InsufficientFundsError extends Schema.TaggedError<InsufficientFundsError>()(\n \"InsufficientFundsError\",\n {\n available: Schema.String,\n message: Schema.String,\n required: Schema.String,\n }\n) {}\n\n/**\n * Strict _tag guard for UserRejectedError.\n */\nexport const isTaggedUserRejectedError = isTaggedError<UserRejectedError>(\"UserRejectedError\");\n\nconst USER_REJECTION_CODE = 4001;\nconst USER_REJECTION_MESSAGE_FRAGMENTS = [\n \"user rejected\",\n \"user denied\",\n \"user cancelled\",\n \"rejected by user\",\n \"denied by user\",\n \"rejected the request\",\n];\n\ntype UserRejectionRecord = {\n readonly _tag?: unknown;\n readonly cause?: unknown;\n readonly code?: unknown;\n readonly error?: unknown;\n readonly errors?: unknown;\n readonly name?: unknown;\n};\n\ntype UserRejectionLooseRecord = UserRejectionRecord & {\n readonly message?: unknown;\n};\n\nfunction matchesUserRejectionMessage(message: string): boolean {\n const normalized = message.trim().toLowerCase();\n return USER_REJECTION_MESSAGE_FRAGMENTS.some((fragment) => normalized.includes(fragment));\n}\n\nfunction matchesUserRejectionTag(tag: string): boolean {\n return tag.trim().toLowerCase().includes(\"userrejected\");\n}\n\nfunction matchesUserRejectionName(name: string): boolean {\n return name.trim().toLowerCase().includes(\"userrejected\");\n}\n\nfunction isUserRejectionCode(value: unknown): boolean {\n return value === USER_REJECTION_CODE || value === `${USER_REJECTION_CODE}`;\n}\n\nfunction checkUserRejectionRecord(record: UserRejectionRecord, depth: number): boolean {\n if (typeof record._tag === \"string\" && matchesUserRejectionTag(record._tag)) {\n return true;\n }\n\n if (typeof record.name === \"string\" && matchesUserRejectionName(record.name)) {\n return true;\n }\n\n if (isUserRejectionCode(record.code)) {\n return true;\n }\n\n if (Cause.isCause(record.cause)) {\n return checkUserRejection(Cause.squash(record.cause), depth + 1);\n }\n\n if (record.cause && checkUserRejection(record.cause, depth + 1)) {\n return true;\n }\n\n if (record.error && checkUserRejection(record.error, depth + 1)) {\n return true;\n }\n\n if (Array.isArray(record.errors)) {\n return record.errors.some((error) => checkUserRejection(error, depth + 1));\n }\n\n return false;\n}\n\nfunction checkUserRejection(error: unknown, depth: number): boolean {\n if (!error || depth > 4) {\n return false;\n }\n\n if (isTaggedUserRejectedError(error)) {\n return true;\n }\n\n if (Cause.isCause(error)) {\n return checkUserRejection(Cause.squash(error), depth + 1);\n }\n\n if (error instanceof Error) {\n if (matchesUserRejectionName(error.name)) {\n return true;\n }\n if (isUserRejectionCode((error as { code?: unknown }).code)) {\n return true;\n }\n const tag = (error as { _tag?: unknown })._tag;\n if (typeof tag === \"string\" && matchesUserRejectionTag(tag)) {\n return true;\n }\n return checkUserRejectionRecord(error as UserRejectionRecord, depth);\n }\n\n if (typeof error === \"object\") {\n return checkUserRejectionRecord(error as UserRejectionRecord, depth);\n }\n\n return false;\n}\n\n/**\n * Strict user rejection detection based on tags, names, codes, and nested causes.\n */\nexport function isUserRejectedError(error: unknown): boolean {\n return checkUserRejection(error, 0);\n}\n\n/**\n * Lenient user rejection check based on error messages and nested causes.\n * Useful for UI hints, not for control flow.\n */\nexport function isLikelyUserRejectedError(error: unknown): boolean {\n return checkLikelyUserRejection(error, 0);\n}\n\nfunction checkLikelyUserRejectionRecord(record: UserRejectionLooseRecord, depth: number): boolean {\n if (typeof record.message === \"string\" && matchesUserRejectionMessage(record.message)) {\n return true;\n }\n if (Cause.isCause(record.cause)) {\n return checkLikelyUserRejection(Cause.squash(record.cause), depth + 1);\n }\n if (record.cause && checkLikelyUserRejection(record.cause, depth + 1)) {\n return true;\n }\n if (record.error && checkLikelyUserRejection(record.error, depth + 1)) {\n return true;\n }\n if (Array.isArray(record.errors)) {\n return record.errors.some((err) => checkLikelyUserRejection(err, depth + 1));\n }\n return false;\n}\n\nfunction checkLikelyUserRejection(error: unknown, depth: number): boolean {\n if (!error || depth > 4) {\n return false;\n }\n\n if (isUserRejectedError(error)) {\n return true;\n }\n\n if (typeof error === \"string\") {\n return matchesUserRejectionMessage(error);\n }\n\n if (Cause.isCause(error)) {\n return checkLikelyUserRejection(Cause.squash(error), depth + 1);\n }\n\n if (error instanceof Error) {\n if (matchesUserRejectionMessage(error.message)) {\n return true;\n }\n return checkLikelyUserRejectionRecord(error as UserRejectionLooseRecord, depth);\n }\n\n if (typeof error === \"object\") {\n return checkLikelyUserRejectionRecord(error as UserRejectionLooseRecord, depth);\n }\n\n return false;\n}\n\n/**\n * Catch UserRejectedError and return a fallback value.\n * Useful for treating rejection as \"cancelled\" rather than \"failed\".\n *\n * @example\n * ```ts\n * const result = await Effect.runPromise(\n * pipeline.writeAndWait(request).pipe(catchUserRejection(null))\n * );\n * if (result === null) {\n * // User cancelled - reset to idle\n * }\n * ```\n */\nexport const catchUserRejection: {\n <A2>(\n fallback: A2\n ): <A, E, R>(\n effect: Effect.Effect<A, E, R>\n ) => Effect.Effect<A | A2, Exclude<E, UserRejectedError>, R>;\n <A, E, R, A2>(\n effect: Effect.Effect<A, E, R>,\n fallback: A2\n ): Effect.Effect<A | A2, Exclude<E, UserRejectedError>, R>;\n} = dual(\n 2,\n <A, E, R, A2>(\n effect: Effect.Effect<A, E, R>,\n fallback: A2\n ): Effect.Effect<A | A2, Exclude<E, UserRejectedError>, R> =>\n Effect.catchIf(effect, isUserRejectedError, () => Effect.succeed(fallback)) as Effect.Effect<\n A | A2,\n Exclude<E, UserRejectedError>,\n R\n >\n);\n\n/**\n * Catch UserRejectedError and run a fallback effect.\n *\n * @example\n * ```ts\n * const result = await Effect.runPromise(\n * pipeline.writeAndWait(request).pipe(\n * catchUserRejectionWith(Effect.succeed({ cancelled: true }))\n * )\n * );\n * ```\n */\nexport const catchUserRejectionWith: {\n <A2, E2, R2>(\n fallback: Effect.Effect<A2, E2, R2>\n ): <A, E, R>(\n effect: Effect.Effect<A, E, R>\n ) => Effect.Effect<A | A2, Exclude<E, UserRejectedError> | E2, R | R2>;\n <A, E, R, A2, E2, R2>(\n effect: Effect.Effect<A, E, R>,\n fallback: Effect.Effect<A2, E2, R2>\n ): Effect.Effect<A | A2, Exclude<E, UserRejectedError> | E2, R | R2>;\n} = dual(\n 2,\n <A, E, R, A2, E2, R2>(\n effect: Effect.Effect<A, E, R>,\n fallback: Effect.Effect<A2, E2, R2>\n ): Effect.Effect<A | A2, Exclude<E, UserRejectedError> | E2, R | R2> =>\n Effect.catchIf(effect, isUserRejectedError, () => fallback) as Effect.Effect<\n A | A2,\n Exclude<E, UserRejectedError> | E2,\n R | R2\n >\n);\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Address, Hash } from "viem";
|
|
2
2
|
import { ContractReadError, ContractWriteError, GasEstimationError, SimulationFailedError } from "../../core/errors/contract.js";
|
|
3
3
|
import { InsufficientFundsError, UserRejectedError } from "../../core/errors/transaction.js";
|
|
4
|
-
import { AddChainError, ChainSwitchError, SignMessageError,
|
|
4
|
+
import { AddChainError, ChainSwitchError, SignMessageError, SignTxError, SignTypedDataError, WalletConnectionError, WatchAssetError } from "../../wallet/index.js";
|
|
5
5
|
export declare function isUserRejection(error: unknown): boolean;
|
|
6
6
|
export declare function isInsufficientFunds(error: unknown): boolean;
|
|
7
7
|
export declare function extractRevertReason(error: unknown): string | undefined;
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function isTxReplaced(error: unknown): {
|
|
9
9
|
newHash: Hash;
|
|
10
10
|
replaced: true;
|
|
11
11
|
} | false;
|
|
@@ -38,7 +38,7 @@ export declare function classifyWalletError(error: unknown, operation: "signType
|
|
|
38
38
|
}): UserRejectedError | SignTypedDataError;
|
|
39
39
|
export declare function classifyWalletError(error: unknown, operation: "signTransaction", context?: {
|
|
40
40
|
chainId?: number;
|
|
41
|
-
}): UserRejectedError |
|
|
41
|
+
}): UserRejectedError | SignTxError;
|
|
42
42
|
export declare function classifyWalletError(error: unknown, operation: "watchAsset", context?: {
|
|
43
43
|
chainId?: number;
|
|
44
44
|
}): UserRejectedError | WatchAssetError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viem-mapper.d.ts","sourceRoot":"","sources":["../../../src/core/errors/viem-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAU1C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,sBAAsB,EAEtB,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"viem-mapper.d.ts","sourceRoot":"","sources":["../../../src/core/errors/viem-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { ContractFunctionExecutionError, ContractFunctionRevertedError, BaseError as CoreError, EstimateGasExecutionError, TransactionExecutionError, UserRejectedRequestError, InsufficientFundsError as ViemInsufficientFundsError, } from "viem";
|
|
2
2
|
import { ContractReadError, ContractWriteError, GasEstimationError, SimulationFailedError, } from "../../core/errors/contract.js";
|
|
3
|
-
import { InsufficientFundsError,
|
|
4
|
-
import { AddChainError, ChainSwitchError, SignMessageError,
|
|
3
|
+
import { InsufficientFundsError, isLikelyUserRejectedError, UserRejectedError, } from "../../core/errors/transaction.js";
|
|
4
|
+
import { AddChainError, ChainSwitchError, SignMessageError, SignTxError, SignTypedDataError, WalletConnectionError, WatchAssetError, } from "../../wallet/index.js";
|
|
5
5
|
const REVERT_REASON_RE = /reverted with reason: (.+?)(?:\n|$)/;
|
|
6
|
+
const REVERT_REASON_STRING_RE = /reverted with reason string '(.+?)'/;
|
|
6
7
|
const REVERT_CUSTOM_ERROR_RE = /reverted with custom error '(.+?)'/;
|
|
7
8
|
const EXECUTION_REVERTED_RE = /execution reverted(?::?\s*)(.+?)(?:\n|$)/i;
|
|
9
|
+
const EXECUTION_REVERTED_GENERIC_RE = /execution reverted/i;
|
|
8
10
|
const TX_HASH_RE = /0x[a-fA-F0-9]{64}/;
|
|
9
11
|
export function isUserRejection(error) {
|
|
10
|
-
return
|
|
12
|
+
return isLikelyUserRejectedError(error) || error instanceof UserRejectedRequestError;
|
|
11
13
|
}
|
|
12
14
|
export function isInsufficientFunds(error) {
|
|
13
15
|
if (error instanceof ViemInsufficientFundsError) {
|
|
@@ -48,6 +50,10 @@ export function extractRevertReason(error) {
|
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
if (error instanceof Error) {
|
|
53
|
+
const reasonStringMatch = error.message.match(REVERT_REASON_STRING_RE);
|
|
54
|
+
if (reasonStringMatch?.[1]) {
|
|
55
|
+
return reasonStringMatch[1];
|
|
56
|
+
}
|
|
51
57
|
const execMatch = error.message.match(EXECUTION_REVERTED_RE);
|
|
52
58
|
if (execMatch?.[1]) {
|
|
53
59
|
return execMatch[1].trim();
|
|
@@ -60,10 +66,13 @@ export function extractRevertReason(error) {
|
|
|
60
66
|
if (customMatch?.[1]) {
|
|
61
67
|
return customMatch[1];
|
|
62
68
|
}
|
|
69
|
+
if (EXECUTION_REVERTED_GENERIC_RE.test(error.message)) {
|
|
70
|
+
return "execution reverted";
|
|
71
|
+
}
|
|
63
72
|
}
|
|
64
73
|
return undefined;
|
|
65
74
|
}
|
|
66
|
-
export function
|
|
75
|
+
export function isTxReplaced(error) {
|
|
67
76
|
const byExecutionError = error instanceof TransactionExecutionError
|
|
68
77
|
? getReplacementHashFromExecutionError(error)
|
|
69
78
|
: undefined;
|
|
@@ -219,7 +228,7 @@ export function classifyWalletError(error, operation, context) {
|
|
|
219
228
|
message: error instanceof Error ? error.message : "Failed to sign typed data",
|
|
220
229
|
});
|
|
221
230
|
case "signTransaction":
|
|
222
|
-
return new
|
|
231
|
+
return new SignTxError({
|
|
223
232
|
cause: error,
|
|
224
233
|
message: error instanceof Error ? error.message : "Failed to sign transaction",
|
|
225
234
|
});
|