Files
hush3/contrib/scripts/convert_address.py
dan_s a2647b106f Move 15 loose scripts from contrib/ root to contrib/scripts/
Consolidate all standalone utility scripts into contrib/scripts/:
- Perl: avg_blocktime.pl, block_time.pl, gen-zaddrs.pl, sda_checkpoints.pl,
  sdl_checkpoints.pl, hush_block_subsidy_per_halving, hush_halvings,
  hush_scanner, hush_supply, hush_supply_old
- Shell: fresh_clone_compile_and_run.sh, tidy_datadir.sh, dragonx_scanner
- Python: convert_address.py
- BAT: hush-uri.bat

Update path references in contrib/README.md, doc/OLD_WALLETS.md,
doc/relnotes/README.md, and sdl_checkpoints.pl.
2026-02-27 12:00:46 -06:00

31 lines
1.0 KiB
Python
Executable File

#!/usr/bin/env python3
# Copyright (c) 2019 Hush developers
# Released under the GPLv3
import sys
import base58
from binascii import unhexlify
from base58 import b58encode, b58decode_check
from hashlib import sha256
# based on https://github.com/KMDLabs/pos64staker/blob/master/stakerlib.py#L89
def addr_convert(prefix, address, prefix_bytes):
rmd160_dict = {}
# ZEC/HUSH/etc have 2 prefix bytes, BTC/KMD only have 1
# NOTE: any changes to this code should be verified against https://dexstats.info/addressconverter.php
ripemd = b58decode_check(address).hex()[2*prefix_bytes:]
net_byte = prefix + ripemd
bina = unhexlify(net_byte)
sha256a = sha256(bina).hexdigest()
binb = unhexlify(sha256a)
sha256b = sha256(binb).hexdigest()
final = b58encode(unhexlify(net_byte + sha256b[:8]))
return(final.decode())
if len(sys.argv) < 2:
sys.exit('Usage: %s hushv2address' % sys.argv[0])
address = sys.argv[1]
# convert given address to a KMD address
print(addr_convert('3c', address,2))