2842 Commits

Author SHA1 Message Date
jonesmarvin8
7b24d095b1
Merge branch 'dev' into marvin/refactor-pp-circuit 2026-07-01 10:14:14 -04:00
jonesmarvin8
3b3857594f
refactor(lee::key_protocol) - cleaned up duplicated logic (#532)
* Clean up key protocol

* added test for helper function

* address comment

* chore: apply nightly fmt
2026-07-01 10:11:08 -04:00
Marvin Jones
376e0c367e style: run cargo +nightly fmt 2026-07-01 10:06:05 -04:00
jonesmarvin8
ca31bd7e46 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.
2026-07-01 09:59:54 -04:00
Marvin Jones
ca36cf50b1 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.
2026-07-01 09:53:30 -04:00
Marvin Jones
30a4fdaf8f refactor(privacy_preserving_circuit): extract functions for readability 2026-07-01 09:49:23 -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
1582fc9745 fix(ci): CI and contributing update 2026-07-01 14:15:39 +03:00
Daniil Polyakov
a58fbce2ff
Merge pull request #583 from logos-blockchain/arjentix/fix-zero-deposits
fix(sequencer): don't accept zero deposits & remove unreachable
v0.2.0
2026-06-30 14:58:58 +03:00
Pravdyvy
1a94c8612f fix(artifacts): artifacts update 2026-06-30 13:52:19 +03:00
Daniil Polyakov
e428a6df71 chore(lock): update anyhow to 1.0.103 to satisfy cargo deny 2026-06-30 13:02:17 +03:00
Pravdyvy
082413eeee fix(demy): anyhow deny fix 2026-06-30 12:52:31 +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
Pravdyvy
fade3b488a feat(integration_tests): added integration tests for wallet ffi 2026-06-26 16:48:00 +03:00
Daniil Polyakov
e37876a640
Merge pull request #576 from logos-blockchain/arjentix/sequencer-get-channel-id
feat(sequencer): add `getChannelId` rpc endpoint
v0.2.0-rc6
2026-06-26 02:05:41 +03:00
Moudy
92e5b29923
Merge pull request #578 from logos-blockchain/schouhy/use-test-program-in-test
fix(lee): use test program in empty tx instead of authenticated tranfer
2026-06-25 21:37:08 +02:00
Sergio Chouhy
3c54bbf0b9 fix(lee): use test program in empty tx instead of authenticated tranfer 2026-06-25 14:47:22 -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
Pravdyvy
217daff4a2 fix(main): fix of one test 2026-06-25 16:32:42 +03:00
Daniil Polyakov
64f8444a67
Merge pull request #524 from logos-blockchain/arjentix/refactor-lee-lez
Decouple last parts of LEZ from LEE
2026-06-24 23:46:43 +03:00
jonesmarvin8
77af662ac6
fix: reject public transactions with empty account_ids (#552)
Closes #513
2026-06-24 13:33:51 -04: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
Daniil Polyakov
066ffdd51a
Merge pull request #567 from logos-blockchain/arjentix/fix-ci-docker-build
fix(ci): fix publish images workflow
2026-06-24 18:10:09 +03:00
Pravdyvy
fb8cbac40e
Merge pull request #518 from logos-blockchain/Pravdyvy/ffi-mnemonic
feat(wallet-ffi)!: mnemonic-based updates
lez-core-v0.2.0
2026-06-24 17:11:08 +03:00
Pravdyvy
552503a42f fix(deny): deny fix 2026-06-24 13:14:50 +03:00
Pravdyvy
d8c50ceb59 Merge branch 'main' into Pravdyvy/ffi-mnemonic 2026-06-24 13:02:12 +03:00
Pravdyvy
078e579edd
Merge pull request #571 from logos-blockchain/fix/macos-metal-toolchain-xcrun
fix(nix): build risc0 Metal kernels on macOS by fixing xcrun env
2026-06-24 12:57:32 +03:00
Moudy
54497642f9
Merge pull request #553 from logos-blockchain/schouhy/add-vault-claim-ffi
add vault claim ffi
2026-06-24 11:57:16 +02:00
Pravdyvy
715dccf62a Merge branch 'main' into fix/macos-metal-toolchain-xcrun 2026-06-24 11:36:40 +03:00
Sergio Chouhy
47a94ac7e4 feat(wallet-ffi): add vault claim ffi 2026-06-24 10:35:31 +02:00
Moudy
ec11c2ab0b
Merge pull request #570 from logos-blockchain/fix/deny-rustsec-2026-0185
fix(deny): ignore RUSTSEC-2026-0185 (quinn-proto, transitive via libp2p)
2026-06-24 10:28:49 +02:00
moudyellaz
136acf5368 fix(deny): ignore RUSTSEC-2026-0185 (quinn-proto, transitive via libp2p) 2026-06-24 08:16:03 +00:00
r4bbit
4fc1a97db6
fix(nix): build risc0 Metal kernels on macOS by fixing xcrun env
risc0 compiles its Metal (GPU) prover kernels by invoking `xcrun metal` /
`xcrun metallib`. Under nix, the darwin stdenv exports DEVELOPER_DIR and
SDKROOT pointing at its own SDK, which makes xcrun look for the `metal`
tool in the wrong place and fail with:

    error: cannot execute tool 'metal' due to missing Metal Toolchain;
           use: xcodebuild -downloadComponent MetalToolchain

...even when a working Metal Toolchain is installed (the same call succeeds
in a clean environment where those vars are unset).

Wrap xcrun with a small shim, placed first in PATH, that clears
DEVELOPER_DIR/SDKROOT for `metal`/`metallib` invocations only — so they
resolve the system Xcode Metal Toolchain — while every other xcrun call
passes through with the nix environment intact. This makes wallet-ffi
build with real GPU prover kernels on macOS, with no --override-input
workaround needed downstream.

Note: on recent macOS the Metal Toolchain is a per-user component, so
`xcodebuild -downloadComponent MetalToolchain` must have been run by the
building user (and builds still require `--option sandbox false`).
2026-06-24 10:09:47 +02:00
erhant
fce8722d05
Merge pull request #568 from logos-blockchain/erhant/fix-indexer-configs
fix(indexer): update config files
2026-06-23 18:58:48 +03:00
Daniil Polyakov
27360cb7d6 fix(ci): fix publish images workflow v0.2.0-rc5 2026-06-23 18:28:36 +03: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
a9df90c5b6
Merge pull request #547 from logos-blockchain/erhant/fix-indexer-ffi
refactor(indexer)!: query IndexerCore directly in the FFI; fix #538 / #540 / #544, drop `port`
2026-06-23 16:00:27 +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
erhant
c0fbaaf08e refactor: use channel id for rocksdb filename [skip ci] 2026-06-23 15:57:33 +03:00
erhant
1c1e80f646 feat(indexer)!: make storage location caller-driven, not config-driven
The indexer's storage location was the `home` field of IndexerConfig, used only to derive the RocksDB dir. Defaulting to "." meant it landed in the process CWD — fine for the standalone service, but wrong when the indexer runs embedded in a logos_host subprocess (RocksDB ended up in an arbitrary/unwritable dir). Storage location is an operational concern the host should own, not something baked into a user-editable config.

Remove `home` from IndexerConfig and pass the storage directory explicitly:

  - core: `IndexerCore::new(config, storage_dir)` derives `<storage_dir>/rocksdb`.
  - ffi: `start_indexer(runtime, config_path, storage_dir)`; null/empty storage_dir falls back to ".". Lets a host (e.g. a Logos module's instance persistence path) own where state lives.
  - service: `run_server(config, storage_dir, port)` + a `--data-dir` flag (default ".") on the binary, preserving current behaviour.
  - drop `home` from the committed indexer config JSONs and the test fixtures.

BREAKING CHANGE: `start_indexer` gains a `storage_dir` parameter and IndexerConfig no longer has a `home` field.
2026-06-23 15:57:33 +03:00