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_sign
17 from app.model.key import xprv_to_child_xprv
18 from app.model.key import xpub_to_child_xpub
19 from app.model.receiver import create_P2WPKH_program
20 from app.model.receiver import create_address
21 from app.model.receiver import get_path_from_index
22 from app.model.receiver import create_qrcode_base64
23 from app.model.transaction import broadcast_transaction
24 from app.model.key import create_new_key
27 parser = reqparse.RequestParser()
28 parser.add_argument('private_key_str', type=str)
29 parser.add_argument('message_str', type=str)
30 parser.add_argument('public_key_str', type=str)
31 parser.add_argument('signature_str', type=str)
32 parser.add_argument('entropy_str', type=str)
33 parser.add_argument('mnemonic_str', type=str)
34 parser.add_argument('seed_str', type=str)
35 parser.add_argument('xprv_str', type=str)
36 parser.add_argument('xpub_str', type=str)
37 parser.add_argument('path_list', type=str, action='append')
38 parser.add_argument('account_index_int', type=int)
39 parser.add_argument('address_index_int', type=int)
40 parser.add_argument('change_bool', type=inputs.boolean)
41 parser.add_argument('control_program_str', type=str)
42 parser.add_argument('network_str', type=str)
43 parser.add_argument('raw_transaction_str', type=str)
44 parser.add_argument('address_str', type=str)
45 parser.add_argument('s', type=str)
47 class Hello(Resource):
49 def get(self, content):
50 return get_hello_result(content)
55 args = parser.parse_args()
56 private_key = args.get('private_key_str')
57 message = args.get('message_str')
58 sig = sign(private_key, message)
61 class Verify(Resource):
64 args = parser.parse_args()
65 public_key = args.get('public_key_str')
66 signature = args.get('signature_str')
67 message = args.get('message_str')
68 result = verify(public_key, signature, message)
71 class Create_Entropy(Resource):
74 entropy = create_entropy()
77 class Entropy_To_Mnemonic(Resource):
80 args = parser.parse_args()
81 entropy_str = args.get('entropy_str')
82 mnemonic_str = entropy_to_mnemonic(entropy_str)
85 class Mnemonic_To_Seed(Resource):
88 args = parser.parse_args()
89 mnemonic_str = args.get('mnemonic_str')
90 seed_str = mnemonic_to_seed(mnemonic_str)
93 class Seed_To_Root_Xprv(Resource):
96 args = parser.parse_args()
97 seed_str = args.get('seed_str')
98 root_xprv_str = seed_to_root_xprv(seed_str)
101 class Xprv_To_Expanded_Private_Key(Resource):
104 args = parser.parse_args()
105 xprv_str = args.get('xprv_str')
106 expanded_private_key_str = xprv_to_expanded_private_key(xprv_str)
107 return expanded_private_key_str
109 class Xpub_To_Public_Key(Resource):
112 args = parser.parse_args()
113 xpub_str = args.get('xpub_str')
114 public_key_str = xpub_to_public_key(xpub_str)
115 return public_key_str
117 class Xpub_Verify(Resource):
120 args = parser.parse_args()
121 xpub = args.get('xpub_str')
122 message = args.get('message_str')
123 signature = args.get('signature_str')
124 result = xpub_verify(xpub, message, signature)
127 class Xprv_Sign(Resource):
130 args = parser.parse_args()
131 xprv = args.get('xprv_str')
132 message = args.get('message_str')
133 signature = xprv_sign(xprv, message)
136 class Xprv_To_Xpub(Resource):
139 args = parser.parse_args()
140 xprv = args.get('xprv_str')
141 xpub = xprv_to_xpub(xprv)
144 class Xprv_To_Child_Xprv(Resource):
147 args = parser.parse_args()
148 xprv = args.get('xprv_str')
149 path = args.get('path_list')
150 child_xprv = xprv_to_child_xprv(xprv, path)
153 class Xpub_To_Child_Xpub(Resource):
156 args = parser.parse_args()
157 xpub = args.get('xpub_str')
158 path = args.get('path_list')
159 child_xpub = xpub_to_child_xpub(xpub, path)
162 class Get_Path_From_Index(Resource):
165 args = parser.parse_args()
166 account_index = args.get('account_index_int')
167 address_index = args.get('address_index_int')
168 change = args.get('change_bool')
169 path_list = get_path_from_index(account_index, address_index, change)
173 class Create_P2WPKH_Program(Resource):
176 args = parser.parse_args()
177 account_index = args.get('account_index_int')
178 address_index = args.get('address_index_int')
179 change = args.get('change_bool')
180 xpub = args.get('xpub_str')
181 control_program = create_P2WPKH_program(account_index, address_index, change, xpub)
182 return control_program
184 class Create_Address(Resource):
187 args = parser.parse_args()
188 control_program = args.get('control_program_str')
189 network = args.get('network_str')
190 address = create_address(control_program, network)
193 class Broadcast_Transaction(Resource):
196 args = parser.parse_args()
197 raw_transaction = args.get('raw_transaction_str')
198 network = args.get('network_str')
199 response = broadcast_transaction(raw_transaction, network)
202 class Create_QRcode_Base64(Resource):
205 args = parser.parse_args()
207 img = create_qrcode_base64(s)
210 class Create_New_Key(Resource):
213 return create_new_key()