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
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)
56 class Hello(Resource):
58 def get(self, content):
59 return get_hello_result(content)
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)
70 class Verify(Resource):
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)
80 class Create_Entropy(Resource):
83 entropy = create_entropy()
86 class Entropy_To_Mnemonic(Resource):
89 args = parser.parse_args()
90 entropy_str = args.get('entropy_str')
91 mnemonic_str = entropy_to_mnemonic(entropy_str)
94 class Mnemonic_To_Seed(Resource):
97 args = parser.parse_args()
98 mnemonic_str = args.get('mnemonic_str')
99 seed_str = mnemonic_to_seed(mnemonic_str)
102 class Seed_To_Root_Xprv(Resource):
105 args = parser.parse_args()
106 seed_str = args.get('seed_str')
107 root_xprv_str = seed_to_root_xprv(seed_str)
110 class Xprv_To_Expanded_Private_Key(Resource):
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
118 class Xpub_To_Public_Key(Resource):
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
126 class Xpub_Verify(Resource):
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)
136 class Xprv_Sign(Resource):
139 args = parser.parse_args()
140 xprv = args.get('xprv_str')
141 message = args.get('message_str')
142 signature = xprv_sign(xprv, message)
145 class Xprv_To_Xpub(Resource):
148 args = parser.parse_args()
149 xprv = args.get('xprv_str')
150 xpub = xprv_to_xpub(xprv)
153 class Xprv_To_Child_Xprv(Resource):
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)
162 class Xpub_To_Child_Xpub(Resource):
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)
171 class Get_Path_From_Index(Resource):
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)
182 class Create_P2WPKH_Program(Resource):
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
193 class Create_Address(Resource):
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)
202 class Submit_Transaction(Resource):
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)
211 class Create_QRcode_Base64(Resource):
214 args = parser.parse_args()
216 img = create_qrcode_base64(s)
219 class Create_New_Key(Resource):
222 return create_new_key()
225 class Create_New_Address(Resource):
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)
237 class Decode_Raw_Transaction(Resource):
240 args = parser.parse_args()
241 raw_transaction = args.get('raw_transaction_str')
242 response = decode_raw_transaction(raw_transaction)
245 class Get_Gm_Root_Xprv(Resource):
248 args = parser.parse_args()
249 seed = args.get('seed_str')
250 root_xprv = get_gm_root_xprv(seed)
253 class Get_Gm_Xpub(Resource):
256 args = parser.parse_args()
257 xprv = args.get('xprv_str')
258 xpub = get_gm_xpub(xprv)
261 class Get_Gm_Xprv(Resource):
264 args = parser.parse_args()
265 xprv = args.get('xprv_str')
266 xprv = get_gm_xprv(xprv)
269 class Get_Gm_Public_Key(Resource):
272 args = parser.parse_args()
273 xpub = args.get('xpub_str')
274 public_key = get_gm_public_key(xpub)
277 class Get_Gm_Child_Xprv(Resource):
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)
286 class Get_Gm_Child_Xpub(Resource):
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)
295 class Gm_Xpub_Verify(Resource):
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)
305 class Gm_Xprv_Sign(Resource):
308 args = parser.parse_args()
309 xprv = args.get('xprv_str')
310 message = args.get('message_str')
311 signature = gm_xprv_sign(xprv, message)