end
local function is_segwit_bech32_address(word)
+ local semicolon_pos = string.find(word, ':')
+ if semicolon_pos then
+ word = string.sub(word, semicolon_pos + 1)
+ end
+
local prefix = word:sub(1, 3)
if prefix == 'bc1' or prefix:sub(1, 1) == '1' or prefix:sub(1, 1) == '3' then
local rspamd_re = require "rspamd_regexp"
local btc_wallet_re = rspamd_re.create_cached('^[13LM][1-9A-Za-z]{25,34}$')
- local segwit_wallet_re = rspamd_re.create_cached('^(?:bc1|[13])?[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{14,}$', 'i')
+ local segwit_wallet_re = rspamd_re.create_cached('^(?:bc1|[13]|(?:[^:]*:))?[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{14,}$', 'i')
local words_matched = {}
local segwit_words_matched = {}
local valid_wallets = {}