Browse Source

[Rules] More fixes for bitcoin cash addresses decoding

tags/2.6
Vsevolod Stakhov 3 years ago
parent
commit
456198fdac
1 changed files with 7 additions and 1 deletions
  1. 7
    1
      rules/bitcoin.lua

+ 7
- 1
rules/bitcoin.lua View File

@@ -145,7 +145,13 @@ local function is_segwit_bech32_address(word)
if decoded then
local bytes = decoded:bytes()

if bytes[1] == 0 then
-- The version byte’s most signficant bit is reserved and must be 0.
-- The 4 next bits indicate the type of address and the 3 least significant bits indicate the size of the hash.
local version = bit.band(bytes[1], 128)
local addr_type = bit.rshift(bit.band(bytes[1], 120), 3)
local _ = bit.band(bytes[1], 7) -- hash size

if version == 0 and (addr_type == 0 or addr_type == 8)then
-- TODO: Add checksum validation some day

return true

Loading…
Cancel
Save