#ifndef __indy__payment__included__
#define __indy__payment__included__
#include "indy_mod.h"
#include "indy_types.h"
typedef indy_error_t (*indyCreatePaymentAddressCB)(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char* config,
indy_err_str_cb cb);
typedef indy_error_t (*indyAddRequestFeesCB)(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char* submitter_did,
const char* req_json,
const char* inputs_json,
const char* outputs_json,
const char* extra,
indy_err_str_cb cb);
typedef indy_error_t (*indyParseResponseWithFeesCB)(indy_handle_t command_handle,
const char* resp_json,
indy_err_str_cb cb);
typedef indy_error_t (*indyBuildGetPaymentSourcesRequestCB)(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char* submitter_did,
const char* payment_address,
indy_err_str_cb cb);
typedef indy_error_t (*indyParseGetPaymentSourcesResponseCB)(indy_handle_t command_handle,
const char* resp_json,
indy_err_str_cb cb);
typedef indy_error_t (*indyBuildPaymentReqCB)(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char* submitter_did,
const char* inputs_json,
const char* outputs_json,
const char* extra,
indy_err_str_cb cb);
typedef indy_error_t (*indyParsePaymentResponseCB)(indy_handle_t command_handle,
const char* resp_json,
indy_err_str_cb cb);
typedef indy_error_t (*indyBuildMintReqCB)(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char* submitter_did,
const char* outputs_json,
const char* extra,
indy_err_str_cb cb);
typedef indy_error_t (*indyBuildSetTxnFeesReqCB)(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char* submitter_did,
const char* fees_json,
indy_err_str_cb cb);
typedef indy_error_t (*indyBuildGetTxnFeesReqCB)(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char* submitter_did,
indy_err_str_cb cb);
typedef indy_error_t (*indyParseGetTxnFeesResponseCB)(indy_handle_t command_handle,
const char* resp_json,
indy_err_str_cb cb);
typedef indy_error_t (*indyBuildVerifyPaymentReqCB)(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char* submitter_did,
const char* receipt,
indy_err_str_cb cb);
typedef indy_error_t (*indyParseVerifyPaymentResponseCB)(indy_handle_t command_handle,
const char* resp_json,
indy_err_str_cb cb);
#ifdef __cplusplus
extern "C" {
#endif
extern indy_error_t indy_register_payment_method(indy_handle_t command_handle,
const char* payment_method,
indyCreatePaymentAddressCB create_payment_address_cb,
indyAddRequestFeesCB add_request_fees_cb,
indyParseResponseWithFeesCB parse_response_with_fees_cb,
indyBuildGetPaymentSourcesRequestCB build_get_payment_sources_request_cb,
indyParseGetPaymentSourcesResponseCB parse_get_payment_sources_response_cb,
indyBuildPaymentReqCB build_payment_req_cb,
indyParsePaymentResponseCB parse_payment_response_cb,
indyBuildMintReqCB build_mint_req_cb,
indyBuildSetTxnFeesReqCB build_set_txn_fees_req_cb,
indyBuildGetTxnFeesReqCB build_get_txn_fees_req_cb,
indyParseGetTxnFeesResponseCB parse_get_txn_fees_response_cb,
indyBuildVerifyPaymentReqCB build_verify_payment_req_cb,
indyParseVerifyPaymentResponseCB parse_verify_payment_response_cb,
indy_empty_cb cb
);
extern indy_error_t indy_create_payment_address(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char * payment_method,
const char * config,
indy_str_cb cb
);
extern indy_error_t indy_list_payment_addresses(indy_handle_t command_handle,
indy_handle_t wallet_handle,
indy_str_cb cb
);
extern indy_error_t indy_add_request_fees(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char * submitter_did,
const char * req_json,
const char * inputs_json,
const char * outputs_json,
const char * extra,
indy_str_str_cb cb
);
extern indy_error_t indy_parse_response_with_fees(indy_handle_t command_handle,
const char * payment_method,
const char * resp_json,
indy_str_cb cb
);
extern indy_error_t indy_build_get_payment_sources_request(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char * submitter_did,
const char * payment_address,
indy_str_str_cb cb
);
extern indy_error_t indy_parse_get_payment_sources_response(indy_handle_t command_handle,
const char * payment_method,
const char * resp_json,
indy_str_cb cb
);
extern indy_error_t indy_build_payment_req(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char * submitter_did,
const char * inputs_json,
const char * outputs_json,
const char * extra,
indy_str_str_cb cb
);
extern indy_error_t indy_parse_payment_response(indy_handle_t command_handle,
const char * payment_method,
const char * resp_json,
indy_str_cb cb
);
extern indy_error_t indy_build_mint_req(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char * submitter_did,
const char * outputs_json,
const char * extra,
indy_str_str_cb cb
);
extern indy_error_t indy_build_set_txn_fees_req(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char * submitter_did,
const char * payment_method,
const char * fees_json,
indy_str_cb cb
);
extern indy_error_t indy_build_get_txn_fees_req(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char * submitter_did,
const char * payment_method,
indy_str_cb cb
);
extern indy_error_t indy_parse_get_txn_fees_response(indy_handle_t command_handle,
const char * payment_method,
const char * resp_json,
indy_str_cb cb
);
extern indy_error_t indy_build_verify_payment_req(indy_handle_t command_handle,
indy_handle_t wallet_handle,
const char * submitter_did,
const char * receipt,
indy_str_str_cb cb
);
extern indy_error_t indy_parse_verify_payment_response(indy_handle_t command_handle,
const char * payment_method,
const char * resp_json,
indy_str_cb cb
);
#ifdef __cplusplus
}
#endif
#endif