86 lines
2.7 KiB
Python
Executable file
86 lines
2.7 KiB
Python
Executable file
from core import *
|
|
|
|
# show help
|
|
if 'help' == sys.argv[1].lower():
|
|
print("Generates 1 or more number of wallet keystores and optionally displays their private keys.\n")
|
|
print("Example Usage:")
|
|
command = "python {}".format(sys.argv[0])
|
|
examples = ['--create', '--create 1', '--create 1 --show-private-keys', '--show-private-keys 0x1234567891234567891234567891234567891234']
|
|
for e in examples:
|
|
print("{} {}".format(command, e))
|
|
sys.exit()
|
|
|
|
# make sure you have a unique secrets
|
|
secret = os.getenv('SECRET')
|
|
if secret == 'changeme' or not secret:
|
|
print('Change your secret in .env')
|
|
sys.exit()
|
|
|
|
# display private key arg to add to metamask/rabby
|
|
if "--show-private-keys" in sys.argv:
|
|
public_key_index = sys.argv.index("--show-private-keys")
|
|
show_private_key = True
|
|
elif "-s" in sys.argv:
|
|
public_key_index = sys.argv.index("-s")
|
|
show_private_key = True
|
|
else:
|
|
public_key_index = None
|
|
show_private_key = False
|
|
|
|
# create specified number of wallets arg
|
|
if "--create" in sys.argv or "-c" in sys.argv:
|
|
if "--create" in sys.argv:
|
|
amount_index = sys.argv.index("--create")
|
|
else:
|
|
amount_index = sys.argv.index("-c")
|
|
|
|
try:
|
|
amount = sys.argv[amount_index + 1]
|
|
except IndexError:
|
|
arg = sys.argv[amount_index].split('=')
|
|
if len(arg) == 1 or not arg[1].isnumeric():
|
|
amount = 1
|
|
else:
|
|
amount = arg[1]
|
|
if not str(amount).isnumeric():
|
|
print("Invalid amount")
|
|
sys.exit()
|
|
else:
|
|
amount = int(amount)
|
|
else:
|
|
amount = 0
|
|
|
|
# create new wallets
|
|
if amount:
|
|
# generate X wallets based on sys.argv
|
|
wallets = generate_wallet(int(amount))
|
|
print("\nGenerated {} wallets\n".format(amount))
|
|
# display the generated wallet's keys
|
|
for wallet in wallets:
|
|
print("Public Key: {}".format(wallet.address))
|
|
if show_private_key:
|
|
print("Private Key: {}\n".format(wallet.key.hex()))
|
|
|
|
# show private keys only
|
|
elif show_private_key:
|
|
wallet_address = None
|
|
try:
|
|
wallet_address = sys.argv[public_key_index + 1]
|
|
except IndexError:
|
|
arg = sys.argv[public_key_index].split('=')
|
|
if len(arg) > 1:
|
|
wallet_address = arg[1]
|
|
else:
|
|
print("Not enough args")
|
|
sys.exit()
|
|
|
|
try:
|
|
wallet_address = web3.to_checksum_address(wallet_address)
|
|
except ValueError:
|
|
print("Invalid wallet address {}".format(wallet_address))
|
|
else:
|
|
print("\nPublic Key: {}".format(wallet_address))
|
|
wallet = load_wallet(wallet_address, secret)
|
|
print("Private Key: {}".format(wallet.key.hex()))
|
|
print("PLS Balance: {}".format(get_pls_balance(wallet_address)))
|
|
print()
|