OSDN Git Service

a0e8d11491764850abe5838eacf10ea5dce20b04
[bytom/bytom-kit.git] / app / api / resources.py
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
38
39
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)
59
60 class Hello(Resource):
61
62     def get(self, content):
63         return get_hello_result(content)
64
65 class Sign(Resource):
66
67     def post(self):
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)
72         return sig
73
74 class Verify(Resource):
75     
76     def post(self):
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)
82         return result
83
84 class Create_Entropy(Resource):
85
86     def post(self):
87         entropy = create_entropy()
88         return entropy
89
90 class Entropy_To_Mnemonic(Resource):
91
92     def post(self):
93         args = parser.parse_args()
94         entropy_str = args.get('entropy_str')
95         mnemonic_str = entropy_to_mnemonic(entropy_str)
96         return mnemonic_str
97
98 class Mnemonic_To_Seed(Resource):
99
100     def post(self):
101         args = parser.parse_args()
102         mnemonic_str = args.get('mnemonic_str')
103         seed_str = mnemonic_to_seed(mnemonic_str)
104         return seed_str
105
106 class Seed_To_Root_Xprv(Resource):
107
108     def post(self):
109         args = parser.parse_args()
110         seed_str = args.get('seed_str')
111         root_xprv_str = seed_to_root_xprv(seed_str)
112         return root_xprv_str
113
114 class Xprv_To_Expanded_Private_Key(Resource):
115
116     def post(self):
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
121
122 class Xpub_To_Public_Key(Resource):
123
124     def post(self):
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
129
130 class Xpub_Verify(Resource):
131
132     def post(self):
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)
138         return result
139
140 class Xprv_Sign(Resource):
141
142     def post(self):
143         args = parser.parse_args()
144         xprv = args.get('xprv_str')
145         message = args.get('message_str')
146         signature = xprv_sign(xprv, message)
147         return signature
148
149 class Xprv_To_Xpub(Resource):
150
151     def post(self):
152         args = parser.parse_args()
153         xprv = args.get('xprv_str')
154         xpub = xprv_to_xpub(xprv)
155         return xpub
156
157 class Xprv_To_Child_Xprv(Resource):
158
159     def post(self):
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)
164         return child_xprv
165
166 class Xpub_To_Child_Xpub(Resource):
167
168     def post(self):
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)
173         return child_xpub
174
175 class Get_Path_From_Index(Resource):
176
177     def post(self):
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)
183         return path_list
184
185
186 class Create_P2WPKH_Program(Resource):
187
188     def post(self):
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
196
197 class Create_Address(Resource):
198
199     def post(self):
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)
204         return address
205
206 class Submit_Transaction(Resource):
207
208     def post(self):
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)
213         return response
214
215 class Create_QRcode_Base64(Resource):
216
217     def post(self):
218         args = parser.parse_args()
219         s = args.get('s')
220         img = create_qrcode_base64(s)
221         return img
222
223 class Create_New_Key(Resource):
224
225     def post(self):
226         return create_new_key()
227
228
229 class Create_New_Address(Resource):
230
231     def post(self):
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)
239         return response
240
241 class Decode_Raw_Transaction(Resource):
242
243     def post(self):
244         args = parser.parse_args()
245         raw_transaction = args.get('raw_transaction_str')
246         response = decode_raw_transaction(raw_transaction)
247         return response
248
249 class Get_Gm_Root_Xprv(Resource):
250
251     def post(self):
252         args = parser.parse_args()
253         seed = args.get('seed_str')
254         root_xprv = get_gm_root_xprv(seed)
255         return root_xprv
256
257 class Get_Gm_Xpub(Resource):
258
259     def post(self):
260         args = parser.parse_args()
261         xprv = args.get('xprv_str')
262         xpub = get_gm_xpub(xprv)
263         return xpub
264
265 class Get_Gm_Xprv(Resource):
266
267     def post(self):
268         args = parser.parse_args()
269         xprv = args.get('xprv_str')
270         xprv = get_gm_xprv(xprv)
271         return xprv
272
273 class Get_Gm_Public_Key(Resource):
274
275     def post(self):
276         args = parser.parse_args()
277         xpub = args.get('xpub_str')
278         public_key = get_gm_public_key(xpub)
279         return public_key
280
281 class Get_Gm_Child_Xprv(Resource):
282
283     def post(self):
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)
288         return child_xprv
289
290 class Get_Gm_Child_Xpub(Resource):
291
292     def post(self):
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)
297         return child_xpub
298
299 class Gm_Xpub_Verify(Resource):
300
301     def post(self):
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)
307         return result
308
309 class Gm_Xprv_Sign(Resource):
310
311     def post(self):
312         args = parser.parse_args()
313         xprv = args.get('xprv_str')
314         message = args.get('message_str')
315         signature = gm_xprv_sign(xprv, message)
316         return signature
317
318 class Get_Gm_P2WPKH_Program(Resource):
319
320     def post(self):
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
328
329 class Get_Gm_Address(Resource):
330
331     def post(self):
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)
336         return address
337
338 class Get_Gm_New_Key(Resource):
339
340     def post(self):
341         return get_gm_new_key()
342
343 class Get_Gm_New_Address(Resource):
344
345     def post(self):
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)
353         return response