239 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
c78f74e50b update artifacts 2026-02-12 10:52:38 -05:00
jonesmarvin8
943efd1433 Merge branch 'main' into marvin/private_keys 2026-02-12 10:33:00 -05:00
Daniil Polyakov
60be2b6d00 chore: satisfy CI 2026-02-12 16:31:34 +03:00
Daniil Polyakov
09debfa74f feat: implement all-in-one docker compose 2026-02-12 16:31:13 +03:00
Daniil Polyakov
c753373434 chore: apply recommended wallet config from #328 for integration tests 2026-02-12 16:31:13 +03: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
jonesmarvin8
f891f57cab Merge branch 'main' into marvin/public_keys 2026-02-10 09:19:45 -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
2fc1ec0fdc Merge branch 'main' into schouhy/add-wallet-ffi-tests 2026-02-04 20:48:36 -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
David Rusu
38f1f68030 feat(license): MIT/Apache2 license and add cargo deny config 2026-01-31 23:13:36 +04:00
Sergio Chouhy
2e071b538f drop retry pending block handle on Drop 2026-01-29 15:56:06 -03:00
Sergio Chouhy
476dc50482 handle comments 2026-01-29 13:47:39 -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
jonesmarvin8
752ad89ac7 fixed with unified approach 2026-01-27 16:00:42 -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
jonesmarvin8
9a92aa1553 updates and fmt 2026-01-26 18:38:41 -05:00
jonesmarvin8
a2d3d5ae0d Merge branch 'marvin/public_keys' into marvin/public_account_id 2026-01-26 16:08:33 -05:00
Sergio Chouhy
ded6e8123d Merge branch 'main' into schouhy/adapt-sequencer-to-bedrock 2026-01-26 11:38:42 -03:00
jonesmarvin8
d22354a485 update wallet configs 2026-01-24 08:47:09 -05:00
jonesmarvin8
0939b7e1c6 update public account id domain separator 2026-01-23 20:45:47 -05: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
jonesmarvin8
8b6443aa89 update wallet accounts 2026-01-22 17:51:17 -05:00
Pravdyvy
2a2fe1347a fix: new model rewrite 2026-01-22 14:44:48 +02:00
jonesmarvin8
cabb4ab257 fix integration test wallet 2026-01-21 19:31:27 -05: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