@unionlabs/payments 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/Abi/package.json +6 -0
  2. package/Attestor/package.json +6 -0
  3. package/Constants/package.json +6 -0
  4. package/Domain/package.json +6 -0
  5. package/Error/package.json +6 -0
  6. package/EvmPublicClient/package.json +6 -0
  7. package/EvmWalletClient/package.json +6 -0
  8. package/Payment/package.json +6 -0
  9. package/PaymentError/package.json +6 -0
  10. package/Prover/package.json +6 -0
  11. package/PublicClient/package.json +6 -0
  12. package/README.md +1 -0
  13. package/Schema/package.json +6 -0
  14. package/Utils/package.json +6 -0
  15. package/WalletClient/package.json +6 -0
  16. package/attestation/package.json +6 -0
  17. package/cli/commands/balance/package.json +6 -0
  18. package/cli/commands/deposit/package.json +6 -0
  19. package/cli/commands/export-verifier/package.json +6 -0
  20. package/cli/commands/generate/package.json +6 -0
  21. package/cli/commands/history/package.json +6 -0
  22. package/cli/commands/prove/package.json +6 -0
  23. package/cli/commands/redeem/package.json +6 -0
  24. package/cli/commands/update-client/package.json +6 -0
  25. package/cli/config/package.json +6 -0
  26. package/cli/package.json +6 -0
  27. package/cli/utils/package.json +6 -0
  28. package/constants/ibc-core-registry/package.json +6 -0
  29. package/constants/services/package.json +6 -0
  30. package/constants/z-asset-registry/package.json +6 -0
  31. package/dist/cjs/Abi.js +270 -0
  32. package/dist/cjs/Abi.js.map +1 -0
  33. package/dist/cjs/Attestor.js +76 -0
  34. package/dist/cjs/Attestor.js.map +1 -0
  35. package/dist/cjs/Constants.js +8 -0
  36. package/dist/cjs/Constants.js.map +1 -0
  37. package/dist/cjs/Domain.js +24 -0
  38. package/dist/cjs/Domain.js.map +1 -0
  39. package/dist/cjs/Error.js +100 -0
  40. package/dist/cjs/Error.js.map +1 -0
  41. package/dist/cjs/EvmPublicClient.js +301 -0
  42. package/dist/cjs/EvmPublicClient.js.map +1 -0
  43. package/dist/cjs/EvmWalletClient.js +670 -0
  44. package/dist/cjs/EvmWalletClient.js.map +1 -0
  45. package/dist/cjs/Payment.js +333 -0
  46. package/dist/cjs/Payment.js.map +1 -0
  47. package/dist/cjs/PaymentError.js +32 -0
  48. package/dist/cjs/PaymentError.js.map +1 -0
  49. package/dist/cjs/Prover.js +153 -0
  50. package/dist/cjs/Prover.js.map +1 -0
  51. package/dist/cjs/PublicClient.js +39 -0
  52. package/dist/cjs/PublicClient.js.map +1 -0
  53. package/dist/cjs/Schema.js +38 -0
  54. package/dist/cjs/Schema.js.map +1 -0
  55. package/dist/cjs/Utils.js +33 -0
  56. package/dist/cjs/Utils.js.map +1 -0
  57. package/dist/cjs/WalletClient.js +39 -0
  58. package/dist/cjs/WalletClient.js.map +1 -0
  59. package/dist/cjs/attestation.js +49 -0
  60. package/dist/cjs/attestation.js.map +1 -0
  61. package/dist/cjs/cli/commands/balance.js +60 -0
  62. package/dist/cjs/cli/commands/balance.js.map +1 -0
  63. package/dist/cjs/cli/commands/deposit.js +58 -0
  64. package/dist/cjs/cli/commands/deposit.js.map +1 -0
  65. package/dist/cjs/cli/commands/export-verifier.js +27 -0
  66. package/dist/cjs/cli/commands/export-verifier.js.map +1 -0
  67. package/dist/cjs/cli/commands/generate.js +41 -0
  68. package/dist/cjs/cli/commands/generate.js.map +1 -0
  69. package/dist/cjs/cli/commands/history.js +59 -0
  70. package/dist/cjs/cli/commands/history.js.map +1 -0
  71. package/dist/cjs/cli/commands/prove.js +82 -0
  72. package/dist/cjs/cli/commands/prove.js.map +1 -0
  73. package/dist/cjs/cli/commands/redeem.js +152 -0
  74. package/dist/cjs/cli/commands/redeem.js.map +1 -0
  75. package/dist/cjs/cli/commands/update-client.js +62 -0
  76. package/dist/cjs/cli/commands/update-client.js.map +1 -0
  77. package/dist/cjs/cli/config.js +32 -0
  78. package/dist/cjs/cli/config.js.map +1 -0
  79. package/dist/cjs/cli/utils.js +108 -0
  80. package/dist/cjs/cli/utils.js.map +1 -0
  81. package/dist/cjs/cli.js +24 -0
  82. package/dist/cjs/cli.js.map +1 -0
  83. package/dist/cjs/constants/ibc-core-registry.js +30 -0
  84. package/dist/cjs/constants/ibc-core-registry.js.map +1 -0
  85. package/dist/cjs/constants/services.js +9 -0
  86. package/dist/cjs/constants/services.js.map +1 -0
  87. package/dist/cjs/constants/z-asset-registry.js +32 -0
  88. package/dist/cjs/constants/z-asset-registry.js.map +1 -0
  89. package/dist/cjs/gen/prover_pb.js +81 -0
  90. package/dist/cjs/gen/prover_pb.js.map +1 -0
  91. package/dist/cjs/index.js +32 -0
  92. package/dist/cjs/index.js.map +1 -0
  93. package/dist/cjs/internal/evm.js +191 -0
  94. package/dist/cjs/internal/evm.js.map +1 -0
  95. package/dist/cjs/internal/evmWalletClient.js +6 -0
  96. package/dist/cjs/internal/evmWalletClient.js.map +1 -0
  97. package/dist/cjs/internal/publicClient.js +49 -0
  98. package/dist/cjs/internal/publicClient.js.map +1 -0
  99. package/dist/cjs/internal/walletClient.js +43 -0
  100. package/dist/cjs/internal/walletClient.js.map +1 -0
  101. package/dist/cjs/legacy/client.js +1222 -0
  102. package/dist/cjs/legacy/client.js.map +1 -0
  103. package/dist/cjs/legacy/prover.js +112 -0
  104. package/dist/cjs/legacy/prover.js.map +1 -0
  105. package/dist/cjs/poseidon2.js +226 -0
  106. package/dist/cjs/poseidon2.js.map +1 -0
  107. package/dist/cjs/promises/Attestor.js +23 -0
  108. package/dist/cjs/promises/Attestor.js.map +1 -0
  109. package/dist/cjs/promises/EvmPublicClient.js +34 -0
  110. package/dist/cjs/promises/EvmPublicClient.js.map +1 -0
  111. package/dist/cjs/promises/EvmWalletClient.js +51 -0
  112. package/dist/cjs/promises/EvmWalletClient.js.map +1 -0
  113. package/dist/cjs/promises/Payment.js +22 -0
  114. package/dist/cjs/promises/Payment.js.map +1 -0
  115. package/dist/cjs/promises/Prover.js +26 -0
  116. package/dist/cjs/promises/Prover.js.map +1 -0
  117. package/dist/cjs/promises/PublicClient.js +53 -0
  118. package/dist/cjs/promises/PublicClient.js.map +1 -0
  119. package/dist/cjs/promises/WalletClient.js +44 -0
  120. package/dist/cjs/promises/WalletClient.js.map +1 -0
  121. package/dist/cjs/promises/index.js +22 -0
  122. package/dist/cjs/promises/index.js.map +1 -0
  123. package/dist/cjs/rpc.js +867 -0
  124. package/dist/cjs/rpc.js.map +1 -0
  125. package/dist/cjs/types.js +6 -0
  126. package/dist/cjs/types.js.map +1 -0
  127. package/dist/dts/Abi.d.ts +220 -0
  128. package/dist/dts/Abi.d.ts.map +1 -0
  129. package/dist/dts/Attestor.d.ts +42 -0
  130. package/dist/dts/Attestor.d.ts.map +1 -0
  131. package/dist/dts/Constants.d.ts +3 -0
  132. package/dist/dts/Constants.d.ts.map +1 -0
  133. package/dist/dts/Domain.d.ts +141 -0
  134. package/dist/dts/Domain.d.ts.map +1 -0
  135. package/dist/dts/Error.d.ts +102 -0
  136. package/dist/dts/Error.d.ts.map +1 -0
  137. package/dist/dts/EvmPublicClient.d.ts +61 -0
  138. package/dist/dts/EvmPublicClient.d.ts.map +1 -0
  139. package/dist/dts/EvmWalletClient.d.ts +67 -0
  140. package/dist/dts/EvmWalletClient.d.ts.map +1 -0
  141. package/dist/dts/Payment.d.ts +128 -0
  142. package/dist/dts/Payment.d.ts.map +1 -0
  143. package/dist/dts/PaymentError.d.ts +21 -0
  144. package/dist/dts/PaymentError.d.ts.map +1 -0
  145. package/dist/dts/Prover.d.ts +87 -0
  146. package/dist/dts/Prover.d.ts.map +1 -0
  147. package/dist/dts/PublicClient.d.ts +146 -0
  148. package/dist/dts/PublicClient.d.ts.map +1 -0
  149. package/dist/dts/Schema.d.ts +16 -0
  150. package/dist/dts/Schema.d.ts.map +1 -0
  151. package/dist/dts/Utils.d.ts +11 -0
  152. package/dist/dts/Utils.d.ts.map +1 -0
  153. package/dist/dts/WalletClient.d.ts +123 -0
  154. package/dist/dts/WalletClient.d.ts.map +1 -0
  155. package/dist/dts/attestation.d.ts +13 -0
  156. package/dist/dts/attestation.d.ts.map +1 -0
  157. package/dist/dts/cli/commands/balance.d.ts +3 -0
  158. package/dist/dts/cli/commands/balance.d.ts.map +1 -0
  159. package/dist/dts/cli/commands/deposit.d.ts +3 -0
  160. package/dist/dts/cli/commands/deposit.d.ts.map +1 -0
  161. package/dist/dts/cli/commands/export-verifier.d.ts +3 -0
  162. package/dist/dts/cli/commands/export-verifier.d.ts.map +1 -0
  163. package/dist/dts/cli/commands/generate.d.ts +3 -0
  164. package/dist/dts/cli/commands/generate.d.ts.map +1 -0
  165. package/dist/dts/cli/commands/history.d.ts +3 -0
  166. package/dist/dts/cli/commands/history.d.ts.map +1 -0
  167. package/dist/dts/cli/commands/prove.d.ts +3 -0
  168. package/dist/dts/cli/commands/prove.d.ts.map +1 -0
  169. package/dist/dts/cli/commands/redeem.d.ts +3 -0
  170. package/dist/dts/cli/commands/redeem.d.ts.map +1 -0
  171. package/dist/dts/cli/commands/update-client.d.ts +3 -0
  172. package/dist/dts/cli/commands/update-client.d.ts.map +1 -0
  173. package/dist/dts/cli/config.d.ts +14 -0
  174. package/dist/dts/cli/config.d.ts.map +1 -0
  175. package/dist/dts/cli/utils.d.ts +11 -0
  176. package/dist/dts/cli/utils.d.ts.map +1 -0
  177. package/dist/dts/cli.d.ts +3 -0
  178. package/dist/dts/cli.d.ts.map +1 -0
  179. package/dist/dts/constants/ibc-core-registry.d.ts +11 -0
  180. package/dist/dts/constants/ibc-core-registry.d.ts.map +1 -0
  181. package/dist/dts/constants/services.d.ts +3 -0
  182. package/dist/dts/constants/services.d.ts.map +1 -0
  183. package/dist/dts/constants/z-asset-registry.d.ts +13 -0
  184. package/dist/dts/constants/z-asset-registry.d.ts.map +1 -0
  185. package/dist/dts/gen/prover_pb.d.ts +300 -0
  186. package/dist/dts/gen/prover_pb.d.ts.map +1 -0
  187. package/dist/dts/index.d.ts +21 -0
  188. package/dist/dts/index.d.ts.map +1 -0
  189. package/dist/dts/internal/evm.d.ts +250 -0
  190. package/dist/dts/internal/evm.d.ts.map +1 -0
  191. package/dist/dts/internal/evmWalletClient.d.ts +2 -0
  192. package/dist/dts/internal/evmWalletClient.d.ts.map +1 -0
  193. package/dist/dts/internal/publicClient.d.ts +2 -0
  194. package/dist/dts/internal/publicClient.d.ts.map +1 -0
  195. package/dist/dts/internal/walletClient.d.ts +2 -0
  196. package/dist/dts/internal/walletClient.d.ts.map +1 -0
  197. package/dist/dts/legacy/client.d.ts +313 -0
  198. package/dist/dts/legacy/client.d.ts.map +1 -0
  199. package/dist/dts/legacy/prover.d.ts +30 -0
  200. package/dist/dts/legacy/prover.d.ts.map +1 -0
  201. package/dist/dts/poseidon2.d.ts +18 -0
  202. package/dist/dts/poseidon2.d.ts.map +1 -0
  203. package/dist/dts/promises/Attestor.d.ts +17 -0
  204. package/dist/dts/promises/Attestor.d.ts.map +1 -0
  205. package/dist/dts/promises/EvmPublicClient.d.ts +3709 -0
  206. package/dist/dts/promises/EvmPublicClient.d.ts.map +1 -0
  207. package/dist/dts/promises/EvmWalletClient.d.ts +4502 -0
  208. package/dist/dts/promises/EvmWalletClient.d.ts.map +1 -0
  209. package/dist/dts/promises/Payment.d.ts +33 -0
  210. package/dist/dts/promises/Payment.d.ts.map +1 -0
  211. package/dist/dts/promises/Prover.d.ts +14 -0
  212. package/dist/dts/promises/Prover.d.ts.map +1 -0
  213. package/dist/dts/promises/PublicClient.d.ts +23 -0
  214. package/dist/dts/promises/PublicClient.d.ts.map +1 -0
  215. package/dist/dts/promises/WalletClient.d.ts +57 -0
  216. package/dist/dts/promises/WalletClient.d.ts.map +1 -0
  217. package/dist/dts/promises/index.d.ts +8 -0
  218. package/dist/dts/promises/index.d.ts.map +1 -0
  219. package/dist/dts/rpc.d.ts +148 -0
  220. package/dist/dts/rpc.d.ts.map +1 -0
  221. package/dist/dts/types.d.ts +263 -0
  222. package/dist/dts/types.d.ts.map +1 -0
  223. package/dist/esm/Abi.js +264 -0
  224. package/dist/esm/Abi.js.map +1 -0
  225. package/dist/esm/Attestor.js +68 -0
  226. package/dist/esm/Attestor.js.map +1 -0
  227. package/dist/esm/Constants.js +2 -0
  228. package/dist/esm/Constants.js.map +1 -0
  229. package/dist/esm/Domain.js +17 -0
  230. package/dist/esm/Domain.js.map +1 -0
  231. package/dist/esm/Error.js +89 -0
  232. package/dist/esm/Error.js.map +1 -0
  233. package/dist/esm/EvmPublicClient.js +292 -0
  234. package/dist/esm/EvmPublicClient.js.map +1 -0
  235. package/dist/esm/EvmWalletClient.js +659 -0
  236. package/dist/esm/EvmWalletClient.js.map +1 -0
  237. package/dist/esm/Payment.js +323 -0
  238. package/dist/esm/Payment.js.map +1 -0
  239. package/dist/esm/PaymentError.js +24 -0
  240. package/dist/esm/PaymentError.js.map +1 -0
  241. package/dist/esm/Prover.js +142 -0
  242. package/dist/esm/Prover.js.map +1 -0
  243. package/dist/esm/PublicClient.js +30 -0
  244. package/dist/esm/PublicClient.js.map +1 -0
  245. package/dist/esm/Schema.js +31 -0
  246. package/dist/esm/Schema.js.map +1 -0
  247. package/dist/esm/Utils.js +27 -0
  248. package/dist/esm/Utils.js.map +1 -0
  249. package/dist/esm/WalletClient.js +30 -0
  250. package/dist/esm/WalletClient.js.map +1 -0
  251. package/dist/esm/attestation.js +42 -0
  252. package/dist/esm/attestation.js.map +1 -0
  253. package/dist/esm/cli/commands/balance.js +54 -0
  254. package/dist/esm/cli/commands/balance.js.map +1 -0
  255. package/dist/esm/cli/commands/deposit.js +52 -0
  256. package/dist/esm/cli/commands/deposit.js.map +1 -0
  257. package/dist/esm/cli/commands/export-verifier.js +21 -0
  258. package/dist/esm/cli/commands/export-verifier.js.map +1 -0
  259. package/dist/esm/cli/commands/generate.js +35 -0
  260. package/dist/esm/cli/commands/generate.js.map +1 -0
  261. package/dist/esm/cli/commands/history.js +53 -0
  262. package/dist/esm/cli/commands/history.js.map +1 -0
  263. package/dist/esm/cli/commands/prove.js +76 -0
  264. package/dist/esm/cli/commands/prove.js.map +1 -0
  265. package/dist/esm/cli/commands/redeem.js +146 -0
  266. package/dist/esm/cli/commands/redeem.js.map +1 -0
  267. package/dist/esm/cli/commands/update-client.js +56 -0
  268. package/dist/esm/cli/commands/update-client.js.map +1 -0
  269. package/dist/esm/cli/config.js +26 -0
  270. package/dist/esm/cli/config.js.map +1 -0
  271. package/dist/esm/cli/utils.js +94 -0
  272. package/dist/esm/cli/utils.js.map +1 -0
  273. package/dist/esm/cli.js +22 -0
  274. package/dist/esm/cli.js.map +1 -0
  275. package/dist/esm/constants/ibc-core-registry.js +21 -0
  276. package/dist/esm/constants/ibc-core-registry.js.map +1 -0
  277. package/dist/esm/constants/services.js +3 -0
  278. package/dist/esm/constants/services.js.map +1 -0
  279. package/dist/esm/constants/z-asset-registry.js +23 -0
  280. package/dist/esm/constants/z-asset-registry.js.map +1 -0
  281. package/dist/esm/gen/prover_pb.js +74 -0
  282. package/dist/esm/gen/prover_pb.js.map +1 -0
  283. package/dist/esm/index.js +22 -0
  284. package/dist/esm/index.js.map +1 -0
  285. package/dist/esm/internal/evm.js +169 -0
  286. package/dist/esm/internal/evm.js.map +1 -0
  287. package/dist/esm/internal/evmWalletClient.js +2 -0
  288. package/dist/esm/internal/evmWalletClient.js.map +1 -0
  289. package/dist/esm/internal/publicClient.js +41 -0
  290. package/dist/esm/internal/publicClient.js.map +1 -0
  291. package/dist/esm/internal/walletClient.js +35 -0
  292. package/dist/esm/internal/walletClient.js.map +1 -0
  293. package/dist/esm/legacy/client.js +1212 -0
  294. package/dist/esm/legacy/client.js.map +1 -0
  295. package/dist/esm/legacy/prover.js +105 -0
  296. package/dist/esm/legacy/prover.js.map +1 -0
  297. package/dist/esm/package.json +4 -0
  298. package/dist/esm/poseidon2.js +218 -0
  299. package/dist/esm/poseidon2.js.map +1 -0
  300. package/dist/esm/promises/Attestor.js +14 -0
  301. package/dist/esm/promises/Attestor.js.map +1 -0
  302. package/dist/esm/promises/EvmPublicClient.js +26 -0
  303. package/dist/esm/promises/EvmPublicClient.js.map +1 -0
  304. package/dist/esm/promises/EvmWalletClient.js +43 -0
  305. package/dist/esm/promises/EvmWalletClient.js.map +1 -0
  306. package/dist/esm/promises/Payment.js +13 -0
  307. package/dist/esm/promises/Payment.js.map +1 -0
  308. package/dist/esm/promises/Prover.js +17 -0
  309. package/dist/esm/promises/Prover.js.map +1 -0
  310. package/dist/esm/promises/PublicClient.js +45 -0
  311. package/dist/esm/promises/PublicClient.js.map +1 -0
  312. package/dist/esm/promises/WalletClient.js +36 -0
  313. package/dist/esm/promises/WalletClient.js.map +1 -0
  314. package/dist/esm/promises/index.js +8 -0
  315. package/dist/esm/promises/index.js.map +1 -0
  316. package/dist/esm/rpc.js +850 -0
  317. package/dist/esm/rpc.js.map +1 -0
  318. package/dist/esm/types.js +2 -0
  319. package/dist/esm/types.js.map +1 -0
  320. package/gen/prover_pb/package.json +6 -0
  321. package/index/package.json +6 -0
  322. package/legacy/client/package.json +6 -0
  323. package/legacy/prover/package.json +6 -0
  324. package/package.json +397 -44
  325. package/poseidon2/package.json +6 -0
  326. package/promises/Attestor/package.json +6 -0
  327. package/promises/EvmPublicClient/package.json +6 -0
  328. package/promises/EvmWalletClient/package.json +6 -0
  329. package/promises/Payment/package.json +6 -0
  330. package/promises/Prover/package.json +6 -0
  331. package/promises/PublicClient/package.json +6 -0
  332. package/promises/WalletClient/package.json +6 -0
  333. package/promises/index/package.json +6 -0
  334. package/promises/package.json +6 -0
  335. package/rpc/package.json +6 -0
  336. package/src/Abi.ts +195 -0
  337. package/src/Attestor.ts +113 -0
  338. package/src/Constants.ts +4 -0
  339. package/src/Domain.ts +52 -0
  340. package/src/Error.ts +163 -0
  341. package/src/EvmPublicClient.ts +549 -0
  342. package/src/EvmWalletClient.ts +1034 -0
  343. package/src/Payment.ts +523 -0
  344. package/src/PaymentError.ts +39 -0
  345. package/src/Prover.ts +240 -0
  346. package/src/PublicClient.ts +196 -0
  347. package/src/Schema.ts +36 -0
  348. package/src/Utils.ts +43 -0
  349. package/src/WalletClient.ts +172 -0
  350. package/src/attestation.ts +69 -0
  351. package/src/cli/commands/balance.ts +88 -0
  352. package/src/cli/commands/deposit.ts +104 -0
  353. package/src/cli/commands/export-verifier.ts +28 -0
  354. package/src/cli/commands/generate.ts +86 -0
  355. package/src/cli/commands/history.ts +91 -0
  356. package/src/cli/commands/prove.ts +133 -0
  357. package/src/cli/commands/redeem.ts +277 -0
  358. package/src/cli/commands/update-client.ts +96 -0
  359. package/src/cli/config.ts +55 -0
  360. package/src/cli/utils.ts +136 -0
  361. package/src/cli.ts +31 -0
  362. package/src/constants/ibc-core-registry.ts +44 -0
  363. package/src/constants/services.ts +4 -0
  364. package/src/constants/z-asset-registry.ts +47 -0
  365. package/src/gen/prover_pb.ts +375 -0
  366. package/src/index.ts +23 -0
  367. package/src/internal/evm.ts +361 -0
  368. package/src/internal/evmWalletClient.ts +0 -0
  369. package/src/internal/publicClient.ts +57 -0
  370. package/src/internal/walletClient.ts +50 -0
  371. package/src/legacy/client.ts +1652 -0
  372. package/src/legacy/prover.ts +135 -0
  373. package/src/poseidon2.ts +246 -0
  374. package/src/promises/Attestor.ts +25 -0
  375. package/src/promises/EvmPublicClient.ts +39 -0
  376. package/src/promises/EvmWalletClient.ts +63 -0
  377. package/src/promises/Payment.ts +86 -0
  378. package/src/promises/Prover.ts +26 -0
  379. package/src/promises/PublicClient.ts +47 -0
  380. package/src/promises/WalletClient.ts +38 -0
  381. package/src/promises/index.ts +7 -0
  382. package/src/rpc.ts +994 -0
  383. package/src/types.ts +281 -0
  384. package/types/package.json +6 -0
  385. package/dist/LICENSE +0 -1
  386. package/dist/chunk-37PNLRA6.js +0 -2418
  387. package/dist/cli.cjs +0 -3031
  388. package/dist/cli.js +0 -675
  389. package/dist/index.cjs +0 -2451
  390. package/dist/index.js +0 -1
  391. package/dist/package.json +0 -18
  392. package/dist/payments.d.ts +0 -835
  393. /package/{dist → src}/tsdoc-metadata.json +0 -0
@@ -0,0 +1,361 @@
1
+ /**
2
+ * This module handles EVM related functionality.
3
+ *
4
+ * @since 0.0.0
5
+ */
6
+
7
+ import type {} from "effect";
8
+ import { Context, Data, Effect, flow, Layer, pipe } from "effect";
9
+ import type {
10
+ Abi,
11
+ Address,
12
+ ContractFunctionArgs,
13
+ ContractFunctionName,
14
+ CreatePublicClientErrorType,
15
+ CreateWalletClientErrorType,
16
+ Hash,
17
+ ReadContractErrorType,
18
+ ReadContractParameters,
19
+ SimulateContractErrorType,
20
+ Account as ViemAccount,
21
+ Chain as ViemChain,
22
+ PublicClient as ViemPublicClient,
23
+ WalletClient as ViemWalletClient,
24
+ WaitForTransactionReceiptTimeoutErrorType,
25
+ WriteContractErrorType,
26
+ WriteContractParameters,
27
+ } from "viem";
28
+ import * as V from "viem";
29
+
30
+ /** @internal */
31
+ export const publicClientLayer =
32
+ <Id>(tag: Context.Tag<Id, Evm.PublicClient>) =>
33
+ (
34
+ ...options: Parameters<typeof V.createPublicClient>
35
+ ): Layer.Layer<Id, CreatePublicClientError> =>
36
+ Layer.effect(
37
+ tag,
38
+ pipe(
39
+ Effect.try({
40
+ try: () => V.createPublicClient(...options),
41
+ catch: (err) =>
42
+ new CreatePublicClientError({
43
+ cause: err as V.CreatePublicClientErrorType,
44
+ }),
45
+ }),
46
+ Effect.map((client) => ({ client })),
47
+ ),
48
+ );
49
+
50
+ /** @internal */
51
+ export const walletClientLayer =
52
+ <Id>(tag: Context.Tag<Id, Evm.WalletClient>) =>
53
+ (
54
+ options: Parameters<typeof V.createWalletClient>[0] & {
55
+ account: V.Account;
56
+ chain: V.Chain;
57
+ },
58
+ ): Layer.Layer<Id, CreateWalletClientError> =>
59
+ Layer.effect(
60
+ tag,
61
+ pipe(
62
+ Effect.try({
63
+ try: () => V.createWalletClient(options),
64
+ catch: (err) =>
65
+ new CreateWalletClientError({
66
+ cause: err as V.CreateWalletClientErrorType,
67
+ }),
68
+ }),
69
+ Effect.map((client) => ({
70
+ client,
71
+ account: options.account,
72
+ chain: options.chain,
73
+ })),
74
+ ),
75
+ );
76
+
77
+ /**
78
+ * @category models
79
+ * @since 0.0.0
80
+ */
81
+ export namespace Evm {
82
+ /**
83
+ * @category models
84
+ * @since 0.0.0
85
+ */
86
+ export interface PublicClient {
87
+ readonly client: ViemPublicClient;
88
+ }
89
+
90
+ /**
91
+ * @category models
92
+ * @since 0.0.0
93
+ */
94
+ export interface WalletClient {
95
+ readonly client: ViemWalletClient;
96
+ readonly account: ViemAccount;
97
+ readonly chain: ViemChain;
98
+ }
99
+
100
+ /**
101
+ * @category models
102
+ * @since 0.0.0
103
+ */
104
+ export interface Channel {
105
+ readonly ucs03address: Address;
106
+ readonly channelId: number;
107
+ }
108
+ }
109
+
110
+ /**
111
+ * @category errors
112
+ * @since 0.0.0
113
+ */
114
+ export class WaitForTransactionReceiptError extends Data.TaggedError(
115
+ "WaitForTransactionReceiptError",
116
+ )<{
117
+ cause: WaitForTransactionReceiptTimeoutErrorType;
118
+ }> {}
119
+
120
+ /**
121
+ * Wait for a transaction receipt
122
+ * @param hash The transaction hash for which to wait
123
+ * @returns An Effect that resolves to the transaction receipt
124
+ *
125
+ * @category utils
126
+ * @since 0.0.0
127
+ */
128
+ export const waitForTransactionReceipt = Effect.fn("waitForTransactionReceipt")(
129
+ (hash: Hash) =>
130
+ pipe(
131
+ PublicClient,
132
+ Effect.andThen(({ client }) =>
133
+ Effect.tryPromise({
134
+ try: () => client.waitForTransactionReceipt({ hash }),
135
+ catch: (err) =>
136
+ new WaitForTransactionReceiptError({
137
+ cause: err as WaitForTransactionReceiptTimeoutErrorType,
138
+ }),
139
+ }),
140
+ ),
141
+ ),
142
+ );
143
+
144
+ /**
145
+ * A type-safe wrapper around viem's readContract that handles error cases
146
+ * and returns an Effect with proper type inference. Extracts all error info
147
+ *
148
+ * @param client - The viem PublicClient to use for the contract call
149
+ * @param params - The parameters for the contract call
150
+ * @returns An Effect that resolves to the properly typed return value
151
+ *
152
+ * @category utils
153
+ * @since 0.0.0
154
+ */
155
+ export const readContract = Effect.fn("readContract")(
156
+ <
157
+ TAbi extends Abi,
158
+ TFunctionName extends ContractFunctionName<
159
+ TAbi,
160
+ "pure" | "view"
161
+ > = ContractFunctionName<TAbi, "pure" | "view">,
162
+ TArgs extends ContractFunctionArgs<
163
+ TAbi,
164
+ "pure" | "view",
165
+ TFunctionName
166
+ > = ContractFunctionArgs<TAbi, "pure" | "view", TFunctionName>,
167
+ >(
168
+ params: ReadContractParameters<TAbi, TFunctionName, TArgs>,
169
+ ) =>
170
+ pipe(
171
+ PublicClient,
172
+ Effect.andThen(({ client }) =>
173
+ Effect.tryPromise({
174
+ try: () => client.readContract(params),
175
+ catch: (error) =>
176
+ new ReadContractError({
177
+ cause: error as ReadContractErrorType,
178
+ }),
179
+ }),
180
+ ),
181
+ ),
182
+ );
183
+
184
+ /**
185
+ * A type-safe wrapper around viem's writeContract that handles error cases
186
+ * and returns an Effect with proper type inference. Extracts all error info
187
+ *
188
+ * @param client - The viem WalletClient to use for the contract transaction
189
+ * @param params - The parameters for the contract transaction
190
+ * @returns An Effect that resolves to the transaction hash
191
+ *
192
+ * @category utils
193
+ * @since 0.0.0
194
+ */
195
+ export const writeContract = Effect.fn("writeContract")(
196
+ <
197
+ const abi extends Abi | readonly unknown[],
198
+ functionName extends ContractFunctionName<abi, "payable" | "nonpayable">,
199
+ args extends ContractFunctionArgs<
200
+ abi,
201
+ "payable" | "nonpayable",
202
+ functionName
203
+ >,
204
+ >(
205
+ params: WriteContractParameters<abi, functionName, args>,
206
+ ) =>
207
+ pipe(
208
+ WalletClient,
209
+ Effect.andThen(({ client }) =>
210
+ Effect.tryPromise({
211
+ try: () => client.writeContract(params),
212
+ catch: (error) =>
213
+ new WriteContractError({
214
+ cause: error as WriteContractErrorType,
215
+ }),
216
+ }),
217
+ ),
218
+ ),
219
+ );
220
+
221
+ export const getBlockNumber = Effect.fn("writeContract")(
222
+ <
223
+ const abi extends Abi | readonly unknown[],
224
+ functionName extends ContractFunctionName<abi, "payable" | "nonpayable">,
225
+ args extends ContractFunctionArgs<
226
+ abi,
227
+ "payable" | "nonpayable",
228
+ functionName
229
+ >,
230
+ >(
231
+ params: WriteContractParameters<abi, functionName, args>,
232
+ ) =>
233
+ pipe(
234
+ WalletClient,
235
+ Effect.andThen(({ client }) =>
236
+ Effect.tryPromise({
237
+ try: () => client.writeContract(params),
238
+ catch: (error) =>
239
+ new WriteContractError({
240
+ cause: error as WriteContractErrorType,
241
+ }),
242
+ }),
243
+ ),
244
+ ),
245
+ );
246
+
247
+ /**
248
+ * @category context
249
+ * @since 0.0.0
250
+ */
251
+ export class ChannelDestination extends Context.Tag(
252
+ "@unionlabs/sdk/Evm/ChannelDestination",
253
+ )<ChannelDestination, Evm.Channel>() {
254
+ static Live = flow(ChannelDestination.of, Layer.succeed(this));
255
+ }
256
+
257
+ /**
258
+ * @category context
259
+ * @since 0.0.0
260
+ */
261
+ export class ChannelSource extends Context.Tag(
262
+ "@unionlabs/sdk/Evm/ChannelSource",
263
+ )<ChannelSource, Evm.Channel>() {
264
+ static Live = flow(ChannelSource.of, Layer.succeed(this));
265
+ }
266
+
267
+ /**
268
+ * @category context
269
+ * @since 0.0.0
270
+ */
271
+
272
+ export class PublicClientSource extends Context.Tag(
273
+ "@unionlabs/sdk/Evm/PublicClientSource",
274
+ )<PublicClientSource, Evm.PublicClient>() {
275
+ static Live = publicClientLayer(this);
276
+ }
277
+
278
+ /**
279
+ * @category context
280
+ * @since 0.0.0
281
+ */
282
+ export class PublicClientDestination extends Context.Tag(
283
+ "@unionlabs/sdk/Evm/PublicClientDestination",
284
+ )<PublicClientDestination, Evm.PublicClient>() {
285
+ static Live = publicClientLayer(this);
286
+ }
287
+
288
+ /**
289
+ * A neutral public client that can be used for general-purpose operations
290
+ * that don't specifically target source or destination chains
291
+ *
292
+ * @category context
293
+ * @since 0.0.0
294
+ */
295
+ export class PublicClient extends Context.Tag(
296
+ "@unionlabs/sdk-evm/Evm/PublicClient",
297
+ )<PublicClient, Evm.PublicClient>() {
298
+ static Live = publicClientLayer(this);
299
+ }
300
+
301
+ /**
302
+ * A wallet client that can be used for signing transactions
303
+ *
304
+ * @category context
305
+ * @since 0.0.0
306
+ */
307
+ export class WalletClient extends Context.Tag(
308
+ "@unionlabs/sdk/Evm/WalletClient",
309
+ )<WalletClient, Evm.WalletClient>() {
310
+ static Live = walletClientLayer(this);
311
+ }
312
+
313
+ /**
314
+ * @category errors
315
+ * @since 0.0.0
316
+ */
317
+ export class ReadContractError extends Data.TaggedError(
318
+ "@unionlabs/sdk/Evm/ReadContractError",
319
+ )<{
320
+ cause: ReadContractErrorType;
321
+ }> {}
322
+
323
+ /**
324
+ * @category errors
325
+ * @since 0.0.0
326
+ */
327
+ export class WriteContractError extends Data.TaggedError(
328
+ "@unionlabs/sdk/Evm/WriteContractError",
329
+ )<{
330
+ cause: WriteContractErrorType;
331
+ }> {}
332
+
333
+ /**
334
+ * @category errors
335
+ * @since 0.0.0
336
+ */
337
+ export class SimulateContractError extends Data.TaggedError(
338
+ "@unionlabs/sdk/Evm/SimulateContractError",
339
+ )<{
340
+ cause: SimulateContractErrorType;
341
+ }> {}
342
+
343
+ /**
344
+ * @category errors
345
+ * @since 0.0.0
346
+ */
347
+ export class CreatePublicClientError extends Data.TaggedError(
348
+ "@unionlabs/sdk/Evm/CreatePublicClientError",
349
+ )<{
350
+ cause: CreatePublicClientErrorType;
351
+ }> {}
352
+
353
+ /**
354
+ * @category errors
355
+ * @since 0.0.0
356
+ */
357
+ export class CreateWalletClientError extends Data.TaggedError(
358
+ "@unionlabs/sdk/Evm/CreateWalletClientError",
359
+ )<{
360
+ cause: CreateWalletClientErrorType;
361
+ }> {}
File without changes
@@ -0,0 +1,57 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import type * as Client from "../PublicClient.js";
4
+
5
+ /** @internal */
6
+ export const TypeId: Client.TypeId = Symbol.for(
7
+ "@unionlabs/payments/PublicClient",
8
+ ) as Client.TypeId;
9
+
10
+ /** @internal */
11
+ export const clientTag = Context.GenericTag<Client.PublicClient>(
12
+ "@unionlabs/payments/PublicClient",
13
+ );
14
+
15
+ /** @internal */
16
+ export function make({
17
+ getLatestHeight,
18
+ getLatestBlockNumber,
19
+ readBalance,
20
+ readBalanceAtHeight,
21
+ getLightClientAddress,
22
+ getStateRootIndex,
23
+ getConsensusState,
24
+ getIbcHandlerAddress,
25
+ getCounterparty,
26
+ getProof,
27
+ waitForBlock,
28
+ }: Client.PublicClient.MakeOptions): Effect.Effect<
29
+ Client.PublicClient,
30
+ never,
31
+ never
32
+ > {
33
+ return Effect.gen(function* () {
34
+ const client: Client.PublicClient = Object.assign(
35
+ {},
36
+ {
37
+ [TypeId as Client.TypeId]: TypeId as Client.TypeId,
38
+ safe: undefined as any,
39
+ getLatestHeight,
40
+ getLatestBlockNumber,
41
+ readBalance,
42
+ readBalanceAtHeight,
43
+ getLightClientAddress,
44
+ getStateRootIndex,
45
+ getConsensusState,
46
+ getIbcHandlerAddress,
47
+ getCounterparty,
48
+ getProof,
49
+ waitForBlock,
50
+ },
51
+ );
52
+
53
+ (client as any).safe = client;
54
+
55
+ return client;
56
+ });
57
+ }
@@ -0,0 +1,50 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import type * as Client from "../WalletClient.js";
4
+
5
+ /** @internal */
6
+ export const TypeId: Client.TypeId = Symbol.for(
7
+ "@unionlabs/payments/WalletClient",
8
+ ) as Client.TypeId;
9
+
10
+ /** @internal */
11
+ export const clientTag = Context.GenericTag<Client.WalletClient>(
12
+ "@unionlabs/payments/WalletClient",
13
+ );
14
+
15
+ /** @internal */
16
+ export function make({
17
+ sign,
18
+ submit,
19
+ approveZAssetToSpendErc20,
20
+ updateLoopbackClient,
21
+ depositUnderlyingZAsset,
22
+ transferZAsset,
23
+ prepareDeposit,
24
+ prepareRedemption,
25
+ signAndSubmit,
26
+ }: Client.WalletClient.MakeOptions): Effect.Effect<
27
+ Client.WalletClient,
28
+ never,
29
+ never
30
+ > {
31
+ return Effect.gen(function* () {
32
+ const client: Client.WalletClient = Object.assign(
33
+ {},
34
+ {
35
+ [TypeId as Client.TypeId]: TypeId as Client.TypeId,
36
+ sign,
37
+ submit,
38
+ approveZAssetToSpendErc20,
39
+ updateLoopbackClient,
40
+ depositUnderlyingZAsset,
41
+ transferZAsset,
42
+ prepareDeposit,
43
+ prepareRedemption,
44
+ signAndSubmit,
45
+ },
46
+ );
47
+
48
+ return client;
49
+ });
50
+ }