OSDN Git Service

0ba347da1127bb22715fc4e6a6fbb9aa0de37bf9
[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_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
25
26
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)
46
47 class Hello(Resource):
48
49     def get(self, content):
50         return get_hello_result(content)
51
52 class Sign(Resource):
53
54     def post(self):
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)
59         return sig
60
61 class Verify(Resource):
62     
63     def post(self):
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)
69         return result
70
71 class Create_Entropy(Resource):
72
73     def post(self):
74         entropy = create_entropy()
75         return entropy
76
77 class Entropy_To_Mnemonic(Resource):
78
79     def post(self):
80         args = parser.parse_args()
81         entropy_str = args.get('entropy_str')
82         mnemonic_str = entropy_to_mnemonic(entropy_str)
83         return mnemonic_str
84
85 class Mnemonic_To_Seed(Resource):
86
87     def post(self):
88         args = parser.parse_args()
89         mnemonic_str = args.get('mnemonic_str')
90         seed_str = mnemonic_to_seed(mnemonic_str)
91         return seed_str
92
93 class Seed_To_Root_Xprv(Resource):
94
95     def post(self):
96         args = parser.parse_args()
97         seed_str = args.get('seed_str')
98         root_xprv_str = seed_to_root_xprv(seed_str)
99         return root_xprv_str
100
101 class Xprv_To_Expanded_Private_Key(Resource):
102
103     def post(self):
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
108
109 class Xpub_To_Public_Key(Resource):
110
111     def post(self):
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
116
117 class Xpub_Verify(Resource):
118
119     def post(self):
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)
125         return result
126
127 class Xprv_Sign(Resource):
128
129     def post(self):
130         args = parser.parse_args()
131         xprv = args.get('xprv_str')
132         message = args.get('message_str')
133         signature = xprv_sign(xprv, message)
134         return signature
135
136 class Xprv_To_Xpub(Resource):
137
138     def post(self):
139         args = parser.parse_args()
140         xprv = args.get('xprv_str')
141         xpub = xprv_to_xpub(xprv)
142         return xpub
143
144 class Xprv_To_Child_Xprv(Resource):
145
146     def post(self):
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)
151         return child_xprv
152
153 class Xpub_To_Child_Xpub(Resource):
154
155     def post(self):
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)
160         return child_xpub
161
162 class Get_Path_From_Index(Resource):
163
164     def post(self):
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)
170         return path_list
171
172
173 class Create_P2WPKH_Program(Resource):
174
175     def post(self):
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
183
184 class Create_Address(Resource):
185
186     def post(self):
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)
191         return address
192
193 class Broadcast_Transaction(Resource):
194
195     def post(self):
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)
200         return response
201
202 class Create_QRcode_Base64(Resource):
203
204     def post(self):
205         args = parser.parse_args()
206         s = args.get('s')
207         img = create_qrcode_base64(s)
208         return img
209
210 class Create_New_Key(Resource):
211
212     def post(self):
213         return create_new_key()