Skip to content

Commit ba359d2

Browse files
shumkovclaude
andcommitted
chore: update dashcore deps to 08ade6e8 (crate merge + mempool + TransactionContext)
- Update all rust-dashcore deps from 42eb1d69 to 08ade6e8 - Remove key-wallet-manager from workspace deps (merged into key-wallet::manager) - Remove "std" feature from dashcore dep (no longer exists) - Fix key-wallet-manager imports → key-wallet::manager in dpp, platform-wallet - Fix DMNState.service: SocketAddr → Option<SocketAddr> in drive-abci - Fix double-Option in dmn_state_diff.service handling - Fix dash_spv_ffi_client_new: add FFIEventCallbacks parameter in rs-sdk-ffi - Add mark_instant_send_utxos to PlatformWalletInfo WalletInfoInterface impl - Update test code for new API signatures Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 89a1036 commit ba359d2

21 files changed

Lines changed: 198 additions & 258 deletions

File tree

Cargo.lock

Lines changed: 110 additions & 190 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,11 @@ members = [
4747
]
4848

4949
[workspace.dependencies]
50-
dashcore = { git = "https://github.com/dashpay/rust-dashcore", rev = "42eb1d698d4f178d3a8a80c72c9c0f9bbeddcc3e" }
51-
dash-spv = { git = "https://github.com/dashpay/rust-dashcore", rev = "42eb1d698d4f178d3a8a80c72c9c0f9bbeddcc3e" }
52-
dash-spv-ffi = { git = "https://github.com/dashpay/rust-dashcore", rev = "42eb1d698d4f178d3a8a80c72c9c0f9bbeddcc3e" }
53-
key-wallet = { git = "https://github.com/dashpay/rust-dashcore", rev = "42eb1d698d4f178d3a8a80c72c9c0f9bbeddcc3e" }
54-
key-wallet-manager = { git = "https://github.com/dashpay/rust-dashcore", rev = "42eb1d698d4f178d3a8a80c72c9c0f9bbeddcc3e" }
55-
dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore", rev = "42eb1d698d4f178d3a8a80c72c9c0f9bbeddcc3e" }
50+
dashcore = { git = "https://github.com/dashpay/rust-dashcore", rev = "08ade6e8043ff376bd253c9566b927154ca8a455" }
51+
dash-spv = { git = "https://github.com/dashpay/rust-dashcore", rev = "08ade6e8043ff376bd253c9566b927154ca8a455" }
52+
dash-spv-ffi = { git = "https://github.com/dashpay/rust-dashcore", rev = "08ade6e8043ff376bd253c9566b927154ca8a455" }
53+
key-wallet = { git = "https://github.com/dashpay/rust-dashcore", rev = "08ade6e8043ff376bd253c9566b927154ca8a455" }
54+
dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore", rev = "08ade6e8043ff376bd253c9566b927154ca8a455" }
5655

5756
# Optimize heavy crypto crates even in dev/test builds so that
5857
# Halo 2 proof generation and verification run at near-release speed.

packages/rs-dpp/Cargo.toml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,13 @@ chrono = { version = "0.4.35", default-features = false, features = [
2525
chrono-tz = { version = "0.8", optional = true }
2626
ciborium = { version = "0.2.2", optional = true }
2727
dashcore = { workspace = true, features = [
28-
"std",
2928
"secp-recovery",
3029
"rand",
3130
"signer",
3231
"serde",
3332
"eddsa",
34-
], default-features = false }
33+
] }
3534
key-wallet = { workspace = true, optional = true }
36-
key-wallet-manager = { workspace = true, optional = true }
3735
dash-spv = { workspace = true, optional = true }
3836
dashcore-rpc = { workspace = true, optional = true }
3937

@@ -94,7 +92,6 @@ core_quorum_validation = ["dashcore/quorum_validation"]
9492
core_key_wallet = ["dep:key-wallet"]
9593
core_key_wallet_bincode = ["dep:key-wallet", "key-wallet/bincode"]
9694
core_key_wallet_bip_38 = ["dep:key-wallet", "key-wallet/bip38"]
97-
core_key_wallet_manager = ["dep:key-wallet-manager"]
9895
core_key_wallet_serde = ["dep:key-wallet", "key-wallet/serde"]
9996
core_spv = ["dep:dash-spv"]
10097
core_rpc_client = ["dep:dashcore-rpc"]

packages/rs-dpp/src/lib.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ pub use dashcore;
1212
#[cfg(feature = "core_key_wallet")]
1313
pub use key_wallet;
1414

15-
#[cfg(feature = "core_key_wallet_manager")]
16-
pub use key_wallet_manager;
17-
1815
#[cfg(feature = "core_spv")]
1916
pub use dash_spv;
2017

packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ mod tests {
531531
collateral_address: [0; 20],
532532
operator_reward: 0.0,
533533
state: DMNState {
534-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
534+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
535535
registered_height: 0,
536536
pose_revived_height: None,
537537
pose_ban_height: None,
@@ -608,7 +608,7 @@ mod tests {
608608
collateral_address: [0; 20],
609609
operator_reward: 0.0,
610610
state: DMNState {
611-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
611+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
612612
registered_height: 0,
613613
pose_revived_height: None,
614614
pose_ban_height: None,
@@ -668,7 +668,7 @@ mod tests {
668668
collateral_address: [0; 20],
669669
operator_reward: 0.0,
670670
state: DMNState {
671-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
671+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
672672
registered_height: 0,
673673
pose_revived_height: None,
674674
pose_ban_height: None,
@@ -741,7 +741,7 @@ mod tests {
741741
collateral_address: [0; 20],
742742
operator_reward: 0.0,
743743
state: DMNState {
744-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
744+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
745745
registered_height: 0,
746746
pose_revived_height: None,
747747
pose_ban_height: None,
@@ -818,7 +818,7 @@ mod tests {
818818
collateral_address: [0; 20],
819819
operator_reward: 0.0,
820820
state: DMNState {
821-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
821+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
822822
registered_height: 0,
823823
pose_revived_height: None,
824824
pose_ban_height: None,
@@ -879,7 +879,7 @@ mod tests {
879879
collateral_address: [0; 20],
880880
operator_reward: 0.0,
881881
state: DMNState {
882-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
882+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
883883
registered_height: 0,
884884
pose_revived_height: None,
885885
pose_ban_height: None,
@@ -967,7 +967,7 @@ mod tests {
967967
collateral_address: [0; 20],
968968
operator_reward: 0.0,
969969
state: DMNState {
970-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
970+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
971971
registered_height: 0,
972972
pose_revived_height: None,
973973
pose_ban_height: None,
@@ -1097,7 +1097,7 @@ mod tests {
10971097
collateral_address: [0; 20],
10981098
operator_reward: 0.0,
10991099
state: DMNState {
1100-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
1100+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
11011101
registered_height: 0,
11021102
pose_revived_height: None,
11031103
pose_ban_height: None,
@@ -1198,7 +1198,7 @@ mod tests {
11981198
collateral_address: [0; 20],
11991199
operator_reward: 0.0,
12001200
state: DMNState {
1201-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
1201+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
12021202
registered_height: 0,
12031203
pose_revived_height: None,
12041204
pose_ban_height: None,
@@ -1259,7 +1259,7 @@ mod tests {
12591259
collateral_address: [0; 20],
12601260
operator_reward: 0.0,
12611261
state: DMNState {
1262-
service: SocketAddr::from_str("1.0.1.1:1234").unwrap(),
1262+
service: Some(SocketAddr::from_str("1.0.1.1:1234").unwrap()),
12631263
registered_height: 0,
12641264
pose_revived_height: None,
12651265
pose_ban_height: None,

packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/update_state_masternode_list/v0/mod.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,10 @@ where
6464
// the ban_height was changed
6565
validator.is_banned = maybe_ban_height.is_some();
6666
}
67-
if let Some(address) = dmn_state_diff.service {
68-
validator.node_ip = address.ip().to_string();
67+
if let Some(maybe_address) = dmn_state_diff.service {
68+
if let Some(address) = maybe_address {
69+
validator.node_ip = address.ip().to_string();
70+
}
6971
}
7072

7173
if let Some(p2p_port) = dmn_state_diff.platform_p2p_port {

packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -679,7 +679,7 @@ pub(in crate::execution) mod tests {
679679
collateral_address: rng.gen(),
680680
operator_reward: 0.0,
681681
state: DMNState {
682-
service: SocketAddr::new(IpAddr::V4(random_ip), 19999),
682+
service: Some(SocketAddr::new(IpAddr::V4(random_ip), 19999)),
683683
registered_height: 0,
684684
pose_revived_height: None,
685685
pose_ban_height: None,
@@ -768,7 +768,7 @@ pub(in crate::execution) mod tests {
768768
collateral_address: rng.gen(),
769769
operator_reward: 0.0,
770770
state: DMNState {
771-
service: SocketAddr::new(IpAddr::V4(random_ip), 19999),
771+
service: Some(SocketAddr::new(IpAddr::V4(random_ip), 19999)),
772772
registered_height: 0,
773773
pose_revived_height: None,
774774
pose_ban_height: None,

packages/rs-drive-abci/src/platform_types/masternode/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ impl TryFromPlatformVersioned<MasternodeListItem> for Masternode {
2424
platform_version: &PlatformVersion,
2525
) -> Result<Self, Self::Error> {
2626
match platform_version.drive_abci.structs.masternode {
27-
0 => Ok(Self::V0(value.into())),
27+
0 => Ok(Self::V0(value.try_into()?)),
2828
version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch {
2929
method: "Masternode::try_from_platform_versioned(MasternodeListItem)".to_string(),
3030
known_versions: vec![0],

packages/rs-drive-abci/src/platform_types/masternode/v0/mod.rs

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
/// Accessors for Masternode
22
pub mod accessors;
33

4+
use crate::error::execution::ExecutionError;
5+
use crate::error::Error;
46
use dpp::bincode::{Decode, Encode};
57
use dpp::dashcore_rpc::dashcore_rpc_json::{DMNState, MasternodeType};
68
use dpp::dashcore_rpc::json::MasternodeListItem;
@@ -45,8 +47,10 @@ impl Debug for MasternodeV0 {
4547
}
4648
}
4749

48-
impl From<MasternodeListItem> for MasternodeV0 {
49-
fn from(value: MasternodeListItem) -> Self {
50+
impl TryFrom<MasternodeListItem> for MasternodeV0 {
51+
type Error = Error;
52+
53+
fn try_from(value: MasternodeListItem) -> Result<Self, Self::Error> {
5054
let MasternodeListItem {
5155
node_type,
5256
pro_tx_hash,
@@ -57,15 +61,15 @@ impl From<MasternodeListItem> for MasternodeV0 {
5761
state,
5862
} = value;
5963

60-
Self {
64+
Ok(Self {
6165
node_type,
6266
pro_tx_hash,
6367
collateral_hash,
6468
collateral_index,
6569
collateral_address,
6670
operator_reward,
67-
state: state.into(),
68-
}
71+
state: state.try_into()?,
72+
})
6973
}
7074
}
7175

@@ -137,8 +141,10 @@ pub struct MasternodeStateV0 {
137141
pub platform_http_port: Option<u32>,
138142
}
139143

140-
impl From<DMNState> for MasternodeStateV0 {
141-
fn from(value: DMNState) -> Self {
144+
impl TryFrom<DMNState> for MasternodeStateV0 {
145+
type Error = Error;
146+
147+
fn try_from(value: DMNState) -> Result<Self, Self::Error> {
142148
let DMNState {
143149
service,
144150
registered_height,
@@ -155,7 +161,11 @@ impl From<DMNState> for MasternodeStateV0 {
155161
platform_http_port,
156162
} = value;
157163

158-
Self {
164+
let service = service.ok_or(Error::Execution(ExecutionError::CorruptedCodeExecution(
165+
"masternode service address is required but was empty in core RPC response",
166+
)))?;
167+
168+
Ok(Self {
159169
service,
160170
registered_height,
161171
pose_revived_height,
@@ -169,7 +179,7 @@ impl From<DMNState> for MasternodeStateV0 {
169179
platform_node_id,
170180
platform_p2p_port,
171181
platform_http_port,
172-
}
182+
})
173183
}
174184
}
175185

@@ -192,7 +202,7 @@ impl From<MasternodeStateV0> for DMNState {
192202
} = value;
193203

194204
Self {
195-
service,
205+
service: Some(service),
196206
registered_height,
197207
pose_revived_height,
198208
pose_ban_height,

packages/rs-drive-abci/src/platform_types/validator/v0/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,13 @@ impl NewValidatorIfMasternodeInState for ValidatorV0 {
3737
return None;
3838
};
3939
let platform_node_id = (*platform_node_id)?;
40+
let service_addr = (*service)?;
4041
Some(ValidatorV0 {
4142
pro_tx_hash,
4243
public_key,
43-
node_ip: service.ip().to_string(),
44+
node_ip: service_addr.ip().to_string(),
4445
node_id: PubkeyHash::from_byte_array(platform_node_id),
45-
core_port: service.port(),
46+
core_port: service_addr.port(),
4647
platform_http_port: *platform_http_port as u16,
4748
platform_p2p_port: *platform_p2p_port as u16,
4849
is_banned: pose_ban_height.is_some(),

0 commit comments

Comments
 (0)