45 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
f8dfcac17a Merge branch 'main' into marvin/private_keys 2026-02-16 19:55:09 -05:00
Sergio Chouhy
d8537ea3f0 add wallet ffi auth-transfer private method 2026-02-16 11:24:06 -03:00
Sergio Chouhy
2c89e17896 add wallet ffi auth-transfer deshielded method 2026-02-16 11:16:48 -03:00
Sergio Chouhy
c3ca6c7563 add wallet ffi auth-transfer shielded method 2026-02-16 11:16:48 -03:00
Sergio Chouhy
707ea7d379 add get private account and init private account ffi methods 2026-02-16 11:16:46 -03:00
jonesmarvin8
6a89ca0a7f Merge branch 'main' into marvin/private_keys 2026-02-16 08:02:37 -05:00
Daniil Polyakov
d4494c1f21 fix: use private account for private account test in wallet_ffi 2026-02-12 19:38:04 +03:00
Daniil Polyakov
d2ce0cd51b fix: run async runtime when dropping TestContext in BlockingTestContext 2026-02-12 19:35:07 +03: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
3facbbcc1f fixed artifacts 2026-02-11 18:53:31 -05:00
jonesmarvin8
9e52d41090 minor fixes from merging main
ipk -> vpk
IncomingViewingPublicKey -> ViewingPublicKey
2026-02-11 12:11:35 -05:00
jonesmarvin8
6a399ac36c Merge branch 'main' into marvin/private_keys 2026-02-11 11:49:57 -05:00
Daniil Polyakov
9909f02803 refactor: split token program into crates 2026-02-06 00:08:43 +03:00
Sergio Chouhy
e0caa7838d destroy wallet in tests and add variant numbers to the error enum 2026-02-05 12:25:21 -03:00
Sergio Chouhy
b1840ca68a add test wallet ffi auth-transfer init call 2026-02-04 20:24:57 -03:00
Sergio Chouhy
4b50676ebc add wallet ffi base58 conversion tests 2026-02-04 16:08:04 -03:00
Sergio Chouhy
7c3182d903 add wallet ffi get private keys test 2026-02-04 15:29:36 -03:00
Sergio Chouhy
70d3b3a3e6 add FfiU128 struct 2026-02-04 14:58:43 -03:00
Sergio Chouhy
fdeb1f971c add get account keys test 2026-02-04 12:11:57 -03:00
Sergio Chouhy
5ac9953488 add ffi get account test 2026-02-04 11:36:10 -03:00
Sergio Chouhy
50b253fa00 move ffi tests to integration tests 2026-02-03 19:07:13 -03:00
Sergio Chouhy
22258435ff Merge branch 'main' into schouhy/sequencer-retries-pending-blocks 2026-01-29 10:13:22 -03:00
jonesmarvin8
819bb1b7f3 Merge branch 'main' into marvin/private_keys 2026-01-27 16:30:11 -05:00
Sergio Chouhy
e78d6a59a0 add tokio task to retry pending blocks in bedrock 2026-01-27 13:27:52 -03:00
Pravdyvy
c0e879edae fix: suggestions fix 1 2026-01-27 09:46:31 +02:00
Sergio Chouhy
ded6e8123d Merge branch 'main' into schouhy/adapt-sequencer-to-bedrock 2026-01-26 11:38:42 -03:00
Pravdyvy
df58511bf0 Merge branch 'main' into Pravdyvy/block-parsing-validation 2026-01-23 10:49:16 +02:00
Pravdyvy
9896cd3767 fix: updates, added test 2026-01-23 10:39:34 +02:00
Pravdyvy
2a2fe1347a fix: new model rewrite 2026-01-22 14:44:48 +02:00
jonesmarvin8
c6aa0c41b6 update tests 2026-01-21 17:27:23 -05:00
Pravdyvy
eb77217318 fix: suggestions 1 2026-01-21 14:50:29 +02:00
Daniil Polyakov
2b2a52d0b8 feat: error on unclaimed modified accounts 2026-01-19 17:29:59 +03:00
Pravdyvy
f3dcda346c fix: ci test 1 2026-01-19 13:55:31 +02:00
Daniil Polyakov
4e46dbbdf4 feat: implement private multi chain calls in wallet (nssa) 2026-01-17 02:28:31 +03:00
Pravdyvy
b96865ab89 fix: indexer update 2026-01-16 16:15:21 +02:00
Pravdyvy
c2e09031e1 fix: integration updates 2026-01-15 15:44:48 +02:00
Pravdyvy
b6a0e62871 Merge branch 'schouhy/adapt-sequencer-to-bedrock' into Pravdyvy/block-parsing-validation 2026-01-15 14:03:23 +02:00
Sergio Chouhy
8da515da6b fmt 2026-01-15 00:29:45 -03:00
Sergio Chouhy
ccce2213da sequencer posts blocks to bedrock 2026-01-14 23:25:18 -03:00
Daniil Polyakov
529ca9a643 feat: introduce parallel integration tests, wallet without global vars and etc 2026-01-14 23:25:18 -03:00
Pravdyvy
de5201e212 feat: ci test 1 2026-01-14 16:16:45 +02:00
Pravdyvy
bbbb1c1a23 fix: indexer core added to all objects 2026-01-13 15:11:51 +02:00
Daniil Polyakov
7296088005 feat: introduce parallel integration tests, wallet without global vars and etc 2025-12-31 04:30:22 +03:00