Skip to content

Commit d7cd09b

Browse files
authored
Merge pull request DeFiCh#9 from DeFiCh/canonbrother/fix-wrong-prefix-addr-regtest
Fix wrong prefix addr
2 parents 3f4ba5c + 0b1cc01 commit d7cd09b

File tree

5 files changed

+107
-39
lines changed

5 files changed

+107
-39
lines changed

bitcoin/src/address/mod.rs

Lines changed: 75 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ use secp256k1::{Secp256k1, Verification, XOnlyPublicKey};
3939

4040
use crate::base58;
4141
use crate::blockdata::constants::{
42-
MAX_SCRIPT_ELEMENT_SIZE, PUBKEY_ADDRESS_PREFIX_MAIN, PUBKEY_ADDRESS_PREFIX_TEST,
43-
SCRIPT_ADDRESS_PREFIX_MAIN, SCRIPT_ADDRESS_PREFIX_TEST,
42+
MAX_SCRIPT_ELEMENT_SIZE, PUBKEY_ADDRESS_PREFIX_MAIN, PUBKEY_ADDRESS_PREFIX_REGTEST, PUBKEY_ADDRESS_PREFIX_TEST,
43+
SCRIPT_ADDRESS_PREFIX_MAIN, SCRIPT_ADDRESS_PREFIX_REGTEST, SCRIPT_ADDRESS_PREFIX_TEST,
4444
};
4545
use crate::blockdata::script::witness_program::WitnessProgram;
4646
use crate::blockdata::script::witness_version::WitnessVersion;
@@ -368,15 +368,17 @@ impl<V: NetworkValidation> Address<V> {
368368
fn fmt_internal(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
369369
let p2pkh_prefix = match self.network() {
370370
Network::Mainnet => PUBKEY_ADDRESS_PREFIX_MAIN,
371-
Network::Testnet | Network::Devnet | Network::Regtest => PUBKEY_ADDRESS_PREFIX_TEST,
371+
Network::Testnet | Network::Devnet | Network::Devnet => PUBKEY_ADDRESS_PREFIX_TEST,
372+
Network::Regtest => PUBKEY_ADDRESS_PREFIX_REGTEST,
372373
};
373374
let p2sh_prefix = match self.network() {
374375
Network::Mainnet => SCRIPT_ADDRESS_PREFIX_MAIN,
375-
Network::Testnet | Network::Devnet | Network::Regtest => SCRIPT_ADDRESS_PREFIX_TEST,
376+
Network::Testnet | Network::Devnet | Network::Devnet => SCRIPT_ADDRESS_PREFIX_TEST,
377+
Network::Regtest => SCRIPT_ADDRESS_PREFIX_REGTEST,
376378
};
377379
let hrp = match self.network() {
378-
Network::Mainnet => hrp::BC,
379-
Network::Testnet | Network::Devnet => hrp::TB,
380+
Network::Mainnet => Hrp::parse("df").unwrap(),
381+
Network::Testnet | Network::Devnet => Hrp::parse("tf").unwrap(),
380382
Network::Regtest => hrp::BCRT,
381383
};
382384
let encoding = AddressEncoding { payload: self.payload(), p2pkh_prefix, p2sh_prefix, hrp };
@@ -781,6 +783,10 @@ impl FromStr for Address<NetworkUnchecked> {
781783
(Network::Testnet, Payload::PubkeyHash(PubkeyHash::from_slice(&data[1..]).unwrap())),
782784
SCRIPT_ADDRESS_PREFIX_TEST =>
783785
(Network::Testnet, Payload::ScriptHash(ScriptHash::from_slice(&data[1..]).unwrap())),
786+
PUBKEY_ADDRESS_PREFIX_REGTEST =>
787+
(Network::Testnet, Payload::PubkeyHash(PubkeyHash::from_slice(&data[1..]).unwrap())),
788+
SCRIPT_ADDRESS_PREFIX_REGTEST =>
789+
(Network::Testnet, Payload::ScriptHash(ScriptHash::from_slice(&data[1..]).unwrap())),
784790
x => return Err(ParseError::Base58(base58::Error::InvalidAddressVersion(x))),
785791
};
786792

@@ -796,6 +802,58 @@ fn segwit_redeem_hash(pubkey_hash: &PubkeyHash) -> crate::hashes::hash160::Hash
796802
crate::hashes::hash160::Hash::from_engine(sha_engine)
797803
}
798804

805+
#[test]
806+
fn test_defi_addr() {
807+
// mainnet
808+
println!("mainnet");
809+
{
810+
let legacy = "8PTeJhFbLR6NFdbXbxMyPVbSHnADbvvBFR";
811+
let legacy = Address::from_str(legacy);
812+
println!("legacy: {:?}", legacy);
813+
814+
let p2sh = "dQgtBZ3rUe89p5xB37BY52ouchoq9eKeSU";
815+
let p2sh = Address::from_str(p2sh);
816+
println!("p2sh: {:?}", p2sh);
817+
818+
let bech32 = "df1q6qvx8rvw4lw6t7dhhvh25s7dm32yh75ufvzdxt";
819+
let bech32 = Address::from_str(bech32);
820+
println!("bech32: {:?}", bech32);
821+
}
822+
823+
// testnet
824+
println!("testnet");
825+
{
826+
let legacy = "73QYLGdMQp7dtsXEfDV5y1APSGDH5AaNpA";
827+
let legacy = Address::from_str(legacy);
828+
println!("legacy: {:?}", legacy);
829+
830+
let p2sh = "ttA5usesnEsseDa2UfRz3HqeDtwEmvMEhr";
831+
let p2sh = Address::from_str(p2sh);
832+
println!("p2sh: {:?}", p2sh);
833+
834+
let bech32 = "tf1qv73jmh3x9ydnzvwuhk739dq7fpquyun7msuppu";
835+
let bech32 = Address::from_str(bech32);
836+
println!("bech32: {:?}", bech32);
837+
}
838+
839+
// regtest
840+
println!("regtest");
841+
{
842+
let legacy = "mwjqFtKDbf8w8bRCLBxxjfyBfBNJcaBAdm";
843+
let legacy = Address::from_str(legacy);
844+
println!("legacy: {:?}", legacy);
845+
846+
let p2sh = "2NFb7jCNEJPz1CyBA6b97mENJPhm6qpfnKc";
847+
let p2sh = Address::from_str(p2sh);
848+
println!("p2sh: {:?}", p2sh);
849+
850+
let bech32 = "bcrt1qeq2g82kj99mqfvnwc2g5w0azzd298q0t84tc6s";
851+
let bech32 = Address::from_str(bech32);
852+
println!("bech32: {:?}", bech32);
853+
}
854+
}
855+
856+
799857
#[cfg(test)]
800858
mod tests {
801859
use core::str::FromStr;
@@ -805,7 +863,7 @@ mod tests {
805863

806864
use super::*;
807865
use crate::crypto::key::PublicKey;
808-
use crate::network::Network::{Bitcoin, Testnet};
866+
use crate::network::Network::{Mainnet, Testnet};
809867

810868
fn roundtrips(addr: &Address) {
811869
assert_eq!(
@@ -833,7 +891,7 @@ mod tests {
833891
#[test]
834892
fn test_p2pkh_address_58() {
835893
let addr = Address::new(
836-
Bitcoin,
894+
Mainnet,
837895
Payload::PubkeyHash("162c5ea71c0b23f5b9022ef047c4a86470a5b070".parse().unwrap()),
838896
);
839897

@@ -849,7 +907,7 @@ mod tests {
849907
#[test]
850908
fn test_p2pkh_from_key() {
851909
let key = "048d5141948c1702e8c95f438815794b87f706a8d4cd2bffad1dc1570971032c9b6042a0431ded2478b5c9cf2d81c124a5e57347a3c63ef0e7716cf54d613ba183".parse::<PublicKey>().unwrap();
852-
let addr = Address::p2pkh(&key, Bitcoin);
910+
let addr = Address::p2pkh(&key, Mainnet);
853911
assert_eq!(&addr.to_string(), "1QJVDzdqb1VpbDK7uDeyVXy9mR27CJiyhY");
854912

855913
let key = "03df154ebfcf29d29cc10d5c2565018bce2d9edbab267c31d2caf44a63056cf99f"
@@ -864,7 +922,7 @@ mod tests {
864922
#[test]
865923
fn test_p2sh_address_58() {
866924
let addr = Address::new(
867-
Bitcoin,
925+
Mainnet,
868926
Payload::ScriptHash("162c5ea71c0b23f5b9022ef047c4a86470a5b070".parse().unwrap()),
869927
);
870928

@@ -898,21 +956,21 @@ mod tests {
898956
let mut key = "033bc8c83c52df5712229a2f72206d90192366c36428cb0c12b6af98324d97bfbc"
899957
.parse::<PublicKey>()
900958
.unwrap();
901-
let addr = Address::p2wpkh(&key, Bitcoin).unwrap();
959+
let addr = Address::p2wpkh(&key, Mainnet).unwrap();
902960
assert_eq!(&addr.to_string(), "bc1qvzvkjn4q3nszqxrv3nraga2r822xjty3ykvkuw");
903961
assert_eq!(addr.address_type(), Some(AddressType::P2wpkh));
904962
roundtrips(&addr);
905963

906964
// Test uncompressed pubkey
907965
key.compressed = false;
908-
assert_eq!(Address::p2wpkh(&key, Bitcoin), Err(Error::UncompressedPubkey));
966+
assert_eq!(Address::p2wpkh(&key, Mainnet), Err(Error::UncompressedPubkey));
909967
}
910968

911969
#[test]
912970
fn test_p2wsh() {
913971
// stolen from Bitcoin transaction 5df912fda4becb1c29e928bec8d64d93e9ba8efa9b5b405bd683c86fd2c65667
914972
let script = ScriptBuf::from_hex("52210375e00eb72e29da82b89367947f29ef34afb75e8654f6ea368e0acdfd92976b7c2103a1b26313f430c4b15bb1fdce663207659d8cac749a0e53d70eff01874496feff2103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae").unwrap();
915-
let addr = Address::p2wsh(&script, Bitcoin);
973+
let addr = Address::p2wsh(&script, Mainnet);
916974
assert_eq!(
917975
&addr.to_string(),
918976
"bc1qwqdg6squsna38e46795at95yu9atm8azzmyvckulcc7kytlcckxswvvzej"
@@ -927,21 +985,21 @@ mod tests {
927985
let mut key = "026c468be64d22761c30cd2f12cbc7de255d592d7904b1bab07236897cc4c2e766"
928986
.parse::<PublicKey>()
929987
.unwrap();
930-
let addr = Address::p2shwpkh(&key, Bitcoin).unwrap();
988+
let addr = Address::p2shwpkh(&key, Mainnet).unwrap();
931989
assert_eq!(&addr.to_string(), "3QBRmWNqqBGme9er7fMkGqtZtp4gjMFxhE");
932990
assert_eq!(addr.address_type(), Some(AddressType::P2sh));
933991
roundtrips(&addr);
934992

935993
// Test uncompressed pubkey
936994
key.compressed = false;
937-
assert_eq!(Address::p2wpkh(&key, Bitcoin), Err(Error::UncompressedPubkey));
995+
assert_eq!(Address::p2wpkh(&key, Mainnet), Err(Error::UncompressedPubkey));
938996
}
939997

940998
#[test]
941999
fn test_p2shwsh() {
9421000
// stolen from Bitcoin transaction f9ee2be4df05041d0e0a35d7caa3157495ca4f93b233234c9967b6901dacf7a9
9431001
let script = ScriptBuf::from_hex("522103e5529d8eaa3d559903adb2e881eb06c86ac2574ffa503c45f4e942e2a693b33e2102e5f10fcdcdbab211e0af6a481f5532536ec61a5fdbf7183770cf8680fe729d8152ae").unwrap();
944-
let addr = Address::p2shwsh(&script, Bitcoin);
1002+
let addr = Address::p2shwsh(&script, Mainnet);
9451003
assert_eq!(&addr.to_string(), "36EqgNnsWW94SreZgBWc1ANC6wpFZwirHr");
9461004
assert_eq!(addr.address_type(), Some(AddressType::P2sh));
9471005
roundtrips(&addr);
@@ -954,7 +1012,7 @@ mod tests {
9541012
"654f6ea368e0acdfd92976b7c2103a1b26313f430654f6ea368e0acdfd92976b7c2103a1b26313f4"
9551013
);
9561014
let witness_prog = WitnessProgram::new(WitnessVersion::V13, program.to_vec()).unwrap();
957-
let addr = Address::new(Bitcoin, Payload::WitnessProgram(witness_prog));
1015+
let addr = Address::new(Mainnet, Payload::WitnessProgram(witness_prog));
9581016
roundtrips(&addr);
9591017
}
9601018

bitcoin/src/bip32.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -876,7 +876,7 @@ mod tests {
876876

877877
use super::ChildNumber::{Hardened, Normal};
878878
use super::*;
879-
use crate::network::Network::{self, Bitcoin};
879+
use crate::network::Network::{self, Mainnet};
880880

881881
#[test]
882882
fn test_parse_derivation_path() {
@@ -1052,32 +1052,32 @@ mod tests {
10521052
let seed = hex!("000102030405060708090a0b0c0d0e0f");
10531053

10541054
// m
1055-
test_path(&secp, Bitcoin, &seed, "m".parse().unwrap(),
1055+
test_path(&secp, Mainnet, &seed, "m".parse().unwrap(),
10561056
"xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi",
10571057
"xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8");
10581058

10591059
// m/0h
1060-
test_path(&secp, Bitcoin, &seed, "m/0h".parse().unwrap(),
1060+
test_path(&secp, Mainnet, &seed, "m/0h".parse().unwrap(),
10611061
"xprv9uHRZZhk6KAJC1avXpDAp4MDc3sQKNxDiPvvkX8Br5ngLNv1TxvUxt4cV1rGL5hj6KCesnDYUhd7oWgT11eZG7XnxHrnYeSvkzY7d2bhkJ7",
10621062
"xpub68Gmy5EdvgibQVfPdqkBBCHxA5htiqg55crXYuXoQRKfDBFA1WEjWgP6LHhwBZeNK1VTsfTFUHCdrfp1bgwQ9xv5ski8PX9rL2dZXvgGDnw");
10631063

10641064
// m/0h/1
1065-
test_path(&secp, Bitcoin, &seed, "m/0h/1".parse().unwrap(),
1065+
test_path(&secp, Mainnet, &seed, "m/0h/1".parse().unwrap(),
10661066
"xprv9wTYmMFdV23N2TdNG573QoEsfRrWKQgWeibmLntzniatZvR9BmLnvSxqu53Kw1UmYPxLgboyZQaXwTCg8MSY3H2EU4pWcQDnRnrVA1xe8fs",
10671067
"xpub6ASuArnXKPbfEwhqN6e3mwBcDTgzisQN1wXN9BJcM47sSikHjJf3UFHKkNAWbWMiGj7Wf5uMash7SyYq527Hqck2AxYysAA7xmALppuCkwQ");
10681068

10691069
// m/0h/1/2h
1070-
test_path(&secp, Bitcoin, &seed, "m/0h/1/2h".parse().unwrap(),
1070+
test_path(&secp, Mainnet, &seed, "m/0h/1/2h".parse().unwrap(),
10711071
"xprv9z4pot5VBttmtdRTWfWQmoH1taj2axGVzFqSb8C9xaxKymcFzXBDptWmT7FwuEzG3ryjH4ktypQSAewRiNMjANTtpgP4mLTj34bhnZX7UiM",
10721072
"xpub6D4BDPcP2GT577Vvch3R8wDkScZWzQzMMUm3PWbmWvVJrZwQY4VUNgqFJPMM3No2dFDFGTsxxpG5uJh7n7epu4trkrX7x7DogT5Uv6fcLW5");
10731073

10741074
// m/0h/1/2h/2
1075-
test_path(&secp, Bitcoin, &seed, "m/0h/1/2h/2".parse().unwrap(),
1075+
test_path(&secp, Mainnet, &seed, "m/0h/1/2h/2".parse().unwrap(),
10761076
"xprvA2JDeKCSNNZky6uBCviVfJSKyQ1mDYahRjijr5idH2WwLsEd4Hsb2Tyh8RfQMuPh7f7RtyzTtdrbdqqsunu5Mm3wDvUAKRHSC34sJ7in334",
10771077
"xpub6FHa3pjLCk84BayeJxFW2SP4XRrFd1JYnxeLeU8EqN3vDfZmbqBqaGJAyiLjTAwm6ZLRQUMv1ZACTj37sR62cfN7fe5JnJ7dh8zL4fiyLHV");
10781078

10791079
// m/0h/1/2h/2/1000000000
1080-
test_path(&secp, Bitcoin, &seed, "m/0h/1/2h/2/1000000000".parse().unwrap(),
1080+
test_path(&secp, Mainnet, &seed, "m/0h/1/2h/2/1000000000".parse().unwrap(),
10811081
"xprvA41z7zogVVwxVSgdKUHDy1SKmdb533PjDz7J6N6mV6uS3ze1ai8FHa8kmHScGpWmj4WggLyQjgPie1rFSruoUihUZREPSL39UNdE3BBDu76",
10821082
"xpub6H1LXWLaKsWFhvm6RVpEL9P4KfRZSW7abD2ttkWP3SSQvnyA8FSVqNTEcYFgJS2UaFcxupHiYkro49S8yGasTvXEYBVPamhGW6cFJodrTHy");
10831083
}
@@ -1088,32 +1088,32 @@ mod tests {
10881088
let seed = hex!("fffcf9f6f3f0edeae7e4e1dedbd8d5d2cfccc9c6c3c0bdbab7b4b1aeaba8a5a29f9c999693908d8a8784817e7b7875726f6c696663605d5a5754514e4b484542");
10891089

10901090
// m
1091-
test_path(&secp, Bitcoin, &seed, "m".parse().unwrap(),
1091+
test_path(&secp, Mainnet, &seed, "m".parse().unwrap(),
10921092
"xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U",
10931093
"xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB");
10941094

10951095
// m/0
1096-
test_path(&secp, Bitcoin, &seed, "m/0".parse().unwrap(),
1096+
test_path(&secp, Mainnet, &seed, "m/0".parse().unwrap(),
10971097
"xprv9vHkqa6EV4sPZHYqZznhT2NPtPCjKuDKGY38FBWLvgaDx45zo9WQRUT3dKYnjwih2yJD9mkrocEZXo1ex8G81dwSM1fwqWpWkeS3v86pgKt",
10981098
"xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH");
10991099

11001100
// m/0/2147483647h
1101-
test_path(&secp, Bitcoin, &seed, "m/0/2147483647h".parse().unwrap(),
1101+
test_path(&secp, Mainnet, &seed, "m/0/2147483647h".parse().unwrap(),
11021102
"xprv9wSp6B7kry3Vj9m1zSnLvN3xH8RdsPP1Mh7fAaR7aRLcQMKTR2vidYEeEg2mUCTAwCd6vnxVrcjfy2kRgVsFawNzmjuHc2YmYRmagcEPdU9",
11031103
"xpub6ASAVgeehLbnwdqV6UKMHVzgqAG8Gr6riv3Fxxpj8ksbH9ebxaEyBLZ85ySDhKiLDBrQSARLq1uNRts8RuJiHjaDMBU4Zn9h8LZNnBC5y4a");
11041104

11051105
// m/0/2147483647h/1
1106-
test_path(&secp, Bitcoin, &seed, "m/0/2147483647h/1".parse().unwrap(),
1106+
test_path(&secp, Mainnet, &seed, "m/0/2147483647h/1".parse().unwrap(),
11071107
"xprv9zFnWC6h2cLgpmSA46vutJzBcfJ8yaJGg8cX1e5StJh45BBciYTRXSd25UEPVuesF9yog62tGAQtHjXajPPdbRCHuWS6T8XA2ECKADdw4Ef",
11081108
"xpub6DF8uhdarytz3FWdA8TvFSvvAh8dP3283MY7p2V4SeE2wyWmG5mg5EwVvmdMVCQcoNJxGoWaU9DCWh89LojfZ537wTfunKau47EL2dhHKon");
11091109

11101110
// m/0/2147483647h/1/2147483646h
1111-
test_path(&secp, Bitcoin, &seed, "m/0/2147483647h/1/2147483646h".parse().unwrap(),
1111+
test_path(&secp, Mainnet, &seed, "m/0/2147483647h/1/2147483646h".parse().unwrap(),
11121112
"xprvA1RpRA33e1JQ7ifknakTFpgNXPmW2YvmhqLQYMmrj4xJXXWYpDPS3xz7iAxn8L39njGVyuoseXzU6rcxFLJ8HFsTjSyQbLYnMpCqE2VbFWc",
11131113
"xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL");
11141114

11151115
// m/0/2147483647h/1/2147483646h/2
1116-
test_path(&secp, Bitcoin, &seed, "m/0/2147483647h/1/2147483646h/2".parse().unwrap(),
1116+
test_path(&secp, Mainnet, &seed, "m/0/2147483647h/1/2147483646h/2".parse().unwrap(),
11171117
"xprvA2nrNbFZABcdryreWet9Ea4LvTJcGsqrMzxHx98MMrotbir7yrKCEXw7nadnHM8Dq38EGfSh6dqA9QWTyefMLEcBYJUuekgW4BYPJcr9E7j",
11181118
"xpub6FnCn6nSzZAw5Tw7cgR9bi15UV96gLZhjDstkXXxvCLsUXBGXPdSnLFbdpq8p9HmGsApME5hQTZ3emM2rnY5agb9rXpVGyy3bdW6EEgAtqt");
11191119
}
@@ -1124,12 +1124,12 @@ mod tests {
11241124
let seed = hex!("4b381541583be4423346c643850da4b320e46a87ae3d2a4e6da11eba819cd4acba45d239319ac14f863b8d5ab5a0d0c64d2e8a1e7d1457df2e5a3c51c73235be");
11251125

11261126
// m
1127-
test_path(&secp, Bitcoin, &seed, "m".parse().unwrap(),
1127+
test_path(&secp, Mainnet, &seed, "m".parse().unwrap(),
11281128
"xprv9s21ZrQH143K25QhxbucbDDuQ4naNntJRi4KUfWT7xo4EKsHt2QJDu7KXp1A3u7Bi1j8ph3EGsZ9Xvz9dGuVrtHHs7pXeTzjuxBrCmmhgC6",
11291129
"xpub661MyMwAqRbcEZVB4dScxMAdx6d4nFc9nvyvH3v4gJL378CSRZiYmhRoP7mBy6gSPSCYk6SzXPTf3ND1cZAceL7SfJ1Z3GC8vBgp2epUt13");
11301130

11311131
// m/0h
1132-
test_path(&secp, Bitcoin, &seed, "m/0h".parse().unwrap(),
1132+
test_path(&secp, Mainnet, &seed, "m/0h".parse().unwrap(),
11331133
"xprv9uPDJpEQgRQfDcW7BkF7eTya6RPxXeJCqCJGHuCJ4GiRVLzkTXBAJMu2qaMWPrS7AANYqdq6vcBcBUdJCVVFceUvJFjaPdGZ2y9WACViL4L",
11341134
"xpub68NZiKmJWnxxS6aaHmn81bvJeTESw724CRDs6HbuccFQN9Ku14VQrADWgqbhhTHBaohPX4CjNLf9fq9MYo6oDaPPLPxSb7gwQN3ih19Zm4Y");
11351135
}

bitcoin/src/blockdata/constants.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,28 @@ pub const DIFFCHANGE_TIMESPAN: u32 = 14 * 24 * 3600;
3636
pub const WITNESS_SCALE_FACTOR: usize = 4;
3737
/// The maximum allowed number of signature check operations in a block.
3838
pub const MAX_BLOCK_SIGOPS_COST: i64 = 80_000;
39+
3940
/// Mainnet (bitcoin) pubkey address prefix.
4041
// pub const PUBKEY_ADDRESS_PREFIX_MAIN: u8 = 0; // 0x00
41-
pub const PUBKEY_ADDRESS_PREFIX_MAIN: u8 = 18; // 0x12 (defichain)
42+
pub const PUBKEY_ADDRESS_PREFIX_MAIN: u8 = 18; // 0x12 (defichain mainnet)
43+
4244
/// Mainnet (bitcoin) script address prefix.
4345
// pub const SCRIPT_ADDRESS_PREFIX_MAIN: u8 = 5; // 0x05
44-
pub const SCRIPT_ADDRESS_PREFIX_MAIN: u8 = 90; // 0x5a (defichain)
46+
pub const SCRIPT_ADDRESS_PREFIX_MAIN: u8 = 90; // 0x5a (defichain mainnet)
47+
4548
/// Test (tesnet, signet, regtest) pubkey address prefix.
4649
// pub const PUBKEY_ADDRESS_PREFIX_TEST: u8 = 111; // 0x6f
47-
pub const PUBKEY_ADDRESS_PREFIX_TEST: u8 = 15; // 0xf (defichain)
50+
pub const PUBKEY_ADDRESS_PREFIX_TEST: u8 = 15; // 0xf (defichain testnet, devnet, changi)
51+
4852
/// Test (tesnet, signet, regtest) script address prefix.
4953
// pub const SCRIPT_ADDRESS_PREFIX_TEST: u8 = 196; // 0xc4
50-
pub const SCRIPT_ADDRESS_PREFIX_TEST: u8 = 128; // 0x80 (defichain)
54+
pub const SCRIPT_ADDRESS_PREFIX_TEST: u8 = 128; // 0x80 (defichain testnet, devnet changi)
55+
56+
/// Regtest pubkey address prefix.
57+
pub const PUBKEY_ADDRESS_PREFIX_REGTEST: u8 = 111; // 0x6f (defichain regtest)
58+
/// Regtest script address prefix.
59+
pub const SCRIPT_ADDRESS_PREFIX_REGTEST: u8 = 196; // 0xc4 (defichain regtest)
60+
5161
/// The maximum allowed script size.
5262
pub const MAX_SCRIPT_ELEMENT_SIZE: usize = 520;
5363
/// How may blocks between halvings.

bitcoin/src/crypto/key.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,7 @@ mod tests {
773773

774774
use super::*;
775775
use crate::address::Address;
776-
use crate::network::Network::{Bitcoin, Testnet};
776+
use crate::network::Network::{Mainnet, Testnet};
777777

778778
#[test]
779779
fn test_key_derivation() {
@@ -797,7 +797,7 @@ mod tests {
797797
// mainnet uncompressed
798798
let sk =
799799
PrivateKey::from_wif("5JYkZjmN7PVMjJUfJWfRFwtuXTGB439XV6faajeHPAM9Z2PT2R3").unwrap();
800-
assert_eq!(sk.network, Bitcoin);
800+
assert_eq!(sk.network, Mainnet);
801801
assert!(!sk.compressed);
802802
assert_eq!(&sk.to_wif(), "5JYkZjmN7PVMjJUfJWfRFwtuXTGB439XV6faajeHPAM9Z2PT2R3");
803803

bitcoin/src/psbt/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1153,7 +1153,7 @@ mod tests {
11531153

11541154
let mut hd_keypaths: BTreeMap<secp256k1::PublicKey, KeySource> = Default::default();
11551155

1156-
let mut sk: Xpriv = Xpriv::new_master(Bitcoin, &seed).unwrap();
1156+
let mut sk: Xpriv = Xpriv::new_master(Mainnet, &seed).unwrap();
11571157

11581158
let fprint = sk.fingerprint(secp);
11591159

0 commit comments

Comments
 (0)