@unlink-xyz/core 0.1.2 → 0.1.3-canary.01ac52d

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 (367) 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 +56253 -0
  11. package/dist/browser/index.js.map +1 -0
  12. package/dist/browser/wallet/index.js +55974 -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 +35 -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 -5
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +9969 -16
  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 +9712 -0
  166. package/dist/wallet/index.js.map +1 -0
  167. package/dist/wallet/sdk.d.ts +47 -0
  168. package/dist/wallet/sdk.d.ts.map +1 -0
  169. package/dist/wallet/types.d.ts +455 -0
  170. package/dist/wallet/types.d.ts.map +1 -0
  171. package/dist/wallet/unlink-wallet.d.ts +186 -0
  172. package/dist/wallet/unlink-wallet.d.ts.map +1 -0
  173. package/package.json +39 -12
  174. package/.eslintrc.json +0 -4
  175. package/account/zkAccount.test.ts +0 -316
  176. package/account/zkAccount.ts +0 -222
  177. package/clients/broadcaster.ts +0 -67
  178. package/clients/http.ts +0 -94
  179. package/clients/indexer.ts +0 -150
  180. package/config.ts +0 -39
  181. package/core.ts +0 -17
  182. package/dist/account/railgun-imports-prototype.d.ts +0 -12
  183. package/dist/account/railgun-imports-prototype.d.ts.map +0 -1
  184. package/dist/account/railgun-imports-prototype.js +0 -30
  185. package/dist/account/zkAccount.d.ts.map +0 -1
  186. package/dist/account/zkAccount.js +0 -128
  187. package/dist/clients/broadcaster.js +0 -23
  188. package/dist/clients/http.js +0 -57
  189. package/dist/clients/indexer.js +0 -67
  190. package/dist/config.js +0 -29
  191. package/dist/core.js +0 -12
  192. package/dist/errors.js +0 -18
  193. package/dist/key-derivation/babyjubjub.d.ts +0 -9
  194. package/dist/key-derivation/babyjubjub.d.ts.map +0 -1
  195. package/dist/key-derivation/babyjubjub.js +0 -9
  196. package/dist/key-derivation/bech32.d.ts +0 -22
  197. package/dist/key-derivation/bech32.d.ts.map +0 -1
  198. package/dist/key-derivation/bech32.js +0 -86
  199. package/dist/key-derivation/bip32.d.ts +0 -17
  200. package/dist/key-derivation/bip32.d.ts.map +0 -1
  201. package/dist/key-derivation/bip32.js +0 -41
  202. package/dist/key-derivation/bip39.d.ts +0 -22
  203. package/dist/key-derivation/bip39.d.ts.map +0 -1
  204. package/dist/key-derivation/bip39.js +0 -56
  205. package/dist/key-derivation/bytes.d.ts +0 -19
  206. package/dist/key-derivation/bytes.d.ts.map +0 -1
  207. package/dist/key-derivation/bytes.js +0 -92
  208. package/dist/key-derivation/hash.d.ts +0 -3
  209. package/dist/key-derivation/hash.d.ts.map +0 -1
  210. package/dist/key-derivation/hash.js +0 -10
  211. package/dist/key-derivation/index.d.ts +0 -8
  212. package/dist/key-derivation/index.d.ts.map +0 -1
  213. package/dist/key-derivation/index.js +0 -7
  214. package/dist/key-derivation/wallet-node.d.ts +0 -45
  215. package/dist/key-derivation/wallet-node.d.ts.map +0 -1
  216. package/dist/key-derivation/wallet-node.js +0 -109
  217. package/dist/keys.js +0 -41
  218. package/dist/prover/config.js +0 -80
  219. package/dist/prover/index.js +0 -1
  220. package/dist/prover/prover.js +0 -274
  221. package/dist/prover/registry.js +0 -57
  222. package/dist/schema.js +0 -14
  223. package/dist/state/ciphertext-store.d.ts +0 -12
  224. package/dist/state/ciphertext-store.d.ts.map +0 -1
  225. package/dist/state/ciphertext-store.js +0 -25
  226. package/dist/state/hydrator.d.ts +0 -16
  227. package/dist/state/hydrator.d.ts.map +0 -1
  228. package/dist/state/hydrator.js +0 -18
  229. package/dist/state/index.js +0 -2
  230. package/dist/state/job-store.d.ts +0 -12
  231. package/dist/state/job-store.d.ts.map +0 -1
  232. package/dist/state/job-store.js +0 -118
  233. package/dist/state/jobs.d.ts +0 -50
  234. package/dist/state/jobs.d.ts.map +0 -1
  235. package/dist/state/jobs.js +0 -1
  236. package/dist/state/leaf-store.d.ts +0 -17
  237. package/dist/state/leaf-store.d.ts.map +0 -1
  238. package/dist/state/leaf-store.js +0 -35
  239. package/dist/state/merkle/hydrator.js +0 -36
  240. package/dist/state/merkle/index.js +0 -2
  241. package/dist/state/merkle/merkle-tree.js +0 -104
  242. package/dist/state/merkle-tree.d.ts +0 -34
  243. package/dist/state/merkle-tree.d.ts.map +0 -1
  244. package/dist/state/merkle-tree.js +0 -104
  245. package/dist/state/note-store.d.ts +0 -37
  246. package/dist/state/note-store.d.ts.map +0 -1
  247. package/dist/state/note-store.js +0 -133
  248. package/dist/state/nullifier-store.d.ts +0 -13
  249. package/dist/state/nullifier-store.d.ts.map +0 -1
  250. package/dist/state/nullifier-store.js +0 -21
  251. package/dist/state/records.d.ts +0 -57
  252. package/dist/state/records.d.ts.map +0 -1
  253. package/dist/state/records.js +0 -1
  254. package/dist/state/root-store.d.ts +0 -13
  255. package/dist/state/root-store.d.ts.map +0 -1
  256. package/dist/state/root-store.js +0 -30
  257. package/dist/state/store/ciphertext-store.js +0 -25
  258. package/dist/state/store/index.js +0 -8
  259. package/dist/state/store/job-store.js +0 -118
  260. package/dist/state/store/jobs.js +0 -1
  261. package/dist/state/store/leaf-store.js +0 -35
  262. package/dist/state/store/note-store.js +0 -142
  263. package/dist/state/store/nullifier-store.js +0 -30
  264. package/dist/state/store/records.js +0 -1
  265. package/dist/state/store/root-store.js +0 -30
  266. package/dist/state/store/store.js +0 -22
  267. package/dist/state/store.d.ts +0 -26
  268. package/dist/state/store.d.ts.map +0 -1
  269. package/dist/state/store.js +0 -19
  270. package/dist/state.d.ts +0 -83
  271. package/dist/state.d.ts.map +0 -1
  272. package/dist/state.js +0 -171
  273. package/dist/storage/index.js +0 -2
  274. package/dist/storage/indexeddb.js +0 -205
  275. package/dist/storage/memory.js +0 -87
  276. package/dist/transactions/deposit.js +0 -169
  277. package/dist/transactions/index.js +0 -4
  278. package/dist/transactions/note-sync.js +0 -320
  279. package/dist/transactions/reconcile.js +0 -39
  280. package/dist/transactions/shield.d.ts +0 -5
  281. package/dist/transactions/shield.d.ts.map +0 -1
  282. package/dist/transactions/shield.js +0 -93
  283. package/dist/transactions/transact.js +0 -561
  284. package/dist/transactions/types.d.ts +0 -114
  285. package/dist/transactions/types.d.ts.map +0 -1
  286. package/dist/transactions/types.js +0 -1
  287. package/dist/transactions/utils.d.ts +0 -10
  288. package/dist/transactions/utils.d.ts.map +0 -1
  289. package/dist/transactions/utils.js +0 -17
  290. package/dist/types.js +0 -1
  291. package/dist/utils/bigint.js +0 -29
  292. package/dist/utils/crypto.d.ts +0 -12
  293. package/dist/utils/crypto.d.ts.map +0 -1
  294. package/dist/utils/crypto.js +0 -39
  295. package/dist/utils/json-codec.js +0 -25
  296. package/dist/utils/polling.js +0 -6
  297. package/dist/utils/signature.js +0 -12
  298. package/dist/utils/time.d.ts +0 -2
  299. package/dist/utils/time.d.ts.map +0 -1
  300. package/dist/utils/time.js +0 -3
  301. package/dist/utils/validators.js +0 -70
  302. package/dist/utils/witness.d.ts +0 -11
  303. package/dist/utils/witness.d.ts.map +0 -1
  304. package/dist/utils/witness.js +0 -19
  305. package/errors.ts +0 -20
  306. package/index.ts +0 -17
  307. package/key-derivation/babyjubjub.ts +0 -11
  308. package/key-derivation/bech32.test.ts +0 -90
  309. package/key-derivation/bech32.ts +0 -124
  310. package/key-derivation/bip32.ts +0 -56
  311. package/key-derivation/bip39.ts +0 -76
  312. package/key-derivation/bytes.ts +0 -118
  313. package/key-derivation/hash.ts +0 -13
  314. package/key-derivation/index.ts +0 -7
  315. package/key-derivation/wallet-node.ts +0 -155
  316. package/keys.ts +0 -47
  317. package/prover/config.ts +0 -104
  318. package/prover/index.ts +0 -1
  319. package/prover/prover.integration.test.ts +0 -162
  320. package/prover/prover.test.ts +0 -309
  321. package/prover/prover.ts +0 -405
  322. package/prover/registry.test.ts +0 -90
  323. package/prover/registry.ts +0 -82
  324. package/schema.ts +0 -17
  325. package/setup-artifacts.sh +0 -57
  326. package/state/index.ts +0 -2
  327. package/state/merkle/hydrator.ts +0 -69
  328. package/state/merkle/index.ts +0 -12
  329. package/state/merkle/merkle-tree.test.ts +0 -50
  330. package/state/merkle/merkle-tree.ts +0 -163
  331. package/state/store/ciphertext-store.ts +0 -28
  332. package/state/store/index.ts +0 -24
  333. package/state/store/job-store.ts +0 -162
  334. package/state/store/jobs.ts +0 -64
  335. package/state/store/leaf-store.ts +0 -39
  336. package/state/store/note-store.ts +0 -177
  337. package/state/store/nullifier-store.ts +0 -39
  338. package/state/store/records.ts +0 -61
  339. package/state/store/root-store.ts +0 -34
  340. package/state/store/store.ts +0 -25
  341. package/state.test.ts +0 -235
  342. package/storage/index.ts +0 -3
  343. package/storage/indexeddb.test.ts +0 -99
  344. package/storage/indexeddb.ts +0 -235
  345. package/storage/memory.test.ts +0 -59
  346. package/storage/memory.ts +0 -93
  347. package/transactions/deposit.test.ts +0 -160
  348. package/transactions/deposit.ts +0 -227
  349. package/transactions/index.ts +0 -20
  350. package/transactions/note-sync.test.ts +0 -155
  351. package/transactions/note-sync.ts +0 -452
  352. package/transactions/reconcile.ts +0 -73
  353. package/transactions/transact.test.ts +0 -451
  354. package/transactions/transact.ts +0 -811
  355. package/transactions/types.ts +0 -141
  356. package/tsconfig.json +0 -14
  357. package/types/global.d.ts +0 -15
  358. package/types.ts +0 -24
  359. package/utils/async.ts +0 -15
  360. package/utils/bigint.ts +0 -34
  361. package/utils/crypto.test.ts +0 -69
  362. package/utils/crypto.ts +0 -58
  363. package/utils/json-codec.ts +0 -38
  364. package/utils/polling.ts +0 -6
  365. package/utils/signature.ts +0 -16
  366. package/utils/validators.test.ts +0 -64
  367. package/utils/validators.ts +0 -86
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # @unlink-xyz/core
2
+
3
+ Low-level TypeScript SDK for the Unlink privacy protocol.
4
+
5
+ ## Overview
6
+
7
+ Core library providing key derivation, proof generation, transaction construction, state management, and high-level wallet API for UTXO-based private transactions on EVM blockchains. Used as a foundation by `@unlink-xyz/react` and consumed directly for server-side applications.
8
+
9
+ > **Documentation:** [SDK overview](../../docs/sdk/index.mdx) | [Architecture](../../docs/concepts/4-architecture/sdk.mdx)
@@ -1,4 +1,4 @@
1
- import { type SpendingKeyPair, type ViewingKeyPair } from "../key-derivation/wallet-node.js";
1
+ import { type SpendingKeyPair, type ViewingKeyPair } from "../keys/derive.js";
2
2
  import type { Storage } from "../types.js";
3
3
  export type MasterSeedCrypto = {
4
4
  encrypt(seed: Uint8Array): Promise<Uint8Array> | Uint8Array;
@@ -14,14 +14,45 @@ export type GenerateMasterSeedOptions = {
14
14
  export declare const MASTER_SEED_LENGTH = 64;
15
15
  export declare const MASTER_SEED_KEY = "cfg:wallet:master_seed/v1";
16
16
  export declare const MASTER_MNEMONIC_KEY = "cfg:wallet:master_mnemonic/v1";
17
- export type ZkAccount = {
17
+ export type Account = {
18
18
  spendingKeyPair: SpendingKeyPair;
19
19
  viewingKeyPair: ViewingKeyPair;
20
20
  nullifyingKey: bigint;
21
21
  masterPublicKey: bigint;
22
+ /** Bech32m address (unlink1...) for this account */
23
+ address: string;
22
24
  };
23
- export declare function deriveZkAccount(masterSeed: Uint8Array, accountIndex?: number): Promise<ZkAccount>;
24
- export declare function deriveZkAccountFromMnemonic(mnemonic: string, accountIndex?: number, password?: string): Promise<ZkAccount>;
25
+ /**
26
+ * Read-only account identity the fields needed by the transaction layer
27
+ * without any signing capability. Both Account and MultisigAccount satisfy this.
28
+ */
29
+ export type AccountView = {
30
+ nullifyingKey: bigint;
31
+ masterPublicKey: bigint;
32
+ viewingKeyPair: ViewingKeyPair;
33
+ address: string;
34
+ };
35
+ /**
36
+ * Signing capability decoupled from account identity.
37
+ * Async to support multi-round protocols (FROST), hardware wallets, etc.
38
+ */
39
+ export type Signer = {
40
+ publicKey: [bigint, bigint];
41
+ sign(message: bigint): Promise<{
42
+ R8: [bigint, bigint];
43
+ S: bigint;
44
+ }>;
45
+ };
46
+ /**
47
+ * Extract an AccountView from a full Account.
48
+ */
49
+ export declare function toAccountView(account: Account): AccountView;
50
+ /**
51
+ * Create a Signer from a single spending key pair.
52
+ */
53
+ export declare function createSingleKeySigner(privateKey: Uint8Array, pubkey: [bigint, bigint]): Signer;
54
+ export declare function deriveAccount(masterSeed: Uint8Array, accountIndex?: number): Account;
55
+ export declare function deriveAccountFromMnemonic(mnemonic: string, accountIndex?: number, password?: string): Account;
25
56
  export declare function generateMasterSeed({ storage, rng, crypto, overwrite, mnemonicPassphrase, }: GenerateMasterSeedOptions): Promise<Uint8Array>;
26
57
  export declare function loadMasterSeed(storage: Storage, crypto?: MasterSeedCrypto): Promise<Uint8Array | null>;
27
58
  export declare function storeMasterSeed(storage: Storage, seed: Uint8Array, crypto?: MasterSeedCrypto): Promise<void>;
@@ -35,4 +66,4 @@ export type ImportMasterMnemonicOptions = {
35
66
  };
36
67
  export declare function importMasterMnemonic({ storage, mnemonic, crypto, overwrite, password, }: ImportMasterMnemonicOptions): Promise<Uint8Array>;
37
68
  export declare function storeMasterMnemonic(storage: Storage, mnemonic: string, crypto?: MasterSeedCrypto): Promise<void>;
38
- //# sourceMappingURL=zkAccount.d.ts.map
69
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../account/account.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { Storage } from "../types.js";
2
+ import type { AccountInfo } from "../wallet/types.js";
3
+ import { deriveAccount as deriveAccountFn, type Account } from "./account.js";
4
+ export declare const DERIVED_ACCOUNTS_KEY = "cfg:wallet:derived_accounts";
5
+ export declare const ACTIVE_ACCOUNT_INDEX_KEY = "cfg:wallet:active_account_index";
6
+ export declare const ACCOUNT_KEY_PREFIX = "cfg:wallet:account:";
7
+ export type AccountsServiceDeps = {
8
+ storage: Storage;
9
+ deriveAccount: typeof deriveAccountFn;
10
+ getMasterSeed: () => Promise<Uint8Array>;
11
+ };
12
+ export type AccountsService = {
13
+ /**
14
+ * List all derived accounts (index + mpk only, safe to display).
15
+ */
16
+ list(): Promise<AccountInfo[]>;
17
+ /**
18
+ * Get full Account by index (null if not derived yet).
19
+ */
20
+ get(index: number): Promise<Account | null>;
21
+ /**
22
+ * Derive and persist a new account at the specified index.
23
+ * If index is not specified, uses the next available index.
24
+ * @throws If the index is already used
25
+ */
26
+ create(index?: number): Promise<Account>;
27
+ /**
28
+ * Get the currently active account (null if none).
29
+ */
30
+ getActive(): Promise<Account | null>;
31
+ /**
32
+ * Get the currently active account index (null if none).
33
+ */
34
+ getActiveIndex(): Promise<number | null>;
35
+ /**
36
+ * Switch to a different account by index.
37
+ * @throws If the account at the given index doesn't exist
38
+ */
39
+ setActive(index: number): Promise<void>;
40
+ };
41
+ export declare function createAccountsService(deps: AccountsServiceDeps): AccountsService;
42
+ //# sourceMappingURL=accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../account/accounts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAM9E,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAClE,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAC1E,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,eAAe,CAAC;IACtC,aAAa,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE/B;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE5C;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEzC;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAyBF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,GACxB,eAAe,CAkHjB"}
@@ -0,0 +1,45 @@
1
+ import type { Storage } from "../types.js";
2
+ import { type MasterSeedCrypto } from "./account.js";
3
+ export type SeedServiceDeps = {
4
+ storage: Storage;
5
+ rng: (n: number) => Uint8Array;
6
+ crypto?: MasterSeedCrypto;
7
+ };
8
+ export type SeedService = {
9
+ /**
10
+ * Check if a wallet exists (has mnemonic stored).
11
+ */
12
+ exists(): Promise<boolean>;
13
+ /**
14
+ * Create a new wallet. Generates a BIP-39 mnemonic and derives the master seed.
15
+ * Returns the mnemonic so the user can back it up.
16
+ * @throws If a wallet already exists (use import with overwrite instead)
17
+ */
18
+ create(): Promise<{
19
+ mnemonic: string;
20
+ }>;
21
+ /**
22
+ * Import an existing BIP-39 mnemonic.
23
+ * @throws If the mnemonic is invalid
24
+ * @throws If a wallet already exists and overwrite is false
25
+ */
26
+ importMnemonic(mnemonic: string, opts?: {
27
+ overwrite?: boolean;
28
+ }): Promise<void>;
29
+ /**
30
+ * Export the stored mnemonic for backup.
31
+ * @throws If no wallet exists
32
+ */
33
+ exportMnemonic(): Promise<string>;
34
+ /**
35
+ * Get the master seed (for account derivation).
36
+ * @throws If no wallet exists
37
+ */
38
+ getMasterSeed(): Promise<Uint8Array>;
39
+ /**
40
+ * Delete all wallet data. This is destructive and cannot be undone.
41
+ */
42
+ delete(): Promise<void>;
43
+ };
44
+ export declare function createSeedService(deps: SeedServiceDeps): SeedService;
45
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../account/seed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAOtB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC;IAC/B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3B;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAExC;;;;OAIG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAErC;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAgHpE"}
@@ -0,0 +1,6 @@
1
+ import { formatUint256 } from "../utils/bigint.js";
2
+ import type { Account } from "./account.js";
3
+ export { formatUint256 };
4
+ export declare function serializeAccountRecord(account: Account): Uint8Array;
5
+ export declare function deserializeAccountRecord(payload: Uint8Array): Account;
6
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../account/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAQzB,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAmBnE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CA6BrE"}