@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
@@ -1,12 +1,12 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
2
  import type { AccessList, Account, Address, Authorization, Hash, Hex } from "viem";
3
- import type { ClientNotFoundError, ReceiptTimeoutError, TransactionFailedError, TransactionReplacedError, WrongNetworkError } from "../core/index.js";
3
+ import type { ClientNotFoundError, ReceiptTimeoutError, TxFailedError, TxReplacedError, WrongNetworkError } from "../core/index.js";
4
4
  import { InsufficientFundsError, PublicClientService, UserRejectedError, WalletClientService, WalletNotConnectedError } from "../core/index.js";
5
5
  import type { TxPolicy } from "../tx/index.js";
6
6
  import { TxManager } from "../tx/index.js";
7
- import type { TransactionResult } from "../types/index.js";
7
+ import type { TxResult } from "../types/index.js";
8
8
  import type { Erc7579ModeCode } from "./erc7579.js";
9
- import { Eip7702AuthorizationPreparationError, Eip7702AuthorizationSigningError, Eip7702SendTransactionError } from "./errors.js";
9
+ import { Eip7702AuthorizationPreparationError, Eip7702AuthorizationSigningError, Eip7702SendTxError } from "./errors.js";
10
10
  export type Eip7702Call = {
11
11
  readonly to: Address;
12
12
  readonly data: Hex;
@@ -39,7 +39,7 @@ export type ApproveAndExecuteParams = {
39
39
  readonly mode?: Erc7579ModeCode | undefined;
40
40
  readonly tx?: Eip7702TxOverrides | undefined;
41
41
  };
42
- export type DelegateAndExecuteResult = TransactionResult;
42
+ export type DelegateAndExecuteResult = TxResult;
43
43
  export type Eip7702ServiceShape = {
44
44
  readonly prepareAuthorization: (params: {
45
45
  readonly chainId: number;
@@ -47,14 +47,14 @@ export type Eip7702ServiceShape = {
47
47
  readonly contractAddress: Address;
48
48
  readonly executor?: Eip7702AuthorizationExecutor | undefined;
49
49
  }) => Effect.Effect<Authorization<number>, Eip7702AuthorizationPreparationError | ClientNotFoundError>;
50
- readonly delegateAndExecuteErc7579Batch: (params: DelegateAndExecuteErc7579BatchParams) => Effect.Effect<Hash, Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | Eip7702SendTransactionError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError>;
50
+ readonly delegateAndExecuteErc7579Batch: (params: DelegateAndExecuteErc7579BatchParams) => Effect.Effect<Hash, Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | Eip7702SendTxError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError>;
51
51
  readonly delegateAndExecuteErc7579BatchAndWait: (params: DelegateAndExecuteErc7579BatchParams & {
52
52
  readonly policy?: TxPolicy | undefined;
53
- }) => Effect.Effect<DelegateAndExecuteResult, Eip7702SendTransactionError | Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | ReceiptTimeoutError | TransactionFailedError | TransactionReplacedError>;
54
- readonly approveAndExecute: (params: ApproveAndExecuteParams) => Effect.Effect<Hash, Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | Eip7702SendTransactionError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError>;
53
+ }) => Effect.Effect<DelegateAndExecuteResult, Eip7702SendTxError | Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | ReceiptTimeoutError | TxFailedError | TxReplacedError>;
54
+ readonly approveAndExecute: (params: ApproveAndExecuteParams) => Effect.Effect<Hash, Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | Eip7702SendTxError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError>;
55
55
  readonly approveAndExecuteAndWait: (params: ApproveAndExecuteParams & {
56
56
  readonly policy?: TxPolicy | undefined;
57
- }) => Effect.Effect<DelegateAndExecuteResult, Eip7702SendTransactionError | Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | ReceiptTimeoutError | TransactionFailedError | TransactionReplacedError>;
57
+ }) => Effect.Effect<DelegateAndExecuteResult, Eip7702SendTxError | Eip7702AuthorizationPreparationError | Eip7702AuthorizationSigningError | InsufficientFundsError | UserRejectedError | WalletNotConnectedError | WrongNetworkError | ClientNotFoundError | ReceiptTimeoutError | TxFailedError | TxReplacedError>;
58
58
  };
59
59
  declare const Eip7702Service_base: Context.TagClass<Eip7702Service, "ew3/Eip7702Service", Eip7702ServiceShape>;
60
60
  export declare class Eip7702Service extends Eip7702Service_base {
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/eip7702/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/eip7702/service.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { prepareAuthorization } from "viem/actions";
4
4
  import { InsufficientFundsError, isInsufficientFunds, isUserRejection, PublicClientService, UserRejectedError, WalletClientService, WalletNotConnectedError, } from "../core/index.js";
5
5
  import { defaultPolicy, TxManager } from "../tx/index.js";
6
6
  import { ERC7579_MODE_SIMPLE_BATCH, encodeErc7579BatchExecutionCalldata, encodeErc7579ExecuteCalldata, } from "./erc7579.js";
7
- import { Eip7702AuthorizationPreparationError, Eip7702AuthorizationSigningError, Eip7702SendTransactionError, } from "./errors.js";
7
+ import { Eip7702AuthorizationPreparationError, Eip7702AuthorizationSigningError, Eip7702SendTxError, } from "./errors.js";
8
8
  function mapSendEip7702TransactionCause(chainId, cause) {
9
9
  if (isUserRejection(cause)) {
10
10
  return new UserRejectedError({
@@ -18,7 +18,7 @@ function mapSendEip7702TransactionCause(chainId, cause) {
18
18
  required: "0",
19
19
  });
20
20
  }
21
- return new Eip7702SendTransactionError({
21
+ return new Eip7702SendTxError({
22
22
  cause,
23
23
  chainId,
24
24
  message: cause instanceof Error ? cause.message : "Failed to send EIP-7702 transaction",
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/eip7702/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/eip7702/service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport type { AccessList, Account, Address, Authorization, Hash, Hex } from \"viem\";\nimport { encodeFunctionData, erc20Abi } from \"viem\";\nimport { prepareAuthorization } from \"viem/actions\";\nimport type {\n ClientNotFoundError,\n ReceiptTimeoutError,\n TxFailedError,\n TxReplacedError,\n WrongNetworkError,\n} from \"@/src/core/index.js\";\nimport {\n InsufficientFundsError,\n isInsufficientFunds,\n isUserRejection,\n PublicClientService,\n UserRejectedError,\n WalletClientService,\n WalletNotConnectedError,\n} from \"@/src/core/index.js\";\nimport type { TxPolicy } from \"@/src/tx/index.js\";\nimport { defaultPolicy, TxManager } from \"@/src/tx/index.js\";\nimport type { TxResult } from \"@/src/types/index.js\";\nimport type { Erc7579ModeCode } from \"./erc7579.js\";\nimport {\n ERC7579_MODE_SIMPLE_BATCH,\n encodeErc7579BatchExecutionCalldata,\n encodeErc7579ExecuteCalldata,\n} from \"./erc7579.js\";\nimport {\n Eip7702AuthorizationPreparationError,\n Eip7702AuthorizationSigningError,\n Eip7702SendTxError,\n} from \"./errors.js\";\n\nexport type Eip7702Call = {\n readonly to: Address;\n readonly data: Hex;\n readonly value?: bigint | undefined;\n};\n\nexport type Eip7702AuthorizationExecutor = \"self\" | Address | Account;\n\nexport type Eip7702TxOverrides = {\n readonly accessList?: AccessList | undefined;\n readonly gas?: bigint | undefined;\n readonly maxFeePerGas?: bigint | undefined;\n readonly maxPriorityFeePerGas?: bigint | undefined;\n readonly nonce?: number | undefined;\n};\n\nexport type DelegateAndExecuteErc7579BatchParams = {\n readonly chainId: number;\n readonly account?: Address | Account | undefined;\n readonly delegation: Address;\n readonly calls: readonly Eip7702Call[];\n readonly mode?: Erc7579ModeCode | undefined;\n readonly tx?: Eip7702TxOverrides | undefined;\n};\n\nexport type ApproveAndExecuteParams = {\n readonly chainId: number;\n readonly account?: Address | Account | undefined;\n readonly delegation: Address;\n readonly token: Address;\n readonly spender: Address;\n readonly amount: bigint;\n readonly call: Eip7702Call;\n readonly mode?: Erc7579ModeCode | undefined;\n readonly tx?: Eip7702TxOverrides | undefined;\n};\n\nexport type DelegateAndExecuteResult = TxResult;\n\nfunction mapSendEip7702TransactionCause(\n chainId: number,\n cause: unknown\n): Eip7702SendTxError | InsufficientFundsError | UserRejectedError {\n if (isUserRejection(cause)) {\n return new UserRejectedError({\n message: cause instanceof Error ? cause.message : \"User rejected the request\",\n });\n }\n\n if (isInsufficientFunds(cause)) {\n return new InsufficientFundsError({\n available: \"0\",\n message: cause instanceof Error ? cause.message : \"Insufficient funds for transaction\",\n required: \"0\",\n });\n }\n\n return new Eip7702SendTxError({\n cause,\n chainId,\n message: cause instanceof Error ? cause.message : \"Failed to send EIP-7702 transaction\",\n });\n}\n\nexport type Eip7702ServiceShape = {\n readonly prepareAuthorization: (params: {\n readonly chainId: number;\n readonly account: Address | Account;\n readonly contractAddress: Address;\n readonly executor?: Eip7702AuthorizationExecutor | undefined;\n }) => Effect.Effect<\n Authorization<number>,\n Eip7702AuthorizationPreparationError | ClientNotFoundError\n >;\n\n readonly delegateAndExecuteErc7579Batch: (\n params: DelegateAndExecuteErc7579BatchParams\n ) => Effect.Effect<\n Hash,\n | Eip7702AuthorizationPreparationError\n | Eip7702AuthorizationSigningError\n | Eip7702SendTxError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n >;\n\n readonly delegateAndExecuteErc7579BatchAndWait: (\n params: DelegateAndExecuteErc7579BatchParams & {\n readonly policy?: TxPolicy | undefined;\n }\n ) => Effect.Effect<\n DelegateAndExecuteResult,\n | Eip7702SendTxError\n | Eip7702AuthorizationPreparationError\n | Eip7702AuthorizationSigningError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n | ReceiptTimeoutError\n | TxFailedError\n | TxReplacedError\n >;\n\n readonly approveAndExecute: (\n params: ApproveAndExecuteParams\n ) => Effect.Effect<\n Hash,\n | Eip7702AuthorizationPreparationError\n | Eip7702AuthorizationSigningError\n | Eip7702SendTxError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n >;\n\n readonly approveAndExecuteAndWait: (\n params: ApproveAndExecuteParams & {\n readonly policy?: TxPolicy | undefined;\n }\n ) => Effect.Effect<\n DelegateAndExecuteResult,\n | Eip7702SendTxError\n | Eip7702AuthorizationPreparationError\n | Eip7702AuthorizationSigningError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n | ClientNotFoundError\n | ReceiptTimeoutError\n | TxFailedError\n | TxReplacedError\n >;\n};\n\nexport class Eip7702Service extends Context.Tag(\"ew3/Eip7702Service\")<\n Eip7702Service,\n Eip7702ServiceShape\n>() {}\n\nconst accountAddress = (account: Address | Account): Address =>\n typeof account === \"string\" ? account : account.address;\n\nconst signAuthorizationIfSupported = (\n account: Address | Account,\n authorization: Authorization<number>\n): Effect.Effect<Authorization<number>, Eip7702AuthorizationSigningError> => {\n if (typeof account === \"string\") {\n return Effect.succeed(authorization);\n }\n const signAuthorization = account.signAuthorization;\n if (!signAuthorization) {\n return Effect.succeed(authorization);\n }\n\n return Effect.tryPromise({\n catch: (cause) =>\n new Eip7702AuthorizationSigningError({\n cause,\n chainId: authorization.chainId,\n message: cause instanceof Error ? cause.message : \"Failed to sign EIP-7702 authorization\",\n }),\n try: () => signAuthorization(authorization),\n });\n};\n\nexport const Eip7702ServiceLive = Layer.effect(\n Eip7702Service,\n Effect.gen(function* () {\n const publicClientService = yield* PublicClientService;\n const walletClientService = yield* WalletClientService;\n const txManager = yield* TxManager;\n\n const prepareAuthorizationEffect = (params: {\n readonly chainId: number;\n readonly account: Address | Account;\n readonly contractAddress: Address;\n readonly executor?: Eip7702AuthorizationExecutor | undefined;\n }) =>\n Effect.gen(function* () {\n const publicClient = yield* publicClientService.get(params.chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) =>\n new Eip7702AuthorizationPreparationError({\n cause,\n chainId: params.chainId,\n message:\n cause instanceof Error ? cause.message : \"Failed to prepare EIP-7702 authorization\",\n }),\n try: (): Promise<Authorization<number>> =>\n prepareAuthorization(publicClient, {\n account: params.account,\n chainId: params.chainId,\n contractAddress: params.contractAddress,\n executor: params.executor ?? \"self\",\n }) as Promise<Authorization<number>>,\n });\n });\n\n const prepareAuthorizationWithNonceEffect = (params: {\n readonly chainId: number;\n readonly account: Address | Account;\n readonly contractAddress: Address;\n readonly executor?: Eip7702AuthorizationExecutor | undefined;\n readonly nonce?: number | undefined;\n }) =>\n Effect.gen(function* () {\n const publicClient = yield* publicClientService.get(params.chainId);\n\n return yield* Effect.tryPromise({\n catch: (cause) =>\n new Eip7702AuthorizationPreparationError({\n cause,\n chainId: params.chainId,\n message:\n cause instanceof Error ? cause.message : \"Failed to prepare EIP-7702 authorization\",\n }),\n try: (): Promise<Authorization<number>> =>\n prepareAuthorization(publicClient, {\n account: params.account,\n chainId: params.chainId,\n contractAddress: params.contractAddress,\n executor: params.executor ?? \"self\",\n nonce: params.nonce,\n }) as Promise<Authorization<number>>,\n });\n });\n\n const delegateAndExecuteBatch = (params: DelegateAndExecuteErc7579BatchParams) =>\n Effect.gen(function* () {\n const walletClient = yield* walletClientService.get(params.chainId);\n\n const account = params.account ?? walletClient.account;\n if (!account) {\n return yield* Effect.fail(\n new WalletNotConnectedError({\n chainId: params.chainId,\n message: \"No active account found. Provide `account` explicitly.\",\n })\n );\n }\n\n const txNonce = params.tx?.nonce;\n const authorizationNonce = txNonce !== undefined ? txNonce + 1 : undefined;\n\n const authorization = yield* prepareAuthorizationWithNonceEffect({\n account,\n chainId: params.chainId,\n contractAddress: params.delegation,\n executor: \"self\",\n nonce: authorizationNonce,\n });\n\n const authorizationSigned = yield* signAuthorizationIfSupported(account, authorization);\n\n const executions = params.calls.map((call) => ({\n callData: call.data,\n target: call.to,\n value: call.value ?? 0n,\n }));\n const executionCalldata = encodeErc7579BatchExecutionCalldata(executions);\n const data = encodeErc7579ExecuteCalldata({\n executionCalldata,\n mode: params.mode ?? ERC7579_MODE_SIMPLE_BATCH,\n });\n\n const to = accountAddress(account);\n\n return yield* Effect.tryPromise({\n catch: (cause) => mapSendEip7702TransactionCause(params.chainId, cause),\n try: () =>\n walletClient.sendTransaction({\n accessList: params.tx?.accessList,\n account,\n authorizationList: [authorizationSigned],\n chain: walletClient.chain ?? null,\n data,\n gas: params.tx?.gas,\n maxFeePerGas: params.tx?.maxFeePerGas,\n maxPriorityFeePerGas: params.tx?.maxPriorityFeePerGas,\n nonce: txNonce,\n to,\n type: \"eip7702\",\n }),\n });\n });\n\n const delegateAndExecuteBatchAndWait = (\n params: DelegateAndExecuteErc7579BatchParams & {\n readonly policy?: TxPolicy | undefined;\n }\n ) =>\n Effect.gen(function* () {\n const policy = params.policy ?? defaultPolicy;\n const hash = yield* delegateAndExecuteBatch(params);\n const receipt = yield* txManager.waitForReceipt(\n params.chainId,\n hash,\n policy.receiptTimeout\n );\n return { hash, receipt } as DelegateAndExecuteResult;\n });\n\n const approveAndExecute = (params: ApproveAndExecuteParams) => {\n const approveData = encodeFunctionData({\n abi: erc20Abi,\n args: [params.spender, params.amount],\n functionName: \"approve\",\n });\n\n return delegateAndExecuteBatch({\n account: params.account,\n calls: [{ data: approveData, to: params.token, value: 0n }, params.call],\n chainId: params.chainId,\n delegation: params.delegation,\n mode: params.mode,\n tx: params.tx,\n });\n };\n\n const approveAndExecuteAndWait = (\n params: ApproveAndExecuteParams & {\n readonly policy?: TxPolicy | undefined;\n }\n ) =>\n Effect.gen(function* () {\n const policy = params.policy ?? defaultPolicy;\n const hash = yield* approveAndExecute(params);\n const receipt = yield* txManager.waitForReceipt(\n params.chainId,\n hash,\n policy.receiptTimeout\n );\n return { hash, receipt } as DelegateAndExecuteResult;\n });\n\n return Eip7702Service.of({\n approveAndExecute,\n approveAndExecuteAndWait,\n delegateAndExecuteErc7579Batch: delegateAndExecuteBatch,\n delegateAndExecuteErc7579BatchAndWait: delegateAndExecuteBatchAndWait,\n prepareAuthorization: prepareAuthorizationEffect,\n });\n })\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ens.d.ts","sourceRoot":"","sources":["../../src/ens/ens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAK7B,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAQF,MAAM,MAAM,gBAAgB,GAAG;IAO7B,QAAQ,CAAC,UAAU,EAAE,CACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KACzB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;IAQ7F,QAAQ,CAAC,SAAS,EAAE,CAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;KAAE,KAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;IAO9F,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAChB,MAAM,EACN,2BAA2B,GAAG,kBAAkB,GAAG,mBAAmB,CACvE,CAAC;IAOF,QAAQ,CAAC,WAAW,EAAE,CACpB,IAAI,EAAE,MAAM,KACT,MAAM,CAAC,MAAM,CAChB,OAAO,EACP,6BAA6B,GAAG,kBAAkB,GAAG,mBAAmB,CACzE,CAAC;IAQF,QAAQ,CAAC,OAAO,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,KACR,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;CAC7F,CAAC;;AAEF,qBAAa,WAAY,SAAQ,gBAA+D;CAAG;AAOnG,eAAO,MAAM,eAAe,sDAgM3B,CAAC"}
1
+ {"version":3,"file":"ens.d.ts","sourceRoot":"","sources":["../../src/ens/ens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAG7B,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAQF,MAAM,MAAM,gBAAgB,GAAG;IAO7B,QAAQ,CAAC,UAAU,EAAE,CACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KACzB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;IAQ7F,QAAQ,CAAC,SAAS,EAAE,CAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;KAAE,KAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;IAO9F,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAChB,MAAM,EACN,2BAA2B,GAAG,kBAAkB,GAAG,mBAAmB,CACvE,CAAC;IAOF,QAAQ,CAAC,WAAW,EAAE,CACpB,IAAI,EAAE,MAAM,KACT,MAAM,CAAC,MAAM,CAChB,OAAO,EACP,6BAA6B,GAAG,kBAAkB,GAAG,mBAAmB,CACzE,CAAC;IAQF,QAAQ,CAAC,OAAO,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,KACR,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;CAC7F,CAAC;;AAEF,qBAAa,WAAY,SAAQ,gBAA+D;CAAG;AAOnG,eAAO,MAAM,eAAe,sDAgM3B,CAAC"}
package/dist/ens/ens.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
+ import { mainnet } from "viem/chains";
2
3
  import { normalize } from "viem/ens";
3
4
  import { PublicClientService } from "../core/index.js";
4
5
  import { EnsAvatarNotFoundError, EnsNameNotFoundError, EnsResolutionError, EnsResolverNotConfiguredError, EnsReverseNameNotFoundError, EnsTextNotFoundError, } from "../ens/errors.js";
5
6
  import { SpanNames } from "../telemetry/index.js";
6
- const MAINNET_CHAIN_ID = 1;
7
7
  export class EnsResolver extends Context.Tag("ew3/EnsResolver")() {
8
8
  }
9
9
  export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* () {
10
10
  const publicClientService = yield* PublicClientService;
11
11
  return EnsResolver.of({
12
12
  getAddress: (name, opts) => Effect.gen(function* () {
13
- const client = yield* publicClientService.get(MAINNET_CHAIN_ID);
13
+ const client = yield* publicClientService.get(mainnet.id);
14
14
  const normalizedName = normalize(name);
15
15
  const result = yield* Effect.tryPromise({
16
16
  catch: (cause) => new EnsResolutionError({
@@ -37,7 +37,7 @@ export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* ()
37
37
  },
38
38
  })),
39
39
  getAvatar: (name, opts) => Effect.gen(function* () {
40
- const client = yield* publicClientService.get(MAINNET_CHAIN_ID);
40
+ const client = yield* publicClientService.get(mainnet.id);
41
41
  const normalizedName = normalize(name);
42
42
  const result = yield* Effect.tryPromise({
43
43
  catch: (cause) => new EnsResolutionError({
@@ -63,7 +63,7 @@ export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* ()
63
63
  },
64
64
  })),
65
65
  getName: (address) => Effect.gen(function* () {
66
- const client = yield* publicClientService.get(MAINNET_CHAIN_ID);
66
+ const client = yield* publicClientService.get(mainnet.id);
67
67
  const result = yield* Effect.tryPromise({
68
68
  catch: (cause) => new EnsResolutionError({
69
69
  cause,
@@ -87,7 +87,7 @@ export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* ()
87
87
  },
88
88
  })),
89
89
  getResolver: (name) => Effect.gen(function* () {
90
- const client = yield* publicClientService.get(MAINNET_CHAIN_ID);
90
+ const client = yield* publicClientService.get(mainnet.id);
91
91
  const normalizedName = normalize(name);
92
92
  const result = yield* Effect.tryPromise({
93
93
  catch: (cause) => new EnsResolutionError({
@@ -112,7 +112,7 @@ export const EnsResolverLive = Layer.effect(EnsResolver, Effect.gen(function* ()
112
112
  },
113
113
  })),
114
114
  getText: (name, key) => Effect.gen(function* () {
115
- const client = yield* publicClientService.get(MAINNET_CHAIN_ID);
115
+ const client = yield* publicClientService.get(mainnet.id);
116
116
  const normalizedName = normalize(name);
117
117
  const result = yield* Effect.tryPromise({
118
118
  catch: (cause) => new EnsResolutionError({
@@ -1 +1 @@
1
- {"version":3,"file":"ens.js","sourceRoot":"","sources":["../../src/ens/ens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ens.js","sourceRoot":"","sources":["../../src/ens/ens.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport type { Address } from \"viem\";\nimport { mainnet } from \"viem/chains\";\nimport { normalize } from \"viem/ens\";\nimport type { ClientNotFoundError } from \"@/src/core/index.js\";\nimport { PublicClientService } from \"@/src/core/index.js\";\nimport {\n EnsAvatarNotFoundError,\n EnsNameNotFoundError,\n EnsResolutionError,\n EnsResolverNotConfiguredError,\n EnsReverseNameNotFoundError,\n EnsTextNotFoundError,\n} from \"@/src/ens/errors.js\";\nimport { SpanNames } from \"@/src/telemetry/index.js\";\n\ntype AssetGatewayUrls = {\n arweave?: string;\n ipfs?: string;\n};\n\n/**\n * Service for ENS (Ethereum Name Service) resolution\n *\n * All operations target Ethereum mainnet (chainId=1) since ENS\n * primarily lives there. Names are automatically normalized.\n */\nexport type EnsResolverShape = {\n /**\n * Resolve an ENS name to an address\n *\n * @param name - The ENS name to resolve (e.g., \"vitalik.eth\")\n * @param opts.coinType - Optional ENSIP-19 coinType for cross-chain resolution\n */\n readonly getAddress: (\n name: string,\n opts?: { coinType?: bigint }\n ) => Effect.Effect<Address, EnsNameNotFoundError | EnsResolutionError | ClientNotFoundError>;\n\n /**\n * Get the avatar URL for an ENS name\n *\n * @param name - The ENS name to get avatar for\n * @param opts.assetGatewayUrls - Optional gateway URLs for IPFS/Arweave\n */\n readonly getAvatar: (\n name: string,\n opts?: { assetGatewayUrls?: AssetGatewayUrls }\n ) => Effect.Effect<string, EnsAvatarNotFoundError | EnsResolutionError | ClientNotFoundError>;\n\n /**\n * Reverse resolve an address to its primary ENS name\n *\n * @param address - The address to resolve\n */\n readonly getName: (\n address: Address\n ) => Effect.Effect<\n string,\n EnsReverseNameNotFoundError | EnsResolutionError | ClientNotFoundError\n >;\n\n /**\n * Get the resolver contract address for an ENS name\n *\n * @param name - The ENS name to get resolver for\n */\n readonly getResolver: (\n name: string\n ) => Effect.Effect<\n Address,\n EnsResolverNotConfiguredError | EnsResolutionError | ClientNotFoundError\n >;\n\n /**\n * Get a text record for an ENS name\n *\n * @param name - The ENS name to query\n * @param key - The text record key (e.g., \"com.twitter\", \"url\", \"description\")\n */\n readonly getText: (\n name: string,\n key: string\n ) => Effect.Effect<string, EnsTextNotFoundError | EnsResolutionError | ClientNotFoundError>;\n};\n\nexport class EnsResolver extends Context.Tag(\"ew3/EnsResolver\")<EnsResolver, EnsResolverShape>() {}\n\n/**\n * Live implementation of EnsResolver service\n *\n * Requires PublicClientService with mainnet (chainId=1) configured\n */\nexport const EnsResolverLive = Layer.effect(\n EnsResolver,\n Effect.gen(function* () {\n const publicClientService = yield* PublicClientService;\n\n return EnsResolver.of({\n getAddress: (name: string, opts?: { coinType?: bigint }) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n const normalizedName = normalize(name);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to resolve ENS name: ${String(cause)}`,\n name: normalizedName,\n }),\n try: () =>\n client.getEnsAddress({\n coinType: opts?.coinType,\n name: normalizedName,\n }),\n });\n\n if (result === null) {\n return yield* Effect.fail(\n new EnsNameNotFoundError({\n message: `No address found for ENS name \"${normalizedName}\"`,\n name: normalizedName,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_ADDRESS, {\n attributes: {\n coinType: opts?.coinType?.toString(),\n name,\n },\n })\n ),\n\n getAvatar: (name: string, opts?: { assetGatewayUrls?: AssetGatewayUrls }) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n const normalizedName = normalize(name);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to get ENS avatar: ${String(cause)}`,\n name: normalizedName,\n }),\n try: () =>\n client.getEnsAvatar({\n assetGatewayUrls: opts?.assetGatewayUrls,\n name: normalizedName,\n }),\n });\n\n if (result === null) {\n return yield* Effect.fail(\n new EnsAvatarNotFoundError({\n message: `No avatar found for ENS name \"${normalizedName}\"`,\n name: normalizedName,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_AVATAR, {\n attributes: {\n name,\n },\n })\n ),\n\n getName: (address: Address) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to reverse resolve address: ${String(cause)}`,\n name: address,\n }),\n try: () =>\n client.getEnsName({\n address,\n }),\n });\n\n if (result === null) {\n return yield* Effect.fail(\n new EnsReverseNameNotFoundError({\n address,\n message: `No ENS name found for address \"${address}\"`,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_NAME, {\n attributes: {\n address,\n },\n })\n ),\n\n getResolver: (name: string) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n const normalizedName = normalize(name);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to get ENS resolver: ${String(cause)}`,\n name: normalizedName,\n }),\n try: () =>\n client.getEnsResolver({\n name: normalizedName,\n }),\n });\n\n if (result === null || result === \"0x0000000000000000000000000000000000000000\") {\n return yield* Effect.fail(\n new EnsResolverNotConfiguredError({\n message: `No resolver configured for ENS name \"${normalizedName}\"`,\n name: normalizedName,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_RESOLVER, {\n attributes: {\n name,\n },\n })\n ),\n\n getText: (name: string, key: string) =>\n Effect.gen(function* () {\n const client = yield* publicClientService.get(mainnet.id);\n const normalizedName = normalize(name);\n\n const result = yield* Effect.tryPromise({\n catch: (cause) =>\n new EnsResolutionError({\n cause,\n message: `Failed to get ENS text record: ${String(cause)}`,\n name: normalizedName,\n }),\n try: () =>\n client.getEnsText({\n key,\n name: normalizedName,\n }),\n });\n\n if (result === null) {\n return yield* Effect.fail(\n new EnsTextNotFoundError({\n key,\n message: `No text record \"${key}\" found for ENS name \"${normalizedName}\"`,\n name: normalizedName,\n })\n );\n }\n\n return result;\n }).pipe(\n Effect.withSpan(SpanNames.ENS_GET_TEXT, {\n attributes: {\n key,\n name,\n },\n })\n ),\n });\n })\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ens/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAClF,sBAAsB,EACtB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,2BAA4B,SAAQ,MAAM,CAAC,WAAW,EAA+B,CAChG,6BAA6B,EAC7B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAClF,sBAAsB,EACtB;IACE,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC,WAAW,EAA0B,CACtF,wBAAwB,EACxB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,EAAiC,CACpG,+BAA+B,EAC/B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ens/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAClF,sBAAsB,EACtB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,2BAA4B,SAAQ,MAAM,CAAC,WAAW,EAA+B,CAChG,6BAA6B,EAC7B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAClF,sBAAsB,EACtB;IACE,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC,WAAW,EAA0B,CACtF,wBAAwB,EACxB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,EAAiC,CACpG,+BAA+B,EAC/B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG;AAEJ,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CACF;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\nexport class EnsNameNotFoundError extends Schema.TaggedError<EnsNameNotFoundError>()(\n \"EnsNameNotFoundError\",\n {\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n\nexport class EnsReverseNameNotFoundError extends Schema.TaggedError<EnsReverseNameNotFoundError>()(\n \"EnsReverseNameNotFoundError\",\n {\n address: Schema.String,\n message: Schema.String,\n }\n) {}\n\nexport class EnsTextNotFoundError extends Schema.TaggedError<EnsTextNotFoundError>()(\n \"EnsTextNotFoundError\",\n {\n key: Schema.String,\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n\nexport class EnsAvatarNotFoundError extends Schema.TaggedError<EnsAvatarNotFoundError>()(\n \"EnsAvatarNotFoundError\",\n {\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n\nexport class EnsResolverNotConfiguredError extends Schema.TaggedError<EnsResolverNotConfiguredError>()(\n \"EnsResolverNotConfiguredError\",\n {\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n\nexport class EnsResolutionError extends Schema.TaggedError<EnsResolutionError>()(\n \"EnsResolutionError\",\n {\n cause: Schema.optional(Schema.Unknown),\n message: Schema.String,\n name: Schema.String,\n }\n) {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ens/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ens/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./ens.js\";\nexport * from \"./errors.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/erc20/allowance/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/erc20/allowance/core.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport { erc20Abi, maxUint256 } from \"viem\";\nimport { ContractReader, ContractWriter } from \"@/src/contract/index.js\";\nimport type {\n ClientNotFoundError,\n InsufficientFundsError,\n UserRejectedError,\n} from \"@/src/core/index.js\";\nimport { ApprovalCheckError, ApprovalError } from \"@/src/core/index.js\";\nimport type {\n ApproveParams,\n CheckAllowanceParams,\n EnsureAllowanceParams,\n Erc20AllowanceServiceShape,\n} from \"@/src/erc20/allowance/index.js\";\n\nexport class Erc20AllowanceService extends Context.Tag(\"ew3/Erc20AllowanceService\")<\n Erc20AllowanceService,\n Erc20AllowanceServiceShape\n>() {}\n\nexport const Erc20AllowanceServiceLive = Layer.effect(\n Erc20AllowanceService,\n Effect.gen(function* () {\n const reader = yield* ContractReader;\n const writer = yield* ContractWriter;\n\n const approve = Effect.fn(\"approve\")(function* (params: ApproveParams) {\n const writeParams = {\n abi: erc20Abi,\n account: params.account,\n address: params.tokenAddress,\n args: [params.spender, params.amount] as const,\n chainId: params.chainId,\n functionName: \"approve\" as const,\n };\n\n yield* writer.simulate(writeParams).pipe(\n Effect.mapError(\n (e): ApprovalError | ClientNotFoundError | InsufficientFundsError | UserRejectedError => {\n if (\n e._tag === \"ClientNotFoundError\" ||\n e._tag === \"InsufficientFundsError\" ||\n e._tag === \"UserRejectedError\"\n ) {\n return e;\n }\n return new ApprovalError({\n cause: e,\n message: `Approval simulation failed: ${String(e.message)}`,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n }\n )\n );\n\n return yield* writer.write(writeParams);\n });\n\n const checkAllowance = Effect.fn(\"checkAllowance\")(function* (params: CheckAllowanceParams) {\n const result = yield* reader\n .read({\n abi: erc20Abi,\n address: params.tokenAddress,\n args: [params.owner, params.spender] as const,\n chainId: params.chainId,\n functionName: \"allowance\",\n })\n .pipe(\n Effect.mapError((e): ApprovalCheckError | ClientNotFoundError => {\n if (e._tag === \"ClientNotFoundError\") {\n return e;\n }\n return new ApprovalCheckError({\n cause: e,\n message: `Failed to check allowance: ${String(e.message)}`,\n owner: params.owner,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n })\n );\n\n return result as bigint;\n });\n\n const ensureAllowance = Effect.fn(\"ensureAllowance\")(function* (params: EnsureAllowanceParams) {\n if (params.required <= 0n) {\n return { currentAllowance: 0n, status: \"already-sufficient\" } as const;\n }\n\n const currentAllowance = yield* checkAllowance({\n chainId: params.chainId,\n owner: params.account,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n if (currentAllowance >= params.required) {\n return { currentAllowance, status: \"already-sufficient\" } as const;\n }\n\n const approveAmount = params.approveAmount ?? params.required;\n const zeroFirst = params.zeroFirst ?? true;\n\n const direct = approve({\n account: params.account,\n amount: approveAmount,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n }).pipe(Effect.either);\n\n const directResult = yield* direct;\n if (directResult._tag === \"Right\") {\n return {\n approveAmount,\n currentAllowance,\n hashes: [directResult.right],\n mode: \"direct\",\n status: \"approved\",\n } as const;\n }\n\n if (!zeroFirst || currentAllowance === 0n) {\n return yield* Effect.fail(directResult.left);\n }\n\n const resetHash = yield* approve({\n account: params.account,\n amount: 0n,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n const approveHash = yield* approve({\n account: params.account,\n amount: approveAmount,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n return {\n approveAmount,\n currentAllowance,\n hashes: [resetHash, approveHash],\n mode: \"zero-first\",\n status: \"approved\",\n } as const;\n });\n\n return Erc20AllowanceService.of({\n approve,\n\n checkAllowance,\n\n ensureAllowance,\n\n getMaxAmount: (_decimals: number) => maxUint256,\n });\n })\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/erc20/allowance/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/erc20/allowance/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC","sourcesContent":["export * from \"./core.js\";\nexport * from \"./no-output.js\";\nexport * from \"./types.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"no-output.js","sourceRoot":"","sources":["../../../src/erc20/allowance/no-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAMzE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQxE,MAAM,OAAO,6BAA8B,SAAQ,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,EAGhG;CAAG;AAEN,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC,MAAM,CAC3D,6BAA6B,EAC7B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IAErC,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAqB;QACnE,MAAM,WAAW,GAAG;YAClB,GAAG,EAAE,gBAAgB;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAU;YAC9C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,SAAkB;SACjC,CAAC;QAEF,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CACtC,MAAM,CAAC,QAAQ,CACb,CAAC,CAAC,EAAoF,EAAE;YACtF,IACE,CAAC,CAAC,IAAI,KAAK,qBAAqB;gBAChC,CAAC,CAAC,IAAI,KAAK,wBAAwB;gBACnC,CAAC,CAAC,IAAI,KAAK,mBAAmB,EAC9B,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,IAAI,aAAa,CAAC;gBACvB,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,+BAA+B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;gBAC3D,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC,CAAC;QACL,CAAC,CACF,CACF,CAAC;QAEF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,EAAE,MAA4B;QACxF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM;aACzB,IAAI,CAAC;YACJ,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAU;YAC7C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,WAAW;SAC1B,CAAC;aACD,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAA4C,EAAE;YAC9D,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACrC,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,IAAI,kBAAkB,CAAC;gBAC5B,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,8BAA8B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;gBAC1D,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QAEJ,OAAO,MAAgB,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,MAA6B;QAC3F,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC1B,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAW,CAAC;QACzE,CAAC;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YAC7C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,OAAO;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;QAEH,IAAI,gBAAgB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAW,CAAC;QACrE,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;QAE3C,MAAM,MAAM,GAAG,OAAO,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEvB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QACnC,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClC,OAAO;gBACL,aAAa;gBACb,gBAAgB;gBAChB,MAAM,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;gBAC5B,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;aACV,CAAC;QACb,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,gBAAgB,KAAK,EAAE,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;QAEH,OAAO;YACL,aAAa;YACb,gBAAgB;YAChB,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;YAChC,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,UAAU;SACV,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,6BAA6B,CAAC,EAAE,CAAC;QACtC,OAAO;QAEP,cAAc;QAEd,eAAe;QAEf,YAAY,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,UAAU;KAChD,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"no-output.js","sourceRoot":"","sources":["../../../src/erc20/allowance/no-output.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport { erc20Abi, maxUint256 } from \"viem\";\nimport { erc20NoOutputAbi } from \"@/src/abi/index.js\";\nimport { ContractReader, ContractWriter } from \"@/src/contract/index.js\";\nimport type {\n ClientNotFoundError,\n InsufficientFundsError,\n UserRejectedError,\n} from \"@/src/core/index.js\";\nimport { ApprovalCheckError, ApprovalError } from \"@/src/core/index.js\";\nimport type {\n ApproveParams,\n CheckAllowanceParams,\n EnsureAllowanceParams,\n Erc20AllowanceServiceShape,\n} from \"@/src/erc20/allowance/index.js\";\n\nexport class Erc20NoOutputAllowanceService extends Context.Tag(\"ew3/Erc20NoOutputAllowanceService\")<\n Erc20NoOutputAllowanceService,\n Erc20AllowanceServiceShape\n>() {}\n\nexport const Erc20NoOutputAllowanceServiceLive = Layer.effect(\n Erc20NoOutputAllowanceService,\n Effect.gen(function* () {\n const reader = yield* ContractReader;\n const writer = yield* ContractWriter;\n\n const approve = Effect.fn(\"approve\")(function* (params: ApproveParams) {\n const writeParams = {\n abi: erc20NoOutputAbi,\n account: params.account,\n address: params.tokenAddress,\n args: [params.spender, params.amount] as const,\n chainId: params.chainId,\n functionName: \"approve\" as const,\n };\n\n yield* writer.simulate(writeParams).pipe(\n Effect.mapError(\n (e): ApprovalError | ClientNotFoundError | InsufficientFundsError | UserRejectedError => {\n if (\n e._tag === \"ClientNotFoundError\" ||\n e._tag === \"InsufficientFundsError\" ||\n e._tag === \"UserRejectedError\"\n ) {\n return e;\n }\n return new ApprovalError({\n cause: e,\n message: `Approval simulation failed: ${String(e.message)}`,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n }\n )\n );\n\n return yield* writer.write(writeParams);\n });\n\n const checkAllowance = Effect.fn(\"checkAllowance\")(function* (params: CheckAllowanceParams) {\n const result = yield* reader\n .read({\n abi: erc20Abi,\n address: params.tokenAddress,\n args: [params.owner, params.spender] as const,\n chainId: params.chainId,\n functionName: \"allowance\",\n })\n .pipe(\n Effect.mapError((e): ApprovalCheckError | ClientNotFoundError => {\n if (e._tag === \"ClientNotFoundError\") {\n return e;\n }\n return new ApprovalCheckError({\n cause: e,\n message: `Failed to check allowance: ${String(e.message)}`,\n owner: params.owner,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n })\n );\n\n return result as bigint;\n });\n\n const ensureAllowance = Effect.fn(\"ensureAllowance\")(function* (params: EnsureAllowanceParams) {\n if (params.required <= 0n) {\n return { currentAllowance: 0n, status: \"already-sufficient\" } as const;\n }\n\n const currentAllowance = yield* checkAllowance({\n chainId: params.chainId,\n owner: params.account,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n if (currentAllowance >= params.required) {\n return { currentAllowance, status: \"already-sufficient\" } as const;\n }\n\n const approveAmount = params.approveAmount ?? params.required;\n const zeroFirst = params.zeroFirst ?? true;\n\n const direct = approve({\n account: params.account,\n amount: approveAmount,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n }).pipe(Effect.either);\n\n const directResult = yield* direct;\n if (directResult._tag === \"Right\") {\n return {\n approveAmount,\n currentAllowance,\n hashes: [directResult.right],\n mode: \"direct\",\n status: \"approved\",\n } as const;\n }\n\n if (!zeroFirst || currentAllowance === 0n) {\n return yield* Effect.fail(directResult.left);\n }\n\n const resetHash = yield* approve({\n account: params.account,\n amount: 0n,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n const approveHash = yield* approve({\n account: params.account,\n amount: approveAmount,\n chainId: params.chainId,\n spender: params.spender,\n tokenAddress: params.tokenAddress,\n });\n\n return {\n approveAmount,\n currentAllowance,\n hashes: [resetHash, approveHash],\n mode: \"zero-first\",\n status: \"approved\",\n } as const;\n });\n\n return Erc20NoOutputAllowanceService.of({\n approve,\n\n checkAllowance,\n\n ensureAllowance,\n\n getMaxAmount: (_decimals: number) => maxUint256,\n });\n })\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/erc20/allowance/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/erc20/allowance/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Effect } from \"effect\";\nimport type { Address, Hash } from \"viem\";\nimport type {\n ApprovalCheckError,\n ApprovalError,\n ClientNotFoundError,\n ContractWriteError,\n InsufficientFundsError,\n UserRejectedError,\n WalletNotConnectedError,\n WrongNetworkError,\n} from \"@/src/core/index.js\";\n\nexport type CheckAllowanceParams = {\n readonly chainId: number;\n readonly owner: Address;\n readonly spender: Address;\n readonly tokenAddress: Address;\n};\n\nexport type ApproveParams = {\n readonly account: Address;\n readonly amount: bigint;\n readonly chainId: number;\n readonly spender: Address;\n readonly tokenAddress: Address;\n};\n\nexport type EnsureAllowanceParams = {\n readonly account: Address;\n readonly chainId: number;\n readonly required: bigint;\n readonly spender: Address;\n readonly tokenAddress: Address;\n /**\n * Amount to approve if allowance is insufficient.\n *\n * If omitted, defaults to `required`.\n */\n readonly approveAmount?: bigint | undefined;\n /**\n * If `true` (default), when current allowance is non-zero and a direct approve fails,\n * retry with `approve(0)` then `approve(approveAmount)`.\n */\n readonly zeroFirst?: boolean | undefined;\n};\n\nexport type EnsureAllowanceResult =\n | {\n readonly status: \"already-sufficient\";\n readonly currentAllowance: bigint;\n }\n | {\n readonly status: \"approved\";\n readonly approveAmount: bigint;\n readonly currentAllowance: bigint;\n readonly hashes: readonly Hash[];\n readonly mode: \"direct\" | \"zero-first\";\n };\n\nexport type Erc20AllowanceServiceShape = {\n readonly checkAllowance: (\n params: CheckAllowanceParams\n ) => Effect.Effect<bigint, ApprovalCheckError | ClientNotFoundError>;\n\n readonly approve: (\n params: ApproveParams\n ) => Effect.Effect<\n Hash,\n | ApprovalError\n | ClientNotFoundError\n | ContractWriteError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n >;\n\n readonly ensureAllowance: (\n params: EnsureAllowanceParams\n ) => Effect.Effect<\n EnsureAllowanceResult,\n | ApprovalCheckError\n | ApprovalError\n | ClientNotFoundError\n | ContractWriteError\n | InsufficientFundsError\n | UserRejectedError\n | WalletNotConnectedError\n | WrongNetworkError\n >;\n\n /**\n * Maximum approval value recommended by this implementation.\n *\n * For standard tokens this is `uint256.max`; for \"bit-96\" tokens this is `uint96.max`.\n * The `decimals` parameter is accepted for API symmetry with app-level workflows.\n */\n readonly getMaxAmount: (decimals: number) => bigint;\n};\n"]}
@@ -1,2 +1,3 @@
1
1
  export * from "./allowance/index.js";
2
+ export * from "./metadata.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/erc20/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/erc20/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./allowance/index.js";
2
+ export * from "./metadata.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc20/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc20/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC","sourcesContent":["export * from \"./allowance/index.js\";\nexport * from \"./metadata.js\";\n"]}
@@ -0,0 +1,16 @@
1
+ import { Effect } from "effect";
2
+ import type { Address } from "viem";
3
+ import { ContractReader } from "../contract/index.js";
4
+ import type { ClientNotFoundError, MulticallError } from "../core/index.js";
5
+ export type Erc20Metadata = {
6
+ address: Address;
7
+ chainId: number;
8
+ decimals: number;
9
+ name?: string;
10
+ symbol?: string;
11
+ };
12
+ export declare function readErc20Metadata(params: {
13
+ chainId: number;
14
+ tokenAddress: Address;
15
+ }): Effect.Effect<Erc20Metadata, MulticallError | ClientNotFoundError, ContractReader>;
16
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/erc20/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG/E,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAKF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,GAAG,mBAAmB,EAAE,cAAc,CAAC,CAgErF"}
@@ -0,0 +1,67 @@
1
+ import { Effect } from "effect";
2
+ import { erc20Abi, erc20Abi_bytes32 } from "../abi/index.js";
3
+ import { decodeBytes32String } from "../balance/index.js";
4
+ import { ContractReader } from "../contract/index.js";
5
+ export function readErc20Metadata(params) {
6
+ return Effect.gen(function* () {
7
+ const reader = yield* ContractReader;
8
+ const results = yield* reader.multicall(params.chainId, [
9
+ {
10
+ abi: erc20Abi,
11
+ address: params.tokenAddress,
12
+ functionName: "decimals",
13
+ },
14
+ {
15
+ abi: erc20Abi,
16
+ address: params.tokenAddress,
17
+ functionName: "name",
18
+ },
19
+ {
20
+ abi: erc20Abi,
21
+ address: params.tokenAddress,
22
+ functionName: "symbol",
23
+ },
24
+ {
25
+ abi: erc20Abi_bytes32,
26
+ address: params.tokenAddress,
27
+ functionName: "name",
28
+ },
29
+ {
30
+ abi: erc20Abi_bytes32,
31
+ address: params.tokenAddress,
32
+ functionName: "symbol",
33
+ },
34
+ ]);
35
+ const [decimalsResult, nameResult, symbolResult, nameBytes32Result, symbolBytes32Result] = results;
36
+ const decimals = (() => {
37
+ if (decimalsResult.status !== "success") {
38
+ return 18;
39
+ }
40
+ const value = typeof decimalsResult.result === "bigint"
41
+ ? Number(decimalsResult.result)
42
+ : decimalsResult.result;
43
+ return Number.isSafeInteger(value) && value >= 0 && value <= 255 ? value : 18;
44
+ })();
45
+ const name = extractStringOrBytes32(nameResult, nameBytes32Result);
46
+ const symbol = extractStringOrBytes32(symbolResult, symbolBytes32Result);
47
+ return {
48
+ address: params.tokenAddress,
49
+ chainId: params.chainId,
50
+ decimals,
51
+ name,
52
+ symbol,
53
+ };
54
+ });
55
+ }
56
+ function extractStringOrBytes32(stringResult, bytes32Result) {
57
+ const normalized = stringResult.status === "success" ? normalizeString(stringResult.result) : undefined;
58
+ if (normalized) {
59
+ return normalized;
60
+ }
61
+ return bytes32Result.status === "success" ? decodeBytes32String(bytes32Result.result) : undefined;
62
+ }
63
+ function normalizeString(value) {
64
+ const trimmed = value.trim();
65
+ return trimmed.length > 0 ? trimmed : undefined;
66
+ }
67
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/erc20/metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect } from \"effect\";\nimport type { Address, Hex } from \"viem\";\nimport { erc20Abi, erc20Abi_bytes32 } from \"@/src/abi/index.js\";\nimport { decodeBytes32String } from \"@/src/balance/index.js\";\nimport { ContractReader } from \"@/src/contract/index.js\";\nimport type { ClientNotFoundError, MulticallError } from \"@/src/core/index.js\";\nimport type { MulticallResult } from \"@/src/types/index.js\";\n\nexport type Erc20Metadata = {\n address: Address;\n chainId: number;\n decimals: number;\n name?: string;\n symbol?: string;\n};\n\n/**\n * Read ERC-20 token metadata (decimals, name, symbol) with bytes32 fallbacks.\n */\nexport function readErc20Metadata(params: {\n chainId: number;\n tokenAddress: Address;\n}): Effect.Effect<Erc20Metadata, MulticallError | ClientNotFoundError, ContractReader> {\n return Effect.gen(function* () {\n const reader = yield* ContractReader;\n const results = yield* reader.multicall(params.chainId, [\n {\n abi: erc20Abi,\n address: params.tokenAddress,\n functionName: \"decimals\",\n },\n {\n abi: erc20Abi,\n address: params.tokenAddress,\n functionName: \"name\",\n },\n {\n abi: erc20Abi,\n address: params.tokenAddress,\n functionName: \"symbol\",\n },\n {\n abi: erc20Abi_bytes32,\n address: params.tokenAddress,\n functionName: \"name\",\n },\n {\n abi: erc20Abi_bytes32,\n address: params.tokenAddress,\n functionName: \"symbol\",\n },\n ] as const);\n\n const [decimalsResult, nameResult, symbolResult, nameBytes32Result, symbolBytes32Result] =\n results;\n\n const decimals = (() => {\n if (decimalsResult.status !== \"success\") {\n return 18;\n }\n\n const value =\n typeof decimalsResult.result === \"bigint\"\n ? Number(decimalsResult.result)\n : decimalsResult.result;\n\n return Number.isSafeInteger(value) && value >= 0 && value <= 255 ? value : 18;\n })();\n\n const name = extractStringOrBytes32(\n nameResult as MulticallResult<string>,\n nameBytes32Result as MulticallResult<Hex>\n );\n const symbol = extractStringOrBytes32(\n symbolResult as MulticallResult<string>,\n symbolBytes32Result as MulticallResult<Hex>\n );\n\n return {\n address: params.tokenAddress,\n chainId: params.chainId,\n decimals,\n name,\n symbol,\n };\n });\n}\n\nfunction extractStringOrBytes32(\n stringResult: MulticallResult<string>,\n bytes32Result: MulticallResult<Hex>\n): string | undefined {\n const normalized =\n stringResult.status === \"success\" ? normalizeString(stringResult.result) : undefined;\n if (normalized) {\n return normalized;\n }\n\n return bytes32Result.status === \"success\" ? decodeBytes32String(bytes32Result.result) : undefined;\n}\n\nfunction normalizeString(value: string): string | undefined {\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/erc721/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG;AAEJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG;AAEJ,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;IAC9B,GAAG,EAAE,MAAM,CAAC,MAAM;CACnB,CACF;CAAG;AAEJ,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,WAAW,EAAuB,CAChF,qBAAqB,EACrB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/erc721/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG;AAEJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG;AAEJ,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,cAAc;IAC9B,GAAG,EAAE,MAAM,CAAC,MAAM;CACnB,CACF;CAAG;AAEJ,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,WAAW,EAAuB,CAChF,qBAAqB,EACrB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CACF;CAAG","sourcesContent":["import { Schema } from \"effect\";\n\nexport class Erc721OwnerNotFoundError extends Schema.TaggedError<Erc721OwnerNotFoundError>()(\n \"Erc721OwnerNotFoundError\",\n {\n address: Schema.String,\n chainId: Schema.Number,\n message: Schema.String,\n tokenId: Schema.BigIntFromSelf,\n }\n) {}\n\nexport class Erc721NoTokenURIError extends Schema.TaggedError<Erc721NoTokenURIError>()(\n \"Erc721NoTokenURIError\",\n {\n address: Schema.String,\n chainId: Schema.Number,\n message: Schema.String,\n tokenId: Schema.BigIntFromSelf,\n }\n) {}\n\nexport class Erc721MetadataFetchError extends Schema.TaggedError<Erc721MetadataFetchError>()(\n \"Erc721MetadataFetchError\",\n {\n address: Schema.String,\n cause: Schema.optional(Schema.Unknown),\n chainId: Schema.Number,\n message: Schema.String,\n tokenId: Schema.BigIntFromSelf,\n uri: Schema.String,\n }\n) {}\n\nexport class Erc721TransferError extends Schema.TaggedError<Erc721TransferError>()(\n \"Erc721TransferError\",\n {\n address: Schema.String,\n cause: Schema.optional(Schema.Unknown),\n from: Schema.String,\n message: Schema.String,\n to: Schema.String,\n tokenId: Schema.BigIntFromSelf,\n }\n) {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/erc721/helpers.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK7F,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,mBAA6C,EAC7C,MAMC,EACgD,EAAE,CACnD,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAC/D,cAAc,CACZ,GAAG,EAAE,CACH,MAAM,CAAC,YAAY,CAAC;IAClB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAa;IAC1B,YAAY,EAAE,MAAM,CAAC,YAAqB;CAC3C,CAAqB,EACxB,MAAM,CAAC,YAAY,CACpB,CACF,CAAC;AAKJ,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,mBAA6C,EAC7C,MAOC,EACqE,EAAE,CACxE,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,EAAE,CACrE,cAAc,CACZ,GAAG,EAAE,CACH,YAAY,CAAC,aAAa,CAAC;IACzB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAa;IAC1B,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,IAAI;IACjC,YAAY,EAAE,MAAM,CAAC,YAAqB;CAC3C,CAAC,EACJ,MAAM,CAAC,YAAY,CACpB,CACF,CAAC;AAKJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,YAA0B,EAC1B,MAA8C,EAC9C,YAA0D,EACT,EAAE;IACnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/erc721/helpers.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK7F,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,mBAA6C,EAC7C,MAMC,EACgD,EAAE,CACnD,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAC/D,cAAc,CACZ,GAAG,EAAE,CACH,MAAM,CAAC,YAAY,CAAC;IAClB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAa;IAC1B,YAAY,EAAE,MAAM,CAAC,YAAqB;CAC3C,CAAqB,EACxB,MAAM,CAAC,YAAY,CACpB,CACF,CAAC;AAKJ,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,mBAA6C,EAC7C,MAOC,EACqE,EAAE,CACxE,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,EAAE,CACrE,cAAc,CACZ,GAAG,EAAE,CACH,YAAY,CAAC,aAAa,CAAC;IACzB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAa;IAC1B,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,IAAI;IACjC,YAAY,EAAE,MAAM,CAAC,YAAqB;CAC3C,CAAC,EACJ,MAAM,CAAC,YAAY,CACpB,CACF,CAAC;AAKJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,YAA0B,EAC1B,MAA8C,EAC9C,YAA0D,EACT,EAAE;IACnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC","sourcesContent":["/**\n * Internal helpers for ERC-721 service operations.\n * These reduce boilerplate by combining client retrieval with contract operations.\n *\n * Note: Uses type assertions internally because viem's strict ABI typing\n * doesn't allow generic function names/args at compile time.\n */\n\nimport { Effect } from \"effect\";\nimport type { Address, Hash, WalletClient } from \"viem\";\nimport { erc721Abi } from \"@/src/abi/index.js\";\nimport type {\n PublicClientServiceShape,\n WalletClientServiceShape,\n} from \"@/src/core/clients/index.js\";\nimport type {\n ClientNotFoundError,\n WalletNotConnectedError,\n WrongNetworkError,\n} from \"@/src/core/errors/index.js\";\nimport { viemTryPromise, withPublicClient, withWalletClient } from \"@/src/internal/index.js\";\n\n/**\n * Read from an ERC-721 contract with automatic client retrieval and error handling.\n */\nexport const readErc721 = <TResult, E>(\n publicClientService: PublicClientServiceShape,\n params: {\n address: Address;\n args?: readonly unknown[];\n chainId: number;\n errorFactory: (cause: unknown) => E;\n functionName: string;\n }\n): Effect.Effect<TResult, E | ClientNotFoundError> =>\n withPublicClient(publicClientService, params.chainId, (client) =>\n viemTryPromise(\n () =>\n client.readContract({\n abi: erc721Abi,\n address: params.address,\n args: params.args as never,\n functionName: params.functionName as never,\n }) as Promise<TResult>,\n params.errorFactory\n )\n );\n\n/**\n * Write to an ERC-721 contract with automatic client retrieval and error handling.\n */\nexport const writeErc721 = <E>(\n walletClientService: WalletClientServiceShape,\n params: {\n account: Address;\n address: Address;\n args: readonly unknown[];\n chainId: number;\n errorFactory: (cause: unknown) => E;\n functionName: string;\n }\n): Effect.Effect<Hash, E | WalletNotConnectedError | WrongNetworkError> =>\n withWalletClient(walletClientService, params.chainId, (walletClient) =>\n viemTryPromise(\n () =>\n walletClient.writeContract({\n abi: erc721Abi,\n account: params.account,\n address: params.address,\n args: params.args as never,\n chain: walletClient.chain ?? null,\n functionName: params.functionName as never,\n }),\n params.errorFactory\n )\n );\n\n/**\n * Helper to resolve account from wallet client or explicit param.\n */\nexport const resolveAccount = (\n walletClient: WalletClient,\n params: { account?: Address; chainId: number },\n errorFactory: (chainId: number) => WalletNotConnectedError\n): Effect.Effect<Address, WalletNotConnectedError> => {\n if (params.account) {\n return Effect.succeed(params.account);\n }\n const account = walletClient.account?.address;\n if (account) {\n return Effect.succeed(account);\n }\n return Effect.fail(errorFactory(params.chainId));\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc721/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc721/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./errors.js\";\nexport * from \"./metadata.js\";\nexport * from \"./service.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/erc721/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/erc721/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAqBlE,MAAM,uBAAuB,GAAG,sCAAsC,CAAC;AACvE,MAAM,sBAAsB,GAAG,+BAA+B,CAAC;AAE/D,MAAM,gBAAgB,GAAkB;IACtC,OAAO,EAAE,sBAAsB;IAC/B,IAAI,EAAE,uBAAuB;CAC9B,CAAC;AAKF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,QAAwB,EAAU,EAAE;IAC1E,MAAM,MAAM,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,QAAQ,EAAE,CAAC;IAGpD,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;IACjC,CAAC;IAGD,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;IACpC,CAAC;IAGD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,GAAW,EACX,MAKC,EACqD,EAAE,CACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAElB,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;QAC5C,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAC;QACrE,CAAC;IACH,CAAC;IAGD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAGrD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,wBAAwB,CAAC;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,6BAA6B,MAAM,CAAC,KAAK,CAAC,EAAE;YACrD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,WAAW;SACjB,CAAC;QACJ,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,wBAAwB,CAAC;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE;YAC1D,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,WAAW;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,wBAAwB,CAAC;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,kCAAkC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC1D,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,WAAW;SACjB,CAAC;QACJ,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAA0B;KACnD,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC,CAAC","sourcesContent":["import { Effect } from \"effect\";\nimport { Erc721MetadataFetchError } from \"@/src/erc721/errors.js\";\n\nexport type NftMetadata = {\n animation_url?: string;\n attributes?: Array<{\n display_type?: string;\n trait_type: string;\n value: number | string;\n }>;\n description?: string;\n external_url?: string;\n image?: string;\n name?: string;\n [key: string]: unknown;\n};\n\ntype GatewayConfig = {\n arweave?: string;\n ipfs?: string;\n};\n\nconst DATA_URI_BASE64_JSON_RE = /^data:application\\/json;base64,(.+)$/;\nconst DATA_URI_PLAIN_JSON_RE = /^data:application\\/json,(.+)$/;\n\nconst DEFAULT_GATEWAYS: GatewayConfig = {\n arweave: \"https://arweave.net/\",\n ipfs: \"https://ipfs.io/ipfs/\",\n};\n\n/**\n * Resolve gateway URLs for IPFS and Arweave URIs\n */\nexport const resolveUri = (uri: string, gateways?: GatewayConfig): string => {\n const config = { ...DEFAULT_GATEWAYS, ...gateways };\n\n // Handle IPFS URIs\n if (uri.startsWith(\"ipfs://\")) {\n const hash = uri.replace(\"ipfs://\", \"\");\n return `${config.ipfs}${hash}`;\n }\n\n // Handle Arweave URIs\n if (uri.startsWith(\"ar://\")) {\n const hash = uri.replace(\"ar://\", \"\");\n return `${config.arweave}${hash}`;\n }\n\n // Data URIs and HTTP(S) URIs pass through\n return uri;\n};\n\n/**\n * Fetch and parse NFT metadata from a URI\n */\nexport const fetchNftMetadata = (\n uri: string,\n params: {\n address: string;\n chainId: number;\n gateways?: GatewayConfig;\n tokenId: bigint;\n }\n): Effect.Effect<NftMetadata, Erc721MetadataFetchError> =>\n Effect.gen(function* () {\n // Handle data URIs\n if (uri.startsWith(\"data:\")) {\n const match = uri.match(DATA_URI_BASE64_JSON_RE);\n if (match) {\n const decoded = Buffer.from(match[1], \"base64\").toString(\"utf-8\");\n return JSON.parse(decoded) as NftMetadata;\n }\n const jsonMatch = uri.match(DATA_URI_PLAIN_JSON_RE);\n if (jsonMatch) {\n return JSON.parse(decodeURIComponent(jsonMatch[1])) as NftMetadata;\n }\n }\n\n // Resolve gateway URL\n const resolvedUri = resolveUri(uri, params.gateways);\n\n // Fetch metadata\n const response = yield* Effect.tryPromise({\n catch: (cause) =>\n new Erc721MetadataFetchError({\n address: params.address,\n cause,\n chainId: params.chainId,\n message: `Failed to fetch metadata: ${String(cause)}`,\n tokenId: params.tokenId,\n uri: resolvedUri,\n }),\n try: () => fetch(resolvedUri),\n });\n\n if (!response.ok) {\n return yield* Effect.fail(\n new Erc721MetadataFetchError({\n address: params.address,\n chainId: params.chainId,\n message: `HTTP ${response.status}: ${response.statusText}`,\n tokenId: params.tokenId,\n uri: resolvedUri,\n })\n );\n }\n\n const metadata = yield* Effect.tryPromise({\n catch: (cause) =>\n new Erc721MetadataFetchError({\n address: params.address,\n cause,\n chainId: params.chainId,\n message: `Failed to parse JSON metadata: ${String(cause)}`,\n tokenId: params.tokenId,\n uri: resolvedUri,\n }),\n try: () => response.json() as Promise<NftMetadata>,\n });\n\n return metadata;\n });\n"]}