Skip to content

Commit 65b7a68

Browse files
committed
fix: SPV Regtest support
1 parent 8520482 commit 65b7a68

File tree

3 files changed

+22
-17
lines changed

3 files changed

+22
-17
lines changed

dash/src/blockdata/constants.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,9 @@ fn dash_genesis_tx() -> Transaction {
8181

8282
// Inputs
8383
// Using raw script bytes to avoid push_slice issues
84+
// Message: "Wired 09/Jan/2014 The Grand Experiment Goes Live: Overstock.com Is Now Accepting Bitcoins"
8485
let in_script = script::ScriptBuf::from(hex!(
85-
"04ffff001d01044c5957697265642030392f4a616e2f32303134205468652047726e64204578706572696d656e7420476f6573204c6976653a204f76657273746f636b2e636f6d204973204e6f7720416363657074696e6720426974636f696e73"
86+
"04ffff001d01044c5957697265642030392f4a616e2f3230313420546865204772616e64204578706572696d656e7420476f6573204c6976653a204f76657273746f636b2e636f6d204973204e6f7720416363657074696e6720426974636f696e73"
8687
).to_vec());
8788
ret.input.push(TxIn {
8889
previous_output: OutPoint::null(),
@@ -170,9 +171,9 @@ pub fn genesis_block(network: Network) -> Block {
170171
version: block::Version::ONE,
171172
prev_blockhash: Hash::all_zeros(),
172173
merkle_root,
173-
time: 1296688602,
174+
time: 1417713337,
174175
bits: CompactTarget::from_consensus(0x207fffff),
175-
nonce: 2,
176+
nonce: 1096447,
176177
},
177178
txdata,
178179
}
@@ -199,7 +200,7 @@ mod test {
199200
assert_eq!(
200201
genesis_tx.input[0].script_sig.as_bytes(),
201202
&hex!(
202-
"04ffff001d01044c5957697265642030392f4a616e2f32303134205468652047726e64204578706572696d656e7420476f6573204c6976653a204f76657273746f636b2e636f6d204973204e6f7720416363657074696e6720426974636f696e73"
203+
"04ffff001d01044c5957697265642030392f4a616e2f3230313420546865204772616e64204578706572696d656e7420476f6573204c6976653a204f76657273746f636b2e636f6d204973204e6f7720416363657074696e6720426974636f696e73"
203204
)
204205
);
205206

@@ -283,14 +284,14 @@ mod test {
283284
assert_eq!(genesis_block.header.prev_blockhash, Hash::all_zeros());
284285
assert_eq!(
285286
genesis_block.header.merkle_root.to_string(),
286-
"babeaa0bf3af03c0f12d94da95c7f28168be22087a16fb207e7abda4ae654ee3"
287+
"e0028eb9648db56b1ac77cf090b99048a8007e2bb64b68f092c03c7f56a662c7"
287288
);
288-
assert_eq!(genesis_block.header.time, 1296688602);
289+
assert_eq!(genesis_block.header.time, 1417713337);
289290
assert_eq!(genesis_block.header.bits, CompactTarget::from_consensus(0x207fffff));
290-
assert_eq!(genesis_block.header.nonce, 2);
291+
assert_eq!(genesis_block.header.nonce, 1096447);
291292
assert_eq!(
292293
genesis_block.header.block_hash().to_string(),
293-
"53b3ed3030781ac19e4852d9c58f2804574f9866f3f7f69131eeb13f449f8007"
294+
"000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e"
294295
);
295296
}
296297
}

key-wallet/src/account/account_type.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ impl AccountType {
260260
Network::Dash => {
261261
Ok(DerivationPath::from(crate::dip9::IDENTITY_REGISTRATION_PATH_MAINNET))
262262
}
263-
Network::Testnet => {
263+
Network::Testnet | Network::Regtest => {
264264
Ok(DerivationPath::from(crate::dip9::IDENTITY_REGISTRATION_PATH_TESTNET))
265265
}
266266
_ => Err(crate::error::Error::InvalidNetwork),
@@ -272,7 +272,7 @@ impl AccountType {
272272
// Base path with registration index - actual key index added when deriving
273273
let base_path = match network {
274274
Network::Dash => crate::dip9::IDENTITY_TOPUP_PATH_MAINNET,
275-
Network::Testnet => crate::dip9::IDENTITY_TOPUP_PATH_TESTNET,
275+
Network::Testnet | Network::Regtest => crate::dip9::IDENTITY_TOPUP_PATH_TESTNET,
276276
_ => return Err(crate::error::Error::InvalidNetwork),
277277
};
278278
let mut path = DerivationPath::from(base_path);
@@ -288,7 +288,7 @@ impl AccountType {
288288
Network::Dash => {
289289
Ok(DerivationPath::from(crate::dip9::IDENTITY_TOPUP_PATH_MAINNET))
290290
}
291-
Network::Testnet => {
291+
Network::Testnet | Network::Regtest => {
292292
Ok(DerivationPath::from(crate::dip9::IDENTITY_TOPUP_PATH_TESTNET))
293293
}
294294
_ => Err(crate::error::Error::InvalidNetwork),
@@ -300,7 +300,7 @@ impl AccountType {
300300
Network::Dash => {
301301
Ok(DerivationPath::from(crate::dip9::IDENTITY_INVITATION_PATH_MAINNET))
302302
}
303-
Network::Testnet => {
303+
Network::Testnet | Network::Regtest => {
304304
Ok(DerivationPath::from(crate::dip9::IDENTITY_INVITATION_PATH_TESTNET))
305305
}
306306
_ => Err(crate::error::Error::InvalidNetwork),
@@ -354,7 +354,7 @@ impl AccountType {
354354
// Base DashPay root + account 0' + user_id/friend_id (non-hardened per DIP-14/DIP-15)
355355
let mut path = match network {
356356
Network::Dash => DerivationPath::from(crate::dip9::DASHPAY_ROOT_PATH_MAINNET),
357-
Network::Testnet => {
357+
Network::Testnet | Network::Regtest => {
358358
DerivationPath::from(crate::dip9::DASHPAY_ROOT_PATH_TESTNET)
359359
}
360360
_ => return Err(crate::error::Error::InvalidNetwork),
@@ -376,7 +376,7 @@ impl AccountType {
376376
// Base DashPay root + account 0' + friend_id/user_id (non-hardened per DIP-14/DIP-15)
377377
let mut path = match network {
378378
Network::Dash => DerivationPath::from(crate::dip9::DASHPAY_ROOT_PATH_MAINNET),
379-
Network::Testnet => {
379+
Network::Testnet | Network::Regtest => {
380380
DerivationPath::from(crate::dip9::DASHPAY_ROOT_PATH_TESTNET)
381381
}
382382
_ => return Err(crate::error::Error::InvalidNetwork),

key-wallet/src/derivation.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@ impl HDWallet {
9999
pub fn bip44_account(&self, account: u32) -> Result<ExtendedPrivKey> {
100100
let path = match self.master_key.network {
101101
crate::Network::Dash => crate::dip9::DASH_BIP44_PATH_MAINNET,
102-
crate::Network::Testnet => crate::dip9::DASH_BIP44_PATH_TESTNET,
102+
crate::Network::Testnet | crate::Network::Regtest => {
103+
crate::dip9::DASH_BIP44_PATH_TESTNET
104+
}
103105
_ => return Err(Error::InvalidNetwork),
104106
};
105107

@@ -116,7 +118,7 @@ impl HDWallet {
116118
pub fn coinjoin_account(&self, account: u32) -> Result<ExtendedPrivKey> {
117119
let path = match self.master_key.network {
118120
crate::Network::Dash => crate::dip9::COINJOIN_PATH_MAINNET,
119-
crate::Network::Testnet => crate::dip9::COINJOIN_PATH_TESTNET,
121+
crate::Network::Testnet | crate::Network::Regtest => crate::dip9::COINJOIN_PATH_TESTNET,
120122
_ => return Err(Error::InvalidNetwork),
121123
};
122124

@@ -137,7 +139,9 @@ impl HDWallet {
137139
) -> Result<ExtendedPrivKey> {
138140
let path = match self.master_key.network {
139141
crate::Network::Dash => crate::dip9::IDENTITY_AUTHENTICATION_PATH_MAINNET,
140-
crate::Network::Testnet => crate::dip9::IDENTITY_AUTHENTICATION_PATH_TESTNET,
142+
crate::Network::Testnet | crate::Network::Regtest => {
143+
crate::dip9::IDENTITY_AUTHENTICATION_PATH_TESTNET
144+
}
141145
_ => return Err(Error::InvalidNetwork),
142146
};
143147

0 commit comments

Comments
 (0)