@@ -1709,16 +1709,7 @@ DisconnectResult CChainState::DisconnectBlock(const CBlock& block, const CBlockI
17091709 uint8_t address_type{0 };
17101710 uint160 address_bytes;
17111711
1712- if (out.scriptPubKey .IsPayToScriptHash ()) {
1713- address_type = AddressType::P2SH;
1714- address_bytes = uint160 (TrimScriptP2SH (out.scriptPubKey ));
1715- } else if (out.scriptPubKey .IsPayToPublicKeyHash ()) {
1716- address_type = AddressType::P2PKH;
1717- address_bytes = uint160 (TrimScriptP2PKH (out.scriptPubKey ));
1718- } else if (out.scriptPubKey .IsPayToPublicKey ()) {
1719- address_type = AddressType::P2PK;
1720- address_bytes = Hash160 (TrimScriptP2PK (out.scriptPubKey ));
1721- } else {
1712+ if (!AddressBytesFromScript (out.scriptPubKey , address_type, address_bytes)) {
17221713 continue ;
17231714 }
17241715
@@ -1771,16 +1762,7 @@ DisconnectResult CChainState::DisconnectBlock(const CBlock& block, const CBlockI
17711762 uint8_t address_type{0 };
17721763 uint160 address_bytes;
17731764
1774- if (prevout.scriptPubKey .IsPayToScriptHash ()) {
1775- address_type = AddressType::P2SH;
1776- address_bytes = uint160 (TrimScriptP2SH (prevout.scriptPubKey ));
1777- } else if (prevout.scriptPubKey .IsPayToPublicKeyHash ()) {
1778- address_type = AddressType::P2PKH;
1779- address_bytes = uint160 (TrimScriptP2PKH (prevout.scriptPubKey ));
1780- } else if (prevout.scriptPubKey .IsPayToPublicKey ()) {
1781- address_type = AddressType::P2PK;
1782- address_bytes = Hash160 (TrimScriptP2PK (prevout.scriptPubKey ));
1783- } else {
1765+ if (!AddressBytesFromScript (prevout.scriptPubKey , address_type, address_bytes)) {
17841766 continue ;
17851767 }
17861768
@@ -2245,19 +2227,7 @@ bool CChainState::ConnectBlock(const CBlock& block, BlockValidationState& state,
22452227 uint8_t address_type{0 };
22462228 uint160 address_bytes;
22472229
2248- if (prevout.scriptPubKey .IsPayToScriptHash ()) {
2249- address_type = AddressType::P2SH;
2250- address_bytes = uint160 (TrimScriptP2SH (prevout.scriptPubKey ));
2251- } else if (prevout.scriptPubKey .IsPayToPublicKeyHash ()) {
2252- address_type = AddressType::P2PKH;
2253- address_bytes = uint160 (TrimScriptP2PKH (prevout.scriptPubKey ));
2254- } else if (prevout.scriptPubKey .IsPayToPublicKey ()) {
2255- address_type = AddressType::P2PK;
2256- address_bytes = Hash160 (TrimScriptP2PK (prevout.scriptPubKey ));
2257- } else {
2258- address_type = AddressType::UNKNOWN;
2259- address_bytes.SetNull ();
2260- }
2230+ AddressBytesFromScript (prevout.scriptPubKey , address_type, address_bytes);
22612231
22622232 if (fAddressIndex && address_type != AddressType::UNKNOWN) {
22632233 // record spending activity
@@ -2311,16 +2281,7 @@ bool CChainState::ConnectBlock(const CBlock& block, BlockValidationState& state,
23112281 uint8_t address_type{0 };
23122282 uint160 address_bytes;
23132283
2314- if (out.scriptPubKey .IsPayToScriptHash ()) {
2315- address_type = AddressType::P2SH;
2316- address_bytes = uint160 (TrimScriptP2SH (out.scriptPubKey ));
2317- } else if (out.scriptPubKey .IsPayToPublicKeyHash ()) {
2318- address_type = AddressType::P2PKH;
2319- address_bytes = uint160 (TrimScriptP2PKH (out.scriptPubKey ));
2320- } else if (out.scriptPubKey .IsPayToPublicKey ()) {
2321- address_type = AddressType::P2PK;
2322- address_bytes = Hash160 (TrimScriptP2PK (out.scriptPubKey ));
2323- } else {
2284+ if (!AddressBytesFromScript (out.scriptPubKey , address_type, address_bytes)) {
23242285 continue ;
23252286 }
23262287
@@ -4847,19 +4808,7 @@ bool CChainState::RollforwardBlock(const CBlockIndex* pindex, CCoinsViewCache& i
48474808 uint8_t address_type{0 };
48484809 uint160 address_bytes;
48494810
4850- if (prevout.scriptPubKey .IsPayToScriptHash ()) {
4851- address_type = AddressType::P2SH;
4852- address_bytes = uint160 (TrimScriptP2SH (prevout.scriptPubKey ));
4853- } else if (prevout.scriptPubKey .IsPayToPublicKeyHash ()) {
4854- address_type = AddressType::P2PKH;
4855- address_bytes = uint160 (TrimScriptP2PKH (prevout.scriptPubKey ));
4856- } else if (prevout.scriptPubKey .IsPayToPublicKey ()) {
4857- address_type = AddressType::P2PK;
4858- address_bytes = Hash160 (TrimScriptP2PK (prevout.scriptPubKey ));
4859- } else {
4860- address_type = AddressType::UNKNOWN;
4861- address_bytes.SetNull ();
4862- }
4811+ AddressBytesFromScript (prevout.scriptPubKey , address_type, address_bytes);
48634812
48644813 if (fAddressIndex && address_type != AddressType::UNKNOWN) {
48654814 // record spending activity
@@ -4884,16 +4833,7 @@ bool CChainState::RollforwardBlock(const CBlockIndex* pindex, CCoinsViewCache& i
48844833 uint8_t address_type{0 };
48854834 uint160 address_bytes;
48864835
4887- if (out.scriptPubKey .IsPayToScriptHash ()) {
4888- address_type = AddressType::P2SH;
4889- address_bytes = uint160 (TrimScriptP2SH (out.scriptPubKey ));
4890- } else if (out.scriptPubKey .IsPayToPublicKeyHash ()) {
4891- address_type = AddressType::P2PKH;
4892- address_bytes = uint160 (TrimScriptP2PKH (out.scriptPubKey ));
4893- } else if (out.scriptPubKey .IsPayToPublicKey ()) {
4894- address_type = AddressType::P2PK;
4895- address_bytes = Hash160 (TrimScriptP2PK (out.scriptPubKey ));
4896- } else {
4836+ if (!AddressBytesFromScript (out.scriptPubKey , address_type, address_bytes)) {
48974837 continue ;
48984838 }
48994839
0 commit comments