OSDN Git Service

feat(input option): change getopt to argparse and add -c(output count) input option
[bytom/bytom-spanner.git] / btmvalidation.py
1 import os
2 import sys
3 import argparse
4 import httprequest
5
6
7 def validate_address(line, address):
8     parameter = {'address': address}
9     data = httprequest.post('validate-address', parameter)
10     if not data['valid']:
11         print(line + 'This line transaction address is not valid')
12         sys.exit(1)
13
14
15 def validate_amount(line, amount):
16     try:
17         int(amount)
18     except ValueError:
19         print(line + 'This line transaction amount is not int.')
20         sys.exit(1)
21
22
23 def get_input():
24     parser = argparse.ArgumentParser()
25     parser.add_argument('-i', required=True, help='transaction input file')
26     parser.add_argument('-a', required=True, help='wallet account id')
27     parser.add_argument('-p', required=True, help='wallet account password')
28     parser.add_argument('-c', type=int, default=0, help='transaction max output count')
29     args = parser.parse_args()
30     return args.i, args.a, args.p, args.c
31
32
33 def validate_input():
34     input_path, account_id, password, output_count = get_input()
35     # relative path
36     file_path = os.path.abspath('.') + os.path.sep + input_path
37     if not os.path.exists(file_path):
38         # absolute path
39         file_path = input_path
40     # read file
41     with open(file_path, 'r', encoding='utf-8') as file:
42         for line in file:
43             splits = line.strip().split(',')
44             validate_address(line, splits[0])
45             validate_amount(line, splits[1])
46         print('Transactions address and amount are valid')
47     return file_path, account_id, password, output_count