OSDN Git Service

d08e6b62cc35a6b67a13e479185b9bc666bfd851
[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
35
36 parser = reqparse.RequestParser()
37 parser.add_argument('private_key_str', type=str)
38 parser.add_argument('message_str', type=str)
39 parser.add_argument('public_key_str', type=str)
40 parser.add_argument('signature_str', type=str)
41 parser.add_argument('entropy_str', type=str)
42 parser.add_argument('mnemonic_str', type=str)
43 parser.add_argument('seed_str', type=str)
44 parser.add_argument('xprv_str', type=str)
45 parser.add_argument('xpub_str', type=str)
46 parser.add_argument('path_list', type=str, action='append')
47 parser.add_argument('account_index_int', type=int)
48 parser.add_argument('address_index_int', type=int)
49 parser.add_argument('change_bool', type=inputs.boolean)
50 parser.add_argument('control_program_str', type=str)
51 parser.add_argument('network_str', type=str)
52 parser.add_argument('raw_transaction_str', type=str)
53 parser.add_argument('address_str', type=str)
54 parser.add_argument('s', type=str)
55
56 class Hello(Resource):
57
58     def get(self, content):
59         return get_hello_result(content)
60
61 class Sign(Resource):
62
63     def post(self):
64         args = parser.parse_args()
65         private_key = args.get('private_key_str')
66         message = args.get('message_str')
67         sig = sign(private_key, message)
68         return sig
69
70 class Verify(Resource):
71     
72     def post(self):
73         args = parser.parse_args()
74         public_key = args.get('public_key_str')
75         signature = args.get('signature_str')
76         message = args.get('message_str')
77         result = verify(public_key, signature, message)
78         return result
79
80 class Create_Entropy(Resource):
81
82     def post(self):
83         entropy = create_entropy()
84         return entropy
85
86 class Entropy_To_Mnemonic(Resource):
87
88     def post(self):
89         args = parser.parse_args()
90         entropy_str = args.get('entropy_str')
91         mnemonic_str = entropy_to_mnemonic(entropy_str)
92         return mnemonic_str
93
94 class Mnemonic_To_Seed(Resource):
95
96     def post(self):
97         args = parser.parse_args()
98         mnemonic_str = args.get('mnemonic_str')
99         seed_str = mnemonic_to_seed(mnemonic_str)
100         return seed_str
101
102 class Seed_To_Root_Xprv(Resource):
103
104     def post(self):
105         args = parser.parse_args()
106         seed_str = args.get('seed_str')
107         root_xprv_str = seed_to_root_xprv(seed_str)
108         return root_xprv_str
109
110 class Xprv_To_Expanded_Private_Key(Resource):
111
112     def post(self):
113         args = parser.parse_args()
114         xprv_str = args.get('xprv_str')
115         expanded_private_key_str = xprv_to_expanded_private_key(xprv_str)
116         return expanded_private_key_str
117
118 class Xpub_To_Public_Key(Resource):
119
120     def post(self):
121         args = parser.parse_args()
122         xpub_str = args.get('xpub_str')
123         public_key_str = xpub_to_public_key(xpub_str)
124         return public_key_str
125
126 class Xpub_Verify(Resource):
127
128     def post(self):
129         args = parser.parse_args()
130         xpub = args.get('xpub_str')
131         message = args.get('message_str')
132         signature = args.get('signature_str')
133         result = xpub_verify(xpub, message, signature)
134         return result
135
136 class Xprv_Sign(Resource):
137
138     def post(self):
139         args = parser.parse_args()
140         xprv = args.get('xprv_str')
141         message = args.get('message_str')
142         signature = xprv_sign(xprv, message)
143         return signature
144
145 class Xprv_To_Xpub(Resource):
146
147     def post(self):
148         args = parser.parse_args()
149         xprv = args.get('xprv_str')
150         xpub = xprv_to_xpub(xprv)
151         return xpub
152
153 class Xprv_To_Child_Xprv(Resource):
154
155     def post(self):
156         args = parser.parse_args()
157         xprv = args.get('xprv_str')
158         path = args.get('path_list')
159         child_xprv = xprv_to_child_xprv(xprv, path)
160         return child_xprv
161
162 class Xpub_To_Child_Xpub(Resource):
163
164     def post(self):
165         args = parser.parse_args()
166         xpub = args.get('xpub_str')
167         path = args.get('path_list')
168         child_xpub = xpub_to_child_xpub(xpub, path)
169         return child_xpub
170
171 class Get_Path_From_Index(Resource):
172
173     def post(self):
174         args = parser.parse_args()
175         account_index = args.get('account_index_int')
176         address_index = args.get('address_index_int')
177         change = args.get('change_bool')
178         path_list = get_path_from_index(account_index, address_index, change)
179         return path_list
180
181
182 class Create_P2WPKH_Program(Resource):
183
184     def post(self):
185         args = parser.parse_args()
186         account_index = args.get('account_index_int')
187         address_index = args.get('address_index_int')
188         change = args.get('change_bool')
189         xpub = args.get('xpub_str')
190         control_program = create_P2WPKH_program(account_index, address_index, change, xpub)
191         return control_program
192
193 class Create_Address(Resource):
194
195     def post(self):
196         args = parser.parse_args()
197         control_program = args.get('control_program_str')
198         network = args.get('network_str')
199         address = create_address(control_program, network)
200         return address
201
202 class Submit_Transaction(Resource):
203
204     def post(self):
205         args = parser.parse_args()
206         raw_transaction = args.get('raw_transaction_str')
207         network = args.get('network_str')
208         response = submit_transaction(raw_transaction, network)
209         return response
210
211 class Create_QRcode_Base64(Resource):
212
213     def post(self):
214         args = parser.parse_args()
215         s = args.get('s')
216         img = create_qrcode_base64(s)
217         return img
218
219 class Create_New_Key(Resource):
220
221     def post(self):
222         return create_new_key()
223
224
225 class Create_New_Address(Resource):
226
227     def post(self):
228         args = parser.parse_args()
229         xpub = args.get('xpub_str')
230         account_index = args.get('account_index_int')
231         address_index = args.get('address_index_int')
232         change = args.get('change_bool')
233         network = args.get('network_str')
234         response = create_new_address(xpub, account_index, address_index, change, network)
235         return response
236
237 class Decode_Raw_Transaction(Resource):
238
239     def post(self):
240         args = parser.parse_args()
241         raw_transaction = args.get('raw_transaction_str')
242         response = decode_raw_transaction(raw_transaction)
243         return response
244
245 class Get_Gm_Root_Xprv(Resource):
246
247     def post(self):
248         args = parser.parse_args()
249         seed = args.get('seed_str')
250         root_xprv = get_gm_root_xprv(seed)
251         return root_xprv
252
253 class Get_Gm_Xpub(Resource):
254
255     def post(self):
256         args = parser.parse_args()
257         xprv = args.get('xprv_str')
258         xpub = get_gm_xpub(xprv)
259         return xpub
260
261 class Get_Gm_Xprv(Resource):
262
263     def post(self):
264         args = parser.parse_args()
265         xprv = args.get('xprv_str')
266         xprv = get_gm_xprv(xprv)
267         return xprv
268
269 class Get_Gm_Public_Key(Resource):
270
271     def post(self):
272         args = parser.parse_args()
273         xpub = args.get('xpub_str')
274         public_key = get_gm_public_key(xpub)
275         return public_key
276
277 class Get_Gm_Child_Xprv(Resource):
278
279     def post(self):
280         args = parser.parse_args()
281         xprv = args.get('xprv_str')
282         path = args.get('path_list')
283         child_xprv = get_gm_child_xprv(xprv, path)
284         return child_xprv
285
286 class Get_Gm_Child_Xpub(Resource):
287
288     def post(self):
289         args = parser.parse_args()
290         xpub = args.get('xpub_str')
291         path = args.get('path_list')
292         child_xpub = get_gm_child_xpub(xpub, path)
293         return child_xpub
294
295 class Gm_Xpub_Verify(Resource):
296
297     def post(self):
298         args = parser.parse_args()
299         xpub = args.get('xpub_str')
300         message = args.get('message_str')
301         signature = args.get('signature_str')
302         result = gm_xpub_verify(xpub, message, signature)
303         return result
304
305 class Gm_Xprv_Sign(Resource):
306
307     def post(self):
308         args = parser.parse_args()
309         xprv = args.get('xprv_str')
310         message = args.get('message_str')
311         signature = gm_xprv_sign(xprv, message)
312         return signature