@prb/effect-evm 1.0.0-beta.0

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 (804) hide show
  1. package/CONTRIBUTING.md +42 -0
  2. package/DOCS.md +798 -0
  3. package/README.md +74 -0
  4. package/dist/abi/erc165.d.ts +21 -0
  5. package/dist/abi/erc165.d.ts.map +1 -0
  6. package/dist/abi/erc165.js +36 -0
  7. package/dist/abi/erc165.js.map +1 -0
  8. package/dist/abi/erc20-no-output.d.ts +14 -0
  9. package/dist/abi/erc20-no-output.d.ts.map +1 -0
  10. package/dist/abi/erc20-no-output.js +13 -0
  11. package/dist/abi/erc20-no-output.js.map +1 -0
  12. package/dist/abi/erc20.d.ts +2 -0
  13. package/dist/abi/erc20.d.ts.map +1 -0
  14. package/dist/abi/erc20.js +2 -0
  15. package/dist/abi/erc20.js.map +1 -0
  16. package/dist/abi/erc721.d.ts +3 -0
  17. package/dist/abi/erc721.d.ts.map +1 -0
  18. package/dist/abi/erc721.js +3 -0
  19. package/dist/abi/erc721.js.map +1 -0
  20. package/dist/abi/index.d.ts +5 -0
  21. package/dist/abi/index.d.ts.map +1 -0
  22. package/dist/abi/index.js +5 -0
  23. package/dist/abi/index.js.map +1 -0
  24. package/dist/balance/index.d.ts +3 -0
  25. package/dist/balance/index.d.ts.map +1 -0
  26. package/dist/balance/index.js +3 -0
  27. package/dist/balance/index.js.map +1 -0
  28. package/dist/balance/service.d.ts +57 -0
  29. package/dist/balance/service.d.ts.map +1 -0
  30. package/dist/balance/service.js +244 -0
  31. package/dist/balance/service.js.map +1 -0
  32. package/dist/balance/utils.d.ts +3 -0
  33. package/dist/balance/utils.d.ts.map +1 -0
  34. package/dist/balance/utils.js +23 -0
  35. package/dist/balance/utils.js.map +1 -0
  36. package/dist/block/errors.d.ts +22 -0
  37. package/dist/block/errors.d.ts.map +1 -0
  38. package/dist/block/errors.js +15 -0
  39. package/dist/block/errors.js.map +1 -0
  40. package/dist/block/index.d.ts +3 -0
  41. package/dist/block/index.d.ts.map +1 -0
  42. package/dist/block/index.js +3 -0
  43. package/dist/block/index.js.map +1 -0
  44. package/dist/block/service.d.ts +48 -0
  45. package/dist/block/service.d.ts.map +1 -0
  46. package/dist/block/service.js +194 -0
  47. package/dist/block/service.js.map +1 -0
  48. package/dist/constants/index.d.ts +16 -0
  49. package/dist/constants/index.d.ts.map +1 -0
  50. package/dist/constants/index.js +17 -0
  51. package/dist/constants/index.js.map +1 -0
  52. package/dist/contract/cross-chain-reader.d.ts +33 -0
  53. package/dist/contract/cross-chain-reader.d.ts.map +1 -0
  54. package/dist/contract/cross-chain-reader.js +86 -0
  55. package/dist/contract/cross-chain-reader.js.map +1 -0
  56. package/dist/contract/index.d.ts +6 -0
  57. package/dist/contract/index.d.ts.map +1 -0
  58. package/dist/contract/index.js +6 -0
  59. package/dist/contract/index.js.map +1 -0
  60. package/dist/contract/pipeline/index.d.ts +4 -0
  61. package/dist/contract/pipeline/index.d.ts.map +1 -0
  62. package/dist/contract/pipeline/index.js +4 -0
  63. package/dist/contract/pipeline/index.js.map +1 -0
  64. package/dist/contract/pipeline/internal/core.d.ts +22 -0
  65. package/dist/contract/pipeline/internal/core.d.ts.map +1 -0
  66. package/dist/contract/pipeline/internal/core.js +64 -0
  67. package/dist/contract/pipeline/internal/core.js.map +1 -0
  68. package/dist/contract/pipeline/internal/helpers.d.ts +3 -0
  69. package/dist/contract/pipeline/internal/helpers.d.ts.map +1 -0
  70. package/dist/contract/pipeline/internal/helpers.js +9 -0
  71. package/dist/contract/pipeline/internal/helpers.js.map +1 -0
  72. package/dist/contract/pipeline/internal/nonce.d.ts +22 -0
  73. package/dist/contract/pipeline/internal/nonce.d.ts.map +1 -0
  74. package/dist/contract/pipeline/internal/nonce.js +44 -0
  75. package/dist/contract/pipeline/internal/nonce.js.map +1 -0
  76. package/dist/contract/pipeline/internal/prepare.d.ts +20 -0
  77. package/dist/contract/pipeline/internal/prepare.d.ts.map +1 -0
  78. package/dist/contract/pipeline/internal/prepare.js +41 -0
  79. package/dist/contract/pipeline/internal/prepare.js.map +1 -0
  80. package/dist/contract/pipeline/internal/receipt.d.ts +12 -0
  81. package/dist/contract/pipeline/internal/receipt.d.ts.map +1 -0
  82. package/dist/contract/pipeline/internal/receipt.js +24 -0
  83. package/dist/contract/pipeline/internal/receipt.js.map +1 -0
  84. package/dist/contract/pipeline/live.d.ts +10 -0
  85. package/dist/contract/pipeline/live.d.ts.map +1 -0
  86. package/dist/contract/pipeline/live.js +40 -0
  87. package/dist/contract/pipeline/live.js.map +1 -0
  88. package/dist/contract/pipeline/service.d.ts +24 -0
  89. package/dist/contract/pipeline/service.d.ts.map +1 -0
  90. package/dist/contract/pipeline/service.js +4 -0
  91. package/dist/contract/pipeline/service.js.map +1 -0
  92. package/dist/contract/pipeline/types.d.ts +47 -0
  93. package/dist/contract/pipeline/types.d.ts.map +1 -0
  94. package/dist/contract/pipeline/types.js +2 -0
  95. package/dist/contract/pipeline/types.js.map +1 -0
  96. package/dist/contract/pipeline/write-and-track.d.ts +28 -0
  97. package/dist/contract/pipeline/write-and-track.d.ts.map +1 -0
  98. package/dist/contract/pipeline/write-and-track.js +264 -0
  99. package/dist/contract/pipeline/write-and-track.js.map +1 -0
  100. package/dist/contract/pipeline/write-and-wait.d.ts +7 -0
  101. package/dist/contract/pipeline/write-and-wait.d.ts.map +1 -0
  102. package/dist/contract/pipeline/write-and-wait.js +7 -0
  103. package/dist/contract/pipeline/write-and-wait.js.map +1 -0
  104. package/dist/contract/pipeline.d.ts +2 -0
  105. package/dist/contract/pipeline.d.ts.map +1 -0
  106. package/dist/contract/pipeline.js +2 -0
  107. package/dist/contract/pipeline.js.map +1 -0
  108. package/dist/contract/reader.d.ts +20 -0
  109. package/dist/contract/reader.d.ts.map +1 -0
  110. package/dist/contract/reader.js +64 -0
  111. package/dist/contract/reader.js.map +1 -0
  112. package/dist/contract/typed-contract.d.ts +33 -0
  113. package/dist/contract/typed-contract.d.ts.map +1 -0
  114. package/dist/contract/typed-contract.js +53 -0
  115. package/dist/contract/typed-contract.js.map +1 -0
  116. package/dist/contract/writer.d.ts +16 -0
  117. package/dist/contract/writer.d.ts.map +1 -0
  118. package/dist/contract/writer.js +84 -0
  119. package/dist/contract/writer.js.map +1 -0
  120. package/dist/core/clients/index.d.ts +3 -0
  121. package/dist/core/clients/index.d.ts.map +1 -0
  122. package/dist/core/clients/index.js +3 -0
  123. package/dist/core/clients/index.js.map +1 -0
  124. package/dist/core/clients/public-client.d.ts +12 -0
  125. package/dist/core/clients/public-client.d.ts.map +1 -0
  126. package/dist/core/clients/public-client.js +4 -0
  127. package/dist/core/clients/public-client.js.map +1 -0
  128. package/dist/core/clients/wallet-client.d.ts +12 -0
  129. package/dist/core/clients/wallet-client.d.ts.map +1 -0
  130. package/dist/core/clients/wallet-client.js +4 -0
  131. package/dist/core/clients/wallet-client.js.map +1 -0
  132. package/dist/core/errors/client.d.ts +37 -0
  133. package/dist/core/errors/client.d.ts.map +1 -0
  134. package/dist/core/errors/client.js +24 -0
  135. package/dist/core/errors/client.js.map +1 -0
  136. package/dist/core/errors/contract.d.ts +58 -0
  137. package/dist/core/errors/contract.d.ts.map +1 -0
  138. package/dist/core/errors/contract.js +42 -0
  139. package/dist/core/errors/contract.js.map +1 -0
  140. package/dist/core/errors/erc20.d.ts +24 -0
  141. package/dist/core/errors/erc20.d.ts.map +1 -0
  142. package/dist/core/errors/erc20.js +17 -0
  143. package/dist/core/errors/erc20.js.map +1 -0
  144. package/dist/core/errors/event.d.ts +21 -0
  145. package/dist/core/errors/event.d.ts.map +1 -0
  146. package/dist/core/errors/event.js +14 -0
  147. package/dist/core/errors/event.js.map +1 -0
  148. package/dist/core/errors/index.d.ts +8 -0
  149. package/dist/core/errors/index.d.ts.map +1 -0
  150. package/dist/core/errors/index.js +8 -0
  151. package/dist/core/errors/index.js.map +1 -0
  152. package/dist/core/errors/predicates.d.ts +12 -0
  153. package/dist/core/errors/predicates.d.ts.map +1 -0
  154. package/dist/core/errors/predicates.js +3 -0
  155. package/dist/core/errors/predicates.js.map +1 -0
  156. package/dist/core/errors/transaction.d.ts +57 -0
  157. package/dist/core/errors/transaction.d.ts.map +1 -0
  158. package/dist/core/errors/transaction.js +36 -0
  159. package/dist/core/errors/transaction.js.map +1 -0
  160. package/dist/core/errors/viem-mapper.d.ts +45 -0
  161. package/dist/core/errors/viem-mapper.d.ts.map +1 -0
  162. package/dist/core/errors/viem-mapper.js +251 -0
  163. package/dist/core/errors/viem-mapper.js.map +1 -0
  164. package/dist/core/index.d.ts +3 -0
  165. package/dist/core/index.d.ts.map +1 -0
  166. package/dist/core/index.js +3 -0
  167. package/dist/core/index.js.map +1 -0
  168. package/dist/deploy/errors.d.ts +30 -0
  169. package/dist/deploy/errors.d.ts.map +1 -0
  170. package/dist/deploy/errors.js +20 -0
  171. package/dist/deploy/errors.js.map +1 -0
  172. package/dist/deploy/index.d.ts +3 -0
  173. package/dist/deploy/index.d.ts.map +1 -0
  174. package/dist/deploy/index.js +3 -0
  175. package/dist/deploy/index.js.map +1 -0
  176. package/dist/deploy/service.d.ts +62 -0
  177. package/dist/deploy/service.d.ts.map +1 -0
  178. package/dist/deploy/service.js +233 -0
  179. package/dist/deploy/service.js.map +1 -0
  180. package/dist/eip7702/erc7579.d.ts +36 -0
  181. package/dist/eip7702/erc7579.d.ts.map +1 -0
  182. package/dist/eip7702/erc7579.js +52 -0
  183. package/dist/eip7702/erc7579.js.map +1 -0
  184. package/dist/eip7702/errors.d.ts +30 -0
  185. package/dist/eip7702/errors.d.ts.map +1 -0
  186. package/dist/eip7702/errors.js +20 -0
  187. package/dist/eip7702/errors.js.map +1 -0
  188. package/dist/eip7702/index.d.ts +4 -0
  189. package/dist/eip7702/index.d.ts.map +1 -0
  190. package/dist/eip7702/index.js +4 -0
  191. package/dist/eip7702/index.js.map +1 -0
  192. package/dist/eip7702/service.d.ts +64 -0
  193. package/dist/eip7702/service.d.ts.map +1 -0
  194. package/dist/eip7702/service.js +166 -0
  195. package/dist/eip7702/service.js.map +1 -0
  196. package/dist/ens/ens.d.ts +26 -0
  197. package/dist/ens/ens.d.ts.map +1 -0
  198. package/dist/ens/ens.js +144 -0
  199. package/dist/ens/ens.js.map +1 -0
  200. package/dist/ens/errors.d.ts +53 -0
  201. package/dist/ens/errors.d.ts.map +1 -0
  202. package/dist/ens/errors.js +34 -0
  203. package/dist/ens/errors.js.map +1 -0
  204. package/dist/ens/index.d.ts +3 -0
  205. package/dist/ens/index.d.ts.map +1 -0
  206. package/dist/ens/index.js +3 -0
  207. package/dist/ens/index.js.map +1 -0
  208. package/dist/erc20/allowance/core.d.ts +9 -0
  209. package/dist/erc20/allowance/core.d.ts.map +1 -0
  210. package/dist/erc20/allowance/core.js +121 -0
  211. package/dist/erc20/allowance/core.js.map +1 -0
  212. package/dist/erc20/allowance/index.d.ts +4 -0
  213. package/dist/erc20/allowance/index.d.ts.map +1 -0
  214. package/dist/erc20/allowance/index.js +4 -0
  215. package/dist/erc20/allowance/index.js.map +1 -0
  216. package/dist/erc20/allowance/no-output.d.ts +9 -0
  217. package/dist/erc20/allowance/no-output.d.ts.map +1 -0
  218. package/dist/erc20/allowance/no-output.js +122 -0
  219. package/dist/erc20/allowance/no-output.js.map +1 -0
  220. package/dist/erc20/allowance/types.d.ts +42 -0
  221. package/dist/erc20/allowance/types.d.ts.map +1 -0
  222. package/dist/erc20/allowance/types.js +2 -0
  223. package/dist/erc20/allowance/types.js.map +1 -0
  224. package/dist/erc20/index.d.ts +2 -0
  225. package/dist/erc20/index.d.ts.map +1 -0
  226. package/dist/erc20/index.js +2 -0
  227. package/dist/erc20/index.js.map +1 -0
  228. package/dist/erc721/errors.d.ts +47 -0
  229. package/dist/erc721/errors.d.ts.map +1 -0
  230. package/dist/erc721/errors.js +34 -0
  231. package/dist/erc721/errors.js.map +1 -0
  232. package/dist/erc721/helpers.d.ts +24 -0
  233. package/dist/erc721/helpers.d.ts.map +1 -0
  234. package/dist/erc721/helpers.js +28 -0
  235. package/dist/erc721/helpers.js.map +1 -0
  236. package/dist/erc721/index.d.ts +4 -0
  237. package/dist/erc721/index.d.ts.map +1 -0
  238. package/dist/erc721/index.js +4 -0
  239. package/dist/erc721/index.js.map +1 -0
  240. package/dist/erc721/metadata.d.ts +28 -0
  241. package/dist/erc721/metadata.d.ts.map +1 -0
  242. package/dist/erc721/metadata.js +67 -0
  243. package/dist/erc721/metadata.js.map +1 -0
  244. package/dist/erc721/service.d.ts +93 -0
  245. package/dist/erc721/service.d.ts.map +1 -0
  246. package/dist/erc721/service.js +277 -0
  247. package/dist/erc721/service.js.map +1 -0
  248. package/dist/events/backfill.d.ts +25 -0
  249. package/dist/events/backfill.d.ts.map +1 -0
  250. package/dist/events/backfill.js +36 -0
  251. package/dist/events/backfill.js.map +1 -0
  252. package/dist/events/cursor.d.ts +40 -0
  253. package/dist/events/cursor.d.ts.map +1 -0
  254. package/dist/events/cursor.js +85 -0
  255. package/dist/events/cursor.js.map +1 -0
  256. package/dist/events/decoder.d.ts +18 -0
  257. package/dist/events/decoder.d.ts.map +1 -0
  258. package/dist/events/decoder.js +33 -0
  259. package/dist/events/decoder.js.map +1 -0
  260. package/dist/events/index.d.ts +6 -0
  261. package/dist/events/index.d.ts.map +1 -0
  262. package/dist/events/index.js +6 -0
  263. package/dist/events/index.js.map +1 -0
  264. package/dist/events/reliable-stream.d.ts +25 -0
  265. package/dist/events/reliable-stream.d.ts.map +1 -0
  266. package/dist/events/reliable-stream.js +121 -0
  267. package/dist/events/reliable-stream.js.map +1 -0
  268. package/dist/events/stream.d.ts +25 -0
  269. package/dist/events/stream.d.ts.map +1 -0
  270. package/dist/events/stream.js +39 -0
  271. package/dist/events/stream.js.map +1 -0
  272. package/dist/gas/errors.d.ts +12 -0
  273. package/dist/gas/errors.d.ts.map +1 -0
  274. package/dist/gas/errors.js +8 -0
  275. package/dist/gas/errors.js.map +1 -0
  276. package/dist/gas/estimator.d.ts +15 -0
  277. package/dist/gas/estimator.d.ts.map +1 -0
  278. package/dist/gas/estimator.js +113 -0
  279. package/dist/gas/estimator.js.map +1 -0
  280. package/dist/gas/index.d.ts +4 -0
  281. package/dist/gas/index.d.ts.map +1 -0
  282. package/dist/gas/index.js +4 -0
  283. package/dist/gas/index.js.map +1 -0
  284. package/dist/gas/service.d.ts +37 -0
  285. package/dist/gas/service.d.ts.map +1 -0
  286. package/dist/gas/service.js +95 -0
  287. package/dist/gas/service.js.map +1 -0
  288. package/dist/index.d.ts +26 -0
  289. package/dist/index.d.ts.map +1 -0
  290. package/dist/index.js +26 -0
  291. package/dist/index.js.map +1 -0
  292. package/dist/integrations/react-hooks/convenience/index.d.ts +28 -0
  293. package/dist/integrations/react-hooks/convenience/index.d.ts.map +1 -0
  294. package/dist/integrations/react-hooks/convenience/index.js +126 -0
  295. package/dist/integrations/react-hooks/convenience/index.js.map +1 -0
  296. package/dist/integrations/react-hooks/internal/error.d.ts +5 -0
  297. package/dist/integrations/react-hooks/internal/error.d.ts.map +1 -0
  298. package/dist/integrations/react-hooks/internal/error.js +8 -0
  299. package/dist/integrations/react-hooks/internal/error.js.map +1 -0
  300. package/dist/integrations/react-hooks/internal/is-dev.d.ts +2 -0
  301. package/dist/integrations/react-hooks/internal/is-dev.d.ts.map +1 -0
  302. package/dist/integrations/react-hooks/internal/is-dev.js +4 -0
  303. package/dist/integrations/react-hooks/internal/is-dev.js.map +1 -0
  304. package/dist/integrations/react-hooks/internal/runtime.d.ts +21 -0
  305. package/dist/integrations/react-hooks/internal/runtime.d.ts.map +1 -0
  306. package/dist/integrations/react-hooks/internal/runtime.js +37 -0
  307. package/dist/integrations/react-hooks/internal/runtime.js.map +1 -0
  308. package/dist/integrations/react-hooks/internal/scoped-run.d.ts +11 -0
  309. package/dist/integrations/react-hooks/internal/scoped-run.d.ts.map +1 -0
  310. package/dist/integrations/react-hooks/internal/scoped-run.js +20 -0
  311. package/dist/integrations/react-hooks/internal/scoped-run.js.map +1 -0
  312. package/dist/integrations/react-hooks/internal/stable.d.ts +2 -0
  313. package/dist/integrations/react-hooks/internal/stable.d.ts.map +1 -0
  314. package/dist/integrations/react-hooks/internal/stable.js +2 -0
  315. package/dist/integrations/react-hooks/internal/stable.js.map +1 -0
  316. package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.d.ts +11 -0
  317. package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.d.ts.map +1 -0
  318. package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.js +92 -0
  319. package/dist/integrations/react-hooks/primitives/use-effect-memo-factory.js.map +1 -0
  320. package/dist/integrations/react-hooks/primitives/use-effect.d.ts +23 -0
  321. package/dist/integrations/react-hooks/primitives/use-effect.d.ts.map +1 -0
  322. package/dist/integrations/react-hooks/primitives/use-effect.js +93 -0
  323. package/dist/integrations/react-hooks/primitives/use-effect.js.map +1 -0
  324. package/dist/integrations/react-hooks/primitives/use-fork-effect.d.ts +4 -0
  325. package/dist/integrations/react-hooks/primitives/use-fork-effect.d.ts.map +1 -0
  326. package/dist/integrations/react-hooks/primitives/use-fork-effect.js +20 -0
  327. package/dist/integrations/react-hooks/primitives/use-fork-effect.js.map +1 -0
  328. package/dist/integrations/react-hooks/primitives/use-stream.d.ts +26 -0
  329. package/dist/integrations/react-hooks/primitives/use-stream.d.ts.map +1 -0
  330. package/dist/integrations/react-hooks/primitives/use-stream.js +161 -0
  331. package/dist/integrations/react-hooks/primitives/use-stream.js.map +1 -0
  332. package/dist/integrations/react-hooks/primitives.d.ts +8 -0
  333. package/dist/integrations/react-hooks/primitives.d.ts.map +1 -0
  334. package/dist/integrations/react-hooks/primitives.js +6 -0
  335. package/dist/integrations/react-hooks/primitives.js.map +1 -0
  336. package/dist/integrations/react-hooks/provider.d.ts +19 -0
  337. package/dist/integrations/react-hooks/provider.d.ts.map +1 -0
  338. package/dist/integrations/react-hooks/provider.js +71 -0
  339. package/dist/integrations/react-hooks/provider.js.map +1 -0
  340. package/dist/integrations/react-hooks/wagmi/index.d.ts +13 -0
  341. package/dist/integrations/react-hooks/wagmi/index.d.ts.map +1 -0
  342. package/dist/integrations/react-hooks/wagmi/index.js +81 -0
  343. package/dist/integrations/react-hooks/wagmi/index.js.map +1 -0
  344. package/dist/integrations/react-hooks/wallet-provider-ref.d.ts +7 -0
  345. package/dist/integrations/react-hooks/wallet-provider-ref.d.ts.map +1 -0
  346. package/dist/integrations/react-hooks/wallet-provider-ref.js +27 -0
  347. package/dist/integrations/react-hooks/wallet-provider-ref.js.map +1 -0
  348. package/dist/integrations/wagmi/index.d.ts +2 -0
  349. package/dist/integrations/wagmi/index.d.ts.map +1 -0
  350. package/dist/integrations/wagmi/index.js +2 -0
  351. package/dist/integrations/wagmi/index.js.map +1 -0
  352. package/dist/integrations/wagmi/layers.d.ts +12 -0
  353. package/dist/integrations/wagmi/layers.d.ts.map +1 -0
  354. package/dist/integrations/wagmi/layers.js +72 -0
  355. package/dist/integrations/wagmi/layers.js.map +1 -0
  356. package/dist/internal/index.d.ts +5 -0
  357. package/dist/internal/index.d.ts.map +1 -0
  358. package/dist/internal/index.js +5 -0
  359. package/dist/internal/index.js.map +1 -0
  360. package/dist/internal/numbers.d.ts +28 -0
  361. package/dist/internal/numbers.d.ts.map +1 -0
  362. package/dist/internal/numbers.js +139 -0
  363. package/dist/internal/numbers.js.map +1 -0
  364. package/dist/internal/schedule.d.ts +9 -0
  365. package/dist/internal/schedule.d.ts.map +1 -0
  366. package/dist/internal/schedule.js +10 -0
  367. package/dist/internal/schedule.js.map +1 -0
  368. package/dist/internal/stream-adapters.d.ts +10 -0
  369. package/dist/internal/stream-adapters.d.ts.map +1 -0
  370. package/dist/internal/stream-adapters.js +9 -0
  371. package/dist/internal/stream-adapters.js.map +1 -0
  372. package/dist/internal/viem-effect.d.ts +8 -0
  373. package/dist/internal/viem-effect.d.ts.map +1 -0
  374. package/dist/internal/viem-effect.js +14 -0
  375. package/dist/internal/viem-effect.js.map +1 -0
  376. package/dist/nonce/index.d.ts +3 -0
  377. package/dist/nonce/index.d.ts.map +1 -0
  378. package/dist/nonce/index.js +3 -0
  379. package/dist/nonce/index.js.map +1 -0
  380. package/dist/nonce/manager.d.ts +13 -0
  381. package/dist/nonce/manager.d.ts.map +1 -0
  382. package/dist/nonce/manager.js +100 -0
  383. package/dist/nonce/manager.js.map +1 -0
  384. package/dist/nonce/service.d.ts +46 -0
  385. package/dist/nonce/service.d.ts.map +1 -0
  386. package/dist/nonce/service.js +139 -0
  387. package/dist/nonce/service.js.map +1 -0
  388. package/dist/platform/browser/cursor-store/index.d.ts +2 -0
  389. package/dist/platform/browser/cursor-store/index.d.ts.map +1 -0
  390. package/dist/platform/browser/cursor-store/index.js +2 -0
  391. package/dist/platform/browser/cursor-store/index.js.map +1 -0
  392. package/dist/platform/browser/cursor-store/local-storage.d.ts +5 -0
  393. package/dist/platform/browser/cursor-store/local-storage.d.ts.map +1 -0
  394. package/dist/platform/browser/cursor-store/local-storage.js +99 -0
  395. package/dist/platform/browser/cursor-store/local-storage.js.map +1 -0
  396. package/dist/platform/browser/index.d.ts +6 -0
  397. package/dist/platform/browser/index.d.ts.map +1 -0
  398. package/dist/platform/browser/index.js +6 -0
  399. package/dist/platform/browser/index.js.map +1 -0
  400. package/dist/platform/browser/layers.d.ts +13 -0
  401. package/dist/platform/browser/layers.d.ts.map +1 -0
  402. package/dist/platform/browser/layers.js +8 -0
  403. package/dist/platform/browser/layers.js.map +1 -0
  404. package/dist/platform/browser/storage/errors.d.ts +28 -0
  405. package/dist/platform/browser/storage/errors.d.ts.map +1 -0
  406. package/dist/platform/browser/storage/errors.js +17 -0
  407. package/dist/platform/browser/storage/errors.js.map +1 -0
  408. package/dist/platform/browser/storage/index.d.ts +3 -0
  409. package/dist/platform/browser/storage/index.d.ts.map +1 -0
  410. package/dist/platform/browser/storage/index.js +3 -0
  411. package/dist/platform/browser/storage/index.js.map +1 -0
  412. package/dist/platform/browser/storage/local-storage.d.ts +10 -0
  413. package/dist/platform/browser/storage/local-storage.d.ts.map +1 -0
  414. package/dist/platform/browser/storage/local-storage.js +89 -0
  415. package/dist/platform/browser/storage/local-storage.js.map +1 -0
  416. package/dist/platform/browser/tx-persistence/index.d.ts +2 -0
  417. package/dist/platform/browser/tx-persistence/index.d.ts.map +1 -0
  418. package/dist/platform/browser/tx-persistence/index.js +2 -0
  419. package/dist/platform/browser/tx-persistence/index.js.map +1 -0
  420. package/dist/platform/browser/tx-persistence/persistence.d.ts +22 -0
  421. package/dist/platform/browser/tx-persistence/persistence.d.ts.map +1 -0
  422. package/dist/platform/browser/tx-persistence/persistence.js +170 -0
  423. package/dist/platform/browser/tx-persistence/persistence.js.map +1 -0
  424. package/dist/platform/browser/tx-store/errors.d.ts +3 -0
  425. package/dist/platform/browser/tx-store/errors.d.ts.map +1 -0
  426. package/dist/platform/browser/tx-store/errors.js +2 -0
  427. package/dist/platform/browser/tx-store/errors.js.map +1 -0
  428. package/dist/platform/browser/tx-store/index.d.ts +5 -0
  429. package/dist/platform/browser/tx-store/index.d.ts.map +1 -0
  430. package/dist/platform/browser/tx-store/index.js +4 -0
  431. package/dist/platform/browser/tx-store/index.js.map +1 -0
  432. package/dist/platform/browser/tx-store/local-storage.d.ts +9 -0
  433. package/dist/platform/browser/tx-store/local-storage.d.ts.map +1 -0
  434. package/dist/platform/browser/tx-store/local-storage.js +163 -0
  435. package/dist/platform/browser/tx-store/local-storage.js.map +1 -0
  436. package/dist/platform/browser/tx-store/store.d.ts +16 -0
  437. package/dist/platform/browser/tx-store/store.d.ts.map +1 -0
  438. package/dist/platform/browser/tx-store/store.js +35 -0
  439. package/dist/platform/browser/tx-store/store.js.map +1 -0
  440. package/dist/platform/browser/tx-store/types.d.ts +34 -0
  441. package/dist/platform/browser/tx-store/types.d.ts.map +1 -0
  442. package/dist/platform/browser/tx-store/types.js +4 -0
  443. package/dist/platform/browser/tx-store/types.js.map +1 -0
  444. package/dist/presets/index.d.ts +3 -0
  445. package/dist/presets/index.d.ts.map +1 -0
  446. package/dist/presets/index.js +3 -0
  447. package/dist/presets/index.js.map +1 -0
  448. package/dist/presets/layers.d.ts +59 -0
  449. package/dist/presets/layers.d.ts.map +1 -0
  450. package/dist/presets/layers.js +317 -0
  451. package/dist/presets/layers.js.map +1 -0
  452. package/dist/presets/transports.d.ts +16 -0
  453. package/dist/presets/transports.d.ts.map +1 -0
  454. package/dist/presets/transports.js +19 -0
  455. package/dist/presets/transports.js.map +1 -0
  456. package/dist/query/chain-head.d.ts +14 -0
  457. package/dist/query/chain-head.d.ts.map +1 -0
  458. package/dist/query/chain-head.js +34 -0
  459. package/dist/query/chain-head.js.map +1 -0
  460. package/dist/query/client.d.ts +21 -0
  461. package/dist/query/client.d.ts.map +1 -0
  462. package/dist/query/client.js +64 -0
  463. package/dist/query/client.js.map +1 -0
  464. package/dist/query/contract-query.d.ts +25 -0
  465. package/dist/query/contract-query.d.ts.map +1 -0
  466. package/dist/query/contract-query.js +76 -0
  467. package/dist/query/contract-query.js.map +1 -0
  468. package/dist/query/index.d.ts +5 -0
  469. package/dist/query/index.d.ts.map +1 -0
  470. package/dist/query/index.js +5 -0
  471. package/dist/query/index.js.map +1 -0
  472. package/dist/query/multicall-batcher.d.ts +16 -0
  473. package/dist/query/multicall-batcher.d.ts.map +1 -0
  474. package/dist/query/multicall-batcher.js +62 -0
  475. package/dist/query/multicall-batcher.js.map +1 -0
  476. package/dist/react-hooks/index.d.ts +9 -0
  477. package/dist/react-hooks/index.d.ts.map +1 -0
  478. package/dist/react-hooks/index.js +7 -0
  479. package/dist/react-hooks/index.js.map +1 -0
  480. package/dist/react-hooks/use-is-safe-multisig.d.ts +2 -0
  481. package/dist/react-hooks/use-is-safe-multisig.d.ts.map +1 -0
  482. package/dist/react-hooks/use-is-safe-multisig.js +44 -0
  483. package/dist/react-hooks/use-is-safe-multisig.js.map +1 -0
  484. package/dist/react-hooks/use-safe-context.d.ts +2 -0
  485. package/dist/react-hooks/use-safe-context.d.ts.map +1 -0
  486. package/dist/react-hooks/use-safe-context.js +41 -0
  487. package/dist/react-hooks/use-safe-context.js.map +1 -0
  488. package/dist/react-hooks/wagmi/index.d.ts +2 -0
  489. package/dist/react-hooks/wagmi/index.d.ts.map +1 -0
  490. package/dist/react-hooks/wagmi/index.js +3 -0
  491. package/dist/react-hooks/wagmi/index.js.map +1 -0
  492. package/dist/rpc/cache.d.ts +25 -0
  493. package/dist/rpc/cache.d.ts.map +1 -0
  494. package/dist/rpc/cache.js +127 -0
  495. package/dist/rpc/cache.js.map +1 -0
  496. package/dist/rpc/circuit-breaker.d.ts +28 -0
  497. package/dist/rpc/circuit-breaker.d.ts.map +1 -0
  498. package/dist/rpc/circuit-breaker.js +108 -0
  499. package/dist/rpc/circuit-breaker.js.map +1 -0
  500. package/dist/rpc/dedup.d.ts +10 -0
  501. package/dist/rpc/dedup.d.ts.map +1 -0
  502. package/dist/rpc/dedup.js +39 -0
  503. package/dist/rpc/dedup.js.map +1 -0
  504. package/dist/rpc/index.d.ts +6 -0
  505. package/dist/rpc/index.d.ts.map +1 -0
  506. package/dist/rpc/index.js +6 -0
  507. package/dist/rpc/index.js.map +1 -0
  508. package/dist/rpc/retry.d.ts +15 -0
  509. package/dist/rpc/retry.d.ts.map +1 -0
  510. package/dist/rpc/retry.js +34 -0
  511. package/dist/rpc/retry.js.map +1 -0
  512. package/dist/rpc/routemesh.d.ts +29 -0
  513. package/dist/rpc/routemesh.d.ts.map +1 -0
  514. package/dist/rpc/routemesh.js +21 -0
  515. package/dist/rpc/routemesh.js.map +1 -0
  516. package/dist/safe/adapter.d.ts +9 -0
  517. package/dist/safe/adapter.d.ts.map +1 -0
  518. package/dist/safe/adapter.js +13 -0
  519. package/dist/safe/adapter.js.map +1 -0
  520. package/dist/safe/detection.d.ts +26 -0
  521. package/dist/safe/detection.d.ts.map +1 -0
  522. package/dist/safe/detection.js +102 -0
  523. package/dist/safe/detection.js.map +1 -0
  524. package/dist/safe/errors.d.ts +79 -0
  525. package/dist/safe/errors.d.ts.map +1 -0
  526. package/dist/safe/errors.js +34 -0
  527. package/dist/safe/errors.js.map +1 -0
  528. package/dist/safe/index.d.ts +8 -0
  529. package/dist/safe/index.d.ts.map +1 -0
  530. package/dist/safe/index.js +6 -0
  531. package/dist/safe/index.js.map +1 -0
  532. package/dist/safe/live.d.ts +8 -0
  533. package/dist/safe/live.d.ts.map +1 -0
  534. package/dist/safe/live.js +250 -0
  535. package/dist/safe/live.js.map +1 -0
  536. package/dist/safe/service.d.ts +26 -0
  537. package/dist/safe/service.d.ts.map +1 -0
  538. package/dist/safe/service.js +4 -0
  539. package/dist/safe/service.js.map +1 -0
  540. package/dist/safe/simulation/abis.d.ts +73 -0
  541. package/dist/safe/simulation/abis.d.ts.map +1 -0
  542. package/dist/safe/simulation/abis.js +61 -0
  543. package/dist/safe/simulation/abis.js.map +1 -0
  544. package/dist/safe/simulation/addresses.d.ts +4 -0
  545. package/dist/safe/simulation/addresses.d.ts.map +1 -0
  546. package/dist/safe/simulation/addresses.js +40 -0
  547. package/dist/safe/simulation/addresses.js.map +1 -0
  548. package/dist/safe/simulation/encoding.d.ts +16 -0
  549. package/dist/safe/simulation/encoding.d.ts.map +1 -0
  550. package/dist/safe/simulation/encoding.js +36 -0
  551. package/dist/safe/simulation/encoding.js.map +1 -0
  552. package/dist/safe/simulation/errors.d.ts +56 -0
  553. package/dist/safe/simulation/errors.d.ts.map +1 -0
  554. package/dist/safe/simulation/errors.js +37 -0
  555. package/dist/safe/simulation/errors.js.map +1 -0
  556. package/dist/safe/simulation/index.d.ts +7 -0
  557. package/dist/safe/simulation/index.d.ts.map +1 -0
  558. package/dist/safe/simulation/index.js +6 -0
  559. package/dist/safe/simulation/index.js.map +1 -0
  560. package/dist/safe/simulation/service.d.ts +14 -0
  561. package/dist/safe/simulation/service.d.ts.map +1 -0
  562. package/dist/safe/simulation/service.js +140 -0
  563. package/dist/safe/simulation/service.js.map +1 -0
  564. package/dist/safe/simulation/types.d.ts +20 -0
  565. package/dist/safe/simulation/types.d.ts.map +1 -0
  566. package/dist/safe/simulation/types.js +2 -0
  567. package/dist/safe/simulation/types.js.map +1 -0
  568. package/dist/safe/types.d.ts +61 -0
  569. package/dist/safe/types.d.ts.map +1 -0
  570. package/dist/safe/types.js +2 -0
  571. package/dist/safe/types.js.map +1 -0
  572. package/dist/signature/errors.d.ts +29 -0
  573. package/dist/signature/errors.d.ts.map +1 -0
  574. package/dist/signature/errors.js +19 -0
  575. package/dist/signature/errors.js.map +1 -0
  576. package/dist/signature/index.d.ts +4 -0
  577. package/dist/signature/index.d.ts.map +1 -0
  578. package/dist/signature/index.js +4 -0
  579. package/dist/signature/index.js.map +1 -0
  580. package/dist/signature/service.d.ts +34 -0
  581. package/dist/signature/service.d.ts.map +1 -0
  582. package/dist/signature/service.js +97 -0
  583. package/dist/signature/service.js.map +1 -0
  584. package/dist/signature/utils.d.ts +13 -0
  585. package/dist/signature/utils.d.ts.map +1 -0
  586. package/dist/signature/utils.js +17 -0
  587. package/dist/signature/utils.js.map +1 -0
  588. package/dist/simulation/errors.d.ts +36 -0
  589. package/dist/simulation/errors.d.ts.map +1 -0
  590. package/dist/simulation/errors.js +23 -0
  591. package/dist/simulation/errors.js.map +1 -0
  592. package/dist/simulation/index.d.ts +5 -0
  593. package/dist/simulation/index.d.ts.map +1 -0
  594. package/dist/simulation/index.js +5 -0
  595. package/dist/simulation/index.js.map +1 -0
  596. package/dist/simulation/service.d.ts +34 -0
  597. package/dist/simulation/service.d.ts.map +1 -0
  598. package/dist/simulation/service.js +149 -0
  599. package/dist/simulation/service.js.map +1 -0
  600. package/dist/simulation/tenderly.d.ts +26 -0
  601. package/dist/simulation/tenderly.d.ts.map +1 -0
  602. package/dist/simulation/tenderly.js +200 -0
  603. package/dist/simulation/tenderly.js.map +1 -0
  604. package/dist/simulation/types.d.ts +47 -0
  605. package/dist/simulation/types.d.ts.map +1 -0
  606. package/dist/simulation/types.js +2 -0
  607. package/dist/simulation/types.js.map +1 -0
  608. package/dist/subscriptions/block-subscription.d.ts +10 -0
  609. package/dist/subscriptions/block-subscription.d.ts.map +1 -0
  610. package/dist/subscriptions/block-subscription.js +31 -0
  611. package/dist/subscriptions/block-subscription.js.map +1 -0
  612. package/dist/subscriptions/errors.d.ts +21 -0
  613. package/dist/subscriptions/errors.d.ts.map +1 -0
  614. package/dist/subscriptions/errors.js +14 -0
  615. package/dist/subscriptions/errors.js.map +1 -0
  616. package/dist/subscriptions/index.d.ts +6 -0
  617. package/dist/subscriptions/index.d.ts.map +1 -0
  618. package/dist/subscriptions/index.js +6 -0
  619. package/dist/subscriptions/index.js.map +1 -0
  620. package/dist/subscriptions/log-subscription.d.ts +11 -0
  621. package/dist/subscriptions/log-subscription.d.ts.map +1 -0
  622. package/dist/subscriptions/log-subscription.js +35 -0
  623. package/dist/subscriptions/log-subscription.js.map +1 -0
  624. package/dist/subscriptions/pending-tx.d.ts +8 -0
  625. package/dist/subscriptions/pending-tx.d.ts.map +1 -0
  626. package/dist/subscriptions/pending-tx.js +39 -0
  627. package/dist/subscriptions/pending-tx.js.map +1 -0
  628. package/dist/subscriptions/service.d.ts +64 -0
  629. package/dist/subscriptions/service.d.ts.map +1 -0
  630. package/dist/subscriptions/service.js +56 -0
  631. package/dist/subscriptions/service.js.map +1 -0
  632. package/dist/telemetry/index.d.ts +3 -0
  633. package/dist/telemetry/index.d.ts.map +1 -0
  634. package/dist/telemetry/index.js +3 -0
  635. package/dist/telemetry/index.js.map +1 -0
  636. package/dist/telemetry/logger.d.ts +27 -0
  637. package/dist/telemetry/logger.d.ts.map +1 -0
  638. package/dist/telemetry/logger.js +7 -0
  639. package/dist/telemetry/logger.js.map +1 -0
  640. package/dist/telemetry/tracer.d.ts +94 -0
  641. package/dist/telemetry/tracer.d.ts.map +1 -0
  642. package/dist/telemetry/tracer.js +94 -0
  643. package/dist/telemetry/tracer.js.map +1 -0
  644. package/dist/testing-kit/_fixtures/addresses.d.ts +6 -0
  645. package/dist/testing-kit/_fixtures/addresses.d.ts.map +1 -0
  646. package/dist/testing-kit/_fixtures/addresses.js +7 -0
  647. package/dist/testing-kit/_fixtures/addresses.js.map +1 -0
  648. package/dist/testing-kit/_fixtures/receipts.d.ts +19 -0
  649. package/dist/testing-kit/_fixtures/receipts.d.ts.map +1 -0
  650. package/dist/testing-kit/_fixtures/receipts.js +22 -0
  651. package/dist/testing-kit/_fixtures/receipts.js.map +1 -0
  652. package/dist/testing-kit/helpers.d.ts +21 -0
  653. package/dist/testing-kit/helpers.d.ts.map +1 -0
  654. package/dist/testing-kit/helpers.js +56 -0
  655. package/dist/testing-kit/helpers.js.map +1 -0
  656. package/dist/testing-kit/index.d.ts +34 -0
  657. package/dist/testing-kit/index.d.ts.map +1 -0
  658. package/dist/testing-kit/index.js +19 -0
  659. package/dist/testing-kit/index.js.map +1 -0
  660. package/dist/testing-kit/mock-balance-service.d.ts +47 -0
  661. package/dist/testing-kit/mock-balance-service.d.ts.map +1 -0
  662. package/dist/testing-kit/mock-balance-service.js +28 -0
  663. package/dist/testing-kit/mock-balance-service.js.map +1 -0
  664. package/dist/testing-kit/mock-block-service.d.ts +44 -0
  665. package/dist/testing-kit/mock-block-service.d.ts.map +1 -0
  666. package/dist/testing-kit/mock-block-service.js +55 -0
  667. package/dist/testing-kit/mock-block-service.js.map +1 -0
  668. package/dist/testing-kit/mock-cross-chain-reader.d.ts +18 -0
  669. package/dist/testing-kit/mock-cross-chain-reader.d.ts.map +1 -0
  670. package/dist/testing-kit/mock-cross-chain-reader.js +65 -0
  671. package/dist/testing-kit/mock-cross-chain-reader.js.map +1 -0
  672. package/dist/testing-kit/mock-deploy-service.d.ts +47 -0
  673. package/dist/testing-kit/mock-deploy-service.d.ts.map +1 -0
  674. package/dist/testing-kit/mock-deploy-service.js +52 -0
  675. package/dist/testing-kit/mock-deploy-service.js.map +1 -0
  676. package/dist/testing-kit/mock-erc721-service.d.ts +87 -0
  677. package/dist/testing-kit/mock-erc721-service.d.ts.map +1 -0
  678. package/dist/testing-kit/mock-erc721-service.js +41 -0
  679. package/dist/testing-kit/mock-erc721-service.js.map +1 -0
  680. package/dist/testing-kit/mock-gas-service.d.ts +33 -0
  681. package/dist/testing-kit/mock-gas-service.d.ts.map +1 -0
  682. package/dist/testing-kit/mock-gas-service.js +58 -0
  683. package/dist/testing-kit/mock-gas-service.js.map +1 -0
  684. package/dist/testing-kit/mock-nonce-service.d.ts +43 -0
  685. package/dist/testing-kit/mock-nonce-service.d.ts.map +1 -0
  686. package/dist/testing-kit/mock-nonce-service.js +24 -0
  687. package/dist/testing-kit/mock-nonce-service.js.map +1 -0
  688. package/dist/testing-kit/mock-public-client.d.ts +56 -0
  689. package/dist/testing-kit/mock-public-client.d.ts.map +1 -0
  690. package/dist/testing-kit/mock-public-client.js +91 -0
  691. package/dist/testing-kit/mock-public-client.js.map +1 -0
  692. package/dist/testing-kit/mock-signature-service.d.ts +50 -0
  693. package/dist/testing-kit/mock-signature-service.d.ts.map +1 -0
  694. package/dist/testing-kit/mock-signature-service.js +30 -0
  695. package/dist/testing-kit/mock-signature-service.js.map +1 -0
  696. package/dist/testing-kit/mock-simulation-service.d.ts +29 -0
  697. package/dist/testing-kit/mock-simulation-service.d.ts.map +1 -0
  698. package/dist/testing-kit/mock-simulation-service.js +28 -0
  699. package/dist/testing-kit/mock-simulation-service.js.map +1 -0
  700. package/dist/testing-kit/mock-subscription-service.d.ts +52 -0
  701. package/dist/testing-kit/mock-subscription-service.d.ts.map +1 -0
  702. package/dist/testing-kit/mock-subscription-service.js +49 -0
  703. package/dist/testing-kit/mock-subscription-service.js.map +1 -0
  704. package/dist/testing-kit/mock-transfer-service.d.ts +28 -0
  705. package/dist/testing-kit/mock-transfer-service.d.ts.map +1 -0
  706. package/dist/testing-kit/mock-transfer-service.js +17 -0
  707. package/dist/testing-kit/mock-transfer-service.js.map +1 -0
  708. package/dist/testing-kit/mock-wallet-client.d.ts +17 -0
  709. package/dist/testing-kit/mock-wallet-client.d.ts.map +1 -0
  710. package/dist/testing-kit/mock-wallet-client.js +30 -0
  711. package/dist/testing-kit/mock-wallet-client.js.map +1 -0
  712. package/dist/testing-kit/mock-wallet-provider.d.ts +11 -0
  713. package/dist/testing-kit/mock-wallet-provider.d.ts.map +1 -0
  714. package/dist/testing-kit/mock-wallet-provider.js +6 -0
  715. package/dist/testing-kit/mock-wallet-provider.js.map +1 -0
  716. package/dist/testing-kit/test-layer.d.ts +42 -0
  717. package/dist/testing-kit/test-layer.d.ts.map +1 -0
  718. package/dist/testing-kit/test-layer.js +65 -0
  719. package/dist/testing-kit/test-layer.js.map +1 -0
  720. package/dist/transfer/index.d.ts +2 -0
  721. package/dist/transfer/index.d.ts.map +1 -0
  722. package/dist/transfer/index.js +2 -0
  723. package/dist/transfer/index.js.map +1 -0
  724. package/dist/transfer/service.d.ts +37 -0
  725. package/dist/transfer/service.d.ts.map +1 -0
  726. package/dist/transfer/service.js +146 -0
  727. package/dist/transfer/service.js.map +1 -0
  728. package/dist/tx/fees.d.ts +17 -0
  729. package/dist/tx/fees.d.ts.map +1 -0
  730. package/dist/tx/fees.js +49 -0
  731. package/dist/tx/fees.js.map +1 -0
  732. package/dist/tx/index.d.ts +6 -0
  733. package/dist/tx/index.d.ts.map +1 -0
  734. package/dist/tx/index.js +6 -0
  735. package/dist/tx/index.js.map +1 -0
  736. package/dist/tx/manager.d.ts +23 -0
  737. package/dist/tx/manager.d.ts.map +1 -0
  738. package/dist/tx/manager.js +240 -0
  739. package/dist/tx/manager.js.map +1 -0
  740. package/dist/tx/policy.d.ts +18 -0
  741. package/dist/tx/policy.d.ts.map +1 -0
  742. package/dist/tx/policy.js +9 -0
  743. package/dist/tx/policy.js.map +1 -0
  744. package/dist/tx/replacement.d.ts +17 -0
  745. package/dist/tx/replacement.d.ts.map +1 -0
  746. package/dist/tx/replacement.js +116 -0
  747. package/dist/tx/replacement.js.map +1 -0
  748. package/dist/tx/tracker.d.ts +72 -0
  749. package/dist/tx/tracker.d.ts.map +1 -0
  750. package/dist/tx/tracker.js +95 -0
  751. package/dist/tx/tracker.js.map +1 -0
  752. package/dist/types/abi.d.ts +13 -0
  753. package/dist/types/abi.d.ts.map +1 -0
  754. package/dist/types/abi.js +2 -0
  755. package/dist/types/abi.js.map +1 -0
  756. package/dist/types/index.d.ts +4 -0
  757. package/dist/types/index.d.ts.map +1 -0
  758. package/dist/types/index.js +4 -0
  759. package/dist/types/index.js.map +1 -0
  760. package/dist/types/params.d.ts +56 -0
  761. package/dist/types/params.d.ts.map +1 -0
  762. package/dist/types/params.js +2 -0
  763. package/dist/types/params.js.map +1 -0
  764. package/dist/types/tx-overrides.d.ts +20 -0
  765. package/dist/types/tx-overrides.d.ts.map +1 -0
  766. package/dist/types/tx-overrides.js +2 -0
  767. package/dist/types/tx-overrides.js.map +1 -0
  768. package/dist/wagmi/index.d.ts +2 -0
  769. package/dist/wagmi/index.d.ts.map +1 -0
  770. package/dist/wagmi/index.js +2 -0
  771. package/dist/wagmi/index.js.map +1 -0
  772. package/dist/wagmi/layers.d.ts +2 -0
  773. package/dist/wagmi/layers.d.ts.map +1 -0
  774. package/dist/wagmi/layers.js +2 -0
  775. package/dist/wagmi/layers.js.map +1 -0
  776. package/dist/wallet/errors.d.ts +68 -0
  777. package/dist/wallet/errors.d.ts.map +1 -0
  778. package/dist/wallet/errors.js +43 -0
  779. package/dist/wallet/errors.js.map +1 -0
  780. package/dist/wallet/index.d.ts +7 -0
  781. package/dist/wallet/index.d.ts.map +1 -0
  782. package/dist/wallet/index.js +7 -0
  783. package/dist/wallet/index.js.map +1 -0
  784. package/dist/wallet/lifecycle.d.ts +22 -0
  785. package/dist/wallet/lifecycle.d.ts.map +1 -0
  786. package/dist/wallet/lifecycle.js +242 -0
  787. package/dist/wallet/lifecycle.js.map +1 -0
  788. package/dist/wallet/operations.d.ts +8 -0
  789. package/dist/wallet/operations.d.ts.map +1 -0
  790. package/dist/wallet/operations.js +211 -0
  791. package/dist/wallet/operations.js.map +1 -0
  792. package/dist/wallet/provider-ref.d.ts +14 -0
  793. package/dist/wallet/provider-ref.d.ts.map +1 -0
  794. package/dist/wallet/provider-ref.js +13 -0
  795. package/dist/wallet/provider-ref.js.map +1 -0
  796. package/dist/wallet/service.d.ts +22 -0
  797. package/dist/wallet/service.d.ts.map +1 -0
  798. package/dist/wallet/service.js +156 -0
  799. package/dist/wallet/service.js.map +1 -0
  800. package/dist/wallet/types.d.ts +37 -0
  801. package/dist/wallet/types.d.ts.map +1 -0
  802. package/dist/wallet/types.js +2 -0
  803. package/dist/wallet/types.js.map +1 -0
  804. package/package.json +87 -0
@@ -0,0 +1,264 @@
1
+ import { Clock, Deferred, Effect, Fiber, Ref, Stream } from "effect";
2
+ import { DEFAULT_STUCK_TX_MS } from "../../constants/index.js";
3
+ import { defaultPolicy, makeTxTracker } from "../../tx/index.js";
4
+ import { applyGasLimitMultiplier, nonceToBigInt } from "./internal/helpers.js";
5
+ import { withNonceReservation } from "./internal/nonce.js";
6
+ import { deriveBaseOverrides } from "./internal/prepare.js";
7
+ export const makeWriteAndTrack = (deps) => Effect.fn("ContractPipeline.writeAndTrack")(function* (params) {
8
+ const { writer, txManager, eventStream, nonceService, txReplacement, publicClientService, gasService, } = deps;
9
+ const tracker = yield* makeTxTracker;
10
+ const policy = params.policy ?? defaultPolicy;
11
+ const currentHashRef = yield* Ref.make(null);
12
+ const blocksElapsedRef = yield* Ref.make(0);
13
+ const startedAtMsRef = yield* Ref.make(0);
14
+ const autoAttemptsRef = yield* Ref.make(0);
15
+ const autoReplacingRef = yield* Ref.make(false);
16
+ const resultDeferred = yield* Deferred.make();
17
+ const run = Effect.gen(function* () {
18
+ const baseOverrides = yield* deriveBaseOverrides(gasService, {
19
+ chainId: params.chainId,
20
+ policy,
21
+ userOverrides: params.overrides,
22
+ });
23
+ const estimatedGas = yield* writer.estimateGas({
24
+ ...params,
25
+ overrides: baseOverrides,
26
+ });
27
+ const derivedGas = applyGasLimitMultiplier(estimatedGas, policy.gasLimitMultiplier);
28
+ const explicitGas = params.overrides?.gas ?? params.gas;
29
+ const finalGas = explicitGas ?? derivedGas;
30
+ yield* tracker.set({ status: "simulating" });
31
+ yield* writer.simulate({ ...params, overrides: { ...baseOverrides, gas: finalGas } });
32
+ const explicitNonce = params.overrides?.nonce;
33
+ const nonceReservation = yield* withNonceReservation(nonceService, {
34
+ account: params.account,
35
+ chainId: params.chainId,
36
+ explicitNonce,
37
+ });
38
+ const nonce = nonceReservation.nonce;
39
+ const overridesWithGasAndNonce = {
40
+ ...baseOverrides,
41
+ gas: finalGas,
42
+ nonce,
43
+ };
44
+ yield* tracker.set({
45
+ gas: finalGas,
46
+ status: "estimated",
47
+ tx: {
48
+ accessList: overridesWithGasAndNonce.accessList,
49
+ gas: finalGas,
50
+ gasPrice: overridesWithGasAndNonce.gasPrice,
51
+ maxFeePerGas: overridesWithGasAndNonce.maxFeePerGas,
52
+ maxPriorityFeePerGas: overridesWithGasAndNonce.maxPriorityFeePerGas,
53
+ nonce,
54
+ type: overridesWithGasAndNonce.type,
55
+ },
56
+ });
57
+ yield* tracker.update((prev) => ({ status: "signing", tx: prev.tx }));
58
+ const hash = yield* writer.write({
59
+ ...params,
60
+ overrides: overridesWithGasAndNonce,
61
+ });
62
+ yield* nonceReservation.markSubmitted;
63
+ yield* Ref.set(currentHashRef, hash);
64
+ yield* Ref.set(blocksElapsedRef, 0);
65
+ yield* Ref.set(autoAttemptsRef, 0);
66
+ yield* Ref.set(autoReplacingRef, false);
67
+ yield* Ref.set(startedAtMsRef, yield* Clock.currentTimeMillis);
68
+ yield* tracker.update((prev) => ({ hash, status: "submitted", tx: prev.tx }));
69
+ const publicClient = yield* publicClientService.get(params.chainId);
70
+ const replacementStrategy = policy.replacement?.strategy ?? policy.replacementStrategy ?? "none";
71
+ const stuckBlocks = policy.replacement?.stuckBlocks ?? 3;
72
+ const stuckMs = policy.replacement?.stuckMs ?? DEFAULT_STUCK_TX_MS;
73
+ const maxAttempts = policy.replacement?.maxAttempts ?? 1;
74
+ const updatePendingState = (currentHash) => Effect.gen(function* () {
75
+ const blocksElapsed = yield* Ref.modify(blocksElapsedRef, (n) => [n + 1, n + 1]);
76
+ yield* tracker.update((prev) => {
77
+ if (prev.status === "mined" || prev.status === "failed") {
78
+ return prev;
79
+ }
80
+ return {
81
+ confirmations: blocksElapsed,
82
+ hash: currentHash,
83
+ status: "pending",
84
+ tx: prev.tx,
85
+ };
86
+ });
87
+ return blocksElapsed;
88
+ });
89
+ const performAutoReplacement = (currentHash, now) => Ref.set(autoReplacingRef, true).pipe(Effect.zipRight((replacementStrategy === "cancel"
90
+ ? txReplacement.cancel(params.chainId, currentHash, policy)
91
+ : txReplacement.speedup(params.chainId, currentHash, policy)).pipe(Effect.either, Effect.ensuring(Ref.set(autoReplacingRef, false)), Effect.flatMap((replaced) => {
92
+ if (replaced._tag === "Left") {
93
+ return Effect.void;
94
+ }
95
+ const newHash = replaced.right;
96
+ return Effect.all([
97
+ Ref.set(currentHashRef, newHash),
98
+ Ref.set(blocksElapsedRef, 0),
99
+ Ref.set(startedAtMsRef, now),
100
+ Ref.update(autoAttemptsRef, (n) => n + 1),
101
+ tracker.update((prev) => ({
102
+ newHash,
103
+ oldHash: currentHash,
104
+ reason: replacementStrategy === "cancel" ? "cancelled" : "repriced",
105
+ status: "replaced",
106
+ tx: prev.tx,
107
+ })),
108
+ tracker.update((prev) => ({
109
+ hash: newHash,
110
+ status: "submitted",
111
+ tx: prev.tx,
112
+ })),
113
+ ]).pipe(Effect.asVoid);
114
+ }))));
115
+ const autoReplaceIfStuck = (currentHash, blocksElapsed) => {
116
+ if (replacementStrategy === "none") {
117
+ return Effect.void;
118
+ }
119
+ return Effect.all({
120
+ alreadyReplacing: Ref.get(autoReplacingRef),
121
+ attempts: Ref.get(autoAttemptsRef),
122
+ now: Clock.currentTimeMillis,
123
+ startedAt: Ref.get(startedAtMsRef),
124
+ }).pipe(Effect.flatMap(({ alreadyReplacing, attempts, now, startedAt }) => {
125
+ const elapsed = startedAt > 0 ? now - startedAt : 0;
126
+ const stuck = blocksElapsed >= stuckBlocks || elapsed >= stuckMs;
127
+ const allowed = attempts < maxAttempts && !alreadyReplacing;
128
+ return stuck && allowed ? performAutoReplacement(currentHash, now) : Effect.void;
129
+ }));
130
+ };
131
+ const onPendingBlock = Effect.gen(function* () {
132
+ const currentHash = yield* Ref.get(currentHashRef);
133
+ if (!currentHash) {
134
+ return;
135
+ }
136
+ const blocksElapsed = yield* updatePendingState(currentHash);
137
+ yield* autoReplaceIfStuck(currentHash, blocksElapsed);
138
+ });
139
+ const pendingFiber = yield* Stream.runForEach(Stream.async((emit) => {
140
+ const unwatch = publicClient.watchBlockNumber({
141
+ onBlockNumber: (blockNumber) => emit.single(blockNumber),
142
+ onError: (error) => emit.fail(error),
143
+ pollingInterval: policy.pollingInterval,
144
+ });
145
+ return Effect.sync(() => {
146
+ unwatch();
147
+ });
148
+ }), () => onPendingBlock).pipe(Effect.forkScoped);
149
+ const receipt = yield* Effect.gen(function* () {
150
+ let waitHash = hash;
151
+ while (true) {
152
+ const exit = yield* txManager
153
+ .waitForReceipt(params.chainId, waitHash, policy)
154
+ .pipe(Effect.either);
155
+ if (exit._tag === "Right") {
156
+ return exit.right;
157
+ }
158
+ const error = exit.left;
159
+ if (error._tag === "TransactionReplacedError") {
160
+ const newHash = error.newHash;
161
+ const now = yield* Clock.currentTimeMillis;
162
+ yield* Ref.set(currentHashRef, newHash);
163
+ yield* Ref.set(blocksElapsedRef, 0);
164
+ yield* Ref.set(startedAtMsRef, now);
165
+ yield* tracker.update((prev) => ({
166
+ newHash,
167
+ oldHash: error.oldHash,
168
+ reason: error.reason,
169
+ status: "replaced",
170
+ tx: prev.tx,
171
+ }));
172
+ yield* tracker.update((prev) => ({
173
+ hash: newHash,
174
+ status: "submitted",
175
+ tx: prev.tx,
176
+ }));
177
+ waitHash = newHash;
178
+ continue;
179
+ }
180
+ return yield* Effect.fail(error);
181
+ }
182
+ }).pipe(Effect.ensuring(Fiber.interrupt(pendingFiber)));
183
+ yield* tracker.update((prev) => ({
184
+ effectiveGasPrice: receipt.effectiveGasPrice,
185
+ hash: receipt.transactionHash,
186
+ receipt,
187
+ status: "mined",
188
+ tx: prev.tx,
189
+ }));
190
+ if (nonceReservation.reserved) {
191
+ yield* nonceService.confirm({
192
+ address: params.account,
193
+ chainId: params.chainId,
194
+ nonce: nonceToBigInt(nonceReservation.nonce),
195
+ });
196
+ }
197
+ const events = (yield* eventStream.decodeReceipt(receipt, params.abi));
198
+ return {
199
+ events,
200
+ hash: receipt.transactionHash,
201
+ receipt,
202
+ };
203
+ });
204
+ yield* run.pipe(Effect.either, Effect.flatMap((either) => either._tag === "Right"
205
+ ? Deferred.succeed(resultDeferred, either.right)
206
+ : Deferred.fail(resultDeferred, either.left)), Effect.forkScoped);
207
+ return {
208
+ actions: {
209
+ cancel: (overridePolicy) => Effect.gen(function* () {
210
+ const currentHash = yield* Ref.get(currentHashRef);
211
+ if (!currentHash) {
212
+ return yield* Effect.fail(new Error("Transaction not yet submitted"));
213
+ }
214
+ const nextPolicy = overridePolicy ?? policy;
215
+ const newHash = yield* txReplacement.cancel(params.chainId, currentHash, nextPolicy);
216
+ const now = yield* Clock.currentTimeMillis;
217
+ yield* Ref.set(currentHashRef, newHash);
218
+ yield* Ref.set(blocksElapsedRef, 0);
219
+ yield* Ref.set(startedAtMsRef, now);
220
+ yield* tracker.update((prev) => ({
221
+ newHash,
222
+ oldHash: currentHash,
223
+ reason: "cancelled",
224
+ status: "replaced",
225
+ tx: prev.tx,
226
+ }));
227
+ yield* tracker.update((prev) => ({
228
+ hash: newHash,
229
+ status: "submitted",
230
+ tx: prev.tx,
231
+ }));
232
+ return newHash;
233
+ }),
234
+ speedup: (overridePolicy) => Effect.gen(function* () {
235
+ const currentHash = yield* Ref.get(currentHashRef);
236
+ if (!currentHash) {
237
+ return yield* Effect.fail(new Error("Transaction not yet submitted"));
238
+ }
239
+ const nextPolicy = overridePolicy ?? policy;
240
+ const newHash = yield* txReplacement.speedup(params.chainId, currentHash, nextPolicy);
241
+ const now = yield* Clock.currentTimeMillis;
242
+ yield* Ref.set(currentHashRef, newHash);
243
+ yield* Ref.set(blocksElapsedRef, 0);
244
+ yield* Ref.set(startedAtMsRef, now);
245
+ yield* tracker.update((prev) => ({
246
+ newHash,
247
+ oldHash: currentHash,
248
+ reason: "repriced",
249
+ status: "replaced",
250
+ tx: prev.tx,
251
+ }));
252
+ yield* tracker.update((prev) => ({
253
+ hash: newHash,
254
+ status: "submitted",
255
+ tx: prev.tx,
256
+ }));
257
+ return newHash;
258
+ }),
259
+ },
260
+ result: Deferred.await(resultDeferred),
261
+ stateRef: tracker.ref,
262
+ };
263
+ });
264
+ //# sourceMappingURL=write-and-track.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-and-track.js","sourceRoot":"","sources":["../../../src/contract/pipeline/write-and-track.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import type { Abi } from "viem";
3
+ import type { ContractFunctionName } from "../../types/index.js";
4
+ import type { CorePipelineDeps } from "./internal/core.js";
5
+ import type { WriteAndTrackParams } from "./types.js";
6
+ export declare const makeWriteAndWait: (deps: CorePipelineDeps) => <TAbi extends Abi, TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable">>(params: WriteAndTrackParams<TAbi, TFunctionName>) => Effect.Effect<import("./types.js").WriteAndTrackResult<TAbi>, import("../../index.js").ClientNotFoundError | import("../../index.js").WalletNotConnectedError | import("../../index.js").WrongNetworkError | import("../../index.js").TransportError | import("../../index.js").ContractReadError | import("../../index.js").SimulationFailedError | import("../../index.js").GasEstimationError | import("../../index.js").ContractWriteError | import("../../index.js").EventDecodeError | import("../../index.js").UserRejectedError | import("../../index.js").TransactionFailedError | import("../../index.js").ReceiptTimeoutError | import("../../index.js").InsufficientFundsError | import("../../index.js").GasPriceUnavailableError, never>;
7
+ //# sourceMappingURL=write-and-wait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-and-wait.d.ts","sourceRoot":"","sources":["../../../src/contract/pipeline/write-and-wait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKtD,eAAO,MAAM,gBAAgB,GAAI,MAAM,gBAAgB,MAEnD,IAAI,SAAS,GAAG,EAChB,aAAa,00BAGb,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { defaultPolicy } from "../../tx/index.js";
3
+ import { runCorePipeline } from "./internal/core.js";
4
+ export const makeWriteAndWait = (deps) => Effect.fn("ContractPipeline.writeAndWait")(function* (params) {
5
+ return yield* Effect.scoped(runCorePipeline(deps, params, params.policy ?? defaultPolicy));
6
+ });
7
+ //# sourceMappingURL=write-and-wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-and-wait.js","sourceRoot":"","sources":["../../../src/contract/pipeline/write-and-wait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAsB,EAAE,EAAE,CACzD,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,EAGlD,MAAgD;IAChD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../contract/pipeline/index.js";
2
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/contract/pipeline.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../contract/pipeline/index.js";
2
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/contract/pipeline.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import type { Abi } from "viem";
3
+ import type { ClientNotFoundError } from "../core/index.js";
4
+ import { ContractReadError, MulticallError, PublicClientService } from "../core/index.js";
5
+ import type { ContractFunctionName, ContractFunctionReturnType, ExtractMulticallReturnType, MulticallCall, MulticallResult, ReadParams } from "../types/index.js";
6
+ export type ContractReaderShape = {
7
+ readonly read: <TAbi extends Abi, TFunctionName extends ContractFunctionName<TAbi, "pure" | "view">>(params: ReadParams<TAbi, TFunctionName>) => Effect.Effect<ContractFunctionReturnType<TAbi, "pure" | "view", TFunctionName>, ContractReadError | ClientNotFoundError>;
8
+ readonly multicall: <const TCalls extends readonly MulticallCall[]>(chainId: number, calls: TCalls, options?: {
9
+ readonly blockNumber?: bigint | undefined;
10
+ readonly blockTag?: import("viem").BlockTag | undefined;
11
+ }) => Effect.Effect<{
12
+ readonly [K in keyof TCalls]: MulticallResult<ExtractMulticallReturnType<TCalls[K]>>;
13
+ }, MulticallError | ClientNotFoundError>;
14
+ };
15
+ declare const ContractReader_base: Context.TagClass<ContractReader, "ew3/ContractReader", ContractReaderShape>;
16
+ export declare class ContractReader extends ContractReader_base {
17
+ }
18
+ export declare const ContractReaderLive: Layer.Layer<ContractReader, never, PublicClientService>;
19
+ export {};
20
+ //# sourceMappingURL=reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/contract/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EAEjB,cAAc,EACd,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,UAAU,EACX,MAAM,sBAAsB,CAAC;AAK9B,MAAM,MAAM,mBAAmB,GAAG;IAIhC,QAAQ,CAAC,IAAI,EAAE,CACb,IAAI,SAAS,GAAG,EAChB,aAAa,SAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,EAEjE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,KACpC,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,EAChE,iBAAiB,GAAG,mBAAmB,CACxC,CAAC;IAiBF,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,aAAa,EAAE,EAChE,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;KACzD,KACE,MAAM,CAAC,MAAM,CAChB;QACE,QAAQ,EAAE,CAAC,IAAI,MAAM,MAAM,GAAG,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KACrF,EACD,cAAc,GAAG,mBAAmB,CACrC,CAAC;CACH,CAAC;;AAEF,qBAAa,cAAe,SAAQ,mBAGjC;CAAG;AAKN,eAAO,MAAM,kBAAkB,yDAqF9B,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { ContractReadError, classifyContractError, MulticallError, PublicClientService, } from "../core/index.js";
3
+ export class ContractReader extends Context.Tag("ew3/ContractReader")() {
4
+ }
5
+ export const ContractReaderLive = Layer.effect(ContractReader, Effect.gen(function* () {
6
+ const publicClientService = yield* PublicClientService;
7
+ return ContractReader.of({
8
+ multicall: Effect.fn("ContractReader.multicall")(function* (chainId, calls, options) {
9
+ const client = yield* publicClientService.get(chainId);
10
+ const results = yield* Effect.tryPromise({
11
+ catch: (cause) => new MulticallError({
12
+ cause,
13
+ failedCalls: 0,
14
+ message: "Multicall failed",
15
+ }),
16
+ try: () => client.multicall({
17
+ blockNumber: options?.blockNumber,
18
+ blockTag: options?.blockTag,
19
+ contracts: calls.map((c) => ({
20
+ abi: c.abi,
21
+ address: c.address,
22
+ args: c.args,
23
+ functionName: c.functionName,
24
+ })),
25
+ }),
26
+ });
27
+ return results.map((r) => r.status === "success"
28
+ ? { result: r.result, status: "success" }
29
+ : {
30
+ error: new Error(String(r.error)),
31
+ status: "failure",
32
+ });
33
+ }),
34
+ read: Effect.fn("ContractReader.read")(function* (params) {
35
+ const client = yield* publicClientService.get(params.chainId);
36
+ return yield* Effect.tryPromise({
37
+ catch: (cause) => {
38
+ const classified = classifyContractError(cause, {
39
+ address: params.address,
40
+ functionName: params.functionName,
41
+ });
42
+ return classified instanceof ContractReadError
43
+ ? classified
44
+ : new ContractReadError({
45
+ address: params.address,
46
+ cause: classified,
47
+ functionName: params.functionName,
48
+ message: classified.message,
49
+ });
50
+ },
51
+ try: () => client.readContract({
52
+ abi: params.abi,
53
+ account: params.account,
54
+ address: params.address,
55
+ args: params.args,
56
+ blockNumber: params.blockNumber,
57
+ blockTag: params.blockTag,
58
+ functionName: params.functionName,
59
+ }),
60
+ });
61
+ }),
62
+ });
63
+ }));
64
+ //# sourceMappingURL=reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/contract/reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Effect } from "effect";
2
+ import type { Address, BlockTag, GetValue, Hash } from "viem";
3
+ import { ContractReader, ContractWriter } from "../contract/index.js";
4
+ import type { Abi, ContractFunctionArgs, ContractFunctionReturnType, ReadFunctionName, SimulateResult, TxOverrides, WriteFunctionName } from "../types/index.js";
5
+ type ReadArgs<TAbi extends Abi, TFunctionName extends ReadFunctionName<TAbi>> = ContractFunctionArgs<TAbi, "pure" | "view", TFunctionName>;
6
+ type ReadCallOptions = {
7
+ readonly account?: Address | undefined;
8
+ readonly blockNumber?: bigint | undefined;
9
+ readonly blockTag?: BlockTag | undefined;
10
+ };
11
+ type ReadArgsWithOptionsParam<TAbi extends Abi, TFunctionName extends ReadFunctionName<TAbi>> = readonly [] extends ReadArgs<TAbi, TFunctionName> ? [args?: ReadArgs<TAbi, TFunctionName>, options?: ReadCallOptions | undefined] : [args: ReadArgs<TAbi, TFunctionName>, options?: ReadCallOptions | undefined];
12
+ type WriteArgs<TAbi extends Abi, TFunctionName extends WriteFunctionName<TAbi>> = ContractFunctionArgs<TAbi, "nonpayable" | "payable", TFunctionName>;
13
+ type WriteArgsField<TAbi extends Abi, TFunctionName extends WriteFunctionName<TAbi>> = readonly [] extends WriteArgs<TAbi, TFunctionName> ? {
14
+ readonly args?: WriteArgs<TAbi, TFunctionName> | undefined;
15
+ } : {
16
+ readonly args: WriteArgs<TAbi, TFunctionName>;
17
+ };
18
+ type WriteOverrides<TAbi extends Abi, TFunctionName extends WriteFunctionName<TAbi>> = {
19
+ readonly account: Address;
20
+ readonly overrides?: TxOverrides | undefined;
21
+ readonly gas?: bigint | undefined;
22
+ } & WriteArgsField<TAbi, TFunctionName> & GetValue<TAbi, TFunctionName, bigint>;
23
+ export type TypedContract<TAbi extends Abi> = {
24
+ readonly address: Address;
25
+ readonly abi: TAbi;
26
+ readonly read: <TFunctionName extends ReadFunctionName<TAbi>>(chainId: number, functionName: TFunctionName, ...args: ReadArgsWithOptionsParam<TAbi, TFunctionName>) => Effect.Effect<ContractFunctionReturnType<TAbi, "pure" | "view", TFunctionName>, Error, ContractReader>;
27
+ readonly simulate: <TFunctionName extends WriteFunctionName<TAbi>>(chainId: number, functionName: TFunctionName, args: WriteOverrides<TAbi, TFunctionName>) => Effect.Effect<SimulateResult, Error, ContractWriter>;
28
+ readonly estimateGas: <TFunctionName extends WriteFunctionName<TAbi>>(chainId: number, functionName: TFunctionName, args: WriteOverrides<TAbi, TFunctionName>) => Effect.Effect<bigint, Error, ContractWriter>;
29
+ readonly write: <TFunctionName extends WriteFunctionName<TAbi>>(chainId: number, functionName: TFunctionName, args: WriteOverrides<TAbi, TFunctionName>) => Effect.Effect<Hash, Error, ContractWriter>;
30
+ };
31
+ export declare function typedContract<TAbi extends Abi>(abi: TAbi, address: Address): TypedContract<TAbi>;
32
+ export {};
33
+ //# sourceMappingURL=typed-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-contract.d.ts","sourceRoot":"","sources":["../../src/contract/typed-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { Effect } from "effect";
2
+ import { ContractReader, ContractWriter } from "../contract/index.js";
3
+ export function typedContract(abi, address) {
4
+ return {
5
+ abi,
6
+ address,
7
+ estimateGas: (chainId, functionName, params) => Effect.gen(function* () {
8
+ const writer = yield* ContractWriter;
9
+ return yield* writer.estimateGas({
10
+ abi,
11
+ address,
12
+ chainId,
13
+ functionName,
14
+ ...params,
15
+ });
16
+ }),
17
+ read: (chainId, functionName, ...args) => Effect.gen(function* () {
18
+ const reader = yield* ContractReader;
19
+ const options = args[1];
20
+ return yield* reader.read({
21
+ abi,
22
+ account: options?.account,
23
+ address,
24
+ args: args[0],
25
+ blockNumber: options?.blockNumber,
26
+ blockTag: options?.blockTag,
27
+ chainId,
28
+ functionName,
29
+ });
30
+ }),
31
+ simulate: (chainId, functionName, params) => Effect.gen(function* () {
32
+ const writer = yield* ContractWriter;
33
+ return yield* writer.simulate({
34
+ abi,
35
+ address,
36
+ chainId,
37
+ functionName,
38
+ ...params,
39
+ });
40
+ }),
41
+ write: (chainId, functionName, params) => Effect.gen(function* () {
42
+ const writer = yield* ContractWriter;
43
+ return yield* writer.write({
44
+ abi,
45
+ address,
46
+ chainId,
47
+ functionName,
48
+ ...params,
49
+ });
50
+ }),
51
+ };
52
+ }
53
+ //# sourceMappingURL=typed-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-contract.js","sourceRoot":"","sources":["../../src/contract/typed-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA0HzE,MAAM,UAAU,aAAa,CAAmB,GAAS,EAAE,OAAgB;IACzE,OAAO;QACL,GAAG;QACH,OAAO;QAEP,WAAW,EAAE,CACX,OAAe,EACf,YAA2B,EAC3B,MAA2C,EAC3C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC/B,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,GAAG,MAAM;aAC0B,CAAC,CAAC;QACzC,CAAC,CAAC;QAEJ,IAAI,EAAE,CACJ,OAAe,EACf,YAA2B,EAC3B,GAAG,IAAmD,EACtD,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBACxB,GAAG;gBACH,OAAO,EAAE,OAAO,EAAE,OAAO;gBACzB,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACb,WAAW,EAAE,OAAO,EAAE,WAAW;gBACjC,QAAQ,EAAE,OAAO,EAAE,QAAQ;gBAC3B,OAAO;gBACP,YAAY;aACsB,CAAC,CAAC;QACxC,CAAC,CAAC;QAEJ,QAAQ,EAAE,CACR,OAAe,EACf,YAA2B,EAC3B,MAA2C,EAC3C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC5B,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,GAAG,MAAM;aAC0B,CAAC,CAAC;QACzC,CAAC,CAAC;QAEJ,KAAK,EAAE,CACL,OAAe,EACf,YAA2B,EAC3B,MAA2C,EAC3C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACzB,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,GAAG,MAAM;aAC0B,CAAC,CAAC;QACzC,CAAC,CAAC;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import type { Abi, Hash } from "viem";
3
+ import type { ClientNotFoundError, ContractReadError, ContractWriteError, GasEstimationError, InsufficientFundsError, SimulationFailedError, UserRejectedError, WalletNotConnectedError, WrongNetworkError } from "../core/index.js";
4
+ import { PublicClientService, WalletClientService } from "../core/index.js";
5
+ import type { ContractFunctionName, SimulateResult, WriteParams } from "../types/index.js";
6
+ export type ContractWriterShape = {
7
+ readonly simulate: <TAbi extends Abi, TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable">>(params: WriteParams<TAbi, TFunctionName>) => Effect.Effect<SimulateResult, SimulationFailedError | ContractReadError | InsufficientFundsError | UserRejectedError | ClientNotFoundError>;
8
+ readonly estimateGas: <TAbi extends Abi, TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable">>(params: WriteParams<TAbi, TFunctionName>) => Effect.Effect<bigint, GasEstimationError | InsufficientFundsError | UserRejectedError | ClientNotFoundError>;
9
+ readonly write: <TAbi extends Abi, TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable">>(params: WriteParams<TAbi, TFunctionName>) => Effect.Effect<Hash, ContractWriteError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError>;
10
+ };
11
+ declare const ContractWriter_base: Context.TagClass<ContractWriter, "ew3/ContractWriter", ContractWriterShape>;
12
+ export declare class ContractWriter extends ContractWriter_base {
13
+ }
14
+ export declare const ContractWriterLive: Layer.Layer<ContractWriter, never, PublicClientService | WalletClientService>;
15
+ export {};
16
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/contract/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EACV,GAAG,EAKH,IAAI,EAGL,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAuB9F,MAAM,MAAM,mBAAmB,GAAG;IAIhC,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,SAAS,GAAG,EAChB,aAAa,SAAS,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC,EAE1E,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,KACrC,MAAM,CAAC,MAAM,CAChB,cAAc,EACZ,qBAAqB,GACrB,iBAAiB,GACjB,sBAAsB,GACtB,iBAAiB,GACjB,mBAAmB,CACtB,CAAC;IAKF,QAAQ,CAAC,WAAW,EAAE,CACpB,IAAI,SAAS,GAAG,EAChB,aAAa,SAAS,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC,EAE1E,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,KACrC,MAAM,CAAC,MAAM,CAChB,MAAM,EACN,kBAAkB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,mBAAmB,CACtF,CAAC;IAKF,QAAQ,CAAC,KAAK,EAAE,CACd,IAAI,SAAS,GAAG,EAChB,aAAa,SAAS,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC,EAE1E,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,KACrC,MAAM,CAAC,MAAM,CAChB,IAAI,EACF,kBAAkB,GAClB,sBAAsB,GACtB,iBAAiB,GACjB,uBAAuB,GACvB,iBAAiB,CACpB,CAAC;CACH,CAAC;;AAEF,qBAAa,cAAe,SAAQ,mBAGjC;CAAG;AAKN,eAAO,MAAM,kBAAkB,+EA+F9B,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { classifyContractError, classifyGasEstimationError, classifyWriteError, PublicClientService, WalletClientService, } from "../core/index.js";
3
+ const txRequestOverridesFromWriteParams = (params) => {
4
+ const overrides = params.overrides;
5
+ return {
6
+ accessList: overrides?.accessList,
7
+ gas: overrides?.gas ?? params.gas,
8
+ gasPrice: overrides?.gasPrice,
9
+ maxFeePerGas: overrides?.maxFeePerGas,
10
+ maxPriorityFeePerGas: overrides?.maxPriorityFeePerGas,
11
+ nonce: overrides?.nonce,
12
+ type: overrides?.type,
13
+ };
14
+ };
15
+ export class ContractWriter extends Context.Tag("ew3/ContractWriter")() {
16
+ }
17
+ export const ContractWriterLive = Layer.effect(ContractWriter, Effect.gen(function* () {
18
+ const publicClientService = yield* PublicClientService;
19
+ const walletClientService = yield* WalletClientService;
20
+ return ContractWriter.of({
21
+ estimateGas: Effect.fn("ContractWriter.estimateGas")(function* (params) {
22
+ const publicClient = yield* publicClientService.get(params.chainId);
23
+ return yield* Effect.tryPromise({
24
+ catch: (cause) => classifyGasEstimationError(cause, {
25
+ address: params.address,
26
+ functionName: params.functionName,
27
+ }),
28
+ try: () => publicClient.estimateContractGas({
29
+ abi: params.abi,
30
+ account: params.account,
31
+ address: params.address,
32
+ args: params.args,
33
+ functionName: params.functionName,
34
+ value: params.value,
35
+ ...txRequestOverridesFromWriteParams(params),
36
+ }),
37
+ });
38
+ }),
39
+ simulate: Effect.fn("ContractWriter.simulate")(function* (params) {
40
+ const publicClient = yield* publicClientService.get(params.chainId);
41
+ return yield* Effect.tryPromise({
42
+ catch: (cause) => classifyContractError(cause, {
43
+ address: params.address,
44
+ functionName: params.functionName,
45
+ }),
46
+ try: async () => {
47
+ const result = await publicClient.simulateContract({
48
+ abi: params.abi,
49
+ account: params.account,
50
+ address: params.address,
51
+ args: params.args,
52
+ functionName: params.functionName,
53
+ value: params.value,
54
+ ...txRequestOverridesFromWriteParams(params),
55
+ });
56
+ return {
57
+ request: result.request,
58
+ result: result.result,
59
+ };
60
+ },
61
+ });
62
+ }),
63
+ write: Effect.fn("ContractWriter.write")(function* (params) {
64
+ const walletClient = yield* walletClientService.get(params.chainId);
65
+ return yield* Effect.tryPromise({
66
+ catch: (cause) => classifyWriteError(cause, {
67
+ address: params.address,
68
+ functionName: params.functionName,
69
+ }),
70
+ try: () => walletClient.writeContract({
71
+ abi: params.abi,
72
+ account: params.account,
73
+ address: params.address,
74
+ args: params.args,
75
+ chain: walletClient.chain,
76
+ functionName: params.functionName,
77
+ value: params.value,
78
+ ...txRequestOverridesFromWriteParams(params),
79
+ }),
80
+ });
81
+ }),
82
+ });
83
+ }));
84
+ //# sourceMappingURL=writer.js.map