@prb/effect-evm 1.0.0-beta.0 → 1.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DOCS.md +13 -0
- package/README.md +4 -0
- package/dist/abi/erc165.js.map +1 -1
- package/dist/abi/erc20-no-output.js.map +1 -1
- package/dist/abi/erc20.js.map +1 -1
- package/dist/abi/erc721.js.map +1 -1
- package/dist/abi/index.js.map +1 -1
- package/dist/balance/index.js.map +1 -1
- package/dist/balance/service.js.map +1 -1
- package/dist/balance/service.test.integration.d.ts +2 -0
- package/dist/balance/service.test.integration.d.ts.map +1 -0
- package/dist/balance/service.test.integration.js +289 -0
- package/dist/balance/service.test.integration.js.map +1 -0
- package/dist/balance/utils.js.map +1 -1
- package/dist/block/errors.js.map +1 -1
- package/dist/block/index.js.map +1 -1
- package/dist/block/service.js.map +1 -1
- package/dist/block/service.test.integration.d.ts +2 -0
- package/dist/block/service.test.integration.d.ts.map +1 -0
- package/dist/block/service.test.integration.js +190 -0
- package/dist/block/service.test.integration.js.map +1 -0
- package/dist/constants/index.d.ts +0 -4
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -5
- package/dist/constants/index.js.map +1 -1
- package/dist/contract/cross-chain-reader.d.ts +14 -10
- package/dist/contract/cross-chain-reader.d.ts.map +1 -1
- package/dist/contract/cross-chain-reader.js +2 -8
- package/dist/contract/cross-chain-reader.js.map +1 -1
- package/dist/contract/index.js.map +1 -1
- package/dist/contract/pipeline/index.js.map +1 -1
- package/dist/contract/pipeline/internal/core.d.ts +2 -2
- package/dist/contract/pipeline/internal/core.d.ts.map +1 -1
- package/dist/contract/pipeline/internal/core.js.map +1 -1
- package/dist/contract/pipeline/internal/helpers.js.map +1 -1
- package/dist/contract/pipeline/internal/nonce.js.map +1 -1
- package/dist/contract/pipeline/internal/prepare.js.map +1 -1
- package/dist/contract/pipeline/internal/receipt.d.ts +2 -2
- package/dist/contract/pipeline/internal/receipt.d.ts.map +1 -1
- package/dist/contract/pipeline/internal/receipt.js +1 -1
- package/dist/contract/pipeline/internal/receipt.js.map +1 -1
- package/dist/contract/pipeline/live.js.map +1 -1
- package/dist/contract/pipeline/service.d.ts +3 -3
- package/dist/contract/pipeline/service.d.ts.map +1 -1
- package/dist/contract/pipeline/service.js.map +1 -1
- package/dist/contract/pipeline/types.d.ts +2 -2
- package/dist/contract/pipeline/types.d.ts.map +1 -1
- package/dist/contract/pipeline/types.js.map +1 -1
- package/dist/contract/pipeline/write-and-track.d.ts.map +1 -1
- package/dist/contract/pipeline/write-and-track.js +5 -6
- package/dist/contract/pipeline/write-and-track.js.map +1 -1
- package/dist/contract/pipeline/write-and-wait.d.ts +1 -1
- package/dist/contract/pipeline/write-and-wait.d.ts.map +1 -1
- package/dist/contract/pipeline/write-and-wait.js.map +1 -1
- package/dist/contract/pipeline.js.map +1 -1
- package/dist/contract/reader.js.map +1 -1
- package/dist/contract/typed-contract.js.map +1 -1
- package/dist/contract/writer.js.map +1 -1
- package/dist/core/clients/index.js.map +1 -1
- package/dist/core/clients/public-client.js.map +1 -1
- package/dist/core/clients/wallet-client.js.map +1 -1
- package/dist/core/errors/client.js.map +1 -1
- package/dist/core/errors/contract.js.map +1 -1
- package/dist/core/errors/erc20.js.map +1 -1
- package/dist/core/errors/event.js.map +1 -1
- package/dist/core/errors/index.js.map +1 -1
- package/dist/core/errors/predicates.js.map +1 -1
- package/dist/core/errors/transaction.d.ts +10 -8
- package/dist/core/errors/transaction.d.ts.map +1 -1
- package/dist/core/errors/transaction.js +126 -4
- package/dist/core/errors/transaction.js.map +1 -1
- package/dist/core/errors/viem-mapper.d.ts +3 -3
- package/dist/core/errors/viem-mapper.d.ts.map +1 -1
- package/dist/core/errors/viem-mapper.js +14 -16
- package/dist/core/errors/viem-mapper.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/deploy/errors.js.map +1 -1
- package/dist/deploy/index.js.map +1 -1
- package/dist/deploy/service.d.ts +3 -3
- package/dist/deploy/service.d.ts.map +1 -1
- package/dist/deploy/service.js.map +1 -1
- package/dist/eip7702/erc7579.js.map +1 -1
- package/dist/eip7702/errors.d.ts +3 -3
- package/dist/eip7702/errors.d.ts.map +1 -1
- package/dist/eip7702/errors.js +1 -1
- package/dist/eip7702/errors.js.map +1 -1
- package/dist/eip7702/index.js.map +1 -1
- package/dist/eip7702/service.d.ts +8 -8
- package/dist/eip7702/service.d.ts.map +1 -1
- package/dist/eip7702/service.js +2 -2
- package/dist/eip7702/service.js.map +1 -1
- package/dist/ens/ens.d.ts.map +1 -1
- package/dist/ens/ens.js +6 -6
- package/dist/ens/ens.js.map +1 -1
- package/dist/ens/errors.js.map +1 -1
- package/dist/ens/index.js.map +1 -1
- package/dist/erc20/allowance/core.js.map +1 -1
- package/dist/erc20/allowance/index.js.map +1 -1
- package/dist/erc20/allowance/no-output.js.map +1 -1
- package/dist/erc20/allowance/types.js.map +1 -1
- package/dist/erc20/index.d.ts +1 -0
- package/dist/erc20/index.d.ts.map +1 -1
- package/dist/erc20/index.js +1 -0
- package/dist/erc20/index.js.map +1 -1
- package/dist/erc20/metadata.d.ts +16 -0
- package/dist/erc20/metadata.d.ts.map +1 -0
- package/dist/erc20/metadata.js +67 -0
- package/dist/erc20/metadata.js.map +1 -0
- package/dist/erc721/errors.js.map +1 -1
- package/dist/erc721/helpers.js.map +1 -1
- package/dist/erc721/index.js.map +1 -1
- package/dist/erc721/metadata.js.map +1 -1
- package/dist/erc721/service.js.map +1 -1
- package/dist/events/backfill.js.map +1 -1
- package/dist/events/backfill.test.integration.d.ts +2 -0
- package/dist/events/backfill.test.integration.d.ts.map +1 -0
- package/dist/events/backfill.test.integration.js +112 -0
- package/dist/events/backfill.test.integration.js.map +1 -0
- package/dist/events/cursor.js.map +1 -1
- package/dist/events/decoder.js.map +1 -1
- package/dist/events/index.js.map +1 -1
- package/dist/events/reliable-stream-simple.test.integration.d.ts +2 -0
- package/dist/events/reliable-stream-simple.test.integration.d.ts.map +1 -0
- package/dist/events/reliable-stream-simple.test.integration.js +22 -0
- package/dist/events/reliable-stream-simple.test.integration.js.map +1 -0
- package/dist/events/reliable-stream.js.map +1 -1
- package/dist/events/reliable-stream.test.integration.d.ts +2 -0
- package/dist/events/reliable-stream.test.integration.d.ts.map +1 -0
- package/dist/events/reliable-stream.test.integration.js +327 -0
- package/dist/events/reliable-stream.test.integration.js.map +1 -0
- package/dist/events/stream.js.map +1 -1
- package/dist/events/stream.test.integration.d.ts +2 -0
- package/dist/events/stream.test.integration.d.ts.map +1 -0
- package/dist/events/stream.test.integration.js +120 -0
- package/dist/events/stream.test.integration.js.map +1 -0
- package/dist/gas/errors.js.map +1 -1
- package/dist/gas/estimator.d.ts.map +1 -1
- package/dist/gas/estimator.js +75 -58
- package/dist/gas/estimator.js.map +1 -1
- package/dist/gas/index.js.map +1 -1
- package/dist/gas/service.d.ts.map +1 -1
- package/dist/gas/service.js +14 -2
- package/dist/gas/service.js.map +1 -1
- package/dist/gas/service.test.integration.d.ts +2 -0
- package/dist/gas/service.test.integration.d.ts.map +1 -0
- package/dist/gas/service.test.integration.js +152 -0
- package/dist/gas/service.test.integration.js.map +1 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/react-hooks/convenience/index.js.map +1 -1
- package/dist/integrations/react-hooks/internal/error.js.map +1 -1
- package/dist/integrations/react-hooks/internal/is-dev.js.map +1 -1
- package/dist/integrations/react-hooks/internal/runtime.js.map +1 -1
- package/dist/integrations/react-hooks/internal/scoped-run.js.map +1 -1
- package/dist/integrations/react-hooks/internal/stable.js.map +1 -1
- package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.js.map +1 -1
- package/dist/integrations/react-hooks/primitives/use-effect.js.map +1 -1
- package/dist/integrations/react-hooks/primitives/use-fork-effect.js.map +1 -1
- package/dist/integrations/react-hooks/primitives/use-stream.js.map +1 -1
- package/dist/integrations/react-hooks/primitives.js.map +1 -1
- package/dist/integrations/react-hooks/provider.js.map +1 -1
- package/dist/integrations/react-hooks/wagmi/index.js.map +1 -1
- package/dist/integrations/react-hooks/wallet-provider-ref.js.map +1 -1
- package/dist/integrations/wagmi/index.js.map +1 -1
- package/dist/integrations/wagmi/layers.js.map +1 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/numbers.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/stream-adapters.js.map +1 -1
- package/dist/internal/viem-effect.js.map +1 -1
- package/dist/nonce/index.js.map +1 -1
- package/dist/nonce/manager.js.map +1 -1
- package/dist/nonce/service.js.map +1 -1
- package/dist/nonce/service.test.integration.d.ts +2 -0
- package/dist/nonce/service.test.integration.d.ts.map +1 -0
- package/dist/nonce/service.test.integration.js +141 -0
- package/dist/nonce/service.test.integration.js.map +1 -0
- package/dist/platform/browser/cursor-store/index.js.map +1 -1
- package/dist/platform/browser/cursor-store/local-storage.js.map +1 -1
- package/dist/platform/browser/index.js.map +1 -1
- package/dist/platform/browser/layers.js.map +1 -1
- package/dist/platform/browser/storage/errors.js.map +1 -1
- package/dist/platform/browser/storage/index.js.map +1 -1
- package/dist/platform/browser/storage/local-storage.js.map +1 -1
- package/dist/platform/browser/tx-persistence/index.js.map +1 -1
- package/dist/platform/browser/tx-persistence/persistence.js.map +1 -1
- package/dist/platform/browser/tx-store/errors.js.map +1 -1
- package/dist/platform/browser/tx-store/index.js.map +1 -1
- package/dist/platform/browser/tx-store/local-storage.js.map +1 -1
- package/dist/platform/browser/tx-store/store.js.map +1 -1
- package/dist/platform/browser/tx-store/types.js.map +1 -1
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/layers.js.map +1 -1
- package/dist/presets/transports.js.map +1 -1
- package/dist/query/chain-head.js.map +1 -1
- package/dist/query/client.js.map +1 -1
- package/dist/query/client.test.integration.d.ts +2 -0
- package/dist/query/client.test.integration.d.ts.map +1 -0
- package/dist/query/client.test.integration.js +94 -0
- package/dist/query/client.test.integration.js.map +1 -0
- package/dist/query/contract-query.js.map +1 -1
- package/dist/query/contract-query.test.integration.d.ts +2 -0
- package/dist/query/contract-query.test.integration.d.ts.map +1 -0
- package/dist/query/contract-query.test.integration.js +133 -0
- package/dist/query/contract-query.test.integration.js.map +1 -0
- package/dist/query/index.js.map +1 -1
- package/dist/query/multicall-batcher.js.map +1 -1
- package/dist/react-hooks/index.d.ts +0 -2
- package/dist/react-hooks/index.d.ts.map +1 -1
- package/dist/react-hooks/index.js +0 -2
- package/dist/react-hooks/index.js.map +1 -1
- package/dist/react-hooks/wagmi/index.js.map +1 -1
- package/dist/rpc/cache.js.map +1 -1
- package/dist/rpc/circuit-breaker.js.map +1 -1
- package/dist/rpc/dedup.js.map +1 -1
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/retry.js.map +1 -1
- package/dist/rpc/routemesh.js.map +1 -1
- package/dist/signature/errors.js.map +1 -1
- package/dist/signature/index.js.map +1 -1
- package/dist/signature/service.js.map +1 -1
- package/dist/signature/service.test.integration.d.ts +2 -0
- package/dist/signature/service.test.integration.d.ts.map +1 -0
- package/dist/signature/service.test.integration.js +179 -0
- package/dist/signature/service.test.integration.js.map +1 -0
- package/dist/signature/utils.js.map +1 -1
- package/dist/simulation/errors.js.map +1 -1
- package/dist/simulation/index.js.map +1 -1
- package/dist/simulation/service.js.map +1 -1
- package/dist/simulation/tenderly.js.map +1 -1
- package/dist/simulation/tenderly.test.integration.d.ts +2 -0
- package/dist/simulation/tenderly.test.integration.d.ts.map +1 -0
- package/dist/simulation/tenderly.test.integration.js +104 -0
- package/dist/simulation/tenderly.test.integration.js.map +1 -0
- package/dist/simulation/types.js.map +1 -1
- package/dist/subscriptions/block-subscription.js.map +1 -1
- package/dist/subscriptions/errors.js.map +1 -1
- package/dist/subscriptions/index.js.map +1 -1
- package/dist/subscriptions/log-subscription.js.map +1 -1
- package/dist/subscriptions/pending-tx.d.ts +1 -1
- package/dist/subscriptions/pending-tx.d.ts.map +1 -1
- package/dist/subscriptions/pending-tx.js +1 -1
- package/dist/subscriptions/pending-tx.js.map +1 -1
- package/dist/subscriptions/service.d.ts +2 -2
- package/dist/subscriptions/service.d.ts.map +1 -1
- package/dist/subscriptions/service.js +4 -4
- package/dist/subscriptions/service.js.map +1 -1
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/logger.js.map +1 -1
- package/dist/telemetry/tracer.d.ts +2 -2
- package/dist/telemetry/tracer.js +2 -2
- package/dist/telemetry/tracer.js.map +1 -1
- package/dist/testing-kit/_fixtures/addresses.js.map +1 -1
- package/dist/testing-kit/_fixtures/receipts.js.map +1 -1
- package/dist/testing-kit/helpers.js.map +1 -1
- package/dist/testing-kit/index.js.map +1 -1
- package/dist/testing-kit/mock-balance-service.js.map +1 -1
- package/dist/testing-kit/mock-block-service.js.map +1 -1
- package/dist/testing-kit/mock-cross-chain-reader.d.ts +3 -10
- package/dist/testing-kit/mock-cross-chain-reader.d.ts.map +1 -1
- package/dist/testing-kit/mock-cross-chain-reader.js.map +1 -1
- package/dist/testing-kit/mock-deploy-service.js.map +1 -1
- package/dist/testing-kit/mock-erc721-service.js.map +1 -1
- package/dist/testing-kit/mock-gas-service.js.map +1 -1
- package/dist/testing-kit/mock-nonce-service.js.map +1 -1
- package/dist/testing-kit/mock-public-client.js.map +1 -1
- package/dist/testing-kit/mock-signature-service.js.map +1 -1
- package/dist/testing-kit/mock-simulation-service.js.map +1 -1
- package/dist/testing-kit/mock-subscription-service.d.ts +2 -2
- package/dist/testing-kit/mock-subscription-service.d.ts.map +1 -1
- package/dist/testing-kit/mock-subscription-service.js +5 -5
- package/dist/testing-kit/mock-subscription-service.js.map +1 -1
- package/dist/testing-kit/mock-transfer-service.d.ts +3 -3
- package/dist/testing-kit/mock-transfer-service.d.ts.map +1 -1
- package/dist/testing-kit/mock-transfer-service.js.map +1 -1
- package/dist/testing-kit/mock-wallet-client.js.map +1 -1
- package/dist/testing-kit/mock-wallet-provider.js.map +1 -1
- package/dist/testing-kit/test-layer.js.map +1 -1
- package/dist/transfer/index.js.map +1 -1
- package/dist/transfer/service.d.ts +8 -11
- package/dist/transfer/service.d.ts.map +1 -1
- package/dist/transfer/service.js +32 -13
- package/dist/transfer/service.js.map +1 -1
- package/dist/tx/fees.d.ts.map +1 -1
- package/dist/tx/fees.js +3 -0
- package/dist/tx/fees.js.map +1 -1
- package/dist/tx/index.js.map +1 -1
- package/dist/tx/manager.d.ts +3 -2
- package/dist/tx/manager.d.ts.map +1 -1
- package/dist/tx/manager.js +232 -216
- package/dist/tx/manager.js.map +1 -1
- package/dist/tx/manager.test.integration.d.ts +2 -0
- package/dist/tx/manager.test.integration.d.ts.map +1 -0
- package/dist/tx/manager.test.integration.js +177 -0
- package/dist/tx/manager.test.integration.js.map +1 -0
- package/dist/tx/policy.d.ts +1 -1
- package/dist/tx/policy.d.ts.map +1 -1
- package/dist/tx/policy.js.map +1 -1
- package/dist/tx/replacement.d.ts +3 -3
- package/dist/tx/replacement.d.ts.map +1 -1
- package/dist/tx/replacement.js +3 -3
- package/dist/tx/replacement.js.map +1 -1
- package/dist/tx/tracker.d.ts +6 -6
- package/dist/tx/tracker.d.ts.map +1 -1
- package/dist/tx/tracker.js +9 -9
- package/dist/tx/tracker.js.map +1 -1
- package/dist/types/abi.js.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/params.d.ts +1 -1
- package/dist/types/params.d.ts.map +1 -1
- package/dist/types/params.js.map +1 -1
- package/dist/types/tx-overrides.d.ts +1 -1
- package/dist/types/tx-overrides.d.ts.map +1 -1
- package/dist/types/tx-overrides.js.map +1 -1
- package/dist/wagmi/index.js.map +1 -1
- package/dist/wagmi/layers.js.map +1 -1
- package/dist/wallet/errors.d.ts +3 -3
- package/dist/wallet/errors.d.ts.map +1 -1
- package/dist/wallet/errors.js +1 -1
- package/dist/wallet/errors.js.map +1 -1
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/lifecycle.js.map +1 -1
- package/dist/wallet/operations.d.ts +2 -2
- package/dist/wallet/operations.d.ts.map +1 -1
- package/dist/wallet/operations.js +8 -15
- package/dist/wallet/operations.js.map +1 -1
- package/dist/wallet/provider-ref.js.map +1 -1
- package/dist/wallet/service.d.ts +2 -2
- package/dist/wallet/service.d.ts.map +1 -1
- package/dist/wallet/service.js.map +1 -1
- package/dist/wallet/types.js.map +1 -1
- package/package.json +25 -14
- package/dist/react-hooks/use-is-safe-multisig.d.ts +0 -2
- package/dist/react-hooks/use-is-safe-multisig.d.ts.map +0 -1
- package/dist/react-hooks/use-is-safe-multisig.js +0 -44
- package/dist/react-hooks/use-is-safe-multisig.js.map +0 -1
- package/dist/react-hooks/use-safe-context.d.ts +0 -2
- package/dist/react-hooks/use-safe-context.d.ts.map +0 -1
- package/dist/react-hooks/use-safe-context.js +0 -41
- package/dist/react-hooks/use-safe-context.js.map +0 -1
- package/dist/safe/adapter.d.ts +0 -9
- package/dist/safe/adapter.d.ts.map +0 -1
- package/dist/safe/adapter.js +0 -13
- package/dist/safe/adapter.js.map +0 -1
- package/dist/safe/detection.d.ts +0 -26
- package/dist/safe/detection.d.ts.map +0 -1
- package/dist/safe/detection.js +0 -102
- package/dist/safe/detection.js.map +0 -1
- package/dist/safe/errors.d.ts +0 -79
- package/dist/safe/errors.d.ts.map +0 -1
- package/dist/safe/errors.js +0 -34
- package/dist/safe/errors.js.map +0 -1
- package/dist/safe/index.d.ts +0 -8
- package/dist/safe/index.d.ts.map +0 -1
- package/dist/safe/index.js +0 -6
- package/dist/safe/index.js.map +0 -1
- package/dist/safe/live.d.ts +0 -8
- package/dist/safe/live.d.ts.map +0 -1
- package/dist/safe/live.js +0 -250
- package/dist/safe/live.js.map +0 -1
- package/dist/safe/service.d.ts +0 -26
- package/dist/safe/service.d.ts.map +0 -1
- package/dist/safe/service.js +0 -4
- package/dist/safe/service.js.map +0 -1
- package/dist/safe/simulation/abis.d.ts +0 -73
- package/dist/safe/simulation/abis.d.ts.map +0 -1
- package/dist/safe/simulation/abis.js +0 -61
- package/dist/safe/simulation/abis.js.map +0 -1
- package/dist/safe/simulation/addresses.d.ts +0 -4
- package/dist/safe/simulation/addresses.d.ts.map +0 -1
- package/dist/safe/simulation/addresses.js +0 -40
- package/dist/safe/simulation/addresses.js.map +0 -1
- package/dist/safe/simulation/encoding.d.ts +0 -16
- package/dist/safe/simulation/encoding.d.ts.map +0 -1
- package/dist/safe/simulation/encoding.js +0 -36
- package/dist/safe/simulation/encoding.js.map +0 -1
- package/dist/safe/simulation/errors.d.ts +0 -56
- package/dist/safe/simulation/errors.d.ts.map +0 -1
- package/dist/safe/simulation/errors.js +0 -37
- package/dist/safe/simulation/errors.js.map +0 -1
- package/dist/safe/simulation/index.d.ts +0 -7
- package/dist/safe/simulation/index.d.ts.map +0 -1
- package/dist/safe/simulation/index.js +0 -6
- package/dist/safe/simulation/index.js.map +0 -1
- package/dist/safe/simulation/service.d.ts +0 -14
- package/dist/safe/simulation/service.d.ts.map +0 -1
- package/dist/safe/simulation/service.js +0 -140
- package/dist/safe/simulation/service.js.map +0 -1
- package/dist/safe/simulation/types.d.ts +0 -20
- package/dist/safe/simulation/types.d.ts.map +0 -1
- package/dist/safe/simulation/types.js +0 -2
- package/dist/safe/simulation/types.js.map +0 -1
- package/dist/safe/types.d.ts +0 -61
- package/dist/safe/types.d.ts.map +0 -1
- package/dist/safe/types.js +0 -2
- package/dist/safe/types.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Context, Effect, Layer } from "effect";
|
|
2
2
|
import type { AccessList, Account, Address, Authorization, Hash, Hex } from "viem";
|
|
3
|
-
import type { ClientNotFoundError, ReceiptTimeoutError,
|
|
3
|
+
import type { ClientNotFoundError, ReceiptTimeoutError, TxFailedError, TxReplacedError, WrongNetworkError } from "../core/index.js";
|
|
4
4
|
import { InsufficientFundsError, PublicClientService, UserRejectedError, WalletClientService, WalletNotConnectedError } from "../core/index.js";
|
|
5
5
|
import type { TxPolicy } from "../tx/index.js";
|
|
6
6
|
import { TxManager } from "../tx/index.js";
|
|
7
|
-
import type {
|
|
7
|
+
import type { TxResult } from "../types/index.js";
|
|
8
8
|
import type { Erc7579ModeCode } from "./erc7579.js";
|
|
9
|
-
import { Eip7702AuthorizationPreparationError, Eip7702AuthorizationSigningError,
|
|
9
|
+
import { Eip7702AuthorizationPreparationError, Eip7702AuthorizationSigningError, Eip7702SendTxError } from "./errors.js";
|
|
10
10
|
export type Eip7702Call = {
|
|
11
11
|
readonly to: Address;
|
|
12
12
|
readonly data: Hex;
|
|
@@ -39,7 +39,7 @@ export type ApproveAndExecuteParams = {
|
|
|
39
39
|
readonly mode?: Erc7579ModeCode | undefined;
|
|
40
40
|
readonly tx?: Eip7702TxOverrides | undefined;
|
|
41
41
|
};
|
|
42
|
-
export type DelegateAndExecuteResult =
|
|
42
|
+
export type DelegateAndExecuteResult = TxResult;
|
|
43
43
|
export type Eip7702ServiceShape = {
|
|
44
44
|
readonly prepareAuthorization: (params: {
|
|
45
45
|
readonly chainId: number;
|
|
@@ -47,14 +47,14 @@ export type Eip7702ServiceShape = {
|
|
|
47
47
|
readonly contractAddress: Address;
|
|
48
48
|
readonly executor?: Eip7702AuthorizationExecutor | undefined;
|
|
49
49
|
}) => Effect.Effect<Authorization<number>, Eip7702AuthorizationPreparationError | ClientNotFoundError>;
|
|
50
|
-
readonly delegateAndExecuteErc7579Batch: (params: DelegateAndExecuteErc7579BatchParams) => Effect.Effect<Hash, Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError |
|
|
50
|
+
readonly delegateAndExecuteErc7579Batch: (params: DelegateAndExecuteErc7579BatchParams) => Effect.Effect<Hash, Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | Eip7702SendTxError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError>;
|
|
51
51
|
readonly delegateAndExecuteErc7579BatchAndWait: (params: DelegateAndExecuteErc7579BatchParams & {
|
|
52
52
|
readonly policy?: TxPolicy | undefined;
|
|
53
|
-
}) => Effect.Effect<DelegateAndExecuteResult,
|
|
54
|
-
readonly approveAndExecute: (params: ApproveAndExecuteParams) => Effect.Effect<Hash, Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError |
|
|
53
|
+
}) => Effect.Effect<DelegateAndExecuteResult, Eip7702SendTxError | Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | ReceiptTimeoutError | TxFailedError | TxReplacedError>;
|
|
54
|
+
readonly approveAndExecute: (params: ApproveAndExecuteParams) => Effect.Effect<Hash, Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | Eip7702SendTxError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError>;
|
|
55
55
|
readonly approveAndExecuteAndWait: (params: ApproveAndExecuteParams & {
|
|
56
56
|
readonly policy?: TxPolicy | undefined;
|
|
57
|
-
}) => Effect.Effect<DelegateAndExecuteResult,
|
|
57
|
+
}) => Effect.Effect<DelegateAndExecuteResult, Eip7702SendTxError | Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | ReceiptTimeoutError | TxFailedError | TxReplacedError>;
|
|
58
58
|
};
|
|
59
59
|
declare const Eip7702Service_base: Context.TagClass<Eip7702Service, "ew3/Eip7702Service", Eip7702ServiceShape>;
|
|
60
60
|
export declare class Eip7702Service extends Eip7702Service_base {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/eip7702/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAGnF,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/eip7702/service.ts"],"names":[],"mappings":"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"}
|
package/dist/eip7702/service.js
CHANGED
|
@@ -4,7 +4,7 @@ import { prepareAuthorization } from "viem/actions";
|
|
|
4
4
|
import { InsufficientFundsError, isInsufficientFunds, isUserRejection, PublicClientService, UserRejectedError, WalletClientService, WalletNotConnectedError, } from "../core/index.js";
|
|
5
5
|
import { defaultPolicy, TxManager } from "../tx/index.js";
|
|
6
6
|
import { ERC7579_MODE_SIMPLE_BATCH, encodeErc7579BatchExecutionCalldata, encodeErc7579ExecuteCalldata, } from "./erc7579.js";
|
|
7
|
-
import { Eip7702AuthorizationPreparationError, Eip7702AuthorizationSigningError,
|
|
7
|
+
import { Eip7702AuthorizationPreparationError, Eip7702AuthorizationSigningError, Eip7702SendTxError, } from "./errors.js";
|
|
8
8
|
function mapSendEip7702TransactionCause(chainId, cause) {
|
|
9
9
|
if (isUserRejection(cause)) {
|
|
10
10
|
return new UserRejectedError({
|
|
@@ -18,7 +18,7 @@ function mapSendEip7702TransactionCause(chainId, cause) {
|
|
|
18
18
|
required: "0",
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
return new
|
|
21
|
+
return new Eip7702SendTxError({
|
|
22
22
|
cause,
|
|
23
23
|
chainId,
|
|
24
24
|
message: cause instanceof Error ? cause.message : "Failed to send EIP-7702 transaction",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/eip7702/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/eip7702/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAQpD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EACL,yBAAyB,EACzB,mCAAmC,EACnC,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oCAAoC,EACpC,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAyCrB,SAAS,8BAA8B,CACrC,OAAe,EACf,KAAc;IAEd,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,iBAAiB,CAAC;YAC3B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;SAC9E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,sBAAsB,CAAC;YAChC,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oCAAoC;YACtF,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,kBAAkB,CAAC;QAC5B,KAAK;QACL,OAAO;QACP,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC;KACxF,CAAC,CAAC;AACL,CAAC;AAgFD,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAGlE;CAAG;AAEN,MAAM,cAAc,GAAG,CAAC,OAA0B,EAAW,EAAE,CAC7D,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AAE1D,MAAM,4BAA4B,GAAG,CACnC,OAA0B,EAC1B,aAAoC,EACoC,EAAE;IAC1E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC;QACvB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,gCAAgC,CAAC;YACnC,KAAK;YACL,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC;SAC1F,CAAC;QACJ,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC;KAC5C,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAC5C,cAAc,EACd,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC;IACvD,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;IAEnC,MAAM,0BAA0B,GAAG,CAAC,MAKnC,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,oCAAoC,CAAC;gBACvC,KAAK;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EACL,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0CAA0C;aACtF,CAAC;YACJ,GAAG,EAAE,GAAmC,EAAE,CACxC,oBAAoB,CAAC,YAAY,EAAE;gBACjC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM;aACpC,CAAmC;SACvC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,MAAM,mCAAmC,GAAG,CAAC,MAM5C,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,oCAAoC,CAAC;gBACvC,KAAK;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EACL,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0CAA0C;aACtF,CAAC;YACJ,GAAG,EAAE,GAAmC,EAAE,CACxC,oBAAoB,CAAC,YAAY,EAAE;gBACjC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM;gBACnC,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAmC;SACvC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,MAAM,uBAAuB,GAAG,CAAC,MAA4C,EAAE,EAAE,CAC/E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,uBAAuB,CAAC;gBAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,wDAAwD;aAClE,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;QACjC,MAAM,kBAAkB,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3E,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,mCAAmC,CAAC;YAC/D,OAAO;YACP,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,eAAe,EAAE,MAAM,CAAC,UAAU;YAClC,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,kBAAkB;SAC1B,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,4BAA4B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAExF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;SACxB,CAAC,CAAC,CAAC;QACJ,MAAM,iBAAiB,GAAG,mCAAmC,CAAC,UAAU,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,4BAA4B,CAAC;YACxC,iBAAiB;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,yBAAyB;SAC/C,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAEnC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;YACvE,GAAG,EAAE,GAAG,EAAE,CACR,YAAY,CAAC,eAAe,CAAC;gBAC3B,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU;gBACjC,OAAO;gBACP,iBAAiB,EAAE,CAAC,mBAAmB,CAAC;gBACxC,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,IAAI;gBACjC,IAAI;gBACJ,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG;gBACnB,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,YAAY;gBACrC,oBAAoB,EAAE,MAAM,CAAC,EAAE,EAAE,oBAAoB;gBACrD,KAAK,EAAE,OAAO;gBACd,EAAE;gBACF,IAAI,EAAE,SAAS;aAChB,CAAC;SACL,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,MAAM,8BAA8B,GAAG,CACrC,MAEC,EACD,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,cAAc,CAC7C,MAAM,CAAC,OAAO,EACd,IAAI,EACJ,MAAM,CAAC,cAAc,CACtB,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAA8B,CAAC;IACvD,CAAC,CAAC,CAAC;IAEL,MAAM,iBAAiB,GAAG,CAAC,MAA+B,EAAE,EAAE;QAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrC,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;QAEH,OAAO,uBAAuB,CAAC;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;YACxE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAC/B,MAEC,EACD,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,cAAc,CAC7C,MAAM,CAAC,OAAO,EACd,IAAI,EACJ,MAAM,CAAC,cAAc,CACtB,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAA8B,CAAC;IACvD,CAAC,CAAC,CAAC;IAEL,OAAO,cAAc,CAAC,EAAE,CAAC;QACvB,iBAAiB;QACjB,wBAAwB;QACxB,8BAA8B,EAAE,uBAAuB;QACvD,qCAAqC,EAAE,8BAA8B;QACrE,oBAAoB,EAAE,0BAA0B;KACjD,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport type { AccessList, Account, Address, Authorization, Hash, Hex } from \"viem\";\nimport { encodeFunctionData, erc20Abi } from \"viem\";\nimport { prepareAuthorization } from \"viem/actions\";\nimport type {\n ClientNotFoundError,\n ReceiptTimeoutError,\n TxFailedError,\n TxReplacedError,\n WrongNetworkError,\n} from \"@/src/core/index.js\";\nimport {\n InsufficientFundsError,\n isInsufficientFunds,\n isUserRejection,\n PublicClientService,\n UserRejectedError,\n WalletClientService,\n WalletNotConnectedError,\n} from \"@/src/core/index.js\";\nimport type { TxPolicy } from \"@/src/tx/index.js\";\nimport { defaultPolicy, TxManager } from \"@/src/tx/index.js\";\nimport type { TxResult } from \"@/src/types/index.js\";\nimport type { Erc7579ModeCode } from \"./erc7579.js\";\nimport {\n ERC7579_MODE_SIMPLE_BATCH,\n encodeErc7579BatchExecutionCalldata,\n encodeErc7579ExecuteCalldata,\n} from \"./erc7579.js\";\nimport {\n Eip7702AuthorizationPreparationError,\n Eip7702AuthorizationSigningError,\n Eip7702SendTxError,\n} from \"./errors.js\";\n\nexport type Eip7702Call = {\n readonly to: Address;\n readonly data: Hex;\n readonly value?: bigint | undefined;\n};\n\nexport type Eip7702AuthorizationExecutor = \"self\" | Address | Account;\n\nexport type Eip7702TxOverrides = {\n readonly accessList?: AccessList | undefined;\n readonly gas?: bigint | undefined;\n readonly maxFeePerGas?: bigint | undefined;\n readonly maxPriorityFeePerGas?: bigint | undefined;\n readonly nonce?: number | undefined;\n};\n\nexport type DelegateAndExecuteErc7579BatchParams = {\n readonly chainId: number;\n readonly account?: Address | Account | undefined;\n readonly delegation: Address;\n readonly calls: readonly Eip7702Call[];\n readonly mode?: Erc7579ModeCode | undefined;\n readonly tx?: Eip7702TxOverrides | undefined;\n};\n\nexport type ApproveAndExecuteParams = {\n readonly chainId: number;\n readonly account?: Address | Account | undefined;\n readonly delegation: Address;\n readonly token: Address;\n readonly spender: Address;\n readonly amount: bigint;\n readonly call: Eip7702Call;\n readonly mode?: Erc7579ModeCode | undefined;\n readonly tx?: Eip7702TxOverrides | undefined;\n};\n\nexport type DelegateAndExecuteResult = TxResult;\n\nfunction mapSendEip7702TransactionCause(\n chainId: number,\n cause: unknown\n): Eip7702SendTxError | InsufficientFundsError | UserRejectedError {\n if (isUserRejection(cause)) {\n return new UserRejectedError({\n message: cause instanceof Error ? cause.message : \"User rejected the request\",\n });\n }\n\n if (isInsufficientFunds(cause)) {\n return new InsufficientFundsError({\n available: \"0\",\n message: cause instanceof Error ? cause.message : \"Insufficient funds for transaction\",\n required: \"0\",\n });\n }\n\n return new Eip7702SendTxError({\n cause,\n chainId,\n message: cause instanceof Error ? cause.message : \"Failed to send EIP-7702 transaction\",\n });\n}\n\nexport type Eip7702ServiceShape = {\n readonly prepareAuthorization: (params: {\n readonly chainId: number;\n readonly account: Address | Account;\n readonly contractAddress: Address;\n readonly executor?: Eip7702AuthorizationExecutor | undefined;\n }) => Effect.Effect<\n Authorization<number>,\n Eip7702AuthorizationPreparationError | ClientNotFoundError\n >;\n\n readonly delegateAndExecuteErc7579Batch: (\n params: DelegateAndExecuteErc7579BatchParams\n ) => Effect.Effect<\n Hash,\n | Eip7702AuthorizationPreparationError\n | Eip7702AuthorizationSigningError\n | Eip7702SendTxError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n >;\n\n readonly delegateAndExecuteErc7579BatchAndWait: (\n params: DelegateAndExecuteErc7579BatchParams & {\n readonly policy?: TxPolicy | undefined;\n }\n ) => Effect.Effect<\n DelegateAndExecuteResult,\n | Eip7702SendTxError\n | Eip7702AuthorizationPreparationError\n | Eip7702AuthorizationSigningError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n | ReceiptTimeoutError\n | TxFailedError\n | TxReplacedError\n >;\n\n readonly approveAndExecute: (\n params: ApproveAndExecuteParams\n ) => Effect.Effect<\n Hash,\n | Eip7702AuthorizationPreparationError\n | Eip7702AuthorizationSigningError\n | Eip7702SendTxError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n >;\n\n readonly approveAndExecuteAndWait: (\n params: ApproveAndExecuteParams & {\n readonly policy?: TxPolicy | undefined;\n }\n ) => Effect.Effect<\n DelegateAndExecuteResult,\n | Eip7702SendTxError\n | Eip7702AuthorizationPreparationError\n | Eip7702AuthorizationSigningError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n | ReceiptTimeoutError\n | TxFailedError\n | TxReplacedError\n >;\n};\n\nexport class Eip7702Service extends Context.Tag(\"ew3/Eip7702Service\")<\n Eip7702Service,\n Eip7702ServiceShape\n>() {}\n\nconst accountAddress = (account: Address | Account): Address =>\n typeof account === \"string\" ? account : account.address;\n\nconst signAuthorizationIfSupported = (\n account: Address | Account,\n authorization: Authorization<number>\n): Effect.Effect<Authorization<number>, Eip7702AuthorizationSigningError> => {\n if (typeof account === \"string\") {\n return Effect.succeed(authorization);\n }\n const signAuthorization = account.signAuthorization;\n if (!signAuthorization) {\n return Effect.succeed(authorization);\n }\n\n return Effect.tryPromise({\n catch: (cause) =>\n new Eip7702AuthorizationSigningError({\n cause,\n chainId: authorization.chainId,\n message: cause instanceof Error ? cause.message : \"Failed to sign EIP-7702 authorization\",\n }),\n try: () => signAuthorization(authorization),\n });\n};\n\nexport const Eip7702ServiceLive = Layer.effect(\n Eip7702Service,\n Effect.gen(function* () {\n const publicClientService = yield* PublicClientService;\n const walletClientService = yield* WalletClientService;\n const txManager = yield* TxManager;\n\n const prepareAuthorizationEffect = (params: {\n readonly chainId: number;\n readonly account: Address | Account;\n readonly contractAddress: Address;\n readonly executor?: Eip7702AuthorizationExecutor | undefined;\n }) =>\n Effect.gen(function* () {\n const publicClient = yield* publicClientService.get(params.chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) =>\n new Eip7702AuthorizationPreparationError({\n cause,\n chainId: params.chainId,\n message:\n cause instanceof Error ? cause.message : \"Failed to prepare EIP-7702 authorization\",\n }),\n try: (): Promise<Authorization<number>> =>\n prepareAuthorization(publicClient, {\n account: params.account,\n chainId: params.chainId,\n contractAddress: params.contractAddress,\n executor: params.executor ?? \"self\",\n }) as Promise<Authorization<number>>,\n });\n });\n\n const prepareAuthorizationWithNonceEffect = (params: {\n readonly chainId: number;\n readonly account: Address | Account;\n readonly contractAddress: Address;\n readonly executor?: Eip7702AuthorizationExecutor | undefined;\n readonly nonce?: number | undefined;\n }) =>\n Effect.gen(function* () {\n const publicClient = yield* publicClientService.get(params.chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) =>\n new Eip7702AuthorizationPreparationError({\n cause,\n chainId: params.chainId,\n message:\n cause instanceof Error ? cause.message : \"Failed to prepare EIP-7702 authorization\",\n }),\n try: (): Promise<Authorization<number>> =>\n prepareAuthorization(publicClient, {\n account: params.account,\n chainId: params.chainId,\n contractAddress: params.contractAddress,\n executor: params.executor ?? \"self\",\n nonce: params.nonce,\n }) as Promise<Authorization<number>>,\n });\n });\n\n const delegateAndExecuteBatch = (params: DelegateAndExecuteErc7579BatchParams) =>\n Effect.gen(function* () {\n const walletClient = yield* walletClientService.get(params.chainId);\n\n const account = params.account ?? walletClient.account;\n if (!account) {\n return yield* Effect.fail(\n new WalletNotConnectedError({\n chainId: params.chainId,\n message: \"No active account found. Provide `account` explicitly.\",\n })\n );\n }\n\n const txNonce = params.tx?.nonce;\n const authorizationNonce = txNonce !== undefined ? txNonce + 1 : undefined;\n\n const authorization = yield* prepareAuthorizationWithNonceEffect({\n account,\n chainId: params.chainId,\n contractAddress: params.delegation,\n executor: \"self\",\n nonce: authorizationNonce,\n });\n\n const authorizationSigned = yield* signAuthorizationIfSupported(account, authorization);\n\n const executions = params.calls.map((call) => ({\n callData: call.data,\n target: call.to,\n value: call.value ?? 0n,\n }));\n const executionCalldata = encodeErc7579BatchExecutionCalldata(executions);\n const data = encodeErc7579ExecuteCalldata({\n executionCalldata,\n mode: params.mode ?? ERC7579_MODE_SIMPLE_BATCH,\n });\n\n const to = accountAddress(account);\n\n return yield* Effect.tryPromise({\n catch: (cause) => mapSendEip7702TransactionCause(params.chainId, cause),\n try: () =>\n walletClient.sendTransaction({\n accessList: params.tx?.accessList,\n account,\n authorizationList: [authorizationSigned],\n chain: walletClient.chain ?? null,\n data,\n gas: params.tx?.gas,\n maxFeePerGas: params.tx?.maxFeePerGas,\n maxPriorityFeePerGas: params.tx?.maxPriorityFeePerGas,\n nonce: txNonce,\n to,\n type: \"eip7702\",\n }),\n });\n });\n\n const delegateAndExecuteBatchAndWait = (\n params: DelegateAndExecuteErc7579BatchParams & {\n readonly policy?: TxPolicy | undefined;\n }\n ) =>\n Effect.gen(function* () {\n const policy = params.policy ?? defaultPolicy;\n const hash = yield* delegateAndExecuteBatch(params);\n const receipt = yield* txManager.waitForReceipt(\n params.chainId,\n hash,\n policy.receiptTimeout\n );\n return { hash, receipt } as DelegateAndExecuteResult;\n });\n\n const approveAndExecute = (params: ApproveAndExecuteParams) => {\n const approveData = encodeFunctionData({\n abi: erc20Abi,\n args: [params.spender, params.amount],\n functionName: \"approve\",\n });\n\n return delegateAndExecuteBatch({\n account: params.account,\n calls: [{ data: approveData, to: params.token, value: 0n }, params.call],\n chainId: params.chainId,\n delegation: params.delegation,\n mode: params.mode,\n tx: params.tx,\n });\n };\n\n const approveAndExecuteAndWait = (\n params: ApproveAndExecuteParams & {\n readonly policy?: TxPolicy | undefined;\n }\n ) =>\n Effect.gen(function* () {\n const policy = params.policy ?? defaultPolicy;\n const hash = yield* approveAndExecute(params);\n const receipt = yield* txManager.waitForReceipt(\n params.chainId,\n hash,\n policy.receiptTimeout\n );\n return { hash, receipt } as DelegateAndExecuteResult;\n });\n\n return Eip7702Service.of({\n approveAndExecute,\n approveAndExecuteAndWait,\n delegateAndExecuteErc7579Batch: delegateAndExecuteBatch,\n delegateAndExecuteErc7579BatchAndWait: delegateAndExecuteBatchAndWait,\n prepareAuthorization: prepareAuthorizationEffect,\n });\n })\n);\n"]}
|
package/dist/ens/ens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ens.d.ts","sourceRoot":"","sources":["../../src/ens/ens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ens.d.ts","sourceRoot":"","sources":["../../src/ens/ens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAG7B,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAQF,MAAM,MAAM,gBAAgB,GAAG;IAO7B,QAAQ,CAAC,UAAU,EAAE,CACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KACzB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;IAQ7F,QAAQ,CAAC,SAAS,EAAE,CAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;KAAE,KAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;IAO9F,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAChB,MAAM,EACN,2BAA2B,GAAG,kBAAkB,GAAG,mBAAmB,CACvE,CAAC;IAOF,QAAQ,CAAC,WAAW,EAAE,CACpB,IAAI,EAAE,MAAM,KACT,MAAM,CAAC,MAAM,CAChB,OAAO,EACP,6BAA6B,GAAG,kBAAkB,GAAG,mBAAmB,CACzE,CAAC;IAQF,QAAQ,CAAC,OAAO,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,KACR,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;CAC7F,CAAC;;AAEF,qBAAa,WAAY,SAAQ,gBAA+D;CAAG;AAOnG,eAAO,MAAM,eAAe,sDAgM3B,CAAC"}
|
package/dist/ens/ens.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
import { mainnet } from "viem/chains";
|
|
2
3
|
import { normalize } from "viem/ens";
|
|
3
4
|
import { PublicClientService } from "../core/index.js";
|
|
4
5
|
import { EnsAvatarNotFoundError, EnsNameNotFoundError, EnsResolutionError, EnsResolverNotConfiguredError, EnsReverseNameNotFoundError, EnsTextNotFoundError, } from "../ens/errors.js";
|
|
5
6
|
import { SpanNames } from "../telemetry/index.js";
|
|
6
|
-
const MAINNET_CHAIN_ID = 1;
|
|
7
7
|
export class EnsResolver extends Context.Tag("ew3/EnsResolver")() {
|
|
8
8
|
}
|
|
9
9
|
export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* () {
|
|
10
10
|
const publicClientService = yield* PublicClientService;
|
|
11
11
|
return EnsResolver.of({
|
|
12
12
|
getAddress: (name, opts) => Effect.gen(function* () {
|
|
13
|
-
const client = yield* publicClientService.get(
|
|
13
|
+
const client = yield* publicClientService.get(mainnet.id);
|
|
14
14
|
const normalizedName = normalize(name);
|
|
15
15
|
const result = yield* Effect.tryPromise({
|
|
16
16
|
catch: (cause) => new EnsResolutionError({
|
|
@@ -37,7 +37,7 @@ export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* ()
|
|
|
37
37
|
},
|
|
38
38
|
})),
|
|
39
39
|
getAvatar: (name, opts) => Effect.gen(function* () {
|
|
40
|
-
const client = yield* publicClientService.get(
|
|
40
|
+
const client = yield* publicClientService.get(mainnet.id);
|
|
41
41
|
const normalizedName = normalize(name);
|
|
42
42
|
const result = yield* Effect.tryPromise({
|
|
43
43
|
catch: (cause) => new EnsResolutionError({
|
|
@@ -63,7 +63,7 @@ export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* ()
|
|
|
63
63
|
},
|
|
64
64
|
})),
|
|
65
65
|
getName: (address) => Effect.gen(function* () {
|
|
66
|
-
const client = yield* publicClientService.get(
|
|
66
|
+
const client = yield* publicClientService.get(mainnet.id);
|
|
67
67
|
const result = yield* Effect.tryPromise({
|
|
68
68
|
catch: (cause) => new EnsResolutionError({
|
|
69
69
|
cause,
|
|
@@ -87,7 +87,7 @@ export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* ()
|
|
|
87
87
|
},
|
|
88
88
|
})),
|
|
89
89
|
getResolver: (name) => Effect.gen(function* () {
|
|
90
|
-
const client = yield* publicClientService.get(
|
|
90
|
+
const client = yield* publicClientService.get(mainnet.id);
|
|
91
91
|
const normalizedName = normalize(name);
|
|
92
92
|
const result = yield* Effect.tryPromise({
|
|
93
93
|
catch: (cause) => new EnsResolutionError({
|
|
@@ -112,7 +112,7 @@ export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* ()
|
|
|
112
112
|
},
|
|
113
113
|
})),
|
|
114
114
|
getText: (name, key) => Effect.gen(function* () {
|
|
115
|
-
const client = yield* publicClientService.get(
|
|
115
|
+
const client = yield* publicClientService.get(mainnet.id);
|
|
116
116
|
const normalizedName = normalize(name);
|
|
117
117
|
const result = yield* Effect.tryPromise({
|
|
118
118
|
catch: (cause) => new EnsResolutionError({
|
package/dist/ens/ens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ens.js","sourceRoot":"","sources":["../../src/ens/ens.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ens.js","sourceRoot":"","sources":["../../src/ens/ens.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport type { Address } from \"viem\";\nimport { mainnet } from \"viem/chains\";\nimport { normalize } from \"viem/ens\";\nimport type { ClientNotFoundError } from \"@/src/core/index.js\";\nimport { PublicClientService } from \"@/src/core/index.js\";\nimport {\n EnsAvatarNotFoundError,\n EnsNameNotFoundError,\n EnsResolutionError,\n EnsResolverNotConfiguredError,\n EnsReverseNameNotFoundError,\n EnsTextNotFoundError,\n} from \"@/src/ens/errors.js\";\nimport { SpanNames } from \"@/src/telemetry/index.js\";\n\ntype AssetGatewayUrls = {\n arweave?: string;\n ipfs?: string;\n};\n\n/**\n * Service for ENS (Ethereum Name Service) resolution\n *\n * All operations target Ethereum mainnet (chainId=1) since ENS\n * primarily lives there. Names are automatically normalized.\n */\nexport type EnsResolverShape = {\n /**\n * Resolve an ENS name to an address\n *\n * @param name - The ENS name to resolve (e.g., \"vitalik.eth\")\n * @param opts.coinType - Optional ENSIP-19 coinType for cross-chain resolution\n */\n readonly getAddress: (\n name: string,\n opts?: { coinType?: bigint }\n ) => Effect.Effect<Address, EnsNameNotFoundError | EnsResolutionError | ClientNotFoundError>;\n\n /**\n * Get the avatar URL for an ENS name\n *\n * @param name - The ENS name to get avatar for\n * @param opts.assetGatewayUrls - Optional gateway URLs for IPFS/Arweave\n */\n readonly getAvatar: (\n name: string,\n opts?: { assetGatewayUrls?: AssetGatewayUrls }\n ) => Effect.Effect<string, EnsAvatarNotFoundError | EnsResolutionError | ClientNotFoundError>;\n\n /**\n * Reverse resolve an address to its primary ENS name\n *\n * @param address - The address to resolve\n */\n readonly getName: (\n address: Address\n ) => Effect.Effect<\n string,\n EnsReverseNameNotFoundError | EnsResolutionError | ClientNotFoundError\n >;\n\n /**\n * Get the resolver contract address for an ENS name\n *\n * @param name - The ENS name to get resolver for\n */\n readonly getResolver: (\n name: string\n ) => Effect.Effect<\n Address,\n EnsResolverNotConfiguredError | EnsResolutionError | ClientNotFoundError\n >;\n\n /**\n * Get a text record for an ENS name\n *\n * @param name - The ENS name to query\n * @param key - The text record key (e.g., \"com.twitter\", \"url\", \"description\")\n */\n readonly getText: (\n name: string,\n key: string\n ) => Effect.Effect<string, EnsTextNotFoundError | EnsResolutionError | ClientNotFoundError>;\n};\n\nexport class EnsResolver extends Context.Tag(\"ew3/EnsResolver\")<EnsResolver, EnsResolverShape>() {}\n\n/**\n * Live implementation of EnsResolver service\n *\n * Requires PublicClientService with mainnet (chainId=1) configured\n */\nexport const EnsResolverLive = Layer.effect(\n EnsResolver,\n Effect.gen(function* () {\n const publicClientService = yield* PublicClientService;\n\n return EnsResolver.of({\n getAddress: (name: string, opts?: { coinType?: bigint }) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n const normalizedName = normalize(name);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to resolve ENS name: ${String(cause)}`,\n name: normalizedName,\n }),\n try: () =>\n client.getEnsAddress({\n coinType: opts?.coinType,\n name: normalizedName,\n }),\n });\n\n if (result === null) {\n return yield* Effect.fail(\n new EnsNameNotFoundError({\n message: `No address found for ENS name \"${normalizedName}\"`,\n name: normalizedName,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_ADDRESS, {\n attributes: {\n coinType: opts?.coinType?.toString(),\n name,\n },\n })\n ),\n\n getAvatar: (name: string, opts?: { assetGatewayUrls?: AssetGatewayUrls }) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n const normalizedName = normalize(name);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to get ENS avatar: ${String(cause)}`,\n name: normalizedName,\n }),\n try: () =>\n client.getEnsAvatar({\n assetGatewayUrls: opts?.assetGatewayUrls,\n name: normalizedName,\n }),\n });\n\n if (result === null) {\n return yield* Effect.fail(\n new EnsAvatarNotFoundError({\n message: `No avatar found for ENS name \"${normalizedName}\"`,\n name: normalizedName,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_AVATAR, {\n attributes: {\n name,\n },\n })\n ),\n\n getName: (address: Address) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to reverse resolve address: ${String(cause)}`,\n name: address,\n }),\n try: () =>\n client.getEnsName({\n address,\n }),\n });\n\n if (result === null) {\n return yield* Effect.fail(\n new EnsReverseNameNotFoundError({\n address,\n message: `No ENS name found for address \"${address}\"`,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_NAME, {\n attributes: {\n address,\n },\n })\n ),\n\n getResolver: (name: string) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n const normalizedName = normalize(name);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to get ENS resolver: ${String(cause)}`,\n name: normalizedName,\n }),\n try: () =>\n client.getEnsResolver({\n name: normalizedName,\n }),\n });\n\n if (result === null || result === \"0x0000000000000000000000000000000000000000\") {\n return yield* Effect.fail(\n new EnsResolverNotConfiguredError({\n message: `No resolver configured for ENS name \"${normalizedName}\"`,\n name: normalizedName,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_RESOLVER, {\n attributes: {\n name,\n },\n })\n ),\n\n getText: (name: string, key: string) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n const normalizedName = normalize(name);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to get ENS text record: ${String(cause)}`,\n name: normalizedName,\n }),\n try: () =>\n client.getEnsText({\n key,\n name: normalizedName,\n }),\n });\n\n if (result === null) {\n return yield* Effect.fail(\n new EnsTextNotFoundError({\n key,\n message: `No text record \"${key}\" found for ENS name \"${normalizedName}\"`,\n name: normalizedName,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_TEXT, {\n attributes: {\n key,\n name,\n },\n })\n ),\n });\n })\n);\n"]}
|
package/dist/ens/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ens/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAClF,sBAAsB,EACtB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,2BAA4B,SAAQ,MAAM,CAAC,WAAW,EAA+B,CAChG,6BAA6B,EAC7B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAClF,sBAAsB,EACtB;IACE,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC,WAAW,EAA0B,CACtF,wBAAwB,EACxB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,EAAiC,CACpG,+BAA+B,EAC/B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ens/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAClF,sBAAsB,EACtB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,2BAA4B,SAAQ,MAAM,CAAC,WAAW,EAA+B,CAChG,6BAA6B,EAC7B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAClF,sBAAsB,EACtB;IACE,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC,WAAW,EAA0B,CACtF,wBAAwB,EACxB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,EAAiC,CACpG,+BAA+B,EAC/B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\nexport class EnsNameNotFoundError extends Schema.TaggedError<EnsNameNotFoundError>()(\n \"EnsNameNotFoundError\",\n {\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n\nexport class EnsReverseNameNotFoundError extends Schema.TaggedError<EnsReverseNameNotFoundError>()(\n \"EnsReverseNameNotFoundError\",\n {\n address: Schema.String,\n message: Schema.String,\n }\n) {}\n\nexport class EnsTextNotFoundError extends Schema.TaggedError<EnsTextNotFoundError>()(\n \"EnsTextNotFoundError\",\n {\n key: Schema.String,\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n\nexport class EnsAvatarNotFoundError extends Schema.TaggedError<EnsAvatarNotFoundError>()(\n \"EnsAvatarNotFoundError\",\n {\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n\nexport class EnsResolverNotConfiguredError extends Schema.TaggedError<EnsResolverNotConfiguredError>()(\n \"EnsResolverNotConfiguredError\",\n {\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n\nexport class EnsResolutionError extends Schema.TaggedError<EnsResolutionError>()(\n \"EnsResolutionError\",\n {\n cause: Schema.optional(Schema.Unknown),\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n"]}
|
package/dist/ens/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ens/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ens/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./ens.js\";\nexport * from \"./errors.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/erc20/allowance/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/erc20/allowance/core.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport { erc20Abi, maxUint256 } from \"viem\";\nimport { ContractReader, ContractWriter } from \"@/src/contract/index.js\";\nimport type {\n ClientNotFoundError,\n InsufficientFundsError,\n UserRejectedError,\n} from \"@/src/core/index.js\";\nimport { ApprovalCheckError, ApprovalError } from \"@/src/core/index.js\";\nimport type {\n ApproveParams,\n CheckAllowanceParams,\n EnsureAllowanceParams,\n Erc20AllowanceServiceShape,\n} from \"@/src/erc20/allowance/index.js\";\n\nexport class Erc20AllowanceService extends Context.Tag(\"ew3/Erc20AllowanceService\")<\n Erc20AllowanceService,\n Erc20AllowanceServiceShape\n>() {}\n\nexport const Erc20AllowanceServiceLive = Layer.effect(\n Erc20AllowanceService,\n Effect.gen(function* () {\n const reader = yield* ContractReader;\n const writer = yield* ContractWriter;\n\n const approve = Effect.fn(\"approve\")(function* (params: ApproveParams) {\n const writeParams = {\n abi: erc20Abi,\n account: params.account,\n address: params.tokenAddress,\n args: [params.spender, params.amount] as const,\n chainId: params.chainId,\n functionName: \"approve\" as const,\n };\n\n yield* writer.simulate(writeParams).pipe(\n Effect.mapError(\n (e): ApprovalError | ClientNotFoundError | InsufficientFundsError | UserRejectedError => {\n if (\n e._tag === \"ClientNotFoundError\" ||\n e._tag === \"InsufficientFundsError\" ||\n e._tag === \"UserRejectedError\"\n ) {\n return e;\n }\n return new ApprovalError({\n cause: e,\n message: `Approval simulation failed: ${String(e.message)}`,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n }\n )\n );\n\n return yield* writer.write(writeParams);\n });\n\n const checkAllowance = Effect.fn(\"checkAllowance\")(function* (params: CheckAllowanceParams) {\n const result = yield* reader\n .read({\n abi: erc20Abi,\n address: params.tokenAddress,\n args: [params.owner, params.spender] as const,\n chainId: params.chainId,\n functionName: \"allowance\",\n })\n .pipe(\n Effect.mapError((e): ApprovalCheckError | ClientNotFoundError => {\n if (e._tag === \"ClientNotFoundError\") {\n return e;\n }\n return new ApprovalCheckError({\n cause: e,\n message: `Failed to check allowance: ${String(e.message)}`,\n owner: params.owner,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n })\n );\n\n return result as bigint;\n });\n\n const ensureAllowance = Effect.fn(\"ensureAllowance\")(function* (params: EnsureAllowanceParams) {\n if (params.required <= 0n) {\n return { currentAllowance: 0n, status: \"already-sufficient\" } as const;\n }\n\n const currentAllowance = yield* checkAllowance({\n chainId: params.chainId,\n owner: params.account,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n if (currentAllowance >= params.required) {\n return { currentAllowance, status: \"already-sufficient\" } as const;\n }\n\n const approveAmount = params.approveAmount ?? params.required;\n const zeroFirst = params.zeroFirst ?? true;\n\n const direct = approve({\n account: params.account,\n amount: approveAmount,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n }).pipe(Effect.either);\n\n const directResult = yield* direct;\n if (directResult._tag === \"Right\") {\n return {\n approveAmount,\n currentAllowance,\n hashes: [directResult.right],\n mode: \"direct\",\n status: \"approved\",\n } as const;\n }\n\n if (!zeroFirst || currentAllowance === 0n) {\n return yield* Effect.fail(directResult.left);\n }\n\n const resetHash = yield* approve({\n account: params.account,\n amount: 0n,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n const approveHash = yield* approve({\n account: params.account,\n amount: approveAmount,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n return {\n approveAmount,\n currentAllowance,\n hashes: [resetHash, approveHash],\n mode: \"zero-first\",\n status: \"approved\",\n } as const;\n });\n\n return Erc20AllowanceService.of({\n approve,\n\n checkAllowance,\n\n ensureAllowance,\n\n getMaxAmount: (_decimals: number) => maxUint256,\n });\n })\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/erc20/allowance/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/erc20/allowance/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC","sourcesContent":["export * from \"./core.js\";\nexport * from \"./no-output.js\";\nexport * from \"./types.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-output.js","sourceRoot":"","sources":["../../../src/erc20/allowance/no-output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"no-output.js","sourceRoot":"","sources":["../../../src/erc20/allowance/no-output.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport { erc20Abi, maxUint256 } from \"viem\";\nimport { erc20NoOutputAbi } from \"@/src/abi/index.js\";\nimport { ContractReader, ContractWriter } from \"@/src/contract/index.js\";\nimport type {\n ClientNotFoundError,\n InsufficientFundsError,\n UserRejectedError,\n} from \"@/src/core/index.js\";\nimport { ApprovalCheckError, ApprovalError } from \"@/src/core/index.js\";\nimport type {\n ApproveParams,\n CheckAllowanceParams,\n EnsureAllowanceParams,\n Erc20AllowanceServiceShape,\n} from \"@/src/erc20/allowance/index.js\";\n\nexport class Erc20NoOutputAllowanceService extends Context.Tag(\"ew3/Erc20NoOutputAllowanceService\")<\n Erc20NoOutputAllowanceService,\n Erc20AllowanceServiceShape\n>() {}\n\nexport const Erc20NoOutputAllowanceServiceLive = Layer.effect(\n Erc20NoOutputAllowanceService,\n Effect.gen(function* () {\n const reader = yield* ContractReader;\n const writer = yield* ContractWriter;\n\n const approve = Effect.fn(\"approve\")(function* (params: ApproveParams) {\n const writeParams = {\n abi: erc20NoOutputAbi,\n account: params.account,\n address: params.tokenAddress,\n args: [params.spender, params.amount] as const,\n chainId: params.chainId,\n functionName: \"approve\" as const,\n };\n\n yield* writer.simulate(writeParams).pipe(\n Effect.mapError(\n (e): ApprovalError | ClientNotFoundError | InsufficientFundsError | UserRejectedError => {\n if (\n e._tag === \"ClientNotFoundError\" ||\n e._tag === \"InsufficientFundsError\" ||\n e._tag === \"UserRejectedError\"\n ) {\n return e;\n }\n return new ApprovalError({\n cause: e,\n message: `Approval simulation failed: ${String(e.message)}`,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n }\n )\n );\n\n return yield* writer.write(writeParams);\n });\n\n const checkAllowance = Effect.fn(\"checkAllowance\")(function* (params: CheckAllowanceParams) {\n const result = yield* reader\n .read({\n abi: erc20Abi,\n address: params.tokenAddress,\n args: [params.owner, params.spender] as const,\n chainId: params.chainId,\n functionName: \"allowance\",\n })\n .pipe(\n Effect.mapError((e): ApprovalCheckError | ClientNotFoundError => {\n if (e._tag === \"ClientNotFoundError\") {\n return e;\n }\n return new ApprovalCheckError({\n cause: e,\n message: `Failed to check allowance: ${String(e.message)}`,\n owner: params.owner,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n })\n );\n\n return result as bigint;\n });\n\n const ensureAllowance = Effect.fn(\"ensureAllowance\")(function* (params: EnsureAllowanceParams) {\n if (params.required <= 0n) {\n return { currentAllowance: 0n, status: \"already-sufficient\" } as const;\n }\n\n const currentAllowance = yield* checkAllowance({\n chainId: params.chainId,\n owner: params.account,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n if (currentAllowance >= params.required) {\n return { currentAllowance, status: \"already-sufficient\" } as const;\n }\n\n const approveAmount = params.approveAmount ?? params.required;\n const zeroFirst = params.zeroFirst ?? true;\n\n const direct = approve({\n account: params.account,\n amount: approveAmount,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n }).pipe(Effect.either);\n\n const directResult = yield* direct;\n if (directResult._tag === \"Right\") {\n return {\n approveAmount,\n currentAllowance,\n hashes: [directResult.right],\n mode: \"direct\",\n status: \"approved\",\n } as const;\n }\n\n if (!zeroFirst || currentAllowance === 0n) {\n return yield* Effect.fail(directResult.left);\n }\n\n const resetHash = yield* approve({\n account: params.account,\n amount: 0n,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n const approveHash = yield* approve({\n account: params.account,\n amount: approveAmount,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n return {\n approveAmount,\n currentAllowance,\n hashes: [resetHash, approveHash],\n mode: \"zero-first\",\n status: \"approved\",\n } as const;\n });\n\n return Erc20NoOutputAllowanceService.of({\n approve,\n\n checkAllowance,\n\n ensureAllowance,\n\n getMaxAmount: (_decimals: number) => maxUint256,\n });\n })\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/erc20/allowance/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/erc20/allowance/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Effect } from \"effect\";\nimport type { Address, Hash } from \"viem\";\nimport type {\n ApprovalCheckError,\n ApprovalError,\n ClientNotFoundError,\n ContractWriteError,\n InsufficientFundsError,\n UserRejectedError,\n WalletNotConnectedError,\n WrongNetworkError,\n} from \"@/src/core/index.js\";\n\nexport type CheckAllowanceParams = {\n readonly chainId: number;\n readonly owner: Address;\n readonly spender: Address;\n readonly tokenAddress: Address;\n};\n\nexport type ApproveParams = {\n readonly account: Address;\n readonly amount: bigint;\n readonly chainId: number;\n readonly spender: Address;\n readonly tokenAddress: Address;\n};\n\nexport type EnsureAllowanceParams = {\n readonly account: Address;\n readonly chainId: number;\n readonly required: bigint;\n readonly spender: Address;\n readonly tokenAddress: Address;\n /**\n * Amount to approve if allowance is insufficient.\n *\n * If omitted, defaults to `required`.\n */\n readonly approveAmount?: bigint | undefined;\n /**\n * If `true` (default), when current allowance is non-zero and a direct approve fails,\n * retry with `approve(0)` then `approve(approveAmount)`.\n */\n readonly zeroFirst?: boolean | undefined;\n};\n\nexport type EnsureAllowanceResult =\n | {\n readonly status: \"already-sufficient\";\n readonly currentAllowance: bigint;\n }\n | {\n readonly status: \"approved\";\n readonly approveAmount: bigint;\n readonly currentAllowance: bigint;\n readonly hashes: readonly Hash[];\n readonly mode: \"direct\" | \"zero-first\";\n };\n\nexport type Erc20AllowanceServiceShape = {\n readonly checkAllowance: (\n params: CheckAllowanceParams\n ) => Effect.Effect<bigint, ApprovalCheckError | ClientNotFoundError>;\n\n readonly approve: (\n params: ApproveParams\n ) => Effect.Effect<\n Hash,\n | ApprovalError\n | ClientNotFoundError\n | ContractWriteError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n >;\n\n readonly ensureAllowance: (\n params: EnsureAllowanceParams\n ) => Effect.Effect<\n EnsureAllowanceResult,\n | ApprovalCheckError\n | ApprovalError\n | ClientNotFoundError\n | ContractWriteError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n >;\n\n /**\n * Maximum approval value recommended by this implementation.\n *\n * For standard tokens this is `uint256.max`; for \"bit-96\" tokens this is `uint96.max`.\n * The `decimals` parameter is accepted for API symmetry with app-level workflows.\n */\n readonly getMaxAmount: (decimals: number) => bigint;\n};\n"]}
|
package/dist/erc20/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/erc20/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/erc20/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
|
package/dist/erc20/index.js
CHANGED
package/dist/erc20/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc20/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc20/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC","sourcesContent":["export * from \"./allowance/index.js\";\nexport * from \"./metadata.js\";\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import type { Address } from "viem";
|
|
3
|
+
import { ContractReader } from "../contract/index.js";
|
|
4
|
+
import type { ClientNotFoundError, MulticallError } from "../core/index.js";
|
|
5
|
+
export type Erc20Metadata = {
|
|
6
|
+
address: Address;
|
|
7
|
+
chainId: number;
|
|
8
|
+
decimals: number;
|
|
9
|
+
name?: string;
|
|
10
|
+
symbol?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function readErc20Metadata(params: {
|
|
13
|
+
chainId: number;
|
|
14
|
+
tokenAddress: Address;
|
|
15
|
+
}): Effect.Effect<Erc20Metadata, MulticallError | ClientNotFoundError, ContractReader>;
|
|
16
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/erc20/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG/E,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAKF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,GAAG,mBAAmB,EAAE,cAAc,CAAC,CAgErF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { erc20Abi, erc20Abi_bytes32 } from "../abi/index.js";
|
|
3
|
+
import { decodeBytes32String } from "../balance/index.js";
|
|
4
|
+
import { ContractReader } from "../contract/index.js";
|
|
5
|
+
export function readErc20Metadata(params) {
|
|
6
|
+
return Effect.gen(function* () {
|
|
7
|
+
const reader = yield* ContractReader;
|
|
8
|
+
const results = yield* reader.multicall(params.chainId, [
|
|
9
|
+
{
|
|
10
|
+
abi: erc20Abi,
|
|
11
|
+
address: params.tokenAddress,
|
|
12
|
+
functionName: "decimals",
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
abi: erc20Abi,
|
|
16
|
+
address: params.tokenAddress,
|
|
17
|
+
functionName: "name",
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
abi: erc20Abi,
|
|
21
|
+
address: params.tokenAddress,
|
|
22
|
+
functionName: "symbol",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
abi: erc20Abi_bytes32,
|
|
26
|
+
address: params.tokenAddress,
|
|
27
|
+
functionName: "name",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
abi: erc20Abi_bytes32,
|
|
31
|
+
address: params.tokenAddress,
|
|
32
|
+
functionName: "symbol",
|
|
33
|
+
},
|
|
34
|
+
]);
|
|
35
|
+
const [decimalsResult, nameResult, symbolResult, nameBytes32Result, symbolBytes32Result] = results;
|
|
36
|
+
const decimals = (() => {
|
|
37
|
+
if (decimalsResult.status !== "success") {
|
|
38
|
+
return 18;
|
|
39
|
+
}
|
|
40
|
+
const value = typeof decimalsResult.result === "bigint"
|
|
41
|
+
? Number(decimalsResult.result)
|
|
42
|
+
: decimalsResult.result;
|
|
43
|
+
return Number.isSafeInteger(value) && value >= 0 && value <= 255 ? value : 18;
|
|
44
|
+
})();
|
|
45
|
+
const name = extractStringOrBytes32(nameResult, nameBytes32Result);
|
|
46
|
+
const symbol = extractStringOrBytes32(symbolResult, symbolBytes32Result);
|
|
47
|
+
return {
|
|
48
|
+
address: params.tokenAddress,
|
|
49
|
+
chainId: params.chainId,
|
|
50
|
+
decimals,
|
|
51
|
+
name,
|
|
52
|
+
symbol,
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function extractStringOrBytes32(stringResult, bytes32Result) {
|
|
57
|
+
const normalized = stringResult.status === "success" ? normalizeString(stringResult.result) : undefined;
|
|
58
|
+
if (normalized) {
|
|
59
|
+
return normalized;
|
|
60
|
+
}
|
|
61
|
+
return bytes32Result.status === "success" ? decodeBytes32String(bytes32Result.result) : undefined;
|
|
62
|
+
}
|
|
63
|
+
function normalizeString(value) {
|
|
64
|
+
const trimmed = value.trim();
|
|
65
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/erc20/metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect } from \"effect\";\nimport type { Address, Hex } from \"viem\";\nimport { erc20Abi, erc20Abi_bytes32 } from \"@/src/abi/index.js\";\nimport { decodeBytes32String } from \"@/src/balance/index.js\";\nimport { ContractReader } from \"@/src/contract/index.js\";\nimport type { ClientNotFoundError, MulticallError } from \"@/src/core/index.js\";\nimport type { MulticallResult } from \"@/src/types/index.js\";\n\nexport type Erc20Metadata = {\n address: Address;\n chainId: number;\n decimals: number;\n name?: string;\n symbol?: string;\n};\n\n/**\n * Read ERC-20 token metadata (decimals, name, symbol) with bytes32 fallbacks.\n */\nexport function readErc20Metadata(params: {\n chainId: number;\n tokenAddress: Address;\n}): Effect.Effect<Erc20Metadata, MulticallError | ClientNotFoundError, ContractReader> {\n return Effect.gen(function* () {\n const reader = yield* ContractReader;\n const results = yield* reader.multicall(params.chainId, [\n {\n abi: erc20Abi,\n address: params.tokenAddress,\n functionName: \"decimals\",\n },\n {\n abi: erc20Abi,\n address: params.tokenAddress,\n functionName: \"name\",\n },\n {\n abi: erc20Abi,\n address: params.tokenAddress,\n functionName: \"symbol\",\n },\n {\n abi: erc20Abi_bytes32,\n address: params.tokenAddress,\n functionName: \"name\",\n },\n {\n abi: erc20Abi_bytes32,\n address: params.tokenAddress,\n functionName: \"symbol\",\n },\n ] as const);\n\n const [decimalsResult, nameResult, symbolResult, nameBytes32Result, symbolBytes32Result] =\n results;\n\n const decimals = (() => {\n if (decimalsResult.status !== \"success\") {\n return 18;\n }\n\n const value =\n typeof decimalsResult.result === \"bigint\"\n ? Number(decimalsResult.result)\n : decimalsResult.result;\n\n return Number.isSafeInteger(value) && value >= 0 && value <= 255 ? value : 18;\n })();\n\n const name = extractStringOrBytes32(\n nameResult as MulticallResult<string>,\n nameBytes32Result as MulticallResult<Hex>\n );\n const symbol = extractStringOrBytes32(\n symbolResult as MulticallResult<string>,\n symbolBytes32Result as MulticallResult<Hex>\n );\n\n return {\n address: params.tokenAddress,\n chainId: params.chainId,\n decimals,\n name,\n symbol,\n };\n });\n}\n\nfunction extractStringOrBytes32(\n stringResult: MulticallResult<string>,\n bytes32Result: MulticallResult<Hex>\n): string | undefined {\n const normalized =\n stringResult.status === \"success\" ? normalizeString(stringResult.result) : undefined;\n if (normalized) {\n return normalized;\n }\n\n return bytes32Result.status === \"success\" ? decodeBytes32String(bytes32Result.result) : undefined;\n}\n\nfunction normalizeString(value: string): string | undefined {\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/erc721/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG;AAEJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG;AAEJ,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;IAC9B,GAAG,EAAE,MAAM,CAAC,MAAM;CACnB,CACF;CAAG;AAEJ,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,WAAW,EAAuB,CAChF,qBAAqB,EACrB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/erc721/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG;AAEJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG;AAEJ,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;IAC9B,GAAG,EAAE,MAAM,CAAC,MAAM;CACnB,CACF;CAAG;AAEJ,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,WAAW,EAAuB,CAChF,qBAAqB,EACrB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\nexport class Erc721OwnerNotFoundError extends Schema.TaggedError<Erc721OwnerNotFoundError>()(\n \"Erc721OwnerNotFoundError\",\n {\n address: Schema.String,\n chainId: Schema.Number,\n message: Schema.String,\n tokenId: Schema.BigIntFromSelf,\n }\n) {}\n\nexport class Erc721NoTokenURIError extends Schema.TaggedError<Erc721NoTokenURIError>()(\n \"Erc721NoTokenURIError\",\n {\n address: Schema.String,\n chainId: Schema.Number,\n message: Schema.String,\n tokenId: Schema.BigIntFromSelf,\n }\n) {}\n\nexport class Erc721MetadataFetchError extends Schema.TaggedError<Erc721MetadataFetchError>()(\n \"Erc721MetadataFetchError\",\n {\n address: Schema.String,\n cause: Schema.optional(Schema.Unknown),\n chainId: Schema.Number,\n message: Schema.String,\n tokenId: Schema.BigIntFromSelf,\n uri: Schema.String,\n }\n) {}\n\nexport class Erc721TransferError extends Schema.TaggedError<Erc721TransferError>()(\n \"Erc721TransferError\",\n {\n address: Schema.String,\n cause: Schema.optional(Schema.Unknown),\n from: Schema.String,\n message: Schema.String,\n to: Schema.String,\n tokenId: Schema.BigIntFromSelf,\n }\n) {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/erc721/helpers.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK7F,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,mBAA6C,EAC7C,MAMC,EACgD,EAAE,CACnD,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAC/D,cAAc,CACZ,GAAG,EAAE,CACH,MAAM,CAAC,YAAY,CAAC;IAClB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAa;IAC1B,YAAY,EAAE,MAAM,CAAC,YAAqB;CAC3C,CAAqB,EACxB,MAAM,CAAC,YAAY,CACpB,CACF,CAAC;AAKJ,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,mBAA6C,EAC7C,MAOC,EACqE,EAAE,CACxE,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,EAAE,CACrE,cAAc,CACZ,GAAG,EAAE,CACH,YAAY,CAAC,aAAa,CAAC;IACzB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAa;IAC1B,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,IAAI;IACjC,YAAY,EAAE,MAAM,CAAC,YAAqB;CAC3C,CAAC,EACJ,MAAM,CAAC,YAAY,CACpB,CACF,CAAC;AAKJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,YAA0B,EAC1B,MAA8C,EAC9C,YAA0D,EACT,EAAE;IACnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/erc721/helpers.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK7F,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,mBAA6C,EAC7C,MAMC,EACgD,EAAE,CACnD,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAC/D,cAAc,CACZ,GAAG,EAAE,CACH,MAAM,CAAC,YAAY,CAAC;IAClB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAa;IAC1B,YAAY,EAAE,MAAM,CAAC,YAAqB;CAC3C,CAAqB,EACxB,MAAM,CAAC,YAAY,CACpB,CACF,CAAC;AAKJ,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,mBAA6C,EAC7C,MAOC,EACqE,EAAE,CACxE,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,EAAE,CACrE,cAAc,CACZ,GAAG,EAAE,CACH,YAAY,CAAC,aAAa,CAAC;IACzB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAa;IAC1B,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,IAAI;IACjC,YAAY,EAAE,MAAM,CAAC,YAAqB;CAC3C,CAAC,EACJ,MAAM,CAAC,YAAY,CACpB,CACF,CAAC;AAKJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,YAA0B,EAC1B,MAA8C,EAC9C,YAA0D,EACT,EAAE;IACnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC","sourcesContent":["/**\n * Internal helpers for ERC-721 service operations.\n * These reduce boilerplate by combining client retrieval with contract operations.\n *\n * Note: Uses type assertions internally because viem's strict ABI typing\n * doesn't allow generic function names/args at compile time.\n */\n\nimport { Effect } from \"effect\";\nimport type { Address, Hash, WalletClient } from \"viem\";\nimport { erc721Abi } from \"@/src/abi/index.js\";\nimport type {\n PublicClientServiceShape,\n WalletClientServiceShape,\n} from \"@/src/core/clients/index.js\";\nimport type {\n ClientNotFoundError,\n WalletNotConnectedError,\n WrongNetworkError,\n} from \"@/src/core/errors/index.js\";\nimport { viemTryPromise, withPublicClient, withWalletClient } from \"@/src/internal/index.js\";\n\n/**\n * Read from an ERC-721 contract with automatic client retrieval and error handling.\n */\nexport const readErc721 = <TResult, E>(\n publicClientService: PublicClientServiceShape,\n params: {\n address: Address;\n args?: readonly unknown[];\n chainId: number;\n errorFactory: (cause: unknown) => E;\n functionName: string;\n }\n): Effect.Effect<TResult, E | ClientNotFoundError> =>\n withPublicClient(publicClientService, params.chainId, (client) =>\n viemTryPromise(\n () =>\n client.readContract({\n abi: erc721Abi,\n address: params.address,\n args: params.args as never,\n functionName: params.functionName as never,\n }) as Promise<TResult>,\n params.errorFactory\n )\n );\n\n/**\n * Write to an ERC-721 contract with automatic client retrieval and error handling.\n */\nexport const writeErc721 = <E>(\n walletClientService: WalletClientServiceShape,\n params: {\n account: Address;\n address: Address;\n args: readonly unknown[];\n chainId: number;\n errorFactory: (cause: unknown) => E;\n functionName: string;\n }\n): Effect.Effect<Hash, E | WalletNotConnectedError | WrongNetworkError> =>\n withWalletClient(walletClientService, params.chainId, (walletClient) =>\n viemTryPromise(\n () =>\n walletClient.writeContract({\n abi: erc721Abi,\n account: params.account,\n address: params.address,\n args: params.args as never,\n chain: walletClient.chain ?? null,\n functionName: params.functionName as never,\n }),\n params.errorFactory\n )\n );\n\n/**\n * Helper to resolve account from wallet client or explicit param.\n */\nexport const resolveAccount = (\n walletClient: WalletClient,\n params: { account?: Address; chainId: number },\n errorFactory: (chainId: number) => WalletNotConnectedError\n): Effect.Effect<Address, WalletNotConnectedError> => {\n if (params.account) {\n return Effect.succeed(params.account);\n }\n const account = walletClient.account?.address;\n if (account) {\n return Effect.succeed(account);\n }\n return Effect.fail(errorFactory(params.chainId));\n};\n"]}
|
package/dist/erc721/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc721/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc721/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./errors.js\";\nexport * from \"./metadata.js\";\nexport * from \"./service.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/erc721/metadata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/erc721/metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect } from \"effect\";\nimport { Erc721MetadataFetchError } from \"@/src/erc721/errors.js\";\n\nexport type NftMetadata = {\n animation_url?: string;\n attributes?: Array<{\n display_type?: string;\n trait_type: string;\n value: number | string;\n }>;\n description?: string;\n external_url?: string;\n image?: string;\n name?: string;\n [key: string]: unknown;\n};\n\ntype GatewayConfig = {\n arweave?: string;\n ipfs?: string;\n};\n\nconst DATA_URI_BASE64_JSON_RE = /^data:application\\/json;base64,(.+)$/;\nconst DATA_URI_PLAIN_JSON_RE = /^data:application\\/json,(.+)$/;\n\nconst DEFAULT_GATEWAYS: GatewayConfig = {\n arweave: \"https://arweave.net/\",\n ipfs: \"https://ipfs.io/ipfs/\",\n};\n\n/**\n * Resolve gateway URLs for IPFS and Arweave URIs\n */\nexport const resolveUri = (uri: string, gateways?: GatewayConfig): string => {\n const config = { ...DEFAULT_GATEWAYS, ...gateways };\n\n // Handle IPFS URIs\n if (uri.startsWith(\"ipfs://\")) {\n const hash = uri.replace(\"ipfs://\", \"\");\n return `${config.ipfs}${hash}`;\n }\n\n // Handle Arweave URIs\n if (uri.startsWith(\"ar://\")) {\n const hash = uri.replace(\"ar://\", \"\");\n return `${config.arweave}${hash}`;\n }\n\n // Data URIs and HTTP(S) URIs pass through\n return uri;\n};\n\n/**\n * Fetch and parse NFT metadata from a URI\n */\nexport const fetchNftMetadata = (\n uri: string,\n params: {\n address: string;\n chainId: number;\n gateways?: GatewayConfig;\n tokenId: bigint;\n }\n): Effect.Effect<NftMetadata, Erc721MetadataFetchError> =>\n Effect.gen(function* () {\n // Handle data URIs\n if (uri.startsWith(\"data:\")) {\n const match = uri.match(DATA_URI_BASE64_JSON_RE);\n if (match) {\n const decoded = Buffer.from(match[1], \"base64\").toString(\"utf-8\");\n return JSON.parse(decoded) as NftMetadata;\n }\n const jsonMatch = uri.match(DATA_URI_PLAIN_JSON_RE);\n if (jsonMatch) {\n return JSON.parse(decodeURIComponent(jsonMatch[1])) as NftMetadata;\n }\n }\n\n // Resolve gateway URL\n const resolvedUri = resolveUri(uri, params.gateways);\n\n // Fetch metadata\n const response = yield* Effect.tryPromise({\n catch: (cause) =>\n new Erc721MetadataFetchError({\n address: params.address,\n cause,\n chainId: params.chainId,\n message: `Failed to fetch metadata: ${String(cause)}`,\n tokenId: params.tokenId,\n uri: resolvedUri,\n }),\n try: () => fetch(resolvedUri),\n });\n\n if (!response.ok) {\n return yield* Effect.fail(\n new Erc721MetadataFetchError({\n address: params.address,\n chainId: params.chainId,\n message: `HTTP ${response.status}: ${response.statusText}`,\n tokenId: params.tokenId,\n uri: resolvedUri,\n })\n );\n }\n\n const metadata = yield* Effect.tryPromise({\n catch: (cause) =>\n new Erc721MetadataFetchError({\n address: params.address,\n cause,\n chainId: params.chainId,\n message: `Failed to parse JSON metadata: ${String(cause)}`,\n tokenId: params.tokenId,\n uri: resolvedUri,\n }),\n try: () => response.json() as Promise<NftMetadata>,\n });\n\n return metadata;\n });\n"]}
|