@prb/effect-evm 1.0.0-beta.0 → 1.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/DOCS.md +13 -0
  2. package/README.md +4 -0
  3. package/dist/abi/erc165.js.map +1 -1
  4. package/dist/abi/erc20-no-output.js.map +1 -1
  5. package/dist/abi/erc20.js.map +1 -1
  6. package/dist/abi/erc721.js.map +1 -1
  7. package/dist/abi/index.js.map +1 -1
  8. package/dist/balance/index.js.map +1 -1
  9. package/dist/balance/service.js.map +1 -1
  10. package/dist/balance/service.test.integration.d.ts +2 -0
  11. package/dist/balance/service.test.integration.d.ts.map +1 -0
  12. package/dist/balance/service.test.integration.js +289 -0
  13. package/dist/balance/service.test.integration.js.map +1 -0
  14. package/dist/balance/utils.js.map +1 -1
  15. package/dist/block/errors.js.map +1 -1
  16. package/dist/block/index.js.map +1 -1
  17. package/dist/block/service.js.map +1 -1
  18. package/dist/block/service.test.integration.d.ts +2 -0
  19. package/dist/block/service.test.integration.d.ts.map +1 -0
  20. package/dist/block/service.test.integration.js +190 -0
  21. package/dist/block/service.test.integration.js.map +1 -0
  22. package/dist/constants/index.d.ts +0 -4
  23. package/dist/constants/index.d.ts.map +1 -1
  24. package/dist/constants/index.js +1 -5
  25. package/dist/constants/index.js.map +1 -1
  26. package/dist/contract/cross-chain-reader.d.ts +14 -10
  27. package/dist/contract/cross-chain-reader.d.ts.map +1 -1
  28. package/dist/contract/cross-chain-reader.js +2 -8
  29. package/dist/contract/cross-chain-reader.js.map +1 -1
  30. package/dist/contract/index.js.map +1 -1
  31. package/dist/contract/pipeline/index.js.map +1 -1
  32. package/dist/contract/pipeline/internal/core.d.ts +2 -2
  33. package/dist/contract/pipeline/internal/core.d.ts.map +1 -1
  34. package/dist/contract/pipeline/internal/core.js.map +1 -1
  35. package/dist/contract/pipeline/internal/helpers.js.map +1 -1
  36. package/dist/contract/pipeline/internal/nonce.js.map +1 -1
  37. package/dist/contract/pipeline/internal/prepare.js.map +1 -1
  38. package/dist/contract/pipeline/internal/receipt.d.ts +2 -2
  39. package/dist/contract/pipeline/internal/receipt.d.ts.map +1 -1
  40. package/dist/contract/pipeline/internal/receipt.js +1 -1
  41. package/dist/contract/pipeline/internal/receipt.js.map +1 -1
  42. package/dist/contract/pipeline/live.js.map +1 -1
  43. package/dist/contract/pipeline/service.d.ts +3 -3
  44. package/dist/contract/pipeline/service.d.ts.map +1 -1
  45. package/dist/contract/pipeline/service.js.map +1 -1
  46. package/dist/contract/pipeline/types.d.ts +2 -2
  47. package/dist/contract/pipeline/types.d.ts.map +1 -1
  48. package/dist/contract/pipeline/types.js.map +1 -1
  49. package/dist/contract/pipeline/write-and-track.d.ts.map +1 -1
  50. package/dist/contract/pipeline/write-and-track.js +5 -6
  51. package/dist/contract/pipeline/write-and-track.js.map +1 -1
  52. package/dist/contract/pipeline/write-and-wait.d.ts +1 -1
  53. package/dist/contract/pipeline/write-and-wait.d.ts.map +1 -1
  54. package/dist/contract/pipeline/write-and-wait.js.map +1 -1
  55. package/dist/contract/pipeline.js.map +1 -1
  56. package/dist/contract/reader.js.map +1 -1
  57. package/dist/contract/typed-contract.js.map +1 -1
  58. package/dist/contract/writer.js.map +1 -1
  59. package/dist/core/clients/index.js.map +1 -1
  60. package/dist/core/clients/public-client.js.map +1 -1
  61. package/dist/core/clients/wallet-client.js.map +1 -1
  62. package/dist/core/errors/client.js.map +1 -1
  63. package/dist/core/errors/contract.js.map +1 -1
  64. package/dist/core/errors/erc20.js.map +1 -1
  65. package/dist/core/errors/event.js.map +1 -1
  66. package/dist/core/errors/index.js.map +1 -1
  67. package/dist/core/errors/predicates.js.map +1 -1
  68. package/dist/core/errors/transaction.d.ts +10 -8
  69. package/dist/core/errors/transaction.d.ts.map +1 -1
  70. package/dist/core/errors/transaction.js +126 -4
  71. package/dist/core/errors/transaction.js.map +1 -1
  72. package/dist/core/errors/viem-mapper.d.ts +3 -3
  73. package/dist/core/errors/viem-mapper.d.ts.map +1 -1
  74. package/dist/core/errors/viem-mapper.js +14 -16
  75. package/dist/core/errors/viem-mapper.js.map +1 -1
  76. package/dist/core/index.js.map +1 -1
  77. package/dist/deploy/errors.js.map +1 -1
  78. package/dist/deploy/index.js.map +1 -1
  79. package/dist/deploy/service.d.ts +3 -3
  80. package/dist/deploy/service.d.ts.map +1 -1
  81. package/dist/deploy/service.js.map +1 -1
  82. package/dist/eip7702/erc7579.js.map +1 -1
  83. package/dist/eip7702/errors.d.ts +3 -3
  84. package/dist/eip7702/errors.d.ts.map +1 -1
  85. package/dist/eip7702/errors.js +1 -1
  86. package/dist/eip7702/errors.js.map +1 -1
  87. package/dist/eip7702/index.js.map +1 -1
  88. package/dist/eip7702/service.d.ts +8 -8
  89. package/dist/eip7702/service.d.ts.map +1 -1
  90. package/dist/eip7702/service.js +2 -2
  91. package/dist/eip7702/service.js.map +1 -1
  92. package/dist/ens/ens.d.ts.map +1 -1
  93. package/dist/ens/ens.js +6 -6
  94. package/dist/ens/ens.js.map +1 -1
  95. package/dist/ens/errors.js.map +1 -1
  96. package/dist/ens/index.js.map +1 -1
  97. package/dist/erc20/allowance/core.js.map +1 -1
  98. package/dist/erc20/allowance/index.js.map +1 -1
  99. package/dist/erc20/allowance/no-output.js.map +1 -1
  100. package/dist/erc20/allowance/types.js.map +1 -1
  101. package/dist/erc20/index.d.ts +1 -0
  102. package/dist/erc20/index.d.ts.map +1 -1
  103. package/dist/erc20/index.js +1 -0
  104. package/dist/erc20/index.js.map +1 -1
  105. package/dist/erc20/metadata.d.ts +16 -0
  106. package/dist/erc20/metadata.d.ts.map +1 -0
  107. package/dist/erc20/metadata.js +67 -0
  108. package/dist/erc20/metadata.js.map +1 -0
  109. package/dist/erc721/errors.js.map +1 -1
  110. package/dist/erc721/helpers.js.map +1 -1
  111. package/dist/erc721/index.js.map +1 -1
  112. package/dist/erc721/metadata.js.map +1 -1
  113. package/dist/erc721/service.js.map +1 -1
  114. package/dist/events/backfill.js.map +1 -1
  115. package/dist/events/backfill.test.integration.d.ts +2 -0
  116. package/dist/events/backfill.test.integration.d.ts.map +1 -0
  117. package/dist/events/backfill.test.integration.js +112 -0
  118. package/dist/events/backfill.test.integration.js.map +1 -0
  119. package/dist/events/cursor.js.map +1 -1
  120. package/dist/events/decoder.js.map +1 -1
  121. package/dist/events/index.js.map +1 -1
  122. package/dist/events/reliable-stream-simple.test.integration.d.ts +2 -0
  123. package/dist/events/reliable-stream-simple.test.integration.d.ts.map +1 -0
  124. package/dist/events/reliable-stream-simple.test.integration.js +22 -0
  125. package/dist/events/reliable-stream-simple.test.integration.js.map +1 -0
  126. package/dist/events/reliable-stream.js.map +1 -1
  127. package/dist/events/reliable-stream.test.integration.d.ts +2 -0
  128. package/dist/events/reliable-stream.test.integration.d.ts.map +1 -0
  129. package/dist/events/reliable-stream.test.integration.js +327 -0
  130. package/dist/events/reliable-stream.test.integration.js.map +1 -0
  131. package/dist/events/stream.js.map +1 -1
  132. package/dist/events/stream.test.integration.d.ts +2 -0
  133. package/dist/events/stream.test.integration.d.ts.map +1 -0
  134. package/dist/events/stream.test.integration.js +120 -0
  135. package/dist/events/stream.test.integration.js.map +1 -0
  136. package/dist/gas/errors.js.map +1 -1
  137. package/dist/gas/estimator.d.ts.map +1 -1
  138. package/dist/gas/estimator.js +75 -58
  139. package/dist/gas/estimator.js.map +1 -1
  140. package/dist/gas/index.js.map +1 -1
  141. package/dist/gas/service.d.ts.map +1 -1
  142. package/dist/gas/service.js +14 -2
  143. package/dist/gas/service.js.map +1 -1
  144. package/dist/gas/service.test.integration.d.ts +2 -0
  145. package/dist/gas/service.test.integration.d.ts.map +1 -0
  146. package/dist/gas/service.test.integration.js +152 -0
  147. package/dist/gas/service.test.integration.js.map +1 -0
  148. package/dist/index.js.map +1 -1
  149. package/dist/integrations/react-hooks/convenience/index.js.map +1 -1
  150. package/dist/integrations/react-hooks/internal/error.js.map +1 -1
  151. package/dist/integrations/react-hooks/internal/is-dev.js.map +1 -1
  152. package/dist/integrations/react-hooks/internal/runtime.js.map +1 -1
  153. package/dist/integrations/react-hooks/internal/scoped-run.js.map +1 -1
  154. package/dist/integrations/react-hooks/internal/stable.js.map +1 -1
  155. package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.js.map +1 -1
  156. package/dist/integrations/react-hooks/primitives/use-effect.js.map +1 -1
  157. package/dist/integrations/react-hooks/primitives/use-fork-effect.js.map +1 -1
  158. package/dist/integrations/react-hooks/primitives/use-stream.js.map +1 -1
  159. package/dist/integrations/react-hooks/primitives.js.map +1 -1
  160. package/dist/integrations/react-hooks/provider.js.map +1 -1
  161. package/dist/integrations/react-hooks/wagmi/index.js.map +1 -1
  162. package/dist/integrations/react-hooks/wallet-provider-ref.js.map +1 -1
  163. package/dist/integrations/wagmi/index.js.map +1 -1
  164. package/dist/integrations/wagmi/layers.js.map +1 -1
  165. package/dist/internal/index.js.map +1 -1
  166. package/dist/internal/numbers.js.map +1 -1
  167. package/dist/internal/schedule.js.map +1 -1
  168. package/dist/internal/stream-adapters.js.map +1 -1
  169. package/dist/internal/viem-effect.js.map +1 -1
  170. package/dist/nonce/index.js.map +1 -1
  171. package/dist/nonce/manager.js.map +1 -1
  172. package/dist/nonce/service.js.map +1 -1
  173. package/dist/nonce/service.test.integration.d.ts +2 -0
  174. package/dist/nonce/service.test.integration.d.ts.map +1 -0
  175. package/dist/nonce/service.test.integration.js +141 -0
  176. package/dist/nonce/service.test.integration.js.map +1 -0
  177. package/dist/platform/browser/cursor-store/index.js.map +1 -1
  178. package/dist/platform/browser/cursor-store/local-storage.js.map +1 -1
  179. package/dist/platform/browser/index.js.map +1 -1
  180. package/dist/platform/browser/layers.js.map +1 -1
  181. package/dist/platform/browser/storage/errors.js.map +1 -1
  182. package/dist/platform/browser/storage/index.js.map +1 -1
  183. package/dist/platform/browser/storage/local-storage.js.map +1 -1
  184. package/dist/platform/browser/tx-persistence/index.js.map +1 -1
  185. package/dist/platform/browser/tx-persistence/persistence.js.map +1 -1
  186. package/dist/platform/browser/tx-store/errors.js.map +1 -1
  187. package/dist/platform/browser/tx-store/index.js.map +1 -1
  188. package/dist/platform/browser/tx-store/local-storage.js.map +1 -1
  189. package/dist/platform/browser/tx-store/store.js.map +1 -1
  190. package/dist/platform/browser/tx-store/types.js.map +1 -1
  191. package/dist/presets/index.js.map +1 -1
  192. package/dist/presets/layers.js.map +1 -1
  193. package/dist/presets/transports.js.map +1 -1
  194. package/dist/query/chain-head.js.map +1 -1
  195. package/dist/query/client.js.map +1 -1
  196. package/dist/query/client.test.integration.d.ts +2 -0
  197. package/dist/query/client.test.integration.d.ts.map +1 -0
  198. package/dist/query/client.test.integration.js +94 -0
  199. package/dist/query/client.test.integration.js.map +1 -0
  200. package/dist/query/contract-query.js.map +1 -1
  201. package/dist/query/contract-query.test.integration.d.ts +2 -0
  202. package/dist/query/contract-query.test.integration.d.ts.map +1 -0
  203. package/dist/query/contract-query.test.integration.js +133 -0
  204. package/dist/query/contract-query.test.integration.js.map +1 -0
  205. package/dist/query/index.js.map +1 -1
  206. package/dist/query/multicall-batcher.js.map +1 -1
  207. package/dist/react-hooks/index.d.ts +0 -2
  208. package/dist/react-hooks/index.d.ts.map +1 -1
  209. package/dist/react-hooks/index.js +0 -2
  210. package/dist/react-hooks/index.js.map +1 -1
  211. package/dist/react-hooks/wagmi/index.js.map +1 -1
  212. package/dist/rpc/cache.js.map +1 -1
  213. package/dist/rpc/circuit-breaker.js.map +1 -1
  214. package/dist/rpc/dedup.js.map +1 -1
  215. package/dist/rpc/index.js.map +1 -1
  216. package/dist/rpc/retry.js.map +1 -1
  217. package/dist/rpc/routemesh.js.map +1 -1
  218. package/dist/signature/errors.js.map +1 -1
  219. package/dist/signature/index.js.map +1 -1
  220. package/dist/signature/service.js.map +1 -1
  221. package/dist/signature/service.test.integration.d.ts +2 -0
  222. package/dist/signature/service.test.integration.d.ts.map +1 -0
  223. package/dist/signature/service.test.integration.js +179 -0
  224. package/dist/signature/service.test.integration.js.map +1 -0
  225. package/dist/signature/utils.js.map +1 -1
  226. package/dist/simulation/errors.js.map +1 -1
  227. package/dist/simulation/index.js.map +1 -1
  228. package/dist/simulation/service.js.map +1 -1
  229. package/dist/simulation/tenderly.js.map +1 -1
  230. package/dist/simulation/tenderly.test.integration.d.ts +2 -0
  231. package/dist/simulation/tenderly.test.integration.d.ts.map +1 -0
  232. package/dist/simulation/tenderly.test.integration.js +104 -0
  233. package/dist/simulation/tenderly.test.integration.js.map +1 -0
  234. package/dist/simulation/types.js.map +1 -1
  235. package/dist/subscriptions/block-subscription.js.map +1 -1
  236. package/dist/subscriptions/errors.js.map +1 -1
  237. package/dist/subscriptions/index.js.map +1 -1
  238. package/dist/subscriptions/log-subscription.js.map +1 -1
  239. package/dist/subscriptions/pending-tx.d.ts +1 -1
  240. package/dist/subscriptions/pending-tx.d.ts.map +1 -1
  241. package/dist/subscriptions/pending-tx.js +1 -1
  242. package/dist/subscriptions/pending-tx.js.map +1 -1
  243. package/dist/subscriptions/service.d.ts +2 -2
  244. package/dist/subscriptions/service.d.ts.map +1 -1
  245. package/dist/subscriptions/service.js +4 -4
  246. package/dist/subscriptions/service.js.map +1 -1
  247. package/dist/telemetry/index.js.map +1 -1
  248. package/dist/telemetry/logger.js.map +1 -1
  249. package/dist/telemetry/tracer.d.ts +2 -2
  250. package/dist/telemetry/tracer.js +2 -2
  251. package/dist/telemetry/tracer.js.map +1 -1
  252. package/dist/testing-kit/_fixtures/addresses.js.map +1 -1
  253. package/dist/testing-kit/_fixtures/receipts.js.map +1 -1
  254. package/dist/testing-kit/helpers.js.map +1 -1
  255. package/dist/testing-kit/index.js.map +1 -1
  256. package/dist/testing-kit/mock-balance-service.js.map +1 -1
  257. package/dist/testing-kit/mock-block-service.js.map +1 -1
  258. package/dist/testing-kit/mock-cross-chain-reader.d.ts +3 -10
  259. package/dist/testing-kit/mock-cross-chain-reader.d.ts.map +1 -1
  260. package/dist/testing-kit/mock-cross-chain-reader.js.map +1 -1
  261. package/dist/testing-kit/mock-deploy-service.js.map +1 -1
  262. package/dist/testing-kit/mock-erc721-service.js.map +1 -1
  263. package/dist/testing-kit/mock-gas-service.js.map +1 -1
  264. package/dist/testing-kit/mock-nonce-service.js.map +1 -1
  265. package/dist/testing-kit/mock-public-client.js.map +1 -1
  266. package/dist/testing-kit/mock-signature-service.js.map +1 -1
  267. package/dist/testing-kit/mock-simulation-service.js.map +1 -1
  268. package/dist/testing-kit/mock-subscription-service.d.ts +2 -2
  269. package/dist/testing-kit/mock-subscription-service.d.ts.map +1 -1
  270. package/dist/testing-kit/mock-subscription-service.js +5 -5
  271. package/dist/testing-kit/mock-subscription-service.js.map +1 -1
  272. package/dist/testing-kit/mock-transfer-service.d.ts +3 -3
  273. package/dist/testing-kit/mock-transfer-service.d.ts.map +1 -1
  274. package/dist/testing-kit/mock-transfer-service.js.map +1 -1
  275. package/dist/testing-kit/mock-wallet-client.js.map +1 -1
  276. package/dist/testing-kit/mock-wallet-provider.js.map +1 -1
  277. package/dist/testing-kit/test-layer.js.map +1 -1
  278. package/dist/transfer/index.js.map +1 -1
  279. package/dist/transfer/service.d.ts +8 -11
  280. package/dist/transfer/service.d.ts.map +1 -1
  281. package/dist/transfer/service.js +32 -13
  282. package/dist/transfer/service.js.map +1 -1
  283. package/dist/tx/fees.d.ts.map +1 -1
  284. package/dist/tx/fees.js +3 -0
  285. package/dist/tx/fees.js.map +1 -1
  286. package/dist/tx/index.js.map +1 -1
  287. package/dist/tx/manager.d.ts +3 -2
  288. package/dist/tx/manager.d.ts.map +1 -1
  289. package/dist/tx/manager.js +232 -216
  290. package/dist/tx/manager.js.map +1 -1
  291. package/dist/tx/manager.test.integration.d.ts +2 -0
  292. package/dist/tx/manager.test.integration.d.ts.map +1 -0
  293. package/dist/tx/manager.test.integration.js +177 -0
  294. package/dist/tx/manager.test.integration.js.map +1 -0
  295. package/dist/tx/policy.d.ts +1 -1
  296. package/dist/tx/policy.d.ts.map +1 -1
  297. package/dist/tx/policy.js.map +1 -1
  298. package/dist/tx/replacement.d.ts +3 -3
  299. package/dist/tx/replacement.d.ts.map +1 -1
  300. package/dist/tx/replacement.js +3 -3
  301. package/dist/tx/replacement.js.map +1 -1
  302. package/dist/tx/tracker.d.ts +6 -6
  303. package/dist/tx/tracker.d.ts.map +1 -1
  304. package/dist/tx/tracker.js +9 -9
  305. package/dist/tx/tracker.js.map +1 -1
  306. package/dist/types/abi.js.map +1 -1
  307. package/dist/types/index.js.map +1 -1
  308. package/dist/types/params.d.ts +1 -1
  309. package/dist/types/params.d.ts.map +1 -1
  310. package/dist/types/params.js.map +1 -1
  311. package/dist/types/tx-overrides.d.ts +1 -1
  312. package/dist/types/tx-overrides.d.ts.map +1 -1
  313. package/dist/types/tx-overrides.js.map +1 -1
  314. package/dist/wagmi/index.js.map +1 -1
  315. package/dist/wagmi/layers.js.map +1 -1
  316. package/dist/wallet/errors.d.ts +3 -3
  317. package/dist/wallet/errors.d.ts.map +1 -1
  318. package/dist/wallet/errors.js +1 -1
  319. package/dist/wallet/errors.js.map +1 -1
  320. package/dist/wallet/index.js.map +1 -1
  321. package/dist/wallet/lifecycle.js.map +1 -1
  322. package/dist/wallet/operations.d.ts +2 -2
  323. package/dist/wallet/operations.d.ts.map +1 -1
  324. package/dist/wallet/operations.js +8 -15
  325. package/dist/wallet/operations.js.map +1 -1
  326. package/dist/wallet/provider-ref.js.map +1 -1
  327. package/dist/wallet/service.d.ts +2 -2
  328. package/dist/wallet/service.d.ts.map +1 -1
  329. package/dist/wallet/service.js.map +1 -1
  330. package/dist/wallet/types.js.map +1 -1
  331. package/package.json +25 -14
  332. package/dist/react-hooks/use-is-safe-multisig.d.ts +0 -2
  333. package/dist/react-hooks/use-is-safe-multisig.d.ts.map +0 -1
  334. package/dist/react-hooks/use-is-safe-multisig.js +0 -44
  335. package/dist/react-hooks/use-is-safe-multisig.js.map +0 -1
  336. package/dist/react-hooks/use-safe-context.d.ts +0 -2
  337. package/dist/react-hooks/use-safe-context.d.ts.map +0 -1
  338. package/dist/react-hooks/use-safe-context.js +0 -41
  339. package/dist/react-hooks/use-safe-context.js.map +0 -1
  340. package/dist/safe/adapter.d.ts +0 -9
  341. package/dist/safe/adapter.d.ts.map +0 -1
  342. package/dist/safe/adapter.js +0 -13
  343. package/dist/safe/adapter.js.map +0 -1
  344. package/dist/safe/detection.d.ts +0 -26
  345. package/dist/safe/detection.d.ts.map +0 -1
  346. package/dist/safe/detection.js +0 -102
  347. package/dist/safe/detection.js.map +0 -1
  348. package/dist/safe/errors.d.ts +0 -79
  349. package/dist/safe/errors.d.ts.map +0 -1
  350. package/dist/safe/errors.js +0 -34
  351. package/dist/safe/errors.js.map +0 -1
  352. package/dist/safe/index.d.ts +0 -8
  353. package/dist/safe/index.d.ts.map +0 -1
  354. package/dist/safe/index.js +0 -6
  355. package/dist/safe/index.js.map +0 -1
  356. package/dist/safe/live.d.ts +0 -8
  357. package/dist/safe/live.d.ts.map +0 -1
  358. package/dist/safe/live.js +0 -250
  359. package/dist/safe/live.js.map +0 -1
  360. package/dist/safe/service.d.ts +0 -26
  361. package/dist/safe/service.d.ts.map +0 -1
  362. package/dist/safe/service.js +0 -4
  363. package/dist/safe/service.js.map +0 -1
  364. package/dist/safe/simulation/abis.d.ts +0 -73
  365. package/dist/safe/simulation/abis.d.ts.map +0 -1
  366. package/dist/safe/simulation/abis.js +0 -61
  367. package/dist/safe/simulation/abis.js.map +0 -1
  368. package/dist/safe/simulation/addresses.d.ts +0 -4
  369. package/dist/safe/simulation/addresses.d.ts.map +0 -1
  370. package/dist/safe/simulation/addresses.js +0 -40
  371. package/dist/safe/simulation/addresses.js.map +0 -1
  372. package/dist/safe/simulation/encoding.d.ts +0 -16
  373. package/dist/safe/simulation/encoding.d.ts.map +0 -1
  374. package/dist/safe/simulation/encoding.js +0 -36
  375. package/dist/safe/simulation/encoding.js.map +0 -1
  376. package/dist/safe/simulation/errors.d.ts +0 -56
  377. package/dist/safe/simulation/errors.d.ts.map +0 -1
  378. package/dist/safe/simulation/errors.js +0 -37
  379. package/dist/safe/simulation/errors.js.map +0 -1
  380. package/dist/safe/simulation/index.d.ts +0 -7
  381. package/dist/safe/simulation/index.d.ts.map +0 -1
  382. package/dist/safe/simulation/index.js +0 -6
  383. package/dist/safe/simulation/index.js.map +0 -1
  384. package/dist/safe/simulation/service.d.ts +0 -14
  385. package/dist/safe/simulation/service.d.ts.map +0 -1
  386. package/dist/safe/simulation/service.js +0 -140
  387. package/dist/safe/simulation/service.js.map +0 -1
  388. package/dist/safe/simulation/types.d.ts +0 -20
  389. package/dist/safe/simulation/types.d.ts.map +0 -1
  390. package/dist/safe/simulation/types.js +0 -2
  391. package/dist/safe/simulation/types.js.map +0 -1
  392. package/dist/safe/types.d.ts +0 -61
  393. package/dist/safe/types.d.ts.map +0 -1
  394. package/dist/safe/types.js +0 -2
  395. package/dist/safe/types.js.map +0 -1
@@ -0,0 +1,177 @@
1
+ import { describe, expect, it } from "@effect/vitest";
2
+ import { Effect, Either, Exit, Layer } from "effect";
3
+ import { MIN_TX_GAS } from "../constants/index.js";
4
+ import { makeMockPublicClientLayer, TEST_CHAIN_ID, TEST_TX_HASH } from "../testing-kit/index.js";
5
+ import { makeTxManagerLive, TxManager, TxManagerLive, TxReplacement } from "../tx/index.js";
6
+ const txReplacementLayer = Layer.succeed(TxReplacement, TxReplacement.of({
7
+ cancel: () => Effect.succeed(TEST_TX_HASH),
8
+ speedup: () => Effect.succeed(TEST_TX_HASH),
9
+ }));
10
+ const TEST_RECEIPT = {
11
+ blockHash: "0xblock",
12
+ blockNumber: 123n,
13
+ contractAddress: null,
14
+ cumulativeGasUsed: MIN_TX_GAS,
15
+ effectiveGasPrice: 1n,
16
+ from: "0xfrom",
17
+ gasUsed: MIN_TX_GAS,
18
+ logs: [],
19
+ logsBloom: "0x",
20
+ status: "success",
21
+ to: "0xto",
22
+ transactionHash: TEST_TX_HASH,
23
+ transactionIndex: 0,
24
+ type: "0x2",
25
+ };
26
+ describe("TxManager", () => {
27
+ describe("waitForReceipt", () => {
28
+ it.effect("returns receipt on success", () => Effect.gen(function* () {
29
+ const manager = yield* TxManager;
30
+ const receipt = yield* manager.waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH);
31
+ expect(receipt.transactionHash).toBe(TEST_TX_HASH);
32
+ expect(receipt.status).toBe("success");
33
+ }).pipe(Effect.provide(Layer.provide(TxManagerLive, Layer.mergeAll(makeMockPublicClientLayer({
34
+ waitForTransactionReceipt: async () => TEST_RECEIPT,
35
+ }), txReplacementLayer)))));
36
+ it.effect("returns TxFailedError on failure", () => Effect.gen(function* () {
37
+ const manager = yield* TxManager;
38
+ const exit = yield* manager.waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH).pipe(Effect.exit);
39
+ expect(Exit.isFailure(exit)).toBe(true);
40
+ }).pipe(Effect.provide(Layer.provide(TxManagerLive, Layer.mergeAll(makeMockPublicClientLayer({
41
+ waitForTransactionReceipt: () => Promise.reject(new Error("Transaction reverted")),
42
+ }), txReplacementLayer)))));
43
+ it.effect("returns ReceiptTimeoutError when error message contains timeout", () => Effect.gen(function* () {
44
+ const manager = yield* TxManager;
45
+ const exit = yield* manager
46
+ .waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH, 5000)
47
+ .pipe(Effect.exit);
48
+ expect(Exit.isFailure(exit)).toBe(true);
49
+ }).pipe(Effect.provide(Layer.provide(TxManagerLive, Layer.mergeAll(makeMockPublicClientLayer({
50
+ waitForTransactionReceipt: () => Promise.reject(new Error("timeout waiting for transaction")),
51
+ }), txReplacementLayer)))));
52
+ it.effect("returns TxReplacedError when transaction is replaced", () => Effect.gen(function* () {
53
+ const manager = yield* TxManager;
54
+ const result = yield* manager
55
+ .waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH)
56
+ .pipe(Effect.either);
57
+ Either.match(result, {
58
+ onLeft: (error) => {
59
+ expect(error._tag).toBe("TxReplacedError");
60
+ if (error._tag === "TxReplacedError") {
61
+ expect(error.oldHash).toBe(TEST_TX_HASH);
62
+ expect(error.newHash).toBe("0x9999999999999999999999999999999999999999999999999999999999999999");
63
+ expect(error.reason).toBe("replaced");
64
+ }
65
+ },
66
+ onRight: () => {
67
+ throw new Error("Expected failure (Left), got success (Right)");
68
+ },
69
+ });
70
+ }).pipe(Effect.provide(Layer.provide(TxManagerLive, Layer.mergeAll(makeMockPublicClientLayer({
71
+ waitForTransactionReceipt: (params) => {
72
+ const { onReplaced } = params;
73
+ onReplaced?.({
74
+ reason: "replaced",
75
+ transaction: {
76
+ hash: "0x9999999999999999999999999999999999999999999999999999999999999999",
77
+ },
78
+ });
79
+ return Promise.resolve({
80
+ ...TEST_RECEIPT,
81
+ transactionHash: "0x9999999999999999999999999999999999999999999999999999999999999999",
82
+ });
83
+ },
84
+ }), txReplacementLayer)))));
85
+ it.effect("returns receipt when onReplaced fires with same hash (no actual replacement)", () => Effect.gen(function* () {
86
+ const manager = yield* TxManager;
87
+ const result = yield* manager
88
+ .waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH)
89
+ .pipe(Effect.either);
90
+ Either.match(result, {
91
+ onLeft: (error) => {
92
+ throw new Error(`Expected success (Right), got error (Left): ${error._tag}`);
93
+ },
94
+ onRight: (receipt) => {
95
+ expect(receipt.transactionHash).toBe(TEST_TX_HASH);
96
+ expect(receipt.status).toBe("success");
97
+ },
98
+ });
99
+ }).pipe(Effect.provide(Layer.provide(TxManagerLive, Layer.mergeAll(makeMockPublicClientLayer({
100
+ waitForTransactionReceipt: (params) => {
101
+ const { onReplaced, hash } = params;
102
+ onReplaced?.({
103
+ reason: "repriced",
104
+ transaction: { hash },
105
+ });
106
+ return Promise.resolve({
107
+ ...TEST_RECEIPT,
108
+ transactionHash: hash,
109
+ });
110
+ },
111
+ }), txReplacementLayer)))));
112
+ });
113
+ describe("track", () => {
114
+ it.effect("returns SubscriptionRef with initial submitted state", () => Effect.gen(function* () {
115
+ const manager = yield* TxManager;
116
+ const ref = yield* manager.track(TEST_CHAIN_ID, TEST_TX_HASH);
117
+ const state = yield* ref.get;
118
+ expect(state.status).toBe("submitted");
119
+ if (state.status === "submitted") {
120
+ expect(state.hash).toBe(TEST_TX_HASH);
121
+ }
122
+ }).pipe(Effect.provide(Layer.provide(TxManagerLive, Layer.mergeAll(makeMockPublicClientLayer({
123
+ waitForTransactionReceipt: async () => new Promise(() => {
124
+ }),
125
+ }), txReplacementLayer))), Effect.scoped));
126
+ });
127
+ describe("makeTxManagerLive", () => {
128
+ it.effect("applies custom layer policy as base for waitForReceipt", () => Effect.gen(function* () {
129
+ const manager = yield* TxManager;
130
+ const exit = yield* manager.waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH).pipe(Effect.exit);
131
+ expect(Exit.isFailure(exit)).toBe(true);
132
+ }).pipe(Effect.provide(Layer.provide(makeTxManagerLive({ receiptTimeout: 100 }), Layer.mergeAll(makeMockPublicClientLayer({
133
+ waitForTransactionReceipt: () => new Promise((_resolve, reject) => {
134
+ setTimeout(() => reject(new Error("timeout waiting for transaction")), 200);
135
+ }),
136
+ }), txReplacementLayer)))));
137
+ it.effect("per-call policy overrides layer policy", () => Effect.gen(function* () {
138
+ const manager = yield* TxManager;
139
+ const receipt = yield* manager.waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH, {
140
+ receiptTimeout: 5000,
141
+ });
142
+ expect(receipt.transactionHash).toBe(TEST_TX_HASH);
143
+ }).pipe(Effect.provide(Layer.provide(makeTxManagerLive({ receiptTimeout: 100 }), Layer.mergeAll(makeMockPublicClientLayer({
144
+ waitForTransactionReceipt: async () => TEST_RECEIPT,
145
+ }), txReplacementLayer)))));
146
+ });
147
+ describe("getConfirmations", () => {
148
+ it.effect("returns confirmations when called with hash param", () => Effect.gen(function* () {
149
+ const manager = yield* TxManager;
150
+ const confirmations = yield* manager.getConfirmations(TEST_CHAIN_ID, {
151
+ hash: TEST_TX_HASH,
152
+ });
153
+ expect(confirmations).toBe(5n);
154
+ }).pipe(Effect.provide(Layer.provide(TxManagerLive, Layer.mergeAll(makeMockPublicClientLayer({
155
+ getTransactionConfirmations: async () => 5n,
156
+ }), txReplacementLayer)))));
157
+ it.effect("returns confirmations when called with transactionReceipt param", () => Effect.gen(function* () {
158
+ const manager = yield* TxManager;
159
+ const confirmations = yield* manager.getConfirmations(TEST_CHAIN_ID, {
160
+ transactionReceipt: TEST_RECEIPT,
161
+ });
162
+ expect(confirmations).toBe(10n);
163
+ }).pipe(Effect.provide(Layer.provide(TxManagerLive, Layer.mergeAll(makeMockPublicClientLayer({
164
+ getTransactionConfirmations: async () => 10n,
165
+ }), txReplacementLayer)))));
166
+ it.effect("returns TransportError on failure", () => Effect.gen(function* () {
167
+ const manager = yield* TxManager;
168
+ const exit = yield* manager
169
+ .getConfirmations(TEST_CHAIN_ID, { hash: TEST_TX_HASH })
170
+ .pipe(Effect.exit);
171
+ expect(Exit.isFailure(exit)).toBe(true);
172
+ }).pipe(Effect.provide(Layer.provide(TxManagerLive, Layer.mergeAll(makeMockPublicClientLayer({
173
+ getTransactionConfirmations: () => Promise.reject(new Error("RPC error")),
174
+ }), txReplacementLayer)))));
175
+ });
176
+ });
177
+ //# sourceMappingURL=manager.test.integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.test.integration.js","sourceRoot":"","sources":["../../src/tx/manager.test.integration.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from \"@effect/vitest\";\nimport { Effect, Either, Exit, Layer } from \"effect\";\nimport type { TransactionReceipt } from \"viem\";\nimport { MIN_TX_GAS } from \"@/src/constants/index.js\";\nimport { makeMockPublicClientLayer, TEST_CHAIN_ID, TEST_TX_HASH } from \"@/src/testing-kit/index.js\";\nimport { makeTxManagerLive, TxManager, TxManagerLive, TxReplacement } from \"@/src/tx/index.js\";\n\nconst txReplacementLayer = Layer.succeed(\n TxReplacement,\n TxReplacement.of({\n cancel: () => Effect.succeed(TEST_TX_HASH),\n speedup: () => Effect.succeed(TEST_TX_HASH),\n })\n);\n\nconst TEST_RECEIPT: TransactionReceipt = {\n blockHash: \"0xblock\",\n blockNumber: 123n,\n contractAddress: null,\n cumulativeGasUsed: MIN_TX_GAS,\n effectiveGasPrice: 1n,\n from: \"0xfrom\",\n gasUsed: MIN_TX_GAS,\n logs: [],\n logsBloom: \"0x\",\n status: \"success\",\n to: \"0xto\",\n transactionHash: TEST_TX_HASH,\n transactionIndex: 0,\n type: \"0x2\",\n};\n\ndescribe(\"TxManager\", () => {\n describe(\"waitForReceipt\", () => {\n it.effect(\"returns receipt on success\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n const receipt = yield* manager.waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH);\n\n expect(receipt.transactionHash).toBe(TEST_TX_HASH);\n expect(receipt.status).toBe(\"success\");\n }).pipe(\n Effect.provide(\n Layer.provide(\n TxManagerLive,\n Layer.mergeAll(\n makeMockPublicClientLayer({\n waitForTransactionReceipt: async () => TEST_RECEIPT,\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n\n it.effect(\"returns TxFailedError on failure\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n const exit = yield* manager.waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH).pipe(Effect.exit);\n\n expect(Exit.isFailure(exit)).toBe(true);\n }).pipe(\n Effect.provide(\n Layer.provide(\n TxManagerLive,\n Layer.mergeAll(\n makeMockPublicClientLayer({\n waitForTransactionReceipt: () => Promise.reject(new Error(\"Transaction reverted\")),\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n\n it.effect(\"returns ReceiptTimeoutError when error message contains timeout\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n const exit = yield* manager\n .waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH, 5000)\n .pipe(Effect.exit);\n\n expect(Exit.isFailure(exit)).toBe(true);\n }).pipe(\n Effect.provide(\n Layer.provide(\n TxManagerLive,\n Layer.mergeAll(\n makeMockPublicClientLayer({\n waitForTransactionReceipt: () =>\n Promise.reject(new Error(\"timeout waiting for transaction\")),\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n\n it.effect(\"returns TxReplacedError when transaction is replaced\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n const result = yield* manager\n .waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH)\n .pipe(Effect.either);\n\n Either.match(result, {\n onLeft: (error) => {\n expect(error._tag).toBe(\"TxReplacedError\");\n if (error._tag === \"TxReplacedError\") {\n expect(error.oldHash).toBe(TEST_TX_HASH);\n expect(error.newHash).toBe(\n \"0x9999999999999999999999999999999999999999999999999999999999999999\"\n );\n expect(error.reason).toBe(\"replaced\");\n }\n },\n onRight: () => {\n throw new Error(\"Expected failure (Left), got success (Right)\");\n },\n });\n }).pipe(\n Effect.provide(\n Layer.provide(\n TxManagerLive,\n Layer.mergeAll(\n makeMockPublicClientLayer({\n waitForTransactionReceipt: (params: unknown) => {\n type ReplacementInfo = {\n reason: \"cancelled\" | \"replaced\" | \"repriced\";\n transaction: { hash: string };\n };\n type WaitForTransactionReceiptParams = {\n hash: string;\n onReplaced?: (info: ReplacementInfo) => void;\n };\n\n const { onReplaced } = params as WaitForTransactionReceiptParams;\n\n onReplaced?.({\n reason: \"replaced\",\n transaction: {\n hash: \"0x9999999999999999999999999999999999999999999999999999999999999999\",\n },\n });\n\n return Promise.resolve({\n ...TEST_RECEIPT,\n transactionHash:\n \"0x9999999999999999999999999999999999999999999999999999999999999999\",\n } as TransactionReceipt);\n },\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n\n it.effect(\"returns receipt when onReplaced fires with same hash (no actual replacement)\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n const result = yield* manager\n .waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH)\n .pipe(Effect.either);\n\n Either.match(result, {\n onLeft: (error) => {\n throw new Error(`Expected success (Right), got error (Left): ${error._tag}`);\n },\n onRight: (receipt) => {\n expect(receipt.transactionHash).toBe(TEST_TX_HASH);\n expect(receipt.status).toBe(\"success\");\n },\n });\n }).pipe(\n Effect.provide(\n Layer.provide(\n TxManagerLive,\n Layer.mergeAll(\n makeMockPublicClientLayer({\n waitForTransactionReceipt: (params: unknown) => {\n type ReplacementInfo = {\n reason: \"cancelled\" | \"replaced\" | \"repriced\";\n transaction: { hash: string };\n };\n type WaitForTransactionReceiptParams = {\n hash: string;\n onReplaced?: (info: ReplacementInfo) => void;\n };\n\n const { onReplaced, hash } = params as WaitForTransactionReceiptParams;\n\n // Simulate viem calling onReplaced with same hash (edge case)\n onReplaced?.({\n reason: \"repriced\",\n transaction: { hash }, // Same hash as original!\n });\n\n return Promise.resolve({\n ...TEST_RECEIPT,\n transactionHash: hash, // Same hash\n } as TransactionReceipt);\n },\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n });\n\n describe(\"track\", () => {\n it.effect(\"returns SubscriptionRef with initial submitted state\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n const ref = yield* manager.track(TEST_CHAIN_ID, TEST_TX_HASH);\n const state = yield* ref.get;\n\n expect(state.status).toBe(\"submitted\");\n if (state.status === \"submitted\") {\n expect(state.hash).toBe(TEST_TX_HASH);\n }\n }).pipe(\n Effect.provide(\n Layer.provide(\n TxManagerLive,\n Layer.mergeAll(\n makeMockPublicClientLayer({\n waitForTransactionReceipt: async () =>\n new Promise<never>(() => {\n // Intentionally never resolves.\n }),\n }),\n txReplacementLayer\n )\n )\n ),\n Effect.scoped\n )\n );\n\n // Note: Testing background state updates in a scoped fork is complex\n // These tests verify that track() returns a proper SubscriptionRef\n // Integration tests should verify the full async behavior\n });\n\n describe(\"makeTxManagerLive\", () => {\n it.effect(\"applies custom layer policy as base for waitForReceipt\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n\n // The custom layer policy sets a short timeout (100ms).\n // The mock delays 200ms, so the receipt should timeout.\n const exit = yield* manager.waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH).pipe(Effect.exit);\n\n expect(Exit.isFailure(exit)).toBe(true);\n }).pipe(\n Effect.provide(\n Layer.provide(\n makeTxManagerLive({ receiptTimeout: 100 }),\n Layer.mergeAll(\n makeMockPublicClientLayer({\n waitForTransactionReceipt: () =>\n new Promise<never>((_resolve, reject) => {\n setTimeout(() => reject(new Error(\"timeout waiting for transaction\")), 200);\n }),\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n\n it.effect(\"per-call policy overrides layer policy\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n\n // Layer policy has 100ms timeout, but per-call overrides to 5000ms.\n // The mock resolves immediately, so it should succeed.\n const receipt = yield* manager.waitForReceipt(TEST_CHAIN_ID, TEST_TX_HASH, {\n receiptTimeout: 5000,\n });\n\n expect(receipt.transactionHash).toBe(TEST_TX_HASH);\n }).pipe(\n Effect.provide(\n Layer.provide(\n makeTxManagerLive({ receiptTimeout: 100 }),\n Layer.mergeAll(\n makeMockPublicClientLayer({\n waitForTransactionReceipt: async () => TEST_RECEIPT,\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n });\n\n describe(\"getConfirmations\", () => {\n it.effect(\"returns confirmations when called with hash param\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n const confirmations = yield* manager.getConfirmations(TEST_CHAIN_ID, {\n hash: TEST_TX_HASH,\n });\n\n expect(confirmations).toBe(5n);\n }).pipe(\n Effect.provide(\n Layer.provide(\n TxManagerLive,\n Layer.mergeAll(\n makeMockPublicClientLayer({\n getTransactionConfirmations: async () => 5n,\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n\n it.effect(\"returns confirmations when called with transactionReceipt param\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n\n const confirmations = yield* manager.getConfirmations(TEST_CHAIN_ID, {\n transactionReceipt: TEST_RECEIPT,\n });\n\n expect(confirmations).toBe(10n);\n }).pipe(\n Effect.provide(\n Layer.provide(\n TxManagerLive,\n Layer.mergeAll(\n makeMockPublicClientLayer({\n getTransactionConfirmations: async () => 10n,\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n\n it.effect(\"returns TransportError on failure\", () =>\n Effect.gen(function* () {\n const manager = yield* TxManager;\n const exit = yield* manager\n .getConfirmations(TEST_CHAIN_ID, { hash: TEST_TX_HASH })\n .pipe(Effect.exit);\n\n expect(Exit.isFailure(exit)).toBe(true);\n }).pipe(\n Effect.provide(\n Layer.provide(\n TxManagerLive,\n Layer.mergeAll(\n makeMockPublicClientLayer({\n getTransactionConfirmations: () => Promise.reject(new Error(\"RPC error\")),\n }),\n txReplacementLayer\n )\n )\n )\n )\n );\n });\n});\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { GasSpeed } from "../gas/index.js";
2
2
  export type TxPolicy = {
3
+ txType?: "legacy" | "eip1559";
3
4
  maxFeePerGas?: bigint;
4
5
  maxPriorityFeePerGas?: bigint;
5
6
  feeSpeed?: GasSpeed;
@@ -9,7 +10,6 @@ export type TxPolicy = {
9
10
  replacementStrategy?: "speedup" | "cancel" | "none";
10
11
  replacement?: {
11
12
  strategy?: "speedup" | "cancel" | "none";
12
- stuckBlocks?: number;
13
13
  stuckMs?: number;
14
14
  maxAttempts?: number;
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/tx/policy.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,mBAAmB,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEpD,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;QAEzC,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAM3B,CAAC"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/tx/policy.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG;IAErB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE9B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,mBAAmB,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEpD,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;QAEzC,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAM3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/tx/policy.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AA8BlC,MAAM,CAAC,MAAM,aAAa,GAAa;IACrC,QAAQ,EAAE,UAAU;IACpB,kBAAkB,EAAE,4BAA4B;IAChD,eAAe,EAAE,wBAAwB;IACzC,cAAc,EAAE,uBAAuB;IACvC,mBAAmB,EAAE,MAAM;CAC5B,CAAC"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/tx/policy.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AA8BlC,MAAM,CAAC,MAAM,aAAa,GAAa;IACrC,QAAQ,EAAE,UAAU;IACpB,kBAAkB,EAAE,4BAA4B;IAChD,eAAe,EAAE,wBAAwB;IACzC,cAAc,EAAE,uBAAuB;IACvC,mBAAmB,EAAE,MAAM;CAC5B,CAAC","sourcesContent":["/** Transaction execution policy */\nimport {\n DEFAULT_GAS_LIMIT_MULTIPLIER,\n DEFAULT_POLLING_INTERVAL,\n DEFAULT_RECEIPT_TIMEOUT,\n} from \"@/src/constants/index.js\";\nimport type { GasSpeed } from \"@/src/gas/index.js\";\n\nexport type TxPolicy = {\n /** Force transaction type. Overrides chain detection. */\n txType?: \"legacy\" | \"eip1559\";\n /** Max fee per gas in wei (optional cap) */\n maxFeePerGas?: bigint;\n /** Max priority fee per gas in wei */\n maxPriorityFeePerGas?: bigint;\n /** Fee estimation speed tier */\n feeSpeed?: GasSpeed;\n /** Gas limit multiplier applied to estimates */\n gasLimitMultiplier?: number;\n /** Timeout in milliseconds for receipt polling */\n receiptTimeout?: number;\n /** Polling interval in milliseconds */\n pollingInterval?: number;\n /** Replacement strategy when stuck */\n replacementStrategy?: \"speedup\" | \"cancel\" | \"none\";\n /** Replacement behavior (preferred) */\n replacement?: {\n strategy?: \"speedup\" | \"cancel\" | \"none\";\n /** Consider tx stuck after N milliseconds */\n stuckMs?: number;\n /** Maximum automatic replacement attempts */\n maxAttempts?: number;\n };\n};\n\nexport const defaultPolicy: TxPolicy = {\n feeSpeed: \"standard\",\n gasLimitMultiplier: DEFAULT_GAS_LIMIT_MULTIPLIER,\n pollingInterval: DEFAULT_POLLING_INTERVAL,\n receiptTimeout: DEFAULT_RECEIPT_TIMEOUT,\n replacementStrategy: \"none\",\n};\n"]}
@@ -1,13 +1,13 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
2
  import type { Hash } from "viem";
3
3
  import type { ClientNotFoundError, WalletNotConnectedError, WrongNetworkError } from "../core/index.js";
4
- import { PublicClientService, TransactionFailedError, WalletClientService } from "../core/index.js";
4
+ import { PublicClientService, TxFailedError, WalletClientService } from "../core/index.js";
5
5
  import type { GasPriceUnavailableError } from "../gas/index.js";
6
6
  import { GasService } from "../gas/index.js";
7
7
  import type { TxPolicy } from "../tx/index.js";
8
8
  export type TxReplacementShape = {
9
- readonly speedup: (chainId: number, hash: Hash, policy?: TxPolicy) => Effect.Effect<Hash, TransactionFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | GasPriceUnavailableError>;
10
- readonly cancel: (chainId: number, hash: Hash, policy?: TxPolicy) => Effect.Effect<Hash, TransactionFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | GasPriceUnavailableError>;
9
+ readonly speedup: (chainId: number, hash: Hash, policy?: TxPolicy) => Effect.Effect<Hash, TxFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | GasPriceUnavailableError>;
10
+ readonly cancel: (chainId: number, hash: Hash, policy?: TxPolicy) => Effect.Effect<Hash, TxFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | GasPriceUnavailableError>;
11
11
  };
12
12
  declare const TxReplacement_base: Context.TagClass<TxReplacement, "ew3/TxReplacement", TxReplacementShape>;
13
13
  export declare class TxReplacement extends TxReplacement_base {
@@ -1 +1 @@
1
- {"version":3,"file":"replacement.d.ts","sourceRoot":"","sources":["../../src/tx/replacement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,MAAM,CAAC;AAE5D,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,QAAQ,KACd,MAAM,CAAC,MAAM,CAChB,IAAI,EACF,sBAAsB,GACtB,uBAAuB,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,wBAAwB,CAC3B,CAAC;IAEF,QAAQ,CAAC,MAAM,EAAE,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,QAAQ,KACd,MAAM,CAAC,MAAM,CAChB,IAAI,EACF,sBAAsB,GACtB,uBAAuB,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,wBAAwB,CAC3B,CAAC;CACH,CAAC;;AAEF,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AA0HN,eAAO,MAAM,iBAAiB,2FA4D7B,CAAC"}
1
+ {"version":3,"file":"replacement.d.ts","sourceRoot":"","sources":["../../src/tx/replacement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,MAAM,CAAC;AAE5D,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,QAAQ,KACd,MAAM,CAAC,MAAM,CAChB,IAAI,EACF,aAAa,GACb,uBAAuB,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,wBAAwB,CAC3B,CAAC;IAEF,QAAQ,CAAC,MAAM,EAAE,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,QAAQ,KACd,MAAM,CAAC,MAAM,CAChB,IAAI,EACF,aAAa,GACb,uBAAuB,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,wBAAwB,CAC3B,CAAC;CACH,CAAC;;AAEF,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AA0HN,eAAO,MAAM,iBAAiB,2FA4D7B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
2
  import { MIN_TX_GAS } from "../constants/index.js";
3
- import { PublicClientService, TransactionFailedError, WalletClientService, } from "../core/index.js";
3
+ import { PublicClientService, TxFailedError, WalletClientService } from "../core/index.js";
4
4
  import { GasService } from "../gas/index.js";
5
5
  import { bumpByPercent } from "../internal/index.js";
6
6
  export class TxReplacement extends Context.Tag("ew3/TxReplacement")() {
@@ -32,7 +32,7 @@ const sendReplacement = (params) => Effect.gen(function* () {
32
32
  const walletClientService = yield* WalletClientService;
33
33
  const walletClient = yield* walletClientService.get(params.chainId);
34
34
  return yield* Effect.tryPromise({
35
- catch: (cause) => new TransactionFailedError({
35
+ catch: (cause) => new TxFailedError({
36
36
  cause,
37
37
  hash: params.hash,
38
38
  message: `Failed to ${params.action} transaction ${params.hash}`,
@@ -71,7 +71,7 @@ export const TxReplacementLive = Layer.effect(TxReplacement, Effect.gen(function
71
71
  const getTx = (chainId, hash) => Effect.gen(function* () {
72
72
  const client = yield* publicClientService.get(chainId);
73
73
  const tx = yield* Effect.tryPromise({
74
- catch: (cause) => new TransactionFailedError({
74
+ catch: (cause) => new TxFailedError({
75
75
  cause,
76
76
  hash,
77
77
  message: `Failed to get transaction ${hash}`,
@@ -1 +1 @@
1
- {"version":3,"file":"replacement.js","sourceRoot":"","sources":["../../src/tx/replacement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replacement.js","sourceRoot":"","sources":["../../src/tx/replacement.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport type { Hash, PublicClient, Transaction } from \"viem\";\nimport { MIN_TX_GAS } from \"@/src/constants/index.js\";\nimport type {\n ClientNotFoundError,\n WalletNotConnectedError,\n WrongNetworkError,\n} from \"@/src/core/index.js\";\nimport { PublicClientService, TxFailedError, WalletClientService } from \"@/src/core/index.js\";\nimport type { GasPriceUnavailableError } from \"@/src/gas/index.js\";\nimport { GasService } from \"@/src/gas/index.js\";\nimport { bumpByPercent } from \"@/src/internal/index.js\";\nimport type { TxPolicy } from \"@/src/tx/index.js\";\n\nexport type TxReplacementShape = {\n readonly speedup: (\n chainId: number,\n hash: Hash,\n policy?: TxPolicy\n ) => Effect.Effect<\n Hash,\n | TxFailedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n | GasPriceUnavailableError\n >;\n\n readonly cancel: (\n chainId: number,\n hash: Hash,\n policy?: TxPolicy\n ) => Effect.Effect<\n Hash,\n | TxFailedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n | GasPriceUnavailableError\n >;\n};\n\nexport class TxReplacement extends Context.Tag(\"ew3/TxReplacement\")<\n TxReplacement,\n TxReplacementShape\n>() {}\n\nconst cap = (value: bigint, max: bigint | undefined): bigint =>\n max !== undefined && value > max ? max : value;\n\ntype FeeBump =\n | { type: \"legacy\"; gasPrice: bigint }\n | {\n type: \"eip1559\";\n maxFeePerGas: bigint;\n maxPriorityFeePerGas?: bigint | undefined;\n };\n\nconst computeFeeBump = (params: {\n tx: Transaction;\n estimate: {\n gasPrice?: bigint | undefined;\n maxFeePerGas: bigint;\n maxPriorityFeePerGas: bigint;\n };\n policy?: TxPolicy | undefined;\n}): FeeBump => {\n const tx = params.tx;\n const estimate = params.estimate;\n const policy = params.policy;\n\n const looksEip1559 =\n tx.type === \"eip1559\" || tx.maxFeePerGas !== undefined || tx.maxPriorityFeePerGas !== undefined;\n\n if (!looksEip1559) {\n const oldGasPrice = tx.gasPrice ?? estimate.gasPrice ?? estimate.maxFeePerGas;\n const candidateGasPrice = bumpByPercent(oldGasPrice, 1250n);\n const estimatedGasPrice = estimate.gasPrice ?? estimate.maxFeePerGas;\n const gasPrice = cap(\n candidateGasPrice > estimatedGasPrice ? candidateGasPrice : estimatedGasPrice,\n policy?.maxFeePerGas\n );\n\n return { gasPrice, type: \"legacy\" };\n }\n\n const oldMaxFee = tx.maxFeePerGas ?? estimate.maxFeePerGas;\n const oldPriority = tx.maxPriorityFeePerGas ?? estimate.maxPriorityFeePerGas;\n\n const candidateMaxFee = bumpByPercent(oldMaxFee, 1250n);\n const candidatePriority = bumpByPercent(oldPriority, 1250n);\n\n const maxFeePerGas = cap(\n candidateMaxFee > estimate.maxFeePerGas ? candidateMaxFee : estimate.maxFeePerGas,\n policy?.maxFeePerGas\n );\n const maxPriorityFeePerGas = cap(\n candidatePriority > estimate.maxPriorityFeePerGas\n ? candidatePriority\n : estimate.maxPriorityFeePerGas,\n policy?.maxPriorityFeePerGas\n );\n\n return { maxFeePerGas, maxPriorityFeePerGas, type: \"eip1559\" };\n};\n\nconst sendReplacement = (params: {\n action: \"cancel\" | \"speedup\";\n chainId: number;\n hash: Hash;\n tx: Transaction;\n bump: FeeBump;\n}): Effect.Effect<\n Hash,\n TxFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError,\n WalletClientService\n> =>\n Effect.gen(function* () {\n const walletClientService = yield* WalletClientService;\n const walletClient = yield* walletClientService.get(params.chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) =>\n new TxFailedError({\n cause,\n hash: params.hash,\n message: `Failed to ${params.action} transaction ${params.hash}`,\n }),\n try: () => {\n const base = {\n account: params.tx.from,\n chain: null,\n data: params.action === \"cancel\" ? \"0x\" : (params.tx.input ?? \"0x\"),\n gas: params.action === \"cancel\" ? MIN_TX_GAS : (params.tx.gas ?? undefined),\n nonce: params.tx.nonce,\n to: params.action === \"cancel\" ? params.tx.from : (params.tx.to ?? undefined),\n value: params.action === \"cancel\" ? 0n : params.tx.value,\n };\n\n if (params.bump.type === \"legacy\") {\n return walletClient.sendTransaction({\n ...base,\n gasPrice: params.bump.gasPrice,\n type: \"legacy\",\n });\n }\n\n return walletClient.sendTransaction({\n ...base,\n maxFeePerGas: params.bump.maxFeePerGas,\n maxPriorityFeePerGas: params.bump.maxPriorityFeePerGas,\n type: \"eip1559\",\n });\n },\n });\n });\n\nconst computeBump = (\n tx: Transaction,\n estimate: {\n gasPrice?: bigint | undefined;\n maxFeePerGas: bigint;\n maxPriorityFeePerGas: bigint;\n },\n policy?: TxPolicy\n): FeeBump => computeFeeBump({ estimate, policy, tx });\n\nexport const TxReplacementLive = Layer.effect(\n TxReplacement,\n Effect.gen(function* () {\n const publicClientService = yield* PublicClientService;\n const walletClientService = yield* WalletClientService;\n const gasService = yield* GasService;\n\n const getTx = (chainId: number, hash: Hash) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(chainId);\n const tx = yield* Effect.tryPromise({\n catch: (cause) =>\n new TxFailedError({\n cause,\n hash,\n message: `Failed to get transaction ${hash}`,\n }),\n try: () => (client as PublicClient).getTransaction({ hash }),\n });\n return tx as Transaction;\n });\n\n return TxReplacement.of({\n cancel: (chainId, hash, policy) =>\n Effect.gen(function* () {\n const tx = yield* getTx(chainId, hash);\n const estimate = yield* gasService.estimateFees({\n chainId,\n speed: policy?.feeSpeed,\n });\n\n const bump = computeBump(tx, estimate, policy);\n return yield* sendReplacement({\n action: \"cancel\",\n bump,\n chainId,\n hash,\n tx,\n }).pipe(Effect.provideService(WalletClientService, walletClientService));\n }),\n\n speedup: (chainId, hash, policy) =>\n Effect.gen(function* () {\n const tx = yield* getTx(chainId, hash);\n const estimate = yield* gasService.estimateFees({\n chainId,\n speed: policy?.feeSpeed,\n });\n\n const bump = computeBump(tx, estimate, policy);\n return yield* sendReplacement({\n action: \"speedup\",\n bump,\n chainId,\n hash,\n tx,\n }).pipe(Effect.provideService(WalletClientService, walletClientService));\n }),\n });\n })\n);\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Effect, SubscriptionRef } from "effect";
2
2
  import type { AccessList, Hash, TransactionReceipt, TransactionType } from "viem";
3
- import type { ClientNotFoundError, TransactionReplacementReason, WalletNotConnectedError, WrongNetworkError } from "../core/index.js";
4
- import { PublicClientService, TransactionFailedError, WalletClientService } from "../core/index.js";
3
+ import type { ClientNotFoundError, TxReplacementReason, WalletNotConnectedError, WrongNetworkError } from "../core/index.js";
4
+ import { PublicClientService, TxFailedError, WalletClientService } from "../core/index.js";
5
5
  export type TxRequestMeta = {
6
6
  readonly accessList?: AccessList | undefined;
7
7
  readonly gas?: bigint | undefined;
@@ -52,12 +52,12 @@ export type TxState = ({
52
52
  status: "replaced";
53
53
  oldHash: Hash;
54
54
  newHash: Hash;
55
- reason: TransactionReplacementReason;
55
+ reason: TxReplacementReason;
56
56
  }) | ({
57
57
  readonly tx?: TxRequestMeta | undefined;
58
58
  } & {
59
59
  status: "failed";
60
- error: TransactionFailedError;
60
+ error: TxFailedError;
61
61
  });
62
62
  export declare const initialTxState: TxState;
63
63
  export declare const makeTxTracker: Effect.Effect<{
@@ -67,6 +67,6 @@ export declare const makeTxTracker: Effect.Effect<{
67
67
  set: (state: TxState) => Effect.Effect<void, never, never>;
68
68
  update: (f: (s: TxState) => TxState) => Effect.Effect<void, never, never>;
69
69
  }, never, never>;
70
- export declare const speedupTransaction: (chainId: number, hash: Hash, newMaxFeePerGas: bigint, newMaxPriorityFeePerGas?: bigint) => Effect.Effect<Hash, TransactionFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError, PublicClientService | WalletClientService>;
71
- export declare const cancelTransaction: (chainId: number, hash: Hash, newMaxFeePerGas: bigint, newMaxPriorityFeePerGas?: bigint) => Effect.Effect<Hash, TransactionFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError, PublicClientService | WalletClientService>;
70
+ export declare const speedupTx: (chainId: number, hash: Hash, newMaxFeePerGas: bigint, newMaxPriorityFeePerGas?: bigint) => Effect.Effect<Hash, TxFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError, PublicClientService | WalletClientService>;
71
+ export declare const cancelTx: (chainId: number, hash: Hash, newMaxFeePerGas: bigint, newMaxPriorityFeePerGas?: bigint) => Effect.Effect<Hash, TxFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError, PublicClientService | WalletClientService>;
72
72
  //# sourceMappingURL=tracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/tx/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/tx/tracker.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Effect, SubscriptionRef } from "effect";
2
2
  import { MIN_TX_GAS } from "../constants/index.js";
3
- import { PublicClientService, TransactionFailedError, WalletClientService, } from "../core/index.js";
3
+ import { PublicClientService, TxFailedError, WalletClientService } from "../core/index.js";
4
4
  export const initialTxState = { status: "idle" };
5
5
  export const makeTxTracker = Effect.gen(function* () {
6
6
  const ref = yield* SubscriptionRef.make(initialTxState);
@@ -12,13 +12,13 @@ export const makeTxTracker = Effect.gen(function* () {
12
12
  update: (f) => SubscriptionRef.update(ref, f),
13
13
  };
14
14
  });
15
- export const speedupTransaction = (chainId, hash, newMaxFeePerGas, newMaxPriorityFeePerGas) => Effect.gen(function* () {
15
+ export const speedupTx = (chainId, hash, newMaxFeePerGas, newMaxPriorityFeePerGas) => Effect.gen(function* () {
16
16
  const walletClientService = yield* WalletClientService;
17
17
  const walletClient = yield* walletClientService.get(chainId);
18
18
  const publicClientService = yield* PublicClientService;
19
19
  const publicClient = yield* publicClientService.get(chainId);
20
20
  const tx = yield* Effect.tryPromise({
21
- catch: (cause) => new TransactionFailedError({
21
+ catch: (cause) => new TxFailedError({
22
22
  cause,
23
23
  hash,
24
24
  message: `Failed to get transaction ${hash}`,
@@ -26,14 +26,14 @@ export const speedupTransaction = (chainId, hash, newMaxFeePerGas, newMaxPriorit
26
26
  try: () => publicClient.getTransaction({ hash }),
27
27
  });
28
28
  if (!tx) {
29
- yield* Effect.fail(new TransactionFailedError({
29
+ yield* Effect.fail(new TxFailedError({
30
30
  hash,
31
31
  message: `Transaction ${hash} not found`,
32
32
  }));
33
33
  }
34
34
  const transaction = tx;
35
35
  const newHash = yield* Effect.tryPromise({
36
- catch: (cause) => new TransactionFailedError({
36
+ catch: (cause) => new TxFailedError({
37
37
  cause,
38
38
  hash,
39
39
  message: `Failed to speed up transaction ${hash}`,
@@ -52,13 +52,13 @@ export const speedupTransaction = (chainId, hash, newMaxFeePerGas, newMaxPriorit
52
52
  });
53
53
  return newHash;
54
54
  });
55
- export const cancelTransaction = (chainId, hash, newMaxFeePerGas, newMaxPriorityFeePerGas) => Effect.gen(function* () {
55
+ export const cancelTx = (chainId, hash, newMaxFeePerGas, newMaxPriorityFeePerGas) => Effect.gen(function* () {
56
56
  const walletClientService = yield* WalletClientService;
57
57
  const walletClient = yield* walletClientService.get(chainId);
58
58
  const publicClientService = yield* PublicClientService;
59
59
  const publicClient = yield* publicClientService.get(chainId);
60
60
  const tx = yield* Effect.tryPromise({
61
- catch: (cause) => new TransactionFailedError({
61
+ catch: (cause) => new TxFailedError({
62
62
  cause,
63
63
  hash,
64
64
  message: `Failed to get transaction ${hash}`,
@@ -66,14 +66,14 @@ export const cancelTransaction = (chainId, hash, newMaxFeePerGas, newMaxPriority
66
66
  try: () => publicClient.getTransaction({ hash }),
67
67
  });
68
68
  if (!tx) {
69
- yield* Effect.fail(new TransactionFailedError({
69
+ yield* Effect.fail(new TxFailedError({
70
70
  hash,
71
71
  message: `Transaction ${hash} not found`,
72
72
  }));
73
73
  }
74
74
  const transaction = tx;
75
75
  const newHash = yield* Effect.tryPromise({
76
- catch: (cause) => new TransactionFailedError({
76
+ catch: (cause) => new TxFailedError({
77
77
  cause,
78
78
  hash,
79
79
  message: `Failed to cancel transaction ${hash}`,
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/tx/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/tx/tracker.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect, SubscriptionRef } from \"effect\";\nimport type {\n AccessList,\n Hash,\n PublicClient,\n Transaction,\n TransactionReceipt,\n TransactionType,\n WalletClient,\n} from \"viem\";\nimport { MIN_TX_GAS } from \"@/src/constants/index.js\";\nimport type {\n ClientNotFoundError,\n TxReplacementReason,\n WalletNotConnectedError,\n WrongNetworkError,\n} from \"@/src/core/index.js\";\nimport { PublicClientService, TxFailedError, WalletClientService } from \"@/src/core/index.js\";\n\nexport type TxRequestMeta = {\n readonly accessList?: AccessList | undefined;\n readonly gas?: bigint | undefined;\n readonly gasPrice?: bigint | undefined;\n readonly maxFeePerGas?: bigint | undefined;\n readonly maxPriorityFeePerGas?: bigint | undefined;\n readonly nonce?: number | bigint | undefined;\n readonly type?: TransactionType | undefined;\n};\n\nexport type TxState =\n | ({ readonly tx?: TxRequestMeta | undefined } & { status: \"idle\" })\n | ({ readonly tx?: TxRequestMeta | undefined } & { status: \"simulating\" })\n | ({ readonly tx?: TxRequestMeta | undefined } & {\n status: \"estimated\";\n gas: bigint;\n })\n | ({ readonly tx?: TxRequestMeta | undefined } & { status: \"signing\" })\n | ({ readonly tx?: TxRequestMeta | undefined } & {\n status: \"submitted\";\n hash: Hash;\n })\n | ({ readonly tx?: TxRequestMeta | undefined } & {\n status: \"pending\";\n hash: Hash;\n confirmations: number;\n })\n | ({ readonly tx?: TxRequestMeta | undefined } & {\n status: \"mined\";\n hash: Hash;\n receipt: TransactionReceipt;\n effectiveGasPrice?: bigint | undefined;\n })\n | ({ readonly tx?: TxRequestMeta | undefined } & {\n status: \"replaced\";\n oldHash: Hash;\n newHash: Hash;\n reason: TxReplacementReason;\n })\n | ({ readonly tx?: TxRequestMeta | undefined } & {\n status: \"failed\";\n error: TxFailedError;\n });\n\nexport const initialTxState: TxState = { status: \"idle\" };\n\n/** Create a TxState tracker with subscription capabilities */\nexport const makeTxTracker = Effect.gen(function* () {\n const ref = yield* SubscriptionRef.make<TxState>(initialTxState);\n\n return {\n changes: ref.changes,\n get: SubscriptionRef.get(ref),\n ref,\n set: (state: TxState) => SubscriptionRef.set(ref, state),\n update: (f: (s: TxState) => TxState) => SubscriptionRef.update(ref, f),\n };\n});\n\n/**\n * Speed up a pending transaction by submitting a replacement with higher gas fees\n * @param chainId - Chain ID for the wallet client\n * @param hash - Original transaction hash\n * @param newMaxFeePerGas - New max fee per gas (must be higher than original)\n * @param newMaxPriorityFeePerGas - New max priority fee per gas (optional)\n * @returns Effect that resolves to the new transaction hash\n */\nexport const speedupTx = (\n chainId: number,\n hash: Hash,\n newMaxFeePerGas: bigint,\n newMaxPriorityFeePerGas?: bigint\n): Effect.Effect<\n Hash,\n TxFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError,\n PublicClientService | WalletClientService\n> =>\n Effect.gen(function* () {\n const walletClientService = yield* WalletClientService;\n const walletClient = yield* walletClientService.get(chainId);\n const publicClientService = yield* PublicClientService;\n const publicClient = yield* publicClientService.get(chainId);\n\n // Get original transaction\n const tx = yield* Effect.tryPromise({\n catch: (cause) =>\n new TxFailedError({\n cause,\n hash,\n message: `Failed to get transaction ${hash}`,\n }),\n try: () => (publicClient as PublicClient).getTransaction({ hash }),\n });\n\n if (!tx) {\n yield* Effect.fail(\n new TxFailedError({\n hash,\n message: `Transaction ${hash} not found`,\n })\n );\n }\n\n const transaction = tx as Transaction;\n\n // Create replacement transaction with same nonce but higher fees\n const newHash = yield* Effect.tryPromise({\n catch: (cause) =>\n new TxFailedError({\n cause,\n hash,\n message: `Failed to speed up transaction ${hash}`,\n }),\n try: () =>\n (walletClient as WalletClient).sendTransaction({\n account: transaction.from,\n chain: null,\n data: transaction.input,\n gas: transaction.gas ?? undefined,\n maxFeePerGas: newMaxFeePerGas,\n maxPriorityFeePerGas:\n newMaxPriorityFeePerGas ?? transaction.maxPriorityFeePerGas ?? undefined,\n nonce: transaction.nonce,\n to: transaction.to ?? undefined,\n value: transaction.value,\n }),\n });\n\n return newHash;\n });\n\n/**\n * Cancel a pending transaction by submitting a zero-value replacement to self\n * @param chainId - Chain ID for the wallet client\n * @param hash - Original transaction hash\n * @param newMaxFeePerGas - New max fee per gas (must be higher than original)\n * @returns Effect that resolves to the cancellation transaction hash\n */\nexport const cancelTx = (\n chainId: number,\n hash: Hash,\n newMaxFeePerGas: bigint,\n newMaxPriorityFeePerGas?: bigint\n): Effect.Effect<\n Hash,\n TxFailedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError,\n PublicClientService | WalletClientService\n> =>\n Effect.gen(function* () {\n const walletClientService = yield* WalletClientService;\n const walletClient = yield* walletClientService.get(chainId);\n const publicClientService = yield* PublicClientService;\n const publicClient = yield* publicClientService.get(chainId);\n\n // Get original transaction\n const tx = yield* Effect.tryPromise({\n catch: (cause) =>\n new TxFailedError({\n cause,\n hash,\n message: `Failed to get transaction ${hash}`,\n }),\n try: () => (publicClient as PublicClient).getTransaction({ hash }),\n });\n\n if (!tx) {\n yield* Effect.fail(\n new TxFailedError({\n hash,\n message: `Transaction ${hash} not found`,\n })\n );\n }\n\n const transaction = tx as Transaction;\n\n // Create cancellation transaction: same nonce, zero value to self, higher fees\n const newHash = yield* Effect.tryPromise({\n catch: (cause) =>\n new TxFailedError({\n cause,\n hash,\n message: `Failed to cancel transaction ${hash}`,\n }),\n try: () =>\n (walletClient as WalletClient).sendTransaction({\n account: transaction.from,\n chain: null,\n data: \"0x\",\n gas: MIN_TX_GAS, // Standard transfer gas\n maxFeePerGas: newMaxFeePerGas,\n maxPriorityFeePerGas:\n newMaxPriorityFeePerGas ?? transaction.maxPriorityFeePerGas ?? undefined,\n nonce: transaction.nonce,\n to: transaction.from, // Send to self\n value: 0n, // Zero value\n }),\n });\n\n return newHash;\n });\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/types/abi.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/types/abi.ts"],"names":[],"mappings":"","sourcesContent":["import type { Abi, ContractFunctionName, ContractFunctionReturnType } from \"viem\";\n\nexport type {\n Abi,\n AbiEvent,\n AbiFunction,\n ContractEventArgs,\n ContractEventName,\n ContractFunctionArgs,\n ContractFunctionName,\n ContractFunctionReturnType,\n} from \"viem\";\n\n/**\n * Extract readable function names from ABI\n */\nexport type ReadFunctionName<TAbi extends Abi> = ContractFunctionName<TAbi, \"pure\" | \"view\">;\n\n/**\n * Extract writable function names from ABI\n */\nexport type WriteFunctionName<TAbi extends Abi> = ContractFunctionName<\n TAbi,\n \"nonpayable\" | \"payable\"\n>;\n\n/**\n * Extract the return type from a multicall call\n */\nexport type ExtractMulticallReturnType<TCall> = TCall extends {\n readonly abi: infer TAbi;\n readonly functionName: infer TFunctionName;\n}\n ? TAbi extends Abi\n ? TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">\n ? ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName>\n : unknown\n : unknown\n : unknown;\n\n/**\n * Map an array of multicall calls to their corresponding result types\n */\nexport type MulticallResultTypes<TCalls extends readonly unknown[]> = TCalls extends readonly [\n infer TFirst,\n ...infer TRest,\n]\n ? readonly [ExtractMulticallReturnType<TFirst>, ...MulticallResultTypes<TRest>]\n : readonly [];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC","sourcesContent":["export * from \"./abi.js\";\nexport * from \"./params.js\";\nexport * from \"./tx-overrides.js\";\n"]}
@@ -48,7 +48,7 @@ export type MulticallResult<TResult = unknown> = {
48
48
  readonly status: "failure";
49
49
  readonly error: Error;
50
50
  };
51
- export type TransactionResult = {
51
+ export type TxResult = {
52
52
  readonly hash: Hash;
53
53
  readonly receipt: TransactionReceipt;
54
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/types/params.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/types/params.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/types/params.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/types/params.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Abi,\n Address,\n BlockTag,\n ContractFunctionArgs,\n ContractFunctionName,\n GetValue,\n Hash,\n TransactionReceipt,\n} from \"viem\";\nimport type { TxOverrides } from \"@/src/types/index.js\";\n\ntype ValueField<TAbi extends Abi, TFunctionName extends string> = Readonly<\n GetValue<TAbi, TFunctionName, bigint>\n>;\n\ntype ArgsField<TArgs> = {\n readonly args?: TArgs | undefined;\n} & (readonly [] extends TArgs ? unknown : { readonly args: TArgs });\n\ntype BlockRef =\n | {\n readonly blockNumber?: bigint | undefined;\n readonly blockTag?: never;\n }\n | {\n readonly blockNumber?: never;\n readonly blockTag?: BlockTag | undefined;\n }\n | {\n readonly blockNumber?: never;\n readonly blockTag?: never;\n };\n\n/**\n * Parameters for reading from a contract\n */\nexport type ReadParams<\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">,\n> = {\n /** Optional call account (msg.sender) */\n readonly account?: Address | undefined;\n readonly chainId: number;\n readonly address: Address;\n readonly abi: TAbi;\n readonly functionName: TFunctionName;\n} & BlockRef &\n ArgsField<ContractFunctionArgs<TAbi, \"pure\" | \"view\", TFunctionName>>;\n\n/**\n * Parameters for writing to a contract\n */\nexport type WriteParams<\n TAbi extends Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n> = {\n readonly chainId: number;\n readonly address: Address;\n readonly abi: TAbi;\n readonly functionName: TFunctionName;\n readonly account: Address;\n /** Legacy escape hatch. Prefer `overrides.gas`. */\n readonly gas?: bigint | undefined;\n /** Safe transaction-level overrides (fees, nonce, access list, etc). */\n readonly overrides?: TxOverrides | undefined;\n} & ArgsField<ContractFunctionArgs<TAbi, \"nonpayable\" | \"payable\", TFunctionName>> &\n ValueField<TAbi, TFunctionName>;\n\n/**\n * Result from simulating a contract call\n */\nexport type SimulateResult<TResult = unknown> = {\n readonly result: TResult;\n readonly request: unknown;\n};\n\n/**\n * A single call in a multicall batch\n */\nexport type MulticallCall<\n TAbi extends Abi = Abi,\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\"> = ContractFunctionName<\n TAbi,\n \"pure\" | \"view\"\n >,\n> = {\n readonly address: Address;\n readonly abi: TAbi;\n readonly functionName: TFunctionName;\n} & ArgsField<ContractFunctionArgs<TAbi, \"pure\" | \"view\", TFunctionName>>;\n\n/**\n * Result from a multicall operation\n */\nexport type MulticallResult<TResult = unknown> =\n | { readonly status: \"success\"; readonly result: TResult }\n | { readonly status: \"failure\"; readonly error: Error };\n\n/**\n * Result from a transaction\n */\nexport type TxResult = {\n readonly hash: Hash;\n readonly receipt: TransactionReceipt;\n};\n"]}
@@ -14,7 +14,7 @@ export type TxOverrides = {
14
14
  readonly gasPrice?: bigint | undefined;
15
15
  readonly maxFeePerGas?: bigint | undefined;
16
16
  readonly maxPriorityFeePerGas?: bigint | undefined;
17
- readonly nonce?: number | bigint | undefined;
17
+ readonly nonce?: number | undefined;
18
18
  readonly type?: TransactionType | undefined;
19
19
  };
20
20
  //# sourceMappingURL=tx-overrides.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tx-overrides.d.ts","sourceRoot":"","sources":["../../src/types/tx-overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAQxD,MAAM,MAAM,YAAY,GACpB;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC;CACvC,GACD;IACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpD,CAAC;AAON,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC7C,CAAC"}
1
+ {"version":3,"file":"tx-overrides.d.ts","sourceRoot":"","sources":["../../src/types/tx-overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAQxD,MAAM,MAAM,YAAY,GACpB;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC;CACvC,GACD;IACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpD,CAAC;AAON,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tx-overrides.js","sourceRoot":"","sources":["../../src/types/tx-overrides.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"tx-overrides.js","sourceRoot":"","sources":["../../src/types/tx-overrides.ts"],"names":[],"mappings":"","sourcesContent":["import type { AccessList, TransactionType } from \"viem\";\n\n/**\n * Fee overrides for a transaction.\n *\n * - Legacy: `gasPrice`\n * - EIP-1559: `maxFeePerGas` (+ optional `maxPriorityFeePerGas`)\n */\nexport type FeeOverrides =\n | {\n readonly gasPrice: bigint;\n readonly maxFeePerGas?: never;\n readonly maxPriorityFeePerGas?: never;\n }\n | {\n readonly gasPrice?: never;\n readonly maxFeePerGas: bigint;\n readonly maxPriorityFeePerGas?: bigint | undefined;\n };\n\n/**\n * Safe transaction-level overrides that can be applied to contract writes/simulations.\n *\n * Intentionally excludes `to`/`data`/`from` (derived from the contract call + account).\n */\nexport type TxOverrides = {\n readonly accessList?: AccessList | undefined;\n readonly gas?: bigint | undefined;\n readonly gasPrice?: bigint | undefined;\n readonly maxFeePerGas?: bigint | undefined;\n readonly maxPriorityFeePerGas?: bigint | undefined;\n readonly nonce?: number | undefined;\n readonly type?: TransactionType | undefined;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wagmi/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wagmi/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./layers.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/wagmi/layers.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/wagmi/layers.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC","sourcesContent":["export * from \"@/src/integrations/wagmi/index.js\";\n"]}