@veilo/sdk-core 0.4.0 → 0.6.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 (481) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +449 -1243
  3. package/accounts.d.ts +2 -0
  4. package/accounts.js +3 -0
  5. package/cloak.d.ts +2 -0
  6. package/cloak.js +3 -0
  7. package/config.d.ts +2 -2
  8. package/config.js +2 -3
  9. package/dist/cjs/accounts/admin.d.ts +84 -0
  10. package/dist/cjs/accounts/admin.js +208 -0
  11. package/dist/cjs/accounts/errors.d.ts +6 -0
  12. package/dist/cjs/accounts/errors.js +98 -0
  13. package/dist/cjs/accounts/index.d.ts +4 -0
  14. package/dist/cjs/accounts/index.js +20 -0
  15. package/dist/cjs/accounts/pdas.d.ts +23 -0
  16. package/dist/cjs/accounts/pdas.js +44 -0
  17. package/dist/cjs/accounts/queries.d.ts +41 -0
  18. package/dist/cjs/accounts/queries.js +95 -0
  19. package/dist/cjs/client.d.ts +2 -407
  20. package/dist/cjs/client.js +6 -938
  21. package/dist/cjs/cloak/client.d.ts +28 -0
  22. package/dist/cjs/cloak/client.js +68 -0
  23. package/dist/cjs/cloak/errors.d.ts +13 -0
  24. package/dist/cjs/cloak/errors.js +25 -0
  25. package/dist/cjs/cloak/helpers.d.ts +6 -0
  26. package/dist/cjs/cloak/helpers.js +35 -0
  27. package/dist/cjs/cloak/index.d.ts +6 -0
  28. package/dist/cjs/cloak/index.js +24 -0
  29. package/dist/cjs/cloak/polling.d.ts +7 -0
  30. package/dist/cjs/cloak/polling.js +66 -0
  31. package/dist/cjs/cloak/transport.d.ts +15 -0
  32. package/dist/cjs/cloak/transport.js +119 -0
  33. package/dist/cjs/cloak/types.d.ts +188 -0
  34. package/dist/cjs/cloak/types.js +5 -0
  35. package/dist/cjs/cloak.d.ts +1 -0
  36. package/dist/cjs/cloak.js +18 -0
  37. package/dist/cjs/compactNote.d.ts +21 -0
  38. package/dist/cjs/compactNote.js +31 -7
  39. package/dist/cjs/events/index.d.ts +6 -0
  40. package/dist/cjs/events/index.js +22 -0
  41. package/dist/cjs/events/parsing.d.ts +25 -0
  42. package/dist/cjs/events/parsing.js +158 -0
  43. package/dist/cjs/events/position.d.ts +26 -0
  44. package/dist/cjs/events/position.js +53 -0
  45. package/dist/cjs/events/recovery.d.ts +87 -0
  46. package/dist/cjs/events/recovery.js +281 -0
  47. package/dist/cjs/events/scanning.d.ts +35 -0
  48. package/dist/cjs/events/scanning.js +98 -0
  49. package/dist/cjs/events/tree.d.ts +27 -0
  50. package/dist/cjs/events/tree.js +63 -0
  51. package/dist/cjs/events/types.d.ts +39 -0
  52. package/dist/cjs/events.d.ts +1 -77
  53. package/dist/cjs/events.js +6 -154
  54. package/dist/cjs/identity/encoding.d.ts +9 -0
  55. package/dist/cjs/identity/encoding.js +85 -0
  56. package/dist/cjs/identity/index.d.ts +4 -0
  57. package/dist/cjs/identity/index.js +20 -0
  58. package/dist/cjs/identity/noteKey.d.ts +33 -0
  59. package/dist/cjs/identity/noteKey.js +97 -0
  60. package/dist/cjs/identity/spending.d.ts +18 -0
  61. package/dist/cjs/identity/spending.js +46 -0
  62. package/dist/cjs/identity/viewKey.d.ts +38 -0
  63. package/dist/cjs/identity/viewKey.js +105 -0
  64. package/dist/cjs/idl/index.d.ts +18 -0
  65. package/dist/cjs/idl/index.js +24 -0
  66. package/dist/cjs/idl/privacy_pool.json +9907 -9907
  67. package/dist/cjs/idl/privacy_pool_legacy.js +3307 -0
  68. package/dist/cjs/idl/privacy_pool_legacy.json +2302 -0
  69. package/dist/cjs/idl/privacy_pool_legacy2.d.ts +5 -0
  70. package/dist/cjs/idl/privacy_pool_legacy2.js +3397 -0
  71. package/dist/cjs/idl/privacy_pool_legacy2.json +2376 -0
  72. package/dist/cjs/index.d.ts +9 -3
  73. package/dist/cjs/index.js +15 -2
  74. package/dist/cjs/notes/amount.d.ts +2 -0
  75. package/dist/cjs/notes/amount.js +21 -0
  76. package/dist/cjs/notes/encryption.d.ts +41 -0
  77. package/dist/cjs/notes/encryption.js +75 -0
  78. package/dist/cjs/notes/index.d.ts +8 -0
  79. package/dist/cjs/notes/index.js +24 -0
  80. package/dist/cjs/notes/mailbox.d.ts +70 -0
  81. package/dist/cjs/notes/mailbox.js +164 -0
  82. package/dist/cjs/notes/model.d.ts +91 -0
  83. package/dist/cjs/notes/model.js +109 -0
  84. package/dist/cjs/notes/nullifier.d.ts +27 -0
  85. package/dist/cjs/notes/nullifier.js +45 -0
  86. package/dist/cjs/notes/recovery.d.ts +20 -0
  87. package/dist/cjs/notes/recovery.js +48 -0
  88. package/dist/cjs/notes/selection.d.ts +77 -0
  89. package/dist/cjs/notes/selection.js +193 -0
  90. package/dist/cjs/notes/spent.d.ts +60 -0
  91. package/dist/cjs/notes/spent.js +101 -0
  92. package/dist/cjs/perps/constants.d.ts +16 -0
  93. package/dist/cjs/perps/constants.js +52 -0
  94. package/dist/cjs/perps/index.d.ts +5 -0
  95. package/dist/cjs/perps/index.js +21 -0
  96. package/dist/cjs/perps/keys.d.ts +16 -0
  97. package/dist/cjs/perps/keys.js +43 -0
  98. package/dist/cjs/perps/pdas.d.ts +29 -0
  99. package/dist/cjs/perps/pdas.js +55 -0
  100. package/dist/cjs/perps/relayer.d.ts +9 -0
  101. package/dist/cjs/perps/relayer.js +35 -0
  102. package/dist/cjs/perps/types.d.ts +126 -0
  103. package/dist/cjs/perps/types.js +2 -0
  104. package/dist/cjs/positions/index.d.ts +4 -0
  105. package/dist/cjs/positions/index.js +20 -0
  106. package/dist/cjs/positions/keys.d.ts +29 -0
  107. package/dist/cjs/positions/keys.js +71 -0
  108. package/dist/cjs/positions/pdas.d.ts +15 -0
  109. package/dist/cjs/positions/pdas.js +54 -0
  110. package/dist/cjs/positions/relayer.d.ts +4 -0
  111. package/dist/cjs/positions/relayer.js +15 -0
  112. package/dist/cjs/positions/types.d.ts +97 -0
  113. package/dist/cjs/positions/types.js +2 -0
  114. package/dist/cjs/predictions/client.d.ts +41 -0
  115. package/dist/cjs/predictions/client.js +147 -0
  116. package/dist/cjs/predictions/index.d.ts +5 -0
  117. package/dist/cjs/predictions/index.js +21 -0
  118. package/dist/cjs/predictions/keys.d.ts +14 -0
  119. package/dist/cjs/predictions/keys.js +40 -0
  120. package/dist/cjs/predictions/pdas.d.ts +6 -0
  121. package/dist/cjs/predictions/pdas.js +13 -0
  122. package/dist/cjs/predictions/relayer.d.ts +3 -0
  123. package/dist/cjs/predictions/relayer.js +11 -0
  124. package/dist/cjs/predictions/types.d.ts +178 -0
  125. package/dist/cjs/predictions/types.js +2 -0
  126. package/dist/cjs/program.d.ts +2 -0
  127. package/dist/cjs/program.js +8 -7
  128. package/dist/cjs/proof.d.ts +1 -183
  129. package/dist/cjs/proof.js +16 -290
  130. package/dist/cjs/proofs/encoding.d.ts +17 -0
  131. package/dist/cjs/proofs/encoding.js +72 -0
  132. package/dist/cjs/proofs/formatting.d.ts +6 -0
  133. package/dist/cjs/proofs/formatting.js +34 -0
  134. package/dist/cjs/proofs/index.d.ts +5 -0
  135. package/dist/cjs/proofs/index.js +21 -0
  136. package/dist/cjs/proofs/swap.d.ts +87 -0
  137. package/dist/cjs/proofs/swap.js +144 -0
  138. package/dist/cjs/proofs/transaction.d.ts +28 -0
  139. package/dist/cjs/proofs/transaction.js +110 -0
  140. package/dist/cjs/proofs/types.d.ts +70 -0
  141. package/dist/cjs/proofs/types.js +2 -0
  142. package/dist/cjs/prover.d.ts +30 -4
  143. package/dist/cjs/prover.js +118 -49
  144. package/dist/cjs/relayer/api.d.ts +31 -0
  145. package/dist/cjs/relayer/api.js +86 -0
  146. package/dist/cjs/relayer/client.d.ts +73 -0
  147. package/dist/cjs/relayer/client.js +206 -0
  148. package/dist/cjs/relayer/crypto.d.ts +5 -0
  149. package/dist/cjs/relayer/crypto.js +26 -0
  150. package/dist/cjs/relayer/encoding.d.ts +2 -0
  151. package/dist/cjs/relayer/encoding.js +23 -0
  152. package/dist/cjs/relayer/errors.d.ts +7 -0
  153. package/dist/cjs/relayer/errors.js +17 -0
  154. package/dist/cjs/relayer/index.d.ts +6 -0
  155. package/dist/cjs/relayer/index.js +19 -0
  156. package/dist/cjs/relayer/internal-config.d.ts +36 -0
  157. package/dist/cjs/relayer/internal-config.js +9 -0
  158. package/dist/cjs/relayer/internal.d.ts +6 -0
  159. package/dist/cjs/relayer/internal.js +14 -0
  160. package/dist/cjs/relayer/transport.d.ts +19 -0
  161. package/dist/cjs/relayer/transport.js +68 -0
  162. package/dist/{src/relayer.d.ts → cjs/relayer/types.d.ts} +53 -96
  163. package/dist/cjs/relayer/types.js +5 -0
  164. package/dist/cjs/relayer.d.ts +1 -318
  165. package/dist/cjs/relayer.js +15 -254
  166. package/dist/cjs/shield/alt.js +8 -8
  167. package/dist/cjs/shield/errors.js +2 -2
  168. package/dist/cjs/shield/finalize.js +2 -2
  169. package/dist/cjs/shield/ix.d.ts +1 -1
  170. package/dist/cjs/shield/owner.js +9 -11
  171. package/dist/cjs/shield/ports.js +3 -3
  172. package/dist/cjs/shield/preflight.js +3 -3
  173. package/dist/cjs/shield/shield.js +20 -19
  174. package/dist/cjs/shield/types.d.ts +1 -1
  175. package/dist/cjs/transactions/deposit.d.ts +94 -0
  176. package/dist/cjs/transactions/deposit.js +234 -0
  177. package/dist/cjs/transactions/index.d.ts +7 -0
  178. package/dist/cjs/transactions/index.js +26 -0
  179. package/dist/cjs/transactions/swap.d.ts +71 -0
  180. package/dist/cjs/transactions/swap.js +184 -0
  181. package/dist/cjs/transactions/transact.d.ts +34 -0
  182. package/dist/cjs/transactions/transact.js +146 -0
  183. package/dist/cjs/transactions/transfer.d.ts +51 -0
  184. package/dist/cjs/transactions/transfer.js +106 -0
  185. package/dist/cjs/transactions/withdraw.d.ts +52 -0
  186. package/dist/cjs/transactions/withdraw.js +104 -0
  187. package/dist/cjs/utxo.d.ts +1 -235
  188. package/dist/cjs/utxo.js +15 -404
  189. package/dist/esm/accounts/admin.d.ts +84 -0
  190. package/dist/esm/accounts/admin.js +165 -0
  191. package/dist/esm/accounts/errors.d.ts +6 -0
  192. package/dist/esm/accounts/errors.js +95 -0
  193. package/dist/esm/accounts/index.d.ts +4 -0
  194. package/dist/esm/accounts/index.js +4 -0
  195. package/dist/esm/accounts/pdas.d.ts +23 -0
  196. package/dist/esm/accounts/pdas.js +38 -0
  197. package/dist/esm/accounts/queries.d.ts +41 -0
  198. package/dist/esm/accounts/queries.js +88 -0
  199. package/dist/esm/client.d.ts +2 -407
  200. package/dist/esm/client.js +3 -891
  201. package/dist/esm/cloak/client.d.ts +28 -0
  202. package/dist/esm/cloak/client.js +64 -0
  203. package/dist/esm/cloak/errors.d.ts +13 -0
  204. package/dist/esm/cloak/errors.js +21 -0
  205. package/dist/esm/cloak/helpers.d.ts +6 -0
  206. package/dist/esm/cloak/helpers.js +31 -0
  207. package/dist/esm/cloak/index.d.ts +6 -0
  208. package/dist/esm/cloak/index.js +6 -0
  209. package/dist/esm/cloak/polling.d.ts +7 -0
  210. package/dist/esm/cloak/polling.js +63 -0
  211. package/dist/esm/cloak/transport.d.ts +15 -0
  212. package/dist/esm/cloak/transport.js +115 -0
  213. package/dist/esm/cloak/types.d.ts +188 -0
  214. package/dist/esm/cloak/types.js +4 -0
  215. package/dist/esm/cloak.d.ts +1 -0
  216. package/dist/esm/cloak.js +2 -0
  217. package/dist/esm/compactNote.d.ts +21 -0
  218. package/dist/esm/compactNote.js +24 -1
  219. package/dist/esm/events/index.d.ts +6 -0
  220. package/dist/esm/events/index.js +6 -0
  221. package/dist/esm/events/parsing.d.ts +25 -0
  222. package/dist/esm/events/parsing.js +120 -0
  223. package/dist/esm/events/position.d.ts +26 -0
  224. package/dist/esm/events/position.js +48 -0
  225. package/dist/esm/events/recovery.d.ts +87 -0
  226. package/dist/esm/events/recovery.js +237 -0
  227. package/dist/esm/events/scanning.d.ts +35 -0
  228. package/dist/esm/events/scanning.js +92 -0
  229. package/dist/esm/events/tree.d.ts +27 -0
  230. package/dist/esm/events/tree.js +58 -0
  231. package/dist/esm/events/types.d.ts +39 -0
  232. package/dist/esm/events/types.js +1 -0
  233. package/dist/esm/events.d.ts +1 -77
  234. package/dist/esm/events.js +3 -129
  235. package/dist/esm/identity/encoding.d.ts +9 -0
  236. package/dist/esm/identity/encoding.js +75 -0
  237. package/dist/esm/identity/index.d.ts +4 -0
  238. package/dist/esm/identity/index.js +4 -0
  239. package/dist/esm/identity/noteKey.d.ts +33 -0
  240. package/dist/esm/identity/noteKey.js +91 -0
  241. package/dist/esm/identity/spending.d.ts +18 -0
  242. package/dist/esm/identity/spending.js +35 -0
  243. package/dist/esm/identity/viewKey.d.ts +38 -0
  244. package/dist/esm/identity/viewKey.js +96 -0
  245. package/dist/esm/idl/index.d.ts +18 -0
  246. package/dist/esm/idl/index.js +18 -0
  247. package/dist/esm/idl/privacy_pool.json +9907 -9907
  248. package/dist/esm/idl/privacy_pool_legacy.d.ts +5 -0
  249. package/dist/esm/idl/privacy_pool_legacy.js +3305 -0
  250. package/dist/esm/idl/privacy_pool_legacy.json +2302 -0
  251. package/dist/esm/idl/privacy_pool_legacy2.d.ts +5 -0
  252. package/dist/esm/idl/privacy_pool_legacy2.js +3395 -0
  253. package/dist/esm/idl/privacy_pool_legacy2.json +2376 -0
  254. package/dist/esm/index.d.ts +9 -3
  255. package/dist/esm/index.js +10 -3
  256. package/dist/esm/notes/amount.d.ts +2 -0
  257. package/dist/esm/notes/amount.js +18 -0
  258. package/dist/esm/notes/encryption.d.ts +41 -0
  259. package/dist/esm/notes/encryption.js +67 -0
  260. package/dist/esm/notes/index.d.ts +8 -0
  261. package/dist/esm/notes/index.js +8 -0
  262. package/dist/esm/notes/mailbox.d.ts +70 -0
  263. package/dist/esm/notes/mailbox.js +154 -0
  264. package/dist/esm/notes/model.d.ts +91 -0
  265. package/dist/esm/notes/model.js +99 -0
  266. package/dist/esm/notes/nullifier.d.ts +27 -0
  267. package/dist/esm/notes/nullifier.js +40 -0
  268. package/dist/esm/notes/recovery.d.ts +20 -0
  269. package/dist/esm/notes/recovery.js +45 -0
  270. package/dist/esm/notes/selection.d.ts +77 -0
  271. package/dist/esm/notes/selection.js +188 -0
  272. package/dist/esm/notes/spent.d.ts +60 -0
  273. package/dist/esm/notes/spent.js +96 -0
  274. package/dist/esm/perps/constants.d.ts +16 -0
  275. package/dist/esm/perps/constants.js +48 -0
  276. package/dist/esm/perps/index.d.ts +5 -0
  277. package/dist/esm/perps/index.js +5 -0
  278. package/dist/esm/perps/keys.d.ts +16 -0
  279. package/dist/esm/perps/keys.js +35 -0
  280. package/dist/esm/perps/pdas.d.ts +29 -0
  281. package/dist/esm/perps/pdas.js +47 -0
  282. package/dist/esm/perps/relayer.d.ts +9 -0
  283. package/dist/esm/perps/relayer.js +25 -0
  284. package/dist/esm/perps/types.d.ts +126 -0
  285. package/dist/esm/perps/types.js +1 -0
  286. package/dist/esm/positions/index.d.ts +4 -0
  287. package/dist/esm/positions/index.js +4 -0
  288. package/dist/esm/positions/keys.d.ts +29 -0
  289. package/dist/esm/positions/keys.js +65 -0
  290. package/dist/esm/positions/pdas.d.ts +15 -0
  291. package/dist/esm/positions/pdas.js +44 -0
  292. package/dist/esm/positions/relayer.d.ts +4 -0
  293. package/dist/esm/positions/relayer.js +10 -0
  294. package/dist/esm/positions/types.d.ts +97 -0
  295. package/dist/esm/positions/types.js +1 -0
  296. package/dist/esm/predictions/client.d.ts +41 -0
  297. package/dist/esm/predictions/client.js +141 -0
  298. package/dist/esm/predictions/index.d.ts +5 -0
  299. package/dist/esm/predictions/index.js +5 -0
  300. package/dist/esm/predictions/keys.d.ts +14 -0
  301. package/dist/esm/predictions/keys.js +33 -0
  302. package/dist/esm/predictions/pdas.d.ts +6 -0
  303. package/dist/esm/predictions/pdas.js +10 -0
  304. package/dist/esm/predictions/relayer.d.ts +3 -0
  305. package/dist/esm/predictions/relayer.js +7 -0
  306. package/dist/esm/predictions/types.d.ts +178 -0
  307. package/dist/esm/predictions/types.js +1 -0
  308. package/dist/esm/program.d.ts +2 -0
  309. package/dist/esm/program.js +4 -3
  310. package/dist/esm/proof.d.ts +1 -183
  311. package/dist/esm/proof.js +2 -281
  312. package/dist/esm/proofs/encoding.d.ts +17 -0
  313. package/dist/esm/proofs/encoding.js +68 -0
  314. package/dist/esm/proofs/formatting.d.ts +6 -0
  315. package/dist/esm/proofs/formatting.js +31 -0
  316. package/dist/esm/proofs/index.d.ts +5 -0
  317. package/dist/esm/proofs/index.js +5 -0
  318. package/dist/esm/proofs/swap.d.ts +87 -0
  319. package/dist/esm/proofs/swap.js +138 -0
  320. package/dist/esm/proofs/transaction.d.ts +28 -0
  321. package/dist/esm/proofs/transaction.js +105 -0
  322. package/dist/esm/proofs/types.d.ts +70 -0
  323. package/dist/esm/proofs/types.js +1 -0
  324. package/dist/esm/prover.d.ts +30 -4
  325. package/dist/esm/prover.js +115 -15
  326. package/dist/esm/relayer/api.d.ts +31 -0
  327. package/dist/esm/relayer/api.js +55 -0
  328. package/dist/esm/relayer/client.d.ts +73 -0
  329. package/dist/esm/relayer/client.js +199 -0
  330. package/dist/esm/relayer/crypto.d.ts +5 -0
  331. package/dist/esm/relayer/crypto.js +20 -0
  332. package/dist/esm/relayer/encoding.d.ts +2 -0
  333. package/dist/esm/relayer/encoding.js +19 -0
  334. package/dist/esm/relayer/errors.d.ts +7 -0
  335. package/dist/esm/relayer/errors.js +13 -0
  336. package/dist/esm/relayer/index.d.ts +6 -0
  337. package/dist/esm/relayer/index.js +3 -0
  338. package/dist/esm/relayer/internal-config.d.ts +36 -0
  339. package/dist/esm/relayer/internal-config.js +6 -0
  340. package/dist/esm/relayer/internal.d.ts +6 -0
  341. package/dist/esm/relayer/internal.js +10 -0
  342. package/dist/esm/relayer/transport.d.ts +19 -0
  343. package/dist/esm/relayer/transport.js +64 -0
  344. package/dist/esm/relayer/types.d.ts +275 -0
  345. package/dist/esm/relayer/types.js +4 -0
  346. package/dist/esm/relayer.d.ts +1 -318
  347. package/dist/esm/relayer.js +2 -249
  348. package/dist/esm/shield/alt.js +1 -1
  349. package/dist/esm/shield/errors.js +1 -1
  350. package/dist/esm/shield/finalize.js +1 -1
  351. package/dist/esm/shield/ix.d.ts +1 -1
  352. package/dist/esm/shield/owner.js +3 -5
  353. package/dist/esm/shield/ports.js +1 -1
  354. package/dist/esm/shield/preflight.js +1 -1
  355. package/dist/esm/shield/shield.js +4 -3
  356. package/dist/esm/shield/types.d.ts +1 -1
  357. package/dist/esm/transactions/deposit.d.ts +94 -0
  358. package/dist/esm/transactions/deposit.js +198 -0
  359. package/dist/esm/transactions/index.d.ts +7 -0
  360. package/dist/esm/transactions/index.js +7 -0
  361. package/dist/esm/transactions/swap.d.ts +71 -0
  362. package/dist/esm/transactions/swap.js +144 -0
  363. package/dist/esm/transactions/transact.d.ts +34 -0
  364. package/dist/esm/transactions/transact.js +110 -0
  365. package/dist/esm/transactions/transfer.d.ts +51 -0
  366. package/dist/esm/transactions/transfer.js +103 -0
  367. package/dist/esm/transactions/withdraw.d.ts +52 -0
  368. package/dist/esm/transactions/withdraw.js +101 -0
  369. package/dist/esm/utxo.d.ts +1 -235
  370. package/dist/esm/utxo.js +2 -382
  371. package/identity.d.ts +2 -0
  372. package/identity.js +3 -0
  373. package/idl.d.ts +2 -0
  374. package/idl.js +3 -0
  375. package/notes.d.ts +2 -0
  376. package/notes.js +3 -0
  377. package/package.json +131 -11
  378. package/perps.d.ts +2 -0
  379. package/perps.js +3 -0
  380. package/poseidon.d.ts +2 -2
  381. package/poseidon.js +2 -3
  382. package/positions.d.ts +2 -0
  383. package/positions.js +3 -0
  384. package/predictions.d.ts +2 -0
  385. package/predictions.js +3 -0
  386. package/proof.d.ts +2 -2
  387. package/proof.js +2 -3
  388. package/prover.d.ts +2 -2
  389. package/prover.js +2 -3
  390. package/relayer.d.ts +2 -0
  391. package/relayer.js +3 -0
  392. package/shield.d.ts +2 -2
  393. package/shield.js +2 -3
  394. package/transactions.d.ts +2 -0
  395. package/transactions.js +3 -0
  396. package/SHIELD_INTEGRATION.md +0 -143
  397. package/dist/src/client.d.ts +0 -407
  398. package/dist/src/client.js +0 -951
  399. package/dist/src/compactNote.d.ts +0 -107
  400. package/dist/src/compactNote.js +0 -167
  401. package/dist/src/config.d.ts +0 -82
  402. package/dist/src/config.js +0 -57
  403. package/dist/src/events.d.ts +0 -77
  404. package/dist/src/events.js +0 -167
  405. package/dist/src/idl/privacy_pool.js +0 -15218
  406. package/dist/src/index.d.ts +0 -16
  407. package/dist/src/index.js +0 -67
  408. package/dist/src/merkle.d.ts +0 -77
  409. package/dist/src/merkle.js +0 -156
  410. package/dist/src/poseidon.d.ts +0 -29
  411. package/dist/src/poseidon.js +0 -100
  412. package/dist/src/program.d.ts +0 -37
  413. package/dist/src/program.js +0 -61
  414. package/dist/src/proof.d.ts +0 -183
  415. package/dist/src/proof.js +0 -292
  416. package/dist/src/prover.d.ts +0 -54
  417. package/dist/src/prover.js +0 -112
  418. package/dist/src/random.d.ts +0 -16
  419. package/dist/src/random.js +0 -28
  420. package/dist/src/relayer.js +0 -257
  421. package/dist/src/retry.d.ts +0 -32
  422. package/dist/src/retry.js +0 -75
  423. package/dist/src/shield/alt.d.ts +0 -87
  424. package/dist/src/shield/alt.js +0 -194
  425. package/dist/src/shield/computeBudget.d.ts +0 -61
  426. package/dist/src/shield/computeBudget.js +0 -64
  427. package/dist/src/shield/errors.d.ts +0 -58
  428. package/dist/src/shield/errors.js +0 -121
  429. package/dist/src/shield/finalize.d.ts +0 -45
  430. package/dist/src/shield/finalize.js +0 -119
  431. package/dist/src/shield/index.d.ts +0 -35
  432. package/dist/src/shield/index.js +0 -68
  433. package/dist/src/shield/ix.d.ts +0 -54
  434. package/dist/src/shield/ix.js +0 -119
  435. package/dist/src/shield/owner.d.ts +0 -36
  436. package/dist/src/shield/owner.js +0 -126
  437. package/dist/src/shield/ports.d.ts +0 -43
  438. package/dist/src/shield/ports.js +0 -153
  439. package/dist/src/shield/preflight.d.ts +0 -30
  440. package/dist/src/shield/preflight.js +0 -154
  441. package/dist/src/shield/shield.d.ts +0 -68
  442. package/dist/src/shield/shield.js +0 -499
  443. package/dist/src/shield/types.d.ts +0 -202
  444. package/dist/src/utxo.d.ts +0 -235
  445. package/dist/src/utxo.js +0 -407
  446. package/dist/tests/compact-note.test.d.ts +0 -1
  447. package/dist/tests/compact-note.test.js +0 -173
  448. package/dist/tests/config.test.d.ts +0 -1
  449. package/dist/tests/config.test.js +0 -102
  450. package/dist/tests/edge-cases.test.d.ts +0 -1
  451. package/dist/tests/edge-cases.test.js +0 -220
  452. package/dist/tests/encryption.test.d.ts +0 -1
  453. package/dist/tests/encryption.test.js +0 -215
  454. package/dist/tests/events.test.d.ts +0 -1
  455. package/dist/tests/events.test.js +0 -78
  456. package/dist/tests/multi-tree.test.d.ts +0 -1
  457. package/dist/tests/multi-tree.test.js +0 -405
  458. package/dist/tests/pda.test.d.ts +0 -1
  459. package/dist/tests/pda.test.js +0 -229
  460. package/dist/tests/poseidon-builder-parity.test.d.ts +0 -1
  461. package/dist/tests/poseidon-builder-parity.test.js +0 -72
  462. package/dist/tests/poseidon.test.d.ts +0 -1
  463. package/dist/tests/poseidon.test.js +0 -142
  464. package/dist/tests/proof.test.d.ts +0 -1
  465. package/dist/tests/proof.test.js +0 -296
  466. package/dist/tests/relayer.test.d.ts +0 -1
  467. package/dist/tests/relayer.test.js +0 -271
  468. package/dist/tests/sdk.integration.test.d.ts +0 -1
  469. package/dist/tests/sdk.integration.test.js +0 -330
  470. package/dist/tests/shield-owner.test.d.ts +0 -1
  471. package/dist/tests/shield-owner.test.js +0 -89
  472. package/dist/tests/shield-preflight.test.d.ts +0 -1
  473. package/dist/tests/shield-preflight.test.js +0 -87
  474. package/dist/tests/shield-realproof.test.d.ts +0 -1
  475. package/dist/tests/shield-realproof.test.js +0 -272
  476. package/dist/tests/shield.test.d.ts +0 -1
  477. package/dist/tests/shield.test.js +0 -403
  478. package/dist/tests/utxo.test.d.ts +0 -1
  479. package/dist/tests/utxo.test.js +0 -140
  480. /package/dist/{src/shield → cjs/events}/types.js +0 -0
  481. /package/dist/{src/idl/privacy_pool.d.ts → cjs/idl/privacy_pool_legacy.d.ts} +0 -0
@@ -1,50 +1,97 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveCircuitArtifacts = resolveCircuitArtifacts;
36
4
  exports.createTransactionProver = createTransactionProver;
5
+ exports.createSwapProver = createSwapProver;
37
6
  exports.verifyProof = verifyProof;
38
- const proof_js_1 = require("./proof.js");
39
- /** Lazy-load snarkjs — works in both CJS and ESM contexts. */
40
- async function loadSnarkjs() {
7
+ const formatting_js_1 = require("./proofs/formatting.js");
8
+ const swap_js_1 = require("./proofs/swap.js");
9
+ /**
10
+ * Lazy-load snarkjs — works in both CJS and ESM contexts.
11
+ *
12
+ * The import is built through `Function` so TypeScript cannot rewrite it into a
13
+ * `require()` in the CommonJS build, and bundlers cannot follow it into browser
14
+ * output. Never call `require("snarkjs")` directly here: `require` is not
15
+ * defined in the ESM build, so it throws ReferenceError instead of this
16
+ * message.
17
+ */
18
+ async function loadSnarkjs(purpose = "proof generation") {
41
19
  try {
42
20
  // Dynamic import works in both CJS (Node 12+) and ESM
43
21
  return await Function('return import("snarkjs")')();
44
22
  }
45
23
  catch {
46
- throw new Error("snarkjs is required for proof generation. Install it: npm install snarkjs");
24
+ throw new Error(`snarkjs is required for ${purpose}. Install it: npm install snarkjs`);
25
+ }
26
+ }
27
+ /** Layout produced by `npm run copy:circuits`, relative to a circuits root. */
28
+ const ARTIFACT_LAYOUT = {
29
+ transaction: {
30
+ wasm: "transaction/transaction_js/transaction.wasm",
31
+ zkey: "transaction/transaction_final.zkey",
32
+ },
33
+ swap: {
34
+ wasm: "swap/swap_js/swap.wasm",
35
+ zkey: "swap/swap_final.zkey",
36
+ },
37
+ };
38
+ /**
39
+ * Resolve circuit artifacts from disk when the caller did not supply them.
40
+ *
41
+ * Search order, first hit wins:
42
+ *
43
+ * 1. $VEILO_CIRCUITS_DIR explicit override
44
+ * 2. <package>/circuits populated by `npm run copy:circuits`
45
+ * 3. <cwd>/circuits
46
+ * 4. <cwd>/node_modules/@veilo/sdk-core/circuits
47
+ *
48
+ * NODE ONLY, AND DELIBERATELY LAZY. `node:fs` is imported inside the call, not
49
+ * at module scope: this module is reachable from the package root export, and a
50
+ * top-level `node:fs` import throws at bundle time in browser builds with no
51
+ * Node polyfill — the same reason `random.ts` avoids `node:crypto`. Browsers
52
+ * must pass `CircuitArtifacts` explicitly; there is nothing to resolve there.
53
+ *
54
+ * @throws when no candidate directory holds both files, listing what it tried
55
+ */
56
+ async function resolveCircuitArtifacts(circuit) {
57
+ let fs;
58
+ let path;
59
+ try {
60
+ fs = await Function('return import("node:fs")')();
61
+ path = await Function('return import("node:path")')();
62
+ }
63
+ catch {
64
+ throw new Error(`Cannot resolve ${circuit} circuit artifacts: no filesystem available. ` +
65
+ "Pass CircuitArtifacts explicitly (browsers must supply buffers or URLs).");
66
+ }
67
+ const layout = ARTIFACT_LAYOUT[circuit];
68
+ if (!layout) {
69
+ throw new Error(`Unknown circuit ${JSON.stringify(circuit)}. Known circuits: ` +
70
+ `${Object.keys(ARTIFACT_LAYOUT).join(", ")}.`);
47
71
  }
72
+ const cwd = typeof process !== "undefined" ? process.cwd() : ".";
73
+ // __dirname exists in the CJS build; the ESM build falls back to cwd-relative
74
+ // candidates. dist/cjs/prover.js → ../../circuits is the package root copy.
75
+ const packageDir = typeof __dirname !== "undefined"
76
+ ? path.resolve(__dirname, "..", "..", "circuits")
77
+ : undefined;
78
+ const roots = [
79
+ process.env?.VEILO_CIRCUITS_DIR,
80
+ packageDir,
81
+ path.resolve(cwd, "circuits"),
82
+ path.resolve(cwd, "node_modules", "@veilo", "sdk-core", "circuits"),
83
+ ].filter((root) => Boolean(root));
84
+ for (const root of roots) {
85
+ const wasmPath = path.resolve(root, layout.wasm);
86
+ const zkeyPath = path.resolve(root, layout.zkey);
87
+ if (fs.existsSync(wasmPath) && fs.existsSync(zkeyPath)) {
88
+ return { wasmPath, zkeyPath };
89
+ }
90
+ }
91
+ throw new Error(`Cannot resolve ${circuit} circuit artifacts. Looked for ${layout.wasm} ` +
92
+ `and ${layout.zkey} under:\n ${roots.join("\n ")}\n` +
93
+ "Run `npm run copy:circuits` in the SDK, set VEILO_CIRCUITS_DIR, or pass " +
94
+ "CircuitArtifacts explicitly.");
48
95
  }
49
96
  /**
50
97
  * Create a proof builder function for the transaction circuit.
@@ -73,10 +120,30 @@ async function loadSnarkjs() {
73
120
  * ```
74
121
  */
75
122
  function createTransactionProver(artifacts) {
123
+ // Resolved on first use, not at factory time: constructing a prover must stay
124
+ // free of filesystem access so browser bundles can import this module.
125
+ let resolved;
126
+ return async (inputs) => {
127
+ const snarkjs = await loadSnarkjs();
128
+ resolved ?? (resolved = artifacts
129
+ ? Promise.resolve(artifacts)
130
+ : resolveCircuitArtifacts("transaction"));
131
+ const { wasmPath, zkeyPath } = await resolved;
132
+ const formattedInputs = (0, formatting_js_1.formatInputsForSnarkjs)(inputs);
133
+ const { proof } = await snarkjs.groth16.fullProve(formattedInputs, wasmPath, zkeyPath);
134
+ return proof;
135
+ };
136
+ }
137
+ /** Create a proof builder for the current `swap.circom` witness shape. */
138
+ function createSwapProver(artifacts) {
139
+ let resolved;
76
140
  return async (inputs) => {
77
141
  const snarkjs = await loadSnarkjs();
78
- const formattedInputs = (0, proof_js_1.formatInputsForSnarkjs)(inputs);
79
- const { proof } = await snarkjs.groth16.fullProve(formattedInputs, artifacts.wasmPath, artifacts.zkeyPath);
142
+ resolved ?? (resolved = artifacts
143
+ ? Promise.resolve(artifacts)
144
+ : resolveCircuitArtifacts("swap"));
145
+ const { wasmPath, zkeyPath } = await resolved;
146
+ const { proof } = await snarkjs.groth16.fullProve((0, swap_js_1.formatSwapInputsForSnarkjs)(inputs), wasmPath, zkeyPath);
80
147
  return proof;
81
148
  };
82
149
  }
@@ -91,18 +158,20 @@ function createTransactionProver(artifacts) {
91
158
  * @returns true if the proof is valid
92
159
  */
93
160
  async function verifyProof(proof, publicSignals, vkey) {
94
- // eslint-disable-next-line @typescript-eslint/no-var-requires
95
- let snarkjs;
96
- try {
97
- snarkjs = require("snarkjs");
98
- }
99
- catch {
100
- throw new Error('snarkjs is required for proof verification. Install it: npm install snarkjs');
101
- }
161
+ const snarkjs = await loadSnarkjs("proof verification");
102
162
  let vkeyObj;
103
163
  if (typeof vkey === "string") {
104
- // Node.js file path — read and parse
105
- const fs = await Promise.resolve().then(() => __importStar(require("fs")));
164
+ // Node.js file path — read and parse. Same hidden import as
165
+ // resolveCircuitArtifacts: a plain `await import("fs")` is followed by
166
+ // bundlers and breaks browser builds that have no Node polyfill.
167
+ let fs;
168
+ try {
169
+ fs = await Function('return import("node:fs")')();
170
+ }
171
+ catch {
172
+ throw new Error("Reading a verification key from a path requires Node. Pass the parsed " +
173
+ "verification key object instead.");
174
+ }
106
175
  vkeyObj = JSON.parse(fs.readFileSync(vkey, "utf-8"));
107
176
  }
108
177
  else {
@@ -0,0 +1,31 @@
1
+ import type { CheckNullifiersResponse, ChallengeResponse, CheckUsernameResponse, DeleteUserDataResponse, MerkleRootResponse, MerkleTreeResponse, PreRegisterKeyResponse, PrivateSwapRequest, PrivateSwapResponse, PrivateTransferRequest, PrivateTransferResponse, QueryNotesRequest, QueryNotesResponse, RegisterRequest, RegisterResponse, RestoreRequest, RestoreResponse, SaveEncryptedNoteRequest, SaveEncryptedNoteResponse, VeiloPublicKeyResponse, WithdrawRequest, WithdrawResponse } from "./types.js";
2
+ /** Request a wallet-authentication challenge from Veilo. */
3
+ export declare function getChallenge(walletPublicKey: string): Promise<ChallengeResponse>;
4
+ /** Register a Veilo account and receive its auth token. */
5
+ export declare function register(data: RegisterRequest): Promise<RegisterResponse>;
6
+ /** Restore a Veilo account and receive its auth token. */
7
+ export declare function restore(data: RestoreRequest): Promise<RestoreResponse>;
8
+ export declare function checkUsername(username: string): Promise<CheckUsernameResponse>;
9
+ export declare function getVeiloPublicKey(params: {
10
+ username: string;
11
+ publicKey?: never;
12
+ } | {
13
+ publicKey: string;
14
+ username?: never;
15
+ }): Promise<VeiloPublicKeyResponse>;
16
+ export declare function preRegisterKey(solanaAddress: string): Promise<PreRegisterKeyResponse>;
17
+ export declare function saveEncryptedNote(data: SaveEncryptedNoteRequest): Promise<SaveEncryptedNoteResponse>;
18
+ /** Query notes with an explicit per-call token; no auth state is shared. */
19
+ export declare function queryEncryptedNotes(authToken: string, params?: QueryNotesRequest): Promise<QueryNotesResponse>;
20
+ /** Delete the authenticated user's stored data without retaining their token. */
21
+ export declare function deleteUserData(authToken: string): Promise<DeleteUserDataResponse>;
22
+ /** Raw check-batch call. Prefer `checkNullifiersSpent`, which chunks for you. */
23
+ export declare function checkNullifiers(nullifiers: string[]): Promise<CheckNullifiersResponse>;
24
+ export declare function getMerkleRoot(mintAddress?: string, treeId?: number): Promise<MerkleRootResponse>;
25
+ export declare function getMerkleTree(mintAddress?: string, treeId?: number): Promise<MerkleTreeResponse>;
26
+ export declare function submitWithdraw(data: WithdrawRequest): Promise<WithdrawResponse>;
27
+ export declare function submitPrivateTransfer(data: PrivateTransferRequest): Promise<PrivateTransferResponse>;
28
+ export declare function submitPrivateSwap(data: PrivateSwapRequest): Promise<PrivateSwapResponse>;
29
+ export { submitClosePosition, submitMergePositions, submitOpenPosition, } from "../positions/relayer.js";
30
+ export { submitJperpCancelTrigger, submitJperpClose, submitJperpOpen, submitJperpRecoverNative, submitJperpRecoverSeed, submitJperpReissue, submitJperpSetTpsl, submitJperpUpdateTpsl, } from "../perps/relayer.js";
31
+ export { submitPredictionOpen, submitPredictionReissue, } from "../predictions/relayer.js";
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.submitPredictionReissue = exports.submitPredictionOpen = exports.submitJperpUpdateTpsl = exports.submitJperpSetTpsl = exports.submitJperpReissue = exports.submitJperpRecoverSeed = exports.submitJperpRecoverNative = exports.submitJperpOpen = exports.submitJperpClose = exports.submitJperpCancelTrigger = exports.submitOpenPosition = exports.submitMergePositions = exports.submitClosePosition = void 0;
4
+ exports.getChallenge = getChallenge;
5
+ exports.register = register;
6
+ exports.restore = restore;
7
+ exports.checkUsername = checkUsername;
8
+ exports.getVeiloPublicKey = getVeiloPublicKey;
9
+ exports.preRegisterKey = preRegisterKey;
10
+ exports.saveEncryptedNote = saveEncryptedNote;
11
+ exports.queryEncryptedNotes = queryEncryptedNotes;
12
+ exports.deleteUserData = deleteUserData;
13
+ exports.checkNullifiers = checkNullifiers;
14
+ exports.getMerkleRoot = getMerkleRoot;
15
+ exports.getMerkleTree = getMerkleTree;
16
+ exports.submitWithdraw = submitWithdraw;
17
+ exports.submitPrivateTransfer = submitPrivateTransfer;
18
+ exports.submitPrivateSwap = submitPrivateSwap;
19
+ const internal_js_1 = require("./internal.js");
20
+ /** Request a wallet-authentication challenge from Veilo. */
21
+ function getChallenge(walletPublicKey) {
22
+ return (0, internal_js_1.getInternalRelayerClient)().getChallenge(walletPublicKey);
23
+ }
24
+ /** Register a Veilo account and receive its auth token. */
25
+ function register(data) {
26
+ return (0, internal_js_1.getInternalRelayerClient)().register(data);
27
+ }
28
+ /** Restore a Veilo account and receive its auth token. */
29
+ function restore(data) {
30
+ return (0, internal_js_1.getInternalRelayerClient)().restore(data);
31
+ }
32
+ function checkUsername(username) {
33
+ return (0, internal_js_1.getInternalRelayerClient)().checkUsername(username);
34
+ }
35
+ function getVeiloPublicKey(params) {
36
+ return (0, internal_js_1.getInternalRelayerClient)().getVeiloPublicKey(params);
37
+ }
38
+ function preRegisterKey(solanaAddress) {
39
+ return (0, internal_js_1.getInternalRelayerClient)().preRegisterKey(solanaAddress);
40
+ }
41
+ function saveEncryptedNote(data) {
42
+ return (0, internal_js_1.getInternalRelayerClient)().saveEncryptedNote(data);
43
+ }
44
+ /** Query notes with an explicit per-call token; no auth state is shared. */
45
+ function queryEncryptedNotes(authToken, params = {}) {
46
+ return (0, internal_js_1.createInternalRelayerClient)({ authToken }).queryEncryptedNotes(params);
47
+ }
48
+ /** Delete the authenticated user's stored data without retaining their token. */
49
+ function deleteUserData(authToken) {
50
+ return (0, internal_js_1.createInternalRelayerClient)({ authToken }).deleteUserData();
51
+ }
52
+ /** Raw check-batch call. Prefer `checkNullifiersSpent`, which chunks for you. */
53
+ function checkNullifiers(nullifiers) {
54
+ return (0, internal_js_1.getInternalRelayerClient)().checkNullifiers(nullifiers);
55
+ }
56
+ function getMerkleRoot(mintAddress, treeId) {
57
+ return (0, internal_js_1.getInternalRelayerClient)().getMerkleRoot(mintAddress, treeId);
58
+ }
59
+ function getMerkleTree(mintAddress, treeId) {
60
+ return (0, internal_js_1.getInternalRelayerClient)().getMerkleTree(mintAddress, treeId);
61
+ }
62
+ function submitWithdraw(data) {
63
+ return (0, internal_js_1.getInternalRelayerClient)().submitWithdraw(data);
64
+ }
65
+ function submitPrivateTransfer(data) {
66
+ return (0, internal_js_1.getInternalRelayerClient)().submitPrivateTransfer(data);
67
+ }
68
+ function submitPrivateSwap(data) {
69
+ return (0, internal_js_1.getInternalRelayerClient)().submitPrivateSwap(data);
70
+ }
71
+ var relayer_js_1 = require("../positions/relayer.js");
72
+ Object.defineProperty(exports, "submitClosePosition", { enumerable: true, get: function () { return relayer_js_1.submitClosePosition; } });
73
+ Object.defineProperty(exports, "submitMergePositions", { enumerable: true, get: function () { return relayer_js_1.submitMergePositions; } });
74
+ Object.defineProperty(exports, "submitOpenPosition", { enumerable: true, get: function () { return relayer_js_1.submitOpenPosition; } });
75
+ var relayer_js_2 = require("../perps/relayer.js");
76
+ Object.defineProperty(exports, "submitJperpCancelTrigger", { enumerable: true, get: function () { return relayer_js_2.submitJperpCancelTrigger; } });
77
+ Object.defineProperty(exports, "submitJperpClose", { enumerable: true, get: function () { return relayer_js_2.submitJperpClose; } });
78
+ Object.defineProperty(exports, "submitJperpOpen", { enumerable: true, get: function () { return relayer_js_2.submitJperpOpen; } });
79
+ Object.defineProperty(exports, "submitJperpRecoverNative", { enumerable: true, get: function () { return relayer_js_2.submitJperpRecoverNative; } });
80
+ Object.defineProperty(exports, "submitJperpRecoverSeed", { enumerable: true, get: function () { return relayer_js_2.submitJperpRecoverSeed; } });
81
+ Object.defineProperty(exports, "submitJperpReissue", { enumerable: true, get: function () { return relayer_js_2.submitJperpReissue; } });
82
+ Object.defineProperty(exports, "submitJperpSetTpsl", { enumerable: true, get: function () { return relayer_js_2.submitJperpSetTpsl; } });
83
+ Object.defineProperty(exports, "submitJperpUpdateTpsl", { enumerable: true, get: function () { return relayer_js_2.submitJperpUpdateTpsl; } });
84
+ var relayer_js_3 = require("../predictions/relayer.js");
85
+ Object.defineProperty(exports, "submitPredictionOpen", { enumerable: true, get: function () { return relayer_js_3.submitPredictionOpen; } });
86
+ Object.defineProperty(exports, "submitPredictionReissue", { enumerable: true, get: function () { return relayer_js_3.submitPredictionReissue; } });
@@ -0,0 +1,73 @@
1
+ import type { CheckNullifiersResponse, ChallengeResponse, CheckUsernameResponse, DeleteUserDataResponse, MerkleRootResponse, MerkleTreeResponse, PreRegisterKeyResponse, PrivateSwapRequest, PrivateSwapResponse, PrivateTransferRequest, PrivateTransferResponse, QueryNotesRequest, QueryNotesResponse, RegisterRequest, RegisterResponse, RestoreRequest, RestoreResponse, RetryPolicy, SaveEncryptedNoteRequest, SaveEncryptedNoteResponse, VeiloPublicKeyResponse, WithdrawRequest, WithdrawResponse } from "./types.js";
2
+ import { type InternalRelayerClientOptions } from "./internal-config.js";
3
+ import type { ClosePositionRequest, ClosePositionResponse, MergePositionsRequest, MergePositionsResponse, OpenPositionRequest, OpenPositionResponse } from "../positions/types.js";
4
+ import type { JperpCancelTriggerRequest, JperpCancelTriggerResponse, JperpCloseRequest, JperpDecreaseResponse, JperpOpenRequest, JperpOpenResponse, JperpRecoverNativeRequest, JperpRecoverNativeResponse, JperpRecoverSeedRequest, JperpRecoverSeedResponse, JperpReissueRequest, JperpReissueResponse, JperpSetTpslRequest, JperpUpdateTpslRequest } from "../perps/types.js";
5
+ import type { PredictionOpenRequest, PredictionOpenResponse, PredictionReissueRequest, PredictionReissueResponse } from "../predictions/types.js";
6
+ /** @internal Relayer transport behind the SDK's functional helpers. */
7
+ export declare class VeiloRelayerClient {
8
+ private readonly transport;
9
+ private readonly relayerPubKey;
10
+ constructor(config?: InternalRelayerClientOptions, retry?: Partial<RetryPolicy>);
11
+ /** Update the auth token (e.g. after register/restore). */
12
+ setAuthToken(token: string): void;
13
+ private encryptPayload;
14
+ /** Request a signature challenge for wallet authentication. */
15
+ getChallenge(walletPublicKey: string): Promise<ChallengeResponse>;
16
+ /** Register a new account with a signed challenge. Returns a JWT auth token. */
17
+ register(data: RegisterRequest): Promise<RegisterResponse>;
18
+ /** Restore an existing account using a signed challenge. Returns a JWT auth token. */
19
+ restore(data: RestoreRequest): Promise<RestoreResponse>;
20
+ /** Check whether a username is available for registration. */
21
+ checkUsername(username: string): Promise<CheckUsernameResponse>;
22
+ /** Look up a user's Veilo public key by username or wallet public key. */
23
+ getVeiloPublicKey(params: {
24
+ username: string;
25
+ publicKey?: never;
26
+ } | {
27
+ publicKey: string;
28
+ username?: never;
29
+ }): Promise<VeiloPublicKeyResponse>;
30
+ /**
31
+ * Provision (or retrieve) the Veilo spend key paired with a Solana address.
32
+ * Public and idempotent; the response contains public key material only.
33
+ */
34
+ preRegisterKey(solanaAddress: string): Promise<PreRegisterKeyResponse>;
35
+ /** Save an encrypted note to the relayer's database. */
36
+ saveEncryptedNote(data: SaveEncryptedNoteRequest): Promise<SaveEncryptedNoteResponse>;
37
+ /** Query encrypted notes for the authenticated user. Requires auth token. */
38
+ queryEncryptedNotes(params?: QueryNotesRequest): Promise<QueryNotesResponse>;
39
+ /** Delete all stored data for the authenticated user. Requires auth token. */
40
+ /**
41
+ * Ask which of these nullifiers the relayer has seen spent.
42
+ *
43
+ * Caller must respect MAX_NULLIFIERS_PER_CHECK; `checkNullifiersSpent` in
44
+ * notes/spent.ts does the chunking. Unauthenticated: a nullifier reveals
45
+ * nothing about ownership on its own.
46
+ */
47
+ checkNullifiers(nullifiers: string[]): Promise<CheckNullifiersResponse>;
48
+ deleteUserData(): Promise<DeleteUserDataResponse>;
49
+ /** Fetch the current Merkle root for a pool, optionally filtered by mint and tree ID. */
50
+ getMerkleRoot(mintAddress?: string, treeId?: number): Promise<MerkleRootResponse>;
51
+ /** Fetch the full Merkle tree (all leaves) for a pool. */
52
+ getMerkleTree(mintAddress?: string, treeId?: number): Promise<MerkleTreeResponse>;
53
+ /** Submit an encrypted withdrawal request to the relayer. Not retried on failure. */
54
+ submitWithdraw(data: WithdrawRequest): Promise<WithdrawResponse>;
55
+ /** Submit an encrypted private transfer request. Not retried on failure. */
56
+ submitPrivateTransfer(data: PrivateTransferRequest): Promise<PrivateTransferResponse>;
57
+ /** Submit an encrypted private swap request. Not retried on failure. */
58
+ submitPrivateSwap(data: PrivateSwapRequest): Promise<PrivateSwapResponse>;
59
+ submitOpenPosition(data: OpenPositionRequest): Promise<OpenPositionResponse>;
60
+ submitClosePosition(data: ClosePositionRequest): Promise<ClosePositionResponse>;
61
+ submitMergePositions(data: MergePositionsRequest): Promise<MergePositionsResponse>;
62
+ submitJperpOpen(data: JperpOpenRequest): Promise<JperpOpenResponse>;
63
+ submitJperpClose(data: JperpCloseRequest): Promise<JperpDecreaseResponse>;
64
+ submitJperpSetTpsl(data: JperpSetTpslRequest): Promise<JperpDecreaseResponse>;
65
+ submitJperpUpdateTpsl(data: JperpUpdateTpslRequest): Promise<JperpDecreaseResponse>;
66
+ submitJperpCancelTrigger(data: JperpCancelTriggerRequest): Promise<JperpCancelTriggerResponse>;
67
+ submitJperpReissue(data: JperpReissueRequest): Promise<JperpReissueResponse>;
68
+ submitJperpRecoverSeed(data: JperpRecoverSeedRequest): Promise<JperpRecoverSeedResponse>;
69
+ submitJperpRecoverNative(data: JperpRecoverNativeRequest): Promise<JperpRecoverNativeResponse>;
70
+ submitPredictionOpen(data: PredictionOpenRequest): Promise<PredictionOpenResponse>;
71
+ submitPredictionReissue(data: PredictionReissueRequest): Promise<PredictionReissueResponse>;
72
+ private submitEncrypted;
73
+ }
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.VeiloRelayerClient = void 0;
7
+ const tweetnacl_1 = __importDefault(require("tweetnacl"));
8
+ const crypto_js_1 = require("./crypto.js");
9
+ const encoding_js_1 = require("./encoding.js");
10
+ const internal_config_js_1 = require("./internal-config.js");
11
+ const transport_js_1 = require("./transport.js");
12
+ // =============================================================================
13
+ // Relayer Client
14
+ // =============================================================================
15
+ /** @internal Relayer transport behind the SDK's functional helpers. */
16
+ class VeiloRelayerClient {
17
+ constructor(config = {}, retry) {
18
+ this.transport = new transport_js_1.RelayerHttpTransport(config, retry);
19
+ this.relayerPubKey = (0, encoding_js_1.fromBase64)(config.encryptionPublicKey ?? internal_config_js_1.VEILO_RELAYER_PUBLIC_KEY);
20
+ }
21
+ /** Update the auth token (e.g. after register/restore). */
22
+ setAuthToken(token) {
23
+ this.transport.setAuthToken(token);
24
+ }
25
+ encryptPayload(data) {
26
+ return (0, crypto_js_1.encryptForRelayer)({
27
+ ...data,
28
+ timestamp: Date.now(),
29
+ nonce: (0, encoding_js_1.toBase64)(tweetnacl_1.default.randomBytes(32)),
30
+ }, this.relayerPubKey);
31
+ }
32
+ // ---------------------------------------------------------------------------
33
+ // Auth
34
+ // ---------------------------------------------------------------------------
35
+ /** Request a signature challenge for wallet authentication. */
36
+ async getChallenge(walletPublicKey) {
37
+ return this.transport.request("POST", "/auth/challenge", {
38
+ body: { walletPublicKey },
39
+ });
40
+ }
41
+ /** Register a new account with a signed challenge. Returns a JWT auth token. */
42
+ async register(data) {
43
+ return this.transport.request("POST", "/auth/register", { body: data });
44
+ }
45
+ /** Restore an existing account using a signed challenge. Returns a JWT auth token. */
46
+ async restore(data) {
47
+ return this.transport.request("POST", "/auth/restore", { body: data });
48
+ }
49
+ /** Check whether a username is available for registration. */
50
+ async checkUsername(username) {
51
+ return this.transport.request("GET", `/auth/checkUsername?username=${encodeURIComponent(username)}`);
52
+ }
53
+ /** Look up a user's Veilo public key by username or wallet public key. */
54
+ async getVeiloPublicKey(params) {
55
+ const query = "username" in params && params.username
56
+ ? `username=${encodeURIComponent(params.username)}`
57
+ : `publicKey=${encodeURIComponent(params.publicKey)}`;
58
+ return this.transport.request("GET", `/auth/veiloPublicKey?${query}`);
59
+ }
60
+ /**
61
+ * Provision (or retrieve) the Veilo spend key paired with a Solana address.
62
+ * Public and idempotent; the response contains public key material only.
63
+ */
64
+ async preRegisterKey(solanaAddress) {
65
+ return this.transport.request("POST", "/auth/pre-register-key", {
66
+ body: { solanaAddress },
67
+ });
68
+ }
69
+ // ---------------------------------------------------------------------------
70
+ // Notes
71
+ // ---------------------------------------------------------------------------
72
+ /** Save an encrypted note to the relayer's database. */
73
+ async saveEncryptedNote(data) {
74
+ return this.transport.request("POST", "/notes/save", { body: data });
75
+ }
76
+ /** Query encrypted notes for the authenticated user. Requires auth token. */
77
+ async queryEncryptedNotes(params = {}) {
78
+ return this.transport.request("POST", "/notes/query", {
79
+ body: params,
80
+ authenticated: true,
81
+ });
82
+ }
83
+ /** Delete all stored data for the authenticated user. Requires auth token. */
84
+ /**
85
+ * Ask which of these nullifiers the relayer has seen spent.
86
+ *
87
+ * Caller must respect MAX_NULLIFIERS_PER_CHECK; `checkNullifiersSpent` in
88
+ * notes/spent.ts does the chunking. Unauthenticated: a nullifier reveals
89
+ * nothing about ownership on its own.
90
+ */
91
+ async checkNullifiers(nullifiers) {
92
+ return this.transport.request("POST", "/notes/nullifiers/check-batch", {
93
+ body: { nullifiers },
94
+ });
95
+ }
96
+ async deleteUserData() {
97
+ return this.transport.request("POST", "/notes/delete", { authenticated: true });
98
+ }
99
+ // ---------------------------------------------------------------------------
100
+ // Merkle
101
+ // ---------------------------------------------------------------------------
102
+ /** Fetch the current Merkle root for a pool, optionally filtered by mint and tree ID. */
103
+ async getMerkleRoot(mintAddress, treeId) {
104
+ const params = new URLSearchParams();
105
+ if (mintAddress)
106
+ params.append("mintAddress", mintAddress);
107
+ if (treeId !== undefined)
108
+ params.append("treeId", treeId.toString());
109
+ const qs = params.toString();
110
+ return this.transport.request("GET", `/merkle/root${qs ? `?${qs}` : ""}`);
111
+ }
112
+ /** Fetch the full Merkle tree (all leaves) for a pool. */
113
+ async getMerkleTree(mintAddress, treeId) {
114
+ const params = new URLSearchParams();
115
+ if (mintAddress)
116
+ params.append("mintAddress", mintAddress);
117
+ if (treeId !== undefined)
118
+ params.append("treeId", treeId.toString());
119
+ const qs = params.toString();
120
+ return this.transport.request("GET", `/merkle/tree${qs ? `?${qs}` : ""}`);
121
+ }
122
+ // ---------------------------------------------------------------------------
123
+ // Transact (encrypted payloads)
124
+ // ---------------------------------------------------------------------------
125
+ /** Submit an encrypted withdrawal request to the relayer. Not retried on failure. */
126
+ async submitWithdraw(data) {
127
+ const encryptedPayload = this.encryptPayload(data);
128
+ return this.transport.request("POST", "/transact/withdraw", {
129
+ body: { encryptedPayload },
130
+ retryable: false,
131
+ });
132
+ }
133
+ /** Submit an encrypted private transfer request. Not retried on failure. */
134
+ async submitPrivateTransfer(data) {
135
+ const encryptedPayload = this.encryptPayload(data);
136
+ return this.transport.request("POST", "/transact/private-transfer", {
137
+ body: { encryptedPayload },
138
+ retryable: false,
139
+ });
140
+ }
141
+ /** Submit an encrypted private swap request. Not retried on failure. */
142
+ async submitPrivateSwap(data) {
143
+ const encryptedPayload = this.encryptPayload(data);
144
+ return this.transport.request("POST", "/transact/private-swap", {
145
+ body: { encryptedPayload },
146
+ retryable: false,
147
+ });
148
+ }
149
+ // ---------------------------------------------------------------------------
150
+ // Private positions (encrypted payloads)
151
+ // ---------------------------------------------------------------------------
152
+ async submitOpenPosition(data) {
153
+ return this.submitEncrypted("/positions/open", data);
154
+ }
155
+ async submitClosePosition(data) {
156
+ return this.submitEncrypted("/positions/close", data);
157
+ }
158
+ async submitMergePositions(data) {
159
+ return this.submitEncrypted("/positions/merge", data);
160
+ }
161
+ // ---------------------------------------------------------------------------
162
+ // Private Jupiter Perps (encrypted payloads)
163
+ // ---------------------------------------------------------------------------
164
+ async submitJperpOpen(data) {
165
+ return this.submitEncrypted("/jperp/open", data);
166
+ }
167
+ async submitJperpClose(data) {
168
+ return this.submitEncrypted("/jperp/close", data);
169
+ }
170
+ async submitJperpSetTpsl(data) {
171
+ return this.submitEncrypted("/jperp/set-tpsl", data);
172
+ }
173
+ async submitJperpUpdateTpsl(data) {
174
+ return this.submitEncrypted("/jperp/update-tpsl", data);
175
+ }
176
+ async submitJperpCancelTrigger(data) {
177
+ return this.submitEncrypted("/jperp/cancel-trigger", data);
178
+ }
179
+ async submitJperpReissue(data) {
180
+ return this.submitEncrypted("/jperp/reissue", data);
181
+ }
182
+ async submitJperpRecoverSeed(data) {
183
+ return this.submitEncrypted("/jperp/recover-seed", data);
184
+ }
185
+ async submitJperpRecoverNative(data) {
186
+ return this.submitEncrypted("/jperp/recover-native", data);
187
+ }
188
+ // ---------------------------------------------------------------------------
189
+ // Private Jupiter Predictions (encrypted payloads)
190
+ // ---------------------------------------------------------------------------
191
+ async submitPredictionOpen(data) {
192
+ return this.submitEncrypted("/predictions/open", data);
193
+ }
194
+ async submitPredictionReissue(data) {
195
+ return this.submitEncrypted("/predictions/reissue", data);
196
+ }
197
+ submitEncrypted(route, data) {
198
+ const encryptedPayload = this.encryptPayload(data);
199
+ return this.transport.request("POST", route, {
200
+ body: { encryptedPayload },
201
+ // These endpoints can land transactions; automatic replay is unsafe.
202
+ retryable: false,
203
+ });
204
+ }
205
+ }
206
+ exports.VeiloRelayerClient = VeiloRelayerClient;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Encrypt a JSON-serializable payload for the relayer using NaCl box.
3
+ * Layout: [ephemeralPubKey (32)] [nonce (24)] [ciphertext (...)]
4
+ */
5
+ export declare function encryptForRelayer(data: unknown, relayerPublicKey: Uint8Array): string;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.encryptForRelayer = encryptForRelayer;
7
+ const tweetnacl_1 = __importDefault(require("tweetnacl"));
8
+ const encoding_js_1 = require("./encoding.js");
9
+ // =============================================================================
10
+ // Encryption
11
+ // =============================================================================
12
+ /**
13
+ * Encrypt a JSON-serializable payload for the relayer using NaCl box.
14
+ * Layout: [ephemeralPubKey (32)] [nonce (24)] [ciphertext (...)]
15
+ */
16
+ function encryptForRelayer(data, relayerPublicKey) {
17
+ const ephemeral = tweetnacl_1.default.box.keyPair();
18
+ const message = new TextEncoder().encode(JSON.stringify(data));
19
+ const nonce = tweetnacl_1.default.randomBytes(tweetnacl_1.default.box.nonceLength);
20
+ const ciphertext = tweetnacl_1.default.box(message, nonce, relayerPublicKey, ephemeral.secretKey);
21
+ const payload = new Uint8Array(ephemeral.publicKey.length + nonce.length + ciphertext.length);
22
+ payload.set(ephemeral.publicKey, 0);
23
+ payload.set(nonce, ephemeral.publicKey.length);
24
+ payload.set(ciphertext, ephemeral.publicKey.length + nonce.length);
25
+ return (0, encoding_js_1.toBase64)(payload);
26
+ }
@@ -0,0 +1,2 @@
1
+ export declare function toBase64(bytes: Uint8Array): string;
2
+ export declare function fromBase64(str: string): Uint8Array;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // Base64 helpers (no dependency on tweetnacl-util)
4
+ // =============================================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.toBase64 = toBase64;
7
+ exports.fromBase64 = fromBase64;
8
+ function toBase64(bytes) {
9
+ if (typeof Buffer !== "undefined") {
10
+ return Buffer.from(bytes).toString("base64");
11
+ }
12
+ return btoa(String.fromCharCode(...bytes));
13
+ }
14
+ function fromBase64(str) {
15
+ if (typeof Buffer !== "undefined") {
16
+ return new Uint8Array(Buffer.from(str, "base64"));
17
+ }
18
+ const binary = atob(str);
19
+ const bytes = new Uint8Array(binary.length);
20
+ for (let i = 0; i < binary.length; i++)
21
+ bytes[i] = binary.charCodeAt(i);
22
+ return bytes;
23
+ }