#!/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))