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
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)
40 class Hello(Resource):
42 def get(self, content):
43 return get_hello_result(content)
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)
54 class Verify(Resource):
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)
64 class Create_Entropy(Resource):
67 entropy = create_entropy()
70 class Entropy_To_Mnemonic(Resource):
73 args = parser.parse_args()
74 entropy_str = args.get('entropy_str')
75 mnemonic_str = entropy_to_mnemonic(entropy_str)
78 class Mnemonic_To_Seed(Resource):
81 args = parser.parse_args()
82 mnemonic_str = args.get('mnemonic_str')
83 seed_str = mnemonic_to_seed(mnemonic_str)
86 class Seed_To_Root_Xprv(Resource):
89 args = parser.parse_args()
90 seed_str = args.get('seed_str')
91 root_xprv_str = seed_to_root_xprv(seed_str)
94 class Xprv_To_Expanded_Private_Key(Resource):
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
102 class Xpub_To_Public_Key(Resource):
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
110 class Xpub_Verify(Resource):
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)
120 class Xprv_Sign(Resource):
123 args = parser.parse_args()
124 xprv = args.get('xprv_str')
125 message = args.get('message_str')
126 signature = xprv_sign(xprv, message)
129 class Xprv_To_Xpub(Resource):
132 args = parser.parse_args()
133 xprv = args.get('xprv_str')
134 xpub = xprv_to_xpub(xprv)
137 class Xprv_To_Child_Xprv(Resource):
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)
146 class Xpub_To_Child_Xpub(Resource):
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)
155 class Get_Path_From_Index(Resource):
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)
166 class Create_P2WPKH_Program(Resource):
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
177 class Create_Address(Resource):
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)