OSDN Git Service

b97ceb3b4c21dc5aa0d1e98f0a7ccc4c6812cf2f
[bytom/bytom-kit.git] / app / api / resources.py
1 # from flask_restplus import inputs
2 from flask_restful import inputs
3 from flask_restful import Resource
4 from flask_restful import reqparse
5 from app.model.hello import get_hello_result
6 from app.model.signature import sign
7 from app.model.signature import verify
8 from app.model.key import create_entropy
9 from app.model.key import entropy_to_mnemonic
10 from app.model.key import mnemonic_to_seed
11 from app.model.key import seed_to_root_xprv
12 from app.model.key import xprv_to_expanded_private_key
13 from app.model.key import xpub_to_public_key
14 from app.model.key import xpub_verify
15 from app.model.key import xprv_sign
16 from app.model.key import xprv_to_xpub
17 from app.model.key import xprv_sign
18 from app.model.key import xprv_to_child_xprv
19 from app.model.key import xpub_to_child_xpub
20 from app.model.receiver import create_P2WPKH_program
21
22 parser = reqparse.RequestParser()
23 parser.add_argument('private_key_str', type=str)
24 parser.add_argument('message_str', type=str)
25 parser.add_argument('public_key_str', type=str)
26 parser.add_argument('signature_str', type=str)
27 parser.add_argument('entropy_str', type=str)
28 parser.add_argument('mnemonic_str', type=str)
29 parser.add_argument('seed_str', type=str)
30 parser.add_argument('xprv_str', type=str)
31 parser.add_argument('xpub_str', type=str)
32 parser.add_argument('path_list', type=str, action='append')
33 parser.add_argument('account_index_int', type=int)
34 parser.add_argument('address_index_int', type=int)
35 parser.add_argument('change_bool', type=inputs.boolean)
36
37 class Hello(Resource):
38
39     def get(self, content):
40         return get_hello_result(content)
41
42 class Sign(Resource):
43
44     def post(self):
45         args = parser.parse_args()
46         private_key = args.get('private_key_str')
47         message = args.get('message_str')
48         sig = sign(private_key, message)
49         return sig
50
51 class Verify(Resource):
52     
53     def post(self):
54         args = parser.parse_args()
55         public_key = args.get('public_key_str')
56         signature = args.get('signature_str')
57         message = args.get('message_str')
58         result = verify(public_key, signature, message)
59         return result
60
61 class Create_Entropy(Resource):
62
63     def post(self):
64         entropy = create_entropy()
65         return entropy
66
67 class Entropy_To_Mnemonic(Resource):
68
69     def post(self):
70         args = parser.parse_args()
71         entropy_str = args.get('entropy_str')
72         mnemonic_str = entropy_to_mnemonic(entropy_str)
73         return mnemonic_str
74
75 class Mnemonic_To_Seed(Resource):
76
77     def post(self):
78         args = parser.parse_args()
79         mnemonic_str = args.get('mnemonic_str')
80         seed_str = mnemonic_to_seed(mnemonic_str)
81         return seed_str
82
83 class Seed_To_Root_Xprv(Resource):
84
85     def post(self):
86         args = parser.parse_args()
87         seed_str = args.get('seed_str')
88         root_xprv_str = seed_to_root_xprv(seed_str)
89         return root_xprv_str
90
91 class Xprv_To_Expanded_Private_Key(Resource):
92
93     def post(self):
94         args = parser.parse_args()
95         xprv_str = args.get('xprv_str')
96         expanded_private_key_str = xprv_to_expanded_private_key(xprv_str)
97         return expanded_private_key_str
98
99 class Xpub_To_Public_Key(Resource):
100
101     def post(self):
102         args = parser.parse_args()
103         xpub_str = args.get('xpub_str')
104         public_key_str = xpub_to_public_key(xpub_str)
105         return public_key_str
106
107 class Xpub_Verify(Resource):
108
109     def post(self):
110         args = parser.parse_args()
111         xpub = args.get('xpub_str')
112         message = args.get('message_str')
113         signature = args.get('signature_str')
114         result = xpub_verify(xpub, message, signature)
115         return result
116
117 class Xprv_Sign(Resource):
118
119     def post(self):
120         args = parser.parse_args()
121         xprv = args.get('xprv_str')
122         message = args.get('message_str')
123         signature = xprv_sign(xprv, message)
124         return signature
125
126 class Xprv_To_Xpub(Resource):
127
128     def post(self):
129         args = parser.parse_args()
130         xprv = args.get('xprv_str')
131         xpub = xprv_to_xpub(xprv)
132         return xpub
133
134 class Xprv_To_Child_Xprv(Resource):
135
136     def post(self):
137         args = parser.parse_args()
138         xprv = args.get('xprv_str')
139         path = args.get('path_list')
140         child_xprv = xprv_to_child_xprv(xprv, path)
141         return child_xprv
142
143 class Xpub_To_Child_Xpub(Resource):
144
145     def post(self):
146         args = parser.parse_args()
147         xpub = args.get('xpub_str')
148         path = args.get('path_list')
149         child_xpub = xpub_to_child_xpub(xpub, path)
150         return child_xpub
151
152 class Create_P2WPKH_Program(Resource):
153
154     def post(self):
155         args = parser.parse_args()
156         account_index = args.get('account_index_int')
157         address_index = args.get('address_index_int')
158         change = args.get('change_bool')
159         xpub = args.get('xpub_str')
160         control_program = create_P2WPKH_program(account_index, address_index, change, xpub)
161         return control_program