@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
package/src/Abi.ts ADDED
@@ -0,0 +1,195 @@
1
+ export const ERC20_ABI = [
2
+ {
3
+ inputs: [
4
+ { name: "spender", type: "address" },
5
+ { name: "amount", type: "uint256" },
6
+ ],
7
+ name: "approve",
8
+ outputs: [{ name: "", type: "bool" }],
9
+ stateMutability: "nonpayable",
10
+ type: "function",
11
+ },
12
+ ] as const;
13
+
14
+ // export const ZASSET_ABI = [
15
+ // {
16
+ // inputs: [{ name: "amount", type: "uint256" }],
17
+ // name: "deposit",
18
+ // outputs: [],
19
+ // stateMutability: "nonpayable",
20
+ // type: "function",
21
+ // },
22
+ // {
23
+ // inputs: [
24
+ // { name: "to", type: "address" },
25
+ // { name: "amount", type: "uint256" },
26
+ // ],
27
+ // name: "transfer",
28
+ // outputs: [{ name: "", type: "bool" }],
29
+ // stateMutability: "nonpayable",
30
+ // type: "function",
31
+ // },
32
+ // {
33
+ // inputs: [
34
+ // { name: "proof", type: "uint256[8]" },
35
+ // { name: "commitments", type: "uint256[2]" },
36
+ // { name: "commitmentPok", type: "uint256[2]" },
37
+ // {
38
+ // name: "lightClients",
39
+ // type: "tuple[]",
40
+ // components: [
41
+ // { name: "clientId", type: "uint32" },
42
+ // { name: "height", type: "uint64" },
43
+ // ],
44
+ // },
45
+ // { name: "nullifier", type: "uint256" },
46
+ // { name: "value", type: "uint256" },
47
+ // { name: "beneficiary", type: "address" },
48
+ // { name: "attestedMessage", type: "bytes32" },
49
+ // { name: "signature", type: "bytes" },
50
+ // { name: "unwrap", type: "bool" },
51
+ // ],
52
+ // name: "redeem",
53
+ // outputs: [],
54
+ // stateMutability: "nonpayable",
55
+ // type: "function",
56
+ // },
57
+ // ] as const;
58
+
59
+ export const ZASSET_ABI = [
60
+ {
61
+ inputs: [{ name: "nullifier", type: "uint256" }],
62
+ name: "nullifierBalance",
63
+ outputs: [{ name: "", type: "uint256" }],
64
+ stateMutability: "view",
65
+ type: "function",
66
+ },
67
+ {
68
+ inputs: [{ name: "clientId", type: "uint32" }],
69
+ name: "counterparty",
70
+ outputs: [
71
+ {
72
+ components: [
73
+ { name: "tokenAddressKey", type: "bytes32" },
74
+ { name: "balanceSlot", type: "bytes32" },
75
+ ],
76
+ type: "tuple",
77
+ },
78
+ ],
79
+ stateMutability: "view",
80
+ type: "function",
81
+ },
82
+ {
83
+ inputs: [],
84
+ name: "ibcHandler",
85
+ outputs: [{ name: "", type: "address" }],
86
+ stateMutability: "view",
87
+ type: "function",
88
+ },
89
+ {
90
+ inputs: [{ name: "clientId", type: "uint32" }],
91
+ name: "stateRootIndex",
92
+ outputs: [{ name: "", type: "uint256" }],
93
+ stateMutability: "view",
94
+ type: "function",
95
+ },
96
+ {
97
+ inputs: [],
98
+ name: "underlying",
99
+ outputs: [{ name: "", type: "address" }],
100
+ stateMutability: "view",
101
+ type: "function",
102
+ },
103
+ {
104
+ inputs: [{ name: "amount", type: "uint256" }],
105
+ name: "deposit",
106
+ outputs: [],
107
+ stateMutability: "nonpayable",
108
+ type: "function",
109
+ },
110
+ {
111
+ inputs: [
112
+ { name: "to", type: "address" },
113
+ { name: "amount", type: "uint256" },
114
+ ],
115
+ name: "transfer",
116
+ outputs: [{ name: "", type: "bool" }],
117
+ stateMutability: "nonpayable",
118
+ type: "function",
119
+ },
120
+ {
121
+ inputs: [
122
+ { name: "proof", type: "uint256[8]" },
123
+ { name: "commitments", type: "uint256[2]" },
124
+ { name: "commitmentPok", type: "uint256[2]" },
125
+ {
126
+ name: "lightClients",
127
+ type: "tuple[]",
128
+ components: [
129
+ { name: "clientId", type: "uint32" },
130
+ { name: "height", type: "uint64" },
131
+ ],
132
+ },
133
+ { name: "nullifier", type: "uint256" },
134
+ { name: "value", type: "uint256" },
135
+ { name: "beneficiary", type: "address" },
136
+ { name: "attestedMessage", type: "bytes32" },
137
+ { name: "signature", type: "bytes" },
138
+ { name: "unwrap", type: "bool" },
139
+ ],
140
+ name: "redeem",
141
+ outputs: [],
142
+ stateMutability: "nonpayable",
143
+ type: "function",
144
+ },
145
+ {
146
+ anonymous: false,
147
+ inputs: [
148
+ { indexed: true, name: "from", type: "address" },
149
+ { indexed: true, name: "to", type: "address" },
150
+ { indexed: false, name: "value", type: "uint256" },
151
+ ],
152
+ name: "Transfer",
153
+ type: "event",
154
+ },
155
+ {
156
+ anonymous: false,
157
+ inputs: [
158
+ { indexed: true, name: "nullifier", type: "uint256" },
159
+ { indexed: true, name: "redeemAmount", type: "uint256" },
160
+ { indexed: true, name: "beneficiary", type: "address" },
161
+ ],
162
+ name: "Redeemed",
163
+ type: "event",
164
+ },
165
+ ] as const;
166
+
167
+ export const LIGHT_CLIENT_ABI = [
168
+ {
169
+ inputs: [{ name: "clientId", type: "uint32" }],
170
+ name: "getLatestHeight",
171
+ outputs: [{ name: "", type: "uint64" }],
172
+ stateMutability: "view",
173
+ type: "function",
174
+ },
175
+ {
176
+ inputs: [
177
+ { name: "clientId", type: "uint32" },
178
+ { name: "height", type: "uint64" },
179
+ ],
180
+ name: "getConsensusState",
181
+ outputs: [{ name: "", type: "bytes" }],
182
+ stateMutability: "view",
183
+ type: "function",
184
+ },
185
+ ] as const;
186
+
187
+ export const IBC_STORE_ABI = [
188
+ {
189
+ inputs: [{ name: "clientId", type: "uint32" }],
190
+ name: "getClient",
191
+ outputs: [{ name: "", type: "address" }],
192
+ stateMutability: "view",
193
+ type: "function",
194
+ },
195
+ ] as const;
@@ -0,0 +1,113 @@
1
+ import * as FetchHttpClient from "@effect/platform/FetchHttpClient";
2
+ import * as HttpClient from "@effect/platform/HttpClient";
3
+ import * as HttpClientRequest from "@effect/platform/HttpClientRequest";
4
+ import * as HttpClientResponse from "@effect/platform/HttpClientResponse";
5
+ import { Effect, flow, pipe, Redacted } from "effect";
6
+ import { constTrue } from "effect/Function";
7
+ import * as S from "effect/Schema";
8
+ import { DEFAULT_ATTESTOR_URL } from "./constants/services.js";
9
+ import * as Error from "./Error.js";
10
+ import * as PS from "./Schema.js";
11
+
12
+ const Options = S.Struct({
13
+ baseUrl: S.optionalWith(S.Union(S.URLFromSelf, S.URL), {
14
+ default: () => new globalThis.URL(DEFAULT_ATTESTOR_URL),
15
+ }),
16
+ apiKey: S.Redacted(S.NonEmptyTrimmedString),
17
+ });
18
+ type Options = typeof Options.Type;
19
+
20
+ export const AttestationServiceResponse = S.Struct({
21
+ id: S.String,
22
+ hash: PS.Hex,
23
+ signature: S.Struct({
24
+ r: PS.Hex,
25
+ s: PS.Hex,
26
+ v: S.Number,
27
+ }),
28
+ signerAddress: PS.Address,
29
+ });
30
+ export type AttestationServiceResponse = typeof AttestationServiceResponse.Type;
31
+
32
+ /**
33
+ * Client for attestation service that signs poseidon(unspendable_address, beneficiary)
34
+ * @public
35
+ */
36
+ export class Attestor extends Effect.Service<Attestor>()(
37
+ "@unionlabs/payments/Attestor",
38
+ {
39
+ scoped: Effect.fn(function* (options: S.Schema.Encoded<typeof Options>) {
40
+ const { baseUrl, apiKey } = yield* pipe(
41
+ options,
42
+ S.decode(Options),
43
+ Effect.mapError(
44
+ (cause) =>
45
+ new Error.SystemError({
46
+ method: "Prover",
47
+ module: "Prover",
48
+ reason: "InvalidData",
49
+ cause,
50
+ }),
51
+ ),
52
+ );
53
+
54
+ const client = yield* pipe(
55
+ HttpClient.HttpClient,
56
+ Effect.map(HttpClient.withTracerDisabledWhen(constTrue)),
57
+ Effect.map(
58
+ HttpClient.mapRequest(
59
+ flow(
60
+ HttpClientRequest.setUrl(baseUrl),
61
+ HttpClientRequest.setHeaders({
62
+ "x-api-key": Redacted.value(apiKey),
63
+ }),
64
+ HttpClientRequest.acceptJson,
65
+ ),
66
+ ),
67
+ ),
68
+ );
69
+
70
+ const get = Effect.fn("get")(
71
+ (payload: {
72
+ unspendableAddress: PS.Address;
73
+ beneficiary: PS.Address;
74
+ }) =>
75
+ pipe(
76
+ HttpClientRequest.post(""),
77
+ HttpClientRequest.bodyJson(payload),
78
+ Effect.flatMap(client.execute),
79
+ Effect.flatMap(
80
+ HttpClientResponse.schemaBodyJson(AttestationServiceResponse),
81
+ ),
82
+ Effect.map((a) => ({
83
+ ...a,
84
+ signature: (() => {
85
+ // Combine r, s, v into 65-byte signature
86
+ const r = a.signature.r.slice(2);
87
+ const s = a.signature.s.slice(2);
88
+ const v = a.signature.v.toString(16).padStart(2, "0");
89
+ const signature = `0x${r}${s}${v}` as const;
90
+
91
+ return signature;
92
+ })(),
93
+ attestedMessage: a.hash,
94
+ })),
95
+ Effect.mapError(
96
+ (cause) =>
97
+ new Error.SystemError({
98
+ method: "get",
99
+ module: "Attestor",
100
+ reason: "InvalidData",
101
+ cause,
102
+ }),
103
+ ),
104
+ ),
105
+ );
106
+
107
+ return {
108
+ get,
109
+ } as const;
110
+ }),
111
+ dependencies: [FetchHttpClient.layer],
112
+ },
113
+ ) {}
@@ -0,0 +1,4 @@
1
+ import type * as PS from "./Schema.js";
2
+
3
+ export const ZERO_ADDRESS: PS.Address =
4
+ "0x0000000000000000000000000000000000000000" as PS.Address;
package/src/Domain.ts ADDED
@@ -0,0 +1,52 @@
1
+ import { Brand } from "effect";
2
+ import type * as A from "effect/Array";
3
+ import * as Data from "effect/Data";
4
+ import * as S from "effect/Schema";
5
+ import type * as Viem from "viem";
6
+ import * as PS from "./Schema.js";
7
+
8
+ export type RequestKind = "approval" | "deposit" | "transfer";
9
+
10
+ export type PreparedRequest = Data.TaggedEnum<{
11
+ viem: {
12
+ kind: RequestKind;
13
+ request: Viem.PrepareTransactionRequestReturnType;
14
+ };
15
+ }>;
16
+ export const PreparedRequest = Data.taggedEnum<PreparedRequest>();
17
+
18
+ export type PreparedRequests = A.NonEmptyReadonlyArray<PreparedRequest>;
19
+
20
+ export type SignedRequest = Data.TaggedEnum<{
21
+ viem: {
22
+ value: Viem.SignTransactionReturnType;
23
+ };
24
+ }>;
25
+ export const SignedRequest = Data.taggedEnum<SignedRequest>();
26
+
27
+ export type SubmissionResult = Data.TaggedEnum<{
28
+ viemWriteContract: {
29
+ hash: TxHash;
30
+ };
31
+ }>;
32
+
33
+ export const SubmissionResult = Data.taggedEnum<SubmissionResult>();
34
+
35
+ export const CounterpartyInfo = S.Struct({
36
+ tokenAddressKey: PS.Hex,
37
+ balanceSlot: PS.Hex,
38
+ });
39
+ export type CounterpartyInfo = typeof CounterpartyInfo.Type;
40
+
41
+ export type Erc20Address = `0x${string}` & Brand.Brand<"Erc20Address">;
42
+ export const Erc20Address = Brand.nominal<Erc20Address>();
43
+ export type IbcHandlerAddress = `0x${string}` &
44
+ Brand.Brand<"IbcHandlerAddress">;
45
+ export const IbcHandlerAddress = Brand.nominal<IbcHandlerAddress>();
46
+ export type LightClientAddress = `0x${string}` &
47
+ Brand.Brand<"LightClientAddress">;
48
+ export const LightClientAddress = Brand.nominal<LightClientAddress>();
49
+ export type TxHash = `0x${string}` & Brand.Brand<"TxHash">;
50
+ export const TxHash = Brand.nominal<TxHash>();
51
+ export type ZAssetAddress = `0x${string}` & Brand.Brand<"ZAssetAddress">;
52
+ export const ZAssetAddress = Brand.nominal<ZAssetAddress>();
package/src/Error.ts ADDED
@@ -0,0 +1,163 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Cause from "effect/Cause";
5
+ import * as Data from "effect/Data";
6
+ import * as Predicate from "effect/Predicate";
7
+ import * as Schema from "effect/Schema";
8
+ import type { Simplify } from "effect/Types";
9
+
10
+ /**
11
+ * @since 1.0.0
12
+ * @category type id
13
+ */
14
+ export const TypeId: unique symbol = Symbol.for("@unionlabs/payments/Error");
15
+
16
+ /**
17
+ * @since 1.0.0
18
+ * @category type id
19
+ */
20
+ export type TypeId = typeof TypeId;
21
+
22
+ /**
23
+ * @since 1.0.0
24
+ * @category refinements
25
+ */
26
+ export const isSdkError = (u: unknown): u is SdkError =>
27
+ Predicate.hasProperty(u, TypeId);
28
+
29
+ /**
30
+ * @since 1.0.0
31
+ * @category error
32
+ */
33
+ export const TypeIdError = <
34
+ const TypeId extends symbol,
35
+ const Tag extends string,
36
+ >(
37
+ typeId: TypeId,
38
+ tag: Tag,
39
+ ): (new <A extends Record<string, any>>(
40
+ args: Simplify<A>,
41
+ ) => Cause.YieldableError &
42
+ Record<TypeId, TypeId> & { readonly _tag: Tag } & Readonly<A>) => {
43
+ class Base extends Data.Error<{}> {
44
+ readonly _tag = tag;
45
+ }
46
+ (Base.prototype as any)[typeId] = typeId;
47
+ (Base.prototype as any).name = tag;
48
+ return Base as any;
49
+ };
50
+
51
+ /**
52
+ * @since 1.0.0
53
+ * @category Models
54
+ */
55
+ export const Module = Schema.Literal(
56
+ "EvmWalletClient",
57
+ "EvmPublicClient",
58
+ "PaymentClient",
59
+ "Prover",
60
+ "Attestor",
61
+ "IbcCoreRegistry",
62
+ // "Clipboard",
63
+ // "Command",
64
+ // "FileSystem",
65
+ // "KeyValueStore",
66
+ // "Path",
67
+ // "Stream",
68
+ // "Terminal"
69
+ );
70
+
71
+ /**
72
+ * @since 1.0.0
73
+ * @category Models
74
+ */
75
+ export class BadArgument extends Schema.TaggedError<BadArgument>(
76
+ "@unionlabs/payments/Error/BadArgument",
77
+ )("BadArgument", {
78
+ module: Module,
79
+ method: Schema.String,
80
+ description: Schema.optional(Schema.String),
81
+ cause: Schema.optional(Schema.Defect),
82
+ }) {
83
+ /**
84
+ * @since 1.0.0
85
+ */
86
+ readonly [TypeId]: typeof TypeId = TypeId;
87
+
88
+ /**
89
+ * @since 1.0.0
90
+ */
91
+ get message(): string {
92
+ return `${this.module}.${this.method}${this.description ? `: ${this.description}` : ""}`;
93
+ }
94
+ }
95
+
96
+ /**
97
+ * @since 1.0.0
98
+ * @category Model
99
+ */
100
+ export const SystemErrorReason = Schema.Literal(
101
+ "DynamicImport",
102
+ "ReadContract",
103
+ // "BadResource",
104
+ // "Busy",
105
+ "InvalidData",
106
+ "SimulateCalls",
107
+ // "NotFound",
108
+ // "PermissionDenied",
109
+ // "TimedOut",
110
+ // "UnexpectedEof",
111
+ // "Unknown",
112
+ // "WouldBlock",
113
+ // "WriteZero"
114
+ );
115
+
116
+ /**
117
+ * @since 1.0.0
118
+ * @category Model
119
+ */
120
+ export type SystemErrorReason = typeof SystemErrorReason.Type;
121
+
122
+ /**
123
+ * @since 1.0.0
124
+ * @category models
125
+ */
126
+ export class SystemError extends Schema.TaggedError<SystemError>(
127
+ "@unionlabs/payments/Error/SystemError",
128
+ )("SystemError", {
129
+ reason: SystemErrorReason,
130
+ module: Module,
131
+ method: Schema.String,
132
+ description: Schema.optional(Schema.String),
133
+ syscall: Schema.optional(Schema.String),
134
+ pathOrDescriptor: Schema.optional(Schema.Union(Schema.String, Schema.Number)),
135
+ cause: Schema.optional(Schema.Defect),
136
+ }) {
137
+ /**
138
+ * @since 1.0.0
139
+ */
140
+ readonly [TypeId]: typeof TypeId = TypeId;
141
+
142
+ /**
143
+ * @since 1.0.0
144
+ */
145
+ get message(): string {
146
+ return `${this.reason}: ${this.module}.${this.method}${
147
+ this.pathOrDescriptor !== undefined ? ` (${this.pathOrDescriptor})` : ""
148
+ }${this.description ? `: ${this.description}` : ""}`;
149
+ }
150
+ }
151
+
152
+ /**
153
+ * @since 1.0.0
154
+ * @category Models
155
+ */
156
+ export type SdkError = BadArgument | SystemError;
157
+
158
+ /**
159
+ * @since 1.0.0
160
+ * @category Models
161
+ */
162
+ export const SdkError: Schema.Union<[typeof BadArgument, typeof SystemError]> =
163
+ Schema.Union(BadArgument, SystemError);