|
|
|
#!/usr/bin/python
|
|
|
|
import codecs, grpc, os, sys, base64
|
|
|
|
from lndlibs import rpc_pb2 as ln
|
|
|
|
from lndlibs import rpc_pb2_grpc as lnrpc
|
|
|
|
|
|
|
|
# display config script info
|
|
|
|
if len(sys.argv) <= 1 or sys.argv[1] == "-h" or sys.argv[1] == "help":
|
|
|
|
print("# creating or recovering the LND wallet")
|
|
|
|
print("# lnd.winitwallet.py new [walletpassword] [?seedpassword]")
|
|
|
|
print("# lnd.winitwallet.py seed [walletpassword] [seedstring] [?seedpassword]")
|
|
|
|
print("# lnd.winitwallet.py scb [walletpassword] [seedstring] [filepathSCB] [?seedpassword]")
|
|
|
|
print("err='missing parameters'")
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
walletpassword=""
|
|
|
|
seedwords=""
|
|
|
|
seedpassword=""
|
|
|
|
filepathSCB=""
|
|
|
|
|
|
|
|
mode=sys.argv[1]
|
|
|
|
|
|
|
|
if mode=="new":
|
|
|
|
|
|
|
|
print("# *** CREATING NEW LND WALLET ***")
|
|
|
|
|
|
|
|
if len(sys.argv)>2:
|
|
|
|
walletpassword=sys.argv[2]
|
|
|
|
if len(walletpassword)<8:
|
|
|
|
print("err='wallet password is too short'")
|
|
|
|
sys.exit(1)
|
|
|
|
else:
|
|
|
|
print("err='wallet password is too short'")
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
if len(sys.argv)>3:
|
|
|
|
seedpassword=sys.argv[3]
|
|
|
|
|
|
|
|
elif mode=="seed":
|
|
|
|
|
|
|
|
print("err='TODO: implement creating from seed'")
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
elif mode=="scb":
|
|
|
|
|
|
|
|
print("err='TODO: implement creating from seed/scb'")
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
print("err='unkown mode parameter - run without any parameters to see options'")
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
os.environ['GRPC_SSL_CIPHER_SUITES'] = 'HIGH+ECDSA'
|
|
|
|
cert = open('/mnt/hdd/lnd/tls.cert', 'rb').read()
|
|
|
|
ssl_creds = grpc.ssl_channel_credentials(cert)
|
|
|
|
channel = grpc.secure_channel('localhost:10009', ssl_creds)
|
|
|
|
stub = lnrpc.WalletUnlockerStub(channel)
|
|
|
|
if mode=="new":
|
|
|
|
|
|
|
|
#request = ln.GenSeedRequest(
|
|
|
|
# aezeed_passphrase=<bytes>
|
|
|
|
#)
|
|
|
|
request = ln.GenSeedRequest()
|
|
|
|
response = stub.GenSeed(request)
|
|
|
|
print(response)
|
|
|
|
print(len(response.cipher_seed_mnemonic))
|
|
|
|
print(response.cipher_seed_mnemonic[1])
|
|
|
|
|
|
|
|
# TODO: do first https://api.lightning.community/#genseed
|
|
|
|
|
|
|
|
#request=False
|
|
|
|
#if len(seedpassword)>0:
|
|
|
|
# request = ln.InitWalletRequest(wallet_password=base64.b64encode(walletpassword.decode(),aezeed_passphrase=base64.b64encode(seedpassword).decode())
|
|
|
|
#else:
|
|
|
|
|
|
|
|
#request = ln.InitWalletRequest(
|
|
|
|
# wallet_password=walletpassword
|
|
|
|
#)
|
|
|
|
#response = stub.InitWallet(request)
|
|
|
|
#print(response)
|
|
|
|
|
|
|
|
elif mode=="seed":
|
|
|
|
|
|
|
|
print("err='TODO: implement creating from seed'")
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
elif mode=="scb":
|
|
|
|
|
|
|
|
print("err='TODO: implement creating from seed/scb'")
|
|
|
|
sys.exit(1)
|
|
|
|
|