111 Commits

Author SHA1 Message Date
r4bbit
a3983f5a89
fix(wallet): use cryptographically secure entropy for mnemonic generation
The mnemonic/wallet generation was using a constant zero-byte array for entropy ([0u8; 32]), making all wallets deterministic based
solely on the password. This commit introduces proper random entropy using OsRng and enables users to back up their recovery phrase.

Changes:

- SeedHolder::new_mnemonic() now uses OsRng for 256-bit random entropy and returns the generated mnemonic
- Added SeedHolder::from_mnemonic() to recover a wallet from an existing mnemonic phrase
- WalletChainStore::new_storage() returns the mnemonic for user backup
- Added WalletChainStore::restore_storage() for recovery from a mnemonic
- WalletCore::new_init_storage() now returns the mnemonic
- Renamed reset_storage to restore_storage, which accepts a mnemonic for recovery
- CLI displays the recovery phrase when a new wallet is created
- RestoreKeys command now prompts for the mnemonic phrase via read_mnemonic_from_stdin()

Note: The password parameter is retained for future storage encryption but is no longer used in seed derivation (empty passphrase is used
 instead). This means the mnemonic alone is sufficient to recover accounts.

Usage:

On first wallet initialization, users will see:
IMPORTANT: Write down your recovery phrase and store it securely.
This is the only way to recover your wallet if you lose access.

Recovery phrase:
  word1 word2 word3 ... word24

To restore keys:
wallet restore-keys --depth 5
Input recovery phrase: <24 words>
Input password: <password>
2026-02-17 13:06:38 +01:00
jonesmarvin8
943efd1433 Merge branch 'main' into marvin/private_keys 2026-02-12 10:33:00 -05:00
Daniil Polyakov
975cfb9ec6 feat: fully integrate Sequencer, Indexer and Explorer with Bedrock 2026-02-12 16:31:13 +03:00
jonesmarvin8
6a399ac36c Merge branch 'main' into marvin/private_keys 2026-02-11 11:49:57 -05:00
jonesmarvin8
f891f57cab Merge branch 'main' into marvin/public_keys 2026-02-10 09:19:45 -05:00
jonesmarvin8
8959b1652c Merge branch 'marvin/public_keys' into marvin/public_account_id 2026-02-08 14:00:14 -05:00
David Rusu
38f1f68030 feat(license): MIT/Apache2 license and add cargo deny config 2026-01-31 23:13:36 +04:00
jonesmarvin8
ff13c34027 update secret_holder
Removed definition of outgoingviewingsecretkey
2026-01-28 11:01:48 -05:00
jonesmarvin8
1dd0f16a5c fixed edge case 2026-01-27 16:19:56 -05:00
jonesmarvin8
752ad89ac7 fixed with unified approach 2026-01-27 16:00:42 -05:00
jonesmarvin8
a2d3d5ae0d Merge branch 'marvin/public_keys' into marvin/public_account_id 2026-01-26 16:08:33 -05:00
jonesmarvin8
c81ce363c1 Merge branch 'main' into marvin/public_keys 2026-01-26 16:06:40 -05:00
jonesmarvin8
e2d7906930 fixed hardcoded account ids 2026-01-24 10:28:41 -05:00
jonesmarvin8
6e18f46965 additional lint fix 2026-01-22 18:25:57 -05:00
jonesmarvin8
d1a2234cc5 lint fix 2026-01-22 18:24:19 -05:00
jonesmarvin8
2c9219bb0f relabel ipk to vpk 2026-01-21 17:58:45 -05:00
jonesmarvin8
d204f386bb fmt 2026-01-21 17:48:10 -05:00
jonesmarvin8
c6aa0c41b6 update tests 2026-01-21 17:27:23 -05:00
jonesmarvin8
877f879af3 cargo fmt 2026-01-21 17:11:51 -05:00
jonesmarvin8
75beecc6b9 update tests
Update tests for LEE domain separator.
2026-01-21 17:03:43 -05:00
jonesmarvin8
0b8b1c89b8 Merge branch 'main' into marvin/private_keys 2026-01-21 16:52:11 -05:00
jonesmarvin8
eaee772c86
Update key_protocol/src/key_management/key_tree/keys_public.rs
Co-authored-by: Sergio Chouhy <41742639+schouhy@users.noreply.github.com>
2026-01-14 10:51:11 -05:00
jonesmarvin8
537eeb63dc
Update key_protocol/src/key_management/key_tree/keys_public.rs
Co-authored-by: Sergio Chouhy <41742639+schouhy@users.noreply.github.com>
2026-01-14 10:50:59 -05:00
jonesmarvin8
874aa09b82 fixes 2026-01-12 17:27:44 -05:00
jonesmarvin8
ab37740348 Merge branch 'main' into marvin/public_keys 2026-01-12 16:02:56 -05:00
jonesmarvin8
4620219408
Update key_protocol/src/key_management/key_tree/keys_public.rs
Co-authored-by: Sergio Chouhy <41742639+schouhy@users.noreply.github.com>
2026-01-07 18:10:02 -05:00
Daniil Polyakov
7296088005 feat: introduce parallel integration tests, wallet without global vars and etc 2025-12-31 04:30:22 +03:00
jonesmarvin8
065eeac3b2 minor clean up and fmt 2025-12-23 17:42:30 -05:00
jonesmarvin8
9f753c0333 clean up and fmt/clippy 2025-12-23 17:40:47 -05:00
jonesmarvin8
ed373067fb fixed private keys 2025-12-22 19:50:03 -05:00
jonesmarvin8
3c21f4418f public key protocol fixed 2025-12-22 19:47:59 -05:00
Daniil Polyakov
87f45b8215 feat: move all crates into workspace 2025-12-19 18:30:40 +03:00
jonesmarvin8
74327bcec6 added tests for public keys (master and non-harden child keys 2025-12-16 20:47:55 -05:00
jonesmarvin8
b7a6fda00a Added test for master keys 2025-12-16 20:46:16 -05:00
jonesmarvin8
2e0450bfcd private key protocol fixes 2025-12-15 17:24:59 -05:00
Pravdyvy
e1eff07478 fix: layered autobalancing 2025-12-09 11:51:44 +02:00
Pravdyvy
47ff7f0b64 fix: layered automatization 2025-12-09 11:09:15 +02:00
Pravdyvy
26fb822da1 Merge branch 'Pravdyvy/keys-restoration-from-mnemonic' into Pravdyvy/tree-ux-updates 2025-12-09 10:46:28 +02:00
Pravdyvy
01f7acb4d6 fix: remove unused enum 2025-12-08 12:13:03 +02:00
Pravdyvy
40991cf6d1 fix: layered cleanup 2025-12-08 12:11:11 +02:00
Pravdyvy
29c3737704 fix: lint fix comments addressed 2025-12-05 07:46:59 +02:00
Pravdyvy
926a292c9c fix: constraint added 2025-12-04 16:49:10 +02:00
Pravdyvy
2453ae095f fix: cleanup fixing 2025-12-04 14:31:52 +02:00
Pravdyvy
b81aafbc23 feat: UX improvements 2025-12-03 13:10:07 +02:00
Pravdyvy
5affa4f9fd fix: suggestions fix 2025-12-03 07:05:23 +02:00
Pravdyvy
0f617a8601 Merge branch 'Pravdyvy/deterministic-key-derivation' into Pravdyvy/keys-restoration-from-mnemonic 2025-12-01 12:01:45 +02:00
Pravdyvy
64e2fb73a8 fix: merge update 2025-11-28 08:48:11 +02:00
Pravdyvy
6c409b6fb1 Merge branch 'main' into Pravdyvy/deterministic-key-derivation 2025-11-27 13:46:35 +02:00
Pravdyvy
30f19b245d fix: suggestions fix 3 2025-11-26 14:53:26 +02:00
Pravdyvy
77570c48e9 fix: suggestions 2 2025-11-26 14:27:09 +02:00