mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-05 14:06:27 -05:00
use 'byte'/'bytes' for bech32(m) validation error
changed from std::string -> std::string_view applied snake case to byteStr -> byte_str
This commit is contained in:
parent
a13f3746dc
commit
3d0a5c37e9
3 changed files with 11 additions and 8 deletions
|
@ -146,6 +146,9 @@ CTxDestination DecodeDestination(const std::string& str, const CChainParams& par
|
||||||
// The rest of the symbols are converted witness program bytes.
|
// The rest of the symbols are converted witness program bytes.
|
||||||
data.reserve(((dec.data.size() - 1) * 5) / 8);
|
data.reserve(((dec.data.size() - 1) * 5) / 8);
|
||||||
if (ConvertBits<5, 8, false>([&](unsigned char c) { data.push_back(c); }, dec.data.begin() + 1, dec.data.end())) {
|
if (ConvertBits<5, 8, false>([&](unsigned char c) { data.push_back(c); }, dec.data.begin() + 1, dec.data.end())) {
|
||||||
|
|
||||||
|
std::string_view byte_str{data.size() == 1 ? "byte" : "bytes"};
|
||||||
|
|
||||||
if (version == 0) {
|
if (version == 0) {
|
||||||
{
|
{
|
||||||
WitnessV0KeyHash keyid;
|
WitnessV0KeyHash keyid;
|
||||||
|
@ -162,7 +165,7 @@ CTxDestination DecodeDestination(const std::string& str, const CChainParams& par
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
error_str = strprintf("Invalid Bech32 v0 address program size (%s byte), per BIP141", data.size());
|
error_str = strprintf("Invalid Bech32 v0 address program size (%d %s), per BIP141", data.size(), byte_str);
|
||||||
return CNoDestination();
|
return CNoDestination();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +182,7 @@ CTxDestination DecodeDestination(const std::string& str, const CChainParams& par
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.size() < 2 || data.size() > BECH32_WITNESS_PROG_MAX_LEN) {
|
if (data.size() < 2 || data.size() > BECH32_WITNESS_PROG_MAX_LEN) {
|
||||||
error_str = strprintf("Invalid Bech32 address program size (%s byte)", data.size());
|
error_str = strprintf("Invalid Bech32 address program size (%d %s)", data.size(), byte_str);
|
||||||
return CNoDestination();
|
return CNoDestination();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,12 +63,12 @@ class InvalidAddressErrorMessageTest(BitcoinTestFramework):
|
||||||
|
|
||||||
def test_validateaddress(self):
|
def test_validateaddress(self):
|
||||||
# Invalid Bech32
|
# Invalid Bech32
|
||||||
self.check_invalid(BECH32_INVALID_SIZE, "Invalid Bech32 address program size (41 byte)")
|
self.check_invalid(BECH32_INVALID_SIZE, "Invalid Bech32 address program size (41 bytes)")
|
||||||
self.check_invalid(BECH32_INVALID_PREFIX, 'Invalid or unsupported Segwit (Bech32) or Base58 encoding.')
|
self.check_invalid(BECH32_INVALID_PREFIX, 'Invalid or unsupported Segwit (Bech32) or Base58 encoding.')
|
||||||
self.check_invalid(BECH32_INVALID_BECH32, 'Version 1+ witness address must use Bech32m checksum')
|
self.check_invalid(BECH32_INVALID_BECH32, 'Version 1+ witness address must use Bech32m checksum')
|
||||||
self.check_invalid(BECH32_INVALID_BECH32M, 'Version 0 witness address must use Bech32 checksum')
|
self.check_invalid(BECH32_INVALID_BECH32M, 'Version 0 witness address must use Bech32 checksum')
|
||||||
self.check_invalid(BECH32_INVALID_VERSION, 'Invalid Bech32 address witness version')
|
self.check_invalid(BECH32_INVALID_VERSION, 'Invalid Bech32 address witness version')
|
||||||
self.check_invalid(BECH32_INVALID_V0_SIZE, "Invalid Bech32 v0 address program size (21 byte), per BIP141")
|
self.check_invalid(BECH32_INVALID_V0_SIZE, "Invalid Bech32 v0 address program size (21 bytes), per BIP141")
|
||||||
self.check_invalid(BECH32_TOO_LONG, 'Bech32 string too long', list(range(90, 108)))
|
self.check_invalid(BECH32_TOO_LONG, 'Bech32 string too long', list(range(90, 108)))
|
||||||
self.check_invalid(BECH32_ONE_ERROR, 'Invalid Bech32 checksum', [9])
|
self.check_invalid(BECH32_ONE_ERROR, 'Invalid Bech32 checksum', [9])
|
||||||
self.check_invalid(BECH32_TWO_ERRORS, 'Invalid Bech32 checksum', [22, 43])
|
self.check_invalid(BECH32_TWO_ERRORS, 'Invalid Bech32 checksum', [22, 43])
|
||||||
|
@ -105,7 +105,7 @@ class InvalidAddressErrorMessageTest(BitcoinTestFramework):
|
||||||
def test_getaddressinfo(self):
|
def test_getaddressinfo(self):
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
|
|
||||||
assert_raises_rpc_error(-5, "Invalid Bech32 address program size (41 byte)", node.getaddressinfo, BECH32_INVALID_SIZE)
|
assert_raises_rpc_error(-5, "Invalid Bech32 address program size (41 bytes)", node.getaddressinfo, BECH32_INVALID_SIZE)
|
||||||
assert_raises_rpc_error(-5, "Invalid or unsupported Segwit (Bech32) or Base58 encoding.", node.getaddressinfo, BECH32_INVALID_PREFIX)
|
assert_raises_rpc_error(-5, "Invalid or unsupported Segwit (Bech32) or Base58 encoding.", node.getaddressinfo, BECH32_INVALID_PREFIX)
|
||||||
assert_raises_rpc_error(-5, "Invalid or unsupported Base58-encoded address.", node.getaddressinfo, BASE58_INVALID_PREFIX)
|
assert_raises_rpc_error(-5, "Invalid or unsupported Base58-encoded address.", node.getaddressinfo, BASE58_INVALID_PREFIX)
|
||||||
assert_raises_rpc_error(-5, "Invalid or unsupported Segwit (Bech32) or Base58 encoding.", node.getaddressinfo, INVALID_ADDRESS)
|
assert_raises_rpc_error(-5, "Invalid or unsupported Segwit (Bech32) or Base58 encoding.", node.getaddressinfo, INVALID_ADDRESS)
|
||||||
|
|
|
@ -33,7 +33,7 @@ INVALID_DATA = [
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"BC1QR508D6QEJXTDG4Y5R3ZARVARYV98GJ9P",
|
"BC1QR508D6QEJXTDG4Y5R3ZARVARYV98GJ9P",
|
||||||
"Invalid Bech32 v0 address program size (16 byte), per BIP141",
|
"Invalid Bech32 v0 address program size (16 bytes), per BIP141",
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
|
@ -101,12 +101,12 @@ INVALID_DATA = [
|
||||||
("bc1pw5dgrnzv", "Invalid Bech32 address program size (1 byte)", []),
|
("bc1pw5dgrnzv", "Invalid Bech32 address program size (1 byte)", []),
|
||||||
(
|
(
|
||||||
"bc1p0xlxvlhemja6c4dqv22uapctqupfhlxm9h8z3k2e72q4k9hcz7v8n0nx0muaewav253zgeav",
|
"bc1p0xlxvlhemja6c4dqv22uapctqupfhlxm9h8z3k2e72q4k9hcz7v8n0nx0muaewav253zgeav",
|
||||||
"Invalid Bech32 address program size (41 byte)",
|
"Invalid Bech32 address program size (41 bytes)",
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"BC1QR508D6QEJXTDG4Y5R3ZARVARYV98GJ9P",
|
"BC1QR508D6QEJXTDG4Y5R3ZARVARYV98GJ9P",
|
||||||
"Invalid Bech32 v0 address program size (16 byte), per BIP141",
|
"Invalid Bech32 v0 address program size (16 bytes), per BIP141",
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
|
|
Loading…
Add table
Reference in a new issue