1 # from flask_restplus import inputs
2 from flask_restful import inputs
3 from flask_restful import Resource
4 from flask_restful import reqparse
5 from app.model.hello import get_hello_result
6 from app.model.signature import sign
7 from app.model.signature import verify
8 from app.model.key import create_entropy
9 from app.model.key import entropy_to_mnemonic
10 from app.model.key import mnemonic_to_seed
11 from app.model.key import seed_to_root_xprv
12 from app.model.key import xprv_to_expanded_private_key
13 from app.model.key import xpub_to_public_key
14 from app.model.key import xpub_verify
15 from app.model.key import xprv_sign
16 from app.model.key import xprv_to_xpub
17 from app.model.key import xprv_sign
18 from app.model.key import xprv_to_child_xprv
19 from app.model.key import xpub_to_child_xpub
20 from app.model.receiver import create_P2WPKH_program
22 parser = reqparse.RequestParser()
23 parser.add_argument('private_key_str', type=str)
24 parser.add_argument('message_str', type=str)
25 parser.add_argument('public_key_str', type=str)
26 parser.add_argument('signature_str', type=str)
27 parser.add_argument('entropy_str', type=str)
28 parser.add_argument('mnemonic_str', type=str)
29 parser.add_argument('seed_str', type=str)
30 parser.add_argument('xprv_str', type=str)
31 parser.add_argument('xpub_str', type=str)
32 parser.add_argument('path_list', type=str, action='append')
33 parser.add_argument('account_index_int', type=int)
34 parser.add_argument('address_index_int', type=int)
35 parser.add_argument('change_bool', type=inputs.boolean)
37 class Hello(Resource):
39 def get(self, content):
40 return get_hello_result(content)
45 args = parser.parse_args()
46 private_key = args.get('private_key_str')
47 message = args.get('message_str')
48 sig = sign(private_key, message)
51 class Verify(Resource):
54 args = parser.parse_args()
55 public_key = args.get('public_key_str')
56 signature = args.get('signature_str')
57 message = args.get('message_str')
58 result = verify(public_key, signature, message)
61 class Create_Entropy(Resource):
64 entropy = create_entropy()
67 class Entropy_To_Mnemonic(Resource):
70 args = parser.parse_args()
71 entropy_str = args.get('entropy_str')
72 mnemonic_str = entropy_to_mnemonic(entropy_str)
75 class Mnemonic_To_Seed(Resource):
78 args = parser.parse_args()
79 mnemonic_str = args.get('mnemonic_str')
80 seed_str = mnemonic_to_seed(mnemonic_str)
83 class Seed_To_Root_Xprv(Resource):
86 args = parser.parse_args()
87 seed_str = args.get('seed_str')
88 root_xprv_str = seed_to_root_xprv(seed_str)
91 class Xprv_To_Expanded_Private_Key(Resource):
94 args = parser.parse_args()
95 xprv_str = args.get('xprv_str')
96 expanded_private_key_str = xprv_to_expanded_private_key(xprv_str)
97 return expanded_private_key_str
99 class Xpub_To_Public_Key(Resource):
102 args = parser.parse_args()
103 xpub_str = args.get('xpub_str')
104 public_key_str = xpub_to_public_key(xpub_str)
105 return public_key_str
107 class Xpub_Verify(Resource):
110 args = parser.parse_args()
111 xpub = args.get('xpub_str')
112 message = args.get('message_str')
113 signature = args.get('signature_str')
114 result = xpub_verify(xpub, message, signature)
117 class Xprv_Sign(Resource):
120 args = parser.parse_args()
121 xprv = args.get('xprv_str')
122 message = args.get('message_str')
123 signature = xprv_sign(xprv, message)
126 class Xprv_To_Xpub(Resource):
129 args = parser.parse_args()
130 xprv = args.get('xprv_str')
131 xpub = xprv_to_xpub(xprv)
134 class Xprv_To_Child_Xprv(Resource):
137 args = parser.parse_args()
138 xprv = args.get('xprv_str')
139 path = args.get('path_list')
140 child_xprv = xprv_to_child_xprv(xprv, path)
143 class Xpub_To_Child_Xpub(Resource):
146 args = parser.parse_args()
147 xpub = args.get('xpub_str')
148 path = args.get('path_list')
149 child_xpub = xpub_to_child_xpub(xpub, path)
152 class Create_P2WPKH_Program(Resource):
155 args = parser.parse_args()
156 account_index = args.get('account_index_int')
157 address_index = args.get('address_index_int')
158 change = args.get('change_bool')
159 xpub = args.get('xpub_str')
160 control_program = create_P2WPKH_program(account_index, address_index, change, xpub)
161 return control_program