33#define PKRSRV_DEPOSIT_SERVICE_DELAY 10000
34#define PKRSRV_DEPOSIT_MONERO_MIN_CONFIRMATIONS 1
43typedef enum pkrsrv_deposit_monero_deposit_status {
255typedef struct pkrsrv_deposit_monero_deposit_new_params {
uint64_t amount
Definition deposit.h:260
pkrsrv_account_t * account
Definition deposit.h:244
PGconn * pg_conn
Definition deposit.h:58
int account_index
Definition deposit.h:68
uint64_t fee
Definition deposit.h:181
pkrsrv_string_t * txid
Definition deposit.h:258
int index
Definition deposit.h:69
uint64_t id
Definition deposit.h:256
int max_height
Definition deposit.h:317
bool is_running
Definition deposit.h:57
uint64_t amount
Definition deposit.h:247
bool is_confirmed
Definition deposit.h:185
uint64_t height
Definition deposit.h:161
uint64_t height
Definition deposit.h:184
pkrsrv_string_t * txid
Definition deposit.h:155
uint64_t timestamp
Definition deposit.h:183
pkrsrv_string_t * txid
Definition deposit.h:178
pkrsrv_string_t * to_address
Definition deposit.h:261
bool is_confirmed
Definition deposit.h:162
pkrsrv_account_t * account
Definition deposit.h:257
uint64_t timestamp
Definition deposit.h:335
pkrsrv_string_t * address
Definition deposit.h:179
pthread_t thread
Definition deposit.h:56
pkrsrv_deposit_monero_deposit_status_t status
Definition deposit.h:338
uint64_t timestamp
Definition deposit.h:160
pkrsrv_string_t * to_address
Definition deposit.h:248
uint64_t timestamp
Definition deposit.h:259
uint64_t amount
Definition deposit.h:336
int min_height
Definition deposit.h:316
int limit
Definition deposit.h:319
int payment_id
Definition deposit.h:70
pkrsrv_string_t * address
Definition deposit.h:67
pkrsrv_deposit_monero_deposit_status_t status
Definition deposit.h:262
pkrsrv_string_t * txid
Definition deposit.h:245
uint64_t unlock_time
Definition deposit.h:182
pkrsrv_account_t * account
Definition deposit.h:333
pkrsrv_string_t * txid
Definition deposit.h:334
uint64_t amount
Definition deposit.h:157
pkrsrv_deposit_monero_deposit_status_t status
Definition deposit.h:315
uint64_t unlock_time
Definition deposit.h:159
uint64_t fee
Definition deposit.h:158
pkrsrv_string_t * address
Definition deposit.h:156
pkrsrv_string_t * to_address
Definition deposit.h:337
uint64_t amount
Definition deposit.h:180
uint64_t timestamp
Definition deposit.h:246
pkrsrv_deposit_monero_deposit_status_t status
Definition deposit.h:249
uint64_t id
Definition deposit.h:243
pkrsrv_account_t * account
Definition deposit.h:314
int offset
Definition deposit.h:318
void pkrsrv_deposit_service_thread_f(pkrsrv_deposit_service_t *service)
Deposit service thread function.
pkrsrv_deposit_monero_deposit_status_t
Definition deposit.h:43
pkrsrv_string_t * pkrsrv_deposit_monero_wallet_rpc_call(char *method, char *params)
Makes a Monero wallet RPC call.
bool pkrsrv_deposit_monero_wallet_open(char *wallet_name, char *password)
Initializes the deposit service.
pkrsrv_deposit_monero_deposit_t * pkrsrv_deposit_monero_deposit_create(PGconn *pg_conn, pkrsrv_deposit_monero_deposit_create_params_t params)
Creates a deposit on the database.
bool pkrsrv_deposit_monero_deposit_update_status(PGconn *pg_conn, pkrsrv_deposit_monero_deposit_t *deposit, pkrsrv_deposit_monero_deposit_status_t status)
Updates the status of a deposit.
void pkrsrv_deposit_monero_address_free(pkrsrv_deposit_monero_address_t *address)
Frees a Monero address object.
pkrsrv_deposit_monero_deposit_t * pkrsrv_deposit_monero_deposit_getby_txid(PGconn *pg_conn, pkrsrv_string_t *p_txid)
Gets a Monero deposit object by its transaction ID.
void pkrsrv_deposit_monero_deposit_free(pkrsrv_deposit_monero_deposit_t *deposit)
Frees a Monero deposit object.
pkrsrv_deposit_monero_tx_list_t * pkrsrv_deposit_monero_get_txs(int account_index, int address_index, int min_height)
Initializes the deposit service.
void pkrsrv_deposit_service_start(pkrsrv_deposit_service_t *service)
Starts the deposit service.
pkrsrv_deposit_monero_deposit_t * pkrsrv_deposit_monero_deposit_new(pkrsrv_deposit_monero_deposit_new_params_t params)
Creates a new Monero deposit object.
void pkrsrv_deposit_service_stop(pkrsrv_deposit_service_t *service)
Stops the deposit service.
void pkrsrv_deposit_monero_deposit_list_remove(pkrsrv_deposit_monero_deposit_list_t *list, pkrsrv_deposit_monero_deposit_t *deposit)
Removes a Monero deposit from the list.
pkrsrv_deposit_monero_address_t * pkrsrv_deposit_monero_address_new(pkrsrv_string_t *address, int account_index, int index, int payment_id)
Creates a new Monero address object.
pkrsrv_deposit_monero_deposit_list_t * pkrsrv_deposit_monero_get_deposits(PGconn *pg_conn, pkrsrv_deposit_monero_get_deposits_params_t params)
Retrieves deposits from the database.
bool pkrsrv_deposit_monero_get_balance(uint64_t *balance, uint64_t *unlocked_balance)
Initializes the deposit service.
pkrsrv_deposit_monero_tx_t * pkrsrv_deposit_monero_tx_list_get_by_txid(pkrsrv_deposit_monero_tx_list_t *list, pkrsrv_string_t *txid)
Gets a Monero transaction from the list by its transaction ID.
uint64_t pkrsrv_deposit_monero_get_height()
Initializes the deposit service.
bool pkrsrv_deposit_monero_get_address_balance(char *address, uint64_t *balance, uint64_t *unlocked_balance)
Initializes the deposit service.
bool pkrsrv_deposit_monero_wallet_create(char *wallet_name, char *password)
Initializes the deposit service.
void pkrsrv_deposit_monero_deposit_list_free(pkrsrv_deposit_monero_deposit_list_t *list)
Frees a Monero deposit list object.
bool pkrsrv_deposit_monero_wallet_close()
Initializes the deposit service.
void pkrsrv_deposit_monero_tx_free(pkrsrv_deposit_monero_tx_t *tx)
Frees a Monero transaction object.
pkrsrv_deposit_monero_deposit_list_t * pkrsrv_deposit_monero_deposit_list_new()
Creates a new Monero deposit list object.
void pkrsrv_deposit_service_free(pkrsrv_deposit_service_t *service)
Frees a deposit service object.
pkrsrv_deposit_monero_address_t * pkrsrv_deposit_monero_create_address(int account_index, int index)
Creates a new Monero address.
pkrsrv_deposit_monero_tx_list_t * pkrsrv_deposit_monero_tx_list_new()
Creates a new Monero transaction list object.
void pkrsrv_deposit_monero_tx_list_free(pkrsrv_deposit_monero_tx_list_t *list)
Frees a Monero transaction list object.
void pkrsrv_deposit_monero_tx_list_add(pkrsrv_deposit_monero_tx_list_t *list, pkrsrv_deposit_monero_tx_t *tx)
Adds a Monero transaction to the list.
void pkrsrv_deposit_monero_deposit_list_add(pkrsrv_deposit_monero_deposit_list_t *list, pkrsrv_deposit_monero_deposit_t *deposit)
Adds a Monero deposit to the list.
pkrsrv_deposit_service_t * pkrsrv_deposit_service_new()
Creates a new deposit service object.
void pkrsrv_deposit_monero_tx_list_remove(pkrsrv_deposit_monero_tx_list_t *list, pkrsrv_deposit_monero_tx_t *tx)
Removes a Monero transaction from the list.
pkrsrv_deposit_monero_tx_t * pkrsrv_deposit_monero_tx_new(pkrsrv_deposit_monero_tx_new_params_t params)
Creates a new Monero transaction object.
pkrsrv_string_t * pkrsrv_deposit_monero_get_main_address()
Initializes the deposit service.
@ PKRSRV_DEPOSIT_MONERO_DEPOSIT_STATUS_PENDING
Definition deposit.h:45
@ PKRSRV_DEPOSIT_MONERO_DEPOSIT_STATUS_NONE
Definition deposit.h:44
@ PKRSRV_DEPOSIT_MONERO_DEPOSIT_STATUS_FAILED
Definition deposit.h:47
@ PKRSRV_DEPOSIT_MONERO_DEPOSIT_STATUS_CONFIRMED
Definition deposit.h:46
Monero address object.
Definition deposit.h:65
Monero deposit object.
Definition deposit.h:240
Monero deposit list object.
Definition deposit.h:284
Initializes the deposit service.
Definition deposit.h:152
Creates a new Monero transaction object.
Definition deposit.h:169
Deposit service object.
Definition deposit.h:54
#define PKRSRV_REF_COUNTEDIFY()
Makes a structure reference-counted.
Definition ref.h:70
#define LISTIFY(type)
Definition sugar.h:38
#define ITEMIFY(type)
Definition sugar.h:44