Skip to content
Open
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
992be09
feat(dpp,sdk): add signer-based asset-lock identity creation + top-up
shumkov May 12, 2026
2030672
feat(platform-wallet-ffi): add MnemonicResolverCoreSigner trampoline
shumkov May 12, 2026
f1a7d1c
refactor(rs-platform-wallet): unify L1/L2 with IS→CL fallback + Exter…
shumkov May 12, 2026
9d5e506
feat(swift-sdk): wrap signer-based FFI with MnemonicResolver lifetimes
shumkov May 12, 2026
8a57e88
feat(SwiftExampleApp): Core-funded identity registration in CreateIde…
shumkov May 12, 2026
885a1be
fix(platform-wallet-ffi): always enable masternode sync for SPV
shumkov May 12, 2026
4184a42
chore: bump rust-dashcore to 5297d61a for chainlock wallet handling
shumkov May 12, 2026
3d16a31
fix(SwiftExampleApp): bump identity funding floor to v1 minimum for 3…
shumkov May 12, 2026
34d702d
docs(swift-sdk): mark SPV event-routing follow-up resolved
shumkov May 12, 2026
e091e0c
feat(swift-sdk): persist tracked asset locks via SwiftData mirror
shumkov May 12, 2026
c7b06bb
feat(SwiftExampleApp): stage progress bar + RegistrationCoordinator f…
shumkov May 12, 2026
6acbd01
docs: mark iter 3 complete
shumkov May 12, 2026
37dfc49
wip(SwiftExampleApp): refactor identity-create flow + 5-step progress…
shumkov May 12, 2026
f62b65c
fix(SwiftExampleApp): inline progress + Done dismiss + storage status…
shumkov May 13, 2026
7c47f40
feat(platform-wallet-ffi): resume identity registration from existing…
shumkov May 13, 2026
f31ee5d
feat(SwiftExampleApp): resume picker for unused asset locks (iter 5)
shumkov May 13, 2026
be54caf
docs(swift-sdk): mark iter 6 done in identity-from-core-funds plan
shumkov May 13, 2026
f4ada01
test(SwiftExampleApp): pin resume-picker anti-join filter (iter 5)
shumkov May 13, 2026
798eecf
feat(SwiftExampleApp): surface orphan asset locks as resumable regist…
shumkov May 13, 2026
257ba03
feat(SwiftExampleApp): surface in-flight asset locks (status 1) on Id…
shumkov May 13, 2026
f466b7c
refactor(SwiftExampleApp): drop in-form resume picker; resume lives o…
shumkov May 13, 2026
02a1549
fix(SwiftExampleApp): prevent duplicate-tap Resume during in-flight r…
shumkov May 13, 2026
b80a6f9
refactor(SwiftExampleApp): centralize asset-lock status constants + p…
shumkov May 13, 2026
218887c
chore: review nits — pin outpoint round-trip, Txid::from_byte_array, …
shumkov May 13, 2026
46467ec
docs(swift-sdk): add iter 5 UAT matrix to identity-from-core-funds plan
shumkov May 13, 2026
6ce8d8d
docs(swift-sdk): note asset-lock TX rendering gap in plan polish list
shumkov May 13, 2026
3a57198
docs(claude): add simulator-inspect skill for SwiftExampleApp state v…
shumkov May 13, 2026
cf42ac5
docs(claude): expand simulator-control skill — add idb UI automation …
shumkov May 13, 2026
f65e2e4
fix(platform-wallet): persist chain-lock context promotions to Swift …
shumkov May 13, 2026
d404cd0
feat(platform-wallet-ffi): restore tx records for unresolved asset lo…
shumkov May 13, 2026
5aa9e9a
feat(swift-sdk): project tx records for unresolved asset locks into r…
shumkov May 13, 2026
67f5962
feat(platform-wallet): background catch-up for stuck asset locks
shumkov May 13, 2026
017f95e
fix(platform-wallet): delegate chain-lock methods to inner ManagedWal…
shumkov May 14, 2026
0007fe1
feat(platform-wallet): introduce Consumed terminal AssetLockStatus
shumkov May 14, 2026
3cb4221
feat(platform-wallet): build CL proof from metadata.last_applied_chai…
shumkov May 14, 2026
2c3ba07
feat(sdk,platform-wallet): retry identity registration on Platform CL…
shumkov May 14, 2026
a1d0fc1
chore(tracing): cover platform_wallet crates + log catch_up_blocking …
shumkov May 14, 2026
9b4d0fd
feat(swift-sdk,SwiftExampleApp): asset-lock + transaction UI improvem…
shumkov May 14, 2026
847a300
chore(skills,plan): simulator-control update + remove obsolete core-f…
shumkov May 14, 2026
e388de1
chore(deps): bump transitive Cargo.lock entries
shumkov May 14, 2026
6bfdb5b
revert(platform-wallet): drop chain_lock_promotions SwiftData bridge
shumkov May 14, 2026
22ac0be
fix(SwiftExampleApp): mark step 3 as skipped when CL path completes r…
shumkov May 14, 2026
97417be
fix(SwiftExampleApp): mark step 3 skipped during IS-timeout → CL-fall…
shumkov May 14, 2026
0859417
feat(platform-wallet,swift-sdk): persist WalletMetadata.last_applied_…
shumkov May 14, 2026
65e417d
refactor(platform-wallet): collapse L1/L2 split — single register, si…
shumkov May 14, 2026
e5aa1a4
refactor(rs-sdk-ffi): hoist MnemonicResolverHandle + MnemonicResolver…
shumkov May 15, 2026
e01fc9d
refactor(sdk): pass PutSettings to identity transition trait methods …
shumkov May 15, 2026
67e0532
chore(platform-wallet-ffi): drop orphan async-trait + thiserror deps …
shumkov May 15, 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
293 changes: 293 additions & 0 deletions .claude/skills/simulator-control/SKILL.md

Large diffs are not rendered by default.

60 changes: 31 additions & 29 deletions Cargo.lock

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

18 changes: 9 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,15 @@ members = [
]

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

# Optimize heavy crypto crates even in dev/test builds so that
# Halo 2 proof generation and verification run at near-release speed.
Expand Down
18 changes: 18 additions & 0 deletions packages/rs-dpp/src/errors/protocol_error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,24 @@ pub enum ProtocolError {
#[error("Generic Error: {0}")]
Generic(String),

/// External signer (e.g. Swift Keychain-backed
/// `MnemonicResolverCoreSigner`) reported a failure or returned a
/// non-conformant result. This is a distinct surface from
/// [`Self::Generic`] so callers (FFI layer, retry policies) can
/// distinguish a signer-side failure from a generic protocol
/// invariant.
///
/// Examples of failures that surface here:
/// - The signer's `sign_ecdsa` future returned an error (resolver
/// miss, derivation failure, invalid mnemonic, etc.).
/// - The signer returned a signature whose recovery id does not
/// match the returned public key (invariant violation by a
/// non-conformant signer — distinct from a soft failure, but
/// surfaced uniformly here so the FFI layer doesn't need to
/// pattern-match on signer-specific shapes).
#[error("External signer error: {0}")]
ExternalSignerError(String),

#[error("Address witness verification error: {0}")]
AddressWitnessError(String),

Expand Down
Loading
Loading