3023 Commits

Author SHA1 Message Date
agureev
9a2c9a2e1b chore: regenerate fixtures 2026-07-16 20:28:57 +04:00
Artem Gureev
ed6349e724 refactor(verifier): consume bundled public_actions directly 2026-07-16 19:37:04 +04:00
Artem Gureev
beccc9cbaf refactor!(indexer): bundle protocol/FFI privacy message into actions
BREAKING!

Before: The message format for private transactions included separate
fields for private transaction state identifiers such as commitments
and nullifiers.

After: The commitments/nullifiers/ciphertexts are bound in an Action
struct, likewise for public state-bearing messages.

Mitigation: assume incoming messages are in a newly-specified format.
2026-07-16 19:29:53 +04:00
Artem Gureev
e409b3ac16 refactor: bundle private/public i/o into action struccts 2026-07-16 19:26:45 +04:00
agureev
2e669e76f8 chore: regen artifacts, fixtures 2026-07-15 22:22:20 +04:00
Artem Gureev
a3f5536321 test: order-independent output assertions + wrong-nullifier decrypt 2026-07-15 22:01:56 +04:00
agureev
de1f5fcb6f chore: format, regenerate artifacts and fixtures 2026-07-15 20:54:15 +04:00
Artem Gureev
719c2af38d refactor(wallet): route note decryption through decrypt_note_at 2026-07-15 16:28:09 +00:00
Artem Gureev
4b516d8e15 test(circuit): assert obfuscate_output_ordering sorts and keeps notes paired 2026-07-15 16:28:09 +00:00
Artem Gureev
17a774b3c4 refactor(circuit): extract obfuscate_output_ordering 2026-07-15 16:28:09 +00:00
agureev
672ce77733 chore: formatting 2026-07-15 16:28:09 +00:00
Artem Gureev
e44c368477 fix(wallet): locate self-sent notes by nullifier 2026-07-15 16:28:09 +00:00
Artem Gureev
831a90d5c6 feat!: byte-sort private outputs to obfuscate note order
BREAKING!

Before: Commitments, nullifier, and ciphertexts of a transaction were
position-aligned. The position revealed which nullifier was hiding a
pre-state to a commitment to which post-state. Similarly with
ciphertexts.

After: The nullifier-cipher connection remains, but now they (and
commitments independently) are shuffled by the byte-order of the
hashes.

Mitigation: Expect the circuit outputs to be jumbled.
2026-07-15 16:28:09 +00:00
Artem Gureev
c12a8759d6 feat!: key note encryption on the nullifier, drop the output index
BREAKING!

Before: The ciphertext key got generated via using the commmitment and
its index as the key.

After: The ciphertext key replaces the commitment dependence by a
nullifier dependence, still making the key unique by global state. The
nullifier is assumed to be the nullifier of the pre-state of the account.

Mitigation: Use the new decryption algorithm.
2026-07-15 16:28:09 +00:00
Artem Gureev
dda467fd06 refactor(lee_core): expose nullifier byte-array 2026-07-15 16:08:27 +00:00
agureev
abb18568dc chore: regenerate artifacts and fixtures 2026-07-15 19:46:10 +04:00
Artem Gureev
9e1aa40daa test(wallet): pin private-transaction note padding to max 2026-07-15 19:33:57 +04:00
Artem Gureev
7347ce615d test(lee): pin for_dummy nullifier and commitment derivations 2026-07-15 19:33:57 +04:00
agureev
949ae47499 chore: regenerate artifacts and fixtures 2026-07-15 19:33:55 +04:00
Artem Gureev
8c04397257 feat(wallet): pad private transactions to a fixed maximum 2026-07-15 15:01:33 +00:00
Artem Gureev
f7492330c7 fix(wallet): encapsulate dummy note epk in wallet 2026-07-15 15:01:33 +00:00
Artem Gureev
724260e8ea refactor(wallet): dedup randomness helpers, fill dummy note directly 2026-07-15 14:59:58 +00:00
Artem Gureev
c67563ffce feat(wallet): construct and submit dummy inputs
Ciphers submitted currently have no data
2026-07-15 14:59:58 +00:00
Artem Gureev
b8ccf1de58 feat(circuit): use dummy_inputs in ppc 2026-07-15 14:59:58 +00:00
Artem Gureev
d4c9b5c0a5 feat(lee): add for_dummy nullifier and commitment derivations 2026-07-15 14:59:58 +00:00
Artem Gureev
9b43c4b731 feat(lee): add dummy account type for function-privacy padding 2026-07-15 14:59:58 +00:00
agureev
ce68b4dc27 Merge remote-tracking branch 'origin/dev' into artem/view-tag-randomization 2026-07-15 18:37:31 +04:00
Pravdyvy
ea41d5a738
Merge pull request #582 from logos-blockchain/Pravdyvy/pda-account-id-generation
feat(wallet_ffi): pda account id generation in FFI
2026-07-15 16:18:23 +03:00
Pravdyvy
7cc094f3a4 fix(ci): fixtures and artifacts 2026-07-15 15:01:47 +03:00
Pravdyvy
7d0a2832d9 fix(deny): deny fix 2026-07-15 14:35:13 +03:00
Pravdyvy
651229c454 fix(wallet_ffi): merge upfix 2026-07-15 13:35:53 +03:00
Pravdyvy
e4fd9b2397 Merge branch 'dev' into Pravdyvy/pda-account-id-generation 2026-07-15 12:57:16 +03:00
Artem Gureev
2dd472217f
Merge pull request #598 from logos-blockchain/artem/batched-merkle-proofs
feat!: batched merkle proof fetching
2026-07-15 10:04:39 +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
Artem Gureev
4d91d6f7cb feat(wallet): create a regular shared account under a supplied identifier 2026-07-13 21:16:41 +04:00
Artem Gureev
ce0d0c4886 fix(wallet): catch up a shared account from genesis on registration 2026-07-13 21:16:41 +04:00
Artem Gureev
5fa93538f3 test(circuit): view_tag is derived on init, passed through on update 2026-07-13 21:16:41 +04:00
agureev
1549e2f4e5 feat(circuit): supply a view_tag on private-account updates 2026-07-13 21:16:39 +04:00
Artem Gureev
e408c05297 feat(wallet): validate batched proofs against the root 2026-07-13 13:34:03 +00:00
Artem Gureev
8545ff1466 feat!(sequencer): serve proofs and root in one getProofsAndRoot RPC
BREAKING:

Before: An endpoint exposing getting a single proof for a commitment
existed.

After: There is one endpoint where you give a vector of commitments
and a vector of Maybe proofs back alongside the shared root.

Mitigation: Use the new rpc endpoint with the appopriate vector.
2026-07-13 13:34:03 +00: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