2981 Commits

Author SHA1 Message Date
Marvin Jones
278c5f3bca docs(keycard): clarify personalization is mandatory and document default CA
Reinstalling the applet via `./gradlew install` wipes any existing
personalization regardless of firmware source, which wasn't previously
called out and is a common source of "card not available" confusion.
Also state plainly that personalization is required before any command
works, and document keycard-rs's actual baked-in default CA public key
instead of only describing the override mechanism.

Export KEYCARD_CA_PUBLIC_KEY in all keycard test scripts so they work
against the dev/test-CA personalization flow they rely on.
2026-07-14 17:18:32 -04:00
Marvin Jones
7733748ba4 ci: install libpcsclite-dev for pcsc crate builds 2026-07-14 17:18:32 -04:00
Marvin Jones
208384d60e Updated to v2 secure communication 2026-07-14 17:18:32 -04:00
Marvin Jones
653c5d7b95 refactor(keycard_wallet): replace keycard-py (pyo3) with native keycard-rs
Rewrites the Keycard integration to talk to the LEE-flavored applet
directly from Rust via keycard-rs (pinned git dependency), dropping the
pyo3 shim, python_path.rs, and the vendored keycard-py Python library
entirely. Verified end-to-end against real hardware: pairing, PIN
verification, mnemonic loading, BIP340 Schnorr signing, and transfers
between keycard and public/private accounts.

Also cleans up the pyo3 usage that had leaked into wallet's signing
path (signing.rs, account_manager.rs) beyond the keycard CLI itself,
and trims wallet_with_keycard.sh's Python setup down to just pyscard,
which is only needed by the force_unpower.py test helper now.
2026-07-14 17:18:32 -04:00
Artem Gureev
40595604a4
Merge pull request #585 from logos-blockchain/artem/change-wallet-balance-fetch
feat(wallet): change wallet synchronization flow
2026-07-14 12:43:34 +04:00
agureev
027ab5a0d9 chore: regenerate test fixtures 2026-07-13 15:51:17 +04:00
agureev
ae391612bd Merge remote-tracking branch 'origin/dev' into artem/change-wallet-balance-fetch 2026-07-13 15:19:06 +04:00
Moudy
cac4921581
Merge pull request #542 from logos-blockchain/moudy/feat-cross-zone-messaging
feat!(cross-zone): async LEZ to LEZ cross-zone messaging
2026-07-11 02:24:34 +02:00
moudyellaz
eff31df9ce Merge origin/dev 2026-07-11 01:12:00 +02:00
moudyellaz
c9b6df2be9 chore(cross-zone): remove stale old-style program_methods guest bins 2026-07-10 19:02:23 +02:00
erhant
5e53c34e80
Merge pull request #581 from logos-blockchain/erhant/indexer-recoverable-invalid-blocks
feat(indexer): recoverable invalid blocks
2026-07-10 18:58:10 +03:00
erhant
ce37428e1e fix(indexer): handle park_undeserializable errors properly 2026-07-10 18:35:01 +03:00
erhant
1560b27d02 refactor(indexer): auto-cancel token on Drop 2026-07-10 18:35:01 +03:00
erhant
d22f8b540b refactor(indexer): make put_block own the breakpoint schedule
`RISC0_DEV_MODE=1 RISC0_SKIP_BUILD=1 cargo test -p storage -p indexer_core`
2026-07-10 18:35:01 +03:00
erhant
280885532b refactor(indexer): rename AcceptOutcome::ApplyFailed to RetryableFailure 2026-07-10 18:35:01 +03:00
erhant
9587cf96be refactor(indexer): remove now-redundant last_breakpoint_id meta cell 2026-07-10 18:35:01 +03:00
erhant
4d0be72973 chore(indexer): comment 2026-07-10 18:35:01 +03:00
erhant
2e49cdfd9c fix(indexer): harden stall durability and breakpoint guards w.r.t. Copilot review 2026-07-10 18:35:01 +03:00
erhant
587836e47c fix(indexer): stop ingest loop cooperatively on shutdown 2026-07-10 18:35:01 +03:00
erhant
ff6d40f4df fix(indexer): retry apply failures before parking 2026-07-10 18:35:01 +03:00
erhant
07eaf1021a fix(indexer): do not park immediately on possibly-transient apply failures 2026-07-10 18:35:01 +03:00
erhant
ed6a3f56dd fix(indexer): snapshot breakpoint state from the validated scratch state 2026-07-10 18:35:01 +03:00
erhant
c297ad31d2 fix(indexer): seed breakpoint meta only on fresh store
`RISC0_DEV_MODE=1 RISC0_SKIP_BUILD=1 cargo test -p storage -p indexer_core`
2026-07-10 18:35:01 +03:00
erhant
e706211631 fix(indexer): walk down to nearest breakpoint 2026-07-10 18:35:01 +03:00
erhant
93c311be3b fix(indexer): initial prep for breakpoint fix 2026-07-10 18:35:01 +03:00
erhant
88736d7421 fix(indexer): keep track of L1 slot of last inscription for correct tracking 2026-07-10 18:35:01 +03:00
erhant
f188dbdb97 test(indexer): rename test, move to more suitable file 2026-07-10 18:35:01 +03:00
erhant
f99d7fef59 chore: clippy docfix + bump crossbeam-epoch (RUSTSEC-2026-0204) 2026-07-10 18:35:01 +03:00
erhant
025105b570 fix(indexer): allow recovery from parked-and-stalled store (w.r.t Copilot review)
refactor(indexer): move chain-consistency code within a dedicated file
2026-07-10 18:35:01 +03:00
erhant
1ca3de47b9 chore: docfix w.r.t Copilot 2026-07-10 18:35:00 +03:00
erhant
2c395b95a6 chore: fix typos, enable ignored test 2026-07-10 18:35:00 +03:00
erhant
f563f675ac fix(indexer): tend to @schouhy reviews, allow re-applied old blocks 2026-07-10 18:35:00 +03:00
erhant
0985df9059 chore: typo fix ChainConsistency [skip ci] 2026-07-10 18:35:00 +03:00
erhant
16888478dd refactor(indexer): tend to several reviews by @schouhy 2026-07-10 18:35:00 +03:00
erhant
82a16f1ab7 fix(indexer): use better error types, tend to few @Arjentix PR review 2026-07-10 18:35:00 +03:00
erhant
f94a63d8cf fix(indexer)!: address several reviews, use better return types with conversions, some docfixes
BREAKING CHANGE: dropping the serde rename attrs changes the FFI
`query_status` JSON: `state` values are now variant-cased
(`caught_up` -> `CaughtUp`) and fields snake_case
(`indexedBlockId` -> `indexed_block_id`, `lastError` -> `last_error`).
Consumers (lez-indexer-module, lez-explorer-ui) must update their parsing.
2026-07-10 18:35:00 +03:00
erhant
da95e86083 chore: very small comment about future fix [skip ci] 2026-07-10 18:35:00 +03:00
erhant
b5ed8548d5 fix(indexer): catch the edge case of re-using the last valid tip on restart 2026-07-10 18:35:00 +03:00
erhant
255a94c8ed fix(indexer): attend to copilot comments, rm Store error from a park case 2026-07-10 18:35:00 +03:00
erhant
aceb863ff2 chore: rm redundant unit test [skip ci] 2026-07-10 18:35:00 +03:00
erhant
db48877ca6 fix(indexer): run the chain-identity check even when the store is parked 2026-07-10 18:35:00 +03:00
erhant
2b5379a0c7 fix(indexer): run the chain-identity check even when the store is parked 2026-07-10 18:35:00 +03:00
erhant
66434256da fix(indexer): detect chain reset via anchor block, **not** deterministic genesis
test `RISC0_DEV_MODE=1 RISC0_SKIP_BUILD=1 cargo test -p indexer_core`
2026-07-10 18:35:00 +03:00
erhant
b989974f90 chore: greatly increase timeout 2026-07-10 18:35:00 +03:00
erhant
06ec24540a feat(indexer): run genesis-consistency check at service and FFI startup 2026-07-10 18:35:00 +03:00
erhant
aa46b69b79 feat(indexer): add startup genesis-consistency check
test `RISC0_DEV_MODE=1 RISC0_SKIP_BUILD=1 cargo test -p indexer_core`
2026-07-10 18:35:00 +03:00
erhant
a583c1f21a test(indexer): cover stall recovery and full StallReason roundtrip
test `RISC0_DEV_MODE=1 RISC0_SKIP_BUILD=1 cargo test -p indexer_core`
2026-07-10 18:35:00 +03:00
erhant
eaf2e2d07f feat(indexer): expose status over RPC and add integration coverage
test `RUST_LOG=info RISC0_DEV_MODE=1 cargo test -p integration_tests --test bridge --indexer_status_rpc_reports_caught_up_with_no_stall --exact --nocapture --include-ignored`
2026-07-10 18:35:00 +03:00
erhant
b71b01f94b chore: fix linter 2026-07-10 18:35:00 +03:00
erhant
de55d2699b feat(indexer): park ingest loop on bad blocks instead of skipping
`RISC0_DEV_MODE=1 RISC0_SKIP_BUILD=1 cargo test -p indexer_core`
2026-07-10 18:35:00 +03:00