mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-21 14:24:09 +01:00
wallet: Rip out the txtypes type in favor of enum wallet_tx_type
Suggested-by: Rusty Russell <@rustyrussell> Signed-off-by: Christian Decker <decker.christian@gmail.com>
This commit is contained in:
parent
3c777fa0f3
commit
b6b548a983
15 changed files with 40 additions and 21 deletions
|
@ -53,6 +53,7 @@ COMMON_SRC_NOGEN := \
|
||||||
common/utils.c \
|
common/utils.c \
|
||||||
common/utxo.c \
|
common/utxo.c \
|
||||||
common/version.c \
|
common/version.c \
|
||||||
|
common/wallet.c \
|
||||||
common/wallet_tx.c \
|
common/wallet_tx.c \
|
||||||
common/wireaddr.c \
|
common/wireaddr.c \
|
||||||
common/wire_error.c \
|
common/wire_error.c \
|
||||||
|
@ -60,7 +61,7 @@ COMMON_SRC_NOGEN := \
|
||||||
|
|
||||||
COMMON_SRC_GEN := common/gen_status_wire.c common/gen_peer_status_wire.c
|
COMMON_SRC_GEN := common/gen_status_wire.c common/gen_peer_status_wire.c
|
||||||
|
|
||||||
COMMON_HEADERS_NOGEN := $(COMMON_SRC_NOGEN:.c=.h) common/overflows.h common/htlc.h common/status_levels.h common/json_command.h common/jsonrpc_errors.h common/wallet.h
|
COMMON_HEADERS_NOGEN := $(COMMON_SRC_NOGEN:.c=.h) common/overflows.h common/htlc.h common/status_levels.h common/json_command.h common/jsonrpc_errors.h
|
||||||
COMMON_HEADERS_GEN := common/gen_htlc_state_names.h common/gen_status_wire.h common/gen_peer_status_wire.h
|
COMMON_HEADERS_GEN := common/gen_htlc_state_names.h common/gen_status_wire.h common/gen_peer_status_wire.h
|
||||||
|
|
||||||
COMMON_HEADERS := $(COMMON_HEADERS_GEN) $(COMMON_HEADERS_NOGEN)
|
COMMON_HEADERS := $(COMMON_HEADERS_GEN) $(COMMON_HEADERS_NOGEN)
|
||||||
|
|
12
common/wallet.c
Normal file
12
common/wallet.c
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#include <common/wallet.h>
|
||||||
|
|
||||||
|
enum wallet_tx_type fromwire_wallet_tx_type(const u8 **cursor, size_t *max)
|
||||||
|
{
|
||||||
|
enum wallet_tx_type type = fromwire_u16(cursor, max);
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
void towire_wallet_tx_type(u8 **pptr, const enum wallet_tx_type type)
|
||||||
|
{
|
||||||
|
towire_u16(pptr, type);
|
||||||
|
}
|
|
@ -2,6 +2,7 @@
|
||||||
#define LIGHTNING_COMMON_WALLET_H
|
#define LIGHTNING_COMMON_WALLET_H
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <wire/wire.h>
|
||||||
|
|
||||||
/* Types of transactions we store in the `transactions` table. Mainly used for
|
/* Types of transactions we store in the `transactions` table. Mainly used for
|
||||||
* display purposes later. */
|
* display purposes later. */
|
||||||
|
@ -19,7 +20,8 @@ enum wallet_tx_type {
|
||||||
TX_CHANNEL_PENALTY = 512,
|
TX_CHANNEL_PENALTY = 512,
|
||||||
TX_CHANNEL_CHEAT = 1024,
|
TX_CHANNEL_CHEAT = 1024,
|
||||||
};
|
};
|
||||||
/* Any combination of the above wallet_tx_types */
|
|
||||||
typedef unsigned short txtypes;
|
enum wallet_tx_type fromwire_wallet_tx_type(const u8 **cursor, size_t *max);
|
||||||
|
void towire_wallet_tx_type(u8 **pptr, const enum wallet_tx_type type);
|
||||||
|
|
||||||
#endif /* LIGHTNING_COMMON_WALLET_H */
|
#endif /* LIGHTNING_COMMON_WALLET_H */
|
||||||
|
|
|
@ -52,6 +52,7 @@ LIGHTNINGD_COMMON_OBJS := \
|
||||||
common/utils.o \
|
common/utils.o \
|
||||||
common/utxo.o \
|
common/utxo.o \
|
||||||
common/version.o \
|
common/version.o \
|
||||||
|
common/wallet.o \
|
||||||
common/wallet_tx.o \
|
common/wallet_tx.o \
|
||||||
common/wire_error.o \
|
common/wire_error.o \
|
||||||
common/wireaddr.o \
|
common/wireaddr.o \
|
||||||
|
|
|
@ -333,7 +333,7 @@ struct channel *channel_by_dbid(struct lightningd *ld, const u64 dbid)
|
||||||
void channel_set_last_tx(struct channel *channel,
|
void channel_set_last_tx(struct channel *channel,
|
||||||
struct bitcoin_tx *tx,
|
struct bitcoin_tx *tx,
|
||||||
const struct bitcoin_signature *sig,
|
const struct bitcoin_signature *sig,
|
||||||
txtypes txtypes)
|
enum wallet_tx_type txtypes)
|
||||||
{
|
{
|
||||||
channel->last_sig = *sig;
|
channel->last_sig = *sig;
|
||||||
tal_free(channel->last_tx);
|
tal_free(channel->last_tx);
|
||||||
|
|
|
@ -76,7 +76,7 @@ struct channel {
|
||||||
|
|
||||||
/* Last tx they gave us. */
|
/* Last tx they gave us. */
|
||||||
struct bitcoin_tx *last_tx;
|
struct bitcoin_tx *last_tx;
|
||||||
txtypes last_tx_type;
|
enum wallet_tx_type last_tx_type;
|
||||||
struct bitcoin_signature last_sig;
|
struct bitcoin_signature last_sig;
|
||||||
secp256k1_ecdsa_signature *last_htlc_sigs;
|
secp256k1_ecdsa_signature *last_htlc_sigs;
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ struct channel *channel_by_dbid(struct lightningd *ld, const u64 dbid);
|
||||||
void channel_set_last_tx(struct channel *channel,
|
void channel_set_last_tx(struct channel *channel,
|
||||||
struct bitcoin_tx *tx,
|
struct bitcoin_tx *tx,
|
||||||
const struct bitcoin_signature *sig,
|
const struct bitcoin_signature *sig,
|
||||||
txtypes type);
|
enum wallet_tx_type type);
|
||||||
|
|
||||||
static inline bool channel_can_add_htlc(const struct channel *channel)
|
static inline bool channel_can_add_htlc(const struct channel *channel)
|
||||||
{
|
{
|
||||||
|
|
|
@ -167,7 +167,7 @@ static void handle_onchain_broadcast_tx(struct channel *channel, const u8 *msg)
|
||||||
struct bitcoin_tx *tx;
|
struct bitcoin_tx *tx;
|
||||||
struct wallet *w = channel->peer->ld->wallet;
|
struct wallet *w = channel->peer->ld->wallet;
|
||||||
struct bitcoin_txid txid;
|
struct bitcoin_txid txid;
|
||||||
txtypes type;
|
enum wallet_tx_type type;
|
||||||
|
|
||||||
if (!fromwire_onchain_broadcast_tx(msg, msg, &tx, &type)) {
|
if (!fromwire_onchain_broadcast_tx(msg, msg, &tx, &type)) {
|
||||||
channel_internal_error(channel, "Invalid onchain_broadcast_tx");
|
channel_internal_error(channel, "Invalid onchain_broadcast_tx");
|
||||||
|
@ -294,7 +294,7 @@ static void onchain_add_utxo(struct channel *channel, const u8 *msg)
|
||||||
static void onchain_transaction_annotate(struct channel *channel, const u8 *msg)
|
static void onchain_transaction_annotate(struct channel *channel, const u8 *msg)
|
||||||
{
|
{
|
||||||
struct bitcoin_txid txid;
|
struct bitcoin_txid txid;
|
||||||
txtypes type;
|
enum wallet_tx_type type;
|
||||||
if (!fromwire_onchain_transaction_annotate(msg, &txid, &type))
|
if (!fromwire_onchain_transaction_annotate(msg, &txid, &type))
|
||||||
fatal("onchaind gave invalid onchain_transaction_annotate "
|
fatal("onchaind gave invalid onchain_transaction_annotate "
|
||||||
"message: %s",
|
"message: %s",
|
||||||
|
|
|
@ -563,8 +563,8 @@ void wallet_transaction_add(struct wallet *w UNNEEDED, const struct bitcoin_tx *
|
||||||
{ fprintf(stderr, "wallet_transaction_add called!\n"); abort(); }
|
{ fprintf(stderr, "wallet_transaction_add called!\n"); abort(); }
|
||||||
/* Generated stub for wallet_transaction_annotate */
|
/* Generated stub for wallet_transaction_annotate */
|
||||||
void wallet_transaction_annotate(struct wallet *w UNNEEDED,
|
void wallet_transaction_annotate(struct wallet *w UNNEEDED,
|
||||||
const struct bitcoin_txid *txid UNNEEDED, txtypes type UNNEEDED,
|
const struct bitcoin_txid *txid UNNEEDED,
|
||||||
u64 channel_id UNNEEDED)
|
enum wallet_tx_type type UNNEEDED, u64 channel_id UNNEEDED)
|
||||||
{ fprintf(stderr, "wallet_transaction_annotate called!\n"); abort(); }
|
{ fprintf(stderr, "wallet_transaction_annotate called!\n"); abort(); }
|
||||||
/* Generated stub for wallet_transaction_locate */
|
/* Generated stub for wallet_transaction_locate */
|
||||||
struct txlocator *wallet_transaction_locate(const tal_t *ctx UNNEEDED, struct wallet *w UNNEEDED,
|
struct txlocator *wallet_transaction_locate(const tal_t *ctx UNNEEDED, struct wallet *w UNNEEDED,
|
||||||
|
|
|
@ -70,6 +70,7 @@ ONCHAIND_COMMON_OBJS := \
|
||||||
common/utils.o \
|
common/utils.o \
|
||||||
common/utxo.o \
|
common/utxo.o \
|
||||||
common/version.o \
|
common/version.o \
|
||||||
|
common/wallet.o \
|
||||||
hsmd/gen_hsm_wire.o
|
hsmd/gen_hsm_wire.o
|
||||||
|
|
||||||
onchaind/gen_onchain_wire.h: $(WIRE_GEN) onchaind/onchain_wire.csv
|
onchaind/gen_onchain_wire.h: $(WIRE_GEN) onchaind/onchain_wire.csv
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include <common/derive_basepoints.h>
|
#include <common/derive_basepoints.h>
|
||||||
#include <common/htlc_wire.h>
|
#include <common/htlc_wire.h>
|
||||||
|
#include <common/wallet.h>
|
||||||
|
|
||||||
# Begin! Here's the onchain tx which spends funding tx, followed by all HTLCs.
|
# Begin! Here's the onchain tx which spends funding tx, followed by all HTLCs.
|
||||||
onchain_init,5001
|
onchain_init,5001
|
||||||
|
@ -48,7 +49,7 @@ onchain_init_reply,5101
|
||||||
# onchaind->master: Send out a tx.
|
# onchaind->master: Send out a tx.
|
||||||
onchain_broadcast_tx,5003
|
onchain_broadcast_tx,5003
|
||||||
onchain_broadcast_tx,,tx,struct bitcoin_tx
|
onchain_broadcast_tx,,tx,struct bitcoin_tx
|
||||||
onchain_broadcast_tx,,type,u16
|
onchain_broadcast_tx,,type,enum wallet_tx_type
|
||||||
|
|
||||||
# master->onchaind: Notifier that an output has been spent by input_num of tx.
|
# master->onchaind: Notifier that an output has been spent by input_num of tx.
|
||||||
onchain_spent,5004
|
onchain_spent,5004
|
||||||
|
@ -105,4 +106,4 @@ onchain_dev_memleak_reply,,leak,bool
|
||||||
# transactions.
|
# transactions.
|
||||||
onchain_transaction_annotate,5034
|
onchain_transaction_annotate,5034
|
||||||
onchain_transaction_annotate,,txid,struct bitcoin_txid
|
onchain_transaction_annotate,,txid,struct bitcoin_txid
|
||||||
onchain_transaction_annotate,,type,u16
|
onchain_transaction_annotate,,type,enum wallet_tx_type
|
||||||
|
|
|
|
@ -458,7 +458,7 @@ static void ignore_output(struct tracked_output *out)
|
||||||
out->resolved->tx_type = SELF;
|
out->resolved->tx_type = SELF;
|
||||||
}
|
}
|
||||||
|
|
||||||
static txtypes onchain_txtype_to_wallet_txtype(enum tx_type t)
|
static enum wallet_tx_type onchain_txtype_to_wallet_txtype(enum tx_type t)
|
||||||
{
|
{
|
||||||
switch (t) {
|
switch (t) {
|
||||||
case FUNDING_TRANSACTION:
|
case FUNDING_TRANSACTION:
|
||||||
|
@ -980,7 +980,8 @@ static void steal_htlc_tx(struct tracked_output *out)
|
||||||
propose_resolution(out, tx, 0, tx_type);
|
propose_resolution(out, tx, 0, tx_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void onchain_transaction_annotate(const struct bitcoin_txid *txid, txtypes type)
|
static void onchain_transaction_annotate(const struct bitcoin_txid *txid,
|
||||||
|
enum wallet_tx_type type)
|
||||||
{
|
{
|
||||||
u8 *msg = towire_onchain_transaction_annotate(tmpctx, txid, type);
|
u8 *msg = towire_onchain_transaction_annotate(tmpctx, txid, type);
|
||||||
wire_sync_write(REQ_FD, take(msg));
|
wire_sync_write(REQ_FD, take(msg));
|
||||||
|
|
|
@ -130,7 +130,7 @@ u8 *towire_onchain_add_utxo(const tal_t *ctx UNNEEDED, const struct bitcoin_txid
|
||||||
u8 *towire_onchain_all_irrevocably_resolved(const tal_t *ctx UNNEEDED)
|
u8 *towire_onchain_all_irrevocably_resolved(const tal_t *ctx UNNEEDED)
|
||||||
{ fprintf(stderr, "towire_onchain_all_irrevocably_resolved called!\n"); abort(); }
|
{ fprintf(stderr, "towire_onchain_all_irrevocably_resolved called!\n"); abort(); }
|
||||||
/* Generated stub for towire_onchain_broadcast_tx */
|
/* Generated stub for towire_onchain_broadcast_tx */
|
||||||
u8 *towire_onchain_broadcast_tx(const tal_t *ctx UNNEEDED, const struct bitcoin_tx *tx UNNEEDED, u16 type UNNEEDED)
|
u8 *towire_onchain_broadcast_tx(const tal_t *ctx UNNEEDED, const struct bitcoin_tx *tx UNNEEDED, enum wallet_tx_type type UNNEEDED)
|
||||||
{ fprintf(stderr, "towire_onchain_broadcast_tx called!\n"); abort(); }
|
{ fprintf(stderr, "towire_onchain_broadcast_tx called!\n"); abort(); }
|
||||||
/* Generated stub for towire_onchain_dev_memleak_reply */
|
/* Generated stub for towire_onchain_dev_memleak_reply */
|
||||||
u8 *towire_onchain_dev_memleak_reply(const tal_t *ctx UNNEEDED, bool leak UNNEEDED)
|
u8 *towire_onchain_dev_memleak_reply(const tal_t *ctx UNNEEDED, bool leak UNNEEDED)
|
||||||
|
@ -148,7 +148,7 @@ u8 *towire_onchain_init_reply(const tal_t *ctx UNNEEDED)
|
||||||
u8 *towire_onchain_missing_htlc_output(const tal_t *ctx UNNEEDED, const struct htlc_stub *htlc UNNEEDED)
|
u8 *towire_onchain_missing_htlc_output(const tal_t *ctx UNNEEDED, const struct htlc_stub *htlc UNNEEDED)
|
||||||
{ fprintf(stderr, "towire_onchain_missing_htlc_output called!\n"); abort(); }
|
{ fprintf(stderr, "towire_onchain_missing_htlc_output called!\n"); abort(); }
|
||||||
/* Generated stub for towire_onchain_transaction_annotate */
|
/* Generated stub for towire_onchain_transaction_annotate */
|
||||||
u8 *towire_onchain_transaction_annotate(const tal_t *ctx UNNEEDED, const struct bitcoin_txid *txid UNNEEDED, u16 type UNNEEDED)
|
u8 *towire_onchain_transaction_annotate(const tal_t *ctx UNNEEDED, const struct bitcoin_txid *txid UNNEEDED, enum wallet_tx_type type UNNEEDED)
|
||||||
{ fprintf(stderr, "towire_onchain_transaction_annotate called!\n"); abort(); }
|
{ fprintf(stderr, "towire_onchain_transaction_annotate called!\n"); abort(); }
|
||||||
/* Generated stub for towire_onchain_unwatch_tx */
|
/* Generated stub for towire_onchain_unwatch_tx */
|
||||||
u8 *towire_onchain_unwatch_tx(const tal_t *ctx UNNEEDED, const struct bitcoin_txid *txid UNNEEDED)
|
u8 *towire_onchain_unwatch_tx(const tal_t *ctx UNNEEDED, const struct bitcoin_txid *txid UNNEEDED)
|
||||||
|
|
|
@ -2416,7 +2416,7 @@ void wallet_transaction_add(struct wallet *w, const struct bitcoin_tx *tx,
|
||||||
}
|
}
|
||||||
|
|
||||||
void wallet_transaction_annotate(struct wallet *w,
|
void wallet_transaction_annotate(struct wallet *w,
|
||||||
const struct bitcoin_txid *txid, txtypes type,
|
const struct bitcoin_txid *txid, enum wallet_tx_type type,
|
||||||
u64 channel_id)
|
u64 channel_id)
|
||||||
{
|
{
|
||||||
sqlite3_stmt *stmt = db_select_prepare(w->db, "type, channel_id FROM transactions WHERE id=?");
|
sqlite3_stmt *stmt = db_select_prepare(w->db, "type, channel_id FROM transactions WHERE id=?");
|
||||||
|
|
|
@ -294,7 +294,7 @@ struct wallet_transaction {
|
||||||
u32 blockheight;
|
u32 blockheight;
|
||||||
u32 txindex;
|
u32 txindex;
|
||||||
u8 *rawtx;
|
u8 *rawtx;
|
||||||
txtypes type;
|
enum wallet_tx_type type;
|
||||||
u64 channel_id;
|
u64 channel_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1047,8 +1047,8 @@ void wallet_transaction_add(struct wallet *w, const struct bitcoin_tx *tx,
|
||||||
* after the fact with a channel number for grouping and a type for filtering.
|
* after the fact with a channel number for grouping and a type for filtering.
|
||||||
*/
|
*/
|
||||||
void wallet_transaction_annotate(struct wallet *w,
|
void wallet_transaction_annotate(struct wallet *w,
|
||||||
const struct bitcoin_txid *txid, txtypes type,
|
const struct bitcoin_txid *txid,
|
||||||
u64 channel_id);
|
enum wallet_tx_type type, u64 channel_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the confirmation height of a transaction we are watching by its
|
* Get the confirmation height of a transaction we are watching by its
|
||||||
|
|
|
@ -802,7 +802,7 @@ struct {
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
static void json_add_txtypes(struct json_stream *result, const char *fieldname, txtypes value)
|
static void json_add_txtypes(struct json_stream *result, const char *fieldname, enum wallet_tx_type value)
|
||||||
{
|
{
|
||||||
json_array_start(result, fieldname);
|
json_array_start(result, fieldname);
|
||||||
for (size_t i=0; wallet_tx_type_display_names[i].name != NULL; i++) {
|
for (size_t i=0; wallet_tx_type_display_names[i].name != NULL; i++) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue