2120 Commits

Author SHA1 Message Date
r4bbit
808d4f30bc
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-03-27 11:28:05 +01:00
Pravdyvy
9c23c5fd8a
Merge pull request #393 from logos-blockchain/Pravdyvy/hardcoded-initial-state
feat: general initial state
2026-03-26 19:17:20 +02:00
Pravdyvy
9d5eb3e3bd
Merge pull request #390 from logos-blockchain/Pravdyvy/indexer-db-batching
Indexer db batching
2026-03-26 18:27:02 +02:00
Pravdyvy
8a806899e4 Merge branch 'main' into Pravdyvy/hardcoded-initial-state 2026-03-26 17:53:05 +02:00
Pravdyvy
b8a754449a Merge branch 'main' into Pravdyvy/indexer-db-batching 2026-03-26 17:51:03 +02:00
Sergio Chouhy
9e6820f2a4
Merge pull request #412 from logos-blockchain/schouhy/remove-indexer-ci-tests
Temporarily remove integration tests indexer
2026-03-26 12:41:23 -03:00
Sergio Chouhy
1ad3070662 fix deny 2026-03-26 11:54:24 -03:00
Sergio Chouhy
867b2ceb0b remove integration tests indexer 2026-03-26 11:01:36 -03:00
r4bbit
0ed91e869e feat(programs): add Associated Token Account program with wallet CLI and tutorial
Introduce the ATA program, which derives deterministic per-token holding
accounts from (owner, token_definition) via SHA256, eliminating the need
to manually create and track holding account IDs.

Program (programs/associated_token_account/):
- Create, Transfer, and Burn instructions with PDA-based authorization
- Deterministic address derivation: SHA256(owner || definition) → seed → AccountId
- Idempotent Create (no-op if ATA already exists)

Wallet CLI (`wallet ata`):
- `address` — derive ATA address locally (no network call)
- `create`  — initialize an ATA on-chain
- `send`    — transfer tokens from owner's ATA to a recipient
- `burn`    — burn tokens from owner's ATA
- `list`    — query ATAs across multiple token definitions

Usage:
  wallet deploy-program artifacts/program_methods/associated_token_account.bin
  wallet ata address --owner <ID> --token-definition <DEF_ID>
  wallet ata create --owner Public/<ID> --token-definition <DEF_ID>
  wallet ata send --from Public/<ID> --token-definition <DEF_ID> --to <RECIPIENT> --amount 100
  wallet ata burn --holder Public/<ID> --token-definition <DEF_ID> --amount 50
  wallet ata list --owner <ID> --token-definition <DEF1> <DEF2>

Includes tutorial: docs/LEZ testnet v0.1 tutorials/associated-token-accounts.md
2026-03-26 13:19:29 +01:00
Pravdyvy
ce136348e7 fix: deny fix 2026-03-23 19:22:56 +02:00
Pravdyvy
c3723776c6 fix: deny fix 2026-03-23 19:21:42 +02:00
Pravdyvy
df831bbf6f Merge branch 'main' into Pravdyvy/hardcoded-initial-state 2026-03-23 18:20:03 +02:00
Pravdyvy
1eae20ba3f fix: merge fixes 2026-03-23 18:16:53 +02:00
Pravdyvy
f59874dc1e Merge branch 'main' into Pravdyvy/indexer-db-batching 2026-03-23 18:16:45 +02:00
Daniil Polyakov
fb083ce91e
Merge pull request #402 from logos-blockchain/arjentix/fix-docker-permissions
Use docker volumes and cache docker Rust builds
2026-03-23 16:59:58 +03:00
Daniil Polyakov
f9071d492c feat: cache rust builds in docker to speed up subsequent builds 2026-03-20 18:39:58 +03:00
Daniil Polyakov
c5950bd08a feat: use docker volumes instend of mounts for runtime data directories 2026-03-20 17:40:59 +03:00
jonesmarvin8
6f77c75b9c
Issue 257 - update ds and add ds to commitment (#397)
* initialize branch

* minor errors

* update artifacts and lint

* lint fix
2026-03-20 10:39:04 -04:00
Pravdyvy
9c90930bd6 Merge branch 'main' into Pravdyvy/hardcoded-initial-state 2026-03-20 14:55:42 +02:00
Pravdyvy
425a10516b Merge branch 'main' into Pravdyvy/indexer-db-batching 2026-03-20 14:39:30 +02:00
Daniil Polyakov
fe368f2b48
Merge pull request #394 from logos-blockchain/arjentix/sequencer-rpc-server-refactor
Replace manual Sequencer RPC implementation with jsonrpsee
2026-03-20 01:53:28 +03:00
Daniil Polyakov
3913446cd2 fix: some wallet default config fixes after rebase 2026-03-20 01:21:50 +03:00
Daniil Polyakov
7b50c68550 chore: move nssa dependency of amm to dev-dependencies 2026-03-20 00:48:04 +03:00
Daniil Polyakov
05c2c3a56d fix: encode transactions with borsh in sequencer rpc 2026-03-20 00:48:04 +03:00
Daniil Polyakov
7b20a83379 fix: fixes after rebase & address comments 2026-03-20 00:48:04 +03:00
Daniil Polyakov
325960d696 feat: remove override_rust_log from wallet config 2026-03-20 00:48:04 +03:00
Daniil Polyakov
b631ef02c6 fix: final fixes & polishing 2026-03-20 00:47:37 +03:00
Daniil Polyakov
9d87e3b046 fix: fix lints 2026-03-20 00:41:05 +03:00
Daniil Polyakov
b254ebb185 feat: refactor sequencer RPC client-side 2026-03-20 00:41:05 +03:00
Daniil Polyakov
be94e133fa feat: refactor sequencer RPC server-side 2026-03-20 00:41:05 +03:00
Daniil Polyakov
bffc711470 refactor: move sequencer_ directories into sequencer 2026-03-20 00:36:07 +03:00
Pravdyvy
e6cb4ecf94 fix: machete fix 2026-03-19 19:47:47 +02:00
Pravdyvy
dc3650edd7 Merge branch 'main' into Pravdyvy/hardcoded-initial-state 2026-03-19 19:02:19 +02:00
Pravdyvy
afa0a63c95 fix: suggestions fix 2 2026-03-19 18:01:15 +02:00
jonesmarvin8
666353d7df
Merge pull request #356 from logos-blockchain/marvin/bip-32-comp
Key protocol compatibility with BIP-032/Keycard
2026-03-19 11:59:01 -04:00
Daniil Polyakov
c40c62a484 fix: satisfy clippy 2026-03-19 18:03:23 +03:00
Pravdyvy
2c9361c6b5 fix: suggestions 1 2026-03-19 13:01:43 +02:00
jonesmarvin8
83ef789002 lint issues 2026-03-18 18:44:07 -04:00
jonesmarvin8
4fdefd3557 fix typo 2026-03-18 16:53:07 -04:00
jonesmarvin8
ce729f112d Merge branch 'main' into marvin/bip-32-comp 2026-03-18 16:47:39 -04:00
jonesmarvin8
be4f6c0c78
Merge pull request #334 from logos-blockchain/marvin/nonce
update nonce mechanism
2026-03-18 14:36:47 -04:00
jonesmarvin8
2cecf71c93 additional lint fixes 2026-03-18 14:06:56 -04:00
jonesmarvin8
b81b725bd1 fmt 2026-03-18 13:47:21 -04:00
jonesmarvin8
5d9980cf63 lint fixes 2026-03-18 13:10:36 -04:00
Pravdyvy
a0ab6ad92d fix: lint fix 2026-03-18 18:32:05 +02:00
Pravdyvy
5ab7d40727 Merge branch 'main' into Pravdyvy/hardcoded-initial-state 2026-03-18 18:18:52 +02:00
Pravdyvy
5b99f0dabd fix: lint fix 2026-03-18 17:52:28 +02:00
jonesmarvin8
0bcb626adc lint fixes 2026-03-18 10:28:52 -04:00
Moudy
0586e98c61
Merge pull request #388 from logos-blockchain/moudy/justfile 2026-03-18 15:12:19 +01:00
Moudy
82fb5781fe
Merge pull request #395 from logos-blockchain/moudyellaz-patch-3 2026-03-18 14:57:48 +01:00