1 from flask_restful import inputs
2 from flask_restful import Resource
3 from flask_restful import reqparse
4 from app.model.hello import get_hello_result
5 from app.model.signature import sign
6 from app.model.signature import verify
7 from app.model.key import create_entropy
8 from app.model.key import entropy_to_mnemonic
9 from app.model.key import mnemonic_to_seed
10 from app.model.key import seed_to_root_xprv
11 from app.model.key import xprv_to_expanded_private_key
12 from app.model.key import xpub_to_public_key
13 from app.model.key import xpub_verify
14 from app.model.key import xprv_sign
15 from app.model.key import xprv_to_xpub
16 from app.model.key import xprv_to_child_xprv
17 from app.model.key import xpub_to_child_xpub
18 from app.model.receiver import create_P2WPKH_program
19 from app.model.receiver import create_address
20 from app.model.receiver import get_path_from_index
21 from app.model.receiver import create_qrcode_base64
22 from app.model.transaction import submit_transaction
23 from app.model.key import create_new_key
24 from app.model.receiver import create_new_address
25 from app.model.transaction import decode_raw_transaction
26 from app.model.key_gm import get_gm_root_xprv
27 from app.model.key_gm import get_gm_xpub
28 from app.model.key_gm import get_gm_xprv
29 from app.model.key_gm import get_gm_public_key
30 from app.model.key_gm import get_gm_child_xprv
31 from app.model.key_gm import get_gm_child_xpub
32 from app.model.key_gm import gm_xpub_verify
33 from app.model.key_gm import gm_xprv_sign
34 from app.model.receiver import get_gm_P2WPKH_program
35 from app.model.receiver import get_gm_address
36 from app.model.key_gm import get_gm_new_key
37 from app.model.receiver import get_gm_new_address
40 parser = reqparse.RequestParser()
41 parser.add_argument('private_key_str', type=str)
42 parser.add_argument('message_str', type=str)
43 parser.add_argument('public_key_str', type=str)
44 parser.add_argument('signature_str', type=str)
45 parser.add_argument('entropy_str', type=str)
46 parser.add_argument('mnemonic_str', type=str)
47 parser.add_argument('seed_str', type=str)
48 parser.add_argument('xprv_str', type=str)
49 parser.add_argument('xpub_str', type=str)
50 parser.add_argument('path_list', type=str, action='append')
51 parser.add_argument('account_index_int', type=int)
52 parser.add_argument('address_index_int', type=int)
53 parser.add_argument('change_bool', type=inputs.boolean)
54 parser.add_argument('control_program_str', type=str)
55 parser.add_argument('network_str', type=str)
56 parser.add_argument('raw_transaction_str', type=str)
57 parser.add_argument('address_str', type=str)
58 parser.add_argument('s', type=str)
60 class Hello(Resource):
62 def get(self, content):
63 return get_hello_result(content)
68 args = parser.parse_args()
69 private_key = args.get('private_key_str')
70 message = args.get('message_str')
71 sig = sign(private_key, message)
74 class Verify(Resource):
77 args = parser.parse_args()
78 public_key = args.get('public_key_str')
79 signature = args.get('signature_str')
80 message = args.get('message_str')
81 result = verify(public_key, signature, message)
84 class Create_Entropy(Resource):
87 entropy = create_entropy()
90 class Entropy_To_Mnemonic(Resource):
93 args = parser.parse_args()
94 entropy_str = args.get('entropy_str')
95 mnemonic_str = entropy_to_mnemonic(entropy_str)
98 class Mnemonic_To_Seed(Resource):
101 args = parser.parse_args()
102 mnemonic_str = args.get('mnemonic_str')
103 seed_str = mnemonic_to_seed(mnemonic_str)
106 class Seed_To_Root_Xprv(Resource):
109 args = parser.parse_args()
110 seed_str = args.get('seed_str')
111 root_xprv_str = seed_to_root_xprv(seed_str)
114 class Xprv_To_Expanded_Private_Key(Resource):
117 args = parser.parse_args()
118 xprv_str = args.get('xprv_str')
119 expanded_private_key_str = xprv_to_expanded_private_key(xprv_str)
120 return expanded_private_key_str
122 class Xpub_To_Public_Key(Resource):
125 args = parser.parse_args()
126 xpub_str = args.get('xpub_str')
127 public_key_str = xpub_to_public_key(xpub_str)
128 return public_key_str
130 class Xpub_Verify(Resource):
133 args = parser.parse_args()
134 xpub = args.get('xpub_str')
135 message = args.get('message_str')
136 signature = args.get('signature_str')
137 result = xpub_verify(xpub, message, signature)
140 class Xprv_Sign(Resource):
143 args = parser.parse_args()
144 xprv = args.get('xprv_str')
145 message = args.get('message_str')
146 signature = xprv_sign(xprv, message)
149 class Xprv_To_Xpub(Resource):
152 args = parser.parse_args()
153 xprv = args.get('xprv_str')
154 xpub = xprv_to_xpub(xprv)
157 class Xprv_To_Child_Xprv(Resource):
160 args = parser.parse_args()
161 xprv = args.get('xprv_str')
162 path = args.get('path_list')
163 child_xprv = xprv_to_child_xprv(xprv, path)
166 class Xpub_To_Child_Xpub(Resource):
169 args = parser.parse_args()
170 xpub = args.get('xpub_str')
171 path = args.get('path_list')
172 child_xpub = xpub_to_child_xpub(xpub, path)
175 class Get_Path_From_Index(Resource):
178 args = parser.parse_args()
179 account_index = args.get('account_index_int')
180 address_index = args.get('address_index_int')
181 change = args.get('change_bool')
182 path_list = get_path_from_index(account_index, address_index, change)
186 class Create_P2WPKH_Program(Resource):
189 args = parser.parse_args()
190 account_index = args.get('account_index_int')
191 address_index = args.get('address_index_int')
192 change = args.get('change_bool')
193 xpub = args.get('xpub_str')
194 control_program = create_P2WPKH_program(account_index, address_index, change, xpub)
195 return control_program
197 class Create_Address(Resource):
200 args = parser.parse_args()
201 control_program = args.get('control_program_str')
202 network = args.get('network_str')
203 address = create_address(control_program, network)
206 class Submit_Transaction(Resource):
209 args = parser.parse_args()
210 raw_transaction = args.get('raw_transaction_str')
211 network = args.get('network_str')
212 response = submit_transaction(raw_transaction, network)
215 class Create_QRcode_Base64(Resource):
218 args = parser.parse_args()
220 img = create_qrcode_base64(s)
223 class Create_New_Key(Resource):
226 return create_new_key()
229 class Create_New_Address(Resource):
232 args = parser.parse_args()
233 xpub = args.get('xpub_str')
234 account_index = args.get('account_index_int')
235 address_index = args.get('address_index_int')
236 change = args.get('change_bool')
237 network = args.get('network_str')
238 response = create_new_address(xpub, account_index, address_index, change, network)
241 class Decode_Raw_Transaction(Resource):
244 args = parser.parse_args()
245 raw_transaction = args.get('raw_transaction_str')
246 response = decode_raw_transaction(raw_transaction)
249 class Get_Gm_Root_Xprv(Resource):
252 args = parser.parse_args()
253 seed = args.get('seed_str')
254 root_xprv = get_gm_root_xprv(seed)
257 class Get_Gm_Xpub(Resource):
260 args = parser.parse_args()
261 xprv = args.get('xprv_str')
262 xpub = get_gm_xpub(xprv)
265 class Get_Gm_Xprv(Resource):
268 args = parser.parse_args()
269 xprv = args.get('xprv_str')
270 xprv = get_gm_xprv(xprv)
273 class Get_Gm_Public_Key(Resource):
276 args = parser.parse_args()
277 xpub = args.get('xpub_str')
278 public_key = get_gm_public_key(xpub)
281 class Get_Gm_Child_Xprv(Resource):
284 args = parser.parse_args()
285 xprv = args.get('xprv_str')
286 path = args.get('path_list')
287 child_xprv = get_gm_child_xprv(xprv, path)
290 class Get_Gm_Child_Xpub(Resource):
293 args = parser.parse_args()
294 xpub = args.get('xpub_str')
295 path = args.get('path_list')
296 child_xpub = get_gm_child_xpub(xpub, path)
299 class Gm_Xpub_Verify(Resource):
302 args = parser.parse_args()
303 xpub = args.get('xpub_str')
304 message = args.get('message_str')
305 signature = args.get('signature_str')
306 result = gm_xpub_verify(xpub, message, signature)
309 class Gm_Xprv_Sign(Resource):
312 args = parser.parse_args()
313 xprv = args.get('xprv_str')
314 message = args.get('message_str')
315 signature = gm_xprv_sign(xprv, message)
318 class Get_Gm_P2WPKH_Program(Resource):
321 args = parser.parse_args()
322 account_index = args.get('account_index_int')
323 address_index = args.get('address_index_int')
324 change = args.get('change_bool')
325 xpub = args.get('xpub_str')
326 control_program = get_gm_P2WPKH_program(account_index, address_index, change, xpub)
327 return control_program
329 class Get_Gm_Address(Resource):
332 args = parser.parse_args()
333 control_program = args.get('control_program_str')
334 network = args.get('network_str')
335 address = get_gm_address(control_program, network)
338 class Get_Gm_New_Key(Resource):
341 return get_gm_new_key()
343 class Get_Gm_New_Address(Resource):
346 args = parser.parse_args()
347 xpub = args.get('xpub_str')
348 account_index = args.get('account_index_int')
349 address_index = args.get('address_index_int')
350 change = args.get('change_bool')
351 network = args.get('network_str')
352 response = get_gm_new_address(xpub, account_index, address_index, change, network)