106 Commits

Author SHA1 Message Date
agureev
a3593e36b7 refactor: change sync function name 2026-07-09 14:15:39 +04:00
agureev
24faedd686 feat: relax the mask length requirement 2026-07-09 00:48:27 +04:00
agureev
bf86d0c05b Merge remote-tracking branch 'origin/dev' into artem/change-wallet-balance-fetch 2026-07-08 22:55:15 +04:00
Artem Gureev
1b4d8fbcf4
Merge pull request #550 from logos-blockchain/artem/viewing-key-binding
feat!: viewing key and ciphertext binding
2026-07-08 20:17:37 +04:00
Artem Gureev
b31aecd2c0 feat(wallet): reject length-mismatched privacy transactions 2026-07-08 18:45:27 +04:00
agureev
1bd396006b docs: fix typos 2026-07-08 16:36:05 +04:00
Sergio Chouhy
ae0705995f fix: solve merging conflicts with main 2026-07-03 15:07:35 -03:00
agureev
49d3823a75 chore: remove unused deps 2026-07-02 20:43:34 +04:00
agureev
8e084e22d1 Merge remote-tracking branch 'origin/dev' into artem/viewing-key-binding 2026-07-02 20:04:30 +04:00
Artem Gureev
6c1dd53aa5 refactor(wallet): thread &Message through the view-tag sync passes 2026-07-02 14:13:30 +04:00
Artem Gureev
b6e148249e refactor(wallet): inline the hit loop in sync_updates_via_nullifiers 2026-07-02 14:13:29 +04:00
Artem Gureev
d2633af413 refactor(wallet): introduce a NullifierIndex struct 2026-07-01 22:24:41 +04:00
Artem Gureev
15f6306362 refactor(wallet): place private_accounts next to private_account 2026-07-01 21:57:08 +04:00
Artem Gureev
2a9c8574cd refactor(wallet): compute update nullifiers inlined 2026-07-01 21:57:06 +04:00
agureev
296afdc4a3 Merge remote-tracking branch 'origin/dev' into artem/change-wallet-balance-fetch 2026-07-01 21:12:14 +04:00
agureev
cb6d21a937 refactor: docs, renaming 2026-07-01 20:58:03 +04:00
Artem Gureev
ca8acb1c38 test(wallet): cover shared-account update sync 2026-07-01 19:36:17 +04:00
Artem Gureev
51cc82b50b docs: document new methods 2026-07-01 19:34:15 +04:00
Artem Gureev
f32e6bb178 refactor(key_protocol): use SharedAccountTag seed in GroupKeyHolder 2026-07-01 19:34:15 +04:00
Artem Gureev
d8e990a68f test(wallet): cover nullifier-based update sync 2026-07-01 19:34:04 +04:00
Artem Gureev
6bb2d7ffc3 refactor(wallet): move nullifier-watch sync onto UserKeyChain 2026-07-01 19:16:43 +04:00
Artem Gureev
5fda1608a3 feat(wallet): skip nullifier-handled slots in the view-tag pass 2026-07-01 19:16:42 +04:00
Artem Gureev
a24d2ca4ec fix(wallet): make nullifier watch updatable during sync 2026-07-01 19:16:42 +04:00
Artem Gureev
6025cb53ad feat(wallet): detect private-account updates via nullifier scanning 2026-07-01 19:16:41 +04:00
Artem Gureev
d09a4215d8 refactor(wallet): use shared-key derivation helper 2026-07-01 19:16:40 +04:00
Artem Gureev
eea069c663 feat(wallet): nullifier-watch for updated private accounts 2026-07-01 19:16:39 +04:00
jonesmarvin8
f786aca73e
refactor(lez): clean up long functions (#541)
* add helper functions

* CI fixes

* additional refactors

* fix: clarify doc comment on apply_mempool_transaction

* chore: apply nightly fmt

* fix: import missing ML_KEM_768_CIPHERTEXT_LEN in auth_transfer private test
2026-07-01 10:23:21 -04:00
jonesmarvin8
f8d859394b
refactor(privacy_preserving_circuit): introduce helper functions to shorten long functions (#545)
* refactor(privacy_preserving_circuit): extract functions for readability

* refactor(privacy_preserving_circuit): address PR review comments

Bundle shared handle_* arguments into PrivateOutputHandler struct in
output.rs and fix misplaced docstring on resolve_external_seed in
execution_state.rs.

* feat: update commitment mechanism for new private account (#546)

* refactor(privacy_preserving_circuit): extract functions for readability

* feat: update commitment mechanism for new private accounts

Allow init accounts to optionally use a real membership proof for
DUMMY_COMMITMENT instead of hardcoding DUMMY_COMMITMENT_HASH as the
CommitmentSetDigest. The wallet fetches the proof from the sequencer
and passes it through the circuit.

* fix: address clippy lints and fix integration test visibility

* add tests

* refactor: removed duplicated code

* refactor: simplify init nullifier mechanism

Replace Option<MembershipProof> with Option<CommitmentSetDigest> on init
variants (PrivateAuthorizedInit, PrivateUnauthorized, PrivatePdaInit).
The circuit now receives the commitment tree root directly instead of
recomputing it from a Merkle proof.

* refactor: use CommitmentSetDigest directly instead of Option for init commitment root

Address PR #546 review feedback: the circuit now accepts CommitmentSetDigest
directly on init variants (PrivateAuthorizedInit, PrivateUnauthorized,
PrivatePdaInit), with callers providing DUMMY_COMMITMENT_HASH as the default.
Also fixes duplicate resolve_external_seed from rebase and rebuilds artifacts.

* style: run cargo +nightly fmt
2026-07-01 10:14:32 -04:00
Pravdyvy
97aa85d123
Merge pull request #577 from logos-blockchain/Pravdyvy/wallet-ffi-labels
Wallet ffi labels
2026-07-01 15:32:16 +03:00
Pravdyvy
53ae6dcfdd fix(wallet_ffi): asref suggestion 2026-06-30 12:46:52 +03:00
Daniil Polyakov
fc800a7151 fix(sequencer): don't accept zero deposits & remove unreachable 2026-06-30 12:38:22 +03:00
Marvin Jones
6155bd9a37 fix(encryption): rename os_random to random_seed and fix ESK derivation in tests
Rename os_random field to random_seed per review feedback. Fix tests
that constructed SharedSecretKey with a hardcoded EphemeralSecretKey
instead of deriving it via EphemeralSecretKey::new.
2026-06-29 09:10:43 -04:00
Marvin Jones
060a83879b feat(encryption): derive esk from account state, remove chacha20poly1305 logic
Introduce EphemeralSecretKey as a proper struct with EphemeralSecretKey::new()
that derives esk from SHA256("/LEE/v0.3/esk/" || account_id || os_random || nonce).
Rename witness field from esk to os_random. Simplify encapsulate_deterministic
to accept pre-derived EphemeralSecretKey directly.
2026-06-29 09:10:43 -04:00
Pravdyvy
fade3b488a feat(integration_tests): added integration tests for wallet ffi 2026-06-26 16:48:00 +03:00
Pravdyvy
860746dac9 feat(wallet_ffi): labels added 2026-06-25 18:29:35 +03:00
Daniil Polyakov
d11b706756 feat(sequencer): add getChannelId rpc endpoint 2026-06-25 16:47:04 +03:00
Daniil Polyakov
9977cc5374 fix(ci, programs, privacy_preserving_circuit): properly check programs ci 2026-06-24 20:20:40 +03:00
Daniil Polyakov
96b28827f6 fix(tests): fix tests 2026-06-24 20:20:40 +03:00
Daniil Polyakov
c74b03582b refactor!(wallet): pass program_id instead of program in send_pub_tx() 2026-06-24 20:19:12 +03:00
Daniil Polyakov
d3e507f25d refactor!(artifacts): keep lee and lez artifacts separated 2026-06-24 18:10:41 +03:00
Pravdyvy
d8c50ceb59 Merge branch 'main' into Pravdyvy/ffi-mnemonic 2026-06-24 13:02:12 +03:00
Sergio Chouhy
47a94ac7e4 feat(wallet-ffi): add vault claim ffi 2026-06-24 10:35:31 +02:00
agureev
f2778ea5d0 test: regenerate hardcoded values 2026-06-23 18:02:48 +04:00
erhant
7f0714a79e fix(indexer): the latest docker fix updated bedrock ports, this small commit fixes those 2026-06-23 17:02:47 +03:00
erhant
c7336c3216 fix(indexer): tiny comment link fix [skip ci] 2026-06-23 15:57:33 +03:00
erhant
735235efa1 fix(indexer)!: address @Arjentix comments on IndexerStatus 2026-06-23 15:57:33 +03:00
erhant
2195937400 fix(indexer_ffi): use already FFI-safe Runtime 2026-06-23 15:57:33 +03:00
erhant
5d51e0b59c fix(indexer): use /var/lib/indexer_service volume path in Dockerfile
+ add `*` wildcard for rocksdb ignore
2026-06-23 15:57:33 +03:00
erhant
0bb7b30d63 fix: rm comments, add cpp_compat to cbindgen 2026-06-23 15:57:33 +03:00
erhant
c57bf16d15 feat: added status reporter for indexer (for UI) 2026-06-23 15:57:33 +03:00