54 lines
1.9 KiB
Python
Executable File
54 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import sys, argparse, os
|
|
from os.path import join, dirname
|
|
from shutil import copyfile
|
|
from dotenv import load_dotenv
|
|
from lib.paylib import Transaction
|
|
|
|
VERSION = "0.1.1"
|
|
|
|
# Get variables environment
|
|
if not os.path.isfile('.env'):
|
|
copyfile(".env.template", ".env")
|
|
dotenv_path = join(dirname(__file__), '.env')
|
|
load_dotenv(dotenv_path)
|
|
|
|
dunikey = os.getenv('DUNIKEY')
|
|
node = os.getenv('NODE')
|
|
if not dunikey or not node:
|
|
sys.stderr.write("Please fill the path of your private key (PubSec), and a Duniter node in .env file\n")
|
|
sys.exit(1)
|
|
|
|
# Parse arguments
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('-d', '--destinataire', help="Destinataire du paiement")
|
|
parser.add_argument('-m', '--montant', type=float, help="Montant de la transaction")
|
|
parser.add_argument('-c', '--commentaire', default="", help="Commentaire de la transaction")
|
|
parser.add_argument('-n', '--node', help="Sélection d'un noeud Duniter à utiliser")
|
|
parser.add_argument('-k', '--key', help="Chemin vers notre fichier de trousseau (PubSec)")
|
|
parser.add_argument('--mempool', action='store_true', help="Utilise les sources en Mempool")
|
|
parser.add_argument('-v', '--verbose', action='store_true', help="Affiche le résultat JSON de la transaction")
|
|
parser.add_argument('--version', action='store_true', help="Affiche la version actuelle du programme")
|
|
args = parser.parse_args()
|
|
|
|
if args.version:
|
|
print(VERSION)
|
|
sys.exit(0)
|
|
|
|
if not args.destinataire or not args.montant:
|
|
print("Veuillez renseigner la clé publique du destinataire, ainsi que le montant de la transaction")
|
|
parser.print_help()
|
|
sys.exit(1)
|
|
|
|
if args.node: node = args.node
|
|
if args.key: dunikey = args.key
|
|
|
|
# Create transaction and send it
|
|
trans = Transaction(dunikey, node, args.destinataire, args.montant, args.commentaire, args.mempool, args.verbose)
|
|
result = trans.send()
|
|
|
|
if args.verbose:
|
|
print(str(result))
|
|
|