Skip to content

Crypto dependencies cleanup & Integration Tests Passing#1651

Open
ycscaly wants to merge 4 commits into
devfrom
fix/crypto-dependencies-cleanup
Open

Crypto dependencies cleanup & Integration Tests Passing#1651
ycscaly wants to merge 4 commits into
devfrom
fix/crypto-dependencies-cleanup

Conversation

@ycscaly

@ycscaly ycscaly commented Feb 23, 2026

Copy link
Copy Markdown
Contributor

No description provided.

ycscaly and others added 4 commits February 23, 2026 05:27
- Remove duplicate patch.crates-io sections from dwallet crate Cargo.tomls
- Fix crypto-bigint patch to use full commit hash (8aabcee553b25f9f619722391de33edbe2f7412c)
- Fix TypeScript tests to use correct package field names (ikaDwallet2pcMpcOriginalPackage, ikaSystemOriginalPackage)
- Format Rust code in dwallet_mpc_service.rs

Note: Build still fails due to incompatible pre-release versions in crypto dependency chain.
The crypto ecosystem has breaking API changes between:
- primeorder 0.14.0-pre.9 (expects old trait methods)
- elliptic-curve 0.14.0-rc.28 (has renamed traits)
- primefield 0.14.0-pre.6 (type mismatches)

These are external dependencies from dwallet-labs/cryptography-private that need updating.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…plit

Cascade of crates.io publishing der@0.8.0 stable caused incompatible
pre-release versions to be resolved:
- curve25519-dalek@5.0.0-pre.6 uses rustcrypto-group@0.14.0-rc.0 (rand_core@0.10)
- k256/elliptic-curve use group@0.14.0-pre.0 (rand_core@0.9.x)
These two group crates are incompatible, breaking cryptography-private compilation.

Fix: pin dependencies back to the working version chain from a204b2a3:
- cryptography-private rev: a204b2a3 -> 70092a93 (adds der@0.8.0-rc.8 patch)
- der -> 0.8.0-rc.8 (git patch, prevents stable der@0.8.0 cascade)
- ed25519-dalek: 3.0.0-pre.6 -> 3.0.0-pre.1 (removes =5.0.0-pre.6 pin)
- curve25519-dalek: 5.0.0-pre.6 -> 5.0.0-pre.1 (uses group@0.14.0-pre.0)
- signature: 3.0.0-rc.10 -> 3.0.0-rc.4 (rand_core@0.9.x, not @0.10)
- digest: 0.11.0-rc.11 -> 0.11.0-rc.3 (restores crypto_common re-export)
- sha2: 0.11.0-rc.5 -> 0.11.0-rc.2, sha3: 0.11.0-rc.7 -> 0.11.0-rc.3
- hmac: 0.13.0-rc.5 -> 0.13.0-rc.2, ed25519: 3.0.0-rc.4 -> 3.0.0-rc.1
Removes rustcrypto-group@0.14.0-rc.0 and rand_core@0.10.0 from the graph.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- dwallet_mpc_service.rs: remove unused DWalletNetworkEncryptionKeyState
  import, qualify AwaitingNetworkDKG variant with full path and borrow
  &data.state to avoid move in filter, clone epoch_store before move
- integration_tests/utils.rs: add AssignedPresign import and stub
  implementations for assign_presign, get_assigned_presign,
  pop_assigned_presign on TestingAuthorityPerEpochStore
- integration_tests: pass vec![] to run_service_loop_iteration() in all
  test call sites to match updated signature

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- authority_per_epoch_store presign tests: add #[tokio::test] async fn
- utils: next_internal_sessions_status_update reads from round_to_status_updates
- utils: advance_some_parties_and_wait_for_completions — three fixes:
  (1) propagate newly_instantiated_network_key_ids per party so pending-for-key
      sessions are activated as soon as the key is voted in
  (2) accept InternalSessionsStatusUpdate as round completion when currently_running==0
      (key data broadcast that needs outer-loop consensus distribution)
  (3) allow currently_running==0 in the liveness assertion when sessions are
      pending for network key
- network_dkg: create_network_key_test distributes key-data status updates
  through a consensus round and processes them so network_keys is populated
  before returning
- malicious_behavior: find DWalletMPCMessage by type instead of by position
  to skip preceding InternalSessionsStatusUpdate entries

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
'0x9e1e9f8e4e51ee2421a8e7c0c6ab3ef27c337025d15333461b72b1b813c44175',
);
expect(config.packages.ikaDwallet2pcMpcPackage).toBe(
expect(config.packages.ikaDwallet2pcMpcOriginalPackage).toBe(

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@omersadika what is this change

@github-actions

github-actions Bot commented May 2, 2026

Copy link
Copy Markdown
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will not be closed automatically, but it may be prioritized lower. Please update if it is still relevant.

@github-actions github-actions Bot added the stale label May 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant