OSDN Git Service

add path_list test data
[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
23 parser = reqparse.RequestParser()
24 parser.add_argument('private_key_str', type=str)
25 parser.add_argument('message_str', type=str)
26 parser.add_argument('public_key_str', type=str)
27 parser.add_argument('signature_str', type=str)
28 parser.add_argument('entropy_str', type=str)
29 parser.add_argument('mnemonic_str', type=str)
30 parser.add_argument('seed_str', type=str)
31 parser.add_argument('xprv_str', type=str)
32 parser.add_argument('xpub_str', type=str)
33 parser.add_argument('path_list', type=str, action='append')
34 parser.add_argument('account_index_int', type=int)
35 parser.add_argument('address_index_int', type=int)
36 parser.add_argument('change_bool', type=inputs.boolean)
37 parser.add_argument('control_program_str', type=str)
38 parser.add_argument('network_str', type=str)
39
40 class Hello(Resource):
41
42     def get(self, content):
43         return get_hello_result(content)
44
45 class Sign(Resource):
46
47     def post(self):
48         args = parser.parse_args()
49         private_key = args.get('private_key_str')
50         message = args.get('message_str')
51         sig = sign(private_key, message)
52         return sig
53
54 class Verify(Resource):
55     
56     def post(self):
57         args = parser.parse_args()
58         public_key = args.get('public_key_str')
59         signature = args.get('signature_str')
60         message = args.get('message_str')
61         result = verify(public_key, signature, message)
62         return result
63
64 class Create_Entropy(Resource):
65
66     def post(self):
67         entropy = create_entropy()
68         return entropy
69
70 class Entropy_To_Mnemonic(Resource):
71
72     def post(self):
73         args = parser.parse_args()
74         entropy_str = args.get('entropy_str')
75         mnemonic_str = entropy_to_mnemonic(entropy_str)
76         return mnemonic_str
77
78 class Mnemonic_To_Seed(Resource):
79
80     def post(self):
81         args = parser.parse_args()
82         mnemonic_str = args.get('mnemonic_str')
83         seed_str = mnemonic_to_seed(mnemonic_str)
84         return seed_str
85
86 class Seed_To_Root_Xprv(Resource):
87
88     def post(self):
89         args = parser.parse_args()
90         seed_str = args.get('seed_str')
91         root_xprv_str = seed_to_root_xprv(seed_str)
92         return root_xprv_str
93
94 class Xprv_To_Expanded_Private_Key(Resource):
95
96     def post(self):
97         args = parser.parse_args()
98         xprv_str = args.get('xprv_str')
99         expanded_private_key_str = xprv_to_expanded_private_key(xprv_str)
100         return expanded_private_key_str
101
102 class Xpub_To_Public_Key(Resource):
103
104     def post(self):
105         args = parser.parse_args()
106         xpub_str = args.get('xpub_str')
107         public_key_str = xpub_to_public_key(xpub_str)
108         return public_key_str
109
110 class Xpub_Verify(Resource):
111
112     def post(self):
113         args = parser.parse_args()
114         xpub = args.get('xpub_str')
115         message = args.get('message_str')
116         signature = args.get('signature_str')
117         result = xpub_verify(xpub, message, signature)
118         return result
119
120 class Xprv_Sign(Resource):
121
122     def post(self):
123         args = parser.parse_args()
124         xprv = args.get('xprv_str')
125         message = args.get('message_str')
126         signature = xprv_sign(xprv, message)
127         return signature
128
129 class Xprv_To_Xpub(Resource):
130
131     def post(self):
132         args = parser.parse_args()
133         xprv = args.get('xprv_str')
134         xpub = xprv_to_xpub(xprv)
135         return xpub
136
137 class Xprv_To_Child_Xprv(Resource):
138
139     def post(self):
140         args = parser.parse_args()
141         xprv = args.get('xprv_str')
142         path = args.get('path_list')
143         child_xprv = xprv_to_child_xprv(xprv, path)
144         return child_xprv
145
146 class Xpub_To_Child_Xpub(Resource):
147
148     def post(self):
149         args = parser.parse_args()
150         xpub = args.get('xpub_str')
151         path = args.get('path_list')
152         child_xpub = xpub_to_child_xpub(xpub, path)
153         return child_xpub
154
155 class Get_Path_From_Index(Resource):
156
157     def post(self):
158         args = parser.parse_args()
159         account_index = args.get('account_index_int')
160         address_index = args.get('address_index_int')
161         change = args.get('change_bool')
162         path_list = get_path_from_index(account_index, address_index, change)
163         return path_list
164
165
166 class Create_P2WPKH_Program(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         xpub = args.get('xpub_str')
174         control_program = create_P2WPKH_program(account_index, address_index, change, xpub)
175         return control_program
176
177 class Create_Address(Resource):
178
179     def post(self):
180         args = parser.parse_args()
181         control_program = args.get('control_program_str')
182         network = args.get('network_str')
183         address = create_address(control_program, network)
184         return address