@prb/effect-evm 1.0.0-beta.2 → 1.0.0-beta.3
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/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.js.map +1 -1
- 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.js.map +1 -1
- 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.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.js.map +1 -1
- package/dist/contract/pipeline/live.js.map +1 -1
- package/dist/contract/pipeline/service.js.map +1 -1
- package/dist/contract/pipeline/types.js.map +1 -1
- package/dist/contract/pipeline/write-and-track.js.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.js.map +1 -1
- 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.js.map +1 -1
- package/dist/eip7702/erc7579.js.map +1 -1
- package/dist/eip7702/errors.js.map +1 -1
- package/dist/eip7702/index.js.map +1 -1
- package/dist/eip7702/service.js.map +1 -1
- 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.js.map +1 -1
- package/dist/erc20/metadata.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- package/dist/events/reliable-stream.js.map +1 -1
- package/dist/events/reliable-stream.test.integration.js.map +1 -1
- package/dist/events/stream.js.map +1 -1
- package/dist/events/stream.test.integration.js.map +1 -1
- package/dist/gas/errors.js.map +1 -1
- package/dist/gas/estimator.js.map +1 -1
- package/dist/gas/index.js.map +1 -1
- package/dist/gas/service.js.map +1 -1
- package/dist/gas/service.test.integration.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- package/dist/query/contract-query.js.map +1 -1
- package/dist/query/contract-query.test.integration.js.map +1 -1
- package/dist/query/index.js.map +1 -1
- package/dist/query/multicall-batcher.js.map +1 -1
- package/dist/react-hooks/index.js.map +1 -1
- package/dist/react-hooks/use-is-safe-multisig.js.map +1 -1
- package/dist/react-hooks/use-safe-context.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/safe/adapter.js.map +1 -1
- package/dist/safe/detection.js.map +1 -1
- package/dist/safe/detection.test.integration.js.map +1 -1
- package/dist/safe/errors.js.map +1 -1
- package/dist/safe/index.js.map +1 -1
- package/dist/safe/live.js.map +1 -1
- package/dist/safe/service.js.map +1 -1
- package/dist/safe/service.test.integration.js.map +1 -1
- package/dist/safe/simulation/abis.js.map +1 -1
- package/dist/safe/simulation/addresses.js.map +1 -1
- package/dist/safe/simulation/encoding.js.map +1 -1
- package/dist/safe/simulation/errors.js.map +1 -1
- package/dist/safe/simulation/index.js.map +1 -1
- package/dist/safe/simulation/service.js.map +1 -1
- package/dist/safe/simulation/types.js.map +1 -1
- package/dist/safe/types.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.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- 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.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.js.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.js.map +1 -1
- package/dist/tx/fees.js.map +1 -1
- package/dist/tx/index.js.map +1 -1
- package/dist/tx/manager.js.map +1 -1
- package/dist/tx/manager.test.integration.js.map +1 -1
- package/dist/tx/policy.js.map +1 -1
- package/dist/tx/replacement.js.map +1 -1
- 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.js.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.js.map +1 -1
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/lifecycle.js.map +1 -1
- package/dist/wallet/operations.js.map +1 -1
- package/dist/wallet/provider-ref.js.map +1 -1
- package/dist/wallet/service.js.map +1 -1
- package/dist/wallet/types.js.map +1 -1
- package/package.json +22 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.test.integration.js","sourceRoot":"","sources":["../../src/signature/service.test.integration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.test.integration.js","sourceRoot":"","sources":["../../src/signature/service.test.integration.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from \"@effect/vitest\";\nimport { Cause, Effect, Exit } from \"effect\";\nimport type { Hex } from \"viem\";\nimport { privateKeyToAccount } from \"viem/accounts\";\nimport { mainnet } from \"viem/chains\";\nimport {\n InvalidSignatureError,\n SignatureService,\n SignatureServiceLive,\n} from \"@/src/signature/index.js\";\n\ndescribe(\"SignatureService\", () => {\n const testLayer = SignatureServiceLive;\n const account = privateKeyToAccount(\n \"0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\" as Hex\n );\n\n describe(\"hashMessage\", () => {\n it.effect(\"returns hash for string message\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const result = yield* service.hashMessage(\"Hello, world!\");\n\n expect(result).toBeDefined();\n expect(result.startsWith(\"0x\")).toBe(true);\n }).pipe(Effect.provide(testLayer))\n );\n\n it.effect(\"returns hash for Uint8Array message\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const message = new Uint8Array([72, 101, 108, 108, 111]); // \"Hello\"\n const result = yield* service.hashMessage(message);\n\n expect(result).toBeDefined();\n expect(result.startsWith(\"0x\")).toBe(true);\n }).pipe(Effect.provide(testLayer))\n );\n });\n\n describe(\"hashTypedData\", () => {\n it.effect(\"returns hash for typed data\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const result = yield* service.hashTypedData({\n domain: {\n chainId: mainnet.id,\n name: \"Test\",\n },\n message: {\n test: \"value\",\n },\n primaryType: \"Test\",\n types: {\n Test: [{ name: \"test\", type: \"string\" }],\n },\n });\n\n expect(result).toBeDefined();\n expect(result.startsWith(\"0x\")).toBe(true);\n }).pipe(Effect.provide(testLayer))\n );\n });\n\n describe(\"splitSignature\", () => {\n it.effect(\"splits valid signature into r, s, v components\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const signature =\n \"0x1234567890123456789012345678901234567890123456789012345678901234abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd1b\" as Hex;\n\n const result = yield* service.splitSignature(signature);\n\n expect(result.r).toBeDefined();\n expect(result.s).toBeDefined();\n expect(result.v).toBeDefined();\n expect(result.r.startsWith(\"0x\")).toBe(true);\n expect(result.s.startsWith(\"0x\")).toBe(true);\n expect(typeof result.v).toBe(\"bigint\");\n }).pipe(Effect.provide(testLayer))\n );\n\n it.effect(\"fails with InvalidSignatureError for invalid signature\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const exit = yield* Effect.exit(service.splitSignature(\"0xinvalid\" as Hex));\n\n expect(Exit.isFailure(exit)).toBe(true);\n if (Exit.isFailure(exit)) {\n const error = Cause.failureOption(exit.cause);\n if (error._tag === \"Some\") {\n expect(error.value).toBeInstanceOf(InvalidSignatureError);\n }\n }\n }).pipe(Effect.provide(testLayer))\n );\n });\n\n describe(\"joinSignature\", () => {\n it.effect(\"joins r, s, v into signature\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const result = yield* service.joinSignature({\n r: \"0x1234567890123456789012345678901234567890123456789012345678901234\" as Hex,\n s: \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd\" as Hex,\n v: 27n,\n });\n\n expect(result).toBeDefined();\n expect(result.startsWith(\"0x\")).toBe(true);\n expect(result.length).toBe(132); // 0x + 130 hex chars\n }).pipe(Effect.provide(testLayer))\n );\n });\n\n describe(\"verifyMessage\", () => {\n it.effect(\"returns true for valid signature\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const message = \"Hello, world!\";\n const signature = yield* Effect.promise(() =>\n account.signMessage({\n message,\n })\n );\n const result = yield* service.verifyMessage({\n address: account.address,\n message,\n signature,\n });\n\n expect(result).toBe(true);\n }).pipe(Effect.provide(testLayer))\n );\n\n it.effect(\"returns false for invalid signature\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const result = yield* service.verifyMessage({\n address: account.address,\n message: \"Hello, world!\",\n signature:\n \"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\" as Hex,\n });\n\n expect(result).toBe(false);\n }).pipe(Effect.provide(testLayer))\n );\n });\n\n describe(\"verifyTypedData\", () => {\n it.effect(\"returns true for valid typed data signature\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const domain = {\n chainId: mainnet.id,\n name: \"Test\",\n } as const;\n const types = {\n Test: [{ name: \"test\", type: \"string\" }],\n } as const;\n const message = {\n test: \"value\",\n } as const;\n\n const signature = yield* Effect.promise(() =>\n account.signTypedData({\n domain,\n message,\n primaryType: \"Test\",\n types,\n })\n );\n const result = yield* service.verifyTypedData({\n address: account.address,\n domain,\n message,\n primaryType: \"Test\",\n signature,\n types,\n });\n\n expect(result).toBe(true);\n }).pipe(Effect.provide(testLayer))\n );\n });\n\n describe(\"recoverAddress\", () => {\n it.effect(\"recovers address from message signature\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const message = \"Hello, world!\";\n const signature = yield* Effect.promise(() =>\n account.signMessage({\n message,\n })\n );\n const result = yield* service.recoverAddress({\n message,\n signature,\n });\n\n expect(result).toBe(account.address);\n }).pipe(Effect.provide(testLayer))\n );\n });\n\n describe(\"recoverTypedDataAddress\", () => {\n it.effect(\"recovers address from typed data signature\", () =>\n Effect.gen(function* () {\n const service = yield* SignatureService;\n const domain = {\n chainId: mainnet.id,\n name: \"Test\",\n } as const;\n const types = {\n Test: [{ name: \"test\", type: \"string\" }],\n } as const;\n const message = {\n test: \"value\",\n } as const;\n\n const signature = yield* Effect.promise(() =>\n account.signTypedData({\n domain,\n message,\n primaryType: \"Test\",\n types,\n })\n );\n const result = yield* service.recoverTypedDataAddress({\n domain,\n message,\n primaryType: \"Test\",\n signature,\n types,\n });\n\n expect(result).toBe(account.address);\n }).pipe(Effect.provide(testLayer))\n );\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/signature/utils.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAc,EAAW,EAAE;IAC1D,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,CAAC;AAChE,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,SAAc,EAAiC,EAAE;IAC1F,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAS,CAAC;IACzC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAS,CAAC;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAE7C,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAqC,EAAO,EAAE;IAC/E,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEjD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAS,CAAC;AACjC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/signature/utils.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAc,EAAW,EAAE;IAC1D,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,CAAC;AAChE,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,SAAc,EAAiC,EAAE;IAC1F,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAS,CAAC;IACzC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAS,CAAC;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAE7C,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAqC,EAAO,EAAE;IAC/E,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEjD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAS,CAAC;AACjC,CAAC,CAAC","sourcesContent":["import type { Hex } from \"viem\";\n\n/**\n * Validates if a hex string is a valid signature (65 bytes)\n */\nexport const isValidSignature = (signature: Hex): boolean => {\n return signature.startsWith(\"0x\") && signature.length === 132; // 0x + 130 hex chars = 65 bytes\n};\n\n/**\n * Extracts signature components without validation\n */\nexport const extractSignatureComponents = (signature: Hex): { r: Hex; s: Hex; v: bigint } => {\n const sig = signature.slice(2); // Remove 0x prefix\n const r = `0x${sig.slice(0, 64)}` as Hex;\n const s = `0x${sig.slice(64, 128)}` as Hex;\n const v = BigInt(`0x${sig.slice(128, 130)}`);\n\n return { r, s, v };\n};\n\n/**\n * Constructs signature from components\n */\nexport const constructSignature = (params: { r: Hex; s: Hex; v: bigint }): Hex => {\n const r = params.r.slice(2);\n const s = params.s.slice(2);\n const v = params.v.toString(16).padStart(2, \"0\");\n\n return `0x${r}${s}${v}` as Hex;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/simulation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,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;CACvB,CAAC;CAAG;AAEL,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,kBAAkB,EAAE;IAC/F,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC,MAAM;CAC1B,CAAC;CAAG;AAEL,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC,WAAW,EAA0B,CACtF,wBAAwB,EACxB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CAC3C,CACF;CAAG;AAEJ,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,WAAW,EAA8B,CAC9F,4BAA4B,EAC5B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;CAC3C,CACF;CAAG"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/simulation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,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;CACvB,CAAC;CAAG;AAEL,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,kBAAkB,EAAE;IAC/F,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC,MAAM;CAC1B,CAAC;CAAG;AAEL,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC,WAAW,EAA0B,CACtF,wBAAwB,EACxB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CAC3C,CACF;CAAG;AAEJ,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,WAAW,EAA8B,CAC9F,4BAA4B,EAC5B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;CAC3C,CACF;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\nexport class SimulationError extends Schema.TaggedError<SimulationError>()(\"SimulationError\", {\n cause: Schema.optional(Schema.Unknown),\n message: Schema.String,\n}) {}\n\nexport class TenderlyApiError extends Schema.TaggedError<TenderlyApiError>()(\"TenderlyApiError\", {\n message: Schema.String,\n response: Schema.optional(Schema.Unknown),\n statusCode: Schema.Number,\n}) {}\n\nexport class TenderlyRateLimitError extends Schema.TaggedError<TenderlyRateLimitError>()(\n \"TenderlyRateLimitError\",\n {\n message: Schema.String,\n retryAfter: Schema.optional(Schema.Number),\n }\n) {}\n\nexport class TenderlyNotConfiguredError extends Schema.TaggedError<TenderlyNotConfiguredError>()(\n \"TenderlyNotConfiguredError\",\n {\n message: Schema.String,\n missingConfig: Schema.Array(Schema.String),\n }\n) {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC","sourcesContent":["export * from \"./errors.js\";\nexport * from \"./service.js\";\nexport * from \"./tenderly.js\";\nexport * from \"./types.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/simulation/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/simulation/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AASxD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAQrD,SAAS,uBAAuB,CAAC,MAAwB;IACvD,OAAO;QACL,gBAAgB,CAAC,MAAM,CAAC;QACxB,aAAa,CAAC,MAAM,CAAC;QACrB,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAC3B,GAAG,sBAAsB,CAAC,MAAM,CAAC;QACjC,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,GAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC;QACzC,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;KAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAwB;IAChD,OAAO,WAAW,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,aAAa,CAAC,MAAwB;IAC7C,MAAM,UAAU,GACd,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChG,OAAO,QAAQ,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,UAAU,GAAG,CAAC;AACzG,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAwB;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAwB;IACtD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,iBAAiB,EAAE,CAAC;YAC9B,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC,cAAc,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,IAA8B;IACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,EAAE,EAAE,WAAW,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,SAAS;QACX,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAwC;IACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,EAAE,EAAE,kBAAkB,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IACrE,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,KAAK,KAAK,2BAA2B,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAMD,SAAS,oBAAoB,CAAC,IAAe,EAAE,MAAc;IAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7D,OAAO;QACL,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,GAAG,QAAQ,GAAG,QAAQ,EAAE;QACvE,GAAG,MAAM,UAAU,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE;KAClF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAuB,EACvB,QAA0C,EAC1C,MAAc;IAEd,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO;IACT,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAuB,EAAE,KAA2B;IAC9E,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAgC;IACxD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEjC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AA4BD,MAAM,OAAO,iBAAkB,SAAQ,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAGxE;CAAG;AAEN,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAC/C,iBAAiB,EACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IAChD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEzE,OAAO;QACL,kBAAkB,EAAE,CAAC,MAAwB,EAAE,IAAU,EAAE,EAAE,CAC3D,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEpD,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CACnB,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAC/B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,mBAAmB,EAAE;YAC7C,UAAU,EAAE;gBACV,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE;gBAC3B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE;aAChC;SACF,CAAC,CACH;QAEH,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,sBAAsB,CAAC,MAAM,CAAC,CAAC,IAAI,CACjC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAC/B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,0BAA0B,EAAE;YACpD,UAAU,EAAE;gBACV,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM;aAC7C;SACF,CAAC,CACH;KACJ,CAAC;AACJ,CAAC,CAAC,CACH,CAAC","sourcesContent":["import { HttpClient } from \"@effect/platform\";\nimport { Context, Effect, Layer } from \"effect\";\nimport type { Abi, Address, Hex } from \"viem\";\nimport { formatEther } from \"viem\";\nimport { formatPercent } from \"@/src/internal/index.js\";\nimport type {\n SimulationError,\n SimulationResult,\n StateOverride,\n TenderlyApiError,\n TenderlyNotConfiguredError,\n TenderlyRateLimitError,\n} from \"@/src/simulation/index.js\";\nimport { simulateBundleTenderly, simulateTenderly } from \"@/src/simulation/index.js\";\nimport { SpanNames } from \"@/src/telemetry/index.js\";\n\ntype TenderlyErrors =\n | SimulationError\n | TenderlyApiError\n | TenderlyNotConfiguredError\n | TenderlyRateLimitError;\n\nfunction formatSimulationSummary(result: SimulationResult): string {\n return [\n formatStatusLine(result),\n formatGasLine(result),\n ...formatErrorLines(result),\n ...formatReturnValueLines(result),\n ...formatLogsLines(result.logs),\n ...formatStateDiffLines(result.stateDiff),\n ...formatTraceLines(result.trace),\n ].join(\"\\n\");\n}\n\nfunction formatStatusLine(result: SimulationResult): string {\n return `Status: ${result.success ? \"✓ Success\" : \"✗ Failed\"}`;\n}\n\nfunction formatGasLine(result: SimulationResult): string {\n const gasPercent =\n result.gasLimit > 0n ? formatPercent(Number(result.gasUsed) / Number(result.gasLimit)) : \"0%\";\n return `Gas: ${result.gasUsed.toLocaleString()} / ${result.gasLimit.toLocaleString()} (${gasPercent})`;\n}\n\nfunction formatErrorLines(result: SimulationResult): readonly string[] {\n const lines: string[] = [];\n if (result.error) {\n lines.push(`Error: ${result.error}`);\n }\n if (result.revertReason) {\n lines.push(`Revert Reason: ${result.revertReason}`);\n }\n return lines;\n}\n\nfunction formatReturnValueLines(result: SimulationResult): readonly string[] {\n return result.returnValue ? [`Return Value: ${result.returnValue}`] : [];\n}\n\nfunction formatLogArgValue(value: unknown): string {\n if (typeof value === \"bigint\") {\n if (value > 1000000000000000n) {\n return `${formatEther(value)} ETH`;\n }\n return value.toLocaleString();\n }\n return String(value);\n}\n\nfunction formatLogsLines(logs: SimulationResult[\"logs\"]): readonly string[] {\n if (logs.length === 0) {\n return [];\n }\n\n const lines: string[] = [\"\", `Events (${logs.length}):`];\n for (const [i, log] of logs.entries()) {\n const index = i + 1;\n if (log.decoded) {\n lines.push(` ${index}. ${log.decoded.eventName}`);\n for (const [key, value] of Object.entries(log.decoded.args)) {\n lines.push(` ${key}: ${formatLogArgValue(value)}`);\n }\n continue;\n }\n\n lines.push(` ${index}. Log at ${log.address}`);\n lines.push(` Topics: ${log.topics.length}`);\n }\n\n return lines;\n}\n\nfunction formatStateDiffLines(stateDiff: SimulationResult[\"stateDiff\"]): readonly string[] {\n if (stateDiff.length === 0) {\n return [];\n }\n\n const byAddress = new Map<Address, number>();\n for (const diff of stateDiff) {\n byAddress.set(diff.address, (byAddress.get(diff.address) ?? 0) + 1);\n }\n\n const lines: string[] = [\"\", `State Changes (${stateDiff.length}):`];\n for (const [address, count] of byAddress) {\n lines.push(` ${address}: ${count} storage slot(s) modified`);\n }\n return lines;\n}\n\ntype Trace = NonNullable<SimulationResult[\"trace\"]>;\ntype TraceCall = Trace[number];\ntype TraceStackItem = { readonly call: TraceCall; readonly indent: number };\n\nfunction formatTraceCallLines(call: TraceCall, indent: number): readonly string[] {\n const spaces = \" \".repeat(indent);\n const valueStr = call.value > 0n ? ` {${formatEther(call.value)} ETH}` : \"\";\n const errorStr = call.error ? ` [ERROR: ${call.error}]` : \"\";\n\n return [\n `${spaces}${call.type} ${call.from} → ${call.to}${valueStr}${errorStr}`,\n `${spaces} Gas: ${call.gasUsed.toLocaleString()} / ${call.gas.toLocaleString()}`,\n ];\n}\n\nfunction pushTraceChildren(\n stack: TraceStackItem[],\n children: readonly TraceCall[] | undefined,\n indent: number\n): void {\n if (!children || children.length === 0) {\n return;\n }\n\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i];\n if (child) {\n stack.push({ call: child, indent });\n }\n }\n}\n\nfunction pushTraceRootCalls(stack: TraceStackItem[], trace: readonly TraceCall[]): void {\n for (let i = trace.length - 1; i >= 0; i--) {\n const call = trace[i];\n if (call) {\n stack.push({ call, indent: 2 });\n }\n }\n}\n\nfunction formatTraceLines(trace: SimulationResult[\"trace\"]): readonly string[] {\n if (!trace || trace.length === 0) {\n return [];\n }\n\n const lines: string[] = [\"\", \"Call Trace:\"];\n const stack: TraceStackItem[] = [];\n pushTraceRootCalls(stack, trace);\n\n while (stack.length > 0) {\n const item = stack.pop();\n if (!item) {\n break;\n }\n lines.push(...formatTraceCallLines(item.call, item.indent));\n pushTraceChildren(stack, item.call.calls, item.indent + 2);\n }\n\n return lines;\n}\n\nexport type SimulationServiceShape = {\n readonly simulate: (params: {\n chainId: number;\n from: Address;\n to: Address;\n data?: Hex;\n value?: bigint;\n gas?: bigint;\n blockNumber?: bigint;\n stateOverrides?: StateOverride[];\n }) => Effect.Effect<SimulationResult, TenderlyErrors>;\n\n readonly simulateBundle: (params: {\n chainId: number;\n transactions: Array<{\n from: Address;\n to: Address;\n data?: Hex;\n value?: bigint;\n }>;\n blockNumber?: bigint;\n }) => Effect.Effect<SimulationResult[], TenderlyErrors>;\n\n readonly getReadableSummary: (result: SimulationResult, abi?: Abi) => Effect.Effect<string>;\n};\n\nexport class SimulationService extends Context.Tag(\"ew3/SimulationService\")<\n SimulationService,\n SimulationServiceShape\n>() {}\n\nexport const SimulationServiceLive = Layer.effect(\n SimulationService,\n Effect.gen(function* () {\n const httpClient = yield* HttpClient.HttpClient;\n const httpClientLayer = Layer.succeed(HttpClient.HttpClient, httpClient);\n\n return {\n getReadableSummary: (result: SimulationResult, _abi?: Abi) =>\n Effect.sync(() => formatSimulationSummary(result)),\n\n simulate: (params) =>\n simulateTenderly(params).pipe(\n Effect.provide(httpClientLayer),\n Effect.withSpan(SpanNames.SIMULATION_SIMULATE, {\n attributes: {\n chainId: params.chainId,\n from: params.from,\n gas: params.gas?.toString(),\n to: params.to,\n value: params.value?.toString(),\n },\n })\n ),\n\n simulateBundle: (params) =>\n simulateBundleTenderly(params).pipe(\n Effect.provide(httpClientLayer),\n Effect.withSpan(SpanNames.SIMULATION_SIMULATE_BUNDLE, {\n attributes: {\n chainId: params.chainId,\n transactionCount: params.transactions.length,\n },\n })\n ),\n };\n })\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenderly.js","sourceRoot":"","sources":["../../src/simulation/tenderly.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tenderly.js","sourceRoot":"","sources":["../../src/simulation/tenderly.ts"],"names":[],"mappings":"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","sourcesContent":["import { HttpClient, HttpClientRequest, HttpClientResponse } from \"@effect/platform\";\nimport { Config, Effect, Schema } from \"effect\";\nimport type { Address, Hex } from \"viem\";\nimport {\n SimulationError,\n TenderlyApiError,\n TenderlyNotConfiguredError,\n TenderlyRateLimitError,\n} from \"@/src/simulation/index.js\";\nimport type { SimulationResult, StateOverride, TraceCall } from \"@/src/simulation/types.ts\";\n\ntype TenderlySimulationRequest = {\n network_id: string;\n from: Address;\n to: Address;\n input?: Hex;\n value?: string;\n gas?: number;\n gas_price?: string;\n block_number?: number;\n state_objects?: Record<\n Address,\n {\n balance?: string;\n code?: Hex;\n nonce?: number;\n storage?: Record<Hex, Hex>;\n }\n >;\n save?: boolean;\n save_if_fails?: boolean;\n simulation_type?: \"quick\" | \"full\";\n};\n\ntype TenderlySimulationResponse = {\n transaction: {\n hash: Hex;\n block_number: number;\n block_hash: Hex;\n from: Address;\n to: Address;\n gas: number;\n gas_price: string;\n gas_used: number;\n cumulative_gas_used: number;\n input: Hex;\n output?: Hex;\n nonce: number;\n value: string;\n status: boolean;\n error_message?: string;\n };\n simulation: {\n id: string;\n status: boolean;\n };\n logs: Array<{\n address: Address;\n topics: Hex[];\n data: Hex;\n name?: string;\n anonymous?: boolean;\n inputs?: Array<{\n name: string;\n type: string;\n value: unknown;\n }>;\n }>;\n trace?: Array<{\n type: string;\n from: Address;\n to: Address;\n value: string;\n gas: number;\n gas_used: number;\n input: Hex;\n output?: Hex;\n error?: string;\n calls?: unknown[];\n }>;\n state_diff?: Array<{\n address: Address;\n soltype?: {\n name: string;\n type: string;\n };\n original: Hex;\n dirty: Hex;\n raw: Array<{\n key: Hex;\n original: Hex;\n dirty: Hex;\n }>;\n }>;\n};\n\nconst getTenderlyConfig = Effect.gen(function* () {\n const accessKey = yield* Config.string(\"TENDERLY_ACCESS_KEY\").pipe(\n Effect.catchAll(() => Effect.succeed(undefined))\n );\n const account = yield* Config.string(\"TENDERLY_ACCOUNT\").pipe(\n Effect.catchAll(() => Effect.succeed(undefined))\n );\n const project = yield* Config.string(\"TENDERLY_PROJECT\").pipe(\n Effect.catchAll(() => Effect.succeed(undefined))\n );\n\n const missing: string[] = [];\n if (!accessKey) {\n missing.push(\"TENDERLY_ACCESS_KEY\");\n }\n if (!account) {\n missing.push(\"TENDERLY_ACCOUNT\");\n }\n if (!project) {\n missing.push(\"TENDERLY_PROJECT\");\n }\n\n if (missing.length > 0) {\n return yield* Effect.fail(\n new TenderlyNotConfiguredError({\n message: `Missing Tenderly configuration: ${missing.join(\", \")}`,\n missingConfig: missing,\n })\n );\n }\n\n return {\n accessKey: accessKey as string,\n account: account as string,\n project: project as string,\n };\n});\n\nfunction mapTenderlyResponse(response: TenderlySimulationResponse): SimulationResult {\n const tx = response.transaction;\n\n return {\n error: tx.error_message,\n gasLimit: BigInt(tx.gas),\n gasUsed: BigInt(tx.gas_used),\n logs:\n response.logs?.map((log) => ({\n address: log.address,\n data: log.data,\n decoded: log.name\n ? {\n args:\n log.inputs?.reduce(\n (acc, input) => {\n acc[input.name] = input.value;\n return acc;\n },\n {} as Record<string, unknown>\n ) ?? {},\n eventName: log.name,\n }\n : undefined,\n topics: log.topics,\n })) ?? [],\n returnValue: tx.status ? (tx.output ?? response.trace?.[0]?.output) : undefined,\n revertReason: tx.error_message,\n stateDiff:\n response.state_diff?.flatMap((diff) =>\n diff.raw.map((raw) => ({\n address: diff.address,\n key: raw.key,\n modified: raw.dirty,\n original: raw.original,\n }))\n ) ?? [],\n success: tx.status,\n trace: response.trace ? mapTenderlyTrace(response.trace) : undefined,\n };\n}\n\nfunction mapTenderlyTrace(trace: TenderlySimulationResponse[\"trace\"]): TraceCall[] {\n if (!trace) {\n return [];\n }\n\n return trace.map((call) => ({\n calls: call.calls ? mapTenderlyTrace(call.calls as TenderlySimulationResponse[\"trace\"]) : [],\n error: call.error,\n from: call.from,\n gas: BigInt(call.gas),\n gasUsed: BigInt(call.gas_used),\n input: call.input,\n output: call.output,\n to: call.to,\n type: call.type.toUpperCase() as TraceCall[\"type\"],\n value: BigInt(call.value),\n }));\n}\n\nfunction parseRetryAfterSeconds(value: string | undefined): number | undefined {\n if (!value) {\n return;\n }\n\n const asSeconds = Number(value);\n if (Number.isFinite(asSeconds)) {\n return asSeconds;\n }\n\n const asDate = Date.parse(value);\n if (!Number.isNaN(asDate)) {\n const deltaMs = asDate - Date.now();\n return deltaMs > 0 ? Math.ceil(deltaMs / 1000) : 0;\n }\n\n return;\n}\n\nfunction toTenderlyStateObjects(\n overrides: readonly StateOverride[] | undefined\n): TenderlySimulationRequest[\"state_objects\"] | undefined {\n if (!overrides || overrides.length === 0) {\n return;\n }\n\n const stateObjects: TenderlySimulationRequest[\"state_objects\"] = {};\n for (const override of overrides) {\n stateObjects[override.address] = {\n balance: override.balance?.toString(),\n code: override.code,\n nonce: override.nonce ? Number(override.nonce) : undefined,\n storage: override.state,\n };\n }\n\n return stateObjects;\n}\n\nfunction toTenderlyRequestBody(params: {\n chainId: number;\n from: Address;\n to: Address;\n data?: Hex;\n value?: bigint;\n gas?: bigint;\n blockNumber?: bigint;\n stateOverrides?: StateOverride[];\n}): TenderlySimulationRequest {\n return {\n block_number: params.blockNumber ? Number(params.blockNumber) : undefined,\n from: params.from,\n gas: params.gas ? Number(params.gas) : undefined,\n input: params.data ?? \"0x\",\n network_id: params.chainId.toString(),\n save: false,\n save_if_fails: false,\n simulation_type: \"full\",\n state_objects: toTenderlyStateObjects(params.stateOverrides),\n to: params.to,\n value: params.value ? params.value.toString() : \"0\",\n };\n}\n\nfunction ensureTenderlyOk(response: HttpClientResponse.HttpClientResponse) {\n return Effect.gen(function* () {\n if (response.status === 429) {\n const retryAfter = parseRetryAfterSeconds(response.headers[\"retry-after\"]);\n return yield* Effect.fail(\n new TenderlyRateLimitError({\n message: \"Tenderly API rate limit exceeded\",\n retryAfter,\n })\n );\n }\n\n if (response.status < 200 || response.status >= 300) {\n const body = yield* response.json.pipe(Effect.catchAll(() => Effect.succeed(undefined)));\n return yield* Effect.fail(\n new TenderlyApiError({\n message: \"Tenderly API request failed\",\n response: body,\n statusCode: response.status,\n })\n );\n }\n });\n}\n\nexport function simulateTenderly(params: {\n chainId: number;\n from: Address;\n to: Address;\n data?: Hex;\n value?: bigint;\n gas?: bigint;\n blockNumber?: bigint;\n stateOverrides?: StateOverride[];\n}) {\n return Effect.gen(function* () {\n const config = yield* getTenderlyConfig;\n const client = yield* HttpClient.HttpClient;\n\n const url = `https://api.tenderly.co/api/v1/account/${config.account}/project/${config.project}/simulate`;\n\n const requestBody = toTenderlyRequestBody(params);\n\n const request = yield* HttpClientRequest.post(url).pipe(\n HttpClientRequest.setHeader(\"X-Access-Key\", config.accessKey),\n HttpClientRequest.setHeader(\"Content-Type\", \"application/json\"),\n HttpClientRequest.bodyJson(requestBody),\n Effect.mapError(\n () =>\n new SimulationError({\n message: \"Failed to serialize request body\",\n })\n )\n );\n\n const response = yield* client.execute(request).pipe(\n Effect.mapError(\n (cause) =>\n new SimulationError({\n cause,\n message: \"Failed to execute Tenderly request\",\n })\n )\n );\n\n yield* ensureTenderlyOk(response);\n\n const body = yield* HttpClientResponse.schemaBodyJson(Schema.Unknown)(response).pipe(\n Effect.mapError(\n (cause) =>\n new SimulationError({\n cause,\n message: \"Failed to decode Tenderly response body\",\n })\n )\n );\n\n return mapTenderlyResponse(body as TenderlySimulationResponse);\n });\n}\n\nexport function simulateBundleTenderly(params: {\n chainId: number;\n transactions: Array<{\n from: Address;\n to: Address;\n data?: Hex;\n value?: bigint;\n }>;\n blockNumber?: bigint;\n}) {\n return Effect.gen(function* () {\n // Tenderly doesn't have a native bundle simulation endpoint\n // We simulate each transaction sequentially with state carryover\n const results: SimulationResult[] = [];\n const stateOverrides: StateOverride[] = [];\n\n for (const tx of params.transactions) {\n const result = yield* simulateTenderly({\n blockNumber: params.blockNumber,\n chainId: params.chainId,\n data: tx.data,\n from: tx.from,\n stateOverrides,\n to: tx.to,\n value: tx.value,\n });\n\n results.push(result);\n\n // Carry state changes forward\n // This is a simplified approach - in production you'd want more sophisticated state tracking\n for (const diff of result.stateDiff) {\n const existingOverride = stateOverrides.find((o) => o.address === diff.address);\n if (existingOverride) {\n existingOverride.state = {\n ...existingOverride.state,\n [diff.key]: diff.modified,\n };\n } else {\n stateOverrides.push({\n address: diff.address,\n state: {\n [diff.key]: diff.modified,\n },\n });\n }\n }\n }\n\n return results;\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenderly.test.integration.js","sourceRoot":"","sources":["../../src/simulation/tenderly.test.integration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tenderly.test.integration.js","sourceRoot":"","sources":["../../src/simulation/tenderly.test.integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAC3C,IAAI,GAAG,CAAC;IACN,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;IAC1C,CAAC,kBAAkB,EAAE,cAAc,CAAC;IACpC,CAAC,kBAAkB,EAAE,cAAc,CAAC;CACrC,CAAC,CACH,CAAC;AAEF,MAAM,SAAS,GAAG,4CAAuD,CAAC;AAC1E,MAAM,OAAO,GAAG,4CAAuD,CAAC;AAExE,MAAM,uBAAuB,GAAG,CAAC,MAIhC,EAAE,EAAE;IACH,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,CAAC,OAA4C,EAAE,EAAE,CACxD,MAAM,CAAC,OAAO,CACZ,kBAAkB,CAAC,OAAO,CACxB,OAAO,EACP,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACxC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CACH,CACF;KACgC,CAAC;IAEtC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,MAAM,CAAC,sDAAsD,EAAE,GAAG,EAAE,CACrE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,KAAK,GAAG,uBAAuB,CAAC;YACpC,IAAI,EAAE;gBACJ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;gBACzC,WAAW,EAAE;oBACX,UAAU,EAAE,oEAAoE;oBAChF,YAAY,EAAE,GAAG;oBACjB,mBAAmB,EAAE,MAAM;oBAC3B,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,GAAG;oBACd,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,oEAAoE;oBAC1E,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,IAAI;oBACZ,EAAE,EAAE,OAAO;oBACX,KAAK,EAAE,GAAG;iBACX;aACF;YACD,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;YACrC,OAAO,EAAE,OAAO,CAAC,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,OAAO;SACZ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;IACnD,CAAC,CAAC,CACH,CAAC;IAEF,EAAE,CAAC,MAAM,CAAC,qDAAqD,EAAE,GAAG,EAAE,CACpE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,KAAK,GAAG,uBAAuB,CAAC;YACpC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;YAC/B,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;YACjC,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;YACnC,OAAO,EAAE,OAAO,CAAC,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,OAAO;SACZ,CAAC;aACC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAErB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;gBAChE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,YAAY,sBAAsB,EAAE,CAAC;oBACvD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,EAAE,CAAC,MAAM,CAAC,gEAAgE,EAAE,GAAG,EAAE,CAC/E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,KAAK,GAAG,uBAAuB,CAAC;YACpC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACxB,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;YACnC,OAAO,EAAE,OAAO,CAAC,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,OAAO;SACZ,CAAC;aACC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAErB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAC1D,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,YAAY,gBAAgB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import type { HttpClientRequest } from \"@effect/platform\";\nimport { HttpClient, HttpClientResponse } from \"@effect/platform\";\nimport { describe, expect, it } from \"@effect/vitest\";\nimport { ConfigProvider, Effect, Exit, Layer } from \"effect\";\nimport type { Address, Hex } from \"viem\";\nimport { mainnet } from \"viem/chains\";\nimport {\n simulateTenderly,\n TenderlyApiError,\n TenderlyRateLimitError,\n} from \"@/src/simulation/index.js\";\n\nconst configProvider = ConfigProvider.fromMap(\n new Map([\n [\"TENDERLY_ACCESS_KEY\", \"test-access-key\"],\n [\"TENDERLY_ACCOUNT\", \"test-account\"],\n [\"TENDERLY_PROJECT\", \"test-project\"],\n ])\n);\n\nconst TEST_FROM = \"0x1234567890123456789012345678901234567890\" as Address;\nconst TEST_TO = \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\" as Address;\n\nconst makeMockHttpClientLayer = (params: {\n status: number;\n body: unknown;\n headers?: Record<string, string>;\n}) => {\n const client = {\n execute: (request: HttpClientRequest.HttpClientRequest) =>\n Effect.succeed(\n HttpClientResponse.fromWeb(\n request,\n new Response(JSON.stringify(params.body), {\n headers: params.headers,\n status: params.status,\n })\n )\n ),\n } as unknown as HttpClient.HttpClient;\n\n return Layer.succeed(HttpClient.HttpClient, client);\n};\n\ndescribe(\"Tenderly simulation\", () => {\n it.effect(\"maps returnValue from transaction.output (not input)\", () =>\n Effect.gen(function* () {\n const layer = makeMockHttpClientLayer({\n body: {\n logs: [],\n simulation: { id: \"sim_1\", status: true },\n transaction: {\n block_hash: \"0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef\",\n block_number: 123,\n cumulative_gas_used: 21_000,\n from: TEST_FROM,\n gas: 50_000,\n gas_price: \"1\",\n gas_used: 21_000,\n hash: \"0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef\",\n input: \"0x1234\",\n nonce: 0,\n output: \"0xabcd\",\n status: true,\n to: TEST_TO,\n value: \"0\",\n },\n },\n status: 200,\n });\n\n const result = yield* simulateTenderly({\n chainId: mainnet.id,\n from: TEST_FROM,\n to: TEST_TO,\n }).pipe(Effect.withConfigProvider(configProvider), Effect.provide(layer));\n\n expect(result.success).toBe(true);\n expect(result.returnValue).toBe(\"0xabcd\" as Hex);\n })\n );\n\n it.effect(\"fails 429 as TenderlyRateLimitError with retryAfter\", () =>\n Effect.gen(function* () {\n const layer = makeMockHttpClientLayer({\n body: { error: \"rate limited\" },\n headers: { \"Retry-After\": \"120\" },\n status: 429,\n });\n\n const exit = yield* simulateTenderly({\n chainId: mainnet.id,\n from: TEST_FROM,\n to: TEST_TO,\n })\n .pipe(Effect.withConfigProvider(configProvider), Effect.provide(layer))\n .pipe(Effect.exit);\n\n expect(Exit.isFailure(exit)).toBe(true);\n if (Exit.isFailure(exit)) {\n expect(exit.cause._tag).toBe(\"Fail\");\n if (exit.cause._tag === \"Fail\") {\n expect(exit.cause.error).toBeInstanceOf(TenderlyRateLimitError);\n if (exit.cause.error instanceof TenderlyRateLimitError) {\n expect(exit.cause.error.retryAfter).toBe(120);\n }\n }\n }\n })\n );\n\n it.effect(\"fails non-2xx as TenderlyApiError with statusCode and response\", () =>\n Effect.gen(function* () {\n const layer = makeMockHttpClientLayer({\n body: { message: \"bad\" },\n status: 500,\n });\n\n const exit = yield* simulateTenderly({\n chainId: mainnet.id,\n from: TEST_FROM,\n to: TEST_TO,\n })\n .pipe(Effect.withConfigProvider(configProvider), Effect.provide(layer))\n .pipe(Effect.exit);\n\n expect(Exit.isFailure(exit)).toBe(true);\n if (Exit.isFailure(exit)) {\n expect(exit.cause._tag).toBe(\"Fail\");\n if (exit.cause._tag === \"Fail\") {\n expect(exit.cause.error).toBeInstanceOf(TenderlyApiError);\n if (exit.cause.error instanceof TenderlyApiError) {\n expect(exit.cause.error.statusCode).toBe(500);\n expect(exit.cause.error.response).toEqual({ message: \"bad\" });\n }\n }\n }\n })\n );\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/simulation/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/simulation/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Address, Hex } from \"viem\";\n\nexport type SimulatedLog = {\n address: Address;\n topics: Hex[];\n data: Hex;\n decoded?: {\n eventName: string;\n args: Record<string, unknown>;\n };\n};\n\nexport type StateDiff = {\n address: Address;\n key: Hex;\n original: Hex;\n modified: Hex;\n};\n\nexport type TraceCall = {\n type: \"CALL\" | \"DELEGATECALL\" | \"STATICCALL\" | \"CREATE\" | \"CREATE2\";\n from: Address;\n to: Address;\n value: bigint;\n gas: bigint;\n gasUsed: bigint;\n input: Hex;\n output?: Hex;\n error?: string;\n calls?: TraceCall[];\n};\n\nexport type SimulationResult = {\n success: boolean;\n gasUsed: bigint;\n gasLimit: bigint;\n returnValue?: Hex;\n error?: string;\n revertReason?: string;\n logs: SimulatedLog[];\n stateDiff: StateDiff[];\n trace?: TraceCall[];\n};\n\nexport type StateOverride = {\n address: Address;\n balance?: bigint;\n nonce?: bigint;\n code?: Hex;\n state?: Record<Hex, Hex>;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-subscription.js","sourceRoot":"","sources":["../../src/subscriptions/block-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,WAAW,CACzB,mBAA6C,EAC7C,MAIC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,iBAAiB,CAAkC;YAChE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,IAAI,wBAAwB,CAAC;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,uCAAuC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;gBAClF,gBAAgB,EAAE,QAAQ;aAC3B,CAAC;YACJ,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACZ,MAAM,CAAC,WAAW,CAAC;gBACjB,WAAW,EAAE,IAAI;gBACjB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,KAAK;gBACxD,OAAO,EAAE,EAAE,CAAC,MAAM;gBAClB,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;SACL,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,yBAAyB,EAAE;QACnD,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,KAAK;YACxD,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"block-subscription.js","sourceRoot":"","sources":["../../src/subscriptions/block-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,WAAW,CACzB,mBAA6C,EAC7C,MAIC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,iBAAiB,CAAkC;YAChE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,IAAI,wBAAwB,CAAC;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,uCAAuC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;gBAClF,gBAAgB,EAAE,QAAQ;aAC3B,CAAC;YACJ,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACZ,MAAM,CAAC,WAAW,CAAC;gBACjB,WAAW,EAAE,IAAI;gBACjB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,KAAK;gBACxD,OAAO,EAAE,EAAE,CAAC,MAAM;gBAClB,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;SACL,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,yBAAyB,EAAE;QACnD,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,KAAK;YACxD,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC;KACF,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { Effect } from \"effect\";\nimport type { Block } from \"viem\";\nimport type { PublicClientServiceShape } from \"@/src/core/index.js\";\nimport { fromWatchCallback } from \"@/src/internal/index.js\";\nimport { SpanNames } from \"@/src/telemetry/index.js\";\nimport { SubscriptionDroppedError } from \"./errors.js\";\n\nexport function watchBlocks(\n publicClientService: PublicClientServiceShape,\n params: {\n chainId: number;\n includeTransactions?: boolean;\n pollingInterval?: number;\n }\n) {\n return Effect.gen(function* () {\n const client = yield* publicClientService.get(params.chainId);\n\n const stream = fromWatchCallback<Block, SubscriptionDroppedError>({\n mapError: (error) =>\n new SubscriptionDroppedError({\n chainId: params.chainId,\n message: `Block subscription dropped on chain ${params.chainId}: ${String(error)}`,\n subscriptionType: \"blocks\",\n }),\n watch: (cb) =>\n client.watchBlocks({\n emitOnBegin: true,\n includeTransactions: params.includeTransactions ?? false,\n onBlock: cb.onData,\n onError: cb.onError,\n pollingInterval: params.pollingInterval,\n }),\n });\n\n return stream;\n }).pipe(\n Effect.withSpan(SpanNames.SUBSCRIPTION_WATCH_BLOCKS, {\n attributes: {\n chainId: params.chainId,\n includeTransactions: params.includeTransactions ?? false,\n pollingInterval: params.pollingInterval,\n },\n })\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/subscriptions/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,EAAiC,CACpG,+BAA+B,EAC/B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM;CAChC,CACF;CAAG;AAEJ,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM;CAChC,CACF;CAAG"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/subscriptions/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,EAAiC,CACpG,+BAA+B,EAC/B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM;CAChC,CACF;CAAG;AAEJ,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM;CAChC,CACF;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\nexport class SubscriptionNotSupportedError extends Schema.TaggedError<SubscriptionNotSupportedError>()(\n \"SubscriptionNotSupportedError\",\n {\n chainId: Schema.Number,\n message: Schema.String,\n subscriptionType: Schema.String,\n }\n) {}\n\nexport class SubscriptionDroppedError extends Schema.TaggedError<SubscriptionDroppedError>()(\n \"SubscriptionDroppedError\",\n {\n chainId: Schema.Number,\n message: Schema.String,\n subscriptionType: Schema.String,\n }\n) {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/subscriptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/subscriptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./block-subscription.js\";\nexport * from \"./errors.js\";\nexport * from \"./log-subscription.js\";\nexport * from \"./pending-tx.js\";\nexport * from \"./service.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-subscription.js","sourceRoot":"","sources":["../../src/subscriptions/log-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,SAAS,CACvB,mBAA6C,EAC7C,MAKC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,iBAAiB,CAAgC;YAC9D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,IAAI,wBAAwB,CAAC;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,qCAAqC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;gBAChF,gBAAgB,EAAE,MAAM;aACzB,CAAC;YACJ,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACZ,MAAM,CAAC,UAAU,CAAC;gBAChB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC;gBACD,eAAe,EAAE,MAAM,CAAC,eAAe;gBAEvC,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;SACL,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,EAAE;QACjD,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"log-subscription.js","sourceRoot":"","sources":["../../src/subscriptions/log-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,SAAS,CACvB,mBAA6C,EAC7C,MAKC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,iBAAiB,CAAgC;YAC9D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,IAAI,wBAAwB,CAAC;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,qCAAqC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;gBAChF,gBAAgB,EAAE,MAAM;aACzB,CAAC;YACJ,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACZ,MAAM,CAAC,UAAU,CAAC;gBAChB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC;gBACD,eAAe,EAAE,MAAM,CAAC,eAAe;gBAEvC,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;SACL,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,EAAE;QACjD,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC;KACF,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { Effect } from \"effect\";\nimport type { Address, Hex, Log } from \"viem\";\nimport type { PublicClientServiceShape } from \"@/src/core/index.js\";\nimport { fromWatchCallback } from \"@/src/internal/index.js\";\nimport { SpanNames } from \"@/src/telemetry/index.js\";\nimport { SubscriptionDroppedError } from \"./errors.js\";\n\nexport function watchLogs(\n publicClientService: PublicClientServiceShape,\n params: {\n chainId: number;\n address?: Address | Address[];\n topics?: (Hex | Hex[] | null)[];\n pollingInterval?: number;\n }\n) {\n return Effect.gen(function* () {\n const client = yield* publicClientService.get(params.chainId);\n\n const stream = fromWatchCallback<Log, SubscriptionDroppedError>({\n mapError: (error) =>\n new SubscriptionDroppedError({\n chainId: params.chainId,\n message: `Log subscription dropped on chain ${params.chainId}: ${String(error)}`,\n subscriptionType: \"logs\",\n }),\n watch: (cb) =>\n client.watchEvent({\n address: params.address,\n onError: cb.onError,\n onLogs: (logs) => {\n for (const log of logs) {\n cb.onData(log);\n }\n },\n pollingInterval: params.pollingInterval,\n // @ts-expect-error - topics type is compatible\n topics: params.topics,\n }),\n });\n\n return stream;\n }).pipe(\n Effect.withSpan(SpanNames.SUBSCRIPTION_WATCH_LOGS, {\n attributes: {\n address: params.address,\n chainId: params.chainId,\n pollingInterval: params.pollingInterval,\n },\n })\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-tx.js","sourceRoot":"","sources":["../../src/subscriptions/pending-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAEtF,MAAM,UAAU,wBAAwB,CACtC,mBAA6C,EAC7C,MAGC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAG9D,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,6BAA6B,CAAC;gBAChC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,+DAA+D;gBACxE,gBAAgB,EAAE,qBAAqB;aACxC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAiC;YAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,IAAI,wBAAwB,CAAC;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,qDAAqD,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;gBAChG,gBAAgB,EAAE,qBAAqB;aACxC,CAAC;YACJ,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACZ,MAAM,CAAC,wBAAwB,CAAC;gBAC9B,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;oBACzB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;wBAC1B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;gBACD,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;SACL,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,6BAA6B,EAAE;QACvD,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"pending-tx.js","sourceRoot":"","sources":["../../src/subscriptions/pending-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAEtF,MAAM,UAAU,wBAAwB,CACtC,mBAA6C,EAC7C,MAGC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAG9D,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,6BAA6B,CAAC;gBAChC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,+DAA+D;gBACxE,gBAAgB,EAAE,qBAAqB;aACxC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAiC;YAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,IAAI,wBAAwB,CAAC;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,qDAAqD,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;gBAChG,gBAAgB,EAAE,qBAAqB;aACxC,CAAC;YACJ,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACZ,MAAM,CAAC,wBAAwB,CAAC;gBAC9B,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;oBACzB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;wBAC1B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;gBACD,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;SACL,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,6BAA6B,EAAE;QACvD,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC;KACF,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { Effect } from \"effect\";\nimport type { Hash } from \"viem\";\nimport type { PublicClientServiceShape } from \"@/src/core/index.js\";\nimport { fromWatchCallback } from \"@/src/internal/index.js\";\nimport { SpanNames } from \"@/src/telemetry/index.js\";\nimport { SubscriptionDroppedError, SubscriptionNotSupportedError } from \"./errors.js\";\n\nexport function watchPendingTransactions(\n publicClientService: PublicClientServiceShape,\n params: {\n chainId: number;\n pollingInterval?: number;\n }\n) {\n return Effect.gen(function* () {\n const client = yield* publicClientService.get(params.chainId);\n\n // Check if WebSocket is available - pending tx subscriptions typically require it\n if (client.transport.type !== \"webSocket\") {\n return yield* Effect.fail(\n new SubscriptionNotSupportedError({\n chainId: params.chainId,\n message: \"Pending transaction subscriptions require WebSocket transport\",\n subscriptionType: \"pendingTransactions\",\n })\n );\n }\n\n const stream = fromWatchCallback<Hash, SubscriptionDroppedError>({\n mapError: (error) =>\n new SubscriptionDroppedError({\n chainId: params.chainId,\n message: `Pending transaction subscription dropped on chain ${params.chainId}: ${String(error)}`,\n subscriptionType: \"pendingTransactions\",\n }),\n watch: (cb) =>\n client.watchPendingTransactions({\n onError: cb.onError,\n onTransactions: (hashes) => {\n for (const hash of hashes) {\n cb.onData(hash);\n }\n },\n pollingInterval: params.pollingInterval,\n }),\n });\n\n return stream;\n }).pipe(\n Effect.withSpan(SpanNames.SUBSCRIPTION_WATCH_PENDING_TX, {\n attributes: {\n chainId: params.chainId,\n pollingInterval: params.pollingInterval,\n },\n })\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/subscriptions/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/subscriptions/service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer, Stream, SubscriptionRef } from \"effect\";\nimport type { Address, Block, Hash, Hex, Log } from \"viem\";\nimport { DEFAULT_MAX_DELAY, DEFAULT_SUBSCRIPTION_BASE_DELAY } from \"@/src/constants/index.js\";\nimport type { ClientNotFoundError } from \"@/src/core/index.js\";\nimport { PublicClientService } from \"@/src/core/index.js\";\nimport { makeBackoffSchedule } from \"@/src/internal/index.js\";\nimport { watchBlocks } from \"./block-subscription.js\";\nimport type { SubscriptionDroppedError, SubscriptionNotSupportedError } from \"./errors.js\";\nimport { watchLogs } from \"./log-subscription.js\";\nimport { watchPendingTransactions } from \"./pending-tx.js\";\n\nexport type SubscriptionRetryConfig = {\n /**\n * Base delay in milliseconds for exponential backoff (default: 500ms)\n */\n readonly baseDelay?: number;\n /**\n * Maximum delay in milliseconds between retries (default: 30s)\n */\n readonly maxDelay?: number;\n /**\n * Add jitter to retry delays (default: true)\n */\n readonly jitter?: boolean;\n};\n\nexport type SubscriptionConnectionState =\n | { status: \"connecting\" }\n | { status: \"connected\" }\n | { status: \"retrying\"; error: SubscriptionDroppedError };\n\nexport type RetryingSubscriptionStream<A> = {\n readonly stateRef: SubscriptionRef.SubscriptionRef<SubscriptionConnectionState>;\n readonly stream: Stream.Stream<A, never>;\n};\n\nconst makeSubscriptionRetrySchedule = (config?: SubscriptionRetryConfig) =>\n makeBackoffSchedule({\n baseDelay: config?.baseDelay ?? DEFAULT_SUBSCRIPTION_BASE_DELAY,\n jitter: config?.jitter ?? true,\n maxDelay: config?.maxDelay ?? DEFAULT_MAX_DELAY,\n maxRetries: Number.POSITIVE_INFINITY, // subscriptions retry forever\n });\n\nconst neverStream = <A>(): Stream.Stream<A, never> => Stream.async(() => Effect.never);\n\nexport type SubscriptionServiceShape = {\n readonly watchBlocks: (params: {\n chainId: number;\n includeTransactions?: boolean;\n pollingInterval?: number;\n }) => Effect.Effect<Stream.Stream<Block, SubscriptionDroppedError>, ClientNotFoundError>;\n\n readonly watchLogs: (params: {\n chainId: number;\n address?: Address | Address[];\n topics?: (Hex | Hex[] | null)[];\n pollingInterval?: number;\n }) => Effect.Effect<Stream.Stream<Log, SubscriptionDroppedError>, ClientNotFoundError>;\n\n readonly watchPendingTransactions: (params: {\n chainId: number;\n pollingInterval?: number;\n }) => Effect.Effect<\n Stream.Stream<Hash, SubscriptionDroppedError>,\n SubscriptionNotSupportedError | ClientNotFoundError\n >;\n\n readonly watchBlocksRetrying: (params: {\n chainId: number;\n includeTransactions?: boolean;\n pollingInterval?: number;\n retry?: SubscriptionRetryConfig;\n }) => Effect.Effect<RetryingSubscriptionStream<Block>, ClientNotFoundError>;\n\n readonly watchLogsRetrying: (params: {\n chainId: number;\n address?: Address | Address[];\n topics?: (Hex | Hex[] | null)[];\n pollingInterval?: number;\n retry?: SubscriptionRetryConfig;\n }) => Effect.Effect<RetryingSubscriptionStream<Log>, ClientNotFoundError>;\n\n readonly watchPendingTransactionsRetrying: (params: {\n chainId: number;\n pollingInterval?: number;\n retry?: SubscriptionRetryConfig;\n }) => Effect.Effect<\n RetryingSubscriptionStream<Hash>,\n SubscriptionNotSupportedError | ClientNotFoundError\n >;\n\n readonly hasWebSocket: (chainId: number) => Effect.Effect<boolean, ClientNotFoundError>;\n};\n\nexport class SubscriptionService extends Context.Tag(\"ew3/SubscriptionService\")<\n SubscriptionService,\n SubscriptionServiceShape\n>() {}\n\nexport const SubscriptionServiceLive = Layer.effect(\n SubscriptionService,\n Effect.gen(function* () {\n const publicClientService = yield* PublicClientService;\n\n return {\n hasWebSocket: (chainId) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(chainId);\n // Check if transport is WebSocket-based\n return client.transport.type === \"webSocket\";\n }),\n watchBlocks: (params) => watchBlocks(publicClientService, params),\n\n watchBlocksRetrying: (params) =>\n Effect.gen(function* () {\n const stateRef = yield* SubscriptionRef.make<SubscriptionConnectionState>({\n status: \"connecting\",\n });\n\n const { retry, ...watchParams } = params;\n const schedule = makeSubscriptionRetrySchedule(retry);\n const stream = (yield* watchBlocks(publicClientService, watchParams)).pipe(\n Stream.onStart(SubscriptionRef.set(stateRef, { status: \"connected\" })),\n Stream.tapError((error) =>\n SubscriptionRef.set(stateRef, { error, status: \"retrying\" })\n ),\n Stream.retry(schedule),\n Stream.catchAll(() => neverStream<Block>())\n );\n\n return { stateRef, stream };\n }),\n\n watchLogs: (params) => watchLogs(publicClientService, params),\n\n watchLogsRetrying: (params) =>\n Effect.gen(function* () {\n const stateRef = yield* SubscriptionRef.make<SubscriptionConnectionState>({\n status: \"connecting\",\n });\n\n const { retry, ...watchParams } = params;\n const schedule = makeSubscriptionRetrySchedule(retry);\n const stream = (yield* watchLogs(publicClientService, watchParams)).pipe(\n Stream.onStart(SubscriptionRef.set(stateRef, { status: \"connected\" })),\n Stream.tapError((error) =>\n SubscriptionRef.set(stateRef, { error, status: \"retrying\" })\n ),\n Stream.retry(schedule),\n Stream.catchAll(() => neverStream<Log>())\n );\n\n return { stateRef, stream };\n }),\n\n watchPendingTransactions: (params) => watchPendingTransactions(publicClientService, params),\n\n watchPendingTransactionsRetrying: (params) =>\n Effect.gen(function* () {\n const stateRef = yield* SubscriptionRef.make<SubscriptionConnectionState>({\n status: \"connecting\",\n });\n\n const { retry, ...watchParams } = params;\n const schedule = makeSubscriptionRetrySchedule(retry);\n const stream = (yield* watchPendingTransactions(publicClientService, watchParams)).pipe(\n Stream.onStart(SubscriptionRef.set(stateRef, { status: \"connected\" })),\n Stream.tapError((error) =>\n SubscriptionRef.set(stateRef, { error, status: \"retrying\" })\n ),\n Stream.retry(schedule),\n Stream.catchAll(() => neverStream<Hash>())\n );\n\n return { stateRef, stream };\n }),\n };\n })\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./logger.js\";\nexport * from \"./tracer.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/telemetry/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAI/B,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAKhC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgE,EAAE,EAAE,CACjG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAIhC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAA6C,EAAE,EAAE,CACxE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/telemetry/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAI/B,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAKhC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgE,EAAE,EAAE,CACjG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAIhC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAA6C,EAAE,EAAE,CACxE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC","sourcesContent":["import { Effect } from \"effect\";\n\n/**\n * Log levels for different operations\n */\nexport const logContractRead = (params: {\n address: string;\n functionName: string;\n chainId: number;\n}) => Effect.logDebug(\"Contract read\", params);\n\nexport const logContractWrite = (params: {\n address: string;\n functionName: string;\n chainId: number;\n hash?: string;\n}) => Effect.logInfo(\"Contract write\", params);\n\nexport const logTxLifecycle = (params: { hash: string; status: string; confirmations?: number }) =>\n Effect.logDebug(\"Transaction lifecycle\", params);\n\nexport const logEventReceived = (params: {\n eventName: string;\n address: string;\n blockNumber: bigint;\n}) => Effect.logDebug(\"Event received\", params);\n\nexport const logError = (params: { operation: string; error: unknown }) =>\n Effect.logError(\"Operation failed\", params);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,MAAM,CAAC,MAAM,QAAQ,GACnB,CAAC,IAAY,EAAE,UAAoC,EAAE,EAAE,CACvD,CAAU,MAA8B,EAA0B,EAAE,CAClE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAKlD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,aAAa,EAAE,mBAAmB;IAClC,mBAAmB,EAAE,wBAAwB;IAC7C,WAAW,EAAE,iBAAiB;IAC9B,iBAAiB,EAAE,sBAAsB;IACzC,uBAAuB,EAAE,2BAA2B;IACpD,aAAa,EAAE,mBAAmB;IAClC,mBAAmB,EAAE,wBAAwB;IAC7C,SAAS,EAAE,eAAe;IAC1B,iBAAiB,EAAE,qBAAqB;IACxC,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,mBAAmB,EAAE,wBAAwB;IAC7C,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;IAC9B,qBAAqB,EAAE,0BAA0B;IACjD,aAAa,EAAE,mBAAmB;IAClC,iBAAiB,EAAE,uBAAuB;IAC1C,cAAc,EAAE,oBAAoB;IACpC,yBAAyB,EAAE,6BAA6B;IACxD,oBAAoB,EAAE,wBAAwB;IAC9C,qBAAqB,EAAE,yBAAyB;IAChD,sBAAsB,EAAE,2BAA2B;IACnD,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;IACnC,YAAY,EAAE,iBAAiB;IAC/B,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,iBAAiB;IAC/B,cAAc,EAAE,oBAAoB;IACpC,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,0BAA0B;IACjD,mBAAmB,EAAE,wBAAwB;IAC7C,0BAA0B,EAAE,6BAA6B;IACzD,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,oBAAoB;IACrC,yBAAyB,EAAE,6BAA6B;IACxD,2BAA2B,EAAE,8BAA8B;IAC3D,aAAa,EAAE,mBAAmB;IAClC,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,cAAc,EAAE,oBAAoB;IACpC,WAAW,EAAE,iBAAiB;IAC9B,iBAAiB,EAAE,sBAAsB;IACzC,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,yBAAyB;IAChD,gBAAgB,EAAE,oBAAoB;IACtC,wBAAwB,EAAE,2BAA2B;IACrD,oBAAoB,EAAE,yBAAyB;IAC/C,SAAS,EAAE,wBAAwB;IACnC,aAAa,EAAE,mBAAmB;IAClC,yBAAyB,EAAE,6BAA6B;IACxD,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,mBAAmB;IACnC,uBAAuB,EAAE,2BAA2B;IACpD,aAAa,EAAE,mBAAmB;IAClC,aAAa,EAAE,mBAAmB;IAClC,UAAU,EAAE,gBAAgB;IAC5B,oBAAoB,EAAE,gCAAgC;IAGtD,aAAa,EAAE,kBAAkB;IACjC,qBAAqB,EAAE,+BAA+B;IACtD,WAAW,EAAE,yBAAyB;IACtC,sBAAsB,EAAE,gCAAgC;IACxD,aAAa,EAAE,2BAA2B;IAC1C,oBAAoB,EAAE,wBAAwB;IAC9C,iBAAiB,EAAE,yBAAyB;IAC5C,sBAAsB,EAAE,2BAA2B;IACnD,yBAAyB,EAAE,6BAA6B;IACxD,cAAc,EAAE,oBAAoB;IACpC,yBAAyB,EAAE,8BAA8B;IACzD,oCAAoC,EAAE,uCAAuC;IAC7E,eAAe,EAAE,qBAAqB;IACtC,wBAAwB,EAAE,6BAA6B;IACvD,2BAA2B,EAAE,+BAA+B;IAC5D,mBAAmB,EAAE,yBAAyB;IAC9C,0BAA0B,EAAE,+BAA+B;IAC3D,yBAAyB,EAAE,8BAA8B;IACzD,uBAAuB,EAAE,4BAA4B;IACrD,6BAA6B,EAAE,iCAAiC;IAChE,iBAAiB,EAAE,0BAA0B;IAC7C,aAAa,EAAE,mBAAmB;IAClC,sBAAsB,EAAE,0BAA0B;IAClD,oBAAoB,EAAE,yBAAyB;IAC/C,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,aAAa;IACtB,cAAc,EAAE,oBAAoB;IACpC,mBAAmB,EAAE,wBAAwB;IAC7C,sBAAsB,EAAE,0BAA0B;CAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/telemetry/tracer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect } from \"effect\";\n\n/**\n * Wrap an effect with a span for tracing\n */\nexport const withSpan =\n (name: string, attributes?: Record<string, unknown>) =>\n <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>\n Effect.withSpan(name, { attributes })(effect);\n\n/**\n * Common span names for RPC operations\n */\nexport const SpanNames = {\n BALANCE_CHECK: \"ew3.balance.check\",\n BALANCE_CHECK_TOKEN: \"ew3.balance.checkToken\",\n BALANCE_GET: \"ew3.balance.get\",\n BALANCE_GET_TOKEN: \"ew3.balance.getToken\",\n BALANCE_GET_TOKEN_BATCH: \"ew3.balance.getTokenBatch\",\n BALANCE_WATCH: \"ew3.balance.watch\",\n BALANCE_WATCH_TOKEN: \"ew3.balance.watchToken\",\n BLOCK_GET: \"ew3.block.get\",\n BLOCK_GET_BY_HASH: \"ew3.block.getByHash\",\n BLOCK_GET_NUMBER: \"ew3.block.getNumber\",\n BLOCK_GET_RANGE: \"ew3.block.getRange\",\n BLOCK_GET_TIMESTAMP: \"ew3.block.getTimestamp\",\n BLOCK_WAIT: \"ew3.block.wait\",\n BLOCK_WATCH: \"ew3.block.watch\",\n CONTRACT_ESTIMATE_GAS: \"ew3.contract.estimateGas\",\n CONTRACT_READ: \"ew3.contract.read\",\n CONTRACT_SIMULATE: \"ew3.contract.simulate\",\n CONTRACT_WRITE: \"ew3.contract.write\",\n CROSS_CHAIN_MULTICALL_ALL: \"ew3.crossChain.multicallAll\",\n CROSS_CHAIN_READ_ALL: \"ew3.crossChain.readAll\",\n CROSS_CHAIN_READ_SAME: \"ew3.crossChain.readSame\",\n DEPLOY_COMPUTE_ADDRESS: \"ew3.deploy.computeAddress\",\n DEPLOY_CONTRACT: \"ew3.deploy.contract\",\n DEPLOY_VERIFY: \"ew3.deploy.verify\",\n ENS_GET_ADDRESS: \"ew3.ens.getAddress\",\n ENS_GET_AVATAR: \"ew3.ens.getAvatar\",\n ENS_GET_NAME: \"ew3.ens.getName\",\n ENS_GET_RESOLVER: \"ew3.ens.getResolver\",\n ENS_GET_TEXT: \"ew3.ens.getText\",\n ERC721_APPROVE: \"ew3.erc721.approve\",\n ERC721_BALANCE_OF: \"ew3.erc721.balanceOf\",\n ERC721_FETCH_METADATA: \"ew3.erc721.fetchMetadata\",\n ERC721_GET_APPROVED: \"ew3.erc721.getApproved\",\n ERC721_IS_APPROVED_FOR_ALL: \"ew3.erc721.isApprovedForAll\",\n ERC721_NAME: \"ew3.erc721.name\",\n ERC721_OWNER_OF: \"ew3.erc721.ownerOf\",\n ERC721_SAFE_TRANSFER_FROM: \"ew3.erc721.safeTransferFrom\",\n ERC721_SET_APPROVAL_FOR_ALL: \"ew3.erc721.setApprovalForAll\",\n ERC721_SYMBOL: \"ew3.erc721.symbol\",\n ERC721_TOKEN_URI: \"ew3.erc721.tokenURI\",\n ERC721_TOTAL_SUPPLY: \"ew3.erc721.totalSupply\",\n ERC721_TRANSFER_FROM: \"ew3.erc721.transferFrom\",\n EVENT_BACKFILL: \"ew3.event.backfill\",\n EVENT_WATCH: \"ew3.event.watch\",\n GAS_ESTIMATE_FEES: \"ew3.gas.estimateFees\",\n GAS_ESTIMATE_GAS: \"ew3.gas.estimateGas\",\n GAS_GET_ALL_ESTIMATES: \"ew3.gas.getAllEstimates\",\n GAS_GET_BASE_FEE: \"ew3.gas.getBaseFee\",\n GAS_GET_MAX_PRIORITY_FEE: \"ew3.gas.getMaxPriorityFee\",\n GAS_SUPPORTS_EIP1559: \"ew3.gas.supportsEip1559\",\n MULTICALL: \"ew3.contract.multicall\",\n NONCE_CONFIRM: \"ew3.nonce.confirm\",\n NONCE_GET_CONFIRMED_COUNT: \"ew3.nonce.getConfirmedCount\",\n NONCE_GET_GAPS: \"ew3.nonce.getGaps\",\n NONCE_GET_NEXT: \"ew3.nonce.getNext\",\n NONCE_GET_PENDING_COUNT: \"ew3.nonce.getPendingCount\",\n NONCE_RELEASE: \"ew3.nonce.release\",\n NONCE_RESERVE: \"ew3.nonce.reserve\",\n NONCE_SYNC: \"ew3.nonce.sync\",\n SAFE_ENABLE_OFFCHAIN: \"ew3.safe.enableOffchainSigning\",\n\n // Safe Apps\n SAFE_GET_INFO: \"ew3.safe.getInfo\",\n SAFE_GET_OFFCHAIN_SIG: \"ew3.safe.getOffchainSignature\",\n SAFE_GET_TX: \"ew3.safe.getTransaction\",\n SAFE_POLL_OFFCHAIN_SIG: \"ew3.safe.pollOffchainSignature\",\n SAFE_SEND_TXS: \"ew3.safe.sendTransactions\",\n SAFE_SIGN_TYPED_DATA: \"ew3.safe.signTypedData\",\n SAFE_WAIT_RECEIPT: \"ew3.safe.waitForReceipt\",\n SIGNATURE_HASH_MESSAGE: \"ew3.signature.hashMessage\",\n SIGNATURE_HASH_TYPED_DATA: \"ew3.signature.hashTypedData\",\n SIGNATURE_JOIN: \"ew3.signature.join\",\n SIGNATURE_RECOVER_ADDRESS: \"ew3.signature.recoverAddress\",\n SIGNATURE_RECOVER_TYPED_DATA_ADDRESS: \"ew3.signature.recoverTypedDataAddress\",\n SIGNATURE_SPLIT: \"ew3.signature.split\",\n SIGNATURE_VERIFY_MESSAGE: \"ew3.signature.verifyMessage\",\n SIGNATURE_VERIFY_TYPED_DATA: \"ew3.signature.verifyTypedData\",\n SIMULATION_SIMULATE: \"ew3.simulation.simulate\",\n SIMULATION_SIMULATE_BUNDLE: \"ew3.simulation.simulateBundle\",\n SUBSCRIPTION_WATCH_BLOCKS: \"ew3.subscription.watchBlocks\",\n SUBSCRIPTION_WATCH_LOGS: \"ew3.subscription.watchLogs\",\n SUBSCRIPTION_WATCH_PENDING_TX: \"ew3.subscription.watchPendingTx\",\n TRANSFER_ESTIMATE: \"ew3.transfer.estimateGas\",\n TRANSFER_SEND: \"ew3.transfer.send\",\n TRANSFER_SEND_AND_WAIT: \"ew3.transfer.sendAndWait\",\n TX_GET_CONFIRMATIONS: \"ew3.tx.getConfirmations\",\n TX_TRACK: \"ew3.tx.track\",\n TX_WAIT: \"ew3.tx.wait\",\n WALLET_CONNECT: \"ew3.wallet.connect\",\n WALLET_SIGN_MESSAGE: \"ew3.wallet.signMessage\",\n WALLET_SIGN_TYPED_DATA: \"ew3.wallet.signTypedData\",\n} as const;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/testing-kit/_fixtures/addresses.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,4CAAqD,CAAC;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,4CAAqD,CAAC;AACpF,MAAM,CAAC,MAAM,YAAY,GACvB,oEAA6E,CAAC;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/testing-kit/_fixtures/addresses.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,4CAAqD,CAAC;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,4CAAqD,CAAC;AACpF,MAAM,CAAC,MAAM,YAAY,GACvB,oEAA6E,CAAC;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC","sourcesContent":["/**\n * Test addresses and constants for effect-evm test suite\n */\n\nimport { mainnet } from \"viem/chains\";\n\nexport const TEST_ADDRESS = \"0x1234567890123456789012345678901234567890\" as const;\nexport const TEST_ADDRESS_2 = \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\" as const;\nexport const TEST_TX_HASH =\n \"0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef\" as const;\nexport const TEST_CHAIN_ID = mainnet.id;\nexport const UNKNOWN_CHAIN_ID = 123_456_789;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../../src/testing-kit/_fixtures/receipts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,oEAAoE;IAC/E,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,WAAW;IAC9B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,SAAS;IACjB,EAAE,EAAE,YAAY;IAChB,eAAe,EAAE,YAAY;IAC7B,gBAAgB,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS;CACsB,CAAC;AAaxC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,YAAyC,EAAE,EACvB,EAAE,CAAC,CAAC;IACxB,GAAG,YAAY;IACf,GAAG,SAAS;CACb,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../../src/testing-kit/_fixtures/receipts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,oEAAoE;IAC/E,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,WAAW;IAC9B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,SAAS;IACjB,EAAE,EAAE,YAAY;IAChB,eAAe,EAAE,YAAY;IAC7B,gBAAgB,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS;CACsB,CAAC;AAaxC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,YAAyC,EAAE,EACvB,EAAE,CAAC,CAAC;IACxB,GAAG,YAAY;IACf,GAAG,SAAS;CACb,CAAC,CAAC","sourcesContent":["/**\n * Transaction receipt fixtures for effect-evm test suite\n */\n\nimport type { TransactionReceipt } from \"viem\";\nimport { TEST_ADDRESS, TEST_TX_HASH } from \"./addresses.js\";\n\nexport const TEST_RECEIPT = {\n blockHash: \"0x1234567890123456789012345678901234567890123456789012345678901234\",\n blockNumber: 1000n,\n contractAddress: null,\n cumulativeGasUsed: 50000n,\n effectiveGasPrice: 1000000000n,\n from: TEST_ADDRESS,\n gasUsed: 50000n,\n logs: [],\n logsBloom: \"0x00\",\n status: \"success\",\n to: TEST_ADDRESS,\n transactionHash: TEST_TX_HASH,\n transactionIndex: 0,\n type: \"eip1559\",\n} as const satisfies TransactionReceipt;\n\n/**\n * Factory function to create test receipts with custom overrides\n *\n * @param overrides - Partial TransactionReceipt properties to override defaults\n * @returns A complete TransactionReceipt for testing\n *\n * @example\n * ```typescript\n * const receipt = makeTestReceipt({ status: \"reverted\", gasUsed: 100000n });\n * ```\n */\nexport const makeTestReceipt = (\n overrides: Partial<TransactionReceipt> = {}\n): TransactionReceipt => ({\n ...TEST_RECEIPT,\n ...overrides,\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/testing-kit/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/testing-kit/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Test assertion helpers for effect-evm\n *\n * Provides type-safe utilities for asserting on Effect types in tests.\n */\n\nimport type { Context } from \"effect\";\nimport { Cause, Effect, Either, Exit, Layer, Option } from \"effect\";\nimport { expect } from \"vitest\";\nimport { ClientNotFoundError, WalletNotConnectedError } from \"@/src/core/index.js\";\n\n/**\n * Assert an Exit is a failure with a specific tagged error\n *\n * @param exit - The Exit to assert on\n * @param expectedTag - The expected error tag\n *\n * @example\n * ```typescript\n * const exit = yield* Effect.exit(someEffect);\n * expectTaggedFailure(exit, \"ClientNotFoundError\");\n * ```\n */\nexport const expectTaggedFailure = <E extends { _tag: string }>(\n exit: Exit.Exit<unknown, E>,\n expectedTag: E[\"_tag\"]\n): void => {\n expect(Exit.isFailure(exit)).toBe(true);\n if (Exit.isFailure(exit)) {\n const error = Cause.failureOption(exit.cause);\n expect(Option.isSome(error)).toBe(true);\n if (Option.isSome(error)) {\n expect((error.value as { _tag: string })._tag).toBe(expectedTag);\n }\n }\n};\n\n/**\n * Type-safe assertion for Either.Left - returns the left value for further assertions\n *\n * @param either - The Either to assert on\n * @returns The left value for further assertions\n * @throws Error if Either is Right\n *\n * @example\n * ```typescript\n * const result = Either.left(new Error(\"boom\"));\n * const error = assertLeft(result);\n * expect(error.message).toBe(\"boom\");\n * ```\n */\nexport const assertLeft = <L, R>(either: Either.Either<R, L>): L => {\n expect(Either.isLeft(either)).toBe(true);\n if (!Either.isLeft(either)) {\n throw new Error(\"Expected Left\");\n }\n return either.left;\n};\n\n/**\n * Type-safe assertion for Either.Right - returns the right value for further assertions\n *\n * @param either - The Either to assert on\n * @returns The right value for further assertions\n * @throws Error if Either is Left\n *\n * @example\n * ```typescript\n * const result = Either.right(42);\n * const value = assertRight(result);\n * expect(value).toBe(42);\n * ```\n */\nexport const assertRight = <L, R>(either: Either.Either<R, L>): R => {\n expect(Either.isRight(either)).toBe(true);\n if (!Either.isRight(either)) {\n throw new Error(\"Expected Right\");\n }\n return either.right;\n};\n\n/**\n * Creates a chainId-gated getter for mock services.\n * Returns the value if chainId matches, otherwise fails with ClientNotFoundError.\n *\n * @param supportedChainId - The chainId this mock supports\n * @param getValue - Function that returns the value when chainId matches\n * @returns A function that takes a chainId and returns an Effect\n *\n * @example\n * ```typescript\n * const mockClient = { chain: { id: 1 }, ... };\n * const get = makeChainIdGetter(1, () => mockClient);\n * // get(1) => Effect.succeed(mockClient)\n * // get(2) => Effect.fail(ClientNotFoundError)\n * ```\n */\nexport const makeChainIdGetter =\n <A>(supportedChainId: number, getValue: () => A) =>\n (chainId: number) =>\n chainId === supportedChainId\n ? Effect.succeed(getValue())\n : Effect.fail(\n new ClientNotFoundError({\n chainId,\n message: `No client configured for chain ID ${chainId}`,\n })\n );\n\n/**\n * Generic chain validation helper that accepts a custom error factory.\n * This is the base implementation used by withChainIdCheck and withWalletChainIdCheck.\n *\n * @param supportedChainId - The chainId this mock supports\n * @param errorFactory - Function to create the error when chainId doesn't match\n * @param fn - Function to call if chainId matches\n * @returns A wrapped function that validates chainId first\n *\n * @example\n * ```typescript\n * const withCustomCheck = <P extends { chainId: number }, A, E>(\n * supportedChainId: number,\n * fn: (params: P) => Effect.Effect<A, E>\n * ) => withChainCheck(supportedChainId, (chainId) => new CustomError({ chainId }), fn);\n * ```\n */\nexport const withChainCheck =\n <P extends { chainId: number }, A, E, Err>(\n supportedChainId: number,\n errorFactory: (chainId: number, message: string) => Err,\n fn: (params: P) => Effect.Effect<A, E>\n ): ((params: P) => Effect.Effect<A, E | Err>) =>\n (params) =>\n params.chainId === supportedChainId\n ? fn(params)\n : Effect.fail(\n errorFactory(\n params.chainId,\n `Chain ${params.chainId} not supported. Only chain ${supportedChainId} is configured.`\n )\n );\n\n/**\n * Wraps a function that takes params with chainId to validate chain support first.\n * If chainId matches, calls the function; otherwise fails with ClientNotFoundError.\n *\n * @param supportedChainId - The chainId this mock supports\n * @param fn - Function to call if chainId matches\n * @returns A wrapped function that validates chainId first\n *\n * @example\n * ```typescript\n * const getBlock = (params: { chainId: number }) => Effect.succeed(mockBlock);\n * const wrapped = withChainIdCheck(1, getBlock);\n * // wrapped({ chainId: 1 }) => Effect.succeed(mockBlock)\n * // wrapped({ chainId: 2 }) => Effect.fail(ClientNotFoundError)\n * ```\n */\nexport const withChainIdCheck = <P extends { chainId: number }, A, E>(\n supportedChainId: number,\n fn: (params: P) => Effect.Effect<A, E>\n): ((params: P) => Effect.Effect<A, E | ClientNotFoundError>) =>\n withChainCheck(\n supportedChainId,\n (chainId) =>\n new ClientNotFoundError({\n chainId,\n message: `No client configured for chain ID ${chainId}`,\n }),\n fn\n );\n\n/**\n * Creates a chainId-gated getter for mock wallet services.\n * Returns the value if chainId matches, otherwise fails with WalletNotConnectedError.\n *\n * @param supportedChainId - The chainId this mock supports\n * @param getValue - Function that returns the value when chainId matches\n * @returns A function that takes a chainId and returns an Effect\n *\n * @example\n * ```typescript\n * const mockWallet = { account: { address: \"0x...\" }, ... };\n * const get = makeWalletChainIdGetter(1, () => mockWallet);\n * // get(1) => Effect.succeed(mockWallet)\n * // get(2) => Effect.fail(WalletNotConnectedError)\n * ```\n */\nexport const makeWalletChainIdGetter =\n <A>(supportedChainId: number, getValue: () => A) =>\n (chainId: number) =>\n chainId === supportedChainId\n ? Effect.succeed(getValue())\n : Effect.fail(\n new WalletNotConnectedError({\n chainId,\n message: `No wallet client connected for chain ID ${chainId}`,\n })\n );\n\n/**\n * Wraps a function that takes params with chainId to validate wallet chain support first.\n * If chainId matches, calls the function; otherwise fails with WalletNotConnectedError.\n *\n * @param supportedChainId - The chainId this mock wallet supports\n * @param fn - Function to call if chainId matches\n * @returns A wrapped function that validates chainId first\n *\n * @example\n * ```typescript\n * const writeContract = (params: { chainId: number, ... }) => Effect.succeed(mockHash);\n * const wrapped = withWalletChainIdCheck(1, writeContract);\n * // wrapped({ chainId: 1, ... }) => Effect.succeed(mockHash)\n * // wrapped({ chainId: 2, ... }) => Effect.fail(WalletNotConnectedError)\n * ```\n */\nexport const withWalletChainIdCheck = <P extends { chainId: number }, A, E>(\n supportedChainId: number,\n fn: (params: P) => Effect.Effect<A, E>\n): ((params: P) => Effect.Effect<A, E | WalletNotConnectedError>) =>\n withChainCheck(\n supportedChainId,\n (chainId) =>\n new WalletNotConnectedError({\n chainId,\n message: `No wallet client connected for chain ID ${chainId}`,\n }),\n fn\n );\n\n/**\n * Generic factory for creating mock service layers.\n * Eliminates boilerplate by abstracting the common pattern of:\n * 1. Merging default config with overrides\n * 2. Mapping merged config to service shape\n * 3. Creating a Layer.succeed\n *\n * @param ServiceTag - The Effect Context.Tag for the service\n * @param defaults - Default configuration object\n * @param config - Partial configuration to override defaults\n * @param mapToShape - Function that maps merged config to the service shape\n * @returns A Layer providing the service\n *\n * @example\n * ```typescript\n * // In a mock service file:\n * export const makeMockGasServiceLayer = (\n * config: MockGasServiceConfig = {},\n * supportedChainId = 1\n * ): Layer.Layer<GasService> => {\n * const defaults = {\n * estimateFees: () => Effect.succeed(DEFAULT_FEE_ESTIMATE),\n * getBaseFee: () => Effect.succeed(30000000000n),\n * // ... other defaults\n * };\n *\n * return makeMockServiceLayer(\n * GasService,\n * defaults,\n * config,\n * (merged) => ({\n * estimateFees: withChainIdCheck(supportedChainId, merged.estimateFees),\n * getBaseFee: withChainIdCheck(supportedChainId, merged.getBaseFee),\n * // ... other methods\n * })\n * );\n * };\n * ```\n */\nexport const makeMockServiceLayer = <I, S, C extends Record<string, unknown>>(\n ServiceTag: Context.Tag<I, S>,\n defaults: C,\n config: Partial<C>,\n mapToShape: (merged: C) => S\n): Layer.Layer<I> => {\n const merged = { ...defaults, ...config } as C;\n const serviceShape = mapToShape(merged);\n return Layer.succeed(ServiceTag, ServiceTag.of(serviceShape));\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing-kit/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGxE,OAAO,EACL,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAGpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing-kit/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGxE,OAAO,EACL,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAGpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC","sourcesContent":["/**\n * Testing Kit for effect-evm\n *\n * This module exports mock builders and test utilities for downstream\n * consumers to easily test code that depends on effect-evm services.\n *\n * @example\n * ```typescript\n * import { makeEffectEvmTestLayer } from \"effect-evm/testing-kit\";\n *\n * const testLayer = makeEffectEvmTestLayer({\n * publicClient: {\n * readContract: async () => 1000n,\n * },\n * });\n * ```\n */\n\n// Fixtures\nexport {\n TEST_ADDRESS,\n TEST_ADDRESS_2,\n TEST_CHAIN_ID,\n TEST_TX_HASH,\n UNKNOWN_CHAIN_ID,\n} from \"./_fixtures/addresses.js\";\nexport { makeTestReceipt, TEST_RECEIPT } from \"./_fixtures/receipts.js\";\n\n// Test helpers\nexport {\n assertLeft,\n assertRight,\n expectTaggedFailure,\n makeChainIdGetter,\n makeWalletChainIdGetter,\n withChainIdCheck,\n withWalletChainIdCheck,\n} from \"./helpers.js\";\n\nexport type { MockBalanceServiceConfig } from \"./mock-balance-service.js\";\nexport { makeMockBalanceServiceLayer } from \"./mock-balance-service.js\";\nexport type { MockBlockServiceConfig } from \"./mock-block-service.js\";\nexport { makeMockBlockServiceLayer } from \"./mock-block-service.js\";\nexport type { MockCrossChainReaderConfig } from \"./mock-cross-chain-reader.js\";\nexport { makeMockCrossChainReaderLayer } from \"./mock-cross-chain-reader.js\";\nexport type { MockDeployServiceConfig } from \"./mock-deploy-service.js\";\nexport { makeMockDeployServiceLayer } from \"./mock-deploy-service.js\";\nexport type { MockErc721ServiceConfig } from \"./mock-erc721-service.js\";\nexport { makeMockErc721ServiceLayer } from \"./mock-erc721-service.js\";\nexport type { MockGasServiceConfig } from \"./mock-gas-service.js\";\nexport { makeMockGasServiceLayer } from \"./mock-gas-service.js\";\nexport type { MockNonceServiceConfig } from \"./mock-nonce-service.js\";\nexport { makeMockNonceServiceLayer } from \"./mock-nonce-service.js\";\n// Mock layer builders\nexport type { MockPublicClientConfig } from \"./mock-public-client.js\";\nexport { makeMockPublicClientLayer } from \"./mock-public-client.js\";\nexport type { MockSignatureServiceConfig } from \"./mock-signature-service.js\";\nexport { makeMockSignatureServiceLayer } from \"./mock-signature-service.js\";\nexport type { MockSimulationServiceConfig } from \"./mock-simulation-service.js\";\nexport { makeMockSimulationServiceLayer } from \"./mock-simulation-service.js\";\nexport type { MockSubscriptionServiceConfig } from \"./mock-subscription-service.js\";\nexport { makeMockSubscriptionServiceLayer } from \"./mock-subscription-service.js\";\nexport type { MockTransferServiceConfig } from \"./mock-transfer-service.js\";\nexport { makeMockTransferServiceLayer } from \"./mock-transfer-service.js\";\nexport type { MockWalletClientConfig } from \"./mock-wallet-client.js\";\nexport { makeMockWalletClientLayer } from \"./mock-wallet-client.js\";\nexport type { MockWalletProviderConfig } from \"./mock-wallet-provider.js\";\nexport { makeMockWalletProvider } from \"./mock-wallet-provider.js\";\n// Test layer composer\nexport type { TestLayerConfig } from \"./test-layer.js\";\nexport { makeEffectEvmTestLayer } from \"./test-layer.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-balance-service.js","sourceRoot":"","sources":["../../src/testing-kit/mock-balance-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOxD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAsDtE,MAAM,aAAa,GAAuC;IACxD,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACtD,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IAClD,gBAAgB,EAAE,CAAC,MAAqC,EAAE,EAAE,CAC1D,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO;QACP,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;KACf,CAAC,CAAC,CACJ;IACH,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAChD,yBAAyB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IACrD,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrE,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CAClE,CAAC;AA+BF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,SAAmC,EAAE,EACrC,gBAAgB,GAAG,CAAC,EACS,EAAE,CAC/B,oBAAoB,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvE,UAAU,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC;IACjE,eAAe,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC;IAC3E,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC;IAC7E,oBAAoB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IACrF,yBAAyB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC/F,YAAY,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC;IACrE,iBAAiB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,CAAC;CAChF,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mock-balance-service.js","sourceRoot":"","sources":["../../src/testing-kit/mock-balance-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOxD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAsDtE,MAAM,aAAa,GAAuC;IACxD,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACtD,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IAClD,gBAAgB,EAAE,CAAC,MAAqC,EAAE,EAAE,CAC1D,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO;QACP,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;KACf,CAAC,CAAC,CACJ;IACH,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAChD,yBAAyB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IACrD,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrE,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CAClE,CAAC;AA+BF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,SAAmC,EAAE,EACrC,gBAAgB,GAAG,CAAC,EACS,EAAE,CAC/B,oBAAoB,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvE,UAAU,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC;IACjE,eAAe,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC;IAC3E,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC;IAC7E,oBAAoB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IACrF,yBAAyB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC/F,YAAY,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC;IACrE,iBAAiB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,CAAC;CAChF,CAAC,CAAC,CAAC","sourcesContent":["import type { Layer } from \"effect\";\nimport { Effect, Stream } from \"effect\";\nimport type { Address } from \"viem\";\nimport type { TokenBalance } from \"@/src/balance/index.js\";\nimport { BalanceService } from \"@/src/balance/index.js\";\nimport type {\n ClientNotFoundError,\n ContractReadError,\n MulticallError,\n TransportError,\n} from \"@/src/core/index.js\";\nimport { makeMockServiceLayer, withChainIdCheck } from \"./helpers.js\";\n\n/**\n * Configuration for the mock BalanceService\n *\n * All methods are optional - sensible defaults are provided.\n * Override specific methods to customize mock behavior for your tests.\n */\nexport type MockBalanceServiceConfig = {\n getBalance?: (params: {\n chainId: number;\n address: Address;\n blockTag?: \"latest\" | \"pending\";\n }) => Effect.Effect<bigint, ClientNotFoundError | TransportError>;\n\n getTokenBalance?: (params: {\n chainId: number;\n address: Address;\n tokenAddress: Address;\n }) => Effect.Effect<bigint, ContractReadError | ClientNotFoundError>;\n\n getTokenBalances?: (params: {\n chainId: number;\n address: Address;\n tokenAddresses: Address[];\n }) => Effect.Effect<TokenBalance[], ClientNotFoundError | MulticallError>;\n\n watchBalance?: (params: {\n chainId: number;\n address: Address;\n pollingInterval?: number;\n }) => Effect.Effect<Stream.Stream<bigint, unknown>, ClientNotFoundError>;\n\n watchTokenBalance?: (params: {\n chainId: number;\n address: Address;\n tokenAddress: Address;\n pollingInterval?: number;\n }) => Effect.Effect<Stream.Stream<bigint, unknown>, ClientNotFoundError>;\n\n hasSufficientBalance?: (params: {\n chainId: number;\n address: Address;\n required: bigint;\n }) => Effect.Effect<boolean, ClientNotFoundError | TransportError>;\n\n hasSufficientTokenBalance?: (params: {\n chainId: number;\n address: Address;\n tokenAddress: Address;\n required: bigint;\n }) => Effect.Effect<boolean, ContractReadError | ClientNotFoundError>;\n};\n\nconst defaultConfig: Required<MockBalanceServiceConfig> = {\n getBalance: () => Effect.succeed(1000000000000000000n), // 1 ETH\n getTokenBalance: () => Effect.succeed(1000000000n), // typical token balance\n getTokenBalances: (params: { tokenAddresses: Address[] }) =>\n Effect.succeed(\n params.tokenAddresses.map((address) => ({\n address,\n balance: 1000000000n,\n decimals: 18,\n name: \"Mock Token\",\n symbol: \"MOCK\",\n }))\n ),\n hasSufficientBalance: () => Effect.succeed(true),\n hasSufficientTokenBalance: () => Effect.succeed(true),\n watchBalance: () => Effect.succeed(Stream.make(1000000000000000000n)),\n watchTokenBalance: () => Effect.succeed(Stream.make(1000000000n)),\n};\n\n/**\n * Creates a mock BalanceService layer for testing\n *\n * @param config - Optional configuration to override default mock behaviors\n * @param supportedChainId - The chainId this mock supports (default: 1 mainnet)\n *\n * @example\n * ```typescript\n * // Basic usage with defaults\n * const layer = makeMockBalanceServiceLayer();\n *\n * // Override specific methods\n * const layer = makeMockBalanceServiceLayer({\n * getBalance: () => Effect.succeed(5000000000000000000n), // 5 ETH\n * getTokenBalance: () => Effect.succeed(1000000000000n),\n * });\n *\n * // Use in tests\n * Effect.gen(function* () {\n * const balanceService = yield* BalanceService;\n * const balance = yield* balanceService.getBalance({\n * chainId: mainnet.id,\n * address: \"0x...\",\n * });\n * }).pipe(\n * Effect.provide(layer)\n * );\n * ```\n */\nexport const makeMockBalanceServiceLayer = (\n config: MockBalanceServiceConfig = {},\n supportedChainId = 1\n): Layer.Layer<BalanceService> =>\n makeMockServiceLayer(BalanceService, defaultConfig, config, (merged) => ({\n getBalance: withChainIdCheck(supportedChainId, merged.getBalance),\n getTokenBalance: withChainIdCheck(supportedChainId, merged.getTokenBalance),\n getTokenBalances: withChainIdCheck(supportedChainId, merged.getTokenBalances),\n hasSufficientBalance: withChainIdCheck(supportedChainId, merged.hasSufficientBalance),\n hasSufficientTokenBalance: withChainIdCheck(supportedChainId, merged.hasSufficientTokenBalance),\n watchBalance: withChainIdCheck(supportedChainId, merged.watchBalance),\n watchTokenBalance: withChainIdCheck(supportedChainId, merged.watchTokenBalance),\n }));\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-block-service.js","sourceRoot":"","sources":["../../src/testing-kit/mock-block-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mock-block-service.js","sourceRoot":"","sources":["../../src/testing-kit/mock-block-service.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Layer } from \"effect\";\nimport { Effect, Stream } from \"effect\";\nimport type { Block, Hash } from \"viem\";\nimport type { BlockNotFoundError, BlockTimeoutError } from \"@/src/block/index.js\";\nimport { BlockService } from \"@/src/block/index.js\";\nimport type { ClientNotFoundError, TransportError } from \"@/src/core/index.js\";\nimport { makeMockServiceLayer, withChainIdCheck } from \"./helpers.js\";\n\nconst DEFAULT_HASH = \"0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef\" as Hash;\n\nconst DEFAULT_BLOCK: Block = {\n baseFeePerGas: 30000000000n,\n blobGasUsed: 0n,\n difficulty: 0n,\n excessBlobGas: 0n,\n extraData: \"0x\",\n gasLimit: 30000000n,\n gasUsed: 12000000n,\n hash: DEFAULT_HASH,\n logsBloom: \"0x00\",\n miner: \"0x0000000000000000000000000000000000000000\",\n mixHash: DEFAULT_HASH,\n nonce: \"0x0000000000000000\",\n number: 1000n,\n parentHash: DEFAULT_HASH,\n receiptsRoot: DEFAULT_HASH,\n sealFields: [],\n sha3Uncles: DEFAULT_HASH,\n size: 1024n,\n stateRoot: DEFAULT_HASH,\n timestamp: 1700000000n,\n totalDifficulty: 0n,\n transactions: [],\n transactionsRoot: DEFAULT_HASH,\n uncles: [],\n};\n\n/**\n * Configuration for the mock BlockService\n *\n * All methods are optional - sensible defaults are provided.\n * Override specific methods to customize mock behavior for your tests.\n */\nexport type MockBlockServiceConfig = {\n getBlock?: (params: {\n chainId: number;\n blockNumber?: bigint;\n blockTag?: \"latest\" | \"pending\" | \"earliest\" | \"safe\" | \"finalized\";\n includeTransactions?: boolean;\n }) => Effect.Effect<Block, BlockNotFoundError | ClientNotFoundError>;\n\n getBlockByHash?: (params: {\n chainId: number;\n hash: Hash;\n includeTransactions?: boolean;\n }) => Effect.Effect<Block, BlockNotFoundError | ClientNotFoundError>;\n\n getBlockNumber?: (params: {\n chainId: number;\n }) => Effect.Effect<bigint, ClientNotFoundError | TransportError>;\n\n watchBlocks?: (params: {\n chainId: number;\n pollingInterval?: number;\n includeTransactions?: boolean;\n }) => Effect.Effect<Stream.Stream<Block, unknown>, ClientNotFoundError>;\n\n waitForBlock?: (params: {\n chainId: number;\n blockNumber: bigint;\n timeout?: number;\n }) => Effect.Effect<\n Block,\n BlockNotFoundError | BlockTimeoutError | ClientNotFoundError | TransportError\n >;\n\n getBlocks?: (params: {\n chainId: number;\n fromBlock: bigint;\n toBlock: bigint;\n includeTransactions?: boolean;\n }) => Effect.Effect<Block[], ClientNotFoundError | BlockNotFoundError>;\n\n getBlockTimestamp?: (params: {\n chainId: number;\n blockNumber?: bigint;\n }) => Effect.Effect<bigint, ClientNotFoundError | BlockNotFoundError>;\n};\n\nconst defaultConfig: Required<MockBlockServiceConfig> = {\n getBlock: () => Effect.succeed(DEFAULT_BLOCK),\n getBlockByHash: () => Effect.succeed(DEFAULT_BLOCK),\n getBlockNumber: () => Effect.succeed(1000n),\n getBlocks: (params: { fromBlock: bigint; toBlock: bigint }) => {\n const count = Number(params.toBlock - params.fromBlock) + 1;\n return Effect.succeed(\n Array.from({ length: count }, (_, i) => ({\n ...DEFAULT_BLOCK,\n number: params.fromBlock + BigInt(i),\n }))\n );\n },\n getBlockTimestamp: () => Effect.succeed(1700000000n),\n waitForBlock: () => Effect.succeed(DEFAULT_BLOCK),\n watchBlocks: () => Effect.succeed(Stream.make(DEFAULT_BLOCK)),\n};\n\n/**\n * Creates a mock BlockService layer for testing\n *\n * @param config - Optional configuration to override default mock behaviors\n * @param supportedChainId - The chainId this mock supports (default: 1 mainnet)\n *\n * @example\n * ```typescript\n * // Basic usage with defaults\n * const layer = makeMockBlockServiceLayer();\n *\n * // Override specific methods\n * const layer = makeMockBlockServiceLayer({\n * getBlockNumber: () => Effect.succeed(2000n),\n * getBlock: () => Effect.succeed({ ...customBlock }),\n * });\n *\n * // Use in tests\n * Effect.gen(function* () {\n * const blockService = yield* BlockService;\n * const blockNumber = yield* blockService.getBlockNumber({ chainId: mainnet.id });\n * }).pipe(\n * Effect.provide(layer)\n * );\n * ```\n */\nexport const makeMockBlockServiceLayer = (\n config: MockBlockServiceConfig = {},\n supportedChainId = 1\n): Layer.Layer<BlockService> =>\n makeMockServiceLayer(BlockService, defaultConfig, config, (merged) => ({\n getBlock: withChainIdCheck(supportedChainId, merged.getBlock),\n getBlockByHash: withChainIdCheck(supportedChainId, merged.getBlockByHash),\n getBlockNumber: withChainIdCheck(supportedChainId, merged.getBlockNumber),\n getBlocks: withChainIdCheck(supportedChainId, merged.getBlocks),\n getBlockTimestamp: withChainIdCheck(supportedChainId, merged.getBlockTimestamp),\n waitForBlock: withChainIdCheck(supportedChainId, merged.waitForBlock),\n watchBlocks: withChainIdCheck(supportedChainId, merged.watchBlocks),\n }));\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-cross-chain-reader.js","sourceRoot":"","sources":["../../src/testing-kit/mock-cross-chain-reader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mock-cross-chain-reader.js","sourceRoot":"","sources":["../../src/testing-kit/mock-cross-chain-reader.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect, Layer } from \"effect\";\nimport type {\n ChainMulticallBatch,\n CrossChainCall,\n CrossChainReader,\n CrossChainReaderShape,\n ReadSameParams,\n} from \"@/src/contract/index.js\";\nimport { CrossChainReader as CrossChainReaderTag } from \"@/src/contract/index.js\";\nimport type { ClientNotFoundError, ContractReadError, MulticallError } from \"@/src/core/index.js\";\nimport { ClientNotFoundError as ClientNotFoundErrorClass } from \"@/src/core/index.js\";\nimport type {\n Abi,\n ContractFunctionName,\n ContractFunctionReturnType,\n MulticallResult,\n} from \"@/src/types/index.js\";\n\n/**\n * Configuration for the mock CrossChainReader\n *\n * All methods are optional - sensible defaults are provided.\n * Override specific methods to customize mock behavior for your tests.\n */\nexport type MockCrossChainReaderConfig = {\n readAll?: <const TCalls extends readonly CrossChainCall[]>(\n calls: TCalls\n ) => Effect.Effect<Map<number, unknown[]>, ContractReadError | ClientNotFoundError>;\n\n readSame?: <TAbi extends Abi, TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">>(\n params: ReadSameParams<TAbi, TFunctionName>\n ) => Effect.Effect<\n Map<number, ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName>>,\n ContractReadError | ClientNotFoundError\n >;\n\n multicallAll?: <const TBatches extends readonly ChainMulticallBatch[]>(\n batches: TBatches\n ) => Effect.Effect<\n Map<number, readonly MulticallResult<unknown>[]>,\n MulticallError | ClientNotFoundError\n >;\n};\n\n/**\n * Creates a mock CrossChainReader layer for testing\n *\n * @param config - Optional configuration to override default mock behaviors\n * @param supportedChainIds - The chainIds this mock supports (default: [1])\n *\n * @example\n * ```typescript\n * // Basic usage with defaults\n * const layer = makeMockCrossChainReaderLayer();\n *\n * // Override specific methods\n * const layer = makeMockCrossChainReaderLayer({\n * readSame: (params) => {\n * const resultMap = new Map();\n * for (const chainId of params.chainIds) {\n * resultMap.set(chainId, 1000n);\n * }\n * return Effect.succeed(resultMap);\n * },\n * }, [1, 137, 42161]);\n *\n * // Use in tests\n * Effect.gen(function* () {\n * const crossChainReader = yield* CrossChainReader;\n * const results = yield* crossChainReader.readSame({\n * chainIds: [1, 137],\n * address: tokenAddr,\n * abi: ERC20_ABI,\n * functionName: \"balanceOf\",\n * args: [userAddr],\n * });\n * }).pipe(\n * Effect.provide(layer)\n * );\n * ```\n */\nexport const makeMockCrossChainReaderLayer = (\n config: MockCrossChainReaderConfig = {},\n supportedChainIds: readonly number[] = [1]\n): Layer.Layer<CrossChainReader> => {\n const readAll =\n config.readAll ??\n (<const TCalls extends readonly CrossChainCall[]>(calls: TCalls) => {\n const resultMap = new Map<number, unknown[]>();\n const chainIds = new Set(calls.map((c) => c.chainId));\n\n for (const chainId of chainIds) {\n if (!supportedChainIds.includes(chainId)) {\n return Effect.fail(\n new ClientNotFoundErrorClass({\n chainId,\n message: `No client configured for chain ID ${chainId}`,\n })\n );\n }\n }\n\n for (const chainId of chainIds) {\n const chainCalls = calls.filter((c) => c.chainId === chainId);\n resultMap.set(\n chainId,\n chainCalls.map(() => 0n)\n );\n }\n\n return Effect.succeed(resultMap);\n });\n\n const readSame =\n config.readSame ??\n (<TAbi extends Abi, TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">>(\n params: ReadSameParams<TAbi, TFunctionName>\n ) => {\n const resultMap = new Map<\n number,\n ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName>\n >();\n\n for (const chainId of params.chainIds) {\n if (!supportedChainIds.includes(chainId)) {\n return Effect.fail(\n new ClientNotFoundErrorClass({\n chainId,\n message: `No client configured for chain ID ${chainId}`,\n })\n );\n }\n }\n\n for (const chainId of params.chainIds) {\n resultMap.set(\n chainId,\n 0n as ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName>\n );\n }\n\n return Effect.succeed(resultMap);\n });\n\n const multicallAll =\n config.multicallAll ??\n (<const TBatches extends readonly ChainMulticallBatch[]>(batches: TBatches) => {\n const resultMap = new Map<number, readonly MulticallResult<unknown>[]>();\n\n for (const batch of batches) {\n if (!supportedChainIds.includes(batch.chainId)) {\n return Effect.fail(\n new ClientNotFoundErrorClass({\n chainId: batch.chainId,\n message: `No client configured for chain ID ${batch.chainId}`,\n })\n );\n }\n }\n\n for (const batch of batches) {\n resultMap.set(\n batch.chainId,\n batch.calls.map(() => ({\n result: 0n,\n status: \"success\" as const,\n }))\n );\n }\n\n return Effect.succeed(resultMap);\n });\n\n const mockCrossChainReader: CrossChainReaderShape = {\n multicallAll,\n readAll,\n readSame,\n };\n\n return Layer.succeed(CrossChainReaderTag, CrossChainReaderTag.of(mockCrossChainReader));\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-deploy-service.js","sourceRoot":"","sources":["../../src/testing-kit/mock-deploy-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAiDtE,MAAM,eAAe,GAAG,4CAAuD,CAAC;AAChF,MAAM,YAAY,GAAG,oEAA4E,CAAC;AAClG,MAAM,gBAAgB,GACpB,wEAA+E,CAAC;AAElF,MAAM,eAAe,GAAuB;IAC1C,SAAS,EAAE,YAAY;IACvB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,eAAe;IAChC,iBAAiB,EAAE,UAAU;IAC7B,iBAAiB,EAAE,WAAW;IAC9B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,MAAiB;IAC5B,MAAM,EAAE,SAAS;IACjB,EAAE,EAAE,IAAI;IACR,eAAe,EAAE,YAAY;IAC7B,gBAAgB,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,aAAa,GAAsC;IACvD,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;IACrD,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,OAAO,CAAC;QACb,OAAO,EAAE,eAAe;QACxB,gBAAgB,EAAE,gBAAgB;QAClC,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,eAAe;KACzB,CAAC;IACJ,cAAc,EAAE,GAAG,EAAE,CACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,eAAe;YACxB,gBAAgB,EAAE,gBAAgB;YAClC,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC;IACJ,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5C,sBAAsB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;CACnD,CAAC;AA8BF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,SAAkC,EAAE,EACpC,gBAAgB,GAAG,CAAC,EACQ,EAAE,CAC9B,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtE,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;IAEzD,MAAM,EAAE,gBAAgB,CACtB,gBAAgB,EAChB,MAAM,CAAC,MAAM,CAC6B;IAE5C,cAAc,EAAE,gBAAgB,CAC9B,gBAAgB,EAChB,MAAM,CAAC,cAAc,CAC6B;IACpD,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC;IAC7E,sBAAsB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,sBAAsB,CAAC;CAC1F,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mock-deploy-service.js","sourceRoot":"","sources":["../../src/testing-kit/mock-deploy-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAiDtE,MAAM,eAAe,GAAG,4CAAuD,CAAC;AAChF,MAAM,YAAY,GAAG,oEAA4E,CAAC;AAClG,MAAM,gBAAgB,GACpB,wEAA+E,CAAC;AAElF,MAAM,eAAe,GAAuB;IAC1C,SAAS,EAAE,YAAY;IACvB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,eAAe;IAChC,iBAAiB,EAAE,UAAU;IAC7B,iBAAiB,EAAE,WAAW;IAC9B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,MAAiB;IAC5B,MAAM,EAAE,SAAS;IACjB,EAAE,EAAE,IAAI;IACR,eAAe,EAAE,YAAY;IAC7B,gBAAgB,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,aAAa,GAAsC;IACvD,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;IACrD,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,OAAO,CAAC;QACb,OAAO,EAAE,eAAe;QACxB,gBAAgB,EAAE,gBAAgB;QAClC,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,eAAe;KACzB,CAAC;IACJ,cAAc,EAAE,GAAG,EAAE,CACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,eAAe;YACxB,gBAAgB,EAAE,gBAAgB;YAClC,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC;IACJ,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5C,sBAAsB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;CACnD,CAAC;AA8BF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,SAAkC,EAAE,EACpC,gBAAgB,GAAG,CAAC,EACQ,EAAE,CAC9B,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtE,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;IAEzD,MAAM,EAAE,gBAAgB,CACtB,gBAAgB,EAChB,MAAM,CAAC,MAAM,CAC6B;IAE5C,cAAc,EAAE,gBAAgB,CAC9B,gBAAgB,EAChB,MAAM,CAAC,cAAc,CAC6B;IACpD,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC;IAC7E,sBAAsB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,sBAAsB,CAAC;CAC1F,CAAC,CAAC,CAAC","sourcesContent":["import type { Layer } from \"effect\";\nimport { Effect, SubscriptionRef } from \"effect\";\nimport type { Abi, Address, ContractConstructorArgs, Hash, Hex, TransactionReceipt } from \"viem\";\nimport { MIN_TX_GAS } from \"@/src/constants/index.js\";\nimport type { DeployResult, DeployServiceShape } from \"@/src/deploy/index.js\";\nimport { DeployService } from \"@/src/deploy/index.js\";\nimport type { TxState } from \"@/src/tx/index.js\";\nimport { makeMockServiceLayer, withChainIdCheck } from \"./helpers.js\";\n\ntype DeployArgsField<TAbi extends Abi> =\n readonly [] extends ContractConstructorArgs<TAbi>\n ? { args?: ContractConstructorArgs<TAbi> | undefined }\n : { args: ContractConstructorArgs<TAbi> };\n\n/**\n * Configuration for the mock DeployService\n *\n * All methods are optional - sensible defaults are provided.\n * Override specific methods to customize mock behavior for your tests.\n */\nexport type MockDeployServiceConfig = {\n deploy?: <TAbi extends Abi>(\n params: {\n chainId: number;\n abi: TAbi;\n bytecode: Hex;\n value?: bigint;\n account?: Address;\n gas?: bigint;\n } & DeployArgsField<TAbi>\n ) => Effect.Effect<DeployResult>;\n\n deployAndTrack?: <TAbi extends Abi>(\n params: {\n chainId: number;\n abi: TAbi;\n bytecode: Hex;\n value?: bigint;\n account?: Address;\n } & DeployArgsField<TAbi>\n ) => Effect.Effect<{\n stateRef: SubscriptionRef.SubscriptionRef<TxState>;\n result: Effect.Effect<DeployResult>;\n }>;\n\n computeAddress?: (params: { from: Address; nonce: bigint }) => Effect.Effect<Address>;\n\n verifyDeployment?: (params: { chainId: number; address: Address }) => Effect.Effect<boolean>;\n\n verifyDeploymentStrict?: (params: {\n chainId: number;\n address: Address;\n expectedBytecode: Hex;\n }) => Effect.Effect<boolean>;\n};\n\nconst DEFAULT_ADDRESS = \"0x1234567890123456789012345678901234567890\" as Address;\nconst DEFAULT_HASH = \"0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef\" as Hash;\nconst DEFAULT_BYTECODE =\n \"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063\" as Hex;\n\nconst DEFAULT_RECEIPT: TransactionReceipt = {\n blockHash: DEFAULT_HASH,\n blockNumber: 1000n,\n contractAddress: DEFAULT_ADDRESS,\n cumulativeGasUsed: MIN_TX_GAS,\n effectiveGasPrice: 1000000000n,\n from: DEFAULT_ADDRESS,\n gasUsed: MIN_TX_GAS,\n logs: [],\n logsBloom: \"0x00\" as Address,\n status: \"success\",\n to: null,\n transactionHash: DEFAULT_HASH,\n transactionIndex: 0,\n type: \"eip1559\",\n};\n\nconst defaultConfig: Required<MockDeployServiceConfig> = {\n computeAddress: () => Effect.succeed(DEFAULT_ADDRESS),\n deploy: () =>\n Effect.succeed({\n address: DEFAULT_ADDRESS,\n deployedBytecode: DEFAULT_BYTECODE,\n hash: DEFAULT_HASH,\n receipt: DEFAULT_RECEIPT,\n }),\n deployAndTrack: () =>\n Effect.gen(function* () {\n const stateRef = yield* SubscriptionRef.make<TxState>({ status: \"idle\" });\n const result = Effect.succeed({\n address: DEFAULT_ADDRESS,\n deployedBytecode: DEFAULT_BYTECODE,\n hash: DEFAULT_HASH,\n receipt: DEFAULT_RECEIPT,\n });\n return { result, stateRef };\n }),\n verifyDeployment: () => Effect.succeed(true),\n verifyDeploymentStrict: () => Effect.succeed(true),\n};\n\n/**\n * Creates a mock DeployService layer for testing\n *\n * @param config - Optional configuration to override default mock behaviors\n * @param supportedChainId - The chainId this mock supports (default: 1 mainnet)\n *\n * @example\n * ```typescript\n * // Basic usage with defaults\n * const layer = makeMockDeployServiceLayer();\n *\n * // Override specific methods\n * const layer = makeMockDeployServiceLayer({\n * deploy: () => Effect.succeed({\n * hash: \"0x...\",\n * address: \"0x...\",\n * receipt: { ... },\n * deployedBytecode: \"0x...\",\n * }),\n * });\n *\n * // Use in tests\n * Effect.gen(function* () {\n * const deployService = yield* DeployService;\n * const result = yield* deployService.deploy({ ... });\n * }).pipe(Effect.provide(layer));\n * ```\n */\nexport const makeMockDeployServiceLayer = (\n config: MockDeployServiceConfig = {},\n supportedChainId = 1\n): Layer.Layer<DeployService> =>\n makeMockServiceLayer(DeployService, defaultConfig, config, (merged) => ({\n computeAddress: (params) => merged.computeAddress(params),\n // Cast to widen error type from ClientNotFoundError to full DeployService errors\n deploy: withChainIdCheck(\n supportedChainId,\n merged.deploy\n ) as unknown as DeployServiceShape[\"deploy\"],\n // For deployAndTrack, cast the whole function to match the shape\n deployAndTrack: withChainIdCheck(\n supportedChainId,\n merged.deployAndTrack\n ) as unknown as DeployServiceShape[\"deployAndTrack\"],\n verifyDeployment: withChainIdCheck(supportedChainId, merged.verifyDeployment),\n verifyDeploymentStrict: withChainIdCheck(supportedChainId, merged.verifyDeploymentStrict),\n }));\n"]}
|