#include <common/cryptomsg.h>
#include <common/channel_config.h>
#include <common/derive_basepoints.h>

opening_init,6000
# Which network are we configured for?
opening_init,,chain_hash,struct bitcoin_blkid
# Base configuration we'll offer (channel reserve will vary with amount)
opening_init,,our_config,struct channel_config
# Minimum/maximum configuration values we'll accept
opening_init,,max_to_self_delay,u32
opening_init,,min_effective_htlc_capacity_msat,struct amount_msat
opening_init,,crypto_state,struct crypto_state
opening_init,,our_basepoints,struct basepoints
opening_init,,our_funding_pubkey,struct pubkey
# Constraints in case the other end tries to open a channel.
opening_init,,minimum_depth,u32
opening_init,,min_feerate,u32
opening_init,,max_feerate,u32
opening_init,,can_open_channel,bool
# Optional msg to send.
opening_init,,len,u16
opening_init,,msg,len*u8

# Master->openingd: they can now open a channel if they want.
opening_can_accept_channel,6002

#include <common/bip32.h>
#include <common/htlc_wire.h>
# Master->openingd: please fund a channel.
opening_funder,6001
opening_funder,,funding_satoshis,struct amount_sat
opening_funder,,push_msat,struct amount_msat
opening_funder,,feerate_per_kw,u32
opening_funder,,change_satoshis,struct amount_sat
opening_funder,,change_keyindex,u32
opening_funder,,channel_flags,u8
#include <common/utxo.h>
opening_funder,,num_inputs,u16
opening_funder,,inputs,num_inputs*struct utxo
opening_funder,,bip32,struct ext_key

# Openingd->master: we've successfully offered channel.
# This gives their sig, means we can broadcast tx: we're done.
opening_funder_reply,6101
opening_funder_reply,,their_config,struct channel_config
opening_funder_reply,,first_commit,struct bitcoin_tx
opening_funder_reply,,first_commit_sig,struct bitcoin_signature
opening_funder_reply,,crypto_state,struct crypto_state
opening_funder_reply,,revocation_basepoint,struct pubkey
opening_funder_reply,,payment_basepoint,struct pubkey
opening_funder_reply,,htlc_basepoint,struct pubkey
opening_funder_reply,,delayed_payment_basepoint,struct pubkey
opening_funder_reply,,their_per_commit_point,struct pubkey
opening_funder_reply,,minimum_depth,u32
opening_funder_reply,,remote_fundingkey,struct pubkey
opening_funder_reply,,funding_txid,struct bitcoin_txid
opening_funder_reply,,feerate_per_kw,u32
opening_funder_reply,,our_channel_reserve_satoshis,struct amount_sat

# Openingd->master: we failed to negotiation channel
opening_funder_failed,6004
opening_funder_failed,,reason,wirestring

# Openingd->master: they offered channel.
# This gives their txid and info, means we can send funding_signed: we're done.
opening_fundee,6003
opening_fundee,,their_config,struct channel_config
opening_fundee,,first_commit,struct bitcoin_tx
opening_fundee,,first_commit_sig,struct bitcoin_signature
opening_fundee,,crypto_state,struct crypto_state
opening_fundee,,revocation_basepoint,struct pubkey
opening_fundee,,payment_basepoint,struct pubkey
opening_fundee,,htlc_basepoint,struct pubkey
opening_fundee,,delayed_payment_basepoint,struct pubkey
opening_fundee,,their_per_commit_point,struct pubkey
opening_fundee,,remote_fundingkey,struct pubkey
opening_fundee,,funding_txid,struct bitcoin_txid
opening_fundee,,funding_txout,u16
opening_fundee,,funding_satoshis,struct amount_sat
opening_fundee,,push_msat,struct amount_msat
opening_fundee,,channel_flags,u8
opening_fundee,,feerate_per_kw,u32
# The funding signed message: send this and we're committed.
opening_fundee,,msglen,u16
opening_fundee,,funding_signed_msg,msglen*u8
opening_fundee,,our_channel_reserve_satoshis,struct amount_sat

# master -> openingd: do you have a memleak?
opening_dev_memleak,6033

opening_dev_memleak_reply,6133
opening_dev_memleak_reply,,leak,bool
