OSDN Git Service

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