@prb/effect-evm 1.0.0-beta.2 → 1.0.0-beta.4

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.
Files changed (300) hide show
  1. package/dist/abi/erc165.js.map +1 -1
  2. package/dist/abi/erc20-no-output.js.map +1 -1
  3. package/dist/abi/erc20.js.map +1 -1
  4. package/dist/abi/erc721.js.map +1 -1
  5. package/dist/abi/index.js.map +1 -1
  6. package/dist/balance/index.js.map +1 -1
  7. package/dist/balance/service.js.map +1 -1
  8. package/dist/balance/service.test.integration.js.map +1 -1
  9. package/dist/balance/utils.js.map +1 -1
  10. package/dist/block/errors.js.map +1 -1
  11. package/dist/block/index.js.map +1 -1
  12. package/dist/block/service.js.map +1 -1
  13. package/dist/block/service.test.integration.js.map +1 -1
  14. package/dist/constants/index.js.map +1 -1
  15. package/dist/contract/cross-chain-reader.js.map +1 -1
  16. package/dist/contract/index.js.map +1 -1
  17. package/dist/contract/pipeline/index.js.map +1 -1
  18. package/dist/contract/pipeline/internal/core.js.map +1 -1
  19. package/dist/contract/pipeline/internal/helpers.js.map +1 -1
  20. package/dist/contract/pipeline/internal/nonce.js.map +1 -1
  21. package/dist/contract/pipeline/internal/prepare.js.map +1 -1
  22. package/dist/contract/pipeline/internal/receipt.js.map +1 -1
  23. package/dist/contract/pipeline/live.js.map +1 -1
  24. package/dist/contract/pipeline/service.js.map +1 -1
  25. package/dist/contract/pipeline/types.js.map +1 -1
  26. package/dist/contract/pipeline/write-and-track.js.map +1 -1
  27. package/dist/contract/pipeline/write-and-wait.js.map +1 -1
  28. package/dist/contract/pipeline.js.map +1 -1
  29. package/dist/contract/reader.js.map +1 -1
  30. package/dist/contract/typed-contract.js.map +1 -1
  31. package/dist/contract/writer.js.map +1 -1
  32. package/dist/core/clients/index.js.map +1 -1
  33. package/dist/core/clients/public-client.js.map +1 -1
  34. package/dist/core/clients/wallet-client.js.map +1 -1
  35. package/dist/core/errors/client.js.map +1 -1
  36. package/dist/core/errors/contract.js.map +1 -1
  37. package/dist/core/errors/erc20.js.map +1 -1
  38. package/dist/core/errors/event.js.map +1 -1
  39. package/dist/core/errors/index.js.map +1 -1
  40. package/dist/core/errors/predicates.js.map +1 -1
  41. package/dist/core/errors/transaction.js.map +1 -1
  42. package/dist/core/errors/viem-mapper.js.map +1 -1
  43. package/dist/core/index.js.map +1 -1
  44. package/dist/deploy/errors.js.map +1 -1
  45. package/dist/deploy/index.js.map +1 -1
  46. package/dist/deploy/service.js.map +1 -1
  47. package/dist/eip7702/erc7579.js.map +1 -1
  48. package/dist/eip7702/errors.js.map +1 -1
  49. package/dist/eip7702/index.js.map +1 -1
  50. package/dist/eip7702/service.js.map +1 -1
  51. package/dist/ens/ens.d.ts.map +1 -1
  52. package/dist/ens/ens.js +6 -6
  53. package/dist/ens/ens.js.map +1 -1
  54. package/dist/ens/errors.js.map +1 -1
  55. package/dist/ens/index.js.map +1 -1
  56. package/dist/erc20/allowance/core.js.map +1 -1
  57. package/dist/erc20/allowance/index.js.map +1 -1
  58. package/dist/erc20/allowance/no-output.js.map +1 -1
  59. package/dist/erc20/allowance/types.js.map +1 -1
  60. package/dist/erc20/index.js.map +1 -1
  61. package/dist/erc20/metadata.js.map +1 -1
  62. package/dist/erc721/errors.js.map +1 -1
  63. package/dist/erc721/helpers.js.map +1 -1
  64. package/dist/erc721/index.js.map +1 -1
  65. package/dist/erc721/metadata.js.map +1 -1
  66. package/dist/erc721/service.js.map +1 -1
  67. package/dist/events/backfill.js.map +1 -1
  68. package/dist/events/backfill.test.integration.js.map +1 -1
  69. package/dist/events/cursor.js.map +1 -1
  70. package/dist/events/decoder.js.map +1 -1
  71. package/dist/events/index.js.map +1 -1
  72. package/dist/events/reliable-stream-simple.test.integration.js.map +1 -1
  73. package/dist/events/reliable-stream.js.map +1 -1
  74. package/dist/events/reliable-stream.test.integration.js.map +1 -1
  75. package/dist/events/stream.js.map +1 -1
  76. package/dist/events/stream.test.integration.js.map +1 -1
  77. package/dist/gas/errors.js.map +1 -1
  78. package/dist/gas/estimator.js.map +1 -1
  79. package/dist/gas/index.js.map +1 -1
  80. package/dist/gas/service.js.map +1 -1
  81. package/dist/gas/service.test.integration.js.map +1 -1
  82. package/dist/index.js.map +1 -1
  83. package/dist/integrations/react-hooks/convenience/index.js.map +1 -1
  84. package/dist/integrations/react-hooks/internal/error.js.map +1 -1
  85. package/dist/integrations/react-hooks/internal/is-dev.js.map +1 -1
  86. package/dist/integrations/react-hooks/internal/runtime.js.map +1 -1
  87. package/dist/integrations/react-hooks/internal/scoped-run.js.map +1 -1
  88. package/dist/integrations/react-hooks/internal/stable.js.map +1 -1
  89. package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.js.map +1 -1
  90. package/dist/integrations/react-hooks/primitives/use-effect.js.map +1 -1
  91. package/dist/integrations/react-hooks/primitives/use-fork-effect.js.map +1 -1
  92. package/dist/integrations/react-hooks/primitives/use-stream.js.map +1 -1
  93. package/dist/integrations/react-hooks/primitives.js.map +1 -1
  94. package/dist/integrations/react-hooks/provider.js.map +1 -1
  95. package/dist/integrations/react-hooks/wagmi/index.js.map +1 -1
  96. package/dist/integrations/react-hooks/wallet-provider-ref.js.map +1 -1
  97. package/dist/integrations/wagmi/index.js.map +1 -1
  98. package/dist/integrations/wagmi/layers.js.map +1 -1
  99. package/dist/internal/index.js.map +1 -1
  100. package/dist/internal/numbers.js.map +1 -1
  101. package/dist/internal/schedule.js.map +1 -1
  102. package/dist/internal/stream-adapters.js.map +1 -1
  103. package/dist/internal/viem-effect.js.map +1 -1
  104. package/dist/nonce/index.js.map +1 -1
  105. package/dist/nonce/manager.js.map +1 -1
  106. package/dist/nonce/service.js.map +1 -1
  107. package/dist/nonce/service.test.integration.js.map +1 -1
  108. package/dist/platform/browser/cursor-store/index.js.map +1 -1
  109. package/dist/platform/browser/cursor-store/local-storage.js.map +1 -1
  110. package/dist/platform/browser/index.js.map +1 -1
  111. package/dist/platform/browser/layers.js.map +1 -1
  112. package/dist/platform/browser/storage/errors.js.map +1 -1
  113. package/dist/platform/browser/storage/index.js.map +1 -1
  114. package/dist/platform/browser/storage/local-storage.js.map +1 -1
  115. package/dist/platform/browser/tx-persistence/index.js.map +1 -1
  116. package/dist/platform/browser/tx-persistence/persistence.js.map +1 -1
  117. package/dist/platform/browser/tx-store/errors.js.map +1 -1
  118. package/dist/platform/browser/tx-store/index.js.map +1 -1
  119. package/dist/platform/browser/tx-store/local-storage.js.map +1 -1
  120. package/dist/platform/browser/tx-store/store.js.map +1 -1
  121. package/dist/platform/browser/tx-store/types.js.map +1 -1
  122. package/dist/presets/index.js.map +1 -1
  123. package/dist/presets/layers.js.map +1 -1
  124. package/dist/presets/transports.js.map +1 -1
  125. package/dist/query/chain-head.js.map +1 -1
  126. package/dist/query/client.js.map +1 -1
  127. package/dist/query/client.test.integration.js.map +1 -1
  128. package/dist/query/contract-query.js.map +1 -1
  129. package/dist/query/contract-query.test.integration.js.map +1 -1
  130. package/dist/query/index.js.map +1 -1
  131. package/dist/query/multicall-batcher.js.map +1 -1
  132. package/dist/react-hooks/index.d.ts +3 -1
  133. package/dist/react-hooks/index.d.ts.map +1 -1
  134. package/dist/react-hooks/index.js +3 -1
  135. package/dist/react-hooks/index.js.map +1 -1
  136. package/dist/react-hooks/safe-origins.d.ts +8 -0
  137. package/dist/react-hooks/safe-origins.d.ts.map +1 -0
  138. package/dist/react-hooks/safe-origins.js +124 -0
  139. package/dist/react-hooks/safe-origins.js.map +1 -0
  140. package/dist/react-hooks/use-is-host-safe-multisig.d.ts +2 -0
  141. package/dist/react-hooks/use-is-host-safe-multisig.d.ts.map +1 -0
  142. package/dist/react-hooks/use-is-host-safe-multisig.js +16 -0
  143. package/dist/react-hooks/use-is-host-safe-multisig.js.map +1 -0
  144. package/dist/react-hooks/use-is-wallet-safe-multisig.d.ts +2 -0
  145. package/dist/react-hooks/use-is-wallet-safe-multisig.d.ts.map +1 -0
  146. package/dist/react-hooks/use-is-wallet-safe-multisig.js +24 -0
  147. package/dist/react-hooks/use-is-wallet-safe-multisig.js.map +1 -0
  148. package/dist/react-hooks/use-safe-context.d.ts.map +1 -1
  149. package/dist/react-hooks/use-safe-context.js.map +1 -1
  150. package/dist/react-hooks/wagmi/index.js.map +1 -1
  151. package/dist/rpc/cache.js.map +1 -1
  152. package/dist/rpc/circuit-breaker.js.map +1 -1
  153. package/dist/rpc/dedup.js.map +1 -1
  154. package/dist/rpc/index.js.map +1 -1
  155. package/dist/rpc/retry.js.map +1 -1
  156. package/dist/rpc/routemesh.js.map +1 -1
  157. package/dist/safe/adapter.js.map +1 -1
  158. package/dist/safe/detection.js.map +1 -1
  159. package/dist/safe/detection.test.integration.js.map +1 -1
  160. package/dist/safe/errors.js.map +1 -1
  161. package/dist/safe/index.js.map +1 -1
  162. package/dist/safe/live.js.map +1 -1
  163. package/dist/safe/service.js.map +1 -1
  164. package/dist/safe/service.test.integration.js.map +1 -1
  165. package/dist/safe/simulation/abis.d.ts.map +1 -1
  166. package/dist/safe/simulation/abis.js.map +1 -1
  167. package/dist/safe/simulation/addresses.d.ts.map +1 -1
  168. package/dist/safe/simulation/addresses.js +40 -26
  169. package/dist/safe/simulation/addresses.js.map +1 -1
  170. package/dist/safe/simulation/encoding.js.map +1 -1
  171. package/dist/safe/simulation/errors.js.map +1 -1
  172. package/dist/safe/simulation/index.js.map +1 -1
  173. package/dist/safe/simulation/internal/calldata/calldata.d.ts +5 -0
  174. package/dist/safe/simulation/internal/calldata/calldata.d.ts.map +1 -0
  175. package/dist/safe/simulation/internal/calldata/calldata.js +17 -0
  176. package/dist/safe/simulation/internal/calldata/calldata.js.map +1 -0
  177. package/dist/safe/simulation/internal/calldata/index.d.ts +2 -0
  178. package/dist/safe/simulation/internal/calldata/index.d.ts.map +1 -0
  179. package/dist/safe/simulation/internal/calldata/index.js +2 -0
  180. package/dist/safe/simulation/internal/calldata/index.js.map +1 -0
  181. package/dist/safe/simulation/internal/contracts/contracts.d.ts +5 -0
  182. package/dist/safe/simulation/internal/contracts/contracts.d.ts.map +1 -0
  183. package/dist/safe/simulation/internal/contracts/contracts.js +25 -0
  184. package/dist/safe/simulation/internal/contracts/contracts.js.map +1 -0
  185. package/dist/safe/simulation/internal/contracts/index.d.ts +2 -0
  186. package/dist/safe/simulation/internal/contracts/index.d.ts.map +1 -0
  187. package/dist/safe/simulation/internal/contracts/index.js +2 -0
  188. package/dist/safe/simulation/internal/contracts/index.js.map +1 -0
  189. package/dist/safe/simulation/internal/evaluation/evaluation.d.ts +6 -0
  190. package/dist/safe/simulation/internal/evaluation/evaluation.d.ts.map +1 -0
  191. package/dist/safe/simulation/internal/evaluation/evaluation.js +20 -0
  192. package/dist/safe/simulation/internal/evaluation/evaluation.js.map +1 -0
  193. package/dist/safe/simulation/internal/evaluation/index.d.ts +2 -0
  194. package/dist/safe/simulation/internal/evaluation/index.d.ts.map +1 -0
  195. package/dist/safe/simulation/internal/evaluation/index.js +2 -0
  196. package/dist/safe/simulation/internal/evaluation/index.js.map +1 -0
  197. package/dist/safe/simulation/internal/execution/execution.d.ts +9 -0
  198. package/dist/safe/simulation/internal/execution/execution.d.ts.map +1 -0
  199. package/dist/safe/simulation/internal/execution/execution.js +65 -0
  200. package/dist/safe/simulation/internal/execution/execution.js.map +1 -0
  201. package/dist/safe/simulation/internal/execution/index.d.ts +2 -0
  202. package/dist/safe/simulation/internal/execution/index.d.ts.map +1 -0
  203. package/dist/safe/simulation/internal/execution/index.js +2 -0
  204. package/dist/safe/simulation/internal/execution/index.js.map +1 -0
  205. package/dist/safe/simulation/internal/limits/index.d.ts +2 -0
  206. package/dist/safe/simulation/internal/limits/index.d.ts.map +1 -0
  207. package/dist/safe/simulation/internal/limits/index.js +2 -0
  208. package/dist/safe/simulation/internal/limits/index.js.map +1 -0
  209. package/dist/safe/simulation/internal/limits/limits.d.ts +5 -0
  210. package/dist/safe/simulation/internal/limits/limits.d.ts.map +1 -0
  211. package/dist/safe/simulation/internal/limits/limits.js +18 -0
  212. package/dist/safe/simulation/internal/limits/limits.js.map +1 -0
  213. package/dist/safe/simulation/internal/types/index.d.ts +2 -0
  214. package/dist/safe/simulation/internal/types/index.d.ts.map +1 -0
  215. package/dist/safe/simulation/internal/types/index.js +2 -0
  216. package/dist/safe/simulation/internal/types/index.js.map +1 -0
  217. package/dist/safe/simulation/internal/types/types.d.ts +11 -0
  218. package/dist/safe/simulation/internal/types/types.d.ts.map +1 -0
  219. package/dist/safe/simulation/internal/types/types.js +2 -0
  220. package/dist/safe/simulation/internal/types/types.js.map +1 -0
  221. package/dist/safe/simulation/internal/validation/index.d.ts +2 -0
  222. package/dist/safe/simulation/internal/validation/index.d.ts.map +1 -0
  223. package/dist/safe/simulation/internal/validation/index.js +2 -0
  224. package/dist/safe/simulation/internal/validation/index.js.map +1 -0
  225. package/dist/safe/simulation/internal/validation/validation.d.ts +5 -0
  226. package/dist/safe/simulation/internal/validation/validation.d.ts.map +1 -0
  227. package/dist/safe/simulation/internal/validation/validation.js +27 -0
  228. package/dist/safe/simulation/internal/validation/validation.js.map +1 -0
  229. package/dist/safe/simulation/service.d.ts +1 -1
  230. package/dist/safe/simulation/service.d.ts.map +1 -1
  231. package/dist/safe/simulation/service.js +12 -127
  232. package/dist/safe/simulation/service.js.map +1 -1
  233. package/dist/safe/simulation/types.js.map +1 -1
  234. package/dist/safe/types.js.map +1 -1
  235. package/dist/signature/errors.js.map +1 -1
  236. package/dist/signature/index.js.map +1 -1
  237. package/dist/signature/service.js.map +1 -1
  238. package/dist/signature/service.test.integration.js.map +1 -1
  239. package/dist/signature/utils.js.map +1 -1
  240. package/dist/simulation/errors.js.map +1 -1
  241. package/dist/simulation/index.js.map +1 -1
  242. package/dist/simulation/service.js.map +1 -1
  243. package/dist/simulation/tenderly.js.map +1 -1
  244. package/dist/simulation/tenderly.test.integration.js.map +1 -1
  245. package/dist/simulation/types.js.map +1 -1
  246. package/dist/subscriptions/block-subscription.js.map +1 -1
  247. package/dist/subscriptions/errors.js.map +1 -1
  248. package/dist/subscriptions/index.js.map +1 -1
  249. package/dist/subscriptions/log-subscription.js.map +1 -1
  250. package/dist/subscriptions/pending-tx.js.map +1 -1
  251. package/dist/subscriptions/service.js.map +1 -1
  252. package/dist/telemetry/index.js.map +1 -1
  253. package/dist/telemetry/logger.js.map +1 -1
  254. package/dist/telemetry/tracer.js.map +1 -1
  255. package/dist/testing-kit/_fixtures/addresses.js.map +1 -1
  256. package/dist/testing-kit/_fixtures/receipts.js.map +1 -1
  257. package/dist/testing-kit/helpers.js.map +1 -1
  258. package/dist/testing-kit/index.js.map +1 -1
  259. package/dist/testing-kit/mock-balance-service.js.map +1 -1
  260. package/dist/testing-kit/mock-block-service.js.map +1 -1
  261. package/dist/testing-kit/mock-cross-chain-reader.js.map +1 -1
  262. package/dist/testing-kit/mock-deploy-service.js.map +1 -1
  263. package/dist/testing-kit/mock-erc721-service.js.map +1 -1
  264. package/dist/testing-kit/mock-gas-service.js.map +1 -1
  265. package/dist/testing-kit/mock-nonce-service.js.map +1 -1
  266. package/dist/testing-kit/mock-public-client.js.map +1 -1
  267. package/dist/testing-kit/mock-signature-service.js.map +1 -1
  268. package/dist/testing-kit/mock-simulation-service.js.map +1 -1
  269. package/dist/testing-kit/mock-subscription-service.js.map +1 -1
  270. package/dist/testing-kit/mock-transfer-service.js.map +1 -1
  271. package/dist/testing-kit/mock-wallet-client.js.map +1 -1
  272. package/dist/testing-kit/mock-wallet-provider.js.map +1 -1
  273. package/dist/testing-kit/test-layer.js.map +1 -1
  274. package/dist/transfer/index.js.map +1 -1
  275. package/dist/transfer/service.js.map +1 -1
  276. package/dist/tx/fees.js.map +1 -1
  277. package/dist/tx/index.js.map +1 -1
  278. package/dist/tx/manager.js.map +1 -1
  279. package/dist/tx/manager.test.integration.js.map +1 -1
  280. package/dist/tx/policy.js.map +1 -1
  281. package/dist/tx/replacement.js.map +1 -1
  282. package/dist/tx/tracker.js.map +1 -1
  283. package/dist/types/abi.js.map +1 -1
  284. package/dist/types/index.js.map +1 -1
  285. package/dist/types/params.js.map +1 -1
  286. package/dist/types/tx-overrides.js.map +1 -1
  287. package/dist/wagmi/index.js.map +1 -1
  288. package/dist/wagmi/layers.js.map +1 -1
  289. package/dist/wallet/errors.js.map +1 -1
  290. package/dist/wallet/index.js.map +1 -1
  291. package/dist/wallet/lifecycle.js.map +1 -1
  292. package/dist/wallet/operations.js.map +1 -1
  293. package/dist/wallet/provider-ref.js.map +1 -1
  294. package/dist/wallet/service.js.map +1 -1
  295. package/dist/wallet/types.js.map +1 -1
  296. package/package.json +22 -10
  297. package/dist/react-hooks/use-is-safe-multisig.d.ts +0 -2
  298. package/dist/react-hooks/use-is-safe-multisig.d.ts.map +0 -1
  299. package/dist/react-hooks/use-is-safe-multisig.js +0 -44
  300. package/dist/react-hooks/use-is-safe-multisig.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../../src/platform/browser/tx-store/local-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../../src/platform/browser/tx-store/local-storage.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect, Layer } from \"effect\";\nimport { BrowserStorage } from \"../storage/index.js\";\nimport type { TxStoreError } from \"./errors.js\";\nimport { TxStore } from \"./store.js\";\nimport type { PersistedTx } from \"./types.js\";\n\n/**\n * Configuration for LocalStorageTxStore.\n */\nexport type LocalStorageTxStoreConfig = {\n /**\n * Maximum number of transactions to retain in storage.\n * When exceeded, oldest terminal (mined/failed) transactions are pruned.\n * @default 200\n */\n maxTxs?: number;\n};\n\n/**\n * Default configuration for LocalStorageTxStore.\n */\nconst DEFAULT_CONFIG: Required<LocalStorageTxStoreConfig> = {\n maxTxs: 200,\n};\n\n/**\n * Key prefix for transaction storage.\n */\nconst TX_KEY_PREFIX = \"ew3:v1:tx:\";\n\n/**\n * Key for the transaction index (stores array of tx IDs).\n */\nconst INDEX_KEY = \"ew3:v1:tx:index\";\n\n/**\n * Key prefix for quarantined corrupt transactions.\n */\nconst CORRUPT_KEY_PREFIX = \"ew3:v1:tx:corrupt:\";\n\n/**\n * Generate a storage key for a transaction.\n */\nfunction makeTxKey(chainId: number, rootHash: string): string {\n return `${TX_KEY_PREFIX}${chainId}:${rootHash}`;\n}\n\n/**\n * Parse transaction ID into chainId and rootHash.\n */\nfunction parseTxId(id: string): { chainId: number; rootHash: string } | null {\n const parts = id.split(\":\");\n if (parts.length !== 2) {\n return null;\n }\n\n const chainId = Number.parseInt(parts[0], 10);\n if (Number.isNaN(chainId)) {\n return null;\n }\n\n return { chainId, rootHash: parts[1] };\n}\n\n/**\n * Read the transaction index from storage.\n */\nfunction readIndex(storage: BrowserStorage): Effect.Effect<string[], TxStoreError> {\n return Effect.gen(function* () {\n const raw = yield* storage.get(INDEX_KEY);\n if (raw === null) {\n return [];\n }\n\n try {\n const parsed = JSON.parse(raw);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n // Index corrupted, reset to empty\n return [];\n }\n });\n}\n\n/**\n * Write the transaction index to storage.\n */\nfunction writeIndex(storage: BrowserStorage, index: string[]): Effect.Effect<void, TxStoreError> {\n return storage.set(INDEX_KEY, JSON.stringify(index));\n}\n\n/**\n * Read a single transaction from storage.\n * Returns null if not found or if decode fails (quarantines corrupt data).\n */\nfunction readTx(\n storage: BrowserStorage,\n id: string\n): Effect.Effect<PersistedTx | null, TxStoreError> {\n return Effect.gen(function* () {\n const parsed = parseTxId(id);\n if (!parsed) {\n return null;\n }\n\n const key = makeTxKey(parsed.chainId, parsed.rootHash);\n const raw = yield* storage.get(key);\n if (raw === null) {\n return null;\n }\n\n try {\n const tx = JSON.parse(raw) as PersistedTx;\n return tx;\n } catch (_error) {\n // Quarantine corrupt data\n const quarantineKey = `${CORRUPT_KEY_PREFIX}${id}:${Date.now()}`;\n yield* storage.set(quarantineKey, raw);\n yield* storage.remove(key);\n return null;\n }\n });\n}\n\n/**\n * Write a single transaction to storage.\n */\nfunction writeTx(storage: BrowserStorage, tx: PersistedTx): Effect.Effect<void, TxStoreError> {\n return Effect.gen(function* () {\n const parsed = parseTxId(tx.id);\n if (!parsed) {\n return;\n }\n\n const key = makeTxKey(parsed.chainId, parsed.rootHash);\n const raw = JSON.stringify(tx);\n yield* storage.set(key, raw);\n });\n}\n\n/**\n * Delete a single transaction from storage.\n */\nfunction deleteTx(storage: BrowserStorage, id: string): Effect.Effect<void, TxStoreError> {\n return Effect.gen(function* () {\n const parsed = parseTxId(id);\n if (!parsed) {\n return;\n }\n\n const key = makeTxKey(parsed.chainId, parsed.rootHash);\n yield* storage.remove(key);\n });\n}\n\n/**\n * Prune oldest terminal transactions if maxTxs is exceeded.\n */\nfunction pruneIfNeeded(\n storage: BrowserStorage,\n txs: PersistedTx[],\n maxTxs: number\n): Effect.Effect<PersistedTx[], TxStoreError> {\n return Effect.gen(function* () {\n if (txs.length <= maxTxs) {\n return txs;\n }\n\n // Separate in-flight from terminal\n const inFlight = txs.filter((tx) => tx.status === \"submitted\" || tx.status === \"pending\");\n const terminal = txs.filter((tx) => tx.status === \"mined\" || tx.status === \"failed\");\n\n // Sort terminal by updatedAt (oldest first)\n terminal.sort((a, b) => a.updatedAt - b.updatedAt);\n\n // Calculate how many to prune\n const totalAfterPrune = maxTxs;\n const keepTerminal = Math.max(0, totalAfterPrune - inFlight.length);\n const toPrune = terminal.slice(0, terminal.length - keepTerminal);\n\n // Delete pruned transactions\n for (const tx of toPrune) {\n yield* deleteTx(storage, tx.id);\n }\n\n // Return remaining transactions\n const kept = terminal.slice(terminal.length - keepTerminal);\n return [...inFlight, ...kept];\n });\n}\n\n/**\n * LocalStorage-based implementation of TxStore.\n * Uses an index to track all transaction IDs for efficient retrieval.\n */\nexport const makeLocalStorageTxStoreLive = (\n config: LocalStorageTxStoreConfig = {}\n): Layer.Layer<TxStore, never, BrowserStorage> => {\n const finalConfig = { ...DEFAULT_CONFIG, ...config };\n\n return Layer.effect(\n TxStore,\n Effect.gen(function* () {\n const storage = yield* BrowserStorage;\n\n return TxStore.of({\n delete: (id: string) =>\n Effect.gen(function* () {\n // Delete the transaction\n yield* deleteTx(storage, id);\n\n // Remove from index\n const index = yield* readIndex(storage);\n const newIndex = index.filter((txId) => txId !== id);\n yield* writeIndex(storage, newIndex);\n }),\n\n get: (id: string) => readTx(storage, id),\n getAll: () =>\n Effect.gen(function* () {\n const index = yield* readIndex(storage);\n const txs: PersistedTx[] = [];\n\n for (const id of index) {\n const tx = yield* readTx(storage, id);\n if (tx !== null) {\n txs.push(tx);\n }\n }\n\n // Update index to remove any IDs that failed to load\n const validIds = txs.map((tx) => tx.id);\n if (validIds.length !== index.length) {\n yield* writeIndex(storage, validIds);\n }\n\n return txs;\n }),\n\n getInFlight: () =>\n Effect.gen(function* () {\n const index = yield* readIndex(storage);\n const inFlight: PersistedTx[] = [];\n\n for (const id of index) {\n const tx = yield* readTx(storage, id);\n if (tx !== null && (tx.status === \"submitted\" || tx.status === \"pending\")) {\n inFlight.push(tx);\n }\n }\n\n return inFlight;\n }),\n\n upsert: (tx: PersistedTx) =>\n Effect.gen(function* () {\n // Write the transaction\n yield* writeTx(storage, tx);\n\n // Update index\n const index = yield* readIndex(storage);\n if (!index.includes(tx.id)) {\n index.push(tx.id);\n }\n\n // Load all transactions for pruning\n const allTxs: PersistedTx[] = [];\n for (const id of index) {\n const loadedTx = yield* readTx(storage, id);\n if (loadedTx !== null) {\n allTxs.push(loadedTx);\n }\n }\n\n // Prune if needed\n const prunedTxs = yield* pruneIfNeeded(storage, allTxs, finalConfig.maxTxs);\n const prunedIds = prunedTxs.map((t) => t.id);\n\n // Write updated index\n yield* writeIndex(storage, prunedIds);\n }),\n });\n })\n );\n};\n\n/**\n * LocalStorage-based TxStore layer with default configuration.\n */\nexport const LocalStorageTxStoreLive = makeLocalStorageTxStoreLive();\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/platform/browser/tx-store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAuCrD,MAAM,OAAO,OAAQ,SAAQ,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAyB;CAAG;AAMnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAC7C,OAAO,EACP,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,EAAuB,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAC,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CACrB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEJ,GAAG,EAAE,CAAC,EAAU,EAAE,EAAE,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;QAC7B,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;QAEJ,WAAW,EAAE,GAAG,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACpC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,CAC7D,CAAC;QACJ,CAAC,CAAC;QAEJ,MAAM,EAAE,CAAC,EAAe,EAAE,EAAE,CAC1B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;KACL,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/platform/browser/tx-store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAuCrD,MAAM,OAAO,OAAQ,SAAQ,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAyB;CAAG;AAMnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAC7C,OAAO,EACP,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,EAAuB,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAC,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CACrB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEJ,GAAG,EAAE,CAAC,EAAU,EAAE,EAAE,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;QAC7B,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;QAEJ,WAAW,EAAE,GAAG,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACpC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,CAC7D,CAAC;QACJ,CAAC,CAAC;QAEJ,MAAM,EAAE,CAAC,EAAe,EAAE,EAAE,CAC1B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;KACL,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC","sourcesContent":["import { Context, Effect, Layer, Ref } from \"effect\";\nimport type { TxStoreError } from \"./errors.js\";\nimport type { PersistedTx } from \"./types.js\";\n\n/**\n * Service interface for transaction store operations.\n * Provides CRUD operations for persisted transaction records.\n */\nexport type TxStoreShape = {\n /**\n * Retrieve all transactions from the store.\n */\n readonly getAll: () => Effect.Effect<PersistedTx[], TxStoreError>;\n\n /**\n * Retrieve a single transaction by ID.\n * Returns null if the transaction does not exist.\n */\n readonly get: (id: string) => Effect.Effect<PersistedTx | null, TxStoreError>;\n\n /**\n * Insert or update a transaction in the store.\n */\n readonly upsert: (tx: PersistedTx) => Effect.Effect<void, TxStoreError>;\n\n /**\n * Delete a transaction from the store by ID.\n */\n readonly delete: (id: string) => Effect.Effect<void, TxStoreError>;\n\n /**\n * Retrieve all in-flight transactions (submitted or pending status).\n */\n readonly getInFlight: () => Effect.Effect<PersistedTx[], TxStoreError>;\n};\n\n/**\n * Context tag for the TxStore service.\n */\nexport class TxStore extends Context.Tag(\"ew3/TxStore\")<TxStore, TxStoreShape>() {}\n\n/**\n * In-memory implementation of TxStore using a Ref-based Map.\n * Useful for testing or when persistence is not required.\n */\nexport const InMemoryTxStoreLive = Layer.effect(\n TxStore,\n Effect.gen(function* () {\n const store = yield* Ref.make(new Map<string, PersistedTx>());\n\n return TxStore.of({\n delete: (id: string) =>\n Effect.gen(function* () {\n yield* Ref.update(store, (map) => {\n const newMap = new Map(map);\n newMap.delete(id);\n return newMap;\n });\n }),\n\n get: (id: string) =>\n Effect.gen(function* () {\n const map = yield* Ref.get(store);\n return map.get(id) ?? null;\n }),\n getAll: () =>\n Effect.gen(function* () {\n const map = yield* Ref.get(store);\n return Array.from(map.values());\n }),\n\n getInFlight: () =>\n Effect.gen(function* () {\n const map = yield* Ref.get(store);\n return Array.from(map.values()).filter(\n (tx) => tx.status === \"submitted\" || tx.status === \"pending\"\n );\n }),\n\n upsert: (tx: PersistedTx) =>\n Effect.gen(function* () {\n yield* Ref.update(store, (map) => {\n const newMap = new Map(map);\n newMap.set(tx.id, tx);\n return newMap;\n });\n }),\n });\n })\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/platform/browser/tx-store/types.ts"],"names":[],"mappings":"AAuJA,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,QAAc;IACtD,OAAO,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/platform/browser/tx-store/types.ts"],"names":[],"mappings":"AAuJA,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,QAAc;IACtD,OAAO,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;AAClC,CAAC","sourcesContent":["import type { Hash } from \"viem\";\n\n/**\n * Represents a transaction replacement event (cancellation, repricing, or replacement).\n */\nexport type TxReplacement = {\n /**\n * Unix timestamp (milliseconds) when the replacement occurred.\n */\n at: number;\n\n /**\n * The original transaction hash that was replaced.\n */\n oldHash: Hash;\n\n /**\n * The new transaction hash after replacement.\n */\n newHash: Hash;\n\n /**\n * The reason for the replacement.\n */\n reason: \"cancelled\" | \"replaced\" | \"repriced\";\n};\n\n/**\n * Optional metadata about transaction gas parameters.\n * Stored as decimal strings to support bigint serialization.\n */\nexport type PersistedTxMeta = {\n /**\n * Gas limit as decimal string.\n */\n gas?: string;\n\n /**\n * Gas price as decimal string (legacy transactions).\n */\n gasPrice?: string;\n\n /**\n * Max fee per gas as decimal string (EIP-1559 transactions).\n */\n maxFeePerGas?: string;\n\n /**\n * Max priority fee per gas as decimal string (EIP-1559 transactions).\n */\n maxPriorityFeePerGas?: string;\n\n /**\n * Transaction nonce as decimal string.\n */\n nonce?: string;\n\n /**\n * Transaction type as decimal string (0 = legacy, 2 = EIP-1559, etc.).\n */\n type?: string;\n};\n\n/**\n * Persisted transaction record stored in browser storage.\n * Tracks the full lifecycle of a transaction including replacements.\n */\nexport type PersistedTx = {\n /**\n * Unique identifier: `${chainId}:${rootHash}`\n */\n id: string;\n\n /**\n * Chain ID where the transaction was submitted.\n */\n chainId: number;\n\n /**\n * The first submitted transaction hash (never changes).\n */\n rootHash: Hash;\n\n /**\n * The current transaction hash (updated after replacements).\n */\n currentHash: Hash;\n\n /**\n * Current status of the transaction.\n */\n status: \"submitted\" | \"pending\" | \"mined\" | \"failed\";\n\n /**\n * Unix timestamp (milliseconds) when the transaction was first created.\n */\n createdAt: number;\n\n /**\n * Unix timestamp (milliseconds) when the transaction was last updated.\n */\n updatedAt: number;\n\n /**\n * History of transaction replacements.\n */\n replacements: TxReplacement[];\n\n /**\n * Optional transaction metadata (gas parameters, nonce, etc.).\n */\n txMeta?: PersistedTxMeta;\n\n /**\n * Recipient address.\n */\n to?: string;\n\n /**\n * Sender address.\n */\n from?: string;\n\n /**\n * Transaction value as decimal string.\n */\n value?: string;\n\n /**\n * Transaction calldata as hex string.\n */\n data?: string;\n\n /**\n * Human-readable description of the transaction.\n */\n description?: string;\n\n /**\n * User-defined tags for categorization.\n */\n tags?: string[];\n};\n\n/**\n * Generate a unique transaction ID from chain ID and root hash.\n *\n * @param chainId - The chain ID\n * @param rootHash - The root transaction hash\n * @returns Transaction ID in format `${chainId}:${rootHash}`\n */\nexport function makeTxId(chainId: number, rootHash: Hash): string {\n return `${chainId}:${rootHash}`;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC","sourcesContent":["export * from \"./layers.js\";\nexport * from \"./transports.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/presets/layers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/presets/layers.ts"],"names":[],"mappings":"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","sourcesContent":["import { FetchHttpClient } from \"@effect/platform\";\nimport { Effect, Layer, Option } from \"effect\";\nimport type { Chain, PublicClient, Transport, WalletClient } from \"viem\";\nimport { createPublicClient, createWalletClient, custom, fallback, webSocket } from \"viem\";\nimport type { BalanceService } from \"@/src/balance/index.js\";\nimport { BalanceServiceLive } from \"@/src/balance/index.js\";\nimport type { BlockService } from \"@/src/block/index.js\";\nimport { BlockServiceLive } from \"@/src/block/index.js\";\nimport type { ContractPipeline, ContractReader, ContractWriter } from \"@/src/contract/index.js\";\nimport {\n ContractPipelineLive,\n ContractReaderLive,\n ContractWriterLive,\n} from \"@/src/contract/index.js\";\nimport {\n ClientNotFoundError,\n PublicClientService,\n WalletClientService,\n WalletNotConnectedError,\n WrongNetworkError,\n} from \"@/src/core/index.js\";\nimport type { DeployService } from \"@/src/deploy/index.js\";\nimport { DeployServiceLive } from \"@/src/deploy/index.js\";\nimport type { Eip7702Service } from \"@/src/eip7702/index.js\";\nimport { Eip7702ServiceLive } from \"@/src/eip7702/index.js\";\nimport type { EnsResolver } from \"@/src/ens/index.js\";\nimport { EnsResolverLive } from \"@/src/ens/index.js\";\nimport type { Erc721Service } from \"@/src/erc721/index.js\";\nimport { Erc721ServiceLive } from \"@/src/erc721/index.js\";\nimport type {\n CursorStore,\n CursorStream,\n EventBackfill,\n EventStream,\n ReliableEventStream,\n} from \"@/src/events/index.js\";\nimport {\n CursorStreamLive,\n EventBackfillLive,\n EventStreamLive,\n InMemoryCursorStoreLive,\n ReliableEventStreamLive,\n} from \"@/src/events/index.js\";\nimport type { GasService } from \"@/src/gas/index.js\";\nimport { GasServiceLive } from \"@/src/gas/index.js\";\nimport { parseHexInt } from \"@/src/internal/index.js\";\nimport type { NonceService } from \"@/src/nonce/index.js\";\nimport { NonceServiceLive } from \"@/src/nonce/index.js\";\nimport type { ChainHead, ContractQuery, MulticallBatcher, QueryClient } from \"@/src/query/index.js\";\nimport {\n ChainHeadLive,\n ContractQueryLive,\n MulticallBatcherLive,\n QueryClientLive,\n} from \"@/src/query/index.js\";\nimport type { RequestDedup, RpcCache } from \"@/src/rpc/index.js\";\nimport { makeRpcCacheLive, RequestDedupLive } from \"@/src/rpc/index.js\";\nimport type { SignatureService } from \"@/src/signature/index.js\";\nimport { SignatureServiceLive } from \"@/src/signature/index.js\";\nimport type { SimulationService } from \"@/src/simulation/index.js\";\nimport { SimulationServiceLive } from \"@/src/simulation/index.js\";\nimport type { SubscriptionService } from \"@/src/subscriptions/index.js\";\nimport { SubscriptionServiceLive } from \"@/src/subscriptions/index.js\";\nimport type { TxManager, TxReplacement } from \"@/src/tx/index.js\";\nimport { TxManagerLive, TxReplacementLive } from \"@/src/tx/index.js\";\nimport type { WalletLifecycle, WalletProvider, WalletService } from \"@/src/wallet/index.js\";\nimport {\n makeWalletLifecycleLive,\n makeWalletProviderRefLive,\n makeWalletServiceLive,\n WalletLifecycleFromProviderRefLive,\n WalletProviderRef,\n WalletServiceFromProviderRefLive,\n} from \"@/src/wallet/index.js\";\nimport type { HttpTransportOptions } from \"./transports.js\";\nimport { makeHttpTransport } from \"./transports.js\";\n\nconst UNKNOWN_CHAIN_ID = 0;\n\nexport type TransportRetryConfig = {\n /** The max number of times to retry. */\n readonly retryCount?: number | undefined;\n /** Base delay (in ms) between retries. */\n readonly retryDelay?: number | undefined;\n /** Timeout (in ms) for requests. */\n readonly timeout?: number | undefined;\n};\n\nexport type TransportCircuitBreakerConfig = {\n /**\n * Open the circuit after this many consecutive failures.\n * @default 5\n */\n readonly failureThreshold?: number | undefined;\n /**\n * Time (ms) to keep the circuit open before allowing a trial request.\n * @default 15_000\n */\n readonly resetTimeoutMs?: number | undefined;\n};\n\nexport type RpcMiddlewareConfig = {\n /**\n * Transport-level retry options (applied to URL-based transports).\n * Note: viem also has built-in retry for some transports; this config is passed through.\n */\n readonly retry?: TransportRetryConfig | undefined;\n /** Simple circuit breaker guarding transport request/subscribe */\n readonly circuitBreaker?: TransportCircuitBreakerConfig | undefined;\n /**\n * Optional in-flight request dedup for safe methods only.\n * Safe-method allowlist is intentionally strict.\n */\n readonly dedup?: boolean | undefined;\n};\n\nexport type ChainConfig = {\n readonly chainId: number;\n readonly chain: Chain;\n /** HTTP RPC URLs (fallback order). Required unless `transport` is provided. */\n readonly rpcUrls: readonly string[];\n /** Optional WS RPC URLs (fallback order). Used for subscription-backed operations when present. */\n readonly wsUrls?: readonly string[] | undefined;\n /**\n * Escape hatch: provide a fully constructed viem transport.\n * Takes precedence over `rpcUrls`/`wsUrls`/`http` options.\n */\n readonly transport?: Transport | undefined;\n /** HTTP transport options applied per URL when building from `rpcUrls`. */\n readonly http?: TransportRetryConfig | undefined;\n /** WebSocket transport options applied per URL when building from `wsUrls`. */\n readonly ws?:\n | (TransportRetryConfig & {\n readonly keepAlive?: boolean | undefined;\n readonly reconnect?: boolean | undefined;\n })\n | undefined;\n /** Optional middleware wrappers. */\n readonly rpcMiddleware?: RpcMiddlewareConfig | undefined;\n};\n\nconst toHttpOptions = (retry: TransportRetryConfig | undefined): HttpTransportOptions => ({\n retryCount: retry?.retryCount,\n retryDelay: retry?.retryDelay,\n timeout: retry?.timeout,\n});\n\nconst safeMethodAllowlist = new Set([\n \"eth_blockNumber\",\n \"eth_call\",\n \"eth_chainId\",\n \"eth_feeHistory\",\n \"eth_gasPrice\",\n \"eth_getBalance\",\n \"eth_getBlockByHash\",\n \"eth_getBlockByNumber\",\n \"eth_getCode\",\n \"eth_getLogs\",\n \"eth_getStorageAt\",\n \"eth_getTransactionByHash\",\n \"eth_getTransactionCount\",\n \"eth_getTransactionReceipt\",\n \"net_version\",\n]);\n\nconst stableStringify = (value: unknown): string =>\n JSON.stringify(value, (_, v) => (typeof v === \"bigint\" ? v.toString() : v));\n\nconst withDedup =\n (transport: Transport): Transport =>\n (args) => {\n const inner = transport(args);\n const inflight = new Map<string, ReturnType<typeof inner.request>>();\n\n const request = ((rpcRequest: unknown) => {\n const method = (rpcRequest as { method?: unknown }).method;\n if (typeof method !== \"string\" || !safeMethodAllowlist.has(method)) {\n return inner.request(rpcRequest as never);\n }\n\n const chainId = args.chain?.id ?? \"unknown\";\n const key = `${chainId}:${method}:${stableStringify((rpcRequest as { params?: unknown }).params)}`;\n\n const existing = inflight.get(key);\n if (existing) {\n return existing;\n }\n\n const promise = inner.request(rpcRequest as never);\n inflight.set(key, promise);\n\n (promise as Promise<unknown>).finally(() => {\n inflight.delete(key);\n });\n\n return promise;\n }) as unknown as typeof inner.request;\n\n return { ...inner, request };\n };\n\nconst withCircuitBreaker = (\n transport: Transport,\n config: TransportCircuitBreakerConfig\n): Transport => {\n const failureThreshold = config.failureThreshold ?? 5;\n const resetTimeoutMs = config.resetTimeoutMs ?? 15_000;\n\n let consecutiveFailures = 0;\n let openedAtMs: number | undefined;\n\n const isOpen = (): boolean =>\n openedAtMs !== undefined && Date.now() - openedAtMs < resetTimeoutMs;\n\n const noteFailure = () => {\n consecutiveFailures += 1;\n if (consecutiveFailures >= failureThreshold && openedAtMs === undefined) {\n openedAtMs = Date.now();\n }\n };\n\n const noteSuccess = () => {\n consecutiveFailures = 0;\n openedAtMs = undefined;\n };\n\n return (args) => {\n const inner = transport(args);\n\n const request = ((rpcRequest: unknown) => {\n if (isOpen()) {\n return Promise.reject(new Error(\"RPC circuit breaker is open\")) as ReturnType<\n typeof inner.request\n >;\n }\n\n const result = inner.request(rpcRequest as never);\n return (result as Promise<unknown>).then(\n (resultValue) => {\n noteSuccess();\n return resultValue;\n },\n (e) => {\n noteFailure();\n throw e;\n }\n ) as ReturnType<typeof inner.request>;\n }) as unknown as typeof inner.request;\n\n const value = (() => {\n const v = inner.value;\n if (typeof v !== \"object\" || v === null) {\n return v;\n }\n if (!(\"subscribe\" in v)) {\n return v;\n }\n\n const subscribeValue = (v as { subscribe?: unknown }).subscribe;\n if (typeof subscribeValue !== \"function\") {\n return v;\n }\n\n const subscribe = subscribeValue as (\n ...subscribeArgs: readonly unknown[]\n ) => Promise<unknown>;\n\n return {\n ...(v as Record<string, unknown>),\n subscribe: async (...subscribeArgs: readonly unknown[]) => {\n if (isOpen()) {\n throw new Error(\"RPC circuit breaker is open\");\n }\n\n try {\n const result = await subscribe(...subscribeArgs);\n noteSuccess();\n return result;\n } catch (e) {\n noteFailure();\n throw e;\n }\n },\n };\n })();\n\n return { ...inner, request, value };\n };\n};\n\nconst makePublicTransportForChain = (config: ChainConfig): Transport => {\n const middlewareRetry = config.rpcMiddleware?.retry;\n const httpOptions = toHttpOptions(config.http ?? middlewareRetry);\n\n const baseTransport =\n config.transport ??\n (() => {\n if (config.rpcUrls.length === 0) {\n throw new Error(\n `Invalid ChainConfig for chainId=${config.chainId}: rpcUrls must be non-empty when transport is not provided`\n );\n }\n\n const httpTransports = config.rpcUrls.map((url) =>\n makeHttpTransport({ url, ...httpOptions })\n );\n const httpTransport =\n httpTransports.length === 1 ? httpTransports[0] : fallback(httpTransports);\n\n const wsUrls = config.wsUrls ?? [];\n if (wsUrls.length === 0) {\n return httpTransport;\n }\n\n const wsConfig = config.ws ?? middlewareRetry;\n const wsTransports = wsUrls.map((url) =>\n webSocket(url, {\n keepAlive: config.ws?.keepAlive,\n reconnect: config.ws?.reconnect,\n retryCount: wsConfig?.retryCount,\n retryDelay: wsConfig?.retryDelay,\n timeout: wsConfig?.timeout,\n })\n );\n const wsTransport = wsTransports.length === 1 ? wsTransports[0] : fallback(wsTransports);\n\n // Prefer WS for subscription-backed flows, while keeping HTTP fallback for requests.\n // `fallback()` does not reliably preserve `subscribe`, so stitch `subscribe` back in from WS.\n const requestTransport = fallback([wsTransport, httpTransport]);\n return (args) => {\n const req = requestTransport(args);\n const ws = wsTransport(args);\n const wsValue = ws.value;\n\n const subscribe =\n typeof wsValue === \"object\" &&\n wsValue !== null &&\n \"subscribe\" in wsValue &&\n typeof (wsValue as { subscribe?: unknown }).subscribe === \"function\"\n ? (wsValue as { subscribe: unknown }).subscribe\n : undefined;\n\n return subscribe\n ? {\n ...req,\n value: { ...(req.value as Record<string, unknown>), subscribe },\n }\n : req;\n };\n })();\n\n const deduped = config.rpcMiddleware?.dedup ? withDedup(baseTransport) : baseTransport;\n const circuitBreaker =\n config.rpcMiddleware?.circuitBreaker !== undefined\n ? withCircuitBreaker(deduped, config.rpcMiddleware.circuitBreaker)\n : deduped;\n\n return circuitBreaker;\n};\n\n/**\n * Create a PublicClientService layer from chain configurations\n */\nexport function makePublicClientLayer(configs: ChainConfig[]): Layer.Layer<PublicClientService> {\n const clients = new Map<number, PublicClient>();\n\n for (const config of configs) {\n const client = createPublicClient({\n chain: config.chain,\n transport: makePublicTransportForChain(config),\n });\n clients.set(config.chainId, client);\n }\n\n return Layer.succeed(PublicClientService, {\n get: (chainId: number) =>\n Effect.gen(function* () {\n const client = clients.get(chainId);\n if (!client) {\n return yield* Effect.fail(\n new ClientNotFoundError({\n chainId,\n message: `No public client found for chain ${chainId}`,\n })\n );\n }\n return client;\n }),\n });\n}\n\n/**\n * Create a WalletClientService layer from an EIP-1193 provider\n */\nexport function makeWalletClientLayer(\n provider: { request: (...args: unknown[]) => Promise<unknown> },\n chains: Map<number, Chain>\n): Layer.Layer<WalletClientService> {\n return Layer.succeed(WalletClientService, {\n get: (chainId: number) =>\n Effect.gen(function* () {\n const chain = chains.get(chainId);\n if (!chain) {\n return yield* Effect.fail(\n new WalletNotConnectedError({\n chainId,\n message: `No chain configuration found for chain ${chainId}`,\n })\n );\n }\n\n const actualChainId = yield* Effect.tryPromise({\n catch: (cause) =>\n new WalletNotConnectedError({\n chainId,\n message:\n cause instanceof Error\n ? cause.message\n : `Failed to read wallet chainId for ${chainId}`,\n }),\n try: async () => {\n const hex = await provider.request({ method: \"eth_chainId\" });\n if (typeof hex !== \"string\") {\n throw new Error(\"Invalid eth_chainId response\");\n }\n return Option.getOrElse(parseHexInt(hex), () => UNKNOWN_CHAIN_ID);\n },\n });\n\n if (actualChainId !== chainId) {\n return yield* Effect.fail(\n new WrongNetworkError({\n actualChainId,\n expectedChainId: chainId,\n message: `Wallet is on chainId=${actualChainId} but expected chainId=${chainId}`,\n })\n );\n }\n\n const client = createWalletClient({\n chain,\n transport: custom(provider),\n });\n\n return client as WalletClient;\n }),\n });\n}\n\n/**\n * Create a WalletClientService layer from a dynamic provider ref.\n *\n * This is the key building block for \"stable runtime\" frontends: the runtime stays alive,\n * while the provider can be set/cleared/changed without reconstructing the Layer/Runtime.\n */\nexport function makeWalletClientLayerFromProviderRef(\n chains: Map<number, Chain>\n): Layer.Layer<WalletClientService, never, WalletProviderRef> {\n return Layer.effect(\n WalletClientService,\n Effect.gen(function* () {\n const providerRef = yield* WalletProviderRef;\n\n return WalletClientService.of({\n get: (chainId: number) =>\n Effect.gen(function* () {\n const chain = chains.get(chainId);\n if (!chain) {\n return yield* Effect.fail(\n new WalletNotConnectedError({\n chainId,\n message: `No chain configuration found for chain ${chainId}`,\n })\n );\n }\n\n const current = yield* providerRef.get;\n if (Option.isNone(current)) {\n return yield* Effect.fail(\n new WalletNotConnectedError({\n chainId,\n message: \"No wallet provider set\",\n })\n );\n }\n\n const provider = current.value;\n const actualChainId = yield* Effect.tryPromise({\n catch: (cause) =>\n new WalletNotConnectedError({\n chainId,\n message:\n cause instanceof Error\n ? cause.message\n : `Failed to read wallet chainId for ${chainId}`,\n }),\n try: async () => {\n const hex = await provider.request({ method: \"eth_chainId\" });\n if (typeof hex !== \"string\") {\n throw new Error(\"Invalid eth_chainId response\");\n }\n return Option.getOrElse(parseHexInt(hex), () => UNKNOWN_CHAIN_ID);\n },\n });\n\n if (actualChainId !== chainId) {\n return yield* Effect.fail(\n new WrongNetworkError({\n actualChainId,\n expectedChainId: chainId,\n message: `Wallet is on chainId=${actualChainId} but expected chainId=${chainId}`,\n })\n );\n }\n\n const client = createWalletClient({\n chain,\n transport: custom(provider),\n });\n\n return client as WalletClient;\n }),\n });\n })\n );\n}\n\n/**\n * Compose all effect-evm services into a single layer\n * Requires PublicClientService and WalletClientService to be provided\n * Note: WalletService and WalletLifecycle require a provider and should be added via makeEffectEvmLayer\n */\nconst cursorServices = Layer.mergeAll(EventStreamLive, EventBackfillLive, InMemoryCursorStoreLive);\n\nconst cursorStreamServices = Layer.provideMerge(CursorStreamLive, cursorServices);\n\nconst baseServices = Layer.mergeAll(\n BlockServiceLive,\n ContractReaderLive,\n ContractWriterLive,\n Erc721ServiceLive,\n cursorServices,\n cursorStreamServices,\n EnsResolverLive,\n GasServiceLive,\n NonceServiceLive,\n SignatureServiceLive,\n SubscriptionServiceLive,\n makeRpcCacheLive(),\n RequestDedupLive\n);\n\nconst txServices = Layer.provideMerge(\n TxManagerLive,\n Layer.provideMerge(TxReplacementLive, baseServices)\n);\n\nconst queryServices = Layer.provideMerge(\n ContractQueryLive,\n Layer.provideMerge(\n MulticallBatcherLive,\n Layer.provideMerge(QueryClientLive, Layer.provideMerge(ChainHeadLive, txServices))\n )\n);\n\nexport const effectEvmServices = Layer.provideMerge(\n Layer.mergeAll(\n BalanceServiceLive,\n ContractPipelineLive,\n Eip7702ServiceLive,\n DeployServiceLive,\n ReliableEventStreamLive,\n SimulationServiceLive\n ),\n queryServices\n).pipe(Layer.provide(FetchHttpClient.layer));\n\n/**\n * Create a complete effect-evm layer from chain configurations and provider\n */\nexport function makeEffectEvmLayer(\n configs: ChainConfig[],\n provider: { request: (...args: unknown[]) => Promise<unknown> }\n): Layer.Layer<\n | PublicClientService\n | WalletClientService\n | BalanceService\n | BlockService\n | ChainHead\n | ContractReader\n | ContractQuery\n | ContractWriter\n | ContractPipeline\n | Eip7702Service\n | DeployService\n | Erc721Service\n | GasService\n | NonceService\n | QueryClient\n | MulticallBatcher\n | RpcCache\n | RequestDedup\n | SignatureService\n | SimulationService\n | SubscriptionService\n | TxManager\n | TxReplacement\n | EventBackfill\n | EventStream\n | CursorStore\n | CursorStream\n | ReliableEventStream\n | EnsResolver\n | WalletService\n | WalletLifecycle\n> {\n const chains = new Map(configs.map((c) => [c.chainId, c.chain]));\n\n const clientLayers = Layer.mergeAll(\n makePublicClientLayer(configs),\n makeWalletClientLayer(provider, chains)\n );\n\n const walletLayers = Layer.mergeAll(\n makeWalletServiceLive(provider),\n makeWalletLifecycleLive(provider)\n );\n\n return Layer.provideMerge(Layer.mergeAll(effectEvmServices, walletLayers), clientLayers);\n}\n\n/**\n * Create a complete effect-evm layer with a dynamic wallet provider reference.\n *\n * This is intended for frontends (e.g. Next.js) that want a stable Effect runtime\n * while the wallet provider changes over time.\n *\n * Set/clear the provider by using `WalletProviderRef` (e.g. from React via `useForkEffect`).\n */\nexport function makeEffectEvmLayerWithWalletProviderRef(\n configs: ChainConfig[],\n initialProvider?: WalletProvider | undefined\n): Layer.Layer<\n | PublicClientService\n | WalletClientService\n | BalanceService\n | BlockService\n | ChainHead\n | ContractReader\n | ContractQuery\n | ContractWriter\n | ContractPipeline\n | Eip7702Service\n | DeployService\n | Erc721Service\n | GasService\n | NonceService\n | QueryClient\n | MulticallBatcher\n | RpcCache\n | RequestDedup\n | SignatureService\n | SimulationService\n | SubscriptionService\n | TxManager\n | TxReplacement\n | EventBackfill\n | EventStream\n | CursorStore\n | CursorStream\n | ReliableEventStream\n | EnsResolver\n | WalletService\n | WalletLifecycle\n | WalletProviderRef\n> {\n const chains = new Map(configs.map((c) => [c.chainId, c.chain]));\n const providerRefLayer = makeWalletProviderRefLive(initialProvider);\n\n const walletClientLayer = Layer.provideMerge(\n makeWalletClientLayerFromProviderRef(chains),\n providerRefLayer\n );\n\n const clientLayers = Layer.mergeAll(makePublicClientLayer(configs), walletClientLayer);\n\n const walletLayers = Layer.provideMerge(\n Layer.mergeAll(WalletServiceFromProviderRefLive, WalletLifecycleFromProviderRefLive),\n providerRefLayer\n );\n\n return Layer.provideMerge(\n Layer.mergeAll(effectEvmServices, walletLayers, providerRefLayer),\n clientLayers\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/presets/transports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAkBxF,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QACtB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,mBAAmB;QACpD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;KACnD,CAAC,CAAC;AACL,CAAC;AAKD,MAAM,UAAU,qBAAqB,CACnC,IAAuB,EACvB,UAAgC,EAAE;IAElC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAKD,MAAM,UAAU,mBAAmB,CACjC,MAIG;IAEH,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5E,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAA+B,CAChC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/presets/transports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAkBxF,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QACtB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,mBAAmB;QACpD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;KACnD,CAAC,CAAC;AACL,CAAC;AAKD,MAAM,UAAU,qBAAqB,CACnC,IAAuB,EACvB,UAAgC,EAAE;IAElC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAKD,MAAM,UAAU,mBAAmB,CACjC,MAIG;IAEH,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5E,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAA+B,CAChC,CAAC;AACJ,CAAC","sourcesContent":["import type { Transport } from \"viem\";\nimport { fallback, http } from \"viem\";\nimport { DEFAULT_REQUEST_TIMEOUT, DEFAULT_RETRY_DELAY } from \"@/src/constants/index.js\";\n\nexport type TransportConfig = {\n /** RPC URL */\n url: string;\n /** Timeout in milliseconds */\n timeout?: number;\n /** Number of retries on failure */\n retryCount?: number;\n /** Delay between retries in milliseconds */\n retryDelay?: number;\n};\n\nexport type HttpTransportOptions = Omit<TransportConfig, \"url\">;\n\n/**\n * Create an HTTP transport with configurable retry behavior\n */\nexport function makeHttpTransport(config: TransportConfig): Transport {\n return http(config.url, {\n retryCount: config.retryCount ?? 3,\n retryDelay: config.retryDelay ?? DEFAULT_RETRY_DELAY,\n timeout: config.timeout ?? DEFAULT_REQUEST_TIMEOUT,\n });\n}\n\n/**\n * Create a fallback transport from multiple URLs\n */\nexport function makeFallbackTransport(\n urls: readonly string[],\n options: HttpTransportOptions = {}\n): Transport {\n return fallback(urls.map((url) => makeHttpTransport({ url, ...options })));\n}\n\n/**\n * Create transports map for multiple chains\n */\nexport function makeChainTransports(\n chains: {\n chainId: number;\n rpcUrls: readonly string[];\n http?: HttpTransportOptions | undefined;\n }[]\n): Record<number, Transport> {\n return chains.reduce(\n (acc, chain) => {\n acc[chain.chainId] = makeFallbackTransport(chain.rpcUrls, chain.http ?? {});\n return acc;\n },\n {} as Record<number, Transport>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chain-head.js","sourceRoot":"","sources":["../../src/query/chain-head.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGxD,OAAO,EAAE,mBAAmB,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAYrD,MAAM,OAAO,SAAU,SAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAA6B;CAAG;AAE3F,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CACvC,SAAS,EACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC;IACvD,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC;IAEvD,OAAO,SAAS,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEvD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,mBAAmB,CAAC;oBACtB,KAAK;oBACL,OAAO,EAAE,+CAA+C,OAAO,GAAG;oBAClE,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS;iBACvC,CAAC;gBACJ,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE;aACnC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE;YAC1C,UAAU,EAAE,EAAE,OAAO,EAAE;SACxB,CAAC,CACH;QAEH,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;gBAChE,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CACjE,CAAC;QACJ,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;YACrC,UAAU,EAAE,EAAE,OAAO,EAAE;SACxB,CAAC,CACH;KACJ,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"chain-head.js","sourceRoot":"","sources":["../../src/query/chain-head.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGxD,OAAO,EAAE,mBAAmB,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAYrD,MAAM,OAAO,SAAU,SAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAA6B;CAAG;AAE3F,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CACvC,SAAS,EACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC;IACvD,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC;IAEvD,OAAO,SAAS,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEvD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,mBAAmB,CAAC;oBACtB,KAAK;oBACL,OAAO,EAAE,+CAA+C,OAAO,GAAG;oBAClE,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS;iBACvC,CAAC;gBACJ,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE;aACnC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE;YAC1C,UAAU,EAAE,EAAE,OAAO,EAAE;SACxB,CAAC,CACH;QAEH,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;gBAChE,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CACjE,CAAC;QACJ,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;YACrC,UAAU,EAAE,EAAE,OAAO,EAAE;SACxB,CAAC,CACH;KACJ,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC","sourcesContent":["import { Context, Effect, Layer, Stream } from \"effect\";\nimport type { Block } from \"viem\";\nimport type { ClientNotFoundError, TransportError } from \"@/src/core/index.js\";\nimport { PublicClientService, TransportError as TransportErrorClass } from \"@/src/core/index.js\";\nimport { SubscriptionService } from \"@/src/subscriptions/index.js\";\nimport { SpanNames } from \"@/src/telemetry/index.js\";\n\nexport type ChainHeadShape = {\n readonly current: (\n chainId: number\n ) => Effect.Effect<bigint, ClientNotFoundError | TransportError>;\n\n readonly watch: (\n chainId: number\n ) => Effect.Effect<Stream.Stream<bigint, never>, ClientNotFoundError>;\n};\n\nexport class ChainHead extends Context.Tag(\"ew3/ChainHead\")<ChainHead, ChainHeadShape>() {}\n\nexport const ChainHeadLive = Layer.effect(\n ChainHead,\n Effect.gen(function* () {\n const publicClientService = yield* PublicClientService;\n const subscriptionService = yield* SubscriptionService;\n\n return ChainHead.of({\n current: (chainId) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) =>\n new TransportErrorClass({\n cause,\n message: `Failed to get current block number (chainId=${chainId})`,\n url: client.transport.url ?? \"unknown\",\n }),\n try: () => client.getBlockNumber(),\n });\n }).pipe(\n Effect.withSpan(SpanNames.BLOCK_GET_NUMBER, {\n attributes: { chainId },\n })\n ),\n\n watch: (chainId) =>\n Effect.gen(function* () {\n const { stream } = yield* subscriptionService.watchBlocksRetrying({\n chainId,\n });\n\n return stream.pipe(\n Stream.map((block: Block) => block.number),\n Stream.filter((n): n is bigint => n !== null && n !== undefined)\n );\n }).pipe(\n Effect.withSpan(SpanNames.BLOCK_WATCH, {\n attributes: { chainId },\n })\n ),\n });\n })\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/query/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/query/client.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Fiber } from \"effect\";\nimport { Context, Effect, Layer, Ref, Stream } from \"effect\";\nimport { ChainHead } from \"@/src/query/chain-head.js\";\nimport { RequestDedup, RpcCache } from \"@/src/rpc/index.js\";\n\nexport type QueryOptions = {\n readonly ttl?: number | undefined;\n readonly blockScoped?: boolean | undefined;\n readonly chainId?: number | undefined;\n};\n\nexport type WatchOptions = QueryOptions & {\n readonly refetchOn: Stream.Stream<unknown, never>;\n};\n\nexport type QueryClientShape = {\n readonly query: <A, E, R>(\n key: string,\n effect: Effect.Effect<A, E, R>,\n options?: QueryOptions | undefined\n ) => Effect.Effect<A, E, R>;\n\n readonly watch: <A, E, R>(\n key: string,\n effect: Effect.Effect<A, E, R>,\n options: WatchOptions\n ) => Stream.Stream<A, E, R>;\n};\n\nexport class QueryClient extends Context.Tag(\"ew3/QueryClient\")<QueryClient, QueryClientShape>() {}\n\nexport const QueryClientLive = Layer.scoped(\n QueryClient,\n Effect.gen(function* () {\n const cache = yield* RpcCache;\n const dedup = yield* RequestDedup;\n const chainHead = yield* ChainHead;\n const scope = yield* Effect.scope;\n\n type InvalidatorState = Fiber.RuntimeFiber<void, never> | \"starting\";\n const invalidatorsRef = yield* Ref.make(new Map<number, InvalidatorState>());\n\n const ensureInvalidator = (chainId: number): Effect.Effect<void> =>\n Effect.gen(function* () {\n const shouldStart = yield* Ref.modify(invalidatorsRef, (current) => {\n if (current.has(chainId)) {\n return [false, current] as const;\n }\n const next = new Map(current);\n next.set(chainId, \"starting\");\n return [true, next] as const;\n });\n\n if (!shouldStart) {\n return;\n }\n\n const stream = yield* chainHead.watch(chainId);\n const started = Stream.runForEach(stream, (blockNumber) =>\n cache.invalidateBlock(blockNumber)\n )\n .pipe(Effect.forkIn(scope))\n .pipe(\n Effect.tap((fiber) =>\n Ref.update(invalidatorsRef, (current) => {\n const next = new Map(current);\n next.set(chainId, fiber);\n return next;\n })\n ),\n Effect.catchAll(() =>\n Ref.update(invalidatorsRef, (current) => {\n const next = new Map(current);\n next.delete(chainId);\n return next;\n })\n )\n );\n\n yield* started;\n }).pipe(Effect.catchAll(() => Effect.void));\n\n const query: QueryClientShape[\"query\"] = <A, E, R>(\n key: string,\n effect: Effect.Effect<A, E, R>,\n options?: QueryOptions | undefined\n ) =>\n Effect.gen(function* () {\n if (options?.blockScoped && options.chainId !== undefined) {\n yield* ensureInvalidator(options.chainId);\n }\n\n const cached = yield* cache.get<A>(key);\n if (cached !== null) {\n return cached;\n }\n\n return yield* dedup.dedupe(key, effect).pipe(\n Effect.tap((value) =>\n Effect.gen(function* () {\n if (options?.blockScoped && options.chainId !== undefined) {\n const current = yield* chainHead.current(options.chainId).pipe(Effect.either);\n if (current._tag === \"Right\") {\n yield* cache.set(key, value, current.right, options.ttl);\n return;\n }\n }\n yield* cache.set(key, value, undefined, options?.ttl);\n })\n )\n );\n });\n\n const watch: QueryClientShape[\"watch\"] = <A, E, R>(\n key: string,\n effect: Effect.Effect<A, E, R>,\n options: WatchOptions\n ) => {\n const initial = Stream.fromEffect(query(key, effect, options));\n const refetch = options.refetchOn.pipe(Stream.mapEffect(() => query(key, effect, options)));\n return Stream.concat(initial, refetch);\n };\n\n return QueryClient.of({ query, watch });\n })\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"client.test.integration.js","sourceRoot":"","sources":["../../src/query/client.test.integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.test.integration.js","sourceRoot":"","sources":["../../src/query/client.test.integration.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from \"@effect/vitest\";\nimport { Deferred, Effect, Fiber, Layer, Ref, Stream, SubscriptionRef } from \"effect\";\nimport { ChainHead, QueryClient, QueryClientLive } from \"@/src/query/index.js\";\nimport { makeRpcCacheLive, RequestDedupLive, RpcCache } from \"@/src/rpc/index.js\";\nimport { TEST_CHAIN_ID } from \"@/src/testing-kit/index.js\";\n\ndescribe(\"QueryClient\", () => {\n it.effect(\"caches repeated queries\", () =>\n Effect.gen(function* () {\n const queryClient = yield* QueryClient;\n\n let executions = 0;\n const effect = Effect.sync(() => {\n executions += 1;\n return \"value\";\n });\n\n const result1 = yield* queryClient.query(\"key\", effect, { ttl: 60_000 });\n const result2 = yield* queryClient.query(\"key\", effect, { ttl: 60_000 });\n\n expect(result1).toBe(\"value\");\n expect(result2).toBe(\"value\");\n expect(executions).toBe(1);\n }).pipe(\n Effect.provide(\n Layer.provide(\n QueryClientLive,\n Layer.mergeAll(\n Layer.succeed(\n ChainHead,\n ChainHead.of({\n current: () => Effect.succeed(1n),\n watch: () => Effect.succeed(Stream.empty),\n })\n ),\n makeRpcCacheLive({ ttl: 60_000 }),\n RequestDedupLive\n )\n )\n )\n )\n );\n\n it.effect(\"dedupes concurrent queries with the same key\", () =>\n Effect.gen(function* () {\n const queryClient = yield* QueryClient;\n const started = yield* Deferred.make<void>();\n const gate = yield* Deferred.make<void>();\n\n let executions = 0;\n const effect = Effect.gen(function* () {\n executions += 1;\n yield* Deferred.succeed(started, undefined);\n yield* Deferred.await(gate);\n return \"shared\";\n });\n\n const fiber1 = yield* Effect.fork(queryClient.query(\"key\", effect, { ttl: 60_000 }));\n const fiber2 = yield* Effect.fork(queryClient.query(\"key\", effect, { ttl: 60_000 }));\n\n yield* Deferred.await(started);\n yield* Deferred.succeed(gate, undefined);\n\n const result1 = yield* Fiber.join(fiber1);\n const result2 = yield* Fiber.join(fiber2);\n\n expect(result1).toBe(\"shared\");\n expect(result2).toBe(\"shared\");\n expect(executions).toBe(1);\n }).pipe(\n Effect.provide(\n Layer.provide(\n QueryClientLive,\n Layer.mergeAll(\n Layer.succeed(\n ChainHead,\n ChainHead.of({\n current: () => Effect.succeed(1n),\n watch: () => Effect.succeed(Stream.empty),\n })\n ),\n makeRpcCacheLive({ ttl: 60_000 }),\n RequestDedupLive\n )\n )\n )\n )\n );\n\n it.effect(\"invalidates block-scoped cache entries on new head blocks\", () =>\n Effect.gen(function* () {\n const headRef = yield* SubscriptionRef.make(1n);\n const watchStarted = yield* Deferred.make<void>();\n const invalidated = yield* Deferred.make<void>();\n const invalidationsRef = yield* Ref.make<readonly bigint[]>([]);\n\n const queryClientLayer = Layer.provideMerge(\n QueryClientLive,\n Layer.mergeAll(\n Layer.succeed(\n ChainHead,\n ChainHead.of({\n current: () => SubscriptionRef.get(headRef),\n watch: () =>\n Effect.succeed(\n headRef.changes.pipe(Stream.onStart(Deferred.succeed(watchStarted, undefined)))\n ),\n })\n ),\n Layer.provide(\n Layer.effect(\n RpcCache,\n Effect.gen(function* () {\n const base = yield* RpcCache;\n return RpcCache.of({\n ...base,\n invalidateBlock: (blockNumber) =>\n base.invalidateBlock(blockNumber).pipe(\n Effect.tap(() =>\n Ref.update(invalidationsRef, (current) => [...current, blockNumber])\n ),\n Effect.tap(() =>\n blockNumber === 2n\n ? Deferred.succeed(invalidated, undefined).pipe(Effect.asVoid)\n : Effect.void\n )\n ),\n });\n })\n ),\n makeRpcCacheLive({ ttl: 60_000 })\n ),\n RequestDedupLive\n )\n );\n\n return yield* Effect.gen(function* () {\n const queryClient = yield* QueryClient;\n const cache = yield* RpcCache;\n\n let executions = 0;\n const effect = Effect.sync(() => {\n executions += 1;\n return \"value\";\n });\n\n const result1 = yield* queryClient.query(\"key\", effect, {\n blockScoped: true,\n chainId: TEST_CHAIN_ID,\n ttl: 60_000,\n });\n\n expect(yield* cache.get<string>(\"key\")).toBe(\"value\");\n\n yield* Deferred.await(watchStarted);\n\n // Set the new block - this will trigger invalidation via headRef.changes\n yield* SubscriptionRef.set(headRef, 2n);\n\n yield* Deferred.await(invalidated);\n expect(yield* cache.get<string>(\"key\")).toBeNull();\n expect(yield* Ref.get(invalidationsRef)).toContain(2n);\n\n const result2 = yield* queryClient.query(\"key\", effect, {\n blockScoped: true,\n chainId: TEST_CHAIN_ID,\n ttl: 60_000,\n });\n\n expect(result1).toBe(\"value\");\n expect(result2).toBe(\"value\");\n expect(executions).toBe(2);\n }).pipe(Effect.provide(queryClientLayer));\n }).pipe(Effect.scoped)\n );\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"contract-query.js","sourceRoot":"","sources":["../../src/query/contract-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract-query.js","sourceRoot":"","sources":["../../src/query/contract-query.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Stream } from \"effect\";\nimport { Context, Effect, Layer } from \"effect\";\nimport type { Abi, ContractFunctionName } from \"viem\";\nimport type { ClientNotFoundError, ContractReadError, MulticallError } from \"@/src/core/index.js\";\nimport { ContractReadError as ContractReadErrorClass } from \"@/src/core/index.js\";\nimport { ChainHead } from \"@/src/query/chain-head.js\";\nimport { QueryClient } from \"@/src/query/client.js\";\nimport { MulticallBatcher } from \"@/src/query/multicall-batcher.js\";\nimport type { ContractFunctionReturnType, MulticallCall, ReadParams } from \"@/src/types/index.js\";\n\nexport type ContractQueryReadOptions = {\n readonly ttl?: number | undefined;\n readonly blockScoped?: boolean | undefined;\n};\n\nexport type ContractQueryWatchOptions = ContractQueryReadOptions & {\n readonly refetchOn?: Stream.Stream<unknown, never> | undefined;\n};\n\nexport type ContractQueryShape = {\n readonly read: <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">,\n >(\n params: ReadParams<TAbi, TFunctionName>,\n options?: ContractQueryReadOptions | undefined\n ) => Effect.Effect<\n ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName>,\n ContractReadError | MulticallError | ClientNotFoundError\n >;\n\n readonly watchRead: <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">,\n >(\n params: ReadParams<TAbi, TFunctionName>,\n options?: ContractQueryWatchOptions | undefined\n ) => Effect.Effect<\n Stream.Stream<\n ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName>,\n ContractReadError | MulticallError | ClientNotFoundError\n >,\n ClientNotFoundError\n >;\n};\n\nexport class ContractQuery extends Context.Tag(\"ew3/ContractQuery\")<\n ContractQuery,\n ContractQueryShape\n>() {}\n\nconst stableStringify = (value: unknown): string =>\n JSON.stringify(value, (_, v) => (typeof v === \"bigint\" ? v.toString() : v));\n\nconst stableKey = (params: ReadParams<Abi, string>): string => {\n const args = params.args ?? [];\n return [\n \"contractRead\",\n params.chainId,\n params.address,\n params.account ?? \"no-account\",\n String(params.functionName),\n params.blockNumber?.toString() ?? \"no-block-number\",\n params.blockTag ?? \"no-block-tag\",\n stableStringify(args),\n stableStringify(params.abi),\n ].join(\":\");\n};\n\nconst normalizeReadError = (\n params: ReadParams<Abi, string>,\n cause: unknown\n): ContractReadError | MulticallError | ClientNotFoundError => {\n const anyCause = cause as { _tag?: string } | null;\n if (anyCause && typeof anyCause === \"object\" && \"_tag\" in anyCause) {\n const tag = anyCause._tag;\n if (tag === \"ClientNotFoundError\" || tag === \"MulticallError\") {\n return cause as ClientNotFoundError | MulticallError;\n }\n }\n\n const message = cause instanceof Error ? cause.message : String(cause);\n return new ContractReadErrorClass({\n address: params.address,\n cause,\n functionName: params.functionName as string,\n message,\n });\n};\n\nexport const ContractQueryLive = Layer.effect(\n ContractQuery,\n Effect.gen(function* () {\n const queryClient = yield* QueryClient;\n const chainHead = yield* ChainHead;\n const batcher = yield* MulticallBatcher;\n\n const read = <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">,\n >(\n params: ReadParams<TAbi, TFunctionName>,\n options?: ContractQueryReadOptions | undefined\n ) => {\n const key = stableKey(params as unknown as ReadParams<Abi, string>);\n const call = {\n abi: params.abi,\n address: params.address,\n args: params.args as unknown as MulticallCall[\"args\"],\n functionName: params.functionName,\n } satisfies MulticallCall;\n\n const effect = batcher\n .enqueue<ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName>>(\n params.chainId,\n call,\n {\n blockNumber: params.blockNumber,\n blockTag: params.blockTag,\n }\n )\n .pipe(\n Effect.mapError((cause) =>\n normalizeReadError(params as unknown as ReadParams<Abi, string>, cause)\n )\n );\n\n return queryClient.query(key, effect, {\n blockScoped: options?.blockScoped ?? true,\n chainId: params.chainId,\n ttl: options?.ttl,\n });\n };\n\n const watchRead = <\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">,\n >(\n params: ReadParams<TAbi, TFunctionName>,\n options?: ContractQueryWatchOptions | undefined\n ) =>\n Effect.gen(function* () {\n const refetchOn = options?.refetchOn ?? (yield* chainHead.watch(params.chainId));\n const key = stableKey(params as unknown as ReadParams<Abi, string>);\n\n const effect = read(params, options);\n return queryClient.watch(key, effect, {\n blockScoped: options?.blockScoped ?? true,\n chainId: params.chainId,\n refetchOn,\n ttl: options?.ttl,\n });\n });\n\n return ContractQuery.of({ read, watchRead });\n })\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"contract-query.test.integration.js","sourceRoot":"","sources":["../../src/query/contract-query.test.integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract-query.test.integration.js","sourceRoot":"","sources":["../../src/query/contract-query.test.integration.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from \"@effect/vitest\";\nimport { Effect, Layer, Stream } from \"effect\";\nimport type { Abi } from \"viem\";\nimport { erc20Abi } from \"viem\";\nimport { ContractReader } from \"@/src/contract/index.js\";\nimport {\n ChainHead,\n ContractQuery,\n ContractQueryLive,\n MulticallBatcherLive,\n QueryClientLive,\n} from \"@/src/query/index.js\";\nimport { makeRpcCacheLive, RequestDedupLive } from \"@/src/rpc/index.js\";\nimport { TEST_ADDRESS, TEST_ADDRESS_2, TEST_CHAIN_ID } from \"@/src/testing-kit/index.js\";\n\ndescribe(\"ContractQuery\", () => {\n it.effect(\"batches concurrent reads into a single multicall\", () =>\n Effect.gen(function* () {\n let multicallCount = 0;\n let lastBatchSize = 0;\n\n const contractReaderLayer = Layer.succeed(\n ContractReader,\n ContractReader.of({\n multicall: (_chainId, calls) => {\n multicallCount += 1;\n lastBatchSize = calls.length;\n return Effect.succeed(\n calls.map((_, i) => ({\n result: BigInt(i + 1),\n status: \"success\" as const,\n })) as any\n );\n },\n read: () => Effect.succeed(0n as any),\n })\n );\n\n const chainHeadLayer = Layer.succeed(\n ChainHead,\n ChainHead.of({\n current: () => Effect.succeed(1n),\n watch: () => Effect.succeed(Stream.empty),\n })\n );\n\n const queryClientLayer = Layer.provideMerge(\n QueryClientLive,\n Layer.mergeAll(chainHeadLayer, makeRpcCacheLive({ ttl: 60_000 }), RequestDedupLive)\n );\n\n const multicallBatcherLayer = Layer.provideMerge(MulticallBatcherLive, contractReaderLayer);\n\n const contractQueryLayer = Layer.provide(\n ContractQueryLive,\n Layer.mergeAll(queryClientLayer, multicallBatcherLayer)\n );\n\n const contractQuery = yield* ContractQuery.pipe(Effect.provide(contractQueryLayer));\n\n // Use batching: true to enable request batching for concurrent effects\n const [r1, r2, r3] = yield* Effect.all(\n [\n contractQuery.read({\n abi: erc20Abi,\n address: TEST_ADDRESS,\n args: [TEST_ADDRESS] as const,\n chainId: TEST_CHAIN_ID,\n functionName: \"balanceOf\",\n }),\n contractQuery.read({\n abi: erc20Abi,\n address: TEST_ADDRESS,\n args: [TEST_ADDRESS_2] as const,\n chainId: TEST_CHAIN_ID,\n functionName: \"balanceOf\",\n }),\n contractQuery.read({\n abi: erc20Abi,\n address: TEST_ADDRESS,\n chainId: TEST_CHAIN_ID,\n functionName: \"totalSupply\",\n }),\n ],\n { batching: true, concurrency: 3 }\n );\n\n expect(r1).toBe(1n);\n expect(r2).toBe(2n);\n expect(r3).toBe(3n);\n expect(multicallCount).toBe(1);\n expect(lastBatchSize).toBe(3);\n }).pipe(Effect.scoped)\n );\n\n it.effect(\"caches identical reads (no additional multicall)\", () =>\n Effect.gen(function* () {\n let multicallCount = 0;\n\n const contractReaderLayer = Layer.succeed(\n ContractReader,\n ContractReader.of({\n multicall: (_chainId, calls) => {\n multicallCount += 1;\n return Effect.succeed(\n calls.map(() => ({\n result: 123n,\n status: \"success\" as const,\n })) as any\n );\n },\n read: () => Effect.succeed(0n as any),\n })\n );\n\n const chainHeadLayer = Layer.succeed(\n ChainHead,\n ChainHead.of({\n current: () => Effect.succeed(1n),\n watch: () => Effect.succeed(Stream.empty),\n })\n );\n\n const queryClientLayer = Layer.provideMerge(\n QueryClientLive,\n Layer.mergeAll(chainHeadLayer, makeRpcCacheLive({ ttl: 60_000 }), RequestDedupLive)\n );\n\n const multicallBatcherLayer = Layer.provideMerge(MulticallBatcherLive, contractReaderLayer);\n\n const contractQueryLayer = Layer.provide(\n ContractQueryLive,\n Layer.mergeAll(queryClientLayer, multicallBatcherLayer)\n );\n\n const contractQuery = yield* ContractQuery.pipe(Effect.provide(contractQueryLayer));\n\n const params = {\n abi: erc20Abi,\n address: TEST_ADDRESS,\n args: [TEST_ADDRESS] as const,\n chainId: TEST_CHAIN_ID,\n functionName: \"balanceOf\" as const,\n };\n\n const r1 = yield* contractQuery.read(params);\n const r2 = yield* contractQuery.read(params);\n\n expect(r1).toBe(123n);\n expect(r2).toBe(123n);\n expect(multicallCount).toBe(1);\n }).pipe(Effect.scoped)\n );\n\n it.effect(\"does not crash when args contain BigInt (cache key)\", () =>\n Effect.gen(function* () {\n let multicallCount = 0;\n\n const bigintArgAbi = [\n {\n inputs: [{ name: \"x\", type: \"uint256\" }],\n name: \"echo\",\n outputs: [{ name: \"y\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n ] as const satisfies Abi;\n\n const contractReaderLayer = Layer.succeed(\n ContractReader,\n ContractReader.of({\n multicall: (_chainId, calls) => {\n multicallCount += 1;\n expect(calls).toHaveLength(1);\n return Effect.succeed([{ result: 456n, status: \"success\" as const }] as any);\n },\n read: () => Effect.succeed(0n as any),\n })\n );\n\n const chainHeadLayer = Layer.succeed(\n ChainHead,\n ChainHead.of({\n current: () => Effect.succeed(1n),\n watch: () => Effect.succeed(Stream.empty),\n })\n );\n\n const queryClientLayer = Layer.provideMerge(\n QueryClientLive,\n Layer.mergeAll(chainHeadLayer, makeRpcCacheLive({ ttl: 60_000 }), RequestDedupLive)\n );\n\n const multicallBatcherLayer = Layer.provideMerge(MulticallBatcherLive, contractReaderLayer);\n\n const contractQueryLayer = Layer.provide(\n ContractQueryLive,\n Layer.mergeAll(queryClientLayer, multicallBatcherLayer)\n );\n\n const contractQuery = yield* ContractQuery.pipe(Effect.provide(contractQueryLayer));\n\n const params = {\n abi: bigintArgAbi,\n address: TEST_ADDRESS,\n args: [1n] as const,\n chainId: TEST_CHAIN_ID,\n functionName: \"echo\" as const,\n };\n\n const r1 = yield* contractQuery.read(params);\n const r2 = yield* contractQuery.read(params);\n\n expect(r1).toBe(456n);\n expect(r2).toBe(456n);\n expect(multicallCount).toBe(1);\n }).pipe(Effect.scoped)\n );\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC","sourcesContent":["export * from \"./chain-head.js\";\nexport * from \"./client.js\";\nexport * from \"./contract-query.js\";\nexport * from \"./multicall-batcher.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"multicall-batcher.js","sourceRoot":"","sources":["../../src/query/multicall-batcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multicall-batcher.js","sourceRoot":"","sources":["../../src/query/multicall-batcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer, Request, RequestResolver } from \"effect\";\nimport type { ContractReaderShape } from \"@/src/contract/index.js\";\nimport { ContractReader } from \"@/src/contract/index.js\";\nimport type { MulticallCall } from \"@/src/types/index.js\";\n\nexport type MulticallBatchOptions = {\n readonly blockNumber?: bigint | undefined;\n readonly blockTag?: import(\"viem\").BlockTag | undefined;\n};\n\n/**\n * Request type for multicall batching.\n * Each request represents a single contract call to be batched.\n */\ninterface MulticallRequest extends Request.Request<unknown, Error> {\n readonly _tag: \"MulticallRequest\";\n readonly chainId: number;\n readonly call: MulticallCall;\n readonly options?: MulticallBatchOptions | undefined;\n}\n\nconst MulticallRequest = Request.tagged<MulticallRequest>(\"MulticallRequest\");\n\n/**\n * Generate a stable cache key for grouping requests by chainId and options.\n */\nconst stableStringify = (value: unknown): string =>\n JSON.stringify(value, (_, v) => (typeof v === \"bigint\" ? v.toString() : v));\n\nconst keyFor = (chainId: number, options?: MulticallBatchOptions | undefined): string =>\n `${chainId}:${stableStringify(options ?? {})}`;\n\ntype RequestGroup = {\n chainId: number;\n options?: MulticallBatchOptions | undefined;\n requests: readonly MulticallRequest[];\n};\n\n/**\n * Group requests by chainId and block options.\n */\nconst groupRequests = (requests: readonly MulticallRequest[]): Map<string, RequestGroup> => {\n const grouped = new Map<string, RequestGroup>();\n\n for (const req of requests) {\n const key = keyFor(req.chainId, req.options);\n const existing = grouped.get(key);\n if (existing) {\n grouped.set(key, {\n ...existing,\n requests: [...existing.requests, req],\n });\n } else {\n grouped.set(key, {\n chainId: req.chainId,\n options: req.options,\n requests: [req],\n });\n }\n }\n\n return grouped;\n};\n\n/**\n * Complete all requests in a group with a failure.\n */\nconst failGroup = (requests: readonly MulticallRequest[], error: Error) =>\n Effect.forEach(requests, (req) => Request.completeEffect(req, Effect.fail(error)), {\n discard: true,\n });\n\n/**\n * Complete all requests in a group with their corresponding results.\n */\nconst completeGroup = (\n requests: readonly MulticallRequest[],\n results: readonly {\n status: \"success\" | \"failure\";\n result?: unknown;\n error?: Error;\n }[]\n) =>\n Effect.forEach(\n requests,\n (req, i) => {\n const res = results[i];\n if (res?.status === \"success\") {\n return Request.completeEffect(req, Effect.succeed(res.result));\n }\n return Request.completeEffect(\n req,\n Effect.fail(res?.error ?? new Error(\"Unknown multicall error\"))\n );\n },\n { discard: true }\n );\n\n/**\n * Execute a single multicall group and complete all requests.\n */\nconst executeGroup = (contractReader: ContractReaderShape, group: RequestGroup) =>\n Effect.gen(function* () {\n const result = yield* contractReader\n .multicall(\n group.chainId,\n group.requests.map((r) => r.call),\n group.options\n )\n .pipe(Effect.either);\n\n if (result._tag === \"Left\") {\n const error = result.left instanceof Error ? result.left : new Error(String(result.left));\n yield* failGroup(group.requests, error);\n } else {\n yield* completeGroup(group.requests, result.right);\n }\n });\n\n/**\n * Creates a batched RequestResolver that groups multicall requests by chainId and options.\n */\nconst makeMulticallResolver = (\n contractReader: ContractReaderShape\n): RequestResolver.RequestResolver<MulticallRequest, never> =>\n RequestResolver.makeBatched((requests: readonly MulticallRequest[]) =>\n Effect.gen(function* () {\n const grouped = groupRequests(requests);\n\n // Execute groups in parallel (cross-chain requests can run concurrently)\n yield* Effect.all(\n [...grouped.values()].map((group) => executeGroup(contractReader, group)),\n { concurrency: \"unbounded\" }\n );\n })\n ).pipe(RequestResolver.batchN(100));\n\nexport type MulticallBatcherShape = {\n readonly enqueue: <A>(\n chainId: number,\n call: MulticallCall,\n options?: MulticallBatchOptions | undefined\n ) => Effect.Effect<A, Error>;\n};\n\nexport class MulticallBatcher extends Context.Tag(\"ew3/MulticallBatcher\")<\n MulticallBatcher,\n MulticallBatcherShape\n>() {}\n\n/**\n * Live implementation of MulticallBatcher using Effect's Request/RequestResolver.\n * Automatically batches and deduplicates multicall requests across concurrent fibers.\n */\nexport const MulticallBatcherLive = Layer.effect(\n MulticallBatcher,\n Effect.gen(function* () {\n const contractReader = yield* ContractReader;\n const resolver = makeMulticallResolver(contractReader);\n\n return MulticallBatcher.of({\n enqueue: <A>(chainId: number, call: MulticallCall, options?: MulticallBatchOptions) =>\n Effect.request(MulticallRequest({ call, chainId, options }), resolver) as Effect.Effect<\n A,\n Error\n >,\n });\n })\n);\n"]}
@@ -4,6 +4,8 @@ export type { EffectEvmLayerProviderProps, EffectEvmProviderProps, } from "../in
4
4
  export { EffectEvmLayerProvider, EffectEvmProvider, EffectEvmProviderSync, useEffectEvmLayer, useEffectEvmRuntime, } from "../integrations/react-hooks/provider.js";
5
5
  export type { WalletProviderRefActions } from "../integrations/react-hooks/wallet-provider-ref.js";
6
6
  export { useWalletProviderRef } from "../integrations/react-hooks/wallet-provider-ref.js";
7
- export { useIsSafeMultisig } from "./use-is-safe-multisig.js";
7
+ export { DEFAULT_SAFE_ORIGINS, extendSafeOrigins, getSafeOrigins, setSafeOrigins, } from "./safe-origins.js";
8
+ export { useIsHostSafeMultisig } from "./use-is-host-safe-multisig.js";
9
+ export { useIsWalletSafeMultisig } from "./use-is-wallet-safe-multisig.js";
8
10
  export { useSafeContext } from "./use-safe-context.js";
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react-hooks/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,eAAe,GAChB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,8CAA8C,CAAC;AACtD,YAAY,EACV,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react-hooks/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,eAAe,GAChB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,8CAA8C,CAAC;AACtD,YAAY,EACV,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
@@ -2,6 +2,8 @@
2
2
  export { useEffectMemo, useEffectMemoFactory, useEffectOnce, useForkEffect, useStream, useStreamEffect, useStreamValue, useSubscriptionRef, useSubscriptionRefValue, } from "../integrations/react-hooks/primitives.js";
3
3
  export { EffectEvmLayerProvider, EffectEvmProvider, EffectEvmProviderSync, useEffectEvmLayer, useEffectEvmRuntime, } from "../integrations/react-hooks/provider.js";
4
4
  export { useWalletProviderRef } from "../integrations/react-hooks/wallet-provider-ref.js";
5
- export { useIsSafeMultisig } from "./use-is-safe-multisig.js";
5
+ export { DEFAULT_SAFE_ORIGINS, extendSafeOrigins, getSafeOrigins, setSafeOrigins, } from "./safe-origins.js";
6
+ export { useIsHostSafeMultisig } from "./use-is-host-safe-multisig.js";
7
+ export { useIsWalletSafeMultisig } from "./use-is-wallet-safe-multisig.js";
6
8
  export { useSafeContext } from "./use-safe-context.js";
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react-hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAOb,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,8CAA8C,CAAC;AAKtD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react-hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAOb,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,8CAA8C,CAAC;AAKtD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["\"use client\";\n\nexport type {\n EffectMemoOptions,\n StreamState,\n UseEffectResult,\n} from \"@/src/integrations/react-hooks/primitives.js\";\nexport {\n useEffectMemo,\n useEffectMemoFactory,\n useEffectOnce,\n useForkEffect,\n useStream,\n useStreamEffect,\n useStreamValue,\n useSubscriptionRef,\n useSubscriptionRefValue,\n} from \"@/src/integrations/react-hooks/primitives.js\";\nexport type {\n EffectEvmLayerProviderProps,\n EffectEvmProviderProps,\n} from \"@/src/integrations/react-hooks/provider.js\";\nexport {\n EffectEvmLayerProvider,\n EffectEvmProvider,\n EffectEvmProviderSync,\n useEffectEvmLayer,\n useEffectEvmRuntime,\n} from \"@/src/integrations/react-hooks/provider.js\";\nexport type { WalletProviderRefActions } from \"@/src/integrations/react-hooks/wallet-provider-ref.js\";\nexport { useWalletProviderRef } from \"@/src/integrations/react-hooks/wallet-provider-ref.js\";\nexport {\n DEFAULT_SAFE_ORIGINS,\n extendSafeOrigins,\n getSafeOrigins,\n setSafeOrigins,\n} from \"./safe-origins.js\";\nexport { useIsHostSafeMultisig } from \"./use-is-host-safe-multisig.js\";\nexport { useIsWalletSafeMultisig } from \"./use-is-wallet-safe-multisig.js\";\nexport { useSafeContext } from \"./use-safe-context.js\";\n"]}
@@ -0,0 +1,8 @@
1
+ export declare const DEFAULT_SAFE_ORIGINS: readonly ["https://app.safe.global", "https://gnosis-safe.io", "https://safe.global", "https://safe.berachain.com", "https://safe.chiliz.com", "https://safe.lightlink.io", "https://safe.optimism.io"];
2
+ export declare function setSafeOrigins(origins: readonly string[]): void;
3
+ export declare function extendSafeOrigins(origins: readonly string[]): void;
4
+ export declare function getSafeOrigins(): readonly string[];
5
+ export declare function subscribeSafeOrigins(listener: () => void): () => void;
6
+ export declare function isValidSafeOrigin(): boolean;
7
+ export declare function isHostEmbedded(): boolean;
8
+ //# sourceMappingURL=safe-origins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-origins.d.ts","sourceRoot":"","sources":["../../src/react-hooks/safe-origins.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,yMAUvB,CAAC;AASX,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,QAExD;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,QAE3D;AAGD,wBAAgB,cAAc,IAAI,SAAS,MAAM,EAAE,CAElD;AAGD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKrE;AAGD,wBAAgB,iBAAiB,IAAI,OAAO,CAM3C;AAGD,wBAAgB,cAAc,IAAI,OAAO,CAExC"}