Skip to main content

indy_sys/
payments.rs

1use super::*;
2
3use {CString, Error, CommandHandle, WalletHandle};
4
5extern {
6    #[no_mangle]
7    pub fn indy_register_payment_method(command_handle: CommandHandle,
8                                        payment_method: CString,
9                                        create_payment_address: Option<CreatePaymentAddressCB>,
10                                        add_request_fees: Option<AddRequestFeesCB>,
11                                        parse_response_with_fees: Option<ParseResponseWithFeesCB>,
12                                        build_get_payment_sources_request: Option<BuildGetPaymentSourcesRequestCB>,
13                                        parse_get_payment_sources_response: Option<ParseGetPaymentSourcesResponseCB>,
14                                        build_payment_req: Option<BuildPaymentReqCB>,
15                                        parse_payment_response: Option<ParsePaymentResponseCB>,
16                                        build_mint_req: Option<BuildMintReqCB>,
17                                        build_set_txn_fees_req: Option<BuildSetTxnFeesReqCB>,
18                                        build_get_txn_fees_req: Option<BuildGetTxnFeesReqCB>,
19                                        parse_get_txn_fees_response: Option<ParseGetTxnFeesResponseCB>,
20                                        build_verify_payment_req: Option<BuildVerifyPaymentReqCB>,
21                                        parse_verify_payment_response: Option<ParseVerifyPaymentResponseCB>,
22                                        sign_with_address: Option<SignWithAddressCB>,
23                                        verify_with_address: Option<VerifyWithAddressCB>,
24                                        cb: Option<ResponseEmptyCB>) -> Error;
25
26    #[no_mangle]
27    pub fn indy_create_payment_address(command_handle: CommandHandle,
28                                       wallet_handle: WalletHandle,
29                                       payment_method: CString,
30                                       config: CString,
31                                       cb: Option<ResponseStringCB>) -> Error;
32
33    #[no_mangle]
34    pub fn indy_list_payment_addresses(command_handle: CommandHandle,
35                                       wallet_handle: WalletHandle,
36                                       cb: Option<ResponseStringCB>) -> Error;
37
38    #[no_mangle]
39    pub fn indy_add_request_fees(command_handle: CommandHandle,
40                                 wallet_handle: WalletHandle,
41                                 submitter_did: CString,
42                                 req_json: CString,
43                                 inputs_json: CString,
44                                 outputs_json: CString,
45                                 extra: CString,
46                                 cb: Option<ResponseStringStringCB>) -> Error;
47
48    #[no_mangle]
49    pub fn indy_parse_response_with_fees(command_handle: CommandHandle,
50                                         payment_method: CString,
51                                         resp_json: CString,
52                                         cb: Option<ResponseStringCB>) -> Error;
53
54    #[no_mangle]
55    pub fn indy_build_get_payment_sources_with_from_request(command_handle: CommandHandle,
56                                                            wallet_handle: WalletHandle,
57                                                            submitter_did: CString,
58                                                            payment_address: CString,
59                                                            from: i64,
60                                                            cb: Option<ResponseStringStringCB>) -> Error;
61
62    #[no_mangle]
63    pub fn indy_parse_get_payment_sources_with_from_response(command_handle: CommandHandle,
64                                                   payment_method: CString,
65                                                   resp_json: CString,
66                                                   cb: Option<ResponseStringI64CB>) -> Error;
67
68    #[no_mangle]
69    pub fn indy_build_get_payment_sources_request(command_handle: CommandHandle,
70                                                  wallet_handle: WalletHandle,
71                                                  submitter_did: CString,
72                                                  payment_address: CString,
73                                                  cb: Option<ResponseStringStringCB>) -> Error;
74
75    #[no_mangle]
76    pub fn indy_parse_get_payment_sources_response(command_handle: CommandHandle,
77                                                   payment_method: CString,
78                                                   resp_json: CString,
79                                                   cb: Option<ResponseStringCB>) -> Error;
80
81    #[no_mangle]
82    pub fn indy_build_payment_req(command_handle: CommandHandle,
83                                  wallet_handle: WalletHandle,
84                                  submitter_did: CString,
85                                  inputs_json: CString,
86                                  outputs_json: CString,
87                                  extra: CString,
88                                  cb: Option<ResponseStringStringCB>) -> Error;
89
90    #[no_mangle]
91    pub fn indy_parse_payment_response(command_handle: CommandHandle,
92                                       payment_method: CString,
93                                       resp_json: CString,
94                                       cb: Option<ResponseStringCB>) -> Error;
95
96    #[no_mangle]
97    pub fn indy_prepare_payment_extra_with_acceptance_data(command_handle: CommandHandle,
98                                                           extra_json: CString,
99                                                           text: CString,
100                                                           version: CString,
101                                                           hash: CString,
102                                                           acc_mech_type: CString,
103                                                           time_of_acceptance: u64,
104                                                           cb: Option<ResponseStringCB>) -> Error;
105
106    #[no_mangle]
107    pub fn indy_build_mint_req(command_handle: CommandHandle,
108                               wallet_handle: WalletHandle,
109                               submitter_did: CString,
110                               outputs_json: CString,
111                               extra: CString,
112                               cb: Option<ResponseStringStringCB>) -> Error;
113
114    #[no_mangle]
115    pub fn indy_build_set_txn_fees_req(command_handle: CommandHandle,
116                                       wallet_handle: WalletHandle,
117                                       submitter_did: CString,
118                                       payment_method: CString,
119                                       fees_json: CString,
120                                       cb: Option<ResponseStringCB>) -> Error;
121
122    #[no_mangle]
123    pub fn indy_build_get_txn_fees_req(command_handle: CommandHandle,
124                                       wallet_handle: WalletHandle,
125                                       submitter_did: CString,
126                                       payment_method: CString,
127                                       cb: Option<ResponseStringCB>) -> Error;
128
129    #[no_mangle]
130    pub fn indy_parse_get_txn_fees_response(command_handle: CommandHandle,
131                                            payment_method: CString,
132                                            resp_json: CString,
133                                            cb: Option<ResponseStringCB>) -> Error;
134
135    #[no_mangle]
136    pub fn indy_build_verify_payment_req(command_handle: CommandHandle,
137                                         wallet_handle: WalletHandle,
138                                         submitter_did: CString,
139                                         receipt: CString,
140                                         cb: Option<ResponseStringStringCB>) -> Error;
141
142    #[no_mangle]
143    pub fn indy_parse_verify_payment_response(command_handle: CommandHandle,
144                                              payment_method: CString,
145                                              resp_json: CString,
146                                              cb: Option<ResponseStringCB>) -> Error;
147
148    #[no_mangle]
149    pub fn indy_get_request_info(command_handle: CommandHandle,
150                                 get_auth_rule_resp_json: CString,
151                                 requester_info_json: CString,
152                                 fees_json: CString,
153                                 cb: Option<ResponseStringCB>) -> Error;
154    pub fn indy_sign_with_address(command_handle: CommandHandle,
155                                  wallet_handle: WalletHandle,
156                                  address: CString,
157                                  message_raw: BString,
158                                  message_len: u32,
159                                  cb: Option<ResponseSliceCB>) -> Error;
160    #[no_mangle]
161    pub fn indy_verify_with_address(command_handle: CommandHandle,
162                                    address: CString,
163                                    message_raw: BString,
164                                    message_len: u32,
165                                    signature_raw: BString,
166                                    signature_len: u32,
167                                    cb: Option<ResponseBoolCB>) -> Error;
168    
169}
170
171pub type CreatePaymentAddressCB = extern fn(command_handle: CommandHandle,
172                                            wallet_handle: WalletHandle,
173                                            config: CString,
174                                            cb: Option<extern fn(command_handle_: CommandHandle,
175                                                                 err: Error,
176                                                                 payment_address: CString) -> Error>) -> Error;
177pub type AddRequestFeesCB = extern fn(command_handle: CommandHandle,
178                                      wallet_handle: WalletHandle,
179                                      submitter_did: CString,
180                                      req_json: CString,
181                                      inputs_json: CString,
182                                      outputs_json: CString,
183                                      extra: CString,
184                                      cb: Option<extern fn(command_handle_: CommandHandle,
185                                                           err: Error,
186                                                           req_with_fees_json: CString) -> Error>) -> Error;
187pub type ParseResponseWithFeesCB = extern fn(command_handle: CommandHandle,
188                                             resp_json: CString,
189                                             cb: Option<extern fn(command_handle_: CommandHandle,
190                                                                  err: Error,
191                                                                  receipts_json: CString) -> Error>) -> Error;
192pub type BuildGetPaymentSourcesRequestCB = extern fn(command_handle: CommandHandle,
193                                                     wallet_handle: WalletHandle,
194                                                     submitter_did: CString,
195                                                     payment_address: CString,
196                                                     from: i64,
197                                                     cb: Option<extern fn(command_handle_: CommandHandle,
198                                                                          err: Error,
199                                                                          get_sources_txn_json: CString) -> Error>) -> Error;
200pub type ParseGetPaymentSourcesResponseCB = extern fn(command_handle: CommandHandle,
201                                                      resp_json: CString,
202                                                      cb: Option<extern fn(command_handle_: CommandHandle,
203                                                                           err: Error,
204                                                                           sources_json: CString,
205                                                                           next: i64) -> Error>) -> Error;
206pub type BuildPaymentReqCB = extern fn(command_handle: CommandHandle,
207                                       wallet_handle: WalletHandle,
208                                       submitter_did: CString,
209                                       inputs_json: CString,
210                                       outputs_json: CString,
211                                       extra: CString,
212                                       cb: Option<extern fn(command_handle_: CommandHandle,
213                                                            err: Error,
214                                                            payment_req_json: CString) -> Error>) -> Error;
215pub type ParsePaymentResponseCB = extern fn(command_handle: CommandHandle,
216                                            resp_json: CString,
217                                            cb: Option<extern fn(command_handle_: CommandHandle,
218                                                                 err: Error,
219                                                                 receipts_json: CString) -> Error>) -> Error;
220pub type BuildMintReqCB = extern fn(command_handle: CommandHandle,
221                                    wallet_handle: WalletHandle,
222                                    submitter_did: CString,
223                                    outputs_json: CString,
224                                    extra: CString,
225                                    cb: Option<extern fn(command_handle_: CommandHandle,
226                                                         err: Error,
227                                                         mint_req_json: CString) -> Error>) -> Error;
228pub type BuildSetTxnFeesReqCB = extern fn(command_handle: CommandHandle,
229                                          wallet_handle: WalletHandle,
230                                          submitter_did: CString,
231                                          fees_json: CString,
232                                          cb: Option<extern fn(command_handle_: CommandHandle,
233                                                               err: Error,
234                                                               set_txn_fees_json: CString) -> Error>) -> Error;
235pub type BuildGetTxnFeesReqCB = extern fn(command_handle: CommandHandle,
236                                          wallet_handle: WalletHandle,
237                                          submitter_did: CString,
238                                          cb: Option<extern fn(command_handle_: CommandHandle,
239                                                               err: Error,
240                                                               get_txn_fees_json: CString) -> Error>) -> Error;
241pub type ParseGetTxnFeesResponseCB = extern fn(command_handle: CommandHandle,
242                                               resp_json: CString,
243                                               cb: Option<extern fn(command_handle_: CommandHandle,
244                                                                    err: Error,
245                                                                    fees_json: CString) -> Error>) -> Error;
246pub type BuildVerifyPaymentReqCB = extern fn(command_handle: CommandHandle,
247                                             wallet_handle: WalletHandle,
248                                             submitter_did: CString,
249                                             receipt: CString,
250                                             cb: Option<extern fn(command_handle_: CommandHandle,
251                                                                  err: Error,
252                                                                  verify_txn_json: CString) -> Error>) -> Error;
253pub type ParseVerifyPaymentResponseCB = extern fn(command_handle: CommandHandle,
254                                                  resp_json: CString,
255                                                  cb: Option<extern fn(command_handle_: CommandHandle,
256                                                                       err: Error,
257                                                                       txn_json: CString) -> Error>) -> Error;
258
259pub type SignWithAddressCB = extern fn (command_handle: CommandHandle, wallet_handle: WalletHandle,
260                                        address: CString,
261                                        message_raw: BString, message_len: u32,
262                                        cb: Option<extern fn(command_handle: i32, err: Error, raw: BString, len: u32)>) -> Error;
263
264pub type VerifyWithAddressCB = extern fn (command_handle: i32, address: CString,
265                                          message_raw: BString, message_len: u32,
266                                          signature_raw: BString, signature_len: u32,
267                                          cb: Option<extern fn(command_handle: i32, err: Error, result: bool)>) -> Error;
268