Skip to content

Commit 6d9efa9

Browse files
lklimekclaude
andcommitted
feat: bump rust-dashcore to mempool support (1af96dd)
Update all 6 rust-dashcore workspace dependencies to commit 1af96dd02f12576ba0727476e39ff78aca0a1e13 which adds MempoolManager (8th parallel sync manager) with bloom filter based mempool monitoring. Remove "std" feature from rs-dpp dashcore dependency as it was eliminated upstream. Adapt to upstream API changes: - Network::Dash renamed to Network::Mainnet - DMNState.service changed from SocketAddr to Option<SocketAddr> - WalletInfoInterface gained mark_instant_send_utxos method - WalletTransactionChecker::check_core_transaction gained update_balance param Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 28d088e commit 6d9efa9

47 files changed

Lines changed: 147 additions & 128 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

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

Cargo.toml

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

4949
[workspace.dependencies]
50-
dashcore = { git = "https://github.com/dashpay/rust-dashcore", rev = "9959201593826def0ad1f6db51b2ceb95b68a1ca" }
51-
dash-spv = { git = "https://github.com/dashpay/rust-dashcore", rev = "9959201593826def0ad1f6db51b2ceb95b68a1ca" }
52-
dash-spv-ffi = { git = "https://github.com/dashpay/rust-dashcore", rev = "9959201593826def0ad1f6db51b2ceb95b68a1ca" }
53-
key-wallet = { git = "https://github.com/dashpay/rust-dashcore", rev = "9959201593826def0ad1f6db51b2ceb95b68a1ca" }
54-
key-wallet-manager = { git = "https://github.com/dashpay/rust-dashcore", rev = "9959201593826def0ad1f6db51b2ceb95b68a1ca" }
55-
dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore", rev = "9959201593826def0ad1f6db51b2ceb95b68a1ca" }
50+
dashcore = { git = "https://github.com/dashpay/rust-dashcore", rev = "1af96dd02f12576ba0727476e39ff78aca0a1e13" }
51+
dash-spv = { git = "https://github.com/dashpay/rust-dashcore", rev = "1af96dd02f12576ba0727476e39ff78aca0a1e13" }
52+
dash-spv-ffi = { git = "https://github.com/dashpay/rust-dashcore", rev = "1af96dd02f12576ba0727476e39ff78aca0a1e13" }
53+
key-wallet = { git = "https://github.com/dashpay/rust-dashcore", rev = "1af96dd02f12576ba0727476e39ff78aca0a1e13" }
54+
key-wallet-manager = { git = "https://github.com/dashpay/rust-dashcore", rev = "1af96dd02f12576ba0727476e39ff78aca0a1e13" }
55+
dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore", rev = "1af96dd02f12576ba0727476e39ff78aca0a1e13" }
5656

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

packages/rs-dpp/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ 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",

packages/rs-dpp/src/address_funds/orchard_address.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ impl OrchardAddress {
9696

9797
let hrp_lower = hrp.as_str().to_ascii_lowercase();
9898
let network = match hrp_lower.as_str() {
99-
s if s == PLATFORM_HRP_MAINNET => Network::Dash,
99+
s if s == PLATFORM_HRP_MAINNET => Network::Mainnet,
100100
s if s == PLATFORM_HRP_TESTNET => Network::Testnet,
101101
_ => {
102102
return Err(ProtocolError::DecodingError(format!(
@@ -182,7 +182,7 @@ mod tests {
182182
fn test_orchard_bech32m_mainnet_roundtrip() {
183183
let address = test_orchard_address();
184184

185-
let encoded = address.to_bech32m_string(Network::Dash);
185+
let encoded = address.to_bech32m_string(Network::Mainnet);
186186
assert!(
187187
encoded.starts_with("dash1z"),
188188
"Orchard mainnet address should start with 'dash1z', got: {}",
@@ -192,7 +192,7 @@ mod tests {
192192
let (decoded, network) =
193193
OrchardAddress::from_bech32m_string(&encoded).expect("decoding should succeed");
194194
assert_eq!(decoded, address);
195-
assert_eq!(network, Network::Dash);
195+
assert_eq!(network, Network::Mainnet);
196196
}
197197

198198
#[test]
@@ -250,9 +250,9 @@ mod tests {
250250
let p2sh = PlatformAddress::P2sh([0xAB; 20]);
251251
let orchard = test_orchard_address();
252252

253-
let p2pkh_enc = p2pkh.to_bech32m_string(Network::Dash);
254-
let p2sh_enc = p2sh.to_bech32m_string(Network::Dash);
255-
let orchard_enc = orchard.to_bech32m_string(Network::Dash);
253+
let p2pkh_enc = p2pkh.to_bech32m_string(Network::Mainnet);
254+
let p2sh_enc = p2sh.to_bech32m_string(Network::Mainnet);
255+
let orchard_enc = orchard.to_bech32m_string(Network::Mainnet);
256256

257257
// All three start with "dash1" but have different type-byte characters
258258
assert!(p2pkh_enc.starts_with("dash1k"), "P2PKH: {}", p2pkh_enc);

packages/rs-dpp/src/address_funds/platform_address.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ impl PlatformAddress {
103103
/// - Testnet/Devnet/Regtest: "tdash"
104104
pub fn hrp_for_network(network: Network) -> &'static str {
105105
match network {
106-
Network::Dash => PLATFORM_HRP_MAINNET,
106+
Network::Mainnet => PLATFORM_HRP_MAINNET,
107107
Network::Testnet | Network::Devnet | Network::Regtest => PLATFORM_HRP_TESTNET,
108108
// For any other networks, default to testnet HRP
109109
_ => PLATFORM_HRP_TESTNET,
@@ -123,7 +123,7 @@ impl PlatformAddress {
123123
/// # Example
124124
/// ```ignore
125125
/// let address = PlatformAddress::P2pkh([0xf7, 0xda, ...]);
126-
/// let encoded = address.to_bech32m_string(Network::Dash);
126+
/// let encoded = address.to_bech32m_string(Network::Mainnet);
127127
/// // Returns something like "dash1k..."
128128
/// ```
129129
pub fn to_bech32m_string(&self, network: Network) -> String {
@@ -164,7 +164,7 @@ impl PlatformAddress {
164164
// Determine network from HRP (case-insensitive per DIP-0018)
165165
let hrp_lower = hrp.as_str().to_ascii_lowercase();
166166
let network = match hrp_lower.as_str() {
167-
s if s == PLATFORM_HRP_MAINNET => Network::Dash,
167+
s if s == PLATFORM_HRP_MAINNET => Network::Mainnet,
168168
s if s == PLATFORM_HRP_TESTNET => Network::Testnet,
169169
_ => {
170170
return Err(ProtocolError::DecodingError(format!(
@@ -1030,7 +1030,7 @@ mod tests {
10301030
let address = PlatformAddress::P2pkh(hash);
10311031

10321032
// Encode to bech32m
1033-
let encoded = address.to_bech32m_string(Network::Dash);
1033+
let encoded = address.to_bech32m_string(Network::Mainnet);
10341034

10351035
// Verify exact encoding
10361036
assert_eq!(
@@ -1042,7 +1042,7 @@ mod tests {
10421042
let (decoded, network) =
10431043
PlatformAddress::from_bech32m_string(&encoded).expect("decoding should succeed");
10441044
assert_eq!(decoded, address);
1045-
assert_eq!(network, Network::Dash);
1045+
assert_eq!(network, Network::Mainnet);
10461046
}
10471047

10481048
#[test]
@@ -1080,7 +1080,7 @@ mod tests {
10801080
let address = PlatformAddress::P2sh(hash);
10811081

10821082
// Encode to bech32m
1083-
let encoded = address.to_bech32m_string(Network::Dash);
1083+
let encoded = address.to_bech32m_string(Network::Mainnet);
10841084

10851085
// Verify exact encoding
10861086
assert_eq!(
@@ -1092,7 +1092,7 @@ mod tests {
10921092
let (decoded, network) =
10931093
PlatformAddress::from_bech32m_string(&encoded).expect("decoding should succeed");
10941094
assert_eq!(decoded, address);
1095-
assert_eq!(network, Network::Dash);
1095+
assert_eq!(network, Network::Mainnet);
10961096
}
10971097

10981098
#[test]
@@ -1170,7 +1170,7 @@ mod tests {
11701170
// Create a valid address, then corrupt the checksum
11711171
let hash: [u8; 20] = [0xAB; 20];
11721172
let address = PlatformAddress::P2pkh(hash);
1173-
let mut encoded = address.to_bech32m_string(Network::Dash);
1173+
let mut encoded = address.to_bech32m_string(Network::Mainnet);
11741174

11751175
// Corrupt the last character (part of checksum)
11761176
let last_char = encoded.pop().unwrap();
@@ -1239,7 +1239,7 @@ mod tests {
12391239
let hash: [u8; 20] = [0xAB; 20];
12401240
let address = PlatformAddress::P2pkh(hash);
12411241

1242-
let lowercase = address.to_bech32m_string(Network::Dash);
1242+
let lowercase = address.to_bech32m_string(Network::Mainnet);
12431243
let uppercase = lowercase.to_uppercase();
12441244

12451245
// Both should decode to the same address
@@ -1254,7 +1254,7 @@ mod tests {
12541254
fn test_bech32m_all_zeros_p2pkh() {
12551255
// Edge case: all-zero hash
12561256
let address = PlatformAddress::P2pkh([0u8; 20]);
1257-
let encoded = address.to_bech32m_string(Network::Dash);
1257+
let encoded = address.to_bech32m_string(Network::Mainnet);
12581258
let (decoded, _) = PlatformAddress::from_bech32m_string(&encoded).unwrap();
12591259
assert_eq!(decoded, address);
12601260
}
@@ -1263,14 +1263,14 @@ mod tests {
12631263
fn test_bech32m_all_ones_p2sh() {
12641264
// Edge case: all-ones hash
12651265
let address = PlatformAddress::P2sh([0xFF; 20]);
1266-
let encoded = address.to_bech32m_string(Network::Dash);
1266+
let encoded = address.to_bech32m_string(Network::Mainnet);
12671267
let (decoded, _) = PlatformAddress::from_bech32m_string(&encoded).unwrap();
12681268
assert_eq!(decoded, address);
12691269
}
12701270

12711271
#[test]
12721272
fn test_hrp_for_network() {
1273-
assert_eq!(PlatformAddress::hrp_for_network(Network::Dash), "dash");
1273+
assert_eq!(PlatformAddress::hrp_for_network(Network::Mainnet), "dash");
12741274
assert_eq!(PlatformAddress::hrp_for_network(Network::Testnet), "tdash");
12751275
assert_eq!(PlatformAddress::hrp_for_network(Network::Devnet), "tdash");
12761276
assert_eq!(PlatformAddress::hrp_for_network(Network::Regtest), "tdash");
@@ -1312,8 +1312,8 @@ mod tests {
13121312
assert_eq!(p2sh.to_bytes()[0], 0x01);
13131313

13141314
// Bech32m encoding uses 0xb0/0xb8 (verified by successful roundtrip)
1315-
let p2pkh_encoded = p2pkh.to_bech32m_string(Network::Dash);
1316-
let p2sh_encoded = p2sh.to_bech32m_string(Network::Dash);
1315+
let p2pkh_encoded = p2pkh.to_bech32m_string(Network::Mainnet);
1316+
let p2sh_encoded = p2sh.to_bech32m_string(Network::Mainnet);
13171317

13181318
let (p2pkh_decoded, _) = PlatformAddress::from_bech32m_string(&p2pkh_encoded).unwrap();
13191319
let (p2sh_decoded, _) = PlatformAddress::from_bech32m_string(&p2sh_encoded).unwrap();

packages/rs-dpp/src/core_subsidy/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub trait NetworkCoreSubsidy {
1616
impl NetworkCoreSubsidy for Network {
1717
fn core_subsidy_halving_interval(&self) -> u32 {
1818
match self {
19-
Network::Dash => 210240,
19+
Network::Mainnet => 210240,
2020
Network::Testnet => 210240,
2121
Network::Devnet => 210240,
2222
Network::Regtest => 150,

packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/reward_distribution_type/validation/v0/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ impl RewardDistributionType {
1818
match self {
1919
RewardDistributionType::BlockBasedDistribution { interval, .. } => {
2020
let min_block_interval = match network_type {
21-
Network::Dash => 100,
21+
Network::Mainnet => 100,
2222
Network::Testnet => 5,
2323
Network::Devnet => 2,
2424
Network::Regtest => 1,
@@ -37,7 +37,7 @@ impl RewardDistributionType {
3737
}
3838
RewardDistributionType::TimeBasedDistribution { interval, .. } => {
3939
let min_block_interval = match network_type {
40-
Network::Dash => 3_600_000,
40+
Network::Mainnet => 3_600_000,
4141
Network::Testnet => 600_000,
4242
Network::Devnet => 60_000,
4343
Network::Regtest => 60_000,

packages/rs-dpp/src/identity/identity_public_key/key_type.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ impl KeyType {
163163
let secp = Secp256k1::new();
164164
let mut rng = EcdsaRng::from_rng(rng).unwrap();
165165
let secret_key = dashcore::secp256k1::SecretKey::new(&mut rng);
166-
let private_key = dashcore::PrivateKey::new(secret_key, Network::Dash);
166+
let private_key = dashcore::PrivateKey::new(secret_key, Network::Mainnet);
167167
private_key.public_key(&secp).to_bytes()
168168
}
169169
KeyType::BLS12_381 => {
@@ -269,7 +269,7 @@ impl KeyType {
269269
let secp = Secp256k1::new();
270270
let mut rng = EcdsaRng::from_rng(rng).unwrap();
271271
let secret_key = dashcore::secp256k1::SecretKey::new(&mut rng);
272-
let private_key = dashcore::PrivateKey::new(secret_key, Network::Dash);
272+
let private_key = dashcore::PrivateKey::new(secret_key, Network::Mainnet);
273273
(
274274
private_key.public_key(&secp).to_bytes(),
275275
private_key.inner.secret_bytes(),
@@ -284,7 +284,7 @@ impl KeyType {
284284
let secp = Secp256k1::new();
285285
let mut rng = EcdsaRng::from_rng(rng).unwrap();
286286
let secret_key = dashcore::secp256k1::SecretKey::new(&mut rng);
287-
let private_key = dashcore::PrivateKey::new(secret_key, Network::Dash);
287+
let private_key = dashcore::PrivateKey::new(secret_key, Network::Mainnet);
288288
(
289289
ripemd160_sha256(private_key.public_key(&secp).to_bytes().as_slice()).to_vec(),
290290
private_key.inner.secret_bytes(),
@@ -302,7 +302,7 @@ impl KeyType {
302302
let secp = Secp256k1::new();
303303
let mut rng = EcdsaRng::from_rng(rng).unwrap();
304304
let secret_key = dashcore::secp256k1::SecretKey::new(&mut rng);
305-
let private_key = dashcore::PrivateKey::new(secret_key, Network::Dash);
305+
let private_key = dashcore::PrivateKey::new(secret_key, Network::Mainnet);
306306
(
307307
ripemd160_sha256(private_key.public_key(&secp).to_bytes().as_slice()).to_vec(),
308308
private_key.inner.secret_bytes(),

packages/rs-drive-abci/src/abci/handler/finalize_block.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ where
7777
// For the mainnet chain, we enable these fixes at the block when we consider the state is consistent.
7878
let config = &app.platform().config;
7979

80-
if app.platform().config.network == Network::Dash
80+
if app.platform().config.network == Network::Mainnet
8181
&& config.abci.chain_id == "evo1"
8282
&& block_height < 33000
8383
{

packages/rs-drive-abci/src/abci/handler/info.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ where
5050
let config = &app.platform().config;
5151

5252
#[allow(clippy::collapsible_if)]
53-
if !(config.network == Network::Dash
53+
if !(config.network == Network::Mainnet
5454
&& config.abci.chain_id == "evo1"
5555
&& last_block_height < 33000)
5656
{

0 commit comments

Comments
 (0)