@unlink-xyz/core 0.1.3 → 0.1.4

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 (369) hide show
  1. package/README.md +9 -0
  2. package/dist/account/{zkAccount.d.ts → account.d.ts} +36 -5
  3. package/dist/account/account.d.ts.map +1 -0
  4. package/dist/account/accounts.d.ts +42 -0
  5. package/dist/account/accounts.d.ts.map +1 -0
  6. package/dist/account/seed.d.ts +45 -0
  7. package/dist/account/seed.d.ts.map +1 -0
  8. package/dist/account/serialization.d.ts +6 -0
  9. package/dist/account/serialization.d.ts.map +1 -0
  10. package/dist/browser/index.js +56221 -0
  11. package/dist/browser/index.js.map +1 -0
  12. package/dist/browser/wallet/index.js +55942 -0
  13. package/dist/browser/wallet/index.js.map +1 -0
  14. package/dist/clients/broadcaster.d.ts +8 -2
  15. package/dist/clients/broadcaster.d.ts.map +1 -1
  16. package/dist/clients/http.d.ts +6 -0
  17. package/dist/clients/http.d.ts.map +1 -1
  18. package/dist/clients/indexer.d.ts +16 -0
  19. package/dist/clients/indexer.d.ts.map +1 -1
  20. package/dist/config.d.ts +30 -9
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/constants.d.ts +6 -0
  23. package/dist/constants.d.ts.map +1 -0
  24. package/dist/core.d.ts.map +1 -1
  25. package/dist/crypto/adapters/index.d.ts +17 -0
  26. package/dist/crypto/adapters/index.d.ts.map +1 -0
  27. package/dist/crypto/adapters/polyfills.d.ts +5 -0
  28. package/dist/crypto/adapters/polyfills.d.ts.map +1 -0
  29. package/dist/crypto/encrypt.d.ts +33 -0
  30. package/dist/crypto/encrypt.d.ts.map +1 -0
  31. package/dist/crypto/secure-memory.d.ts +25 -0
  32. package/dist/crypto/secure-memory.d.ts.map +1 -0
  33. package/dist/errors.d.ts +17 -0
  34. package/dist/errors.d.ts.map +1 -1
  35. package/dist/history/index.d.ts +3 -0
  36. package/dist/history/index.d.ts.map +1 -0
  37. package/dist/history/service.d.ts +46 -0
  38. package/dist/history/service.d.ts.map +1 -0
  39. package/dist/history/types.d.ts +21 -0
  40. package/dist/history/types.d.ts.map +1 -0
  41. package/dist/index.d.ts +16 -7
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +6721 -19
  44. package/dist/index.js.map +1 -0
  45. package/dist/keys/address.d.ts +13 -0
  46. package/dist/keys/address.d.ts.map +1 -0
  47. package/dist/keys/derive.d.ts +37 -0
  48. package/dist/keys/derive.d.ts.map +1 -0
  49. package/dist/keys/hex.d.ts +14 -0
  50. package/dist/keys/hex.d.ts.map +1 -0
  51. package/dist/keys/index.d.ts +5 -0
  52. package/dist/keys/index.d.ts.map +1 -0
  53. package/dist/keys/mnemonic.d.ts +6 -0
  54. package/dist/keys/mnemonic.d.ts.map +1 -0
  55. package/dist/keys.d.ts +5 -1
  56. package/dist/keys.d.ts.map +1 -1
  57. package/dist/prover/config.d.ts +53 -22
  58. package/dist/prover/config.d.ts.map +1 -1
  59. package/dist/prover/integrity.d.ts +20 -0
  60. package/dist/prover/integrity.d.ts.map +1 -0
  61. package/dist/prover/prover.d.ts +16 -20
  62. package/dist/prover/prover.d.ts.map +1 -1
  63. package/dist/prover/registry.d.ts +3 -30
  64. package/dist/prover/registry.d.ts.map +1 -1
  65. package/dist/state/merkle/hydrator.d.ts +21 -19
  66. package/dist/state/merkle/hydrator.d.ts.map +1 -1
  67. package/dist/state/merkle/index.d.ts +2 -2
  68. package/dist/state/merkle/index.d.ts.map +1 -1
  69. package/dist/state/merkle/merkle-tree.d.ts +8 -0
  70. package/dist/state/merkle/merkle-tree.d.ts.map +1 -1
  71. package/dist/state/store/ciphertext-store.d.ts +11 -0
  72. package/dist/state/store/ciphertext-store.d.ts.map +1 -1
  73. package/dist/state/store/history-store.d.ts +24 -0
  74. package/dist/state/store/history-store.d.ts.map +1 -0
  75. package/dist/state/store/index.d.ts +3 -2
  76. package/dist/state/store/index.d.ts.map +1 -1
  77. package/dist/state/store/job-store.d.ts +7 -7
  78. package/dist/state/store/job-store.d.ts.map +1 -1
  79. package/dist/state/store/jobs.d.ts +70 -25
  80. package/dist/state/store/jobs.d.ts.map +1 -1
  81. package/dist/state/store/leaf-store.d.ts +4 -0
  82. package/dist/state/store/leaf-store.d.ts.map +1 -1
  83. package/dist/state/store/note-store.d.ts +7 -7
  84. package/dist/state/store/note-store.d.ts.map +1 -1
  85. package/dist/state/store/nullifier-store.d.ts +9 -0
  86. package/dist/state/store/nullifier-store.d.ts.map +1 -1
  87. package/dist/state/store/records.d.ts +39 -2
  88. package/dist/state/store/records.d.ts.map +1 -1
  89. package/dist/state/store/root-store.d.ts.map +1 -1
  90. package/dist/state/store/store.d.ts +79 -27
  91. package/dist/state/store/store.d.ts.map +1 -1
  92. package/dist/storage/indexeddb.d.ts.map +1 -1
  93. package/dist/storage/memory.d.ts.map +1 -1
  94. package/dist/transactions/adapter.d.ts +31 -0
  95. package/dist/transactions/adapter.d.ts.map +1 -0
  96. package/dist/transactions/deposit.d.ts +12 -15
  97. package/dist/transactions/deposit.d.ts.map +1 -1
  98. package/dist/transactions/index.d.ts +9 -4
  99. package/dist/transactions/index.d.ts.map +1 -1
  100. package/dist/transactions/note-selection.d.ts +17 -0
  101. package/dist/transactions/note-selection.d.ts.map +1 -0
  102. package/dist/transactions/note-sync.d.ts +5 -33
  103. package/dist/transactions/note-sync.d.ts.map +1 -1
  104. package/dist/transactions/reconcile.d.ts +9 -11
  105. package/dist/transactions/reconcile.d.ts.map +1 -1
  106. package/dist/transactions/transact.d.ts +30 -22
  107. package/dist/transactions/transact.d.ts.map +1 -1
  108. package/dist/transactions/transaction-planner.d.ts +34 -0
  109. package/dist/transactions/transaction-planner.d.ts.map +1 -0
  110. package/dist/transactions/transfer-planner.d.ts +37 -0
  111. package/dist/transactions/transfer-planner.d.ts.map +1 -0
  112. package/dist/transactions/types/deposit.d.ts +67 -0
  113. package/dist/transactions/types/deposit.d.ts.map +1 -0
  114. package/dist/transactions/types/domain.d.ts +70 -0
  115. package/dist/transactions/types/domain.d.ts.map +1 -0
  116. package/dist/transactions/types/index.d.ts +18 -0
  117. package/dist/transactions/types/index.d.ts.map +1 -0
  118. package/dist/transactions/types/options.d.ts +54 -0
  119. package/dist/transactions/types/options.d.ts.map +1 -0
  120. package/dist/transactions/types/planning.d.ts +82 -0
  121. package/dist/transactions/types/planning.d.ts.map +1 -0
  122. package/dist/transactions/types/state-stores.d.ts +151 -0
  123. package/dist/transactions/types/state-stores.d.ts.map +1 -0
  124. package/dist/transactions/types/transact.d.ts +83 -0
  125. package/dist/transactions/types/transact.d.ts.map +1 -0
  126. package/dist/transactions/withdrawal-planner.d.ts +58 -0
  127. package/dist/transactions/withdrawal-planner.d.ts.map +1 -0
  128. package/dist/tsconfig.tsbuildinfo +1 -1
  129. package/dist/tsup.browser.config.d.ts +7 -0
  130. package/dist/tsup.browser.config.d.ts.map +1 -0
  131. package/dist/tsup.config.d.ts +8 -0
  132. package/dist/tsup.config.d.ts.map +1 -0
  133. package/dist/types.d.ts +1 -0
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/utils/amounts.d.ts +26 -0
  136. package/dist/utils/amounts.d.ts.map +1 -0
  137. package/dist/utils/async.d.ts +9 -0
  138. package/dist/utils/async.d.ts.map +1 -1
  139. package/dist/utils/async.js +38 -11
  140. package/dist/utils/async.js.map +1 -0
  141. package/dist/utils/bigint.d.ts +0 -2
  142. package/dist/utils/bigint.d.ts.map +1 -1
  143. package/dist/utils/format.d.ts +25 -0
  144. package/dist/utils/format.d.ts.map +1 -0
  145. package/dist/utils/notes.d.ts +15 -0
  146. package/dist/utils/notes.d.ts.map +1 -0
  147. package/dist/utils/polling.d.ts +5 -0
  148. package/dist/utils/polling.d.ts.map +1 -1
  149. package/dist/utils/random.d.ts +18 -0
  150. package/dist/utils/random.d.ts.map +1 -0
  151. package/dist/utils/signature.d.ts +6 -0
  152. package/dist/utils/signature.d.ts.map +1 -1
  153. package/dist/utils/validators.d.ts +21 -10
  154. package/dist/utils/validators.d.ts.map +1 -1
  155. package/dist/vitest.config.d.ts +3 -0
  156. package/dist/vitest.config.d.ts.map +1 -0
  157. package/dist/wallet/adapter.d.ts +21 -0
  158. package/dist/wallet/adapter.d.ts.map +1 -0
  159. package/dist/wallet/burner/service.d.ts +32 -0
  160. package/dist/wallet/burner/service.d.ts.map +1 -0
  161. package/dist/wallet/burner/types.d.ts +47 -0
  162. package/dist/wallet/burner/types.d.ts.map +1 -0
  163. package/dist/wallet/index.d.ts +20 -0
  164. package/dist/wallet/index.d.ts.map +1 -0
  165. package/dist/wallet/index.js +6462 -0
  166. package/dist/wallet/index.js.map +1 -0
  167. package/dist/wallet/sdk.d.ts +48 -0
  168. package/dist/wallet/sdk.d.ts.map +1 -0
  169. package/dist/wallet/types.d.ts +457 -0
  170. package/dist/wallet/types.d.ts.map +1 -0
  171. package/dist/wallet/unlink-wallet.d.ts +187 -0
  172. package/dist/wallet/unlink-wallet.d.ts.map +1 -0
  173. package/package.json +38 -15
  174. package/.eslintrc.json +0 -4
  175. package/account/zkAccount.test.ts +0 -316
  176. package/account/zkAccount.ts +0 -222
  177. package/circuits.json +0 -26
  178. package/clients/broadcaster.ts +0 -67
  179. package/clients/http.ts +0 -94
  180. package/clients/indexer.ts +0 -150
  181. package/config.ts +0 -39
  182. package/core.ts +0 -17
  183. package/dist/account/railgun-imports-prototype.d.ts +0 -12
  184. package/dist/account/railgun-imports-prototype.d.ts.map +0 -1
  185. package/dist/account/railgun-imports-prototype.js +0 -30
  186. package/dist/account/zkAccount.d.ts.map +0 -1
  187. package/dist/account/zkAccount.js +0 -128
  188. package/dist/circuits.json +0 -26
  189. package/dist/clients/broadcaster.js +0 -23
  190. package/dist/clients/http.js +0 -57
  191. package/dist/clients/indexer.js +0 -67
  192. package/dist/config.js +0 -29
  193. package/dist/core.js +0 -12
  194. package/dist/errors.js +0 -18
  195. package/dist/key-derivation/babyjubjub.d.ts +0 -9
  196. package/dist/key-derivation/babyjubjub.d.ts.map +0 -1
  197. package/dist/key-derivation/babyjubjub.js +0 -9
  198. package/dist/key-derivation/bech32.d.ts +0 -22
  199. package/dist/key-derivation/bech32.d.ts.map +0 -1
  200. package/dist/key-derivation/bech32.js +0 -86
  201. package/dist/key-derivation/bip32.d.ts +0 -17
  202. package/dist/key-derivation/bip32.d.ts.map +0 -1
  203. package/dist/key-derivation/bip32.js +0 -41
  204. package/dist/key-derivation/bip39.d.ts +0 -22
  205. package/dist/key-derivation/bip39.d.ts.map +0 -1
  206. package/dist/key-derivation/bip39.js +0 -56
  207. package/dist/key-derivation/bytes.d.ts +0 -19
  208. package/dist/key-derivation/bytes.d.ts.map +0 -1
  209. package/dist/key-derivation/bytes.js +0 -92
  210. package/dist/key-derivation/hash.d.ts +0 -3
  211. package/dist/key-derivation/hash.d.ts.map +0 -1
  212. package/dist/key-derivation/hash.js +0 -10
  213. package/dist/key-derivation/index.d.ts +0 -8
  214. package/dist/key-derivation/index.d.ts.map +0 -1
  215. package/dist/key-derivation/index.js +0 -7
  216. package/dist/key-derivation/wallet-node.d.ts +0 -45
  217. package/dist/key-derivation/wallet-node.d.ts.map +0 -1
  218. package/dist/key-derivation/wallet-node.js +0 -109
  219. package/dist/keys.js +0 -41
  220. package/dist/prover/config.js +0 -80
  221. package/dist/prover/index.js +0 -1
  222. package/dist/prover/prover.js +0 -274
  223. package/dist/prover/registry.js +0 -57
  224. package/dist/schema.js +0 -14
  225. package/dist/state/ciphertext-store.d.ts +0 -12
  226. package/dist/state/ciphertext-store.d.ts.map +0 -1
  227. package/dist/state/ciphertext-store.js +0 -25
  228. package/dist/state/hydrator.d.ts +0 -16
  229. package/dist/state/hydrator.d.ts.map +0 -1
  230. package/dist/state/hydrator.js +0 -18
  231. package/dist/state/index.js +0 -2
  232. package/dist/state/job-store.d.ts +0 -12
  233. package/dist/state/job-store.d.ts.map +0 -1
  234. package/dist/state/job-store.js +0 -118
  235. package/dist/state/jobs.d.ts +0 -50
  236. package/dist/state/jobs.d.ts.map +0 -1
  237. package/dist/state/jobs.js +0 -1
  238. package/dist/state/leaf-store.d.ts +0 -17
  239. package/dist/state/leaf-store.d.ts.map +0 -1
  240. package/dist/state/leaf-store.js +0 -35
  241. package/dist/state/merkle/hydrator.js +0 -36
  242. package/dist/state/merkle/index.js +0 -2
  243. package/dist/state/merkle/merkle-tree.js +0 -104
  244. package/dist/state/merkle-tree.d.ts +0 -34
  245. package/dist/state/merkle-tree.d.ts.map +0 -1
  246. package/dist/state/merkle-tree.js +0 -104
  247. package/dist/state/note-store.d.ts +0 -37
  248. package/dist/state/note-store.d.ts.map +0 -1
  249. package/dist/state/note-store.js +0 -133
  250. package/dist/state/nullifier-store.d.ts +0 -13
  251. package/dist/state/nullifier-store.d.ts.map +0 -1
  252. package/dist/state/nullifier-store.js +0 -21
  253. package/dist/state/records.d.ts +0 -57
  254. package/dist/state/records.d.ts.map +0 -1
  255. package/dist/state/records.js +0 -1
  256. package/dist/state/root-store.d.ts +0 -13
  257. package/dist/state/root-store.d.ts.map +0 -1
  258. package/dist/state/root-store.js +0 -30
  259. package/dist/state/store/ciphertext-store.js +0 -25
  260. package/dist/state/store/index.js +0 -8
  261. package/dist/state/store/job-store.js +0 -118
  262. package/dist/state/store/jobs.js +0 -1
  263. package/dist/state/store/leaf-store.js +0 -35
  264. package/dist/state/store/note-store.js +0 -142
  265. package/dist/state/store/nullifier-store.js +0 -30
  266. package/dist/state/store/records.js +0 -1
  267. package/dist/state/store/root-store.js +0 -30
  268. package/dist/state/store/store.js +0 -22
  269. package/dist/state/store.d.ts +0 -26
  270. package/dist/state/store.d.ts.map +0 -1
  271. package/dist/state/store.js +0 -19
  272. package/dist/state.d.ts +0 -83
  273. package/dist/state.d.ts.map +0 -1
  274. package/dist/state.js +0 -171
  275. package/dist/storage/index.js +0 -2
  276. package/dist/storage/indexeddb.js +0 -205
  277. package/dist/storage/memory.js +0 -87
  278. package/dist/transactions/deposit.js +0 -169
  279. package/dist/transactions/index.js +0 -4
  280. package/dist/transactions/note-sync.js +0 -320
  281. package/dist/transactions/reconcile.js +0 -39
  282. package/dist/transactions/shield.d.ts +0 -5
  283. package/dist/transactions/shield.d.ts.map +0 -1
  284. package/dist/transactions/shield.js +0 -93
  285. package/dist/transactions/transact.js +0 -561
  286. package/dist/transactions/types.d.ts +0 -114
  287. package/dist/transactions/types.d.ts.map +0 -1
  288. package/dist/transactions/types.js +0 -1
  289. package/dist/transactions/utils.d.ts +0 -10
  290. package/dist/transactions/utils.d.ts.map +0 -1
  291. package/dist/transactions/utils.js +0 -17
  292. package/dist/types.js +0 -1
  293. package/dist/utils/bigint.js +0 -29
  294. package/dist/utils/crypto.d.ts +0 -12
  295. package/dist/utils/crypto.d.ts.map +0 -1
  296. package/dist/utils/crypto.js +0 -39
  297. package/dist/utils/json-codec.js +0 -25
  298. package/dist/utils/polling.js +0 -6
  299. package/dist/utils/signature.js +0 -12
  300. package/dist/utils/time.d.ts +0 -2
  301. package/dist/utils/time.d.ts.map +0 -1
  302. package/dist/utils/time.js +0 -3
  303. package/dist/utils/validators.js +0 -70
  304. package/dist/utils/witness.d.ts +0 -11
  305. package/dist/utils/witness.d.ts.map +0 -1
  306. package/dist/utils/witness.js +0 -19
  307. package/errors.ts +0 -20
  308. package/index.ts +0 -21
  309. package/key-derivation/babyjubjub.ts +0 -11
  310. package/key-derivation/bech32.test.ts +0 -90
  311. package/key-derivation/bech32.ts +0 -124
  312. package/key-derivation/bip32.ts +0 -56
  313. package/key-derivation/bip39.ts +0 -76
  314. package/key-derivation/bytes.ts +0 -118
  315. package/key-derivation/hash.ts +0 -13
  316. package/key-derivation/index.ts +0 -7
  317. package/key-derivation/wallet-node.ts +0 -155
  318. package/keys.ts +0 -47
  319. package/prover/config.ts +0 -104
  320. package/prover/index.ts +0 -1
  321. package/prover/prover.integration.test.ts +0 -162
  322. package/prover/prover.test.ts +0 -309
  323. package/prover/prover.ts +0 -405
  324. package/prover/registry.test.ts +0 -90
  325. package/prover/registry.ts +0 -82
  326. package/schema.ts +0 -17
  327. package/setup-artifacts.sh +0 -57
  328. package/state/index.ts +0 -2
  329. package/state/merkle/hydrator.ts +0 -69
  330. package/state/merkle/index.ts +0 -12
  331. package/state/merkle/merkle-tree.test.ts +0 -50
  332. package/state/merkle/merkle-tree.ts +0 -163
  333. package/state/store/ciphertext-store.ts +0 -28
  334. package/state/store/index.ts +0 -24
  335. package/state/store/job-store.ts +0 -162
  336. package/state/store/jobs.ts +0 -64
  337. package/state/store/leaf-store.ts +0 -39
  338. package/state/store/note-store.ts +0 -177
  339. package/state/store/nullifier-store.ts +0 -39
  340. package/state/store/records.ts +0 -61
  341. package/state/store/root-store.ts +0 -34
  342. package/state/store/store.ts +0 -25
  343. package/state.test.ts +0 -235
  344. package/storage/index.ts +0 -3
  345. package/storage/indexeddb.test.ts +0 -99
  346. package/storage/indexeddb.ts +0 -235
  347. package/storage/memory.test.ts +0 -59
  348. package/storage/memory.ts +0 -93
  349. package/transactions/deposit.test.ts +0 -160
  350. package/transactions/deposit.ts +0 -227
  351. package/transactions/index.ts +0 -20
  352. package/transactions/note-sync.test.ts +0 -155
  353. package/transactions/note-sync.ts +0 -452
  354. package/transactions/reconcile.ts +0 -73
  355. package/transactions/transact.test.ts +0 -451
  356. package/transactions/transact.ts +0 -811
  357. package/transactions/types.ts +0 -141
  358. package/tsconfig.json +0 -15
  359. package/types/global.d.ts +0 -15
  360. package/types.ts +0 -24
  361. package/utils/async.ts +0 -15
  362. package/utils/bigint.ts +0 -34
  363. package/utils/crypto.test.ts +0 -69
  364. package/utils/crypto.ts +0 -58
  365. package/utils/json-codec.ts +0 -38
  366. package/utils/polling.ts +0 -6
  367. package/utils/signature.ts +0 -16
  368. package/utils/validators.test.ts +0 -64
  369. package/utils/validators.ts +0 -86
@@ -0,0 +1,13 @@
1
+ export type Chain = {
2
+ type: number;
3
+ id: number;
4
+ };
5
+ export type AddressData = {
6
+ masterPublicKey: bigint;
7
+ viewingPublicKey: Uint8Array;
8
+ chain?: Chain;
9
+ version?: number;
10
+ };
11
+ export declare function encodeAddress(data: AddressData): string;
12
+ export declare function decodeAddress(address: string): AddressData;
13
+ //# sourceMappingURL=address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../keys/address.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AACjD,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAgCF,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAUvD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAqB1D"}
@@ -0,0 +1,37 @@
1
+ export type SpendingPublicKey = [bigint, bigint];
2
+ export type SpendingKeyPair = {
3
+ privateKey: Uint8Array;
4
+ pubkey: SpendingPublicKey;
5
+ };
6
+ export type ViewingKeyPair = {
7
+ privateKey: Uint8Array;
8
+ pubkey: Uint8Array;
9
+ };
10
+ export type AccountKeys = {
11
+ spending: SpendingKeyPair;
12
+ viewing: ViewingKeyPair;
13
+ nullifyingKey: bigint;
14
+ masterPublicKey: bigint;
15
+ };
16
+ /**
17
+ * Derive spending key pair (BabyJubJub) for an account.
18
+ */
19
+ export declare function deriveSpendingKeyPair(seed: Uint8Array, index: number): SpendingKeyPair;
20
+ /**
21
+ * Derive viewing key pair (Ed25519) for an account.
22
+ */
23
+ export declare function deriveViewingKeyPair(seed: Uint8Array, index: number): ViewingKeyPair;
24
+ /**
25
+ * Compute nullifying key from viewing private key using Poseidon hash.
26
+ */
27
+ export declare function computeNullifyingKey(viewingPrivateKey: Uint8Array): bigint;
28
+ /**
29
+ * Compute master public key from spending public key and nullifying key.
30
+ * MPK = Poseidon(spendingPubkey[0], spendingPubkey[1], nullifyingKey)
31
+ */
32
+ export declare function computeMasterPublicKey(spendingPubkey: SpendingPublicKey, nullifyingKey: bigint): bigint;
33
+ /**
34
+ * Derive all account keys from a seed.
35
+ */
36
+ export declare function deriveAccountKeys(seed: Uint8Array, index: number): AccountKeys;
37
+ //# sourceMappingURL=derive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../keys/derive.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAwDF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,GACZ,eAAe,CAKjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,GACZ,cAAc,CAKhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,UAAU,GAAG,MAAM,CAK1E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,iBAAiB,EACjC,aAAa,EAAE,MAAM,GACpB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,GACZ,WAAW,CAUb"}
@@ -0,0 +1,14 @@
1
+ export declare enum FieldSize {
2
+ SCALAR = 32
3
+ }
4
+ export type HexInput = string | number | bigint | Uint8Array | ArrayLike<number>;
5
+ export declare class Hex {
6
+ static strip(value: string): string;
7
+ static encode(data: HexInput): string;
8
+ static fromBytes(bytes: Uint8Array): string;
9
+ static toBytes(hex: string): Uint8Array;
10
+ static toBigInt(hex: string): bigint;
11
+ static padToSize(data: HexInput, size: FieldSize): string;
12
+ static fromBigInt(value: bigint, size: FieldSize, prefix?: boolean): string;
13
+ }
14
+ //# sourceMappingURL=hex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../../keys/hex.ts"],"names":[],"mappings":"AAEA,oBAAY,SAAS;IACnB,MAAM,KAAK;CACZ;AAED,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,MAAM,GACN,MAAM,GACN,UAAU,GACV,SAAS,CAAC,MAAM,CAAC,CAAC;AAItB,qBAAa,GAAG;IACd,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAYrC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAI3C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAUvC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIpC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM;IAQzD,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,UAAQ,GAAG,MAAM;CAI1E"}
@@ -0,0 +1,5 @@
1
+ export { Mnemonic } from "./mnemonic.js";
2
+ export { deriveAccountKeys, deriveSpendingKeyPair, deriveViewingKeyPair, computeNullifyingKey, computeMasterPublicKey, type AccountKeys, type SpendingKeyPair, type ViewingKeyPair, type SpendingPublicKey, } from "./derive.js";
3
+ export { encodeAddress, decodeAddress, type AddressData, type Chain, } from "./address.js";
4
+ export { Hex, FieldSize, type HexInput } from "./hex.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,KAAK,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare class Mnemonic {
2
+ static validate(mnemonic: string): boolean;
3
+ static toSeed(mnemonic: string, password?: string): string;
4
+ static fromEntropy(entropyHex: string): string;
5
+ }
6
+ //# sourceMappingURL=mnemonic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../keys/mnemonic.ts"],"names":[],"mappings":"AASA,qBAAa,QAAQ;IACnB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI1C,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM;IAK9D,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAI/C"}
package/dist/keys.d.ts CHANGED
@@ -1,7 +1,10 @@
1
- export declare const RESERVED_PREFIXES: readonly ["meta:", "notes:", "leaves:", "roots:", "nullifiers:", "ciphertexts:", "jobs:", "proof_cache:", "cfg:", "idx:", "locks:"];
1
+ export declare const RESERVED_PREFIXES: readonly ["meta:", "history:", "notes:", "leaves:", "roots:", "nullifiers:", "ciphertexts:", "jobs:", "proof_cache:", "cfg:", "idx:", "locks:"];
2
2
  /** Canonical builders for storage key namespaces used across core */
3
3
  export declare const keys: {
4
4
  note: (c: number, i: number) => string;
5
+ historyEntry: (id: string) => string;
6
+ historyPrefix: (chainId: number, mpk: string) => string;
7
+ historyMeta: (chainId: number, mpk: string) => string;
5
8
  leaf: (c: number, i: number) => string;
6
9
  ciphertext: (c: number, i: number) => string;
7
10
  /** Track note indices that remain unspent for a given master public key (mpk acts as the account identifier). */
@@ -16,6 +19,7 @@ export declare const keys: {
16
19
  cursor: (c: number) => string;
17
20
  aggregate: (c: number, a: string) => string;
18
21
  job: (relayId: string) => string;
22
+ rescanCursor: (c: number, mpk: string) => string;
19
23
  };
20
24
  export declare const MAX_KEY_LEN = 512;
21
25
  export declare function validateKey(key: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../keys.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,qIAYpB,CAAC;AAEX,qEAAqE;AACrE,eAAO,MAAM,IAAI;cACL,MAAM,KAAK,MAAM;cACjB,MAAM,KAAK,MAAM;oBACX,MAAM,KAAK,MAAM;IACjC,iHAAiH;iBACpG,MAAM,OAAO,MAAM,KAAK,MAAM;uBAExB,MAAM,OAAO,MAAM;sBACpB,MAAM,KAAK,MAAM;qBAClB,MAAM,KAAK,MAAM;mBACnB,MAAM,KAAK,MAAM;cACtB,MAAM,SAAS,MAAM;oBACf,MAAM;oBACN,MAAM;gBACV,MAAM;mBACH,MAAM,KAAK,MAAM;mBACjB,MAAM;CACtB,CAAC;AAEF,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,QAQtC"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../keys.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,iJAapB,CAAC;AAEX,qEAAqE;AACrE,eAAO,MAAM,IAAI;cACL,MAAM,KAAK,MAAM;uBACR,MAAM;6BACA,MAAM,OAAO,MAAM;2BACrB,MAAM,OAAO,MAAM;cAEhC,MAAM,KAAK,MAAM;oBACX,MAAM,KAAK,MAAM;IACjC,iHAAiH;iBACpG,MAAM,OAAO,MAAM,KAAK,MAAM;uBAExB,MAAM,OAAO,MAAM;sBACpB,MAAM,KAAK,MAAM;qBAClB,MAAM,KAAK,MAAM;mBACnB,MAAM,KAAK,MAAM;cACtB,MAAM,SAAS,MAAM;oBACf,MAAM;oBACN,MAAM;gBACV,MAAM;mBACH,MAAM,KAAK,MAAM;mBACjB,MAAM;sBACH,MAAM,OAAO,MAAM;CACtC,CAAC;AAEF,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,QAQtC"}
@@ -1,37 +1,68 @@
1
1
  /**
2
- * Configuration for the prover system
3
- * Handles artifact loading from local files or remote artifact server
2
+ * Configuration for the prover system.
3
+ * Handles artifact loading from Cloudflare R2 or local files
4
+ * in Node.js development/test environments.
4
5
  */
6
+ export declare const DEFAULT_ARTIFACT_BASE_URL = "https://artifacts.unlink.xyz";
5
7
  /**
6
- * Environment-based configuration for artifact loading
8
+ * Artifact file types.
7
9
  */
8
- export interface ProverConfig {
9
- /** Base URL for the artifact server (browser mode) */
10
- rpcUrl: string;
11
- /** Whether to enable artifact caching */
12
- enableCache: boolean;
10
+ export declare enum ArtifactType {
11
+ WASM = "joinsplit.wasm",
12
+ ZKEY = "joinsplit.zkey",
13
+ VKEY = "joinsplit.vkey.json"
13
14
  }
14
15
  /**
15
- * Default configuration
16
- * Can be overridden via environment variables
16
+ * Artifact source configuration.
17
17
  */
18
- export declare const DEFAULT_CONFIG: ProverConfig;
18
+ export interface ArtifactSourceConfig {
19
+ /**
20
+ * Base URL for artifact hosting.
21
+ * Defaults to Cloudflare R2 CDN domain.
22
+ */
23
+ readonly baseUrl?: string;
24
+ /**
25
+ * Artifact version path segment.
26
+ * Must be a pinned immutable version like `vabc12345` for remote mode.
27
+ * Optional only when using local-only mode (`preferLocalFiles: true`).
28
+ */
29
+ readonly version?: string;
30
+ /**
31
+ * Node.js-only override to load local artifacts first.
32
+ */
33
+ readonly preferLocalFiles?: boolean;
34
+ }
19
35
  /**
20
- * Artifact file types
36
+ * Fully-resolved artifact source configuration.
21
37
  */
22
- export declare enum ArtifactType {
23
- WASM = "joinsplit.wasm",
24
- ZKEY = "joinsplit.zkey",
25
- VKEY = "joinsplit.vkey.json"
38
+ export interface ResolvedArtifactSourceConfig {
39
+ readonly baseUrl: string;
40
+ readonly version?: string;
41
+ readonly preferLocalFiles: boolean;
26
42
  }
43
+ export interface RemoteArtifactSourceConfig {
44
+ readonly baseUrl: string;
45
+ readonly version: string;
46
+ }
47
+ export declare function assertValidArtifactVersion(version: string, label?: string): void;
27
48
  /**
28
- * Build artifact URL for a given circuit and artifact type
29
- * @param circuitName Full circuit name (e.g., "joinsplit_2x3_16")
30
- * @param artifactType Type of artifact to fetch
31
- * @param baseUrl Base URL of the artifact server
32
- * @returns Full URL to the artifact
49
+ * Resolve artifact source configuration with defaults.
50
+ */
51
+ export declare function resolveArtifactSourceConfig(config?: ArtifactSourceConfig): ResolvedArtifactSourceConfig;
52
+ /**
53
+ * Require a remote-capable source (baseUrl + immutable version).
54
+ */
55
+ export declare function requireRemoteArtifactSource(source: ResolvedArtifactSourceConfig): RemoteArtifactSourceConfig;
56
+ /**
57
+ * Build R2 artifact URL for a given circuit and artifact type.
58
+ * Format: `https://artifacts.unlink.xyz/<version>/<circuit>/<file>`.
59
+ */
60
+ export declare function buildR2ArtifactUrl(circuitName: string, artifactType: ArtifactType, source: RemoteArtifactSourceConfig): string;
61
+ /**
62
+ * Build R2 checksums manifest URL for a given circuit.
63
+ * Format: `https://artifacts.unlink.xyz/<version>/<circuit>/checksums.json`.
33
64
  */
34
- export declare function buildArtifactUrl(circuitName: string, artifactType: ArtifactType, baseUrl?: string): string;
65
+ export declare function buildR2ChecksumsUrl(circuitName: string, source: RemoteArtifactSourceConfig): string;
35
66
  /**
36
67
  * Get relative path for local artifact loading
37
68
  * Used in Node.js environment when artifacts are bundled
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../prover/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,YAM5B,CAAC;AAEF;;GAEG;AACH,oBAAY,YAAY;IACtB,IAAI,mBAAmB;IACvB,IAAI,mBAAmB;IACvB,IAAI,wBAAwB;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,MAA8B,GACtC,MAAM,CAIR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,GACzB,MAAM,EAAE,CAQV;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;OAEG;iBACU,OAAO;IAIpB;;OAEG;cACO,OAAO;IAQjB;;OAEG;sBACe,MAAM;CAKzB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../prover/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,yBAAyB,iCAAiC,CAAC;AAExE;;GAEG;AACH,oBAAY,YAAY;IACtB,IAAI,mBAAmB;IACvB,IAAI,mBAAmB;IACvB,IAAI,wBAAwB;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAID,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,SAA2B,GAC/B,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,CAAC,EAAE,oBAAoB,GAC5B,4BAA4B,CA6B9B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,4BAA4B,GACnC,0BAA0B,CAU5B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,0BAA0B,GACjC,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,0BAA0B,GACjC,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,GACzB,MAAM,EAAE,CAQV;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;OAEG;iBACU,OAAO;IAIpB;;OAEG;cACO,OAAO;IAQjB;;OAEG;sBACe,MAAM;CAKzB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { ProofError } from "../errors.js";
2
+ import { ArtifactType } from "./config.js";
3
+ export declare class ArtifactIntegrityError extends ProofError {
4
+ constructor(message: string);
5
+ }
6
+ export declare function isArtifactIntegrityError(error: unknown): error is ArtifactIntegrityError;
7
+ interface ChecksumEntry {
8
+ readonly sha256: string;
9
+ readonly size: number;
10
+ }
11
+ export interface ChecksumsManifest {
12
+ readonly version: string;
13
+ readonly circuit: string;
14
+ readonly generated: string;
15
+ readonly files: Record<string, ChecksumEntry>;
16
+ }
17
+ export declare function parseChecksumsManifest(rawManifest: unknown, expectedCircuitName: string, expectedVersion: string): ChecksumsManifest;
18
+ export declare function verifyArtifactIntegrity(manifest: ChecksumsManifest, circuitName: string, artifactType: ArtifactType, content: Uint8Array): Promise<void>;
19
+ export {};
20
+ //# sourceMappingURL=integrity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrity.d.ts","sourceRoot":"","sources":["../../prover/integrity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,sBAAuB,SAAQ,UAAU;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,sBAAsB,CAEjC;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC/C;AAiCD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,OAAO,EACpB,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,MAAM,GACtB,iBAAiB,CAiDnB;AAoBD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -1,4 +1,11 @@
1
1
  import { Groth16Proof, PublicSignals } from "snarkjs";
2
+ import { type ArtifactSourceConfig } from "./config.js";
3
+ export interface ProverOptions {
4
+ /**
5
+ * Artifact source selection for R2 pathing and local-first mode.
6
+ */
7
+ readonly artifactSource?: ArtifactSourceConfig;
8
+ }
2
9
  export interface JoinsplitProof {
3
10
  readonly proof: Groth16Proof;
4
11
  readonly publicSignals: PublicSignals;
@@ -30,30 +37,19 @@ export interface JoinsplitProofInput {
30
37
  readonly npkOut: bigint[];
31
38
  readonly valueOut: bigint[];
32
39
  }
33
- export declare function proveTransaction(input: JoinsplitProofInput): Promise<JoinsplitProof>;
40
+ export declare function proveTransaction(input: JoinsplitProofInput, options?: ProverOptions): Promise<JoinsplitProof>;
34
41
  /**
35
- * Get verification key for a specific circuit configuration
36
- * @param inputs Number of inputs (nullifiers)
37
- * @param outputs Number of outputs (commitments)
38
- * @returns Verification key for the circuit
42
+ * Get verification key for a specific circuit configuration.
39
43
  */
40
- export declare function getVerificationKey(inputs: number, outputs: number): Promise<VerificationKey>;
44
+ export declare function getVerificationKey(inputs: number, outputs: number, options?: ProverOptions): Promise<VerificationKey>;
41
45
  /**
42
- * Verify a proof with public signals
43
- * Auto-detects the circuit from the public signals structure
44
- * @param proof Groth16 proof
45
- * @param publicSignals Public signals array
46
- * @returns True if proof is valid
46
+ * Verify a proof with public signals.
47
+ * Auto-detects the circuit from the public signals structure.
47
48
  */
48
- export declare function verifyProof(proof: Groth16Proof, publicSignals: PublicSignals): Promise<boolean>;
49
+ export declare function verifyProof(proof: Groth16Proof, publicSignals: PublicSignals, options?: ProverOptions): Promise<boolean>;
49
50
  /**
50
- * Verify a proof with explicit circuit specification
51
- * Preferred method when you know the circuit dimensions
52
- * @param proof Groth16 proof
53
- * @param publicSignals Public signals array
54
- * @param inputs Number of inputs (nullifiers)
55
- * @param outputs Number of outputs (commitments)
56
- * @returns True if proof is valid
51
+ * Verify a proof with explicit circuit specification.
52
+ * Preferred method when you know the circuit dimensions.
57
53
  */
58
- export declare function verifyProofWithCircuit(proof: Groth16Proof, publicSignals: PublicSignals, inputs: number, outputs: number): Promise<boolean>;
54
+ export declare function verifyProofWithCircuit(proof: Groth16Proof, publicSignals: PublicSignals, inputs: number, outputs: number, options?: ProverOptions): Promise<boolean>;
59
55
  //# sourceMappingURL=prover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prover.d.ts","sourceRoot":"","sources":["../../prover/prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA4BtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;CAC7B;AAiND,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,cAAc,CAAC,CAmCzB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CAU1B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,OAAO,CAAC,CAuClB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAUlB"}
1
+ {"version":3,"file":"prover.d.ts","sourceRoot":"","sources":["../../prover/prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAItD,OAAO,EASL,KAAK,oBAAoB,EAG1B,MAAM,aAAa,CAAC;AAuBrB,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,oBAAoB,CAAC;CAChD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;CAC7B;AAgbD,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,cAAc,CAAC,CAqCzB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,eAAe,CAAC,CAU1B;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CA4BlB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAUlB"}
@@ -1,39 +1,12 @@
1
- /**
2
- * Circuit registry for automatic prover selection
3
- * Maps circuit dimensions (inputs x outputs) to circuit configurations
4
- */
5
1
  export interface CircuitConfig {
6
- /** Full circuit name (e.g., "joinsplit_2x3_16") */
7
2
  readonly name: string;
8
- /** Number of inputs (nullifiers) */
9
3
  readonly inputs: number;
10
- /** Number of outputs (commitments) */
11
4
  readonly outputs: number;
12
- /** Merkle tree depth */
13
5
  readonly depth: number;
14
6
  }
15
- export type CircuitKey = "3x3" | "2x3" | "1x2" | "1x1";
16
- /**
17
- * Registry of available circuits
18
- * Auto-generated from circuits/circuits.json
19
- */
20
- export declare const CIRCUIT_REGISTRY: Record<CircuitKey, CircuitConfig>;
21
- /**
22
- * Get list of all supported circuit keys
23
- */
24
- export declare const SUPPORTED_CIRCUITS: CircuitKey[];
25
- /**
26
- * Get circuit configuration by dimensions
27
- * @param inputs Number of inputs (nullifiers)
28
- * @param outputs Number of outputs (commitments)
29
- * @returns Circuit configuration or undefined if not supported
30
- */
7
+ export declare const CIRCUIT_REGISTRY: Record<string, CircuitConfig>;
8
+ export type CircuitKey = keyof typeof CIRCUIT_REGISTRY & string;
9
+ export declare const SUPPORTED_CIRCUITS: string[];
31
10
  export declare function getCircuitConfig(inputs: number, outputs: number): CircuitConfig | undefined;
32
- /**
33
- * Check if a circuit configuration is supported
34
- * @param inputs Number of inputs (nullifiers)
35
- * @param outputs Number of outputs (commitments)
36
- * @returns True if supported
37
- */
38
11
  export declare function isCircuitSupported(inputs: number, outputs: number): boolean;
39
12
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../prover/registry.ts"],"names":[],"mappings":"AAKA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAyBrD,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAoC,UAAU,EAAE,CAAC;AAEhF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,aAAa,GAAG,SAAS,CAG3B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3E"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../prover/registry.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAYD,eAAO,MAAM,gBAAgB,EAAe,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE1E,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,gBAAgB,GAAG,MAAM,CAAC;AAEhE,eAAO,MAAM,kBAAkB,UAAgC,CAAC;AAEhE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,aAAa,GAAG,SAAS,CAE3B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3E"}
@@ -1,27 +1,29 @@
1
- export type LeafLoader = (chainId: number, index: number) => Promise<{
1
+ export type BatchLeafLoader = (chainId: number) => Promise<{
2
2
  commitment: string;
3
- } | null>;
4
- export declare function rebuildTreeFromStore({ chainId, trees, loadLeaf, }: {
5
- chainId: number;
6
- trees: {
7
- reset(chainId: number): void;
8
- addLeaf(chainId: number, value: bigint): {
9
- index: number;
10
- };
11
- getLeafCount?(chainId: number): number;
3
+ index: number;
4
+ }[]>;
5
+ type TreesInterface = {
6
+ reset(chainId: number): void;
7
+ addLeaf(chainId: number, value: bigint): {
8
+ index: number;
12
9
  };
13
- loadLeaf: LeafLoader;
10
+ getLeafCount?(chainId: number): number;
11
+ };
12
+ export declare function rebuildTreeFromStore({ chainId, trees, loadLeaves, }: {
13
+ chainId: number;
14
+ trees: TreesInterface;
15
+ loadLeaves: BatchLeafLoader;
14
16
  }): Promise<number>;
15
17
  export type HydrateChainParams = {
16
18
  chainId: number;
17
- trees: {
18
- reset(chainId: number): void;
19
- addLeaf(chainId: number, value: bigint): {
20
- index: number;
21
- };
22
- };
23
- loadLeaf: LeafLoader;
19
+ trees: TreesInterface;
20
+ loadLeaves: BatchLeafLoader;
24
21
  hydrated: Set<number>;
25
22
  };
26
- export declare function hydrateChain({ chainId, trees, loadLeaf, hydrated, }: HydrateChainParams): Promise<void>;
23
+ /**
24
+ * Hydrate the in-memory merkle tree for a chain, skipping if already done.
25
+ * Call `hydrated.delete(chainId)` to invalidate and force a rebuild.
26
+ */
27
+ export declare function hydrateChain({ chainId, trees, loadLeaves, hydrated, }: HydrateChainParams): Promise<number>;
28
+ export {};
27
29
  //# sourceMappingURL=hydrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hydrator.d.ts","sourceRoot":"","sources":["../../../state/merkle/hydrator.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,CACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,KACV,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAE5C,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3D,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;KACxC,CAAC;IACF,QAAQ,EAAE,UAAU,CAAC;CACtB,mBAeA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5D,CAAC;IACF,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAKF,wBAAsB,YAAY,CAAC,EACjC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,iBAcpB"}
1
+ {"version":3,"file":"hydrator.d.ts","sourceRoot":"","sources":["../../../state/merkle/hydrator.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAAC;AAEtD,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,KAAK,EACL,UAAU,GACX,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;CAC7B,mBAaA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,YAAY,CAAC,EACjC,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,GACT,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAWtC"}
@@ -1,3 +1,3 @@
1
- export { createLocalMerkleTree, createMerkleTrees, type LocalMerkleTree, type LocalMerkleTrees, type MerkleProof, } from "./merkle-tree.js";
2
- export { hydrateChain, rebuildTreeFromStore, type HydrateChainParams, } from "./hydrator.js";
1
+ export { createLocalMerkleTree, createMerkleTrees, resolveMerkleTrees, type LocalMerkleTree, type LocalMerkleTrees, type MerkleProof, } from "./merkle-tree.js";
2
+ export { hydrateChain, rebuildTreeFromStore, type BatchLeafLoader, type HydrateChainParams, } from "./hydrator.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../state/merkle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../state/merkle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC"}
@@ -31,4 +31,12 @@ export type LocalMerkleTrees = {
31
31
  reset(chainId: number): void;
32
32
  };
33
33
  export declare function createMerkleTrees(): LocalMerkleTrees;
34
+ /**
35
+ * Resolve merkle trees from options or create new instance.
36
+ * @param opts - Options object that may contain merkle trees
37
+ * @returns Merkle trees instance
38
+ */
39
+ export declare function resolveMerkleTrees(opts?: {
40
+ merkleTrees?: LocalMerkleTrees;
41
+ }): LocalMerkleTrees;
34
42
  //# sourceMappingURL=merkle-tree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merkle-tree.d.ts","sourceRoot":"","sources":["../../../state/merkle/merkle-tree.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,cAAc,EAGf,MAAM,aAAa,CAAC;AAWrB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAaF,wBAAgB,qBAAqB;qBAUX,MAAM,KAAG,aAAa;;;qBAsBtB,MAAM;+BAQI,MAAM,KAAG,cAAc;mBAUxC,MAAM;;;EAiBxB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IAClD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC;IAC9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IACvD,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC;IAClE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,gBAAgB,CAwCpD"}
1
+ {"version":3,"file":"merkle-tree.d.ts","sourceRoot":"","sources":["../../../state/merkle/merkle-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGf,MAAM,aAAa,CAAC;AAarB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAaF,wBAAgB,qBAAqB;qBAUX,MAAM,KAAG,aAAa;;;qBAsBtB,MAAM;+BAQI,MAAM,KAAG,cAAc;mBAUxC,MAAM;;;EAiBxB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IAClD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC;IAC9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IACvD,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC;IAClE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,gBAAgB,CAwCpD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE;IACxC,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC,GAAG,gBAAgB,CAEnB"}
@@ -8,5 +8,16 @@ export declare function createCiphertextStore(storage: Storage): {
8
8
  * Retrieve encrypted note payloads; returns null when the ciphertext is missing.
9
9
  */
10
10
  getCiphertext(chainId: number, index: number): Promise<Uint8Array<ArrayBuffer> | null>;
11
+ /**
12
+ * Load all cached ciphertexts for a chain in index order.
13
+ */
14
+ listCiphertexts(chainId: number): Promise<{
15
+ index: number;
16
+ payload: Uint8Array;
17
+ }[]>;
18
+ /**
19
+ * Remove all cached ciphertexts for a chain.
20
+ */
21
+ clearCiphertexts(chainId: number): Promise<void>;
11
22
  };
12
23
  //# sourceMappingURL=ciphertext-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ciphertext-store.d.ts","sourceRoot":"","sources":["../../../state/store/ciphertext-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAElD;;OAEG;2BAC0B,MAAM,SAAS,MAAM,WAAW,UAAU;IAQvE;;OAEG;2BAC0B,MAAM,SAAS,MAAM;EAOrD"}
1
+ {"version":3,"file":"ciphertext-store.d.ts","sourceRoot":"","sources":["../../../state/store/ciphertext-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAElD;;OAEG;2BAC0B,MAAM,SAAS,MAAM,WAAW,UAAU;IAQvE;;OAEG;2BAC0B,MAAM,SAAS,MAAM;IAOlD;;OAEG;6BAEQ,MAAM,GACd,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,CAAA;KAAE,EAAE,CAAC;IAYpD;;OAEG;8BAC6B,MAAM;EASzC"}
@@ -0,0 +1,24 @@
1
+ import type { HistoryEntry } from "../../history/types.js";
2
+ import type { Storage } from "../../types.js";
3
+ type HistoryEntryRecord = HistoryEntry;
4
+ export declare function createHistoryStore(storage: Storage): {
5
+ putHistoryEntry(entry: HistoryEntryRecord): Promise<void>;
6
+ hasHistorySnapshot(options: {
7
+ chainId: number;
8
+ mpk: string;
9
+ }): Promise<boolean>;
10
+ listHistoryEntries(options: {
11
+ chainId: number;
12
+ mpk: string;
13
+ }): Promise<HistoryEntry[]>;
14
+ clearHistoryEntries(options: {
15
+ chainId: number;
16
+ mpk: string;
17
+ }): Promise<void>;
18
+ commitHistorySnapshot(options: {
19
+ chainId: number;
20
+ mpk: string;
21
+ }): Promise<void>;
22
+ };
23
+ export {};
24
+ //# sourceMappingURL=history-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-store.d.ts","sourceRoot":"","sources":["../../../state/store/history-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,KAAK,kBAAkB,GAAG,YAAY,CAAC;AAGvC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO;2BASlB,kBAAkB;gCAOb;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;gCAShC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;iCAiB/B;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;mCAS9B;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;EAMxE"}
@@ -1,10 +1,11 @@
1
- export { createStateStore } from "./store.js";
1
+ export { createStateStore, type StateStore } from "./store.js";
2
2
  export { createLeafStore } from "./leaf-store.js";
3
3
  export { createNoteStore } from "./note-store.js";
4
4
  export { createNullifierStore } from "./nullifier-store.js";
5
5
  export { createRootStore } from "./root-store.js";
6
6
  export { createCiphertextStore } from "./ciphertext-store.js";
7
+ export { createHistoryStore } from "./history-store.js";
7
8
  export { createJobStore } from "./job-store.js";
8
- export { DEFAULT_JOB_TIMEOUT_MS, type JobStatus, type PendingJobKind, type PendingJobRecord, type PendingDepositJob, type PendingTransactJob, type PendingTransactContext, type PendingTransactOutput, } from "./jobs.js";
9
+ export { DEFAULT_JOB_TIMEOUT_MS, type JobStatus, type JobKind, type JobRecord, type AdapterRecord, type DepositRecord, type TransferRecord, type WithdrawRecord, type PoolTransactionRecord, type TransactContext, type TransactOutput, } from "./jobs.js";
9
10
  export type { LeafRecord, NoteInsert, NoteRecord, NullifierRecord, RootRecord, } from "./records.js";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../state/store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,UAAU,GACX,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../state/store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,UAAU,GACX,MAAM,cAAc,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import type { Storage } from "../../types.js";
2
- import type { JobStatus, PendingJobKind, PendingJobRecord } from "../store/jobs.js";
2
+ import type { JobKind, JobRecord, JobStatus } from "../store/jobs.js";
3
3
  export declare function createJobStore(storage: Storage): {
4
- putPendingJob(job: PendingJobRecord): Promise<void>;
5
- getPendingJob(relayId: string): Promise<PendingJobRecord | null>;
6
- listPendingJobs(filter?: {
7
- kind?: PendingJobKind;
4
+ putJob(job: JobRecord): Promise<void>;
5
+ getJob(relayId: string): Promise<JobRecord | null>;
6
+ listJobs(filter?: {
7
+ kind?: JobKind;
8
8
  statuses?: JobStatus[];
9
- }): Promise<PendingJobRecord[]>;
10
- deletePendingJob(relayId: string): Promise<void>;
9
+ }): Promise<JobRecord[]>;
10
+ deleteJob(relayId: string): Promise<void>;
11
11
  };
12
12
  //# sourceMappingURL=job-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-store.d.ts","sourceRoot":"","sources":["../../../state/store/job-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAO9C,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EACd,gBAAgB,EAGjB,MAAM,kBAAkB,CAAC;AA4G1B,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO;uBAElB,gBAAgB;2BASZ,MAAM;6BAKzB;QACN,IAAI,CAAC,EAAE,cAAc,CAAC;QACtB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;KACxB;8BAe6B,MAAM;EAIzC"}
1
+ {"version":3,"file":"job-store.d.ts","sourceRoot":"","sources":["../../../state/store/job-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,OAAO,KAAK,EAGV,OAAO,EACP,SAAS,EACT,SAAS,EAEV,MAAM,kBAAkB,CAAC;AAuJ1B,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO;gBAEzB,SAAS;oBASL,MAAM;sBAKlB;QACN,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;KACxB;uBAesB,MAAM;EAIlC"}