Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
83f7d4f
feat(platform-wallet): seedless watch-only rehydration via load_from_…
lklimek Jun 29, 2026
35bd291
refactor(platform-wallet): drop backward-compat on_platform_event; co…
lklimek Jun 29, 2026
a5b7032
docs(platform-wallet): point seedless-load notes at the resolver wron…
lklimek Jun 29, 2026
22ff11c
perf(platform-wallet): O(n) UTXO spent-filter on rehydrate via outpoi…
lklimek Jun 29, 2026
2e71027
fix(platform-wallet)!: restore persisted address-pool used-state on r…
lklimek Jun 29, 2026
8832f6f
fix(platform-wallet): idempotent repeat restore — skip already-presen…
lklimek Jun 29, 2026
2c6e3e8
fix(platform-wallet-ffi): skip corrupt wallet on load instead of abor…
lklimek Jun 29, 2026
3876d0e
refactor(platform-wallet): mark unreleased #3692 load enums non_exhau…
lklimek Jun 29, 2026
1f8d6b6
test(platform-wallet): cover used-state-survives-spent-UTXO + deep-in…
lklimek Jun 29, 2026
f60160e
test(platform-wallet): drop duplicate deep-index rehydration test (#3…
lklimek Jun 29, 2026
8d88d49
refactor(platform-wallet): drop vestigial PlatformEvent enum (#3692 r…
lklimek Jun 29, 2026
b304268
fix(platform-wallet): restore background-sync generation guard droppe…
lklimek Jun 30, 2026
664c6bf
fix(platform-wallet): count skipped rows in ClientStartState::is_empt…
lklimek Jun 30, 2026
61c9fd7
fix(platform-wallet-ffi): surface MalformedXpub skip code for bad acc…
lklimek Jun 30, 2026
2ab0bed
Merge v4.1-dev into feat/platform-wallet-rehydration
lklimek Jul 1, 2026
ef7cdf2
chore(deps): bump rust-dashcore to dev head 78d10022
lklimek Jul 1, 2026
27d235f
fix(dpp): implement extended_public_key on shielded FixedKeySigner te…
lklimek Jul 1, 2026
36e2fed
chore(deps): bump rust-dashcore to PR #833 (Zeroize for ExtendedPrivKey)
lklimek Jul 1, 2026
3be6885
refactor(rs-sdk-ffi): wrap ExtendedPrivKey in Zeroizing, drop manual …
lklimek Jul 1, 2026
b175d50
refactor(rs-sdk-ffi): confine ExtendedPrivKey to resolve_and_derive v…
lklimek Jul 1, 2026
5a2b2b5
test(rs-sdk-ffi): make extended_public_key metadata asserts load-bear…
lklimek Jul 1, 2026
56612fd
chore(deps): bump rust-dashcore to a8c57fe (drop Copy, zeroize Extend…
lklimek Jul 1, 2026
374df98
refactor(rs-sdk-ffi): rely on ExtendedPrivKey Drop, drop redundant Ze…
lklimek Jul 1, 2026
35e5c46
Merge remote-tracking branch 'origin/v4.1-dev' into chore/bump-rust-d…
lklimek Jul 2, 2026
1aac44a
fix(deps): stage regenerated Cargo.lock for rust-dashcore a8a0968 bump
lklimek Jul 2, 2026
defa249
build: sync Cargo.lock to rust-dashcore a8a0968 (0.45.0)
lklimek Jul 2, 2026
f669691
docs(rs-sdk-ffi): correct ExtendedPrivKey zeroization comments for a8…
lklimek Jul 2, 2026
43b57af
Merge commit 'f669691f7a22f50f4fab7a056036a53ebf781b9b' into chore/bu…
lklimek Jul 2, 2026
5dfd441
fix(deps): bump quinn-proto 0.11.14 -> 0.11.15 (RUSTSEC-2026-0185)
lklimek Jul 2, 2026
0feb7d6
docs(platform-wallet): fix dead doc-links and stale references in reh…
lklimek Jul 2, 2026
59dc04d
fix(platform-wallet-ffi): harden load-outcome FFI surface (findings #…
lklimek Jul 2, 2026
cd6807a
docs(platform-wallet): fix dead MnemonicResolverHandle doc-link in lo…
lklimek Jul 2, 2026
a9d3a76
refactor(platform-wallet-ffi): typed corrupt-kind discriminator + hon…
lklimek Jul 2, 2026
284a3aa
fix(platform-wallet): harden watch-only rehydration guards + document…
lklimek Jul 2, 2026
ee717c8
Merge branch 'fix/3692-b' into fix/3692-consolidated
lklimek Jul 2, 2026
037c7d2
Merge branch 'fix/3692-c' into fix/3692-consolidated
lklimek Jul 2, 2026
f73e40a
Merge branch 'fix/3692-d' into fix/3692-consolidated
lklimek Jul 2, 2026
127c565
Merge branch 'fix/3692-e' into fix/3692-consolidated
lklimek Jul 2, 2026
0b53866
docs(platform-wallet): document manifest-authentication trust boundar…
lklimek Jul 2, 2026
c6d58f0
Merge branch 'v4.1-dev' into feat/platform-wallet-rehydration
lklimek Jul 2, 2026
3a791c2
merge: #3976 Signer::extended_public_key (rs-sdk-ffi) into #3692
lklimek Jul 2, 2026
9dbca2f
fix(platform-wallet): update CoinJoin pool-topology test for key-wall…
lklimek Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .cargo/audit.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[advisories]
Comment thread
Claudius-Maginificent marked this conversation as resolved.
# TODO Remove it from here
ignore = [ "RUSTSEC-2020-0071"] # advisory IDs to ignore e.g. ["RUSTSEC-2019-0001", ...]
# Advisory IDs to ignore, e.g. ["RUSTSEC-2019-0001", ...]. Each entry
# must point at a live advisory in the resolved graph and carry a dated
# rationale; an entry matching nothing trains reviewers to skim the list.
ignore = []
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,6 @@ __pycache__/

# Security audit reports (local-only, not committed)
audits/

# Review scratch (grumpy-review / triage output, local-only)
.review-*/
74 changes: 37 additions & 37 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 8 additions & 8 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,14 @@ members = [
]

[workspace.dependencies]
dashcore = { git = "https://github.com/dashpay/rust-dashcore", rev = "991c6ebe24d7ea8ba7d900a052b25be8c5498409" }
dash-network-seeds = { git = "https://github.com/dashpay/rust-dashcore", rev = "991c6ebe24d7ea8ba7d900a052b25be8c5498409" }
dash-spv = { git = "https://github.com/dashpay/rust-dashcore", rev = "991c6ebe24d7ea8ba7d900a052b25be8c5498409" }
key-wallet = { git = "https://github.com/dashpay/rust-dashcore", rev = "991c6ebe24d7ea8ba7d900a052b25be8c5498409" }
key-wallet-ffi = { git = "https://github.com/dashpay/rust-dashcore", rev = "991c6ebe24d7ea8ba7d900a052b25be8c5498409" }
key-wallet-manager = { git = "https://github.com/dashpay/rust-dashcore", rev = "991c6ebe24d7ea8ba7d900a052b25be8c5498409" }
dash-network = { git = "https://github.com/dashpay/rust-dashcore", rev = "991c6ebe24d7ea8ba7d900a052b25be8c5498409" }
dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore", rev = "991c6ebe24d7ea8ba7d900a052b25be8c5498409" }
dashcore = { git = "https://github.com/dashpay/rust-dashcore", rev = "a8a096838b829cf5bec3c2374a23511640a0c35c" }
dash-network-seeds = { git = "https://github.com/dashpay/rust-dashcore", rev = "a8a096838b829cf5bec3c2374a23511640a0c35c" }
dash-spv = { git = "https://github.com/dashpay/rust-dashcore", rev = "a8a096838b829cf5bec3c2374a23511640a0c35c" }
key-wallet = { git = "https://github.com/dashpay/rust-dashcore", rev = "a8a096838b829cf5bec3c2374a23511640a0c35c" }
key-wallet-ffi = { git = "https://github.com/dashpay/rust-dashcore", rev = "a8a096838b829cf5bec3c2374a23511640a0c35c" }
key-wallet-manager = { git = "https://github.com/dashpay/rust-dashcore", rev = "a8a096838b829cf5bec3c2374a23511640a0c35c" }
dash-network = { git = "https://github.com/dashpay/rust-dashcore", rev = "a8a096838b829cf5bec3c2374a23511640a0c35c" }
dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore", rev = "a8a096838b829cf5bec3c2374a23511640a0c35c" }

tokio-metrics = "0.5"

Expand Down
11 changes: 10 additions & 1 deletion packages/rs-dpp/src/state_transition/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3335,7 +3335,7 @@ mod tests {
use dashcore::secp256k1::{
ecdsa, rand::rngs::OsRng, Message, PublicKey, Secp256k1, SecretKey,
};
use key_wallet::bip32::DerivationPath;
use key_wallet::bip32::{DerivationPath, ExtendedPubKey};
use key_wallet::signer::{Signer as KwSigner, SignerMethod};

/// Fixed-key in-memory signer used only by this test. Mirrors how a
Expand Down Expand Up @@ -3370,6 +3370,15 @@ mod tests {
async fn public_key(&self, _path: &DerivationPath) -> Result<PublicKey, Self::Error> {
Ok(self.public)
}

async fn extended_public_key(
&self,
_path: &DerivationPath,
) -> Result<ExtendedPubKey, Self::Error> {
// Test stub holds a single raw key with no chain code; extended
// public key derivation is not meaningful here.
Err("FixedKeySigner: no chain code — extended_public_key not supported".to_string())
}
}

// Generate a single random key. Using the same key on both sides is
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ async fn try_from_asset_lock_with_signer_and_private_key_signs_multiple_inputs()
async fn try_from_asset_lock_with_signers_produces_matching_signature() {
use async_trait::async_trait;
use dashcore::secp256k1::{ecdsa, Message};
use key_wallet::bip32::DerivationPath;
use key_wallet::bip32::{DerivationPath, ExtendedPubKey};
use key_wallet::signer::{Signer as KwSigner, SignerMethod};

/// Fixed-key in-memory `key_wallet::signer::Signer`. Mirrors how the
Expand Down Expand Up @@ -237,6 +237,15 @@ async fn try_from_asset_lock_with_signers_produces_matching_signature() {
async fn public_key(&self, _path: &DerivationPath) -> Result<RawPublicKey, Self::Error> {
Ok(self.public)
}

async fn extended_public_key(
&self,
_path: &DerivationPath,
) -> Result<ExtendedPubKey, Self::Error> {
// Test stub holds a single raw key with no chain code; extended
// public key derivation is not meaningful here.
Err("FixedKeySigner: no chain code — extended_public_key not supported".to_string())
}
}

let secp = Secp256k1::new();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ use platform_version::version::PlatformVersion;

use async_trait::async_trait;
use dashcore::secp256k1::{ecdsa, Message, PublicKey, Secp256k1, SecretKey};
use key_wallet::bip32::DerivationPath;
use key_wallet::bip32::{DerivationPath, ExtendedPubKey};
use key_wallet::signer::{Signer as KwSigner, SignerMethod};

/// Fixed-key in-memory `key_wallet::signer::Signer`. Mirrors how a
Expand Down Expand Up @@ -77,6 +77,15 @@ impl KwSigner for FixedKeySigner {
async fn public_key(&self, _path: &DerivationPath) -> Result<PublicKey, Self::Error> {
Ok(self.public)
}

async fn extended_public_key(
&self,
_path: &DerivationPath,
) -> Result<ExtendedPubKey, Self::Error> {
// Test stub holds a single raw key with no chain code; extended
// public key derivation is not meaningful here.
Err("FixedKeySigner: no chain code — extended_public_key not supported".to_string())
}
}

fn make_chain_asset_lock_proof() -> AssetLockProof {
Expand Down
Loading
Loading