wallet: Add payment struct to track status of transfers

Signed-off-by: Christian Decker <decker.christian@gmail.com>
This commit is contained in:
Christian Decker 2017-11-01 13:27:50 +01:00 committed by Rusty Russell
parent 4d8ad4e17d
commit 490ee76162
1 changed files with 29 additions and 0 deletions

View File

@ -62,6 +62,35 @@ struct wallet_channel {
struct peer *peer;
};
/* Possible states for a wallet_payment. Payments start in
* `PENDING`. Outgoing payments are set to `PAYMENT_COMPLETE` once we
* get the preimage matching the rhash, or to
* `PAYMENT_FAILED`. Incoming payments are set to `PAYMENT_COMPLETE`
* once the matching invoice is marked as complete, or `FAILED`
* otherwise. */
/* /!\ This is a DB ENUM, please do not change the numbering of any
* already defined elements (adding is ok) /!\ */
enum wallet_payment_status {
PAYMENT_PENDING = 0,
PAYMENT_COMPLETE = 1,
PAYMENT_FAILED = 2
};
/* Incoming and outgoing payments. A simple persisted representation
* of a payment we either initiated or received. This can be used by
* a UI to display the balance history. We explicitly exclude
* forwarded payments.
*/
struct wallet_payment {
u64 id;
u32 timestamp;
bool incoming;
struct sha256 payment_hash;
enum wallet_transfer_status status;
struct pubkey *destination;
u64 msatoshi;
};
/**
* wallet_new - Constructor for a new sqlite3 based wallet
*