This repository has been archived on 2020-12-03. You can view files and clone it, but cannot push or open issues or pull requests.
py-gva/pay.py

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))