#ifndef LIGHTNING_ONCHAIND_ONCHAIN_TYPES_H #define LIGHTNING_ONCHAIND_ONCHAIN_TYPES_H #include "config.h" /* Different transactions we care about. */ enum tx_type { /* The initial 2 of 2 funding transaction */ FUNDING_TRANSACTION, /* A mutual close: spends funding */ MUTUAL_CLOSE, /* Their unilateral: spends funding */ THEIR_UNILATERAL, /* Unknown unilateral (presumably theirs): spends funding */ UNKNOWN_UNILATERAL, /* Our unilateral: spends funding */ OUR_UNILATERAL, /* Their old unilateral: spends funding */ THEIR_REVOKED_UNILATERAL, /* The 2 different types of HTLC transaction, each way */ THEIR_HTLC_TIMEOUT_TO_THEM, THEIR_HTLC_FULFILL_TO_US, OUR_HTLC_TIMEOUT_TO_US, OUR_HTLC_FULFILL_TO_THEM, /* Delayed variants */ OUR_HTLC_TIMEOUT_TX, OUR_HTLC_SUCCESS_TX, /* When we spend a delayed output (after cltv_expiry) */ OUR_DELAYED_RETURN_TO_WALLET, /* When they spend a delayed output we were attempting to steal */ THEIR_DELAYED_CHEAT, /* When we use revocation key to take output. */ OUR_PENALTY_TX, /* Amount too small, we're just spending it to close UTXO */ IGNORING_TINY_PAYMENT, /* Special type for marking outputs as resolved by self. */ SELF, /* Shouldn't happen. */ UNKNOWN_TXTYPE }; /* Different output types. */ enum output_type { /* FUNDING_TRANSACTION */ FUNDING_OUTPUT, /* THEIR_UNILATERAL */ OUTPUT_TO_US, DELAYED_OUTPUT_TO_THEM, /* THEIR_REVOKED_UNILATERAL (they shouldn't be able to claim these) */ DELAYED_CHEAT_OUTPUT_TO_THEM, /* OUR_UNILATERAL, or OUR_HTLC_TIMEOUT_TX */ DELAYED_OUTPUT_TO_US, OUTPUT_TO_THEM, /* HTLC outputs: their offers and our offers */ THEIR_HTLC, OUR_HTLC, /* For elements we need a fee output type */ ELEMENTS_FEE, /* Anchor outputs for option_anchor_outputs */ ANCHOR_TO_US, ANCHOR_TO_THEM, }; #endif /* LIGHTNING_ONCHAIND_ONCHAIN_TYPES_H */