Skip to content

Commit cc72e5b

Browse files
committed
fix: SPV Regtest support
1 parent 47a926c commit cc72e5b

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed

dash/src/blockdata/constants.rs

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

8484
// Inputs
8585
// Using raw script bytes to avoid push_slice issues
86+
// Message: "Wired 09/Jan/2014 The Grand Experiment Goes Live: Overstock.com Is Now Accepting Bitcoins"
8687
let in_script = script::ScriptBuf::from(hex!(
87-
"04ffff001d01044c5957697265642030392f4a616e2f32303134205468652047726e64204578706572696d656e7420476f6573204c6976653a204f76657273746f636b2e636f6d204973204e6f7720416363657074696e6720426974636f696e73"
88+
"04ffff001d01044c5957697265642030392f4a616e2f3230313420546865204772616e64204578706572696d656e7420476f6573204c6976653a204f76657273746f636b2e636f6d204973204e6f7720416363657074696e6720426974636f696e73"
8889
).to_vec());
8990
ret.input.push(TxIn {
9091
previous_output: OutPoint::null(),
@@ -172,9 +173,9 @@ pub fn genesis_block(network: Network) -> Block {
172173
version: block::Version::ONE,
173174
prev_blockhash: Hash::all_zeros(),
174175
merkle_root,
175-
time: 1296688602,
176+
time: 1417713337,
176177
bits: CompactTarget::from_consensus(0x207fffff),
177-
nonce: 2,
178+
nonce: 1096447,
178179
},
179180
txdata,
180181
}
@@ -211,10 +212,11 @@ impl ChainHash {
211212
0x16, 0x7b,
212213
]);
213214
/// `ChainHash` for regtest dash.
215+
/// Genesis hash: 000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e
214216
pub const REGTEST: Self = Self([
215-
0x53, 0xb3, 0xed, 0x30, 0x30, 0x78, 0x1a, 0xc1, 0x9e, 0x48, 0x52, 0xd9, 0xc5, 0x8f, 0x28,
216-
0x04, 0x57, 0x4f, 0x98, 0x66, 0xf3, 0xf7, 0xf6, 0x91, 0x31, 0xee, 0xb1, 0x3f, 0x44, 0x9f,
217-
0x80, 0x07,
217+
0x00, 0x00, 0x08, 0xca, 0x18, 0x32, 0xa4, 0xba, 0xf2, 0x28, 0xeb, 0x15, 0x53, 0xc0, 0x3d,
218+
0x3a, 0x2c, 0x8e, 0x02, 0x39, 0x95, 0x50, 0xdd, 0x6e, 0xa8, 0xd6, 0x5c, 0xec, 0x3e, 0xf2,
219+
0x3d, 0x2e,
218220
]);
219221

220222
/// Returns the hash of the `network` genesis block for use as a chain hash.

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)