zerc20-client-sdk 0.1.15 → 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 (304) hide show
  1. package/README.md +239 -25
  2. package/dist/chain/__tests__/metadata.test.d.ts +2 -0
  3. package/dist/chain/__tests__/metadata.test.d.ts.map +1 -0
  4. package/dist/chain/__tests__/metadata.test.js +162 -0
  5. package/dist/chain/__tests__/metadata.test.js.map +1 -0
  6. package/dist/chain/index.d.ts +3 -0
  7. package/dist/chain/index.d.ts.map +1 -0
  8. package/dist/chain/index.js +2 -0
  9. package/dist/chain/index.js.map +1 -0
  10. package/dist/chain/metadata.d.ts +38 -0
  11. package/dist/chain/metadata.d.ts.map +1 -0
  12. package/dist/chain/metadata.js +158 -0
  13. package/dist/chain/metadata.js.map +1 -0
  14. package/dist/chain/types.d.ts +18 -0
  15. package/dist/chain/types.d.ts.map +1 -0
  16. package/dist/chain/types.js +2 -0
  17. package/dist/chain/types.js.map +1 -0
  18. package/dist/constants.d.ts +3 -3
  19. package/dist/constants.js +3 -3
  20. package/dist/ic/__tests__/connections.test.js +16 -152
  21. package/dist/ic/__tests__/connections.test.js.map +1 -1
  22. package/dist/ic/__tests__/recipient.test.d.ts +2 -0
  23. package/dist/ic/__tests__/recipient.test.d.ts.map +1 -0
  24. package/dist/ic/__tests__/recipient.test.js +47 -0
  25. package/dist/ic/__tests__/recipient.test.js.map +1 -0
  26. package/dist/ic/authorization.js +2 -2
  27. package/dist/ic/authorization.js.map +1 -1
  28. package/dist/ic/connections.d.ts +0 -50
  29. package/dist/ic/connections.d.ts.map +1 -1
  30. package/dist/ic/connections.js +0 -127
  31. package/dist/ic/connections.js.map +1 -1
  32. package/dist/ic/index.d.ts +4 -8
  33. package/dist/ic/index.d.ts.map +1 -1
  34. package/dist/ic/index.js +3 -8
  35. package/dist/ic/index.js.map +1 -1
  36. package/dist/ic/recipient.d.ts +10 -0
  37. package/dist/ic/recipient.d.ts.map +1 -1
  38. package/dist/ic/recipient.js +21 -1
  39. package/dist/ic/recipient.js.map +1 -1
  40. package/dist/index.d.ts +14 -5
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +8 -5
  43. package/dist/index.js.map +1 -1
  44. package/dist/onchain/__tests__/contracts.test.js +2 -32
  45. package/dist/onchain/__tests__/contracts.test.js.map +1 -1
  46. package/dist/onchain/__tests__/decode.test.d.ts +2 -0
  47. package/dist/onchain/__tests__/decode.test.d.ts.map +1 -0
  48. package/dist/onchain/__tests__/decode.test.js +155 -0
  49. package/dist/onchain/__tests__/decode.test.js.map +1 -0
  50. package/dist/onchain/__tests__/tokenReads.test.d.ts +2 -0
  51. package/dist/onchain/__tests__/tokenReads.test.d.ts.map +1 -0
  52. package/dist/onchain/__tests__/tokenReads.test.js +60 -0
  53. package/dist/onchain/__tests__/tokenReads.test.js.map +1 -0
  54. package/dist/onchain/contracts.d.ts +3 -29734
  55. package/dist/onchain/contracts.d.ts.map +1 -1
  56. package/dist/onchain/contracts.js +3 -59
  57. package/dist/onchain/contracts.js.map +1 -1
  58. package/dist/onchain/decode.d.ts +39 -0
  59. package/dist/onchain/decode.d.ts.map +1 -0
  60. package/dist/onchain/decode.js +100 -0
  61. package/dist/onchain/decode.js.map +1 -0
  62. package/dist/onchain/tokenReads.d.ts +30 -0
  63. package/dist/onchain/tokenReads.d.ts.map +1 -0
  64. package/dist/onchain/tokenReads.js +51 -0
  65. package/dist/onchain/tokenReads.js.map +1 -0
  66. package/dist/operations/__tests__/invoice.test.js +52 -1
  67. package/dist/operations/__tests__/invoice.test.js.map +1 -1
  68. package/dist/operations/__tests__/privateSendTransfer.test.d.ts +2 -0
  69. package/dist/operations/__tests__/privateSendTransfer.test.d.ts.map +1 -0
  70. package/dist/operations/__tests__/privateSendTransfer.test.js +60 -0
  71. package/dist/operations/__tests__/privateSendTransfer.test.js.map +1 -0
  72. package/dist/operations/__tests__/reexports.test.js +1 -1
  73. package/dist/operations/__tests__/reexports.test.js.map +1 -1
  74. package/dist/operations/__tests__/teleportProof.test.js +35 -75
  75. package/dist/operations/__tests__/teleportProof.test.js.map +1 -1
  76. package/dist/operations/invoice.d.ts +14 -0
  77. package/dist/operations/invoice.d.ts.map +1 -1
  78. package/dist/operations/invoice.js +22 -0
  79. package/dist/operations/invoice.js.map +1 -1
  80. package/dist/operations/layerzeroScan/__tests__/codec.decode.test.d.ts +2 -0
  81. package/dist/operations/layerzeroScan/__tests__/codec.decode.test.d.ts.map +1 -0
  82. package/dist/operations/layerzeroScan/__tests__/codec.decode.test.js +57 -0
  83. package/dist/operations/layerzeroScan/__tests__/codec.decode.test.js.map +1 -0
  84. package/dist/operations/layerzeroScan/__tests__/codec.test.d.ts +2 -0
  85. package/dist/operations/layerzeroScan/__tests__/codec.test.d.ts.map +1 -0
  86. package/dist/operations/layerzeroScan/__tests__/codec.test.js +120 -0
  87. package/dist/operations/layerzeroScan/__tests__/codec.test.js.map +1 -0
  88. package/dist/operations/layerzeroScan/__tests__/formatters.test.d.ts +2 -0
  89. package/dist/operations/layerzeroScan/__tests__/formatters.test.d.ts.map +1 -0
  90. package/dist/operations/layerzeroScan/__tests__/formatters.test.js +164 -0
  91. package/dist/operations/layerzeroScan/__tests__/formatters.test.js.map +1 -0
  92. package/dist/operations/layerzeroScan/__tests__/integration.test.d.ts +2 -0
  93. package/dist/operations/layerzeroScan/__tests__/integration.test.d.ts.map +1 -0
  94. package/dist/operations/layerzeroScan/__tests__/integration.test.js +164 -0
  95. package/dist/operations/layerzeroScan/__tests__/integration.test.js.map +1 -0
  96. package/dist/operations/layerzeroScan/__tests__/scan.test.d.ts +2 -0
  97. package/dist/operations/layerzeroScan/__tests__/scan.test.d.ts.map +1 -0
  98. package/dist/operations/layerzeroScan/__tests__/scan.test.js +103 -0
  99. package/dist/operations/layerzeroScan/__tests__/scan.test.js.map +1 -0
  100. package/dist/operations/layerzeroScan/__tests__/status.test.d.ts +2 -0
  101. package/dist/operations/layerzeroScan/__tests__/status.test.d.ts.map +1 -0
  102. package/dist/operations/layerzeroScan/__tests__/status.test.js +153 -0
  103. package/dist/operations/layerzeroScan/__tests__/status.test.js.map +1 -0
  104. package/dist/operations/layerzeroScan/codec.d.ts +34 -0
  105. package/dist/operations/layerzeroScan/codec.d.ts.map +1 -0
  106. package/dist/operations/layerzeroScan/codec.js +79 -0
  107. package/dist/operations/layerzeroScan/codec.js.map +1 -0
  108. package/dist/operations/layerzeroScan/formatters.d.ts +26 -0
  109. package/dist/operations/layerzeroScan/formatters.d.ts.map +1 -0
  110. package/dist/operations/layerzeroScan/formatters.js +75 -0
  111. package/dist/operations/layerzeroScan/formatters.js.map +1 -0
  112. package/dist/operations/layerzeroScan/index.d.ts +9 -0
  113. package/dist/operations/layerzeroScan/index.d.ts.map +1 -0
  114. package/dist/operations/layerzeroScan/index.js +12 -0
  115. package/dist/operations/layerzeroScan/index.js.map +1 -0
  116. package/dist/operations/layerzeroScan/scan.d.ts +21 -0
  117. package/dist/operations/layerzeroScan/scan.d.ts.map +1 -0
  118. package/dist/operations/layerzeroScan/scan.js +70 -0
  119. package/dist/operations/layerzeroScan/scan.js.map +1 -0
  120. package/dist/operations/layerzeroScan/status.d.ts +17 -0
  121. package/dist/operations/layerzeroScan/status.d.ts.map +1 -0
  122. package/dist/operations/layerzeroScan/status.js +178 -0
  123. package/dist/operations/layerzeroScan/status.js.map +1 -0
  124. package/dist/operations/layerzeroScan/types.d.ts +181 -0
  125. package/dist/operations/layerzeroScan/types.d.ts.map +1 -0
  126. package/dist/operations/layerzeroScan/types.js +5 -0
  127. package/dist/operations/layerzeroScan/types.js.map +1 -0
  128. package/dist/operations/layerzeroScan.d.ts +5 -0
  129. package/dist/operations/layerzeroScan.d.ts.map +1 -0
  130. package/dist/operations/layerzeroScan.js +5 -0
  131. package/dist/operations/layerzeroScan.js.map +1 -0
  132. package/dist/operations/liquidityManager/__tests__/balance.test.js +24 -37
  133. package/dist/operations/liquidityManager/__tests__/balance.test.js.map +1 -1
  134. package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.js +51 -31
  135. package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.js.map +1 -1
  136. package/dist/operations/liquidityManager/__tests__/helpers.test.js +11 -8
  137. package/dist/operations/liquidityManager/__tests__/helpers.test.js.map +1 -1
  138. package/dist/operations/liquidityManager/__tests__/unwrap.test.js +68 -82
  139. package/dist/operations/liquidityManager/__tests__/unwrap.test.js.map +1 -1
  140. package/dist/operations/liquidityManager/__tests__/wrap.test.js +55 -64
  141. package/dist/operations/liquidityManager/__tests__/wrap.test.js.map +1 -1
  142. package/dist/operations/liquidityManager/abi.d.ts +57 -0
  143. package/dist/operations/liquidityManager/abi.d.ts.map +1 -0
  144. package/dist/operations/liquidityManager/abi.js +41 -0
  145. package/dist/operations/liquidityManager/abi.js.map +1 -0
  146. package/dist/operations/liquidityManager/balance.d.ts +3 -3
  147. package/dist/operations/liquidityManager/balance.d.ts.map +1 -1
  148. package/dist/operations/liquidityManager/balance.js +22 -15
  149. package/dist/operations/liquidityManager/balance.js.map +1 -1
  150. package/dist/operations/liquidityManager/crossUnwrap.d.ts +13 -11
  151. package/dist/operations/liquidityManager/crossUnwrap.d.ts.map +1 -1
  152. package/dist/operations/liquidityManager/crossUnwrap.js +44 -20
  153. package/dist/operations/liquidityManager/crossUnwrap.js.map +1 -1
  154. package/dist/operations/liquidityManager/helpers.d.ts +10 -15474
  155. package/dist/operations/liquidityManager/helpers.d.ts.map +1 -1
  156. package/dist/operations/liquidityManager/helpers.js +28 -18
  157. package/dist/operations/liquidityManager/helpers.js.map +1 -1
  158. package/dist/operations/liquidityManager/index.d.ts +1 -0
  159. package/dist/operations/liquidityManager/index.d.ts.map +1 -1
  160. package/dist/operations/liquidityManager/index.js +2 -0
  161. package/dist/operations/liquidityManager/index.js.map +1 -1
  162. package/dist/operations/liquidityManager/types.d.ts +1 -1
  163. package/dist/operations/liquidityManager/types.d.ts.map +1 -1
  164. package/dist/operations/liquidityManager/unwrap.d.ts +9 -9
  165. package/dist/operations/liquidityManager/unwrap.d.ts.map +1 -1
  166. package/dist/operations/liquidityManager/unwrap.js +48 -24
  167. package/dist/operations/liquidityManager/unwrap.js.map +1 -1
  168. package/dist/operations/liquidityManager/wrap.d.ts +7 -7
  169. package/dist/operations/liquidityManager/wrap.d.ts.map +1 -1
  170. package/dist/operations/liquidityManager/wrap.js +35 -16
  171. package/dist/operations/liquidityManager/wrap.js.map +1 -1
  172. package/dist/operations/privateSend.d.ts +33 -0
  173. package/dist/operations/privateSend.d.ts.map +1 -1
  174. package/dist/operations/privateSend.js +26 -0
  175. package/dist/operations/privateSend.js.map +1 -1
  176. package/dist/operations/receive/__tests__/announcementStatus.test.js +34 -11
  177. package/dist/operations/receive/__tests__/announcementStatus.test.js.map +1 -1
  178. package/dist/operations/receive/__tests__/cache.test.js +28 -167
  179. package/dist/operations/receive/__tests__/cache.test.js.map +1 -1
  180. package/dist/operations/receive/__tests__/createVerifierReader.test.d.ts +2 -0
  181. package/dist/operations/receive/__tests__/createVerifierReader.test.d.ts.map +1 -0
  182. package/dist/operations/receive/__tests__/createVerifierReader.test.js +28 -0
  183. package/dist/operations/receive/__tests__/createVerifierReader.test.js.map +1 -0
  184. package/dist/operations/receive/__tests__/helpers.test.js +9 -9
  185. package/dist/operations/receive/__tests__/helpers.test.js.map +1 -1
  186. package/dist/operations/receive/__tests__/redeemTransaction.test.d.ts +2 -0
  187. package/dist/operations/receive/__tests__/redeemTransaction.test.d.ts.map +1 -0
  188. package/dist/operations/receive/__tests__/redeemTransaction.test.js +258 -0
  189. package/dist/operations/receive/__tests__/redeemTransaction.test.js.map +1 -0
  190. package/dist/operations/receive/__tests__/submitRedeem.test.d.ts +2 -0
  191. package/dist/operations/receive/__tests__/submitRedeem.test.d.ts.map +1 -0
  192. package/dist/operations/receive/__tests__/submitRedeem.test.js +58 -0
  193. package/dist/operations/receive/__tests__/submitRedeem.test.js.map +1 -0
  194. package/dist/operations/receive/announcementStatus.d.ts +1 -1
  195. package/dist/operations/receive/announcementStatus.d.ts.map +1 -1
  196. package/dist/operations/receive/announcementStatus.js +7 -5
  197. package/dist/operations/receive/announcementStatus.js.map +1 -1
  198. package/dist/operations/receive/cache.d.ts +0 -18
  199. package/dist/operations/receive/cache.d.ts.map +1 -1
  200. package/dist/operations/receive/cache.js +0 -30
  201. package/dist/operations/receive/cache.js.map +1 -1
  202. package/dist/operations/receive/helpers.d.ts +14 -3
  203. package/dist/operations/receive/helpers.d.ts.map +1 -1
  204. package/dist/operations/receive/helpers.js +33 -3
  205. package/dist/operations/receive/helpers.js.map +1 -1
  206. package/dist/operations/receive/index.d.ts +6 -2
  207. package/dist/operations/receive/index.d.ts.map +1 -1
  208. package/dist/operations/receive/index.js +6 -1
  209. package/dist/operations/receive/index.js.map +1 -1
  210. package/dist/operations/receive/redeemTransaction.d.ts +30 -0
  211. package/dist/operations/receive/redeemTransaction.d.ts.map +1 -0
  212. package/dist/operations/receive/redeemTransaction.js +104 -0
  213. package/dist/operations/receive/redeemTransaction.js.map +1 -0
  214. package/dist/operations/receive/submitRedeem.d.ts +32 -0
  215. package/dist/operations/receive/submitRedeem.d.ts.map +1 -0
  216. package/dist/operations/receive/submitRedeem.js +27 -0
  217. package/dist/operations/receive/submitRedeem.js.map +1 -0
  218. package/dist/operations/receive/types.d.ts +53 -5
  219. package/dist/operations/receive/types.d.ts.map +1 -1
  220. package/dist/operations/teleportProof.d.ts +10 -31
  221. package/dist/operations/teleportProof.d.ts.map +1 -1
  222. package/dist/operations/teleportProof.js +14 -26
  223. package/dist/operations/teleportProof.js.map +1 -1
  224. package/dist/registry/__tests__/helpers.test.js +2 -44
  225. package/dist/registry/__tests__/helpers.test.js.map +1 -1
  226. package/dist/registry/__tests__/loader.test.js +17 -191
  227. package/dist/registry/__tests__/loader.test.js.map +1 -1
  228. package/dist/registry/__tests__/normalize.test.js +109 -1
  229. package/dist/registry/__tests__/normalize.test.js.map +1 -1
  230. package/dist/registry/helpers.d.ts +0 -7
  231. package/dist/registry/helpers.d.ts.map +1 -1
  232. package/dist/registry/helpers.js +0 -14
  233. package/dist/registry/helpers.js.map +1 -1
  234. package/dist/registry/index.d.ts +5 -5
  235. package/dist/registry/index.d.ts.map +1 -1
  236. package/dist/registry/index.js +4 -4
  237. package/dist/registry/index.js.map +1 -1
  238. package/dist/registry/loader.d.ts +0 -25
  239. package/dist/registry/loader.d.ts.map +1 -1
  240. package/dist/registry/loader.js +0 -68
  241. package/dist/registry/loader.js.map +1 -1
  242. package/dist/registry/normalize.d.ts +13 -1
  243. package/dist/registry/normalize.d.ts.map +1 -1
  244. package/dist/registry/normalize.js +43 -0
  245. package/dist/registry/normalize.js.map +1 -1
  246. package/dist/registry/types.d.ts +13 -2
  247. package/dist/registry/types.d.ts.map +1 -1
  248. package/dist/types/__tests__/evm.test.d.ts +2 -0
  249. package/dist/types/__tests__/evm.test.d.ts.map +1 -0
  250. package/dist/types/__tests__/evm.test.js +15 -0
  251. package/dist/types/__tests__/evm.test.js.map +1 -0
  252. package/dist/types/evm.d.ts +95 -0
  253. package/dist/types/evm.d.ts.map +1 -0
  254. package/dist/types/evm.js +11 -0
  255. package/dist/types/evm.js.map +1 -0
  256. package/dist/types.d.ts +15 -13
  257. package/dist/types.d.ts.map +1 -1
  258. package/dist/utils/__tests__/fees.test.js +66 -29
  259. package/dist/utils/__tests__/fees.test.js.map +1 -1
  260. package/dist/utils/__tests__/hex.test.js +64 -1
  261. package/dist/utils/__tests__/hex.test.js.map +1 -1
  262. package/dist/utils/__tests__/http.test.js +2 -64
  263. package/dist/utils/__tests__/http.test.js.map +1 -1
  264. package/dist/utils/fees.d.ts +7 -2
  265. package/dist/utils/fees.d.ts.map +1 -1
  266. package/dist/utils/fees.js +32 -16
  267. package/dist/utils/fees.js.map +1 -1
  268. package/dist/utils/hex.d.ts +11 -0
  269. package/dist/utils/hex.d.ts.map +1 -1
  270. package/dist/utils/hex.js +16 -1
  271. package/dist/utils/hex.js.map +1 -1
  272. package/dist/utils/http.d.ts +0 -27
  273. package/dist/utils/http.d.ts.map +1 -1
  274. package/dist/utils/http.js +0 -36
  275. package/dist/utils/http.js.map +1 -1
  276. package/dist/wasm/__tests__/functions.test.js +56 -1
  277. package/dist/wasm/__tests__/functions.test.js.map +1 -1
  278. package/dist/wasm/functions.d.ts +6 -0
  279. package/dist/wasm/functions.d.ts.map +1 -1
  280. package/dist/wasm/functions.js +17 -0
  281. package/dist/wasm/functions.js.map +1 -1
  282. package/dist/wasm/index.d.ts +1 -1
  283. package/dist/wasm/index.d.ts.map +1 -1
  284. package/dist/wasm/index.js +1 -1
  285. package/dist/wasm/index.js.map +1 -1
  286. package/dist/zkp/__tests__/proofService.test.js +34 -52
  287. package/dist/zkp/__tests__/proofService.test.js.map +1 -1
  288. package/dist/zkp/__tests__/workerClient.test.js +1 -40
  289. package/dist/zkp/__tests__/workerClient.test.js.map +1 -1
  290. package/dist/zkp/index.d.ts +1 -1
  291. package/dist/zkp/index.d.ts.map +1 -1
  292. package/dist/zkp/index.js +1 -1
  293. package/dist/zkp/index.js.map +1 -1
  294. package/dist/zkp/proofService.d.ts +6 -2
  295. package/dist/zkp/proofService.d.ts.map +1 -1
  296. package/dist/zkp/proofService.js +12 -15
  297. package/dist/zkp/proofService.js.map +1 -1
  298. package/dist/zkp/worker.js +13 -137
  299. package/dist/zkp/worker.js.map +1 -1
  300. package/dist/zkp/workerClient.d.ts +0 -24
  301. package/dist/zkp/workerClient.d.ts.map +1 -1
  302. package/dist/zkp/workerClient.js +0 -36
  303. package/dist/zkp/workerClient.js.map +1 -1
  304. package/package.json +3 -4
@@ -0,0 +1,30 @@
1
+ import type { PrepareRedeemTransactionParams, RedeemContext, RedeemTransaction } from "./types.js";
2
+ import type { BurnArtifacts } from "../../types.js";
3
+ /**
4
+ * Prepare a redeem transaction from a collected redeem context.
5
+ *
6
+ * @remarks
7
+ * - If there is exactly one eligible event, a single teleport proof is generated.
8
+ * - If there are multiple eligible events, a batch (Nova + Decider) proof is generated.
9
+ * - The returned object contains pure data (`address`, `abi`, `functionName`, `args`)
10
+ * suitable for passing directly to `writeContract`.
11
+ *
12
+ * @throws {Error} If no eligible events exist.
13
+ * @throws {Error} If batch redeem is needed but no decider client is provided.
14
+ */
15
+ export declare function prepareRedeemTransaction(params: PrepareRedeemTransactionParams): Promise<RedeemTransaction>;
16
+ /**
17
+ * Build a batch redeem transaction from pre-computed proof bytes.
18
+ *
19
+ * Pure function: converts decider proof bytes to hex, assembles the GeneralRecipient,
20
+ * and returns a transaction struct ready for `writeContract`.
21
+ *
22
+ * Use this when the caller needs to control the Nova → UI update → Decider
23
+ * sequence themselves (e.g. to update progress UI between proof steps).
24
+ */
25
+ export declare function buildBatchRedeemTransaction(params: {
26
+ redeemContext: RedeemContext;
27
+ burn: BurnArtifacts;
28
+ deciderProof: Uint8Array;
29
+ }): RedeemTransaction;
30
+ //# sourceMappingURL=redeemTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redeemTransaction.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/redeemTransaction.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,8BAA8B,EAC9B,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAoBpD;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,iBAAiB,CAAC,CAqD5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,UAAU,CAAC;CAC1B,GAAG,iBAAiB,CAcpB"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Prepare a redeem transaction for on-chain submission.
3
+ *
4
+ * Encapsulates single vs batch proof selection, GeneralRecipient construction,
5
+ * and contract call parameter assembly so that callers do not need protocol knowledge.
6
+ */
7
+ import { padHex } from "viem";
8
+ import { VerifierArtifact } from "../../onchain/contracts.js";
9
+ import { bytesToHex, normalizeHex } from "../../utils/hex.js";
10
+ /**
11
+ * Pad a 20-byte EVM address to a 32-byte hex string.
12
+ */
13
+ function padAddressToBytes32(address) {
14
+ return padHex(normalizeHex(address), { size: 32 });
15
+ }
16
+ /**
17
+ * Build the on-chain GeneralRecipient struct from burn artifacts.
18
+ */
19
+ function buildOnChainGeneralRecipient(burn) {
20
+ return {
21
+ chainId: burn.generalRecipient.chainId,
22
+ recipient: padAddressToBytes32(burn.generalRecipient.address),
23
+ tweak: burn.generalRecipient.tweak,
24
+ };
25
+ }
26
+ /**
27
+ * Prepare a redeem transaction from a collected redeem context.
28
+ *
29
+ * @remarks
30
+ * - If there is exactly one eligible event, a single teleport proof is generated.
31
+ * - If there are multiple eligible events, a batch (Nova + Decider) proof is generated.
32
+ * - The returned object contains pure data (`address`, `abi`, `functionName`, `args`)
33
+ * suitable for passing directly to `writeContract`.
34
+ *
35
+ * @throws {Error} If no eligible events exist.
36
+ * @throws {Error} If batch redeem is needed but no decider client is provided.
37
+ */
38
+ export async function prepareRedeemTransaction(params) {
39
+ const { redeemContext, burn, teleportProofClient, decider } = params;
40
+ const { eligible } = redeemContext.events;
41
+ if (eligible.length === 0) {
42
+ throw new Error("No eligible events to redeem");
43
+ }
44
+ const { globalProofs } = redeemContext;
45
+ if (globalProofs.length !== eligible.length) {
46
+ throw new Error(`Proof/event count mismatch: ${globalProofs.length} proofs for ${eligible.length} eligible events`);
47
+ }
48
+ const gr = buildOnChainGeneralRecipient(burn);
49
+ const address = normalizeHex(redeemContext.token.verifierAddress);
50
+ const abi = VerifierArtifact.abi;
51
+ if (eligible.length === 1) {
52
+ const singleProof = await teleportProofClient.createSingleTeleportProof({
53
+ aggregationState: redeemContext.aggregationState,
54
+ recipientFr: burn.generalRecipient.fr,
55
+ secretHex: burn.secret,
56
+ event: eligible[0],
57
+ proof: redeemContext.globalProofs[0],
58
+ });
59
+ return {
60
+ mode: "single",
61
+ address,
62
+ abi,
63
+ functionName: "singleTeleport",
64
+ args: [true, redeemContext.aggregationState.latestAggSeq, gr, singleProof.proofCalldata],
65
+ };
66
+ }
67
+ // Batch redeem
68
+ if (!decider) {
69
+ throw new Error("Decider client is required for batch redeem");
70
+ }
71
+ const novaResult = await teleportProofClient.createNovaProof({
72
+ aggregationState: redeemContext.aggregationState,
73
+ recipientFr: burn.generalRecipient.fr,
74
+ secretHex: burn.secret,
75
+ events: eligible,
76
+ proofs: redeemContext.globalProofs,
77
+ });
78
+ const deciderProof = await teleportProofClient.requestDeciderProof(decider, novaResult.ivcProof);
79
+ return buildBatchRedeemTransaction({ redeemContext, burn, deciderProof });
80
+ }
81
+ /**
82
+ * Build a batch redeem transaction from pre-computed proof bytes.
83
+ *
84
+ * Pure function: converts decider proof bytes to hex, assembles the GeneralRecipient,
85
+ * and returns a transaction struct ready for `writeContract`.
86
+ *
87
+ * Use this when the caller needs to control the Nova → UI update → Decider
88
+ * sequence themselves (e.g. to update progress UI between proof steps).
89
+ */
90
+ export function buildBatchRedeemTransaction(params) {
91
+ const { redeemContext, burn, deciderProof } = params;
92
+ const gr = buildOnChainGeneralRecipient(burn);
93
+ const address = normalizeHex(redeemContext.token.verifierAddress);
94
+ const abi = VerifierArtifact.abi;
95
+ const deciderProofHex = bytesToHex(deciderProof);
96
+ return {
97
+ mode: "batch",
98
+ address,
99
+ abi,
100
+ functionName: "teleport",
101
+ args: [true, redeemContext.aggregationState.latestAggSeq, gr, deciderProofHex],
102
+ };
103
+ }
104
+ //# sourceMappingURL=redeemTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redeemTransaction.js","sourceRoot":"","sources":["../../../src/operations/receive/redeemTransaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Submit a prepared redeem transaction on-chain.
3
+ */
4
+ import type { EvmReadProvider, EvmWriteProvider, Hex } from "../../types/evm.js";
5
+ import { type FeeOverrides } from "../../utils/fees.js";
6
+ import type { RedeemTransaction } from "./types.js";
7
+ /**
8
+ * Parameters for {@link submitRedeemTransaction}.
9
+ */
10
+ export interface SubmitRedeemTransactionParams {
11
+ /** EVM write provider (e.g. wallet client). */
12
+ writeProvider: EvmWriteProvider;
13
+ /** Transaction data from `prepareRedeemTransaction` or `buildBatchRedeemTransaction`. */
14
+ tx: RedeemTransaction;
15
+ /** Optional fee overrides from `buildFeeOverrides`. */
16
+ feeOverrides?: FeeOverrides;
17
+ /**
18
+ * EVM read provider for awaiting the receipt.
19
+ * Falls back to `writeProvider` if it exposes `waitForTransactionReceipt`.
20
+ */
21
+ readProvider?: EvmReadProvider;
22
+ }
23
+ /**
24
+ * Submit a prepared redeem transaction and wait for its receipt.
25
+ *
26
+ * @returns The confirmed transaction hash.
27
+ * @throws If the write provider rejects the transaction or the receipt cannot be obtained.
28
+ */
29
+ export declare function submitRedeemTransaction(params: SubmitRedeemTransactionParams): Promise<{
30
+ transactionHash: Hex;
31
+ }>;
32
+ //# sourceMappingURL=submitRedeem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitRedeem.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/submitRedeem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,+CAA+C;IAC/C,aAAa,EAAE,gBAAgB,CAAC;IAChC,yFAAyF;IACzF,EAAE,EAAE,iBAAiB,CAAC;IACtB,uDAAuD;IACvD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC;IAAE,eAAe,EAAE,GAAG,CAAA;CAAE,CAAC,CAiBnC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Submit a prepared redeem transaction on-chain.
3
+ */
4
+ import { receiptProvider } from "../liquidityManager/helpers.js";
5
+ import { spreadFeeOverrides } from "../../utils/fees.js";
6
+ /**
7
+ * Submit a prepared redeem transaction and wait for its receipt.
8
+ *
9
+ * @returns The confirmed transaction hash.
10
+ * @throws If the write provider rejects the transaction or the receipt cannot be obtained.
11
+ */
12
+ export async function submitRedeemTransaction(params) {
13
+ const { writeProvider, tx, feeOverrides, readProvider } = params;
14
+ const hash = (await writeProvider.writeContract({
15
+ address: tx.address,
16
+ abi: tx.abi,
17
+ functionName: tx.functionName,
18
+ args: [...tx.args],
19
+ account: writeProvider.account?.address,
20
+ chain: writeProvider.chain,
21
+ ...spreadFeeOverrides(feeOverrides),
22
+ }));
23
+ const receipt = receiptProvider(writeProvider, readProvider);
24
+ await receipt.waitForTransactionReceipt({ hash });
25
+ return { transactionHash: hash };
26
+ }
27
+ //# sourceMappingURL=submitRedeem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitRedeem.js","sourceRoot":"","sources":["../../../src/operations/receive/submitRedeem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAqB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAoB5E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAqC;IAErC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEjE,MAAM,IAAI,GAAG,CAAC,MAAM,aAAa,CAAC,aAAa,CAAC;QAC9C,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,GAAG,EAAE,EAAE,CAAC,GAAyB;QACjC,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAClB,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO;QACvC,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,GAAG,kBAAkB,CAAC,YAAY,CAAC;KACpC,CAAC,CAAQ,CAAC;IAEX,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,OAAO,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC"}
@@ -3,11 +3,14 @@
3
3
  */
4
4
  import type { TokenEntry } from "../../registry/tokens.js";
5
5
  import type { AggregationTreeState, BurnArtifacts, EventsWithEligibility, GlobalTeleportProofWithEvent, LocalTeleportProof, SeparatedChainEvents } from "../../types.js";
6
+ import type { HttpDeciderClient } from "../../decider/prover.js";
7
+ import type { TeleportProofClient } from "../teleportProof.js";
6
8
  /**
7
- * Minimal viem-style verifier contract shape used by receive operations.
8
- * @remarks This matches contracts created by `viem.getContract(...)`.
9
+ * Minimal readable verifier contract shape used by receive operations.
10
+ * @remarks This matches contracts created by `viem.getContract(...)` or similar helpers
11
+ * in other libraries that expose a `.read` namespace.
9
12
  */
10
- export type ViemVerifierContract = {
13
+ export type ReadableVerifierContract = {
11
14
  read: {
12
15
  totalTeleported: (args: readonly [string]) => Promise<bigint | number | string>;
13
16
  };
@@ -22,7 +25,7 @@ export type LegacyVerifierContract = {
22
25
  /**
23
26
  * Union type accepted by receive operations for verifier contracts.
24
27
  */
25
- export type VerifierContractLike = ViemVerifierContract | LegacyVerifierContract;
28
+ export type VerifierContractLike = ReadableVerifierContract | LegacyVerifierContract;
26
29
  /**
27
30
  * Per-chain breakdown for redeem context.
28
31
  */
@@ -134,8 +137,53 @@ export interface AnnouncementStatusParams {
134
137
  eventBlockSpan?: bigint | number;
135
138
  /**
136
139
  * Optional cache TTL for aggregation tree state reads (in milliseconds).
137
- * @remarks When provided, aggregation state is fetched via the default cache manager.
140
+ * @remarks Only effective when `cacheManager` is also provided. Without a cache manager, this value is ignored and aggregation state is fetched directly every time.
138
141
  */
139
142
  cacheTtlMs?: number;
143
+ /** Optional cache manager for aggregation tree state. When provided, `cacheTtlMs` controls TTL-based invalidation. */
144
+ cacheManager?: import("./cache.js").AggregationStateCacheManager;
145
+ }
146
+ /**
147
+ * On-chain GeneralRecipient struct matching the Verifier contract ABI.
148
+ */
149
+ export interface OnChainGeneralRecipient {
150
+ /** Destination chain id (uint64). */
151
+ chainId: bigint;
152
+ /** Recipient address padded to bytes32. */
153
+ recipient: string;
154
+ /** Recipient tweak (bytes32). */
155
+ tweak: string;
156
+ }
157
+ /**
158
+ * Prepared redeem transaction data ready to be submitted via `writeContract`.
159
+ *
160
+ * @remarks
161
+ * The SDK does not depend on wagmi/wallet — callers use these fields
162
+ * to construct the actual `writeContract` call themselves.
163
+ */
164
+ export interface RedeemTransaction {
165
+ /** Whether this is a single or batch redeem. */
166
+ mode: "single" | "batch";
167
+ /** Verifier contract address (normalized, `0x`-prefixed). */
168
+ address: `0x${string}`;
169
+ /** Verifier contract ABI. */
170
+ abi: typeof import("../../onchain/contracts.js").VerifierArtifact.abi;
171
+ /** Contract function to call. */
172
+ functionName: "singleTeleport" | "teleport";
173
+ /** Contract call arguments: `[isValid, latestAggSeq, generalRecipient, proof]`. */
174
+ args: readonly [boolean, bigint, OnChainGeneralRecipient, string];
175
+ }
176
+ /**
177
+ * Parameters for {@link prepareRedeemTransaction}.
178
+ */
179
+ export interface PrepareRedeemTransactionParams {
180
+ /** Redeem context produced by `collectRedeemContext`. */
181
+ redeemContext: RedeemContext;
182
+ /** Burn artifacts for the recipient. */
183
+ burn: BurnArtifacts;
184
+ /** Teleport proof client for single/batch proof generation. */
185
+ teleportProofClient: TeleportProofClient;
186
+ /** Decider client (required for batch redeems). */
187
+ decider?: HttpDeciderClient;
140
188
  }
141
189
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/types.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,9 @@
1
1
  import type { HttpDeciderClient } from "../decider/prover.js";
2
- import type { NovaProverInput, SingleTeleportArtifacts, SingleTeleportParams } from "../types.js";
2
+ import type { NovaProverInput, NovaProverOutput, SingleTeleportArtifacts, SingleTeleportParams } from "../types.js";
3
3
  import type { WasmRuntimeOptions } from "../wasm/index.js";
4
4
  import { WasmRuntime } from "../wasm/index.js";
5
5
  import { ProofService } from "../zkp/proofService.js";
6
- /**
7
- * Output artifacts for a batch teleport proof.
8
- *
9
- * The `deciderProof` is the Groth16 proof produced by the decider service from the Nova IVC proof.
10
- */
11
- export interface BatchTeleportArtifacts {
12
- /** Groth16 proof bytes returned by the decider service. */
13
- deciderProof: Uint8Array;
14
- /** Nova IVC proof bytes. */
15
- ivcProof: Uint8Array;
16
- /** Final state returned by the Nova prover (hex strings). */
17
- finalState: string[];
18
- /** Number of steps proven (including dummy padding). */
19
- steps: number;
20
- }
21
- /**
22
- * Parameters for creating a batch teleport proof.
23
- *
24
- * Extends the Nova prover input with the decider client and an optional hook that can be used to update UI.
25
- */
26
- export interface BatchTeleportParams extends NovaProverInput {
27
- /** Decider HTTP client used to convert Nova proof to a Groth16 proof. */
28
- decider: HttpDeciderClient;
29
- /** Optional hook invoked after Nova proof generation and before the decider request. */
30
- onDeciderRequestStart?: () => void | Promise<void>;
31
- }
6
+ import { ZkpWorkerClient } from "../zkp/workerClient.js";
32
7
  type WasmInit = WasmRuntime | WasmRuntimeOptions | undefined;
33
8
  type ProofServiceInit = ProofService | undefined;
34
9
  export interface TeleportProofClientOptions {
@@ -36,6 +11,8 @@ export interface TeleportProofClientOptions {
36
11
  wasm?: WasmInit;
37
12
  /** Optional proof service (useful for testing or custom wiring). */
38
13
  proofs?: ProofServiceInit;
14
+ /** Optional worker client for off-main-thread proof generation. Defaults to a new ZkpWorkerClient. */
15
+ workerClient?: ZkpWorkerClient;
39
16
  }
40
17
  /**
41
18
  * High-level proof client for teleport operations.
@@ -50,11 +27,13 @@ export declare class TeleportProofClient {
50
27
  */
51
28
  createSingleTeleportProof(params: SingleTeleportParams): Promise<SingleTeleportArtifacts>;
52
29
  /**
53
- * Create a batch teleport proof (Nova + Decider).
54
- *
55
- * @throws Error if Nova proof generation fails or the decider request fails.
30
+ * Run the Nova prover to produce an IVC proof.
31
+ */
32
+ createNovaProof(params: NovaProverInput): Promise<NovaProverOutput>;
33
+ /**
34
+ * Request a Groth16 decider proof from the decider service.
56
35
  */
57
- createBatchTeleportProof(params: BatchTeleportParams): Promise<BatchTeleportArtifacts>;
36
+ requestDeciderProof(decider: HttpDeciderClient, ivcProof: Uint8Array): Promise<Uint8Array>;
58
37
  }
59
38
  /**
60
39
  * Create a TeleportProofClient with optional custom WASM runtime and proof service.
@@ -1 +1 @@
1
- {"version":3,"file":"teleportProof.d.ts","sourceRoot":"","sources":["../../src/operations/teleportProof.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,YAAY,EAAE,UAAU,CAAC;IACzB,4BAA4B;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,yEAAyE;IACzE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,wFAAwF;IACxF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED,KAAK,QAAQ,GAAG,WAAW,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAC7D,KAAK,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAEjD;;OAEG;IACG,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAI/F;;;;OAIG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAyB7F;AAUD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAIrB"}
1
+ {"version":3,"file":"teleportProof.d.ts","sourceRoot":"","sources":["../../src/operations/teleportProof.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,KAAK,QAAQ,GAAG,WAAW,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAC7D,KAAK,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,sGAAsG;IACtG,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAEjD;;OAEG;IACG,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAI/F;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIzE;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAGjG;AAcD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAKrB"}
@@ -1,5 +1,6 @@
1
1
  import { WasmRuntime } from "../wasm/index.js";
2
2
  import { ProofService } from "../zkp/proofService.js";
3
+ import { ZkpWorkerClient } from "../zkp/workerClient.js";
3
4
  /**
4
5
  * High-level proof client for teleport operations.
5
6
  *
@@ -17,44 +18,31 @@ export class TeleportProofClient {
17
18
  return this.proofs.createSingleTeleportProof(params);
18
19
  }
19
20
  /**
20
- * Create a batch teleport proof (Nova + Decider).
21
- *
22
- * @throws Error if Nova proof generation fails or the decider request fails.
21
+ * Run the Nova prover to produce an IVC proof.
23
22
  */
24
- async createBatchTeleportProof(params) {
25
- const { decider, onDeciderRequestStart } = params;
26
- const novaInput = {
27
- aggregationState: params.aggregationState,
28
- recipientFr: params.recipientFr,
29
- secretHex: params.secretHex,
30
- proofs: params.proofs,
31
- events: params.events,
32
- };
33
- const novaResult = await this.proofs.runNovaProver(novaInput);
34
- if (onDeciderRequestStart) {
35
- await onDeciderRequestStart();
36
- }
37
- const deciderProof = await decider.produceDeciderProof("withdraw_global", novaResult.ivcProof);
38
- return {
39
- deciderProof,
40
- ivcProof: novaResult.ivcProof,
41
- finalState: novaResult.finalState,
42
- steps: novaResult.steps,
43
- };
23
+ async createNovaProof(params) {
24
+ return this.proofs.runNovaProver(params);
25
+ }
26
+ /**
27
+ * Request a Groth16 decider proof from the decider service.
28
+ */
29
+ async requestDeciderProof(decider, ivcProof) {
30
+ return decider.produceDeciderProof("withdraw_global", ivcProof);
44
31
  }
45
32
  }
46
33
  function resolveWasmRuntime(input) {
47
34
  return input instanceof WasmRuntime ? input : new WasmRuntime(input);
48
35
  }
49
- function resolveProofService(wasm, input) {
50
- return input ?? new ProofService(wasm);
36
+ function resolveProofService(wasm, workerClient, input) {
37
+ return input ?? new ProofService(wasm, workerClient);
51
38
  }
52
39
  /**
53
40
  * Create a TeleportProofClient with optional custom WASM runtime and proof service.
54
41
  */
55
42
  export function createTeleportProofClient(options = {}) {
56
43
  const wasm = resolveWasmRuntime(options.wasm);
57
- const proofs = resolveProofService(wasm, options.proofs);
44
+ const workerClient = options.proofs ? undefined : (options.workerClient ?? new ZkpWorkerClient());
45
+ const proofs = resolveProofService(wasm, workerClient, options.proofs);
58
46
  return new TeleportProofClient(proofs);
59
47
  }
60
48
  //# sourceMappingURL=teleportProof.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teleportProof.js","sourceRoot":"","sources":["../../src/operations/teleportProof.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAwCtD;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAErD;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAAC,MAA4B;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,wBAAwB,CAAC,MAA2B;QACxD,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;QAClD,MAAM,SAAS,GAAoB;YACjC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAE9D,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,qBAAqB,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE/F,OAAO;YACL,YAAY;YACZ,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,OAAO,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAiB,EAAE,KAAwB;IACtE,OAAO,KAAK,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAsC,EAAE;IAExC,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"teleportProof.js","sourceRoot":"","sources":["../../src/operations/teleportProof.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAczD;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAErD;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAAC,MAA4B;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAuB;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAA0B,EAAE,QAAoB;QACxE,OAAO,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,OAAO,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAiB,EACjB,YAA8B,EAC9B,KAAwB;IAExB,OAAO,KAAK,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAsC,EAAE;IAExC,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,eAAe,EAAE,CAAC,CAAC;IAClG,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
@@ -1,13 +1,5 @@
1
- import { beforeEach, describe, expect, test, vi } from "vitest";
2
- import { findTokenByChain, createProviderForToken } from "../helpers.js";
3
- // Mock viem
4
- vi.mock("viem", () => ({
5
- createPublicClient: vi.fn().mockReturnValue({ mockClient: true }),
6
- http: vi.fn().mockReturnValue({ mockTransport: true }),
7
- }));
8
- import { createPublicClient, http } from "viem";
9
- const mockCreatePublicClient = vi.mocked(createPublicClient);
10
- const mockHttp = vi.mocked(http);
1
+ import { describe, expect, test } from "vitest";
2
+ import { findTokenByChain } from "../helpers.js";
11
3
  describe("findTokenByChain", () => {
12
4
  const tokens = [
13
5
  {
@@ -61,38 +53,4 @@ describe("findTokenByChain", () => {
61
53
  expect(() => findTokenByChain([], 1n)).toThrow("no tokens configured for chain id 1");
62
54
  });
63
55
  });
64
- describe("createProviderForToken", () => {
65
- beforeEach(() => {
66
- vi.clearAllMocks();
67
- });
68
- test("creates public client with first RPC URL", () => {
69
- const token = {
70
- label: "TestToken",
71
- tokenAddress: "0x1111",
72
- verifierAddress: "0x2222",
73
- chainId: 1n,
74
- deployedBlockNumber: 100n,
75
- rpcUrls: ["https://rpc1.example.com", "https://rpc2.example.com"],
76
- legacyTx: false,
77
- };
78
- const result = createProviderForToken(token);
79
- expect(mockHttp).toHaveBeenCalledWith("https://rpc1.example.com");
80
- expect(mockCreatePublicClient).toHaveBeenCalledWith({
81
- transport: { mockTransport: true },
82
- });
83
- expect(result).toEqual({ mockClient: true });
84
- });
85
- test("throws when token has no RPC URLs", () => {
86
- const token = {
87
- label: "TestToken",
88
- tokenAddress: "0x1111",
89
- verifierAddress: "0x2222",
90
- chainId: 1n,
91
- deployedBlockNumber: 100n,
92
- rpcUrls: [],
93
- legacyTx: false,
94
- };
95
- expect(() => createProviderForToken(token)).toThrow("token 'TestToken' is missing rpc urls");
96
- });
97
- });
98
56
  //# sourceMappingURL=helpers.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../../src/registry/__tests__/helpers.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../../src/registry/__tests__/helpers.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,MAAM,GAAiB;QAC3B;YACE,KAAK,EAAE,QAAQ;YACf,YAAY,EAAE,QAAQ;YACtB,eAAe,EAAE,QAAQ;YACzB,OAAO,EAAE,EAAE;YACX,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,CAAC,0BAA0B,CAAC;YACrC,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,KAAK,EAAE,QAAQ;YACf,YAAY,EAAE,QAAQ;YACtB,eAAe,EAAE,QAAQ;YACzB,OAAO,EAAE,IAAI;YACb,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,CAAC,0BAA0B,CAAC;YACrC,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;IAEF,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,eAAe,GAAiB;YACpC,GAAG,MAAM;YACT;gBACE,KAAK,EAAE,iBAAiB;gBACxB,YAAY,EAAE,QAAQ;gBACtB,eAAe,EAAE,QAAQ;gBACzB,OAAO,EAAE,EAAE;gBACX,mBAAmB,EAAE,IAAI;gBACzB,OAAO,EAAE,CAAC,0BAA0B,CAAC;gBACrC,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC;QAEF,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CACzD,kEAAkE,CACnE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}