1#!/usr/bin/env python3
2
3#   Convert Address - convert Bitcoin to Namecoin addresses
4#   Copyright (C) 2016-2019  Daniel Kraft <d@domob.eu>
5#
6#   This program is free software: you can redistribute it and/or modify
7#   it under the terms of the GNU Affero General Public License as published by
8#   the Free Software Foundation, either version 3 of the License, or
9#   (at your option) any later version.
10#
11#   This program is distributed in the hope that it will be useful,
12#   but WITHOUT ANY WARRANTY; without even the implied warranty of
13#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14#   GNU Affero General Public License for more details.
15#
16#   You should have received a copy of the GNU Affero General Public License
17#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19import argparse
20import sys
21
22from bitcoin import b58check_to_hex, hex_to_b58check
23
24parser = argparse.ArgumentParser ()
25parser.add_argument ("--address", required=True,
26                     help="the address to convert")
27parser.add_argument ("--magic-byte", dest="magic", default=52, type=int,
28                     help="the target 'magic' version byte")
29parser.add_argument ("--update-file", dest="updatefile", default="",
30                     help="if set, replace all occurances in the given file")
31args = parser.parse_args ()
32
33keyHex = b58check_to_hex (args.address)
34newAddr = hex_to_b58check (keyHex, args.magic)
35print (newAddr)
36
37if args.updatefile != "":
38  with open (args.updatefile, "r") as f:
39    lines = f.readlines ()
40  with open (args.updatefile, "w") as f:
41    for l in lines:
42      f.write (str.replace (l, args.address, newAddr))
43