global: change all type_to_string to fmt_X.

This has the benefit of being shorter, as well as more reliable (you
will get a link error if we can't print it, not a runtime one!).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2024-03-20 11:17:52 +10:30
parent d8c06dccac
commit 37d22f9141
108 changed files with 1526 additions and 2123 deletions

View file

@ -297,10 +297,8 @@ static void handle_stfu(struct peer *peer, const u8 *stfu)
if (!channel_id_eq(&channel_id, &peer->channel_id)) {
peer_failed_err(peer->pps, &channel_id,
"Wrong stfu channel_id: expected %s, got %s",
type_to_string(tmpctx, struct channel_id,
&peer->channel_id),
type_to_string(tmpctx, struct channel_id,
&channel_id));
fmt_channel_id(tmpctx, &peer->channel_id),
fmt_channel_id(tmpctx, &channel_id));
}
/* Sanity check */
@ -464,8 +462,8 @@ static void check_mutual_splice_locked(struct peer *peer)
peer->channel->view[REMOTE].lowest_splice_amnt[REMOTE] = 0;
status_debug("mutual splice_locked, scid LOCAL & REMOTE updated to: %s",
type_to_string(tmpctx, struct short_channel_id,
&peer->splice_state->short_channel_id));
fmt_short_channel_id(tmpctx,
peer->splice_state->short_channel_id));
inflight = NULL;
for (size_t i = 0; i < tal_count(peer->splice_state->inflights); i++)
@ -478,11 +476,11 @@ static void check_mutual_splice_locked(struct peer *peer)
"Unable to find inflight txid amoung %zu"
" inflights. new funding txid: %s",
tal_count(peer->splice_state->inflights),
type_to_string(tmpctx, struct bitcoin_txid,
&peer->splice_state->locked_txid));
fmt_bitcoin_txid(tmpctx,
&peer->splice_state->locked_txid));
status_debug("mutual splice_locked, updating change from: %s",
type_to_string(tmpctx, struct channel, peer->channel));
fmt_channel(tmpctx, peer->channel));
error = channel_update_funding(peer->channel, &inflight->outpoint,
inflight->amnt,
@ -493,7 +491,7 @@ static void check_mutual_splice_locked(struct peer *peer)
error);
status_debug("mutual splice_locked, channel updated to: %s",
type_to_string(tmpctx, struct channel, peer->channel));
fmt_channel(tmpctx, peer->channel));
/* ensure the signer is locking at the same time */
lock_signer_outpoint(&inflight->outpoint);
@ -525,8 +523,7 @@ static void handle_peer_splice_locked(struct peer *peer, const u8 *msg)
"Wrong splice lock channel id in %s "
"(expected %s)",
tal_hex(tmpctx, msg),
type_to_string(msg, struct channel_id,
&peer->channel_id));
fmt_channel_id(msg, &peer->channel_id));
/* If we've `mutual_splice_locked` but our peer hasn't, we can ignore
* this message harmlessly */
@ -568,8 +565,7 @@ static void handle_peer_channel_ready(struct peer *peer, const u8 *msg)
peer_failed_err(peer->pps, &chanid,
"Wrong channel id in %s (expected %s)",
tal_hex(tmpctx, msg),
type_to_string(msg, struct channel_id,
&peer->channel_id));
fmt_channel_id(msg, &peer->channel_id));
peer->tx_sigs_allowed = false;
peer->channel_ready[REMOTE] = true;
@ -577,8 +573,7 @@ static void handle_peer_channel_ready(struct peer *peer, const u8 *msg)
if (tlvs->short_channel_id != NULL) {
status_debug(
"Peer told us that they'll use alias=%s for this channel",
type_to_string(tmpctx, struct short_channel_id,
tlvs->short_channel_id));
fmt_short_channel_id(tmpctx, *tlvs->short_channel_id));
peer->short_channel_ids[REMOTE] = *tlvs->short_channel_id;
}
wire_sync_write(MASTER_FD,
@ -974,12 +969,10 @@ static struct bitcoin_signature *calc_commitsigs(const tal_t *ctx,
status_debug("Creating commit_sig signature %"PRIu64" %s for tx %s wscript %s key %s",
commit_index,
type_to_string(tmpctx, struct bitcoin_signature,
commit_sig),
type_to_string(tmpctx, struct bitcoin_tx, txs[0]),
fmt_bitcoin_signature(tmpctx, commit_sig),
fmt_bitcoin_tx(tmpctx, txs[0]),
tal_hex(tmpctx, funding_wscript),
type_to_string(tmpctx, struct pubkey,
&peer->channel->funding_pubkey[LOCAL]));
fmt_pubkey(tmpctx, &peer->channel->funding_pubkey[LOCAL]));
dump_htlcs(peer->channel, "Sending commit_sig");
if (!derive_simple_key(&peer->channel->basepoints[LOCAL].htlc,
@ -1013,12 +1006,10 @@ static struct bitcoin_signature *calc_commitsigs(const tal_t *ctx,
tal_hex(tmpctx, msg));
status_debug("Creating HTLC signature %s for tx %s wscript %s key %s",
type_to_string(tmpctx, struct bitcoin_signature,
&htlc_sigs[i]),
type_to_string(tmpctx, struct bitcoin_tx, txs[1+i]),
fmt_bitcoin_signature(tmpctx, &htlc_sigs[i]),
fmt_bitcoin_tx(tmpctx, txs[1+i]),
tal_hex(tmpctx, wscript),
type_to_string(tmpctx, struct pubkey,
&local_htlckey));
fmt_pubkey(tmpctx, &local_htlckey));
assert(check_tx_sig(txs[1+i], 0, NULL, wscript,
&local_htlckey,
&htlc_sigs[i]));
@ -1341,9 +1332,9 @@ static void send_commit(struct peer *peer)
" feechange %s (%s)"
" blockheight %s (%s)",
want_fee_update(peer, NULL) ? "wanted": "not wanted",
type_to_string(tmpctx, struct fee_states, peer->channel->fee_states),
fmt_fee_states(tmpctx, peer->channel->fee_states),
want_blockheight_update(peer, NULL) ? "wanted" : "not wanted",
type_to_string(tmpctx, struct height_states, peer->channel->blockheight_states));
fmt_height_states(tmpctx, peer->channel->blockheight_states));
/* Covers the case where we've just been told to shutdown. */
maybe_send_shutdown(peer);
@ -1713,9 +1704,7 @@ static bool missing_user_signatures(const struct peer *peer,
if (!psbt_get_serial_id(&in->unknowns, &in_serial)) {
status_broken("PSBT input %"PRIu32" missing serial_id"
" %s", i,
type_to_string(tmpctx,
struct wally_psbt,
inflight->psbt));
fmt_wally_psbt(tmpctx, inflight->psbt));
return true;
}
if (in_serial % 2 == our_role && i != splice_funding_index)
@ -1890,10 +1879,8 @@ static struct commitsig_info *handle_peer_commit_sig(struct peer *peer,
if (!channel_id_eq(&active_id, cs_tlv->splice_info)) {
status_info("Ignoring stale commit_sig for channel_id"
" %s, as %s is locked in now.",
type_to_string(tmpctx, struct channel_id,
cs_tlv->splice_info),
type_to_string(tmpctx, struct channel_id,
&active_id));
fmt_channel_id(tmpctx, cs_tlv->splice_info),
fmt_channel_id(tmpctx, &active_id));
return NULL;
}
}
@ -1964,11 +1951,9 @@ static struct commitsig_info *handle_peer_commit_sig(struct peer *peer,
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Deriving remote_htlckey");
status_debug("Derived key %s from basepoint %s, point %s",
type_to_string(tmpctx, struct pubkey, &remote_htlckey),
type_to_string(tmpctx, struct pubkey,
&peer->channel->basepoints[REMOTE].htlc),
type_to_string(tmpctx, struct pubkey,
local_per_commit));
fmt_pubkey(tmpctx, &remote_htlckey),
fmt_pubkey(tmpctx, &peer->channel->basepoints[REMOTE].htlc),
fmt_pubkey(tmpctx, local_per_commit));
/* BOLT #2:
*
* A receiving node:
@ -1987,20 +1972,16 @@ static struct commitsig_info *handle_peer_commit_sig(struct peer *peer,
" %s, splice_info: %s, race_await_commit: %s,"
" inflight splice count: %zu",
local_index,
type_to_string(msg, struct bitcoin_signature,
&commit_sig),
type_to_string(msg, struct bitcoin_tx, txs[0]),
fmt_bitcoin_signature(msg, &commit_sig),
fmt_bitcoin_tx(msg, txs[0]),
tal_hex(msg, funding_wscript),
type_to_string(msg, struct pubkey,
&peer->channel->funding_pubkey
[REMOTE]),
fmt_pubkey(msg,
&peer->channel->funding_pubkey[REMOTE]),
channel_feerate(peer->channel, LOCAL),
type_to_string(tmpctx, struct channel_id,
&active_id),
fmt_channel_id(tmpctx, &active_id),
cs_tlv && cs_tlv->splice_info
? type_to_string(tmpctx,
struct channel_id,
cs_tlv->splice_info)
? fmt_channel_id(tmpctx,
cs_tlv->splice_info)
: "N/A",
peer->splice_state->await_commitment_succcess ? "yes"
: "no",
@ -2038,11 +2019,10 @@ static struct commitsig_info *handle_peer_commit_sig(struct peer *peer,
&remote_htlckey, &htlc_sigs[i]))
peer_failed_warn(peer->pps, &peer->channel_id,
"Bad commit_sig signature %s for htlc %s wscript %s key %s",
type_to_string(msg, struct bitcoin_signature, &htlc_sigs[i]),
type_to_string(msg, struct bitcoin_tx, txs[1+i]),
fmt_bitcoin_signature(msg, &htlc_sigs[i]),
fmt_bitcoin_tx(msg, txs[1+i]),
tal_hex(msg, wscript),
type_to_string(msg, struct pubkey,
&remote_htlckey));
fmt_pubkey(msg, &remote_htlckey));
}
status_debug("Received commit_sig with %zu htlc sigs",
@ -2254,15 +2234,14 @@ static void handle_peer_revoke_and_ack(struct peer *peer, const u8 *msg)
if (!pubkey_from_privkey(&privkey, &per_commit_point)) {
peer_failed_err(peer->pps, &peer->channel_id,
"Bad privkey %s",
type_to_string(msg, struct privkey, &privkey));
fmt_privkey(msg, &privkey));
}
if (!pubkey_eq(&per_commit_point, &peer->old_remote_per_commit)) {
peer_failed_err(peer->pps, &peer->channel_id,
"Wrong privkey %s for %"PRIu64" %s",
type_to_string(msg, struct privkey, &privkey),
fmt_privkey(msg, &privkey),
peer->next_index[LOCAL]-2,
type_to_string(msg, struct pubkey,
&peer->old_remote_per_commit));
fmt_pubkey(msg, &peer->old_remote_per_commit));
}
/* We start timer even if this returns false: we might have delayed
@ -2285,10 +2264,8 @@ static void handle_peer_revoke_and_ack(struct peer *peer, const u8 *msg)
peer->remote_per_commit = next_per_commit;
status_debug("revoke_and_ack %s: remote_per_commit = %s, old_remote_per_commit = %s",
side_to_str(peer->channel->opener),
type_to_string(tmpctx, struct pubkey,
&peer->remote_per_commit),
type_to_string(tmpctx, struct pubkey,
&peer->old_remote_per_commit));
fmt_pubkey(tmpctx, &peer->remote_per_commit),
fmt_pubkey(tmpctx, &peer->old_remote_per_commit));
peer->splice_state->await_commitment_succcess = false;
@ -2578,8 +2555,7 @@ static void handle_unexpected_reestablish(struct peer *peer, const u8 *msg)
/* Log this event as unusual. */
status_unusual("Got repeated WIRE_CHANNEL_REESTABLISH "
"for channel %s, ignoring: %s",
type_to_string(tmpctx, struct channel_id,
&peer->channel_id),
fmt_channel_id(tmpctx, &peer->channel_id),
tal_hex(tmpctx, msg));
/* This is a mitigation for a known bug in some peer software
* that sometimes double-sends a reestablish message.
@ -2606,8 +2582,7 @@ static void handle_unexpected_reestablish(struct peer *peer, const u8 *msg)
"Peer sent unexpected message %u, (%s) "
"for nonexistent channel %s",
WIRE_CHANNEL_REESTABLISH, "WIRE_CHANNEL_REESTABLISH",
type_to_string(tmpctx, struct channel_id,
&channel_id));
fmt_channel_id(tmpctx, &channel_id));
}
static bool is_initiators_serial(const struct wally_map *unknowns)
@ -3098,10 +3073,8 @@ static struct amount_sat check_balances(struct peer *peer,
splice_abort(peer,
"%s fee (%s) was too low, must be at least %s",
opener ? "Our" : "Your",
type_to_string(tmpctx, struct amount_msat,
&initiator_fee),
type_to_string(tmpctx, struct amount_sat,
&min_initiator_fee));
fmt_amount_msat(tmpctx, initiator_fee),
fmt_amount_sat(tmpctx, min_initiator_fee));
}
if (!peer->splicing->force_feerate && opener
&& amount_msat_greater_sat(initiator_fee, max_initiator_fee)) {
@ -3111,10 +3084,8 @@ static struct amount_sat check_balances(struct peer *peer,
splice_abort(peer,
"Our own fee (%s) was too high, max without"
" forcing is %s.",
type_to_string(tmpctx, struct amount_msat,
&initiator_fee),
type_to_string(tmpctx, struct amount_sat,
&max_initiator_fee));
fmt_amount_msat(tmpctx, initiator_fee),
fmt_amount_sat(tmpctx, max_initiator_fee));
}
/* Check accepter fee */
if (amount_msat_less_sat(accepter_fee, min_accepter_fee)) {
@ -3124,10 +3095,8 @@ static struct amount_sat check_balances(struct peer *peer,
splice_abort(peer,
"%s fee (%s) was too low, must be at least %s",
opener ? "Your" : "Our",
type_to_string(tmpctx, struct amount_msat,
&accepter_fee),
type_to_string(tmpctx, struct amount_sat,
&min_accepter_fee));
fmt_amount_msat(tmpctx, accepter_fee),
fmt_amount_sat(tmpctx, min_accepter_fee));
}
if (!peer->splicing->force_feerate && !opener
&& amount_msat_greater_sat(accepter_fee, max_accepter_fee)) {
@ -3137,10 +3106,8 @@ static struct amount_sat check_balances(struct peer *peer,
splice_abort(peer,
"Our own fee (%s) was too high, max without"
" forcing is %s.",
type_to_string(tmpctx, struct amount_msat,
&accepter_fee),
type_to_string(tmpctx, struct amount_sat,
&max_accepter_fee));
fmt_amount_msat(tmpctx, accepter_fee),
fmt_amount_sat(tmpctx, max_accepter_fee));
}
/* BOLT-??? #2:
@ -3176,12 +3143,11 @@ static struct amount_sat check_balances(struct peer *peer,
"splice error: msat of total funding %s should"
" always add up to a full sat. original local bal"
" %s, original remote bal %s,",
type_to_string(tmpctx, struct amount_msat,
&funding_amount),
type_to_string(tmpctx, struct amount_msat,
&peer->channel->view->owed[LOCAL]),
type_to_string(tmpctx, struct amount_msat,
&peer->channel->view->owed[REMOTE]));
fmt_amount_msat(tmpctx, funding_amount),
fmt_amount_msat(tmpctx,
peer->channel->view->owed[LOCAL]),
fmt_amount_msat(tmpctx,
peer->channel->view->owed[REMOTE]));
}
return funding_amount_res;
@ -3324,12 +3290,10 @@ static void resume_splice_negotiation(struct peer *peer,
"my signature: %s "
"psbt: %s",
splice_funding_index,
type_to_string(tmpctx, struct pubkey,
&peer->channel->funding_pubkey[LOCAL]),
type_to_string(tmpctx, struct bitcoin_signature,
&splice_sig),
type_to_string(tmpctx, struct wally_psbt,
current_psbt));
fmt_pubkey(tmpctx,
&peer->channel->funding_pubkey[LOCAL]),
fmt_bitcoin_signature(tmpctx, &splice_sig),
fmt_wally_psbt(tmpctx, current_psbt));
txsig_tlvs = tlv_txsigs_tlvs_new(tmpctx);
der_len = signature_to_der(der, &splice_sig);
@ -3433,15 +3397,9 @@ static void resume_splice_negotiation(struct peer *peer,
"signature: %s "
"psbt: %s",
splice_funding_index,
type_to_string(tmpctx,
struct pubkey,
their_pubkey),
type_to_string(tmpctx,
struct bitcoin_signature,
&their_sig),
type_to_string(tmpctx,
struct wally_psbt,
current_psbt));
fmt_pubkey(tmpctx, their_pubkey),
fmt_bitcoin_signature(tmpctx, &their_sig),
fmt_wally_psbt(tmpctx, current_psbt));
}
psbt_input_set_witscript(current_psbt,
@ -3463,8 +3421,7 @@ static void resume_splice_negotiation(struct peer *peer,
if (!psbt_get_serial_id(&in->unknowns, &in_serial)) {
status_broken("PSBT input %zu missing serial_id"
" %s", i,
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
current_psbt));
return;
}
@ -4122,10 +4079,8 @@ static void splice_initiator_user_signed(struct peer *peer, const u8 *inmsg)
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Signed PSBT txid %s does not match"
" current_psbt_txid %s",
type_to_string(tmpctx, struct bitcoin_txid,
&signed_psbt_txid),
type_to_string(tmpctx, struct bitcoin_txid,
&current_psbt_txid));
fmt_bitcoin_txid(tmpctx, &signed_psbt_txid),
fmt_bitcoin_txid(tmpctx, &current_psbt_txid));
peer->splicing->current_psbt = tal_free(peer->splicing->current_psbt);
@ -4686,10 +4641,8 @@ static void check_current_dataloss_fields(struct peer *peer,
"bad reestablish: your_last_per_commitment_secret %"PRIu64
": %s should be %s",
next_revocation_number,
type_to_string(tmpctx, struct secret,
last_local_per_commit_secret),
type_to_string(tmpctx, struct secret,
&old_commit_secret));
fmt_secret(tmpctx, last_local_per_commit_secret),
fmt_secret(tmpctx, &old_commit_secret));
if (!remote_current_per_commitment_point) {
status_debug("option_static_remotekey: fields are correct");
@ -4708,17 +4661,17 @@ static void check_current_dataloss_fields(struct peer *peer,
if (!pubkey_eq(remote_current_per_commitment_point,
&peer->old_remote_per_commit)) {
peer_failed_warn(peer->pps,
&peer->channel_id,
"bad reestablish: remote's "
"my_current_per_commitment_point %"PRIu64
"is %s; expected %s (new is %s).",
next_commitment_number - 1,
type_to_string(tmpctx, struct pubkey,
remote_current_per_commitment_point),
type_to_string(tmpctx, struct pubkey,
&peer->old_remote_per_commit),
type_to_string(tmpctx, struct pubkey,
&peer->remote_per_commit));
&peer->channel_id,
"bad reestablish: remote's "
"my_current_per_commitment_point %"PRIu64
"is %s; expected %s (new is %s).",
next_commitment_number - 1,
fmt_pubkey(tmpctx,
remote_current_per_commitment_point),
fmt_pubkey(tmpctx,
&peer->old_remote_per_commit),
fmt_pubkey(tmpctx,
&peer->remote_per_commit));
}
} else {
/* We've sent a commit sig but haven't gotten a revoke+ack back */
@ -4730,12 +4683,12 @@ static void check_current_dataloss_fields(struct peer *peer,
"my_current_per_commitment_point %"PRIu64
"is %s; expected %s (old is %s).",
next_commitment_number - 1,
type_to_string(tmpctx, struct pubkey,
remote_current_per_commitment_point),
type_to_string(tmpctx, struct pubkey,
&peer->remote_per_commit),
type_to_string(tmpctx, struct pubkey,
&peer->old_remote_per_commit));
fmt_pubkey(tmpctx,
remote_current_per_commitment_point),
fmt_pubkey(tmpctx,
&peer->remote_per_commit),
fmt_pubkey(tmpctx,
&peer->old_remote_per_commit));
}
}
@ -4966,8 +4919,7 @@ static void peer_reconnect(struct peer *peer,
peer_failed_err(peer->pps,
&channel_id,
"bad reestablish msg for unknown channel %s: %s",
type_to_string(tmpctx, struct channel_id,
&channel_id),
fmt_channel_id(tmpctx, &channel_id),
tal_hex(msg, msg));
}
@ -5018,26 +4970,21 @@ static void peer_reconnect(struct peer *peer,
" txid %s that matches our current"
" active funding txid %s. Should be %s"
" or NULL",
type_to_string(tmpctx,
struct bitcoin_txid,
remote_next_funding),
type_to_string(tmpctx,
struct bitcoin_txid,
&peer->channel->funding.txid),
type_to_string(tmpctx,
struct bitcoin_txid,
&inflight->outpoint.txid));
fmt_bitcoin_txid(tmpctx,
remote_next_funding),
fmt_bitcoin_txid(tmpctx,
&peer->channel->funding.txid),
fmt_bitcoin_txid(tmpctx,
&inflight->outpoint.txid));
} else { /* remote_next_funding set but unrecognized */
peer_failed_err(peer->pps,
&peer->channel_id,
"Invalid reestablish with unrecognized"
" next_funding txid %s, should be %s",
type_to_string(tmpctx,
struct bitcoin_txid,
remote_next_funding),
type_to_string(tmpctx,
struct bitcoin_txid,
&inflight->outpoint.txid));
fmt_bitcoin_txid(tmpctx,
remote_next_funding),
fmt_bitcoin_txid(tmpctx,
&inflight->outpoint.txid));
}
} else if (remote_next_funding) { /* No current inflight */
if (bitcoin_txid_eq(remote_next_funding,
@ -5070,7 +5017,7 @@ static void peer_reconnect(struct peer *peer,
tlvs->short_channel_id = &peer->local_alias;
status_debug("Retransmitting channel_ready for channel %s",
type_to_string(tmpctx, struct channel_id, &peer->channel_id));
fmt_channel_id(tmpctx, &peer->channel_id));
/* Contains per commit point #1, for first post-opening commit */
msg = towire_channel_ready(NULL,
&peer->channel_id,
@ -5387,17 +5334,14 @@ static void handle_funding_depth(struct peer *peer, const u8 *msg)
peer->splice_state->short_channel_id = *scid;
status_debug("Current channel id is %s, "
"splice_short_channel_id now set to %s",
type_to_string(tmpctx,
struct short_channel_id,
&peer->short_channel_ids[LOCAL]),
type_to_string(tmpctx,
struct short_channel_id,
&peer->splice_state->short_channel_id));
fmt_short_channel_id(tmpctx,
peer->short_channel_ids[LOCAL]),
fmt_short_channel_id(tmpctx,
peer->splice_state->short_channel_id));
} else {
status_debug("handle_funding_depth: Setting short_channel_ids[LOCAL] to %s",
type_to_string(tmpctx,
struct short_channel_id,
(scid ? scid : &peer->local_alias)));
fmt_short_channel_id(tmpctx,
(scid ? *scid : peer->local_alias)));
/* If we know an actual short_channel_id prefer to use
* that, otherwise fill in the alias. From channeld's
* point of view switching from zeroconf to an actual
@ -5412,8 +5356,8 @@ static void handle_funding_depth(struct peer *peer, const u8 *msg)
status_debug("channel_ready: sending commit index"
" %"PRIu64": %s",
peer->next_index[LOCAL],
type_to_string(tmpctx, struct pubkey,
&peer->next_local_per_commit));
fmt_pubkey(tmpctx,
&peer->next_local_per_commit));
tlvs = tlv_channel_ready_tlvs_new(tmpctx);
tlvs->short_channel_id = &peer->local_alias;
@ -5480,7 +5424,7 @@ static void handle_offer_htlc(struct peer *peer, const u8 *inmsg)
&htlc_fee, true);
status_debug("Adding HTLC %"PRIu64" amount=%s cltv=%u gave %s",
peer->htlc_id,
type_to_string(tmpctx, struct amount_msat, &amount),
fmt_amount_msat(tmpctx, amount),
cltv_expiry,
channel_add_err_name(e));
@ -5520,9 +5464,8 @@ static void handle_offer_htlc(struct peer *peer, const u8 *inmsg)
case CHANNEL_ERR_HTLC_BELOW_MINIMUM:
failwiremsg = towire_amount_below_minimum(inmsg, amount, NULL);
failstr = tal_fmt(inmsg, "HTLC too small (%s minimum)",
type_to_string(tmpctx,
struct amount_msat,
&peer->channel->config[REMOTE].htlc_minimum));
fmt_amount_msat(tmpctx,
peer->channel->config[REMOTE].htlc_minimum));
goto failed;
case CHANNEL_ERR_TOO_MANY_HTLCS:
failwiremsg = towire_temporary_channel_failure(inmsg, NULL);
@ -5990,15 +5933,13 @@ static void init_channel(struct peer *peer)
" feerates %s range %u-%u"
" blockheights %s, our current %u",
side_to_str(opener),
type_to_string(tmpctx, struct pubkey,
&peer->remote_per_commit),
type_to_string(tmpctx, struct pubkey,
&peer->old_remote_per_commit),
fmt_pubkey(tmpctx, &peer->remote_per_commit),
fmt_pubkey(tmpctx, &peer->old_remote_per_commit),
peer->next_index[LOCAL], peer->next_index[REMOTE],
peer->revocations_received,
type_to_string(tmpctx, struct fee_states, fee_states),
fmt_fee_states(tmpctx, fee_states),
peer->feerate_min, peer->feerate_max,
type_to_string(tmpctx, struct height_states, blockheight_states),
fmt_height_states(tmpctx, blockheight_states),
peer->our_blockheight);
/* First commit is used for opening: if we've sent 0, we're on

View file

@ -356,8 +356,7 @@ struct bitcoin_tx *commit_tx(const tal_t *ctx,
* However, valgrind will warn us something wierd is happening */
SUPERVERBOSE("# to_remote amount %"PRIu64" P2WPKH(%s)\n",
amount.satoshis, /* Raw: BOLT 3 output match */
type_to_string(tmpctx, struct pubkey,
&keyset->other_payment_key));
fmt_pubkey(tmpctx, &keyset->other_payment_key));
n++;
to_remote = true;

View file

@ -424,10 +424,8 @@ static bool get_room_above_reserve(const struct channel *channel,
status_debug("%s cannot afford htlc: would make balance %s"
" below reserve %s",
side_to_str(side),
type_to_string(tmpctx, struct amount_msat,
remainder),
type_to_string(tmpctx, struct amount_sat,
&reserve));
fmt_amount_msat(tmpctx, *remainder),
fmt_amount_sat(tmpctx, reserve));
return false;
}
return true;
@ -570,8 +568,8 @@ static bool local_opener_has_fee_headroom(const struct channel *channel,
status_debug("Adding HTLC would leave us only %s: we need %s for"
" another HTLC if fees increase by 100%% to %uperkw",
type_to_string(tmpctx, struct amount_msat, &remainder),
type_to_string(tmpctx, struct amount_sat, &fee),
fmt_amount_msat(tmpctx, remainder),
fmt_amount_sat(tmpctx, fee),
feerate + feerate);
return false;
}
@ -775,10 +773,8 @@ static enum channel_add_err add_htlc(struct channel *channel,
if (channel->opener== sender) {
if (amount_msat_less_sat(remainder, fee)) {
status_debug("Cannot afford fee %s with %s above reserve",
type_to_string(tmpctx, struct amount_sat,
&fee),
type_to_string(tmpctx, struct amount_msat,
&remainder));
fmt_amount_sat(tmpctx, fee),
fmt_amount_msat(tmpctx, remainder));
return CHANNEL_ERR_CHANNEL_CAPACITY_EXCEEDED;
}
@ -819,12 +815,8 @@ static enum channel_add_err add_htlc(struct channel *channel,
*htlc_fee = fee;
if (amount_msat_less_sat(remainder, fee)) {
status_debug("Funder could not afford own fee %s with %s above reserve",
type_to_string(tmpctx,
struct amount_sat,
&fee),
type_to_string(tmpctx,
struct amount_msat,
&remainder));
fmt_amount_sat(tmpctx, fee),
fmt_amount_msat(tmpctx, remainder));
return CHANNEL_ERR_CHANNEL_CAPACITY_EXCEEDED;
}
fee = fee_for_htlcs(channel,
@ -836,13 +828,9 @@ static enum channel_add_err add_htlc(struct channel *channel,
if (htlc_fee && amount_sat_greater(fee, *htlc_fee))
*htlc_fee = fee;
if (amount_msat_less_sat(remainder, fee)) {
status_debug("Funder could not afford peer's fee %s with %s above reserve",
type_to_string(tmpctx,
struct amount_sat,
&fee),
type_to_string(tmpctx,
struct amount_msat,
&remainder));
status_debug("Funder could not afford peer's fee `%s with %s above reserve",
fmt_amount_sat(tmpctx, fee),
fmt_amount_msat(tmpctx, remainder));
return CHANNEL_ERR_CHANNEL_CAPACITY_EXCEEDED;
}
}
@ -1192,8 +1180,8 @@ static int change_htlcs(struct channel *channel,
"%s: %s balance underflow: %s -> %"PRId64,
side_to_str(sidechanged),
side_to_str(i),
type_to_string(tmpctx, struct amount_msat,
&channel->view[sidechanged].owed[i]),
fmt_amount_msat(tmpctx,
channel->view[sidechanged].owed[i]),
owed[i].msat);
}
}
@ -1349,8 +1337,7 @@ bool can_opener_afford_feerate(const struct channel *channel, u32 feerate_per_kw
&& !amount_sat_add(&fee, fee, AMOUNT_SAT(660)))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Cannot add 660 sats to %s for anchor",
type_to_string(tmpctx, struct amount_sat,
&fee));
fmt_amount_sat(tmpctx, fee));
/* BOLT #2:
*
@ -1366,10 +1353,9 @@ bool can_opener_afford_feerate(const struct channel *channel, u32 feerate_per_kw
channel->config[!channel->opener].channel_reserve))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Cannot add fee %s and reserve %s",
type_to_string(tmpctx, struct amount_sat,
&fee),
type_to_string(tmpctx, struct amount_sat,
&channel->config[!channel->opener].channel_reserve));
fmt_amount_sat(tmpctx, fee),
fmt_amount_sat(tmpctx,
channel->config[!channel->opener].channel_reserve));
/* The amount we have needs to take into account that we're
* adding and removing htlcs */
@ -1387,13 +1373,13 @@ bool can_opener_afford_feerate(const struct channel *channel, u32 feerate_per_kw
}
status_debug("We need %s at feerate %u for %zu untrimmed htlcs: we have %s/%s (will have %s)",
type_to_string(tmpctx, struct amount_sat, &needed),
fmt_amount_sat(tmpctx, needed),
feerate_per_kw, untrimmed,
type_to_string(tmpctx, struct amount_msat,
&channel->view[LOCAL].owed[channel->opener]),
type_to_string(tmpctx, struct amount_msat,
&channel->view[REMOTE].owed[channel->opener]),
type_to_string(tmpctx, struct amount_msat, &available));
fmt_amount_msat(tmpctx,
channel->view[LOCAL].owed[channel->opener]),
fmt_amount_msat(tmpctx,
channel->view[REMOTE].owed[channel->opener]),
fmt_amount_msat(tmpctx, available));
return amount_msat_greater_eq_sat(available, needed);
}
@ -1620,11 +1606,9 @@ bool channel_force_htlcs(struct channel *channel,
" payment_hash=%s %s",
i, tal_count(htlcs),
htlcs[i]->id,
type_to_string(tmpctx, struct amount_msat,
&htlcs[i]->amount),
fmt_amount_msat(tmpctx, htlcs[i]->amount),
htlcs[i]->cltv_expiry,
type_to_string(tmpctx, struct sha256,
&htlcs[i]->payment_hash),
fmt_sha256(tmpctx, &htlcs[i]->payment_hash),
htlcs[i]->payment_preimage ? "(have preimage)"
: htlcs[i]->failed ? "(failed)" : "");

View file

@ -330,8 +330,8 @@ static void report_htlcs(const struct bitcoin_tx *tx,
printf("# signature for output #%zi (%s for htlc #%"PRIu64")\n",
i, htlc_owner(htlc) == LOCAL ? "htlc-timeout" : "htlc-success", htlc->id);
printf("remote_htlc_signature = %s\n",
type_to_string(tmpctx, secp256k1_ecdsa_signature,
&remotehtlcsig[i].s));
fmt_secp256k1_ecdsa_signature(tmpctx,
&remotehtlcsig[i].s));
sign_tx_input(htlc_tx[i], 0,
NULL,
@ -340,8 +340,8 @@ static void report_htlcs(const struct bitcoin_tx *tx,
SIGHASH_ALL,
&localhtlcsig);
printf("# local_htlc_signature = %s\n",
type_to_string(tmpctx, secp256k1_ecdsa_signature,
&localhtlcsig.s));
fmt_secp256k1_ecdsa_signature(tmpctx,
&localhtlcsig.s));
if (htlc_owner(htlc) == LOCAL) {
htlc_timeout_tx_add_witness(htlc_tx[i],
local_htlckey,
@ -403,7 +403,7 @@ static void report(struct bitcoin_tx *tx,
SIGHASH_ALL,
&remotesig);
printf("remote_signature = %s\n",
type_to_string(tmpctx, secp256k1_ecdsa_signature, &remotesig.s));
fmt_secp256k1_ecdsa_signature(tmpctx, &remotesig.s));
sign_tx_input(tx, 0,
NULL,
wscript,
@ -411,7 +411,7 @@ static void report(struct bitcoin_tx *tx,
SIGHASH_ALL,
&localsig);
printf("# local_signature = %s\n",
type_to_string(tmpctx, secp256k1_ecdsa_signature, &localsig.s));
fmt_secp256k1_ecdsa_signature(tmpctx, &localsig.s));
witness =
bitcoin_witness_2of2(tx, &localsig, &remotesig,
@ -618,51 +618,42 @@ int main(int argc, const char *argv[])
local_funding_privkey.secret = secret_from_hex("30ff4956bbdd3222d44cc5e8a1261dab1e07957bdac5ae88fe3261ef321f374901");
x_remote_funding_privkey.secret = secret_from_hex("1552dfba4f6cf29a62a0af13c8d6981d36d0ef8d61ba10fb0fe90da7634d7e1301");
SUPERVERBOSE("INTERNAL: remote_funding_privkey: %s01\n",
type_to_string(tmpctx, struct privkey,
&x_remote_funding_privkey));
fmt_privkey(tmpctx, &x_remote_funding_privkey));
x_local_payment_basepoint_secret = secret_from_hex("1111111111111111111111111111111111111111111111111111111111111111");
SUPERVERBOSE("INTERNAL: local_payment_basepoint_secret: %s\n",
type_to_string(tmpctx, struct secret,
&x_local_payment_basepoint_secret));
fmt_secret(tmpctx, &x_local_payment_basepoint_secret));
x_remote_revocation_basepoint_secret = secret_from_hex("2222222222222222222222222222222222222222222222222222222222222222");
SUPERVERBOSE("INTERNAL: remote_revocation_basepoint_secret: %s\n",
type_to_string(tmpctx, struct secret,
&x_remote_revocation_basepoint_secret));
fmt_secret(tmpctx, &x_remote_revocation_basepoint_secret));
x_local_delayed_payment_basepoint_secret = secret_from_hex("3333333333333333333333333333333333333333333333333333333333333333");
SUPERVERBOSE("INTERNAL: local_delayed_payment_basepoint_secret: %s\n",
type_to_string(tmpctx, struct secret,
&x_local_delayed_payment_basepoint_secret));
fmt_secret(tmpctx, &x_local_delayed_payment_basepoint_secret));
x_remote_payment_basepoint_secret = secret_from_hex("4444444444444444444444444444444444444444444444444444444444444444");
SUPERVERBOSE("INTERNAL: remote_payment_basepoint_secret: %s\n",
type_to_string(tmpctx, struct secret,
&x_remote_payment_basepoint_secret));
fmt_secret(tmpctx, &x_remote_payment_basepoint_secret));
x_local_per_commitment_secret = secret_from_hex("0x1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100");
SUPERVERBOSE("x_local_per_commitment_secret: %s\n",
type_to_string(tmpctx, struct secret,
&x_local_per_commitment_secret));
fmt_secret(tmpctx, &x_local_per_commitment_secret));
if (!pubkey_from_secret(&x_remote_revocation_basepoint_secret,
&x_remote_revocation_basepoint))
abort();
SUPERVERBOSE("# From remote_revocation_basepoint_secret\n"
"INTERNAL: remote_revocation_basepoint: %s\n",
type_to_string(tmpctx, struct pubkey,
&x_remote_revocation_basepoint));
fmt_pubkey(tmpctx, &x_remote_revocation_basepoint));
if (!pubkey_from_secret(&x_local_delayed_payment_basepoint_secret,
&x_local_delayed_payment_basepoint))
abort();
SUPERVERBOSE("# From local_delayed_payment_basepoint_secret\n"
"INTERNAL: local_delayed_payment_basepoint: %s\n",
type_to_string(tmpctx, struct pubkey,
&x_local_delayed_payment_basepoint));
fmt_pubkey(tmpctx, &x_local_delayed_payment_basepoint));
if (!pubkey_from_secret(&x_local_per_commitment_secret,
&x_local_per_commitment_point))
abort();
SUPERVERBOSE("INTERNAL: local_per_commitment_point: %s\n",
type_to_string(tmpctx, struct pubkey,
&x_local_per_commitment_point));
fmt_pubkey(tmpctx, &x_local_per_commitment_point));
if (!pubkey_from_secret(&x_local_payment_basepoint_secret,
&local_payment_basepoint))
@ -684,7 +675,7 @@ int main(int argc, const char *argv[])
&x_remote_htlcsecretkey))
abort();
SUPERVERBOSE("INTERNAL: remote_secretkey: %s\n",
type_to_string(tmpctx, struct privkey, &x_remote_htlcsecretkey));
fmt_privkey(tmpctx, &x_remote_htlcsecretkey));
if (!derive_simple_privkey(&x_local_delayed_payment_basepoint_secret,
&x_local_delayed_payment_basepoint,
@ -693,14 +684,13 @@ int main(int argc, const char *argv[])
abort();
SUPERVERBOSE("# From local_delayed_payment_basepoint_secret, local_per_commitment_point and local_delayed_payment_basepoint\n"
"INTERNAL: local_delayed_secretkey: %s\n",
type_to_string(tmpctx, struct privkey,
&x_local_delayed_secretkey));
fmt_privkey(tmpctx, &x_local_delayed_secretkey));
/* These two needed to calculate obscuring factor */
printf("local_payment_basepoint: %s\n",
type_to_string(tmpctx, struct pubkey, &local_payment_basepoint));
fmt_pubkey(tmpctx, &local_payment_basepoint));
printf("remote_payment_basepoint: %s\n",
type_to_string(tmpctx, struct pubkey,&remote_payment_basepoint));
fmt_pubkey(tmpctx,&remote_payment_basepoint));
cn_obscurer = commit_number_obscurer(&local_payment_basepoint,
&remote_payment_basepoint);
printf("# obscured commitment transaction number = 0x%"PRIx64" ^ %"PRIu64"\n",
@ -708,16 +698,16 @@ int main(int argc, const char *argv[])
printf("local_funding_privkey: %s01\n",
type_to_string(tmpctx, struct privkey, &local_funding_privkey));
fmt_privkey(tmpctx, &local_funding_privkey));
if (!pubkey_from_privkey(&local_funding_privkey, &local_funding_pubkey))
abort();
printf("local_funding_pubkey: %s\n",
type_to_string(tmpctx, struct pubkey, &local_funding_pubkey));
fmt_pubkey(tmpctx, &local_funding_pubkey));
if (!pubkey_from_privkey(&x_remote_funding_privkey, &remote_funding_pubkey))
abort();
printf("remote_funding_pubkey: %s\n",
type_to_string(tmpctx, struct pubkey, &remote_funding_pubkey));
fmt_pubkey(tmpctx, &remote_funding_pubkey));
if (!derive_simple_privkey(&x_local_htlc_basepoint_secret,
&local_payment_basepoint,
@ -725,14 +715,14 @@ int main(int argc, const char *argv[])
&local_htlcsecretkey))
abort();
printf("local_secretkey: %s\n",
type_to_string(tmpctx, struct privkey, &local_htlcsecretkey));
fmt_privkey(tmpctx, &local_htlcsecretkey));
if (!derive_simple_key(&local_payment_basepoint,
&x_local_per_commitment_point,
&localkey))
abort();
printf("localkey: %s\n",
type_to_string(tmpctx, struct pubkey, &localkey));
fmt_pubkey(tmpctx, &localkey));
if (option_static_remotekey)
remotekey = remote_payment_basepoint;
@ -743,7 +733,7 @@ int main(int argc, const char *argv[])
abort();
}
printf("remotekey: %s\n",
type_to_string(tmpctx, struct pubkey, &remotekey));
fmt_pubkey(tmpctx, &remotekey));
if (!pubkey_from_privkey(&local_htlcsecretkey, &local_htlckey))
abort();
@ -753,14 +743,14 @@ int main(int argc, const char *argv[])
abort();
assert(pubkey_eq(&tmpkey, &local_htlckey));
printf("local_htlckey: %s\n",
type_to_string(tmpctx, struct pubkey, &local_htlckey));
fmt_pubkey(tmpctx, &local_htlckey));
if (!derive_simple_key(&remote_htlc_basepoint,
&x_local_per_commitment_point,
&remote_htlckey))
abort();
printf("remote_htlckey: %s\n",
type_to_string(tmpctx, struct pubkey, &remote_htlckey));
fmt_pubkey(tmpctx, &remote_htlckey));
if (!pubkey_from_privkey(&x_local_delayed_secretkey, &local_delayedkey))
abort();
@ -770,14 +760,14 @@ int main(int argc, const char *argv[])
abort();
assert(pubkey_eq(&tmpkey, &local_delayedkey));
printf("local_delayedkey: %s\n",
type_to_string(tmpctx, struct pubkey, &local_delayedkey));
fmt_pubkey(tmpctx, &local_delayedkey));
if (!derive_revocation_key(&x_remote_revocation_basepoint,
&x_local_per_commitment_point,
&remote_revocation_key))
abort();
printf("remote_revocation_key: %s\n",
type_to_string(tmpctx, struct pubkey, &remote_revocation_key));
fmt_pubkey(tmpctx, &remote_revocation_key));
wscript = bitcoin_redeem_2of2(tmpctx, &local_funding_pubkey,
&remote_funding_pubkey);

View file

@ -58,8 +58,7 @@ penalty_tx_create(const tal_t *ctx,
if (!pubkey_from_secret(&remote_per_commitment_secret, &remote_per_commitment_point))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Failed derive from per_commitment_secret %s",
type_to_string(tmpctx, struct secret,
&remote_per_commitment_secret));
fmt_secret(tmpctx, &remote_per_commitment_secret));
if (!derive_keyset(&remote_per_commitment_point,
&basepoints[REMOTE],
@ -95,8 +94,8 @@ penalty_tx_create(const tal_t *ctx,
if (!amount_sat_add(&min_out, dust_limit, fee))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Cannot add dust_limit %s and fee %s",
type_to_string(tmpctx, struct amount_sat, &dust_limit),
type_to_string(tmpctx, struct amount_sat, &fee));
fmt_amount_sat(tmpctx, dust_limit),
fmt_amount_sat(tmpctx, fee));
if (amount_sat_less(to_them_sats, min_out)) {
/* FIXME: We should use SIGHASH_NONE so others can take it */
@ -112,7 +111,7 @@ penalty_tx_create(const tal_t *ctx,
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"TX can't afford minimal feerate"
"; setting output to %s",
type_to_string(tmpctx, struct amount_sat, &amt));
fmt_amount_sat(tmpctx, amt));
}
bitcoin_tx_output_set_amount(tx, 0, amt);
bitcoin_tx_finalize(tx);

View file

@ -72,16 +72,14 @@ static struct bitcoin_tx *close_tx(const tal_t *ctx,
if (!amount_sat_sub(&out_minus_fee[opener], out[opener], fee))
peer_failed_warn(pps, channel_id,
"Funder cannot afford fee %s (%s and %s)",
type_to_string(tmpctx, struct amount_sat, &fee),
type_to_string(tmpctx, struct amount_sat,
&out[LOCAL]),
type_to_string(tmpctx, struct amount_sat,
&out[REMOTE]));
fmt_amount_sat(tmpctx, fee),
fmt_amount_sat(tmpctx, out[LOCAL]),
fmt_amount_sat(tmpctx, out[REMOTE]));
status_debug("Making close tx at = %s/%s fee %s",
type_to_string(tmpctx, struct amount_sat, &out[LOCAL]),
type_to_string(tmpctx, struct amount_sat, &out[REMOTE]),
type_to_string(tmpctx, struct amount_sat, &fee));
fmt_amount_sat(tmpctx, out[LOCAL]),
fmt_amount_sat(tmpctx, out[REMOTE]),
fmt_amount_sat(tmpctx, fee));
/* FIXME: We need to allow this! */
tx = create_close_tx(ctx,
@ -102,11 +100,11 @@ static struct bitcoin_tx *close_tx(const tal_t *ctx,
" dust_limit = %s"
" LOCAL = %s"
" REMOTE = %s",
type_to_string(tmpctx, struct amount_sat, &funding_sats),
type_to_string(tmpctx, struct amount_sat, &fee),
type_to_string(tmpctx, struct amount_sat, &dust_limit),
type_to_string(tmpctx, struct amount_sat, &out[LOCAL]),
type_to_string(tmpctx, struct amount_sat, &out[REMOTE]));
fmt_amount_sat(tmpctx, funding_sats),
fmt_amount_sat(tmpctx, fee),
fmt_amount_sat(tmpctx, dust_limit),
fmt_amount_sat(tmpctx, out[LOCAL]),
fmt_amount_sat(tmpctx, out[REMOTE]));
if (wrong_funding)
bitcoin_tx_input_set_outpoint(tx, 0, wrong_funding);
@ -186,7 +184,7 @@ static void send_offer(struct per_peer_state *pps,
tal_hex(tmpctx, msg));
status_debug("sending fee offer %s",
type_to_string(tmpctx, struct amount_sat, &fee_to_offer));
fmt_amount_sat(tmpctx, fee_to_offer));
/* Add the new close_tlvs with our fee range */
if (tlv_fees) {
@ -195,9 +193,9 @@ static void send_offer(struct per_peer_state *pps,
= cast_const(struct tlv_closing_signed_tlvs_fee_range *,
tlv_fees);
notify(LOG_INFORM, "Sending closing fee offer %s, with range %s-%s",
type_to_string(tmpctx, struct amount_sat, &fee_to_offer),
type_to_string(tmpctx, struct amount_sat, &tlv_fees->min_fee_satoshis),
type_to_string(tmpctx, struct amount_sat, &tlv_fees->max_fee_satoshis));
fmt_amount_sat(tmpctx, fee_to_offer),
fmt_amount_sat(tmpctx, tlv_fees->min_fee_satoshis),
fmt_amount_sat(tmpctx, tlv_fees->max_fee_satoshis));
} else
close_tlvs = NULL;
@ -341,12 +339,10 @@ receive_offer(struct per_peer_state *pps,
peer_failed_warn(pps, channel_id,
"Bad closing_signed signature for"
" %s (and trimmed version %s)",
type_to_string(tmpctx,
struct bitcoin_tx,
fmt_bitcoin_tx(tmpctx,
tx),
trimmed ?
type_to_string(tmpctx,
struct bitcoin_tx,
fmt_bitcoin_tx(tmpctx,
trimmed)
: "NONE");
}
@ -354,7 +350,7 @@ receive_offer(struct per_peer_state *pps,
}
status_debug("Received fee offer %s",
type_to_string(tmpctx, struct amount_sat, &received_fee));
fmt_amount_sat(tmpctx, received_fee));
if (tlv_fees) {
if (close_tlvs) {
@ -366,14 +362,14 @@ receive_offer(struct per_peer_state *pps,
if (close_tlvs && close_tlvs->fee_range) {
notify(LOG_INFORM, "Received closing fee offer %s, with range %s-%s",
type_to_string(tmpctx, struct amount_sat, &received_fee),
type_to_string(tmpctx, struct amount_sat,
&close_tlvs->fee_range->min_fee_satoshis),
type_to_string(tmpctx, struct amount_sat,
&close_tlvs->fee_range->max_fee_satoshis));
fmt_amount_sat(tmpctx, received_fee),
fmt_amount_sat(tmpctx,
close_tlvs->fee_range->min_fee_satoshis),
fmt_amount_sat(tmpctx,
close_tlvs->fee_range->max_fee_satoshis));
} else {
notify(LOG_INFORM, "Received closing fee offer %s, without range",
type_to_string(tmpctx, struct amount_sat, &received_fee));
fmt_amount_sat(tmpctx, received_fee));
}
/* Master sorts out what is best offer, we just tell it any above min */
@ -411,8 +407,8 @@ static void init_feerange(struct feerange *feerange,
feerange->higher_side = REMOTE;
status_debug("Feerange init %s-%s, %s higher",
type_to_string(tmpctx, struct amount_sat, &feerange->min),
type_to_string(tmpctx, struct amount_sat, &feerange->max),
fmt_amount_sat(tmpctx, feerange->min),
fmt_amount_sat(tmpctx, feerange->max),
feerange->higher_side == LOCAL ? "local" : "remote");
}
@ -434,9 +430,9 @@ static void adjust_feerange(struct feerange *feerange,
status_debug("Feerange %s update %s: now %s-%s",
side == LOCAL ? "local" : "remote",
type_to_string(tmpctx, struct amount_sat, &offer),
type_to_string(tmpctx, struct amount_sat, &feerange->min),
type_to_string(tmpctx, struct amount_sat, &feerange->max));
fmt_amount_sat(tmpctx, offer),
fmt_amount_sat(tmpctx, feerange->min),
fmt_amount_sat(tmpctx, feerange->max));
if (!ok)
status_failed(STATUS_FAIL_INTERNAL_ERROR,
@ -483,8 +479,7 @@ adjust_offer(struct per_peer_state *pps, const struct channel_id *channel_id,
if (!amount_sat_add(&min_plus_one, feerange->min, AMOUNT_SAT(1)))
peer_failed_warn(pps, channel_id,
"Fee offer %s min too large",
type_to_string(tmpctx, struct amount_sat,
&feerange->min));
fmt_amount_sat(tmpctx, feerange->min));
if (amount_sat_greater_eq(min_plus_one, feerange->max))
return remote_offer;
@ -501,12 +496,9 @@ adjust_offer(struct per_peer_state *pps, const struct channel_id *channel_id,
peer_failed_warn(pps, channel_id,
"Feerange %s-%s"
" below minimum acceptable %s",
type_to_string(tmpctx, struct amount_sat,
&feerange->min),
type_to_string(tmpctx, struct amount_sat,
&feerange->max),
type_to_string(tmpctx, struct amount_sat,
&min_fee_to_accept));
fmt_amount_sat(tmpctx, feerange->min),
fmt_amount_sat(tmpctx, feerange->max),
fmt_amount_sat(tmpctx, min_fee_to_accept));
if (fee_negotiation_step_unit ==
CLOSING_FEE_NEGOTIATION_STEP_UNIT_SATOSHI) {
@ -630,7 +622,7 @@ static void calc_fee_bounds(size_t expected_weight,
*maxfee = amount_tx_fee(max_feerate, expected_weight);
status_debug("deriving max fee from rate %u -> %s",
max_feerate,
type_to_string(tmpctx, struct amount_sat, maxfee));
fmt_amount_sat(tmpctx, *maxfee));
}
/* Can't exceed maxfee. */
@ -640,25 +632,25 @@ static void calc_fee_bounds(size_t expected_weight,
if (amount_sat_less(*desiredfee, *minfee)) {
status_unusual("Our ideal fee is %s (%u sats/perkw),"
" but our minimum is %s: using that",
type_to_string(tmpctx, struct amount_sat, desiredfee),
fmt_amount_sat(tmpctx, *desiredfee),
desired_feerate,
type_to_string(tmpctx, struct amount_sat, minfee));
fmt_amount_sat(tmpctx, *minfee));
*desiredfee = *minfee;
}
if (amount_sat_greater(*desiredfee, *maxfee)) {
status_unusual("Our ideal fee is %s (%u sats/perkw),"
" but our maximum is %s: using that",
type_to_string(tmpctx, struct amount_sat, desiredfee),
fmt_amount_sat(tmpctx, *desiredfee),
desired_feerate,
type_to_string(tmpctx, struct amount_sat, maxfee));
fmt_amount_sat(tmpctx, *maxfee));
*desiredfee = *maxfee;
}
status_debug("Expected closing weight = %zu, fee %s (min %s, max %s)",
expected_weight,
type_to_string(tmpctx, struct amount_sat, desiredfee),
type_to_string(tmpctx, struct amount_sat, minfee),
type_to_string(tmpctx, struct amount_sat, maxfee));
fmt_amount_sat(tmpctx, *desiredfee),
fmt_amount_sat(tmpctx, *minfee),
fmt_amount_sat(tmpctx, *maxfee));
}
/* We've received one offer; if we're opener, that means we've already sent one
@ -695,26 +687,16 @@ static void do_quickclose(struct amount_sat offer[NUM_SIDES],
peer_failed_warn(pps, channel_id,
"Unable to agree on a feerate."
" Our range %s-%s, other range %s-%s",
type_to_string(tmpctx,
struct amount_sat,
&our_feerange->min_fee_satoshis),
type_to_string(tmpctx,
struct amount_sat,
&our_feerange->max_fee_satoshis),
type_to_string(tmpctx,
struct amount_sat,
&their_feerange->min_fee_satoshis),
type_to_string(tmpctx,
struct amount_sat,
&their_feerange->max_fee_satoshis));
fmt_amount_sat(tmpctx, our_feerange->min_fee_satoshis),
fmt_amount_sat(tmpctx, our_feerange->max_fee_satoshis),
fmt_amount_sat(tmpctx, their_feerange->min_fee_satoshis),
fmt_amount_sat(tmpctx, their_feerange->max_fee_satoshis));
return;
}
status_info("performing quickclose in range %s-%s",
type_to_string(tmpctx, struct amount_sat,
&overlap.min_fee_satoshis),
type_to_string(tmpctx, struct amount_sat,
&overlap.max_fee_satoshis));
fmt_amount_sat(tmpctx, overlap.min_fee_satoshis),
fmt_amount_sat(tmpctx, overlap.max_fee_satoshis));
/* BOLT #2:
* - otherwise:
@ -730,20 +712,11 @@ static void do_quickclose(struct amount_sat offer[NUM_SIDES],
peer_failed_warn(pps, channel_id,
"Your fee %s was not in range:"
" Our range %s-%s, other range %s-%s",
type_to_string(tmpctx,
struct amount_sat, &offer[REMOTE]),
type_to_string(tmpctx,
struct amount_sat,
&our_feerange->min_fee_satoshis),
type_to_string(tmpctx,
struct amount_sat,
&our_feerange->max_fee_satoshis),
type_to_string(tmpctx,
struct amount_sat,
&their_feerange->min_fee_satoshis),
type_to_string(tmpctx,
struct amount_sat,
&their_feerange->max_fee_satoshis));
fmt_amount_sat(tmpctx, offer[REMOTE]),
fmt_amount_sat(tmpctx, our_feerange->min_fee_satoshis),
fmt_amount_sat(tmpctx, our_feerange->max_fee_satoshis),
fmt_amount_sat(tmpctx, their_feerange->min_fee_satoshis),
fmt_amount_sat(tmpctx, their_feerange->max_fee_satoshis));
return;
}
/* Only reply if we didn't already completely agree. */
@ -776,17 +749,13 @@ static void do_quickclose(struct amount_sat offer[NUM_SIDES],
offer[LOCAL] = overlap.max_fee_satoshis;
status_unusual("Lowered offer to max allowable"
" %s",
type_to_string(tmpctx,
struct amount_sat,
&offer[LOCAL]));
fmt_amount_sat(tmpctx, offer[LOCAL]));
} else if (amount_sat_less(offer[LOCAL],
overlap.min_fee_satoshis)) {
offer[LOCAL] = overlap.min_fee_satoshis;
status_unusual("Increased offer to min allowable"
" %s",
type_to_string(tmpctx,
struct amount_sat,
&offer[LOCAL]));
fmt_amount_sat(tmpctx, offer[LOCAL]));
}
}
send_offer(pps, chainparams,
@ -824,10 +793,8 @@ static void do_quickclose(struct amount_sat offer[NUM_SIDES],
if (!amount_sat_eq(offer[LOCAL], offer[REMOTE])) {
peer_failed_warn(pps, channel_id,
"Your fee %s was not equal to %s",
type_to_string(tmpctx,
struct amount_sat, &offer[REMOTE]),
type_to_string(tmpctx,
struct amount_sat, &offer[LOCAL]));
fmt_amount_sat(tmpctx, offer[REMOTE]),
fmt_amount_sat(tmpctx, offer[LOCAL]));
return;
}
}
@ -835,7 +802,7 @@ static void do_quickclose(struct amount_sat offer[NUM_SIDES],
peer_billboard(true, "We agreed on a closing fee of %"PRIu64" satoshi for tx:%s",
offer[LOCAL],
type_to_string(tmpctx, struct bitcoin_txid, closing_txid));
fmt_bitcoin_txid(tmpctx, closing_txid));
}
int main(int argc, char *argv[])
@ -933,26 +900,26 @@ int main(int argc, char *argv[])
: "sat");
status_debug("out = %s/%s",
type_to_string(tmpctx, struct amount_sat, &out[LOCAL]),
type_to_string(tmpctx, struct amount_sat, &out[REMOTE]));
fmt_amount_sat(tmpctx, out[LOCAL]),
fmt_amount_sat(tmpctx, out[REMOTE]));
status_debug("dustlimit = %s",
type_to_string(tmpctx, struct amount_sat, &our_dust_limit));
fmt_amount_sat(tmpctx, our_dust_limit));
status_debug("fee = %s",
type_to_string(tmpctx, struct amount_sat, &offer[LOCAL]));
fmt_amount_sat(tmpctx, offer[LOCAL]));
status_debug("fee negotiation step = %s", fee_negotiation_step_str);
if (wrong_funding)
status_unusual("Setting wrong_funding_txid to %s:%u",
type_to_string(tmpctx, struct bitcoin_txid,
&wrong_funding->txid),
fmt_bitcoin_txid(tmpctx,
&wrong_funding->txid),
wrong_funding->n);
peer_billboard(
true,
"Negotiating closing fee between %s and %s satoshi (ideal %s) "
"using step %s",
type_to_string(tmpctx, struct amount_sat, &min_fee_to_accept),
type_to_string(tmpctx, struct amount_sat, &max_fee_to_accept),
type_to_string(tmpctx, struct amount_sat, &offer[LOCAL]),
fmt_amount_sat(tmpctx, min_fee_to_accept),
fmt_amount_sat(tmpctx, max_fee_to_accept),
fmt_amount_sat(tmpctx, offer[LOCAL]),
fee_negotiation_step_str);
/* BOLT #2:
@ -982,9 +949,7 @@ int main(int argc, char *argv[])
peer_billboard(false, "Waiting for their initial"
" closing fee offer:"
" ours was %s",
type_to_string(tmpctx,
struct amount_sat,
&offer[LOCAL]));
fmt_amount_sat(tmpctx, offer[LOCAL]));
offer[REMOTE]
= receive_offer(pps, chainparams,
&channel_id, funding_pubkey,
@ -1073,7 +1038,7 @@ int main(int argc, char *argv[])
peer_billboard(true, "We agreed on a closing fee of %"PRIu64" satoshi for tx:%s",
offer[LOCAL],
type_to_string(tmpctx, struct bitcoin_txid, &closing_txid));
fmt_bitcoin_txid(tmpctx, &closing_txid));
exit_thru_the_giftshop:
/* We don't listen for master commands, so always check memleak here */

View file

@ -25,7 +25,7 @@ static bool blind_node(const struct privkey *blinding,
if (!blindedpath_get_alias(ss, node, node_alias))
return false;
SUPERVERBOSE("\t\"blinded_node_id\": \"%s\",\n",
type_to_string(tmpctx, struct pubkey, node_alias));
fmt_pubkey(tmpctx, node_alias));
/* BOLT #4:
* - `E(i+1) = SHA256(E(i) || ss(i)) * E(i)`
@ -34,7 +34,7 @@ static bool blind_node(const struct privkey *blinding,
if (!pubkey_from_privkey(blinding, &blinding_pubkey))
return false;
SUPERVERBOSE("\t\"E\": \"%s\",\n",
type_to_string(tmpctx, struct pubkey, &blinding_pubkey));
fmt_pubkey(tmpctx, &blinding_pubkey));
/* BOLT #4:
* - `e(i+1) = SHA256(E(i) || ss(i)) * e(i)`
@ -42,10 +42,10 @@ static bool blind_node(const struct privkey *blinding,
*/
blinding_hash_e_and_ss(&blinding_pubkey, ss, &h);
SUPERVERBOSE("\t\"H(E || ss)\": \"%s\",\n",
type_to_string(tmpctx, struct sha256, &h));
fmt_sha256(tmpctx, &h));
blinding_next_privkey(blinding, &h, next_blinding);
SUPERVERBOSE("\t\"next_e\": \"%s\",\n",
type_to_string(tmpctx, struct privkey, next_blinding));
fmt_privkey(tmpctx, next_blinding));
return true;
}
@ -72,7 +72,7 @@ static u8 *enctlv_from_encmsg_raw(const tal_t *ctx,
NULL, NULL) != 1)
return NULL;
SUPERVERBOSE("\t\"ss\": \"%s\",\n",
type_to_string(tmpctx, struct secret, &ss));
fmt_secret(tmpctx, &ss));
/* This calculates the node's alias, and next blinding */
if (!blind_node(blinding, &ss, node, node_alias, next_blinding))
@ -86,7 +86,7 @@ static u8 *enctlv_from_encmsg_raw(const tal_t *ctx,
*/
subkey_from_hmac("rho", &ss, &rho);
SUPERVERBOSE("\t\"rho\": \"%s\",\n",
type_to_string(tmpctx, struct secret, &rho));
fmt_secret(tmpctx, &rho));
/* BOLT #4:
* - MUST encrypt each `encrypted_data_tlv(i)` with ChaCha20-Poly1305 using
@ -228,8 +228,7 @@ bool blindedpath_get_alias(const struct secret *ss,
*/
subkey_from_hmac("blinded_node_id", ss, &node_id_blinding);
SUPERVERBOSE("\t\"HMAC256('blinded_node_id', ss)\": \"%s\",\n",
type_to_string(tmpctx, struct secret,
&node_id_blinding));
fmt_secret(tmpctx, &node_id_blinding));
*alias = *my_id;
return secp256k1_ec_pubkey_tweak_mul(secp256k1_ctx,

View file

@ -50,7 +50,7 @@ static void h_simpletag_ctx(struct sha256_ctx *sctx, const char *tag)
sha256_update(sctx, &sha, sizeof(sha));
SUPERVERBOSE("tag=SHA256(%s) -> %s",
tal_hexstr(tmpctx, tag, strlen(tag)),
type_to_string(tmpctx, struct sha256, &sha));
fmt_sha256(tmpctx, &sha));
}
@ -73,7 +73,7 @@ static void h_lnnonce_ctx(struct sha256_ctx *sctx, const struct tlv_field *field
sha256_update_tlvfield(&inner_sctx, &fields[0]);
sha256_done(&inner_sctx, &sha);
SUPERVERBOSE(") -> %s\n",
type_to_string(tmpctx, struct sha256, &sha));
fmt_sha256(tmpctx, &sha));
sha256_init(sctx);
sha256_update(sctx, &sha, sizeof(sha));
@ -92,7 +92,7 @@ static void calc_nonce(const struct sha256_ctx *lnnonce_ctx,
sha256_update_bigsize(&ctx, field->numtype);
sha256_done(&ctx, hash);
SUPERVERBOSE(") = %s\n", type_to_string(tmpctx, struct sha256, hash));
SUPERVERBOSE(") = %s\n", fmt_sha256(tmpctx, hash));
}
static void calc_lnleaf(const struct tlv_field *field, struct sha256 *hash)
@ -104,7 +104,7 @@ static void calc_lnleaf(const struct tlv_field *field, struct sha256 *hash)
SUPERVERBOSE(",");
sha256_update_tlvfield(&sctx, field);
sha256_done(&sctx, hash);
SUPERVERBOSE(") -> %s\n", type_to_string(tmpctx, struct sha256, hash));
SUPERVERBOSE(") -> %s\n", fmt_sha256(tmpctx, hash));
}
/* BOLT-offers #12:
@ -130,7 +130,7 @@ static struct sha256 *merkle_pair(const tal_t *ctx,
res = tal(ctx, struct sha256);
sha256_done(&sctx, res);
SUPERVERBOSE(") -> %s\n", type_to_string(tmpctx, struct sha256, res));
SUPERVERBOSE(") -> %s\n", fmt_sha256(tmpctx, res));
return res;
}

View file

@ -207,7 +207,7 @@ struct chain_coin_mvt *new_coin_channel_open_proposed(const tal_t *ctx,
mvt = new_chain_coin_mvt(ctx, NULL, NULL, out, NULL, 0,
take(new_tag_arr(NULL, CHANNEL_PROPOSED)),
amount, true, output_val, 0);
mvt->account_name = type_to_string(mvt, struct channel_id, chan_id);
mvt->account_name = fmt_channel_id(mvt, chan_id);
mvt->peer_id = tal_dup(mvt, struct node_id, peer_id);
/* If we're the opener, add to the tag list */
@ -235,7 +235,7 @@ struct chain_coin_mvt *new_coin_channel_open(const tal_t *ctx,
mvt = new_chain_coin_mvt(ctx, NULL, NULL, out, NULL, blockheight,
take(new_tag_arr(NULL, CHANNEL_OPEN)), amount,
true, output_val, 0);
mvt->account_name = type_to_string(mvt, struct channel_id, chan_id);
mvt->account_name = fmt_channel_id(mvt, chan_id);
mvt->peer_id = tal_dup(mvt, struct node_id, peer_id);
/* If we're the opener, add to the tag list */
@ -423,8 +423,7 @@ struct coin_mvt *finalize_channel_mvt(const tal_t *ctx,
{
struct coin_mvt *mvt = tal(ctx, struct coin_mvt);
mvt->account_id = type_to_string(mvt, struct channel_id,
&chan_mvt->chan_id);
mvt->account_id = fmt_channel_id(mvt, &chan_mvt->chan_id);
/* channel moves don't have external events! */
mvt->originating_acct = NULL;
mvt->hrp_name = tal_strdup(mvt, hrp_name);

View file

@ -231,10 +231,8 @@ static char *fmt_channel_view(const tal_t *ctx, const struct channel_view *view)
{
return tal_fmt(ctx, "{ owed_local=%s,"
" owed_remote=%s }",
type_to_string(tmpctx, struct amount_msat,
&view->owed[LOCAL]),
type_to_string(tmpctx, struct amount_msat,
&view->owed[REMOTE]));
fmt_amount_msat(tmpctx, view->owed[LOCAL]),
fmt_amount_msat(tmpctx, view->owed[REMOTE]));
}
/* FIXME: This should reference HTLCs somehow, and feerates! */
@ -244,8 +242,7 @@ char *fmt_channel(const tal_t *ctx, const struct channel *channel)
" opener=%s,"
" local=%s,"
" remote=%s }",
type_to_string(tmpctx, struct amount_sat,
&channel->funding_sats),
fmt_amount_sat(tmpctx, channel->funding_sats),
side_to_str(channel->opener),
fmt_channel_view(ctx, &channel->view[LOCAL]),
fmt_channel_view(ctx, &channel->view[REMOTE]));

View file

@ -176,12 +176,9 @@ struct bitcoin_tx *initial_commit_tx(const tal_t *ctx,
" nor other amount %s"
" exceed reserve %s"
" on initial commitment transaction",
type_to_string(tmpctx, struct amount_msat,
&self_pay),
type_to_string(tmpctx, struct amount_msat,
&other_pay),
type_to_string(tmpctx, struct amount_sat,
&self_reserve));
fmt_amount_msat(tmpctx, self_pay),
fmt_amount_msat(tmpctx, other_pay),
fmt_amount_sat(tmpctx, self_reserve));
return NULL;
}

View file

@ -484,9 +484,7 @@ char *process_interactivetx_updates(const tal_t *ctx,
NULL))
return tal_fmt(ctx,
"Invalid tx sent. Not SegWit %s",
type_to_string(ctx,
struct bitcoin_tx,
tx));
fmt_bitcoin_tx(ctx, tx));
/*
* BOLT-f53ca2301232db780843e894f55d95d512f297f9 #2:
@ -501,9 +499,7 @@ char *process_interactivetx_updates(const tal_t *ctx,
return tal_fmt(ctx,
"Unable to add input %s- "
"already present",
type_to_string(ctx,
struct bitcoin_outpoint,
&outpoint));
fmt_bitcoin_outpoint(ctx, &outpoint));
/*
* BOLT-f53ca2301232db780843e894f55d95d512f297f9 #2:
@ -528,9 +524,7 @@ char *process_interactivetx_updates(const tal_t *ctx,
if (!in)
return tal_fmt(ctx,
"Unable to add input %s",
type_to_string(ctx,
struct bitcoin_outpoint,
&outpoint));
fmt_bitcoin_outpoint(ctx, &outpoint));
tal_wally_start();
wally_psbt_input_set_utxo(in, tx->wtx);

View file

@ -49,9 +49,9 @@ bool derive_simple_key(const struct pubkey *basepoint,
return false;
#ifdef SUPERVERBOSE
printf("# + basepoint (0x%s)\n",
type_to_string(tmpctx, struct pubkey, basepoint));
fmt_pubkey(tmpctx, basepoint));
printf("# = 0x%s\n",
type_to_string(tmpctx, struct pubkey, key));
fmt_pubkey(tmpctx, key));
#endif
return true;
}
@ -141,7 +141,7 @@ bool derive_revocation_key(const struct pubkey *basepoint,
return false;
#ifdef SUPERVERBOSE
printf("# x revocation_basepoint = 0x%s\n",
type_to_string(tmpctx, secp256k1_pubkey, &add[0]));
fmt_secp256k1_pubkey(tmpctx, &add[0]));
#endif
pubkey_to_der(der_keys, per_commitment_point);
@ -160,7 +160,7 @@ bool derive_revocation_key(const struct pubkey *basepoint,
return false;
#ifdef SUPERVERBOSE
printf("# x per_commitment_point = 0x%s\n",
type_to_string(tmpctx, secp256k1_pubkey, &add[1]));
fmt_secp256k1_pubkey(tmpctx, &add[1]));
#endif
args[0] = &add[0];
@ -171,9 +171,9 @@ bool derive_revocation_key(const struct pubkey *basepoint,
#ifdef SUPERVERBOSE
printf("# 0x%s + 0x%s => 0x%s\n",
type_to_string(tmpctx, secp256k1_pubkey, args[0]),
type_to_string(tmpctx, secp256k1_pubkey, args[1]),
type_to_string(tmpctx, struct pubkey, key));
fmt_secp256k1_pubkey(tmpctx, args[0]),
fmt_secp256k1_pubkey(tmpctx, args[1]),
fmt_pubkey(tmpctx, key));
#endif
return true;
}

View file

@ -114,7 +114,7 @@ bool onion_message_parse(const tal_t *ctx,
if (!rs) {
status_peer_debug(peer,
"onion_message_parse: can't process onionpacket ss=%s",
type_to_string(tmpctx, struct secret, &onion_ss));
fmt_secret(tmpctx, &onion_ss));
return false;
}

View file

@ -163,17 +163,17 @@ int main(int argc, char *argv[])
printf("[{");
json_strfield("test name", "Simple encrypted_recipient_data for Alice, next is Bob");
json_strfield("node_privkey",
type_to_string(tmpctx, struct privkey, &alice));
fmt_privkey(tmpctx, &alice));
json_strfield("node_id",
type_to_string(tmpctx, struct pubkey, &alice_id));
fmt_pubkey(tmpctx, &alice_id));
json_strfield("blinding_secret",
type_to_string(tmpctx, struct privkey, &blinding));
fmt_privkey(tmpctx, &blinding));
json_strfield("blinding",
type_to_string(tmpctx, struct pubkey, &blinding_pub));
fmt_pubkey(tmpctx, &blinding_pub));
printf("\t\"encrypted_data_tlv\": {\n"
"\t\t\"next_node_id\": \"%s\"\n"
"\t},\n",
type_to_string(tmpctx, struct pubkey, &bob_id));
fmt_pubkey(tmpctx, &bob_id));
tlv = tlv_encrypted_data_tlv_new(tmpctx);
tlv->next_node_id = &bob_id;
@ -193,19 +193,19 @@ int main(int argc, char *argv[])
json_strfield("test name",
"Blinding-key-override encrypted_recipient_data for Bob, next is Carol");
json_strfield("node_privkey",
type_to_string(tmpctx, struct privkey, &bob));
fmt_privkey(tmpctx, &bob));
json_strfield("node_id",
type_to_string(tmpctx, struct pubkey, &bob_id));
fmt_pubkey(tmpctx, &bob_id));
json_strfield("blinding_secret",
type_to_string(tmpctx, struct privkey, &blinding));
fmt_privkey(tmpctx, &blinding));
json_strfield("blinding",
type_to_string(tmpctx, struct pubkey, &blinding_pub));
fmt_pubkey(tmpctx, &blinding_pub));
printf("\t\"encrypted_data_tlv\": {\n"
"\t\t\"next_node_id\": \"%s\",\n"
"\t\t\"blinding\": \"%s\"\n"
"\t},\n",
type_to_string(tmpctx, struct pubkey, &carol_id),
type_to_string(tmpctx, struct privkey, &override_blinding));
fmt_pubkey(tmpctx, &carol_id),
fmt_privkey(tmpctx, &override_blinding));
tlv = tlv_encrypted_data_tlv_new(tmpctx);
tlv->next_node_id = &carol_id;
@ -225,18 +225,18 @@ int main(int argc, char *argv[])
printf("{");
json_strfield("test name", "Padded encrypted_recipient_data for Carol, next is Dave");
json_strfield("node_privkey",
type_to_string(tmpctx, struct privkey, &carol));
fmt_privkey(tmpctx, &carol));
json_strfield("node_id",
type_to_string(tmpctx, struct pubkey, &carol_id));
fmt_pubkey(tmpctx, &carol_id));
json_strfield("blinding_secret",
type_to_string(tmpctx, struct privkey, &blinding));
fmt_privkey(tmpctx, &blinding));
json_strfield("blinding",
type_to_string(tmpctx, struct pubkey, &blinding_pub));
fmt_pubkey(tmpctx, &blinding_pub));
printf("\t\"encrypted_data_tlv\": {\n"
"\t\t\"next_node_id\": \"%s\",\n"
"\t\t\"padding\": \"%s\"\n"
"\t},\n",
type_to_string(tmpctx, struct pubkey, &dave_id),
fmt_pubkey(tmpctx, &dave_id),
tal_hex(tmpctx, tal_arrz(tmpctx, u8, 35)));
tlv = tlv_encrypted_data_tlv_new(tmpctx);
@ -255,17 +255,17 @@ int main(int argc, char *argv[])
printf("{");
json_strfield("test name", "Final enctlv for Dave");
json_strfield("node_privkey",
type_to_string(tmpctx, struct privkey, &dave));
fmt_privkey(tmpctx, &dave));
json_strfield("node_id",
type_to_string(tmpctx, struct pubkey, &dave_id));
fmt_pubkey(tmpctx, &dave_id));
json_strfield("blinding_secret",
type_to_string(tmpctx, struct privkey, &blinding));
fmt_privkey(tmpctx, &blinding));
json_strfield("blinding",
type_to_string(tmpctx, struct pubkey, &blinding_pub));
fmt_pubkey(tmpctx, &blinding_pub));
printf("\t\"encrypted_data_tlv\": {\n"
"\t\t\"self_id\": \"%s\"\n"
"\t},\n",
type_to_string(tmpctx, struct secret, &self_id));
fmt_secret(tmpctx, &self_id));
tlv = tlv_encrypted_data_tlv_new(tmpctx);
tlv->path_id = tal_dup_arr(tlv, u8,

View file

@ -252,20 +252,18 @@ int main(int argc, char *argv[])
printf("{\n");
json_strfield("node name", names[i]);
json_strfield("node_secret",
type_to_string(tmpctx, struct privkey,
&nodekey[i]));
fmt_privkey(tmpctx, &nodekey[i]));
json_strfield("node_id",
type_to_string(tmpctx, struct pubkey, &id[i]));
fmt_pubkey(tmpctx, &id[i]));
printf("\t\"onion_message\": {");
json_strfield("raw", tal_hex(tmpctx, omsg));
json_strfield("blinding_secret",
type_to_string(tmpctx, struct privkey,
&blinding[i]));
fmt_privkey(tmpctx, &blinding[i]));
json_strfield("blinding",
type_to_string(tmpctx, struct pubkey, &blinding_pub[i]));
fmt_pubkey(tmpctx, &blinding_pub[i]));
json_strfield("blinded_alias",
type_to_string(tmpctx, struct pubkey, &alias[i]));
fmt_pubkey(tmpctx, &alias[i]));
json_strfield("onionmsg_tlv",
tal_hex(tmpctx, onionmsg_tlv[i]));
printf("\"enctlv\": \"%s\"}\n", tal_hex(tmpctx, enctlv[i]));

View file

@ -110,9 +110,9 @@ static struct sha256 *H(const void *tag, const void *msg)
printf("test: H(tag=%s,msg=%s) -> SHA256(%s|%s|msg) -> %s\n",
tal_hex(tmpctx, tag), tal_hex(tmpctx, msg),
type_to_string(tmpctx, struct sha256, taghash),
type_to_string(tmpctx, struct sha256, taghash),
type_to_string(tmpctx, struct sha256, ret));
fmt_sha256(tmpctx, taghash),
fmt_sha256(tmpctx, taghash),
fmt_sha256(tmpctx, ret));
return ret;
}
@ -193,16 +193,16 @@ int main(int argc, char *argv[])
H(concat(LnNonce, tlv1), tlv_type(tlv1))));
json_out("{ \"H(`LnLeaf`,%s)\": \"%s\", \"H(`LnNonce`|first-tlv,tlv1-type)\": \"%s\", \"H(`LnBranch`,leaf+nonce)\": \"%s\" }",
tal_hex(tmpctx, tlv1),
type_to_string(tmpctx, struct sha256, H(LnLeaf, tlv1)),
type_to_string(tmpctx, struct sha256, H(concat(LnNonce, tlv1), tlv_type(tlv1))),
type_to_string(tmpctx, struct sha256, leaf[0]));
fmt_sha256(tmpctx, H(LnLeaf, tlv1)),
fmt_sha256(tmpctx, H(concat(LnNonce, tlv1), tlv_type(tlv1))),
fmt_sha256(tmpctx, leaf[0]));
json_out("],");
m = leaf[0];
json_out("\"branches\": [],");
json_out("\"merkle\": \"%s\"",
type_to_string(tmpctx, struct sha256, m));
fmt_sha256(tmpctx, m));
json_out("},");
/* Create, linearize (populates ->fields) */
@ -226,14 +226,14 @@ int main(int argc, char *argv[])
json_out("{ \"H(`LnLeaf`,%s)\": \"%s\", \"H(`LnNonce`|first-tlv,tlv1-type)\": \"%s\", \"H(`LnBranch`,leaf+nonce)\": \"%s\" },",
tal_hex(tmpctx, tlv1),
type_to_string(tmpctx, struct sha256, H(LnLeaf, tlv1)),
type_to_string(tmpctx, struct sha256, H(concat(LnNonce, tlv1), tlv_type(tlv1))),
type_to_string(tmpctx, struct sha256, leaf[0]));
fmt_sha256(tmpctx, H(LnLeaf, tlv1)),
fmt_sha256(tmpctx, H(concat(LnNonce, tlv1), tlv_type(tlv1))),
fmt_sha256(tmpctx, leaf[0]));
json_out("{ \"H(`LnLeaf`,%s)\": \"%s\", \"H(`LnNonce`|first-tlv,tlv2-type)\": \"%s\", \"H(`LnBranch`,leaf+nonce)\": \"%s\" }",
tal_hex(tmpctx, tlv2),
type_to_string(tmpctx, struct sha256, H(LnLeaf, tlv2)),
type_to_string(tmpctx, struct sha256, H(concat(LnNonce, tlv1), tlv_type(tlv2))),
type_to_string(tmpctx, struct sha256, leaf[1]));
fmt_sha256(tmpctx, H(LnLeaf, tlv2)),
fmt_sha256(tmpctx, H(concat(LnNonce, tlv1), tlv_type(tlv2))),
fmt_sha256(tmpctx, leaf[1]));
json_out("],");
json_out("\"branches\": [");
@ -245,7 +245,7 @@ int main(int argc, char *argv[])
m = H(LnBranch, ordered(leaf[0], leaf[1]));
json_out("\"merkle\": \"%s\"",
type_to_string(tmpctx, struct sha256, m));
fmt_sha256(tmpctx, m));
json_out("},");
n1->tlv2 = tal(n1, struct short_channel_id);
@ -268,19 +268,19 @@ int main(int argc, char *argv[])
H(concat(LnNonce, tlv1), tlv_type(tlv3))));
json_out("{ \"H(`LnLeaf`,%s)\": \"%s\", \"H(`LnNonce`|first-tlv,1)\": \"%s\", \"H(`LnBranch`,leaf+nonce)\": \"%s\" },",
tal_hex(tmpctx, tlv1),
type_to_string(tmpctx, struct sha256, H(LnLeaf, tlv1)),
type_to_string(tmpctx, struct sha256, H(concat(LnNonce, tlv1), tlv_type(tlv1))),
type_to_string(tmpctx, struct sha256, leaf[0]));
fmt_sha256(tmpctx, H(LnLeaf, tlv1)),
fmt_sha256(tmpctx, H(concat(LnNonce, tlv1), tlv_type(tlv1))),
fmt_sha256(tmpctx, leaf[0]));
json_out("{ \"H(`LnLeaf`,%s)\": \"%s\", \"H(`LnNonce`|first-tlv,2)\": \"%s\", \"H(`LnBranch`,leaf+nonce)\": \"%s\" },",
tal_hex(tmpctx, tlv2),
type_to_string(tmpctx, struct sha256, H(LnLeaf, tlv2)),
type_to_string(tmpctx, struct sha256, H(concat(LnNonce, tlv1), tlv_type(tlv2))),
type_to_string(tmpctx, struct sha256, leaf[1]));
fmt_sha256(tmpctx, H(LnLeaf, tlv2)),
fmt_sha256(tmpctx, H(concat(LnNonce, tlv1), tlv_type(tlv2))),
fmt_sha256(tmpctx, leaf[1]));
json_out("{ \"H(`LnLeaf`,%s)\": \"%s\", \"H(`LnNonce`|first-tlv,3)\": \"%s\", \"H(`LnBranch`,leaf+nonce)\": \"%s\" }",
tal_hex(tmpctx, tlv3),
type_to_string(tmpctx, struct sha256, H(LnLeaf, tlv3)),
type_to_string(tmpctx, struct sha256, H(concat(LnNonce, tlv1), tlv_type(tlv3))),
type_to_string(tmpctx, struct sha256, leaf[2]));
fmt_sha256(tmpctx, H(LnLeaf, tlv3)),
fmt_sha256(tmpctx, H(concat(LnNonce, tlv1), tlv_type(tlv3))),
fmt_sha256(tmpctx, leaf[2]));
json_out("],");
json_out("\"branches\": [");
@ -300,7 +300,7 @@ int main(int argc, char *argv[])
ordered(H(LnBranch, ordered(leaf[0], leaf[1])),
leaf[2]));
json_out("\"merkle\": \"%s\"",
type_to_string(tmpctx, struct sha256, m));
fmt_sha256(tmpctx, m));
json_out("},");
n1->tlv3 = tal(n1, struct tlv_n1_tlv3);
@ -375,12 +375,12 @@ int main(int argc, char *argv[])
H(concat(LnNonce, fieldwires[0]), tlv_type(fieldwires[i]))));
json_out("{ \"H(`LnLeaf`,%s)\": \"%s\", \"H(`LnNonce`|first-tlv,%u)\": \"%s\", \"H(`LnBranch`,leaf+nonce)\": \"%s\" }%s",
tal_hex(tmpctx, fieldwires[i]),
type_to_string(tmpctx, struct sha256,
fmt_sha256(tmpctx,
H(LnLeaf, fieldwires[i])),
tlv_type(fieldwires[i])[0], /* Works becuase they're all 1-byte types! */
type_to_string(tmpctx, struct sha256,
fmt_sha256(tmpctx,
H(concat(LnNonce, fieldwires[0]), tlv_type(fieldwires[i]))),
type_to_string(tmpctx, struct sha256, leaf[i]),
fmt_sha256(tmpctx, leaf[i]),
i == ARRAY_SIZE(fieldwires) - 1 ? "" : ",");
}
json_out("],");
@ -420,10 +420,10 @@ int main(int argc, char *argv[])
json_out("],");
json_out("\"merkle\": \"%s\",",
type_to_string(tmpctx, struct sha256, m));
fmt_sha256(tmpctx, m));
json_out("\"signature_tag\": \"lightninginvoice_requestsignature\",");
json_out("\"H(signature_tag,merkle)\": \"%s\",", type_to_string(tmpctx, struct sha256, &sha));
json_out("\"signature\": \"%s\"", type_to_string(tmpctx, struct bip340sig, invreq->signature));
json_out("\"H(signature_tag,merkle)\": \"%s\",", fmt_sha256(tmpctx, &sha));
json_out("\"signature\": \"%s\"", fmt_bip340sig(tmpctx, invreq->signature));
json_out("}]");
assert(sha256_eq(&test_m, m));

View file

@ -137,15 +137,15 @@ int main(int argc, char *argv[])
base_secret.data))
abort();
printf("base_point: 0x%s\n",
type_to_string(tmpctx, struct pubkey, &base_point));
fmt_pubkey(tmpctx, &base_point));
printf("per_commitment_point: 0x%s\n",
type_to_string(tmpctx, struct pubkey, &per_commitment_point));
fmt_pubkey(tmpctx, &per_commitment_point));
/* FIXME: Annotate internal steps. */
if (!derive_simple_key(&base_point, &per_commitment_point, &pubkey))
abort();
printf("localkey: 0x%s\n",
type_to_string(tmpctx, struct pubkey, &pubkey));
fmt_pubkey(tmpctx, &pubkey));
if (!derive_simple_privkey(&base_secret, &base_point,
&per_commitment_point, &privkey))
abort();
@ -158,7 +158,7 @@ int main(int argc, char *argv[])
if (!derive_revocation_key(&base_point, &per_commitment_point, &pubkey))
abort();
printf("revocationkey: 0x%s\n",
type_to_string(tmpctx, struct pubkey, &pubkey));
fmt_pubkey(tmpctx, &pubkey));
if (!derive_revocation_privkey(&base_secret, &per_commitment_secret,
&base_point, &per_commitment_point,
&privkey))

View file

@ -18,6 +18,9 @@
#include <stdio.h>
/* AUTOGENERATED MOCKS START */
/* Generated stub for fmt_channel_id */
char *fmt_channel_id(const tal_t *ctx UNNEEDED, const struct channel_id *channel_id UNNEEDED)
{ fprintf(stderr, "fmt_channel_id called!\n"); abort(); }
/* Generated stub for fromwire_channel_id */
bool fromwire_channel_id(const u8 **cursor UNNEEDED, size_t *max UNNEEDED,
struct channel_id *channel_id UNNEEDED)

View file

@ -121,7 +121,7 @@ char *sanitize_error(const tal_t *ctx, const u8 *errmsg,
tag,
channel_id_is_all(channel_id) ? "": " channel ",
channel_id_is_all(channel_id) ? ""
: type_to_string(tmpctx, struct channel_id, channel_id),
: fmt_channel_id(tmpctx, channel_id),
(int)tal_count(data), (char *)data);
}

View file

@ -491,8 +491,7 @@ static struct io_plan *websocket_connection_in(struct io_conn *conn,
return io_close(conn);
status_debug("Websocket connection in from %s",
type_to_string(tmpctx, struct wireaddr_internal,
&conn_in_arg.addr));
fmt_wireaddr_internal(tmpctx, &conn_in_arg.addr));
if (socketpair(AF_LOCAL, SOCK_STREAM, 0, childmsg) != 0)
goto fail;
@ -598,8 +597,7 @@ struct io_plan *connection_out(struct io_conn *conn, struct connecting *connect)
/* This shouldn't happen: lightningd should not give invalid ids! */
if (!pubkey_from_node_id(&outkey, &connect->id)) {
status_broken("Connection out to invalid id %s",
type_to_string(tmpctx, struct node_id,
&connect->id));
fmt_node_id(tmpctx, &connect->id));
return io_close(conn);
}
@ -680,8 +678,8 @@ static void destroy_io_conn(struct io_conn *conn, struct connecting *connect)
add_errors_to_error_list(connect,
tal_fmt(tmpctx, "%s: %s: %s",
type_to_string(tmpctx, struct wireaddr_internal,
&connect->addrs[connect->addrnum]),
fmt_wireaddr_internal(tmpctx,
&connect->addrs[connect->addrnum]),
connect->connstate, errstr));
connect->addrnum++;
connect->conn = NULL;
@ -834,9 +832,7 @@ static void try_connect_one_addr(struct connecting *connect)
if (!use_dns) { /* ignore DNS when we can't use it */
tal_append_fmt(&connect->errors,
"%s: dns disabled. ",
type_to_string(tmpctx,
struct wireaddr_internal,
addr));
fmt_wireaddr_internal(tmpctx, addr));
goto next;
}
/* Resolve with getaddrinfo */
@ -852,9 +848,7 @@ static void try_connect_one_addr(struct connecting *connect)
if (gai_err != 0) {
tal_append_fmt(&connect->errors,
"%s: getaddrinfo error '%s'. ",
type_to_string(tmpctx,
struct wireaddr_internal,
addr),
fmt_wireaddr_internal(tmpctx, addr),
gai_strerror(gai_err));
goto next;
}
@ -890,9 +884,7 @@ static void try_connect_one_addr(struct connecting *connect)
if (!connect->daemon->proxyaddr) {
tal_append_fmt(&connect->errors,
"%s: need a proxy. ",
type_to_string(tmpctx,
struct wireaddr_internal,
addr));
fmt_wireaddr_internal(tmpctx, addr));
goto next;
}
af = connect->daemon->proxyaddr->ai_family;
@ -901,8 +893,7 @@ static void try_connect_one_addr(struct connecting *connect)
if (af == -1) {
tal_append_fmt(&connect->errors,
"%s: not supported. ",
type_to_string(tmpctx, struct wireaddr_internal,
addr));
fmt_wireaddr_internal(tmpctx, addr));
goto next;
}
@ -910,8 +901,7 @@ static void try_connect_one_addr(struct connecting *connect)
if (fd < 0) {
tal_append_fmt(&connect->errors,
"%s: opening %i socket gave %s. ",
type_to_string(tmpctx, struct wireaddr_internal,
addr),
fmt_wireaddr_internal(tmpctx, addr),
af, strerror(errno));
goto next;
}
@ -993,9 +983,7 @@ static struct listen_fd *make_listen_fd(const tal_t *ctx,
const char *es = strerror(errno);
*errstr = tal_fmt(ctx, "Failed to create socket for %s%s: %s",
is_websocket ? "websocket " : "",
type_to_string(tmpctx,
struct wireaddr_internal,
wi),
fmt_wireaddr_internal(tmpctx, wi),
es);
status_debug("Failed to create %u socket: %s", domain, es);
return NULL;
@ -1010,9 +998,7 @@ static struct listen_fd *make_listen_fd(const tal_t *ctx,
const char *es = strerror(errno);
*errstr = tal_fmt(ctx, "Failed to bind socket for %s%s: %s",
is_websocket ? "websocket " : "",
type_to_string(tmpctx,
struct wireaddr_internal,
wi),
fmt_wireaddr_internal(tmpctx, wi),
es);
status_debug("Failed to bind %u socket: %s", domain, es);
goto fail;
@ -1021,7 +1007,7 @@ static struct listen_fd *make_listen_fd(const tal_t *ctx,
*errstr = NULL;
status_debug("Created %slistener on %s",
is_websocket ? "websocket ": "",
type_to_string(tmpctx, struct wireaddr_internal, wi));
fmt_wireaddr_internal(tmpctx, wi));
return listen_fd_new(ctx, wi, fd, listen_mayfail, is_websocket);
fail:
@ -1431,8 +1417,7 @@ static void connect_init(struct daemon *daemon, const u8 *msg)
if (!pubkey_from_node_id(&daemon->mykey, &daemon->id))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Invalid id for me %s",
type_to_string(tmpctx, struct node_id,
&daemon->id));
fmt_node_id(tmpctx, &daemon->id));
/* Resolve Tor proxy address if any: we need an addrinfo to connect()
* to. */
@ -1526,9 +1511,8 @@ static void connect_activate(struct daemon *daemon, const u8 *msg)
}
errmsg = tal_fmt(tmpctx,
"Failed to listen on socket %s: %s",
type_to_string(tmpctx,
struct wireaddr_internal,
&daemon->listen_fds[i]->wi),
fmt_wireaddr_internal(tmpctx,
&daemon->listen_fds[i]->wi),
strerror(errno));
break;
}
@ -1604,8 +1588,8 @@ static void add_seed_addrs(struct wireaddr_internal **addrs,
a.u.wireaddr.is_websocket = false;
a.u.wireaddr.wireaddr = new_addrs[j];
status_peer_debug(id, "Resolved %s to %s", hostnames[i],
type_to_string(tmpctx, struct wireaddr,
&a.u.wireaddr.wireaddr));
fmt_wireaddr(tmpctx,
&a.u.wireaddr.wireaddr));
tal_arr_expand(addrs, a);
}
/* Other seeds will likely have the same information. */

View file

@ -548,7 +548,7 @@ static struct io_plan *act_two_initiator2(struct io_conn *conn,
h->act2.pubkey, sizeof(h->act2.pubkey)) != 1)
return handshake_failed(conn, h);
SUPERVERBOSE("# re=0x%s", type_to_string(tmpctx, struct pubkey, &h->re));
SUPERVERBOSE("# re=0x%s", fmt_pubkey(tmpctx, &h->re));
/* BOLT #8:
*
@ -634,7 +634,7 @@ static struct io_plan *act_one_initiator(struct io_conn *conn,
SUPERVERBOSE("e.priv: 0x%s",
tal_hexstr(tmpctx, &h->e.priv, sizeof(h->e.priv)));
SUPERVERBOSE("e.pub: 0x%s",
type_to_string(tmpctx, struct pubkey, &h->e.pub));
fmt_pubkey(tmpctx, &h->e.pub));
/* BOLT #8:
*
@ -811,7 +811,7 @@ static struct io_plan *act_two_responder(struct io_conn *conn,
*/
h->e = generate_key();
SUPERVERBOSE("# e.pub=0x%s e.priv=0x%s",
type_to_string(tmpctx, struct pubkey, &h->e.pub),
fmt_pubkey(tmpctx, &h->e.pub),
tal_hexstr(tmpctx, &h->e.priv, sizeof(h->e.priv)));
/* BOLT #8:
@ -900,7 +900,7 @@ static struct io_plan *act_one_responder2(struct io_conn *conn,
h->act1.pubkey, sizeof(h->act1.pubkey)) != 1)
return handshake_failed(conn, h);
SUPERVERBOSE("# re=0x%s", type_to_string(tmpctx, struct pubkey, &h->re));
SUPERVERBOSE("# re=0x%s", fmt_pubkey(tmpctx, &h->re));
/* BOLT #8:
*

View file

@ -90,9 +90,7 @@ void handle_onion_message(struct daemon *daemon,
if (!next_peer) {
status_peer_debug(&peer->id,
"onion msg: unknown next peer %s",
type_to_string(tmpctx,
struct pubkey,
&next_node));
fmt_pubkey(tmpctx, &next_node));
return;
}
inject_peer_msg(next_peer, take(next_onion_msg));

View file

@ -92,14 +92,14 @@ int main(int argc, char *argv[])
printf("expiry: %"PRIu64" (%s)\n",
b11->expiry, fmt_time(ctx, b11->timestamp + b11->expiry));
printf("payee: %s\n",
type_to_string(ctx, struct node_id, &b11->receiver_id));
fmt_node_id(ctx, &b11->receiver_id));
printf("payment_hash: %s\n",
tal_hexstr(ctx, &b11->payment_hash, sizeof(b11->payment_hash)));
printf("min_final_cltv_expiry: %u\n", b11->min_final_cltv_expiry);
if (b11->msat) {
printf("msatoshi: %"PRIu64"\n", b11->msat->millisatoshis); /* Raw: raw int for backwards compat */
printf("amount_msat: %s\n",
type_to_string(tmpctx, struct amount_msat, b11->msat));
fmt_amount_msat(tmpctx, *b11->msat));
}
if (b11->description)
printf("description: '%s'\n", b11->description);
@ -153,10 +153,10 @@ int main(int argc, char *argv[])
printf("route: (node/chanid/fee/expirydelta) ");
for (size_t n = 0; n < tal_count(b11->routes[i]); n++) {
printf(" %s/%s/%u/%u/%u",
type_to_string(ctx, struct node_id,
&b11->routes[i][n].pubkey),
type_to_string(ctx, struct short_channel_id,
&b11->routes[i][n].short_channel_id),
fmt_node_id(ctx,
&b11->routes[i][n].pubkey),
fmt_short_channel_id(ctx,
b11->routes[i][n].short_channel_id),
b11->routes[i][n].fee_base_msat,
b11->routes[i][n].fee_proportional_millionths,
b11->routes[i][n].cltv_expiry_delta);
@ -180,7 +180,7 @@ int main(int argc, char *argv[])
}
printf("signature: %s\n",
type_to_string(ctx, secp256k1_ecdsa_signature, &b11->sig));
fmt_secp256k1_ecdsa_signature(ctx, &b11->sig));
tal_free(ctx);
common_shutdown();
return NO_ERROR;

View file

@ -70,7 +70,7 @@ static void print_offer_chains(const struct bitcoin_blkid *chains)
{
printf("offer_chains:");
for (size_t i = 0; i < tal_count(chains); i++) {
printf(" %s", type_to_string(tmpctx, struct bitcoin_blkid, &chains[i]));
printf(" %s", fmt_bitcoin_blkid(tmpctx, &chains[i]));
}
printf("\n");
}
@ -84,7 +84,7 @@ static void print_hex(const char *fieldname, const u8 *bin)
static void print_invreq_chain(const struct bitcoin_blkid *chain)
{
printf("invreq_chain: %s\n",
type_to_string(tmpctx, struct bitcoin_blkid, chain));
fmt_bitcoin_blkid(tmpctx, chain));
}
static bool print_offer_amount(const struct bitcoin_blkid *chains,
@ -117,9 +117,8 @@ static bool print_offer_amount(const struct bitcoin_blkid *chains,
ch = chainparams_by_chainhash(&chains[0]);
if (!ch) {
currency = tal_fmt(tmpctx, "UNKNOWN CHAINHASH %s",
type_to_string(tmpctx,
struct bitcoin_blkid,
&chains[0]));
fmt_bitcoin_blkid(tmpctx,
&chains[0]));
ok = false;
} else
currency = ch->lightning_hrp;
@ -165,7 +164,7 @@ static bool print_utf8(const char *fieldname, const char *description)
static void print_node_id(const char *fieldname, const struct pubkey *node_id)
{
printf("%s: %s\n",
fieldname, type_to_string(tmpctx, struct pubkey, node_id));
fieldname, fmt_pubkey(tmpctx, node_id));
}
static void print_u64(const char *fieldname, u64 max)
@ -271,14 +270,14 @@ static bool print_blindedpaths(const char *fieldname,
printf("%s %zu/%zu: blinding %s",
fieldname,
i, tal_count(paths),
type_to_string(tmpctx, struct pubkey,
fmt_pubkey(tmpctx,
&paths[i]->blinding));
printf("%s %zu/%zu: path ",
fieldname,
i, tal_count(paths));
for (size_t j = 0; j < tal_count(p); j++) {
printf(" %s:%s",
type_to_string(tmpctx, struct pubkey,
fmt_pubkey(tmpctx,
&p[j]->blinded_node_id),
tal_hex(tmpctx, p[j]->encrypted_recipient_data));
if (blindedpay) {
@ -322,7 +321,7 @@ static bool print_signature(const char *messagename,
}
printf("%s: %s\n",
fieldname,
type_to_string(tmpctx, struct bip340sig, sig));
fmt_bip340sig(tmpctx, sig));
return true;
}
@ -353,7 +352,7 @@ static bool print_recurrence_counter_with_base(const u32 *recurrence_counter,
static void print_hash(const char *fieldname, const struct sha256 *hash)
{
printf("%s: %s\n",
fieldname, type_to_string(tmpctx, struct sha256, hash));
fieldname, fmt_sha256(tmpctx, hash));
}
static void print_relative_expiry(u64 *created_at, u32 *relative)

View file

@ -96,7 +96,7 @@ int main(int argc, char *argv[])
if (fromwire_gossip_store_channel_amount(msg, &sat)) {
printf("channel_amount: %s\n",
type_to_string(tmpctx, struct amount_sat, &sat));
fmt_amount_sat(tmpctx, sat));
} else if (fromwire_peektype(msg) == WIRE_CHANNEL_ANNOUNCEMENT) {
printf("t=%u channel_announcement: %s\n",
be32_to_cpu(hdr.timestamp),
@ -112,7 +112,7 @@ int main(int argc, char *argv[])
} else if (fromwire_gossip_store_private_channel_obs(msg, msg, &sat,
&inner)) {
printf("private channel_announcement: %s %s\n",
type_to_string(tmpctx, struct amount_sat, &sat),
fmt_amount_sat(tmpctx, sat),
tal_hex(msg, inner));
} else if (fromwire_gossip_store_private_update_obs(msg, msg,
&inner)) {
@ -120,12 +120,10 @@ int main(int argc, char *argv[])
tal_hex(msg, inner));
} else if (fromwire_gossip_store_delete_chan(msg, &scid)) {
printf("delete channel: %s\n",
type_to_string(tmpctx, struct short_channel_id,
&scid));
fmt_short_channel_id(tmpctx, scid));
} else if (fromwire_gossip_store_chan_dying(msg, &scid, &blockheight)) {
printf("dying channel: %s (deadline %u)\n",
type_to_string(tmpctx, struct short_channel_id,
&scid),
fmt_short_channel_id(tmpctx, scid),
blockheight);
} else {
warnx("Unknown message %u",

View file

@ -124,7 +124,7 @@ int main(int argc, char *argv[])
if (!amount_msat_sub_sat(&local_msat, local_msat, fee))
errx(1, "Can't afford fee %s",
type_to_string(NULL, struct amount_sat, &fee));
fmt_amount_sat(NULL, fee));
if (!amount_sat_sub_msat(&remote_msat, funding_amount, local_msat))
errx(1, "Can't afford local_msat");

View file

@ -100,29 +100,29 @@ static void print_basepoints(const char *desc,
printf("## %s\n", desc);
printf("# funding_privkey=%s\n",
type_to_string(NULL, struct secret, &secrets->funding_privkey.secret));
fmt_secret(NULL, &secrets->funding_privkey.secret));
printf("funding_pubkey=%s\n",
type_to_string(NULL, struct pubkey, fundingkey));
fmt_pubkey(NULL, fundingkey));
printf("# revocation_basepoint_secret=%s\n",
type_to_string(NULL, struct secret,
fmt_secret(NULL,
&secrets->revocation_basepoint_secret));
printf("revocation_basepoint=%s\n",
type_to_string(NULL, struct pubkey, &basepoints->revocation));
fmt_pubkey(NULL, &basepoints->revocation));
printf("# payment_basepoint_secret=%s\n",
type_to_string(NULL, struct secret,
fmt_secret(NULL,
&secrets->payment_basepoint_secret));
printf("payment_basepoint=%s\n",
type_to_string(NULL, struct pubkey, &basepoints->payment));
fmt_pubkey(NULL, &basepoints->payment));
printf("# delayed_payment_basepoint_secret=%s\n",
type_to_string(NULL, struct secret,
fmt_secret(NULL,
&secrets->delayed_payment_basepoint_secret));
printf("delayed_payment_basepoint=%s\n",
type_to_string(NULL, struct pubkey, &basepoints->delayed_payment));
fmt_pubkey(NULL, &basepoints->delayed_payment));
printf("# htlc_basepoint_secret=%s\n",
type_to_string(NULL, struct secret,
fmt_secret(NULL,
&secrets->htlc_basepoint_secret));
printf("htlc_basepoint=%s\n",
type_to_string(NULL, struct pubkey, &basepoints->htlc));
fmt_pubkey(NULL, &basepoints->htlc));
if (!per_commit_secret(shaseed, &per_commitment_secret, commitnum))
errx(1, "Bad deriving %s per_commitment_secret #%"PRIu64,
desc, commitnum);
@ -130,13 +130,13 @@ static void print_basepoints(const char *desc,
errx(1, "Bad deriving %s per_commitment_point #%"PRIu64,
desc, commitnum);
printf("# shachain seed=%s\n",
type_to_string(NULL, struct sha256, shaseed));
fmt_sha256(NULL, shaseed));
printf("# per_commitment_secret %"PRIu64"=%s\n",
commitnum,
type_to_string(NULL, struct secret, &per_commitment_secret));
fmt_secret(NULL, &per_commitment_secret));
printf("per_commitment_point %"PRIu64"=%s\n\n",
commitnum,
type_to_string(NULL, struct pubkey, &per_commitment_point));
fmt_pubkey(NULL, &per_commitment_point));
}
static int parse_config(char *argv[],
@ -196,9 +196,9 @@ static int parse_htlc(char *argv[], struct existing_htlc ***htlcs)
printf("# HTLC %"PRIu64": %s amount=%s preimage=%s payment_hash=%s cltv=%u\n",
exist->id, argv[0],
type_to_string(tmpctx, struct amount_msat, &exist->amount),
type_to_string(tmpctx, struct preimage, exist->payment_preimage),
type_to_string(tmpctx, struct sha256, &exist->payment_hash),
fmt_amount_msat(tmpctx, exist->amount),
fmt_preimage(tmpctx, exist->payment_preimage),
fmt_sha256(tmpctx, &exist->payment_hash),
exist->cltv_expiry);
tal_arr_expand(htlcs, exist);
@ -230,7 +230,7 @@ static char *sig_notation(const struct sha256_double *hash,
const struct bitcoin_signature *sig)
{
const char *pstr = tal_hexstr(NULL, privkey->secret.data, sizeof(privkey->secret.data));
const char *hstr = type_to_string(NULL, struct sha256_double, hash);
const char *hstr = fmt_sha256_double(NULL, hash);
if (verbose)
return tal_fmt(NULL,
@ -430,9 +430,9 @@ int main(int argc, char *argv[])
printf("## local_commitment\n"
"# input amount %s, funding_wscript %s, pubkey %s\n",
type_to_string(NULL, struct amount_sat, &funding_amount),
fmt_amount_sat(NULL, funding_amount),
tal_hex(NULL, funding_wscript),
type_to_string(NULL, struct pubkey, &funding_localkey));
fmt_pubkey(NULL, &funding_localkey));
printf("# unsigned local commitment tx: %s\n",
tal_hex(NULL, linearize_tx(NULL, local_txs[0])));
@ -541,9 +541,9 @@ int main(int argc, char *argv[])
printf("## remote_commitment\n"
"# input amount %s, funding_wscript %s, key %s\n",
type_to_string(NULL, struct amount_sat, &funding_amount),
fmt_amount_sat(NULL, funding_amount),
tal_hex(NULL, funding_wscript),
type_to_string(NULL, struct pubkey, &funding_remotekey));
fmt_pubkey(NULL, &funding_remotekey));
printf("# unsigned remote commitment tx: %s\n",
tal_hex(NULL, linearize_tx(NULL, remote_txs[0])));

View file

@ -141,8 +141,8 @@ int main(int argc, char *argv[])
fee = amount_tx_fee(feerate_per_kw, weight);
if (!amount_sat_sub(&funding_amount, input.amount, fee))
errx(1, "Input %s can't afford fee %s",
type_to_string(NULL, struct amount_sat, &input.amount),
type_to_string(NULL, struct amount_sat, &fee));
fmt_amount_sat(NULL, input.amount),
fmt_amount_sat(NULL, fee));
/* Find the P2WPKH script from input pubkey */
input.scriptPubkey = scriptpubkey_p2wpkh(NULL, &inputkey);
@ -165,11 +165,11 @@ int main(int argc, char *argv[])
printf("\t%s\n", tal_hex(NULL, witnesses[i]));
printf("# ]\n");
printf("# funding amount: %s\n",
type_to_string(NULL, struct amount_sat, &funding_amount));
fmt_amount_sat(NULL, funding_amount));
bitcoin_txid(tx, &txid);
printf("# funding txid: %s\n",
type_to_string(NULL, struct bitcoin_txid, &txid));
fmt_bitcoin_txid(NULL, &txid));
printf("tx: %s\n", tal_hex(NULL, linearize_tx(NULL, tx)));
common_shutdown();

View file

@ -78,8 +78,7 @@ static char *sig_notation(const struct privkey *privkey,
{
const char *pstr = tal_hexstr(NULL, privkey->secret.data,
sizeof(privkey->secret.data));
const char *hstr =
type_to_string(NULL, struct sha256_double, hash);
const char *hstr = fmt_sha256_double(NULL, hash);
if (verbose)
return tal_fmt(NULL,

View file

@ -326,7 +326,7 @@ fail:
return false;
}
#define PRINTWIRE_TYPE_TO_STRING(T, N) \
#define PRINTWIRE_TYPE_TO_STRING(T, N, ADDR) \
bool printwire_##N(const char *fieldname, const u8 **cursor, \
size_t *plen) \
{ \
@ -336,7 +336,7 @@ fail:
printf("**TRUNCATED " stringify(N) "\n"); \
return false; \
} \
const char *s = type_to_string(NULL, T, &v); \
const char *s = fmt_##N(NULL, ADDR v); \
printf("%s\n", s); \
tal_free(s); \
return true; \
@ -351,14 +351,16 @@ fail:
printf("**TRUNCATED " stringify(N) "\n"); \
return false; \
} \
const char *s = type_to_string(NULL, struct N, &v); \
const char *s = fmt_##N(NULL, v); \
printf("%s\n", s); \
tal_free(s); \
return true; \
}
#define PRINTWIRE_STRUCT_TYPE_TO_STRING(T) \
PRINTWIRE_TYPE_TO_STRING(struct T, T)
PRINTWIRE_TYPE_TO_STRING(struct T, T, &)
#define PRINTWIRE_STRUCT_TYPE_TO_STRING_NOADDR_FMT(T) \
PRINTWIRE_TYPE_TO_STRING(struct T, T, )
PRINTWIRE_STRUCT_TYPE_TO_STRING(bip340sig)
PRINTWIRE_STRUCT_TYPE_TO_STRING(bitcoin_blkid)
@ -369,7 +371,7 @@ PRINTWIRE_STRUCT_TYPE_TO_STRING(preimage)
PRINTWIRE_STRUCT_TYPE_TO_STRING(pubkey)
PRINTWIRE_STRUCT_TYPE_TO_STRING(sha256)
PRINTWIRE_STRUCT_TYPE_TO_STRING(secret)
PRINTWIRE_STRUCT_TYPE_TO_STRING(short_channel_id)
PRINTWIRE_STRUCT_TYPE_TO_STRING_NOADDR_FMT(short_channel_id)
PRINTWIRE_ASSIGNABLE_STRUCT_TO_STRING(amount_sat)
PRINTWIRE_ASSIGNABLE_STRUCT_TO_STRING(amount_msat)
PRINTWIRE_TYPE_TO_STRING(secp256k1_ecdsa_signature, secp256k1_ecdsa_signature)
PRINTWIRE_TYPE_TO_STRING(secp256k1_ecdsa_signature, secp256k1_ecdsa_signature, &)

View file

@ -57,7 +57,7 @@ static struct route_hop *least_cost(struct gossmap *map,
if (!amount_msat_sub(&fee, path[0].amount, sent))
abort();
printf("# path fee %s\n",
type_to_string(tmpctx, struct amount_msat, &fee));
fmt_amount_msat(tmpctx, fee));
tal_free(dij);
return path;
}
@ -110,8 +110,8 @@ int main(int argc, char *argv[])
gossmap_node_get_id(map, n, &srcid);
printf("# %s->%s\n",
type_to_string(tmpctx, struct node_id, &srcid),
type_to_string(tmpctx, struct node_id, &dstid));
fmt_node_id(tmpctx, &srcid),
fmt_node_id(tmpctx, &dstid));
tal_free(least_cost(map, n, dst));
}
} else {
@ -128,11 +128,9 @@ int main(int argc, char *argv[])
exit(1);
for (size_t i = 0; i < tal_count(path); i++) {
printf("%s->%s via %s\n",
type_to_string(tmpctx, struct node_id, &srcid),
type_to_string(tmpctx, struct node_id,
&path[i].node_id),
type_to_string(tmpctx, struct short_channel_id,
&path[i].scid));
fmt_node_id(tmpctx, &srcid),
fmt_node_id(tmpctx, &path[i].node_id),
fmt_short_channel_id(tmpctx, path[i].scid));
srcid = path[i].node_id;
}
}

View file

@ -145,15 +145,6 @@ static size_t count_possible_destinations(const struct gossmap *map,
n = gossmap_next_node(map, n)) {
if (dijkstra_distance(dij, gossmap_node_idx(map, n)) <= distance_budget)
num++;
#if 0
else
printf("Can't reach %s (%u) if we exclude %s\n",
type_to_string(tmpctx, struct node_id,
gossmap_node_get_id(map, n)),
dijkstra_distance(dij, gossmap_node_idx(map, n)),
type_to_string(tmpctx, struct node_id,
gossmap_node_get_id(map, exclude)));
#endif
}
/* Now double-check with flood-fill. */
@ -182,7 +173,7 @@ static bool measure_least_cost(struct gossmap *map,
gossmap_node_get_id(map, src, &srcid);
printf("# src %s (%u channels)\n",
type_to_string(tmpctx, struct node_id, &srcid),
fmt_node_id(tmpctx, &srcid),
src->num_chans);
tstart = time_mono();
@ -212,7 +203,7 @@ static bool measure_least_cost(struct gossmap *map,
if (!amount_msat_sub(&fee, path[0].amount, sent))
abort();
printf("# path fee %s\n",
type_to_string(tmpctx, struct amount_msat, &fee));
fmt_amount_msat(tmpctx, fee));
/* Count possible sources */
for (size_t i = 0; i < tal_count(path); i++) {

View file

@ -119,7 +119,7 @@ static void connectd_new_peer(struct daemon *daemon, const u8 *msg)
if (find_peer(daemon, &peer->id)) {
status_broken("Peer %s already here?",
type_to_string(tmpctx, struct node_id, &peer->id));
fmt_node_id(tmpctx, &peer->id));
tal_free(find_peer(daemon, &peer->id));
}
@ -159,7 +159,7 @@ static void connectd_peer_gone(struct daemon *daemon, const u8 *msg)
peer = find_peer(daemon, &id);
if (!peer)
status_broken("Peer %s already gone?",
type_to_string(tmpctx, struct node_id, &id));
fmt_node_id(tmpctx, &id));
tal_free(peer);
}
@ -201,7 +201,7 @@ static void handle_recv_gossip(struct daemon *daemon, const u8 *outermsg)
if (!peer) {
status_broken("connectd sent gossip msg %s from unknown peer %s",
peer_wire_name(fromwire_peektype(msg)),
type_to_string(tmpctx, struct node_id, &source));
fmt_node_id(tmpctx, &source));
return;
}
@ -284,7 +284,7 @@ static void handle_recv_gossip(struct daemon *daemon, const u8 *outermsg)
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"connectd sent unexpected gossip msg %s for peer %s",
peer_wire_name(fromwire_peektype(msg)),
type_to_string(tmpctx, struct node_id, &peer->id));
fmt_node_id(tmpctx, &peer->id));
handled_msg_errmsg:
if (errmsg)

View file

@ -379,14 +379,12 @@ static void prune_network(struct gossmap_manage *gm)
|| gossmap_nth_node(gossmap, chan, 1) == me) {
int local = (gossmap_nth_node(gossmap, chan, 1) == me);
status_unusual("Pruning local channel %s from gossip_store: local channel_update time %u, remote %u",
type_to_string(tmpctx, struct short_channel_id,
&scid),
fmt_short_channel_id(tmpctx, scid),
timestamp[local], timestamp[!local]);
}
status_debug("Pruning channel %s from network view (ages %u and %u)",
type_to_string(tmpctx, struct short_channel_id,
&scid),
fmt_short_channel_id(tmpctx, scid),
timestamp[0], timestamp[1]);
remove_channel(gm, gossmap, chan, scid);
@ -418,7 +416,7 @@ static void report_bad_update(struct gossmap *map,
struct gossmap_manage *gm)
{
status_debug("Update for %s has silly values, disabling (cltv=%u, fee=%u+%u)",
type_to_string(tmpctx, struct short_channel_id_dir, scidd),
fmt_short_channel_id_dir(tmpctx, scidd),
cltv_expiry_delta, fee_base_msat, fee_proportional_millionths);
}
@ -780,8 +778,7 @@ static const char *process_channel_update(const tal_t *ctx,
status_peer_debug(source_peer,
"Received channel_update for channel %s/%d now %s",
type_to_string(tmpctx, struct short_channel_id,
&scid),
fmt_short_channel_id(tmpctx, scid),
dir,
channel_flags & ROUTING_FLAGS_DISABLED ? "DISABLED" : "ACTIVE");
return NULL;
@ -918,7 +915,7 @@ static void process_node_announcement(struct gossmap_manage *gm,
status_peer_debug(source_peer,
"Received node_announcement for node %s",
type_to_string(tmpctx, struct node_id, node_id));
fmt_node_id(tmpctx, node_id));
}
const char *gossmap_manage_node_announcement(const tal_t *ctx,
@ -1136,13 +1133,13 @@ static void kill_spent_channel(struct gossmap_manage *gm,
chan = gossmap_find_chan(gossmap, &scid);
if (!chan) {
status_broken("Dying channel %s already deleted?",
type_to_string(tmpctx, struct short_channel_id, &scid));
fmt_short_channel_id(tmpctx, scid));
return;
}
status_debug("Deleting channel %s due to the funding outpoint being "
"spent",
type_to_string(tmpctx, struct short_channel_id, &scid));
fmt_short_channel_id(tmpctx, scid));
remove_channel(gm, gossmap, chan, scid);
}
@ -1227,7 +1224,7 @@ void gossmap_manage_channel_spent(struct gossmap_manage *gm,
/* Remember locally so we can kill it in 12 blocks */
status_debug("channel %s closing soon due"
" to the funding outpoint being spent",
type_to_string(tmpctx, struct short_channel_id, &scid));
fmt_short_channel_id(tmpctx, scid));
/* Save to gossip_store in case we restart */
msg = towire_gossip_store_chan_dying(tmpctx, &cd.scid, cd.deadline);

View file

@ -205,7 +205,7 @@ const u8 *handle_query_short_channel_ids(struct peer *peer, const u8 *msg)
if (!bitcoin_blkid_eq(&chainparams->genesis_blockhash, &chain)) {
status_peer_debug(&peer->id,
"sent query_short_channel_ids chainhash %s",
type_to_string(tmpctx, struct bitcoin_blkid, &chain));
fmt_bitcoin_blkid(tmpctx, &chain));
return towire_reply_short_channel_ids_end(peer, &chain, 0);
}
@ -633,8 +633,7 @@ const u8 *handle_query_channel_range(struct peer *peer, const u8 *msg)
if (!bitcoin_blkid_eq(&chainparams->genesis_blockhash, &chain_hash)) {
status_peer_debug(&peer->id,
"query_channel_range with chainhash %s",
type_to_string(tmpctx, struct bitcoin_blkid,
&chain_hash));
fmt_bitcoin_blkid(tmpctx, &chain_hash));
u8 *end = towire_reply_channel_range(NULL, &chain_hash, first_blocknum,
number_of_blocks, false, NULL, NULL);
queue_peer_msg(peer->daemon, &peer->id, take(end));

View file

@ -37,12 +37,8 @@ const char *sigcheck_channel_update(const tal_t *ctx,
return tal_fmt(ctx,
"Bad signature for %s hash %s"
" on channel_update %s",
type_to_string(tmpctx,
secp256k1_ecdsa_signature,
node_sig),
type_to_string(tmpctx,
struct sha256_double,
&hash),
fmt_secp256k1_ecdsa_signature(tmpctx, node_sig),
fmt_sha256_double(tmpctx, &hash),
tal_hex(tmpctx, update));
return NULL;
}
@ -84,48 +80,36 @@ const char *sigcheck_channel_announcement(const tal_t *ctx,
return tal_fmt(ctx,
"Bad node_signature_1 %s hash %s"
" on channel_announcement %s",
type_to_string(tmpctx,
secp256k1_ecdsa_signature,
node1_sig),
type_to_string(tmpctx,
struct sha256_double,
&hash),
fmt_secp256k1_ecdsa_signature(tmpctx,
node1_sig),
fmt_sha256_double(tmpctx, &hash),
tal_hex(tmpctx, announcement));
}
if (!check_signed_hash_nodeid(&hash, node2_sig, node2_id)) {
return tal_fmt(ctx,
"Bad node_signature_2 %s hash %s"
" on channel_announcement %s",
type_to_string(tmpctx,
secp256k1_ecdsa_signature,
node2_sig),
type_to_string(tmpctx,
struct sha256_double,
&hash),
fmt_secp256k1_ecdsa_signature(tmpctx,
node2_sig),
fmt_sha256_double(tmpctx, &hash),
tal_hex(tmpctx, announcement));
}
if (!check_signed_hash(&hash, bitcoin1_sig, bitcoin1_key)) {
return tal_fmt(ctx,
"Bad bitcoin_signature_1 %s hash %s"
" on channel_announcement %s",
type_to_string(tmpctx,
secp256k1_ecdsa_signature,
bitcoin1_sig),
type_to_string(tmpctx,
struct sha256_double,
&hash),
fmt_secp256k1_ecdsa_signature(tmpctx,
bitcoin1_sig),
fmt_sha256_double(tmpctx, &hash),
tal_hex(tmpctx, announcement));
}
if (!check_signed_hash(&hash, bitcoin2_sig, bitcoin2_key)) {
return tal_fmt(ctx,
"Bad bitcoin_signature_2 %s hash %s"
" on channel_announcement %s",
type_to_string(tmpctx,
secp256k1_ecdsa_signature,
bitcoin2_sig),
type_to_string(tmpctx,
struct sha256_double,
&hash),
fmt_secp256k1_ecdsa_signature(tmpctx,
bitcoin2_sig),
fmt_sha256_double(tmpctx, &hash),
tal_hex(tmpctx, announcement));
}
return NULL;
@ -171,12 +155,9 @@ const char *sigcheck_node_announcement(const tal_t *ctx,
return tal_fmt(ctx,
"Bad signature for %s hash %s"
" on node_announcement %s",
type_to_string(tmpctx,
secp256k1_ecdsa_signature,
signature),
type_to_string(tmpctx,
struct sha256_double,
&hash),
fmt_secp256k1_ecdsa_signature(tmpctx,
signature),
fmt_sha256_double(tmpctx, &hash),
tal_hex(tmpctx, node_announcement));
}

View file

@ -129,7 +129,7 @@ static struct io_plan *bad_req_fmt(struct io_conn *conn,
}
/*~ Nobody should give us bad requests; it's a sign something is broken */
status_broken("%s: %s", type_to_string(tmpctx, struct node_id, &c->id), str);
status_broken("%s: %s", fmt_node_id(tmpctx, &c->id), str);
/*~ Note the use of NULL as the ctx arg to towire_hsmstatus_: only
* use NULL as the allocation when we're about to immediately free it
@ -192,8 +192,7 @@ static struct client *new_client(const tal_t *ctx,
if (!node_id_valid(id))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Invalid node id %s",
type_to_string(tmpctx, struct node_id,
id));
fmt_node_id(tmpctx, id));
} else {
memset(&c->id, 0, sizeof(c->id));
}

View file

@ -515,7 +515,7 @@ static void hsm_key_for_utxo(struct privkey *privkey, struct pubkey *pubkey,
hsm_unilateral_close_privkey(privkey, utxo->close_info);
pubkey_from_privkey(privkey, pubkey);
hsmd_status_debug("Derived public key %s from unilateral close",
type_to_string(tmpctx, struct pubkey, pubkey));
fmt_pubkey(tmpctx, pubkey));
} else {
/* Simple case: just get derive via HD-derivation */
bitcoin_key(privkey, pubkey, utxo->keyindex);
@ -572,10 +572,8 @@ static void sign_our_inputs(struct utxo **utxos, struct wally_psbt *psbt)
hsmd_status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Received wally_err attempting to "
"sign input %zu with key %s. PSBT: %s",
j, type_to_string(tmpctx, struct pubkey,
&pubkey),
type_to_string(tmpctx, struct wally_psbt,
psbt));
j, fmt_pubkey(tmpctx, &pubkey),
fmt_wally_psbt(tmpctx, psbt));
}
tal_wally_end(psbt);
}
@ -630,10 +628,8 @@ static u8 *handle_check_pubkey(struct hsmd_client *c, const u8 *msg_in)
"BIP32 derivation index %u differed:"
" they got %s, we got %s",
index,
type_to_string(tmpctx, struct pubkey,
&their_pubkey),
type_to_string(tmpctx, struct pubkey,
&our_pubkey));
fmt_pubkey(tmpctx, &their_pubkey),
fmt_pubkey(tmpctx, &our_pubkey));
}
return towire_hsmd_check_pubkey_reply(NULL, true);
@ -1624,10 +1620,8 @@ static u8 *handle_sign_anchorspend(struct hsmd_client *c, const u8 *msg_in)
hsmd_status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Received wally_err attempting to "
"sign anchor key %s. PSBT: %s",
type_to_string(tmpctx, struct pubkey,
&local_funding_pubkey),
type_to_string(tmpctx, struct wally_psbt,
psbt));
fmt_pubkey(tmpctx, &local_funding_pubkey),
fmt_wally_psbt(tmpctx, psbt));
}
return towire_hsmd_sign_anchorspend_reply(NULL, psbt);

View file

@ -387,7 +387,7 @@ static struct bitcoin_tx *spend_anchor(const tal_t *ctx,
if (!psbt_finalize(psbt))
fatal("Non-final PSBT from hsm: %s",
type_to_string(tmpctx, struct wally_psbt, psbt));
fmt_wally_psbt(tmpctx, psbt));
/* Update fee so we know for next time */
anch->anchor_spend_fee = fee;
@ -415,12 +415,12 @@ static bool refresh_anchor_spend(struct channel *channel,
bitcoin_txid(replace, &txid);
log_info(channel->log, "RBF anchor %s commit tx spend %s: fee was %s now %s",
anch->commit_side == LOCAL ? "local" : "remote",
type_to_string(tmpctx, struct bitcoin_txid, &txid),
fmt_bitcoin_txid(tmpctx, &txid),
fmt_amount_sat(tmpctx, old_fee),
fmt_amount_sat(tmpctx, anch->anchor_spend_fee));
log_debug(channel->log, "RBF anchor spend: Old tx %s new %s",
type_to_string(tmpctx, struct bitcoin_tx, *tx),
type_to_string(tmpctx, struct bitcoin_tx, replace));
fmt_bitcoin_tx(tmpctx, *tx),
fmt_bitcoin_tx(tmpctx, replace));
tal_free(*tx);
*tx = replace;
}
@ -443,7 +443,7 @@ static void create_and_broadcast_anchor(struct channel *channel,
bitcoin_txid(newtx, &txid);
log_info(channel->log, "Creating anchor spend for %s commit tx %s: we're paying fee %s",
anch->commit_side == LOCAL ? "local" : "remote",
type_to_string(tmpctx, struct bitcoin_txid, &txid),
fmt_bitcoin_txid(tmpctx, &txid),
fmt_amount_sat(tmpctx, anch->anchor_spend_fee));
/* Send it! */

View file

@ -246,7 +246,7 @@ static void broadcast_done(struct bitcoind *bitcoind,
bitcoind->ld->topology->log,
"Not adding %s to list of outgoing transactions, already "
"present",
type_to_string(tmpctx, struct bitcoin_txid, &otx->txid));
fmt_bitcoin_txid(tmpctx, &otx->txid));
tal_free(otx);
return;
}
@ -288,7 +288,7 @@ void broadcast_tx_(const tal_t *ctx,
* we have block N-1! */
if (get_block_height(topo) + 1 < otx->minblock) {
log_debug(topo->log, "Deferring broadcast of txid %s until block %u",
type_to_string(tmpctx, struct bitcoin_txid, &otx->txid),
fmt_bitcoin_txid(tmpctx, &otx->txid),
otx->minblock - 1);
/* For continual rebroadcasting, until channel freed. */
@ -299,7 +299,7 @@ void broadcast_tx_(const tal_t *ctx,
}
log_debug(topo->log, "Broadcasting txid %s%s%s",
type_to_string(tmpctx, struct bitcoin_txid, &otx->txid),
fmt_bitcoin_txid(tmpctx, &otx->txid),
cmd_id ? " for " : "", cmd_id ? cmd_id : "");
wallet_transaction_add(topo->ld->wallet, tx->wtx, 0, 0);
@ -322,12 +322,8 @@ static enum watch_result closeinfo_txid_confirmed(struct lightningd *ld,
bitcoin_txid(tx, &txid2);
if (!bitcoin_txid_eq(txid, &txid2)) {
fatal("Txid for %s is not %s",
type_to_string(tmpctx,
struct bitcoin_tx,
tx),
type_to_string(tmpctx,
struct bitcoin_txid,
txid));
fmt_bitcoin_tx(tmpctx, tx),
fmt_bitcoin_txid(tmpctx, txid));
}
}
@ -910,7 +906,7 @@ static void record_wallet_spend(struct lightningd *ld,
utxo = wallet_utxo_get(tmpctx, ld->wallet, outpoint);
if (!utxo) {
log_broken(ld->log, "No record of utxo %s",
type_to_string(tmpctx, struct bitcoin_outpoint,
fmt_bitcoin_outpoint(tmpctx,
outpoint));
return;
}
@ -1015,7 +1011,7 @@ static struct block *new_block(struct chain_topology *topo,
bitcoin_block_blkid(blk, &b->blkid);
log_debug(topo->log, "Adding block %u: %s",
height,
type_to_string(tmpctx, struct bitcoin_blkid, &b->blkid));
fmt_bitcoin_blkid(tmpctx, &b->blkid));
assert(!block_map_get(topo->block_map, &b->blkid));
b->next = NULL;
b->prev = NULL;
@ -1039,7 +1035,7 @@ static void remove_tip(struct chain_topology *topo)
log_debug(topo->log, "Removing stale block %u: %s",
topo->tip->height,
type_to_string(tmpctx, struct bitcoin_blkid, &b->blkid));
fmt_bitcoin_blkid(tmpctx, &b->blkid));
/* Move tip back one. */
topo->tip = b->prev;
@ -1047,7 +1043,7 @@ static void remove_tip(struct chain_topology *topo)
if (!topo->tip)
fatal("Initial block %u (%s) reorganized out!",
b->height,
type_to_string(tmpctx, struct bitcoin_blkid, &b->blkid));
fmt_bitcoin_blkid(tmpctx, &b->blkid));
txs = wallet_transactions_by_height(b, topo->ld->wallet, b->height);
n = tal_count(txs);

View file

@ -361,18 +361,16 @@ struct amount_msat htlc_max_possible_send(const struct channel *channel)
channel->channel_info.their_config.channel_reserve)) {
log_broken(channel->log, "%s: their reserve %s > funding %s!",
__func__,
type_to_string(tmpctx, struct amount_sat,
&channel->funding_sats),
type_to_string(tmpctx, struct amount_sat,
&channel->channel_info.their_config.channel_reserve));
fmt_amount_sat(tmpctx, channel->funding_sats),
fmt_amount_sat(tmpctx,
channel->channel_info.their_config.channel_reserve));
return AMOUNT_MSAT(0);
}
if (!amount_sat_to_msat(&lower_bound_msat, lower_bound)) {
log_broken(channel->log, "%s: impossible size channel %s!",
__func__,
type_to_string(tmpctx, struct amount_sat,
&lower_bound));
fmt_amount_sat(tmpctx, lower_bound));
return AMOUNT_MSAT(0);
}

View file

@ -113,7 +113,7 @@ static void try_update_blockheight(struct lightningd *ld,
return;
log_debug(channel->log, "attempting update blockheight %s",
type_to_string(tmpctx, struct channel_id, &channel->cid));
fmt_channel_id(tmpctx, &channel->cid));
if (!topology_synced(ld->topology)) {
log_debug(channel->log, "chain not synced,"
@ -315,12 +315,10 @@ static void handle_splice_abort(struct lightningd *ld,
channel_internal_error(channel,
"abort outpoint %s does not"
" match ours %s",
type_to_string(tmpctx,
struct bitcoin_outpoint,
outpoint),
type_to_string(tmpctx,
struct bitcoin_outpoint,
&inflight->funding->outpoint));
fmt_bitcoin_outpoint(tmpctx,
outpoint),
fmt_bitcoin_outpoint(tmpctx,
&inflight->funding->outpoint));
wallet_inflight_del(ld->wallet, channel, inflight);
tal_free(inflight);
@ -462,9 +460,7 @@ static void handle_splice_lookup_tx(struct lightningd *ld,
if (!tx) {
channel_internal_error(channel,
"channel control unable to find txid %s",
type_to_string(tmpctx,
struct bitcoin_txid,
&txid));
fmt_bitcoin_txid(tmpctx, &txid));
return;
}
@ -527,17 +523,16 @@ static void check_utxo_block(struct bitcoind *bitcoind UNUSED,
"tx: %s. Unsent tx discarded "
"%s.",
info->err_msg,
type_to_string(tmpctx,
struct wally_tx,
info->final_tx->wtx)));
fmt_wally_tx(tmpctx,
info->final_tx->wtx)));
log_unusual(info->channel->log,
"Error broadcasting splice "
"tx: %s. Unsent tx discarded "
"%s.",
info->err_msg,
type_to_string(tmpctx, struct wally_tx,
info->final_tx->wtx));
fmt_wally_tx(tmpctx,
info->final_tx->wtx));
}
else
handle_tx_broadcast(info);
@ -580,7 +575,7 @@ static void send_splice_tx(struct channel *channel,
log_debug(channel->log,
"Broadcasting splice tx %s for channel %s.",
tal_hex(tmpctx, tx_bytes),
type_to_string(tmpctx, struct channel_id, &channel->cid));
fmt_channel_id(tmpctx, &channel->cid));
struct send_splice_info *info = tal(NULL, struct send_splice_info);
@ -623,9 +618,7 @@ static void handle_splice_confirmed_signed(struct lightningd *ld,
if (!inflight)
channel_internal_error(channel, "Unable to load inflight for"
" splice_confirmed_signed txid %s",
type_to_string(tmpctx,
struct bitcoin_txid,
&txid));
fmt_bitcoin_txid(tmpctx, &txid));
inflight->remote_tx_sigs = true;
wallet_inflight_save(ld->wallet, inflight);
@ -673,7 +666,7 @@ static enum watch_result splice_depth_cb(struct lightningd *ld,
if (inflight->channel->state != CHANNELD_AWAITING_SPLICE) {
log_info(inflight->channel->log, "Splice inflight event but not"
" in AWAITING_SPLICE, ending watch of txid %s",
type_to_string(tmpctx, struct bitcoin_txid, txid));
fmt_bitcoin_txid(tmpctx, txid));
return DELETE_WATCH;
}
@ -684,7 +677,7 @@ static enum watch_result splice_depth_cb(struct lightningd *ld,
if (inflight->channel->owner) {
log_info(inflight->channel->log, "splice_depth_cb: sending funding depth scid: %s",
type_to_string(tmpctx, struct short_channel_id, &scid));
fmt_short_channel_id(tmpctx, scid));
subd_send_msg(inflight->channel->owner,
take(towire_channeld_funding_depth(
NULL, &scid,
@ -700,8 +693,8 @@ void watch_splice_inflight(struct lightningd *ld,
struct channel_inflight *inflight)
{
log_info(inflight->channel->log, "Watching splice inflight %s",
type_to_string(tmpctx, struct bitcoin_txid,
&inflight->funding->outpoint.txid));
fmt_bitcoin_txid(tmpctx,
&inflight->funding->outpoint.txid));
watch_txid(inflight, ld->topology,
&inflight->funding->outpoint.txid,
splice_depth_cb, inflight);
@ -735,9 +728,7 @@ static void handle_splice_sending_sigs(struct lightningd *ld,
if (!inflight)
channel_internal_error(channel, "Unable to load inflight for"
" splice_confirmed_signed txid %s",
type_to_string(tmpctx,
struct bitcoin_txid,
&txid));
fmt_bitcoin_txid(tmpctx, &txid));
/* Signing a splice after it has confirmed is safe and can happen during
* reestablish if one node is late seeing blocks */
@ -798,8 +789,8 @@ bool depthcb_update_scid(struct channel *channel,
/* We freaked out if required when original was
* removed, so just update now */
log_info(channel->log, "Short channel id changed from %s->%s",
type_to_string(tmpctx, struct short_channel_id, channel->scid),
type_to_string(tmpctx, struct short_channel_id, &scid));
fmt_short_channel_id(tmpctx, *channel->scid),
fmt_short_channel_id(tmpctx, scid));
*channel->scid = scid;
channel_gossip_scid_changed(channel);
}
@ -854,8 +845,8 @@ static void handle_add_inflight(struct lightningd *ld,
force_sign_first);
log_debug(channel->log, "lightningd adding inflight with txid %s",
type_to_string(tmpctx, struct bitcoin_txid,
&inflight->funding->outpoint.txid));
fmt_bitcoin_txid(tmpctx,
&inflight->funding->outpoint.txid));
wallet_inflight_add(ld->wallet, inflight);
@ -885,17 +876,13 @@ static void handle_update_inflight(struct lightningd *ld,
if (!inflight)
channel_internal_error(channel, "Unable to load inflight for"
" update_inflight txid %s",
type_to_string(tmpctx,
struct bitcoin_txid,
&txid));
fmt_bitcoin_txid(tmpctx, &txid));
if (!!last_tx != !!last_sig)
channel_internal_error(channel, "Must set last_tx and last_sig"
" together at the same time for"
" update_inflight txid %s",
type_to_string(tmpctx,
struct bitcoin_txid,
&txid));
fmt_bitcoin_txid(tmpctx, &txid));
if (last_tx) {
tal_free(inflight->last_tx);
@ -909,11 +896,9 @@ static void handle_update_inflight(struct lightningd *ld,
if (wally_psbt_combine(inflight->funding_psbt, psbt) != WALLY_OK) {
channel_internal_error(channel,
"Unable to combine PSBTs: %s, %s",
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
inflight->funding_psbt),
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
psbt));
tal_wally_end(inflight->funding_psbt);
return;
@ -936,18 +921,14 @@ void channel_record_open(struct channel *channel, u32 blockheight, bool record_p
if (!amount_msat_add(&start_balance,
channel->our_msat, channel->push))
fatal("Unable to add push_msat (%s) + our_msat (%s)",
type_to_string(tmpctx, struct amount_msat,
&channel->push),
type_to_string(tmpctx, struct amount_msat,
&channel->our_msat));
fmt_amount_msat(tmpctx, channel->push),
fmt_amount_msat(tmpctx, channel->our_msat));
} else {
if (!amount_msat_sub(&start_balance,
channel->our_msat, channel->push))
fatal("Unable to sub our_msat (%s) - push (%s)",
type_to_string(tmpctx, struct amount_msat,
&channel->our_msat),
type_to_string(tmpctx, struct amount_msat,
&channel->push));
fmt_amount_msat(tmpctx, channel->our_msat),
fmt_amount_msat(tmpctx, channel->push));
}
/* If it's not in a block yet, send a proposal */
@ -1078,9 +1059,7 @@ static void handle_peer_splice_locked(struct channel *channel, const u8 *msg)
if(!inflight)
channel_internal_error(channel, "Unable to load inflight for"
" locked_txid %s",
type_to_string(tmpctx,
struct bitcoin_txid,
&locked_txid));
fmt_bitcoin_txid(tmpctx, &locked_txid));
wallet_htlcsigs_confirm_inflight(channel->peer->ld->wallet, channel,
&inflight->funding->outpoint);
@ -1117,8 +1096,7 @@ static void handle_peer_splice_locked(struct channel *channel, const u8 *msg)
txw = splice_inflight_txwatch(channel, inflight);
if (!txw)
log_unusual(channel->log, "Can't unwatch txid %s",
type_to_string(tmpctx, struct bitcoin_txid,
&locked_txid));
fmt_bitcoin_txid(tmpctx, &locked_txid));
tal_free(txw);
}
@ -1777,7 +1755,7 @@ void channeld_tell_depth(struct channel *channel,
if (!channel->owner) {
log_debug(channel->log,
"Funding tx %s confirmed, but peer disconnected",
type_to_string(tmpctx, struct bitcoin_txid, txid));
fmt_bitcoin_txid(tmpctx, txid));
return;
}
@ -1884,8 +1862,7 @@ void channel_notify_new_block(struct lightningd *ld,
"We are fundee and can forget channel without "
"loss of funds.",
block_height - channel->first_blocknum,
type_to_string(tmpctx, struct bitcoin_txid,
&channel->funding.txid));
fmt_bitcoin_txid(tmpctx, &channel->funding.txid));
/* FIXME: Send an error packet for this case! */
/* And forget it. */
delete_channel(channel);
@ -1969,8 +1946,7 @@ struct command_result *cancel_channel_before_broadcast(struct command *cmd,
"No channels being opened or "
"awaiting lock-in for "
"peer_id %s",
type_to_string(tmpctx, struct node_id,
&peer->id));
fmt_node_id(tmpctx, &peer->id));
cc->cid = cancel_channel->cid;
if (cancel_channel->opener == REMOTE)
@ -2033,8 +2009,7 @@ static struct command_result *param_channel_for_splice(struct command *cmd,
if (!*channel)
return command_fail(cmd, SPLICE_UNKNOWN_CHANNEL,
"Unknown channel %s",
type_to_string(tmpctx, struct channel_id,
cid));
fmt_channel_id(tmpctx, cid));
if (!feature_negotiated(cmd->ld->our_features,
(*channel)->peer->their_features,

View file

@ -1022,15 +1022,14 @@ void channel_gossip_set_remote_update(struct lightningd *ld,
&& !node_id_eq(source, &channel->peer->id)) {
log_unusual(ld->log, "Bad gossip order: %s sent us a channel update for a "
"channel owned by %s (%s)",
type_to_string(tmpctx, struct node_id, source),
type_to_string(tmpctx, struct node_id,
&channel->peer->id),
type_to_string(tmpctx, struct short_channel_id, &update->scid));
fmt_node_id(tmpctx, source),
fmt_node_id(tmpctx, &channel->peer->id),
fmt_short_channel_id(tmpctx, update->scid));
return;
}
log_debug(ld->log, "updating channel %s with inbound settings",
type_to_string(tmpctx, struct short_channel_id, &update->scid));
fmt_short_channel_id(tmpctx, update->scid));
tal_free(cg->peer_update);
cg->peer_update = tal_dup(cg, struct peer_update, update);
wallet_channel_save(ld->wallet, channel);

View file

@ -193,8 +193,8 @@ static struct amount_sat calc_tx_fee(struct amount_sat sat_in,
if (!amount_sat_sub(&fee, fee, amount_asset_to_sat(&amt)))
fatal("Tx spends more than input %s? %s",
type_to_string(tmpctx, struct amount_sat, &sat_in),
type_to_string(tmpctx, struct bitcoin_tx, tx));
fmt_amount_sat(tmpctx, sat_in),
fmt_bitcoin_tx(tmpctx, tx));
}
return fee;
}
@ -218,8 +218,8 @@ static bool closing_fee_is_acceptable(struct lightningd *ld,
log_debug(channel->log, "Their actual closing tx fee is %s"
" vs previous %s: weight is %"PRIu64,
type_to_string(tmpctx, struct amount_sat, &fee),
type_to_string(tmpctx, struct amount_sat, &last_fee),
fmt_amount_sat(tmpctx, fee),
fmt_amount_sat(tmpctx, last_fee),
weight);
if (!channel->ignore_fee_limits && !ld->config.ignore_fee_limits) {
@ -233,7 +233,7 @@ static bool closing_fee_is_acceptable(struct lightningd *ld,
if (amount_sat_less(fee, min_fee)) {
log_debug(channel->log, "... That's below our min %s"
" for weight %"PRIu64" at feerate %u",
type_to_string(tmpctx, struct amount_sat, &min_fee),
fmt_amount_sat(tmpctx, min_fee),
weight, min_feerate);
return false;
}
@ -442,10 +442,8 @@ void peer_start_closingd(struct channel *channel, struct peer_fd *peer_fd)
if (!amount_sat_sub_msat(&their_msat,
channel->funding_sats, channel->our_msat)) {
log_broken(channel->log, "our_msat overflow funding %s minus %s",
type_to_string(tmpctx, struct amount_sat,
&channel->funding_sats),
type_to_string(tmpctx, struct amount_msat,
&channel->our_msat));
fmt_amount_sat(tmpctx, channel->funding_sats),
fmt_amount_msat(tmpctx, channel->our_msat));
channel_fail_permanent(channel,
REASON_LOCAL,
"our_msat overflow on closing");

View file

@ -145,9 +145,7 @@ void send_account_balance_snapshot(struct lightningd *ld, u32 blockheight)
if (report_chan_balance(chan)) {
bal = tal(snap, struct account_balance);
bal->bip173_name = chainparams->lightning_hrp;
bal->acct_id = type_to_string(bal,
struct channel_id,
&chan->cid);
bal->acct_id = fmt_channel_id(bal, &chan->cid);
bal->balance = chan->our_msat;
tal_arr_expand(&snap->accts, bal);
}

View file

@ -238,7 +238,7 @@ static struct command_result *json_connect(struct command *cmd,
peer = peer_by_id(cmd->ld, &id_addr.id);
if (peer && peer->connected == PEER_CONNECTED) {
log_debug(cmd->ld->log, "Already connected via %s",
type_to_string(tmpctx, struct wireaddr_internal,
fmt_wireaddr_internal(tmpctx,
&peer->addr));
return connect_cmd_succeed(cmd, peer,
peer->connected_incoming,
@ -850,7 +850,7 @@ static struct command_result *json_sendcustommsg(struct command *cmd,
if (!peer) {
return command_fail(cmd, JSONRPC2_INVALID_REQUEST,
"No such peer: %s",
type_to_string(cmd, struct node_id, dest));
fmt_node_id(cmd, dest));
}
/* We allow messages from plugins responding to peer_connected hook,

View file

@ -347,7 +347,7 @@ openchannel2_changed_hook_serialize(struct openchannel2_psbt_payload *payload,
json_object_start(stream, "openchannel2_changed");
json_add_psbt(stream, "psbt", payload->psbt);
json_add_string(stream, "channel_id",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
&payload->channel->cid));
json_add_bool(stream, "require_confirmed_inputs",
payload->channel->req_confirmed_ins[REMOTE]);
@ -362,7 +362,7 @@ openchannel2_sign_hook_serialize(struct openchannel2_psbt_payload *payload,
json_object_start(stream, "openchannel2_sign");
json_add_psbt(stream, "psbt", payload->psbt);
json_add_string(stream, "channel_id",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
&payload->channel->cid));
json_object_end(stream);
}
@ -625,8 +625,7 @@ rbf_channel_hook_deserialize(struct rbf_channel_payload *payload,
if (payload->psbt && !psbt_has_required_fields(payload->psbt))
fatal("Plugin supplied PSBT that's missing"
" required fields: %s",
type_to_string(tmpctx, struct wally_psbt,
payload->psbt));
fmt_wally_psbt(tmpctx, payload->psbt));
if (!hook_extract_amount(dualopend, buffer, toks,
"our_funding_msat", &payload->our_funding))
fatal("Plugin failed to supply our_funding_msat field");
@ -832,7 +831,7 @@ openchannel2_hook_deserialize(struct openchannel2_payload *payload,
*/
if (payload->psbt && !psbt_has_required_fields(payload->psbt))
fatal("Plugin supplied PSBT that's missing required fields. %s",
type_to_string(tmpctx, struct wally_psbt, payload->psbt));
fmt_wally_psbt(tmpctx, payload->psbt));
if (!hook_extract_amount(dualopend, buffer, toks,
"our_funding_msat",
@ -888,7 +887,7 @@ openchannel2_changed_deserialize(struct openchannel2_psbt_payload *payload,
*/
if (!psbt_has_required_fields(psbt))
fatal("Plugin supplied PSBT that's missing required fields. %s",
type_to_string(tmpctx, struct wally_psbt, psbt));
fmt_wally_psbt(tmpctx, psbt));
if (payload->psbt)
tal_free(payload->psbt);
@ -939,7 +938,7 @@ openchannel2_signed_deserialize(struct openchannel2_psbt_payload *payload,
*/
if (!psbt_has_required_fields(psbt))
fatal("Plugin supplied PSBT that's missing required fields. %s",
type_to_string(tmpctx, struct wally_psbt, psbt));
fmt_wally_psbt(tmpctx, psbt));
/* NOTE - The psbt_contribs_changed function nulls lots of
* fields in place to compare the PSBTs. This removes the
@ -956,10 +955,8 @@ openchannel2_signed_deserialize(struct openchannel2_psbt_payload *payload,
if (psbt_contribs_changed(payload->psbt, psbt_clone))
fatal("Plugin must not change psbt input/output set. "
"orig: %s. updated: %s",
type_to_string(tmpctx, struct wally_psbt,
payload->psbt),
type_to_string(tmpctx, struct wally_psbt,
psbt));
fmt_wally_psbt(tmpctx, payload->psbt),
fmt_wally_psbt(tmpctx, psbt));
if (payload->psbt)
tal_free(payload->psbt);
@ -978,13 +975,13 @@ static void dualopend_tell_depth(struct channel *channel,
if (!channel->owner) {
log_debug(channel->log,
"Funding tx %s confirmed, but peer disconnected",
type_to_string(tmpctx, struct bitcoin_txid, txid));
fmt_bitcoin_txid(tmpctx, txid));
return;
}
log_debug(channel->log,
"Funding tx %s confirmed, telling peer",
type_to_string(tmpctx, struct bitcoin_txid, txid));
fmt_bitcoin_txid(tmpctx, txid));
if (depth < channel->minimum_depth) {
to_go = channel->minimum_depth - depth;
} else
@ -1050,8 +1047,8 @@ static enum watch_result opening_depth_cb(struct lightningd *ld,
/* We freaked out if required when original was
* removed, so just update now */
log_info(inflight->channel->log, "Short channel id changed from %s->%s",
type_to_string(tmpctx, struct short_channel_id, inflight->channel->scid),
type_to_string(tmpctx, struct short_channel_id, &scid));
fmt_short_channel_id(tmpctx, *inflight->channel->scid),
fmt_short_channel_id(tmpctx, scid));
*inflight->channel->scid = scid;
wallet_channel_save(ld->wallet, inflight->channel);
}
@ -1090,8 +1087,7 @@ openchannel2_sign_hook_cb(struct openchannel2_psbt_payload *payload STEALS)
log_broken(channel->log,
"Plugin must return a 'psbt' with signatures "
"for their inputs %s",
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
payload->psbt));
msg = towire_dualopend_fail(NULL, "Peer error with PSBT"
" signatures.");
@ -1111,10 +1107,9 @@ openchannel2_sign_hook_cb(struct openchannel2_psbt_payload *payload STEALS)
if (!bitcoin_txid_eq(&inflight->funding->outpoint.txid, &txid)) {
log_broken(channel->log,
"PSBT's txid does not match. %s != %s",
type_to_string(tmpctx, struct bitcoin_txid,
&txid),
type_to_string(tmpctx, struct bitcoin_txid,
&inflight->funding->outpoint.txid));
fmt_bitcoin_txid(tmpctx, &txid),
fmt_bitcoin_txid(tmpctx,
&inflight->funding->outpoint.txid));
msg = towire_dualopend_fail(NULL, "Peer error with PSBT"
" signatures.");
goto send_msg;
@ -1350,8 +1345,8 @@ wallet_update_channel_commit(struct lightningd *ld,
REASON_LOCAL,
"Invalid commitment txid."
" expected (inflight's) %s, got %s",
type_to_string(tmpctx, struct bitcoin_txid, &inflight_txid),
type_to_string(tmpctx, struct bitcoin_txid, &txid));
fmt_bitcoin_txid(tmpctx, &inflight_txid),
fmt_bitcoin_txid(tmpctx, &txid));
}
return false;
}
@ -1694,9 +1689,7 @@ static void check_utxo_block(struct bitcoind *bitcoind UNUSED,
"tx: %s. Unsent tx discarded "
"%s.",
cs->err_msg,
type_to_string(tmpctx,
struct wally_tx,
wtx)));
fmt_wally_tx(tmpctx, wtx)));
cs->channel->openchannel_signed_cmd = NULL;
}
@ -1705,7 +1698,7 @@ static void check_utxo_block(struct bitcoind *bitcoind UNUSED,
"tx: %s. Unsent tx discarded "
"%s.",
cs->err_msg,
type_to_string(tmpctx, struct wally_tx, wtx));
fmt_wally_tx(tmpctx, wtx));
} else
handle_tx_broadcast(cs);
@ -1724,8 +1717,7 @@ static void sendfunding_done(struct bitcoind *bitcoind UNUSED,
log_unusual(channel->log,
"No outstanding command for channel %s,"
" funding sent was success? %d",
type_to_string(tmpctx, struct channel_id,
&channel->cid),
fmt_channel_id(tmpctx, &channel->cid),
success);
if (success) {
@ -1768,9 +1760,9 @@ static void send_funding_tx(struct channel *channel,
wally_txid(wtx, &txid);
log_debug(channel->log,
"Broadcasting funding tx %s for channel %s. %s",
type_to_string(tmpctx, struct bitcoin_txid, &txid),
type_to_string(tmpctx, struct channel_id, &channel->cid),
type_to_string(tmpctx, struct wally_tx, cs->wtx));
fmt_bitcoin_txid(tmpctx, &txid),
fmt_channel_id(tmpctx, &channel->cid),
fmt_wally_tx(tmpctx, cs->wtx));
bitcoind_sendrawtx(ld->topology->bitcoind,
ld->topology->bitcoind,
@ -1821,8 +1813,7 @@ static void handle_peer_tx_sigs_sent(struct subd *dualopend,
channel_internal_error(channel,
"Unable to extract final tx"
" from PSBT %s",
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
inflight->funding_psbt));
return;
}
@ -1865,9 +1856,8 @@ static void handle_peer_tx_sigs_sent(struct subd *dualopend,
" of %dperkw. Failing channel."
" Offending PSBT: %s",
inflight->funding->feerate,
type_to_string(tmpctx,
struct wally_psbt,
inflight->funding_psbt));
fmt_wally_psbt(tmpctx,
inflight->funding_psbt));
/* Notify the peer we're failing */
subd_send_msg(dualopend,
@ -2144,11 +2134,9 @@ static void handle_peer_tx_sigs_msg(struct subd *dualopend,
if (wally_psbt_combine(inflight->funding_psbt, psbt) != WALLY_OK) {
channel_internal_error(channel,
"Unable to combine PSBTs: %s, %s",
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
inflight->funding_psbt),
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
psbt));
tal_wally_end(inflight->funding_psbt);
return;
@ -2170,8 +2158,7 @@ static void handle_peer_tx_sigs_msg(struct subd *dualopend,
channel_internal_error(channel,
"Unable to extract final tx"
" from PSBT %s",
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
inflight->funding_psbt));
return;
}
@ -2211,9 +2198,8 @@ static void handle_peer_tx_sigs_msg(struct subd *dualopend,
" of %dperkw. Failing channel."
" Offending PSBT: %s",
inflight->funding->feerate,
type_to_string(tmpctx,
struct wally_psbt,
inflight->funding_psbt));
fmt_wally_psbt(tmpctx,
inflight->funding_psbt));
/* Notify the peer we're failing */
subd_send_msg(dualopend,
@ -2245,7 +2231,7 @@ static bool verify_option_will_fund_signature(struct peer *peer,
if (!pubkey_from_node_id(&their_pubkey, &peer->id)) {
log_broken(peer->ld->log,
"Unable to extract pubkey from peer's node id %s",
type_to_string(tmpctx, struct node_id, &peer->id));
fmt_node_id(tmpctx, &peer->id));
return false;
}
@ -2344,11 +2330,9 @@ static void handle_validate_rbf(struct subd *dualopend,
errmsg = tal_fmt(tmpctx, "No overlapping input"
" present. New: %s, last: %s",
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
candidate_psbt),
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
inflight->funding_psbt));
msg = towire_dualopend_fail(NULL, errmsg);
goto send_msg;
@ -2372,12 +2356,8 @@ static void handle_validate_rbf(struct subd *dualopend,
if (!amount_sat_greater(candidate_fee, last_fee)) {
char *errmsg = tal_fmt(tmpctx, "Proposed funding tx fee (%s)"
" less than/equal to last (%s)",
type_to_string(tmpctx,
struct amount_sat,
&candidate_fee),
type_to_string(tmpctx,
struct amount_sat,
&last_fee));
fmt_amount_sat(tmpctx, candidate_fee),
fmt_amount_sat(tmpctx, last_fee));
msg = towire_dualopend_fail(NULL, errmsg);
goto send_msg;
}
@ -2407,8 +2387,7 @@ json_openchannel_abort(struct command *cmd,
if (!channel)
return command_fail(cmd, FUNDING_UNKNOWN_CHANNEL,
"Unknown channel %s",
type_to_string(tmpctx, struct channel_id,
cid));
fmt_channel_id(tmpctx, cid));
if (!channel->owner)
return command_fail(cmd, FUNDING_PEER_NOT_CONNECTED,
@ -2503,9 +2482,7 @@ json_openchannel_bump(struct command *cmd,
return command_fail(cmd, JSONRPC2_INVALID_PARAMS,
"Overflow in adding PSBT input"
" values. %s",
type_to_string(tmpctx,
struct wally_psbt,
psbt));
fmt_wally_psbt(tmpctx, psbt));
}
/* If they don't pass in at least enough in the PSBT to cover
@ -2514,12 +2491,8 @@ json_openchannel_bump(struct command *cmd,
return command_fail(cmd, FUND_CANNOT_AFFORD,
"Provided PSBT cannot afford funding of "
"amount %s. %s",
type_to_string(tmpctx,
struct amount_sat,
amount),
type_to_string(tmpctx,
struct wally_psbt,
psbt));
fmt_amount_sat(tmpctx, *amount),
fmt_wally_psbt(tmpctx, psbt));
if (!topology_synced(cmd->ld->topology)) {
return command_fail(cmd, FUNDING_STILL_SYNCING_BITCOIN,
@ -2531,8 +2504,7 @@ json_openchannel_bump(struct command *cmd,
if (!channel)
return command_fail(cmd, FUNDING_UNKNOWN_CHANNEL,
"Unknown channel %s",
type_to_string(tmpctx, struct channel_id,
cid));
fmt_channel_id(tmpctx, cid));
last_feerate_perkw = channel_last_funding_feerate(channel);
next_feerate_min = last_feerate_perkw * 65 / 64;
@ -2560,8 +2532,8 @@ json_openchannel_bump(struct command *cmd,
&& amount_sat_greater(*amount, chainparams->max_funding))
return command_fail(cmd, FUND_MAX_EXCEEDED,
"Amount exceeded %s",
type_to_string(tmpctx, struct amount_sat,
&chainparams->max_funding));
fmt_amount_sat(tmpctx,
chainparams->max_funding));
/* It's possible that the last open failed/was aborted.
* So now we restart the attempt! */
@ -2624,8 +2596,7 @@ json_openchannel_bump(struct command *cmd,
if (!psbt_has_required_fields(psbt))
return command_fail(cmd, FUNDING_PSBT_INVALID,
"PSBT is missing required fields %s",
type_to_string(tmpctx, struct wally_psbt,
psbt));
fmt_wally_psbt(tmpctx, psbt));
subd_send_msg(channel->owner,
take(towire_dualopend_rbf_init(NULL, *amount,
@ -2677,10 +2648,10 @@ json_openchannel_signed(struct command *cmd,
"Txid for passed in PSBT does not match"
" funding txid for channel. Expected %s, "
"received %s",
type_to_string(tmpctx, struct bitcoin_txid,
&channel->funding.txid),
type_to_string(tmpctx, struct bitcoin_txid,
&txid));
fmt_bitcoin_txid(tmpctx,
&channel->funding.txid),
fmt_bitcoin_txid(tmpctx,
&txid));
inflight = list_tail(&channel->inflights,
struct channel_inflight,
@ -2693,11 +2664,11 @@ json_openchannel_signed(struct command *cmd,
return command_fail(cmd, LIGHTNINGD,
"Current inflight transaction is %s,"
" not %s",
type_to_string(tmpctx, struct bitcoin_txid,
&txid),
type_to_string(tmpctx, struct bitcoin_txid,
&inflight->funding
->outpoint.txid));
fmt_bitcoin_txid(tmpctx,
&txid),
fmt_bitcoin_txid(tmpctx,
&inflight->funding
->outpoint.txid));
if (!inflight->last_tx)
return command_fail(cmd, FUNDING_STATE_INVALID,
@ -2786,9 +2757,7 @@ static void validate_input_unspent(struct bitcoind *bitcoind,
err = tal_fmt(pv, "Requested only confirmed"
" inputs for this open."
" Input %s is not confirmed.",
type_to_string(tmpctx,
struct bitcoin_outpoint,
&outpoint));
fmt_bitcoin_outpoint(tmpctx, &outpoint));
pv->invalid_input(pv, err);
return;
}
@ -2866,9 +2835,7 @@ static struct json_stream *build_commit_response(struct command *cmd,
response = json_stream_success(cmd);
json_add_string(response, "channel_id",
type_to_string(tmpctx,
struct channel_id,
&channel->cid));
fmt_channel_id(tmpctx, &channel->cid));
json_add_psbt(response, "psbt", inflight->funding_psbt);
json_add_channel_type(response, "channel_type", channel->type);
json_add_bool(response, "commitments_secured", inflight->last_tx != NULL);
@ -2913,8 +2880,7 @@ static struct command_result *json_openchannel_update(struct command *cmd,
if (!channel)
return command_fail(cmd, FUNDING_UNKNOWN_CHANNEL,
"Unknown channel %s",
type_to_string(tmpctx, struct channel_id,
cid));
fmt_channel_id(tmpctx, cid));
if (!channel->owner)
return command_fail(cmd, FUNDING_PEER_NOT_CONNECTED,
"Peer not connected");
@ -2949,8 +2915,7 @@ static struct command_result *json_openchannel_update(struct command *cmd,
if (!psbt_has_required_fields(psbt))
return command_fail(cmd, FUNDING_PSBT_INVALID,
"PSBT is missing required fields %s",
type_to_string(tmpctx, struct wally_psbt,
psbt));
fmt_wally_psbt(tmpctx, psbt));
if (command_check_only(cmd))
return command_check_done(cmd);
@ -3052,9 +3017,7 @@ static struct command_result *json_openchannel_init(struct command *cmd,
return command_fail(cmd, JSONRPC2_INVALID_PARAMS,
"Overflow in adding PSBT input"
" values. %s",
type_to_string(tmpctx,
struct wally_psbt,
psbt));
fmt_wally_psbt(tmpctx, psbt));
}
/* If they don't pass in at least enough in the PSBT to cover
@ -3063,12 +3026,8 @@ static struct command_result *json_openchannel_init(struct command *cmd,
return command_fail(cmd, FUND_CANNOT_AFFORD,
"Provided PSBT cannot afford funding of "
"amount %s. %s",
type_to_string(tmpctx,
struct amount_sat,
amount),
type_to_string(tmpctx,
struct wally_psbt,
psbt));
fmt_amount_sat(tmpctx, *amount),
fmt_wally_psbt(tmpctx, psbt));
res = init_set_feerate(cmd, &feerate_per_kw, &feerate_per_kw_funding);
if (res)
@ -3112,8 +3071,7 @@ static struct command_result *json_openchannel_init(struct command *cmd,
&& amount_sat_greater(*amount, chainparams->max_funding))
return command_fail(cmd, FUND_MAX_EXCEEDED,
"Amount exceeded %s",
type_to_string(tmpctx, struct amount_sat,
&chainparams->max_funding));
fmt_amount_sat(tmpctx, chainparams->max_funding));
/* Add serials to any input that's missing them */
psbt_add_serials(psbt, TX_INITIATOR);
@ -3128,8 +3086,7 @@ static struct command_result *json_openchannel_init(struct command *cmd,
if (!psbt_has_required_fields(psbt))
return command_fail(cmd, FUNDING_PSBT_INVALID,
"PSBT is missing required fields %s",
type_to_string(tmpctx, struct wally_psbt,
psbt));
fmt_wally_psbt(tmpctx, psbt));
if (command_check_only(cmd))
return command_check_done(cmd);
@ -3159,7 +3116,7 @@ static struct command_result *json_openchannel_init(struct command *cmd,
channel->channel_flags &= ~CHANNEL_FLAGS_ANNOUNCE_CHANNEL;
log_info(peer->ld->log,
"Will open private channel with node %s",
type_to_string(tmpctx, struct node_id, id));
fmt_node_id(tmpctx, id));
}
/* Needs to be stolen away from cmd */
@ -3350,8 +3307,7 @@ static void handle_psbt_changed(struct subd *dualopend,
channel->cid = cid;
response = json_stream_success(cmd);
json_add_string(response, "channel_id",
type_to_string(tmpctx, struct channel_id,
&channel->cid));
fmt_channel_id(tmpctx, &channel->cid));
json_add_psbt(response, "psbt", psbt);
json_add_channel_type(response, "channel_type", channel->type);
json_add_bool(response, "commitments_secured", false);
@ -3458,8 +3414,7 @@ static void handle_commit_ready(struct subd *dualopend,
channel_internal_error(channel,
"wallet_commit_channel failed"
" (chan %s)",
type_to_string(tmpctx,
struct channel_id,
fmt_channel_id(tmpctx,
&channel->cid));
channel->open_attempt
= tal_free(channel->open_attempt);
@ -3486,8 +3441,7 @@ static void handle_commit_ready(struct subd *dualopend,
channel_internal_error(channel,
"wallet_update_channel failed"
" (chan %s)",
type_to_string(tmpctx,
struct channel_id,
fmt_channel_id(tmpctx,
&channel->cid));
channel->open_attempt
= tal_free(channel->open_attempt);
@ -3738,8 +3692,8 @@ static struct command_result *json_queryrates(struct command *cmd,
&& amount_sat_greater(*amount, chainparams->max_funding))
return command_fail(cmd, FUND_MAX_EXCEEDED,
"Amount exceeded %s",
type_to_string(tmpctx, struct amount_sat,
&chainparams->max_funding));
fmt_amount_sat(tmpctx,
chainparams->max_funding));
if (command_check_only(cmd))
return command_check_done(cmd);

View file

@ -130,8 +130,7 @@ static void handle_init_cupdate(struct lightningd *ld, const u8 *msg)
channel = any_channel_by_scid(ld, &scid, true);
if (!channel) {
log_broken(ld->log, "init_cupdate for unknown scid %s",
type_to_string(tmpctx, struct short_channel_id,
&scid));
fmt_short_channel_id(tmpctx, scid));
return;
}

View file

@ -70,7 +70,7 @@ static unsigned int hsm_msg(struct subd *hsmd,
/* This should, of course, never happen. */
log_broken(hsmd->log, "client %s %s (request %s)",
type_to_string(tmpctx, struct node_id, &client_id),
fmt_node_id(tmpctx, &client_id),
desc, tal_hex(tmpctx, bad_msg));
return 0;
}
@ -204,7 +204,7 @@ void bip32_pubkey(struct lightningd *ld, struct pubkey *pubkey, u32 index)
fatal("Invalid check_pubkey_reply from hsm");
if (!ok)
fatal("HSM said key derivation of %u != %s",
index, type_to_string(tmpctx, struct pubkey, pubkey));
index, fmt_pubkey(tmpctx, pubkey));
}
}

View file

@ -179,10 +179,8 @@ struct htlc_out *htlc_out_check(const struct htlc_out *hout,
if (amount_msat_less(hout->in->msat, hout->msat))
return corrupt(abortstr, "Input amount %s"
" less than %s",
type_to_string(tmpctx, struct amount_msat,
&hout->in->msat),
type_to_string(tmpctx, struct amount_msat,
&hout->msat));
fmt_amount_msat(tmpctx, hout->in->msat),
fmt_amount_msat(tmpctx, hout->msat));
if (hout->in->cltv_expiry <= hout->cltv_expiry)
return corrupt(abortstr, "Input cltv_expiry %u"
" less than %u",
@ -306,12 +304,8 @@ struct htlc_out *new_htlc_out(const tal_t *ctx,
if (!amount_msat_sub(&hout->fees, msat, final_msat))
return corrupt("new_htlc_out",
"overflow subtract %s-%s",
type_to_string(tmpctx,
struct amount_msat,
&msat),
type_to_string(tmpctx,
struct amount_msat,
&final_msat));
fmt_amount_msat(tmpctx, msat),
fmt_amount_msat(tmpctx, final_msat));
}
hout->in = NULL;
@ -322,12 +316,8 @@ struct htlc_out *new_htlc_out(const tal_t *ctx,
if (!amount_msat_sub(&hout->fees, in->msat, msat))
return corrupt("new_htlc_out",
"overflow subtract %s-%s",
type_to_string(tmpctx,
struct amount_msat,
&in->msat),
type_to_string(tmpctx,
struct amount_msat,
&msat));
fmt_amount_msat(tmpctx, in->msat),
fmt_amount_msat(tmpctx, msat));
}
return htlc_out_check(hout, "new_htlc_out");

View file

@ -124,8 +124,7 @@ void htlc_set_add(struct lightningd *ld,
if (feature_is_set(details->features, COMPULSORY_FEATURE(OPT_PAYMENT_SECRET))
&& !payment_secret) {
log_debug(ld->log, "Missing payment_secret, but required for %s",
type_to_string(tmpctx, struct sha256,
&hin->payment_hash));
fmt_sha256(tmpctx, &hin->payment_hash));
local_fail_in_htlc(hin,
take(failmsg_incorrect_or_unknown(NULL, ld, hin)));
return;
@ -167,12 +166,9 @@ void htlc_set_add(struct lightningd *ld,
if (!amount_msat_eq(total_msat, set->total_msat)) {
log_unusual(ld->log, "Failing HTLC set %s:"
" total_msat %s new htlc total %s",
type_to_string(tmpctx, struct sha256,
&set->payment_hash),
type_to_string(tmpctx, struct amount_msat,
&set->total_msat),
type_to_string(tmpctx, struct amount_msat,
&total_msat));
fmt_sha256(tmpctx, &set->payment_hash),
fmt_amount_msat(tmpctx, set->total_msat),
fmt_amount_msat(tmpctx, total_msat));
htlc_set_fail(set,
take(towire_final_incorrect_htlc_amount(NULL,
hin->msat)));
@ -182,12 +178,9 @@ void htlc_set_add(struct lightningd *ld,
if (!amount_msat_add(&set->so_far, set->so_far, hin->msat)) {
log_unusual(ld->log, "Failing HTLC set %s:"
" overflow adding %s+%s",
type_to_string(tmpctx, struct sha256,
&set->payment_hash),
type_to_string(tmpctx, struct amount_msat,
&set->so_far),
type_to_string(tmpctx, struct amount_msat,
&hin->msat));
fmt_sha256(tmpctx, &set->payment_hash),
fmt_amount_msat(tmpctx, set->so_far),
fmt_amount_msat(tmpctx, hin->msat));
htlc_set_fail(set,
take(towire_final_incorrect_htlc_amount(NULL,
hin->msat)));
@ -197,8 +190,8 @@ void htlc_set_add(struct lightningd *ld,
log_debug(ld->log,
"HTLC set contains %zu HTLCs, for a total of %s out of %s (%spayment_secret)",
tal_count(set->htlcs),
type_to_string(tmpctx, struct amount_msat, &set->so_far),
type_to_string(tmpctx, struct amount_msat, &total_msat),
fmt_amount_msat(tmpctx, set->so_far),
fmt_amount_msat(tmpctx, total_msat),
payment_secret ? "" : "no "
);

View file

@ -339,7 +339,7 @@ invoice_payment_hooks_done(struct invoice_payment_hook_payload *payload STEALS)
log_info(ld->log, "Resolved invoice '%s' with amount %s in %zu htlcs",
payload->label->s,
type_to_string(tmpctx, struct amount_msat, &payload->msat),
fmt_amount_msat(tmpctx, payload->msat),
payload->set ? tal_count(payload->set->htlcs) : 0);
if (payload->set)
htlc_set_fulfill(payload->set, &payload->preimage);
@ -404,10 +404,10 @@ invoice_check_payment(const tal_t *ctx,
if (!invoices_find_unpaid(ld->wallet->invoices, &inv_dbid, payment_hash)) {
if (invoices_find_by_rhash(ld->wallet->invoices, &inv_dbid, payment_hash)) {
*err = tal_fmt(ctx, "Already paid or expired invoice %s",
type_to_string(tmpctx, struct sha256, payment_hash));
fmt_sha256(tmpctx, payment_hash));
} else {
*err = tal_fmt(ctx, "Unknown invoice %s",
type_to_string(tmpctx, struct sha256, payment_hash));
fmt_sha256(tmpctx, payment_hash));
}
return NULL;
}
@ -423,7 +423,7 @@ invoice_check_payment(const tal_t *ctx,
if (feature_is_set(details->features, COMPULSORY_FEATURE(OPT_VAR_ONION))
&& !payment_secret) {
*err = tal_fmt(ctx, "Attempt to pay %s without secret",
type_to_string(tmpctx, struct sha256, &details->rhash));
fmt_sha256(tmpctx, &details->rhash));
return tal_free(details);
}
@ -436,8 +436,7 @@ invoice_check_payment(const tal_t *ctx,
invoice_secret(&details->r, &expected);
if (!secret_eq_consttime(payment_secret, &expected)) {
*err = tal_fmt(ctx, "Attempt to pay %s with wrong secret",
type_to_string(tmpctx, struct sha256,
&details->rhash));
fmt_sha256(tmpctx, &details->rhash));
return tal_free(details);
}
}
@ -454,20 +453,18 @@ invoice_check_payment(const tal_t *ctx,
if (amount_msat_less(msat, *details->msat)) {
*err = tal_fmt(ctx, "Attempt to pay %s with amount %s < %s",
type_to_string(tmpctx, struct sha256,
&details->rhash),
type_to_string(tmpctx, struct amount_msat, &msat),
type_to_string(tmpctx, struct amount_msat, details->msat));
fmt_sha256(tmpctx, &details->rhash),
fmt_amount_msat(tmpctx, msat),
fmt_amount_msat(tmpctx, *details->msat));
return tal_free(details);
}
if (amount_msat_add(&twice, *details->msat, *details->msat)
&& amount_msat_greater(msat, twice)) {
*err = tal_fmt(ctx, "Attempt to pay %s with amount %s > %s",
type_to_string(tmpctx, struct sha256,
&details->rhash),
type_to_string(tmpctx, struct amount_msat, &msat),
type_to_string(tmpctx, struct amount_msat, &twice));
fmt_sha256(tmpctx, &details->rhash),
fmt_amount_msat(tmpctx, msat),
fmt_amount_msat(tmpctx, twice));
/* BOLT #4:
*
* - if the amount paid is more than twice the amount
@ -610,10 +607,10 @@ static struct route_info **select_inchan(const tal_t *ctx,
if (!amount_sat_add(&cumulative_reserve,
candidates[i].c->our_config.channel_reserve,
candidates[i].c->channel_info.their_config.channel_reserve)
|| !amount_sat_to_msat(&capacity, candidates[i].c->funding_sats)
|| !amount_msat_sub_sat(&capacity, capacity, cumulative_reserve)) {
|| !amount_sat_to_msat(&capacity, candidates[i].c->funding_sats)
|| !amount_msat_sub_sat(&capacity, capacity, cumulative_reserve)) {
log_broken(ld->log, "Channel %s capacity overflow!",
type_to_string(tmpctx, struct short_channel_id, candidates[i].c->scid));
fmt_short_channel_id(tmpctx, *candidates[i].c->scid));
continue;
}
@ -621,9 +618,8 @@ static struct route_info **select_inchan(const tal_t *ctx,
* only one! So bump it by 1 msat */
if (!amount_msat_add(&excess, excess, AMOUNT_MSAT(1))) {
log_broken(ld->log, "Channel %s excess overflow!",
type_to_string(tmpctx,
struct short_channel_id,
candidates[i].c->scid));
fmt_short_channel_id(tmpctx,
*candidates[i].c->scid));
continue;
}
excess_frac = amount_msat_ratio(excess, capacity);
@ -687,9 +683,8 @@ static struct route_info **select_inchan_mpp(const tal_t *ctx,
log_broken(ld->log,
"Gathered channel capacity overflow: "
"%s + %s",
type_to_string(tmpctx, struct amount_msat, &gathered),
type_to_string(tmpctx, struct amount_msat,
&candidates[i].capacity));
fmt_amount_msat(tmpctx, gathered),
fmt_amount_msat(tmpctx, candidates[i].capacity));
continue;
}
tal_arr_expand(&routehints,
@ -797,24 +792,20 @@ add_routehints(struct invoice_info *info,
}
log_debug(info->cmd->ld->log, "needed = %s, avail_capacity = %s, private_capacity = %s, offline_capacity = %s, deadend_capacity = %s",
type_to_string(tmpctx, struct amount_msat, &needed),
type_to_string(tmpctx, struct amount_msat, &avail_capacity),
type_to_string(tmpctx, struct amount_msat, &private_capacity),
type_to_string(tmpctx, struct amount_msat, &offline_capacity),
type_to_string(tmpctx, struct amount_msat, &deadend_capacity));
fmt_amount_msat(tmpctx, needed),
fmt_amount_msat(tmpctx, avail_capacity),
fmt_amount_msat(tmpctx, private_capacity),
fmt_amount_msat(tmpctx, offline_capacity),
fmt_amount_msat(tmpctx, deadend_capacity));
if (!amount_msat_add(&total, avail_capacity, offline_capacity)
|| !amount_msat_add(&total, total, deadend_capacity)
|| !amount_msat_add(&total, total, private_capacity))
fatal("Cannot add %s + %s + %s + %s",
type_to_string(tmpctx, struct amount_msat,
&avail_capacity),
type_to_string(tmpctx, struct amount_msat,
&offline_capacity),
type_to_string(tmpctx, struct amount_msat,
&deadend_capacity),
type_to_string(tmpctx, struct amount_msat,
&private_capacity));
fmt_amount_msat(tmpctx, avail_capacity),
fmt_amount_msat(tmpctx, offline_capacity),
fmt_amount_msat(tmpctx, deadend_capacity),
fmt_amount_msat(tmpctx, private_capacity));
/* If we literally didn't have capacity at all, warn. */
*warning_capacity = amount_msat_greater_eq(needed, total);

View file

@ -1363,7 +1363,7 @@ int main(int argc, char *argv[])
* so it can use tal_bytelen() to get the length. */
log_info(ld->log, "--------------------------------------------------");
log_info(ld->log, "Server started with public key %s, alias %s (color #%s) and lightningd %s",
type_to_string(tmpctx, struct node_id, &ld->id),
fmt_node_id(tmpctx, &ld->id),
json_escape(tmpctx, (const char *)ld->alias)->s,
tal_hex(tmpctx, ld->rgb), version());
ld->state = LD_STATE_RUNNING;

View file

@ -423,15 +423,15 @@ static void json_mvt_id(struct json_stream *stream, enum mvt_type mvt_type,
/* some 'journal entries' don't have a txid */
if (id->tx_txid)
json_add_string(stream, "txid",
type_to_string(tmpctx, struct bitcoin_txid,
id->tx_txid));
fmt_bitcoin_txid(tmpctx,
id->tx_txid));
/* some chain ledger entries aren't associated with a utxo
* e.g. journal updates (due to penalty/state loss) and
* chain_fee entries */
if (id->outpoint) {
json_add_string(stream, "utxo_txid",
type_to_string(tmpctx, struct bitcoin_txid,
&id->outpoint->txid));
fmt_bitcoin_txid(tmpctx,
&id->outpoint->txid));
json_add_u32(stream, "vout", id->outpoint->n);
}
@ -439,13 +439,13 @@ static void json_mvt_id(struct json_stream *stream, enum mvt_type mvt_type,
if (id->payment_hash)
json_add_sha256(stream, "payment_hash", id->payment_hash);
return;
case CHANNEL_MVT:
/* push funding / leases don't have a payment_hash */
if (id->payment_hash)
json_add_sha256(stream, "payment_hash", id->payment_hash);
if (id->part_id)
json_add_u64(stream, "part_id", *id->part_id);
return;
case CHANNEL_MVT:
/* push funding / leases don't have a payment_hash */
if (id->payment_hash)
json_add_sha256(stream, "payment_hash", id->payment_hash);
if (id->part_id)
json_add_u64(stream, "part_id", *id->part_id);
return;
}
abort();
}
@ -531,10 +531,10 @@ void notify_balance_snapshot(struct lightningd *ld,
}
static void json_add_block_added_fields(struct json_stream *stream,
const struct block *block)
const struct block *block)
{
json_add_string(stream, "hash",
type_to_string(tmpctx, struct bitcoin_blkid, &block->blkid));
fmt_bitcoin_blkid(tmpctx, &block->blkid));
json_add_u32(stream, "height", block->height);
}

View file

@ -68,8 +68,8 @@ static void hsm_sign_b12(struct lightningd *ld,
sighash_from_merkle(messagename, fieldname, merkle, &sighash);
if (!check_schnorr_sig(&sighash, &key->pubkey, sig))
fatal("HSM gave bad signature %s for pubkey %s",
type_to_string(tmpctx, struct bip340sig, sig),
type_to_string(tmpctx, struct pubkey, (struct pubkey *)key));
fmt_bip340sig(tmpctx, sig),
fmt_pubkey(tmpctx, key));
}
static struct command_result *json_createoffer(struct command *cmd,

View file

@ -174,12 +174,8 @@ static enum watch_result onchain_tx_watched(struct lightningd *ld,
bitcoin_txid(tx, &txid2);
if (!bitcoin_txid_eq(txid, &txid2)) {
channel_internal_error(channel, "Txid for %s is not %s",
type_to_string(tmpctx,
struct bitcoin_tx,
tx),
type_to_string(tmpctx,
struct bitcoin_txid,
txid));
fmt_bitcoin_tx(tmpctx, tx),
fmt_bitcoin_txid(tmpctx, txid));
return DELETE_WATCH;
}
}
@ -276,10 +272,10 @@ static void handle_onchain_log_coin_move(struct channel *channel, const u8 *msg)
/* Any 'ignored' payments get registed to the wallet */
if (!mvt->account_name)
mvt->account_name = type_to_string(mvt, struct channel_id,
mvt->account_name = fmt_channel_id(mvt,
&channel->cid);
else
mvt->originating_acct = type_to_string(mvt, struct channel_id,
mvt->originating_acct = fmt_channel_id(mvt,
&channel->cid);
notify_chain_mvt(channel->peer->ld, mvt);
tal_free(mvt);
@ -300,7 +296,7 @@ static void handle_onchain_unwatch_tx(struct channel *channel, const u8 *msg)
onchain_tx_watched, channel);
if (!txw)
log_unusual(channel->log, "Can't unwatch txid %s",
type_to_string(tmpctx, struct bitcoin_txid, &txid));
fmt_bitcoin_txid(tmpctx, &txid));
tal_free(txw);
}
@ -412,7 +408,7 @@ static void onchain_add_utxo(struct channel *channel, const u8 *msg)
outpointfilter_add(channel->peer->ld->wallet->owned_outpoints,
&outpoint);
log_debug(channel->log, "adding utxo to watch %s, csv %u",
type_to_string(tmpctx, struct bitcoin_outpoint, &outpoint),
fmt_bitcoin_outpoint(tmpctx, &outpoint),
csv_lock);
wallet_add_onchaind_utxo(channel->peer->ld->wallet,
@ -423,7 +419,7 @@ static void onchain_add_utxo(struct channel *channel, const u8 *msg)
mvt = new_coin_wallet_deposit(msg, &outpoint, blockheight,
amount, DEPOSIT);
mvt->originating_acct = type_to_string(mvt, struct channel_id,
mvt->originating_acct = fmt_channel_id(mvt,
&channel->cid);
notify_chain_mvt(channel->peer->ld, mvt);
@ -715,9 +711,8 @@ static struct bitcoin_tx *onchaind_tx_unsigned(const tal_t *ctx,
block_target,
block_target - get_block_height(ld->topology),
feerate,
type_to_string(tmpctx, struct amount_sat, fee),
type_to_string(tmpctx, struct amount_sat,
&info->out_sats));
fmt_amount_sat(tmpctx, *fee),
fmt_amount_sat(tmpctx, info->out_sats));
/* If we can afford fee and it's not dust, we're done */
if (amount_sat_sub(&amt, info->out_sats, *fee)
@ -734,7 +729,7 @@ static struct bitcoin_tx *onchaind_tx_unsigned(const tal_t *ctx,
*fee = AMOUNT_SAT(0);
log_broken(channel->log, "TX can't afford minimal feerate"
"; setting output to %s",
type_to_string(tmpctx, struct amount_sat, &amt));
fmt_amount_sat(tmpctx, amt));
break;
}
}
@ -747,7 +742,7 @@ static struct bitcoin_tx *onchaind_tx_unsigned(const tal_t *ctx,
log_unusual(channel->log,
"Lowballing feerate for %s sats from %u to %u (deadline %u->%"PRIu64"):"
" won't count on it being spent!",
type_to_string(tmpctx, struct amount_sat, &info->out_sats),
fmt_amount_sat(tmpctx, info->out_sats),
feerate_for_target(ld->topology, info->deadline_block),
feerate_for_target(ld->topology, block_target),
info->deadline_block, block_target);
@ -758,7 +753,7 @@ static struct bitcoin_tx *onchaind_tx_unsigned(const tal_t *ctx,
if (block_target != info->deadline_block)
log_debug(channel->log, "Had to adjust deadline from %u to %"PRIu64" for %s",
info->deadline_block, block_target,
type_to_string(tmpctx, struct amount_sat, &info->out_sats));
fmt_amount_sat(tmpctx, info->out_sats));
bitcoin_tx_output_set_amount(tx, 0, amt);
bitcoin_tx_finalize(tx);
@ -836,15 +831,15 @@ static bool consider_onchain_rebroadcast(struct channel *channel,
amount_sat_less_eq(newfee, info->fee) ? LOG_DBG : LOG_INFORM,
NULL, false,
"RBF onchain txid %s (fee %s) with txid %s (fee %s)",
type_to_string(tmpctx, struct bitcoin_txid, &oldtxid),
fmt_bitcoin_txid(tmpctx, &oldtxid),
fmt_amount_sat(tmpctx, info->fee),
type_to_string(tmpctx, struct bitcoin_txid, &newtxid),
fmt_bitcoin_txid(tmpctx, &newtxid),
fmt_amount_sat(tmpctx, newfee));
log_debug(channel->log,
"RBF %s->%s",
type_to_string(tmpctx, struct bitcoin_tx, *tx),
type_to_string(tmpctx, struct bitcoin_tx, newtx));
fmt_bitcoin_tx(tmpctx, *tx),
fmt_bitcoin_tx(tmpctx, newtx));
/* FIXME: This is ugly, but we want the same parent as old tx. */
tal_steal(tal_parent(*tx), newtx);
@ -957,7 +952,7 @@ static bool consider_onchain_htlc_tx_rebroadcast(struct channel *channel,
if (!psbt_finalize(psbt))
fatal("Non-final PSBT from hsm: %s",
type_to_string(tmpctx, struct wally_psbt, psbt));
fmt_wally_psbt(tmpctx, psbt));
newtx = tal(tal_parent(*tx), struct bitcoin_tx);
newtx->chainparams = chainparams;
@ -976,9 +971,9 @@ static bool consider_onchain_htlc_tx_rebroadcast(struct channel *channel,
amount_sat_less_eq(newfee, oldfee) ? LOG_DBG : LOG_INFORM,
NULL, false,
"RBF HTLC txid %s (fee %s) with txid %s (fee %s)",
type_to_string(tmpctx, struct bitcoin_txid, &oldtxid),
fmt_bitcoin_txid(tmpctx, &oldtxid),
fmt_amount_sat(tmpctx, oldfee),
type_to_string(tmpctx, struct bitcoin_txid, &newtxid),
fmt_bitcoin_txid(tmpctx, &newtxid),
fmt_amount_sat(tmpctx, newfee));
tal_free(*tx);
@ -1055,7 +1050,7 @@ static void create_onchain_tx(struct channel *channel,
}
log_debug(channel->log, "Broadcast for onchaind tx %s%s",
type_to_string(tmpctx, struct bitcoin_tx, tx),
fmt_bitcoin_tx(tmpctx, tx),
worthwhile ? "" : "(NOT WORTHWHILE, LOWBALL FEE!)");
/* We allow "excessive" fees, as we may be fighting with censors and
@ -1259,7 +1254,7 @@ static void handle_onchaind_spend_htlc_success(struct channel *channel,
info);
log_debug(channel->log, "Broadcast for onchaind tx %s",
type_to_string(tmpctx, struct bitcoin_tx, tx));
fmt_bitcoin_tx(tmpctx, tx));
broadcast_tx(channel, channel->peer->ld->topology,
channel, take(tx), NULL, false,
info->minblock, NULL,
@ -1341,7 +1336,7 @@ static void handle_onchaind_spend_htlc_timeout(struct channel *channel,
info);
log_debug(channel->log, "Broadcast for onchaind tx %s",
type_to_string(tmpctx, struct bitcoin_tx, tx));
fmt_bitcoin_tx(tmpctx, tx));
broadcast_tx(channel, channel->peer->ld->topology,
channel, take(tx), NULL, false,
info->minblock, NULL,

View file

@ -293,15 +293,14 @@ static struct command_result *json_blindedpath(struct command *cmd,
/* Final id should be us! */
if (!pubkey_from_node_id(&me, &cmd->ld->id))
fatal("My id %s is invalid?",
type_to_string(tmpctx, struct node_id, &cmd->ld->id));
fmt_node_id(tmpctx, &cmd->ld->id));
path->first_node_id = ids[0];
if (!pubkey_eq(&ids[nhops-1], &me))
return command_fail(cmd, LIGHTNINGD,
"Final of ids must be this node (%s), not %s",
type_to_string(tmpctx, struct pubkey, &me),
type_to_string(tmpctx, struct pubkey,
&ids[nhops-1]));
fmt_pubkey(tmpctx, &me),
fmt_pubkey(tmpctx, &ids[nhops-1]));
randombytes_buf(&first_blinding, sizeof(first_blinding));
if (!pubkey_from_privkey(&first_blinding, &path->blinding))

View file

@ -132,10 +132,8 @@ wallet_commit_channel(struct lightningd *ld,
if (uc->fc) {
if (!amount_sat_sub_msat(&our_msat, funding_sats, push)) {
log_broken(uc->log, "push %s exceeds funding %s",
type_to_string(tmpctx, struct amount_msat,
&push),
type_to_string(tmpctx, struct amount_sat,
&funding_sats));
fmt_amount_msat(tmpctx, push),
fmt_amount_sat(tmpctx, funding_sats));
return NULL;
}
local_funding = funding_sats;
@ -307,7 +305,7 @@ static void funding_success(struct channel *channel)
response = json_stream_success(cmd);
json_add_string(response, "channel_id",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
&channel->cid));
json_add_bool(response, "commitments_secured", true);
was_pending(command_success(cmd, response));
@ -424,7 +422,7 @@ static void opening_funder_finished(struct subd *openingd, const u8 *resp,
peer_fd = new_peer_fd_arr(resp, fds);
log_debug(ld->log,
"%s", type_to_string(tmpctx, struct pubkey,
"%s", fmt_pubkey(tmpctx,
&channel_info.remote_per_commit));
/* Saved with channel to disk */
@ -551,7 +549,7 @@ static void opening_fundee_finished(struct subd *openingd,
}
log_debug(channel->log, "Watching funding tx %s",
type_to_string(reply, struct bitcoin_txid,
fmt_bitcoin_txid(reply,
&channel->funding.txid));
channel_watch_funding(ld, channel);
@ -819,8 +817,7 @@ openchannel_hook_deserialize(struct openchannel_hook_payload *payload,
log_debug(openingd->ld->log,
"Setting reserve=%s for this channel as requested by "
"the openchannel hook",
type_to_string(tmpctx, struct amount_sat,
payload->uc->reserve));
fmt_amount_sat(tmpctx, *payload->uc->reserve));
}
return true;
@ -1061,8 +1058,7 @@ static struct command_result *json_fundchannel_complete(struct command *cmd,
" should be %s",
funding_psbt->outputs
[*funding_txout_num].amount,
type_to_string(tmpctx, struct amount_sat,
&fc->funding_sats));
fmt_amount_sat(tmpctx, fc->funding_sats));
funding_txid = tal(cmd, struct bitcoin_txid);
psbt_txid(NULL, funding_psbt, funding_txid, NULL);
@ -1190,8 +1186,8 @@ static struct command_result *json_fundchannel_start(struct command *cmd,
return command_fail(cmd, FUND_CANNOT_AFFORD,
"Requested to push_msat of %s is greater than "
"available funding amount %s",
type_to_string(tmpctx, struct amount_msat, push_msat),
type_to_string(tmpctx, struct amount_sat, amount));
fmt_amount_msat(tmpctx, *push_msat),
fmt_amount_sat(tmpctx, *amount));
fc->funding_sats = *amount;
if (!feerate_non_anchor) {
@ -1279,8 +1275,8 @@ static struct command_result *json_fundchannel_start(struct command *cmd,
&& amount_sat_greater(*amount, chainparams->max_funding))
return command_fail(cmd, FUND_MAX_EXCEEDED,
"Amount exceeded %s",
type_to_string(tmpctx, struct amount_sat,
&chainparams->max_funding));
fmt_amount_sat(tmpctx,
chainparams->max_funding));
if (command_check_only(cmd))
return command_check_done(cmd);
@ -1290,7 +1286,7 @@ static struct command_result *json_fundchannel_start(struct command *cmd,
if (!*announce_channel) {
fc->channel_flags &= ~CHANNEL_FLAGS_ANNOUNCE_CHANNEL;
log_info(peer->ld->log, "Will open private channel with node %s",
type_to_string(fc, struct node_id, id));
fmt_node_id(fc, id));
}
peer->uncommitted_channel->fc = tal_steal(peer->uncommitted_channel, fc);
@ -1397,7 +1393,7 @@ static struct channel *stub_chan(struct command *cmd,
if (peer) {
if (find_channel_by_id(peer, &cid)) {
log_debug(cmd->ld->log, "channel %s already exists!",
type_to_string(tmpctx, struct channel_id, &cid));
fmt_channel_id(tmpctx, &cid));
return NULL;
}
} else {
@ -1423,10 +1419,8 @@ static struct channel *stub_chan(struct command *cmd,
,sig);
if (!pubkey_from_der(tal_hexdata(cmd,
type_to_string(tmpctx,
struct node_id,
&nodeid),
66),
fmt_node_id(tmpctx, &nodeid),
66),
33,
&pk))
{

View file

@ -405,7 +405,7 @@ static char *opt_add_addr_withtype(const char *arg,
if (wireaddr_internal_eq(&ld->proposed_wireaddr[i], &wi))
return tal_fmt(tmpctx, "Duplicate %s address %s",
ala & ADDR_ANNOUNCE ? "announce" : "listen",
type_to_string(tmpctx, struct wireaddr_internal, &wi));
fmt_wireaddr_internal(tmpctx, &wi));
}
tal_arr_expand(&ld->proposed_listen_announce, ala);

View file

@ -524,8 +524,7 @@ void payment_failed(struct lightningd *ld, const struct htlc_out *hout,
log_unusual(hout->key.channel->log,
"No payment for %s:"
" was this an old database?",
type_to_string(tmpctx, struct sha256,
&hout->payment_hash));
fmt_sha256(tmpctx, &hout->payment_hash));
return;
}
#else
@ -645,8 +644,7 @@ static struct command_result *wait_payment(struct lightningd *ld,
"Never attempted payment part %"PRIu64
" for '%s'",
partid,
type_to_string(tmpctx, struct sha256,
payment_hash));
fmt_sha256(tmpctx, payment_hash));
}
log_debug(cmd->ld->log, "Payment part %"PRIu64"/%"PRIu64"/%"PRIu64" status %u",
@ -757,14 +755,12 @@ static struct command_result *check_invoice_request_usage(struct command *cmd,
NULL, &status))
return command_fail(cmd, PAY_INVOICE_REQUEST_INVALID,
"Unknown invoice_request %s",
type_to_string(tmpctx, struct sha256,
local_invreq_id));
fmt_sha256(tmpctx, local_invreq_id));
if (!offer_status_active(status))
return command_fail(cmd, PAY_INVOICE_REQUEST_INVALID,
"Inactive invoice_request %s",
type_to_string(tmpctx, struct sha256,
local_invreq_id));
fmt_sha256(tmpctx, local_invreq_id));
if (!offer_status_single(status))
return NULL;
@ -782,16 +778,14 @@ static struct command_result *check_invoice_request_usage(struct command *cmd,
return command_fail(cmd, PAY_INVOICE_REQUEST_INVALID,
"Single-use invoice_request already paid"
" with %s",
type_to_string(tmpctx, struct sha256,
&payment
->payment_hash));
fmt_sha256(tmpctx,
&payment->payment_hash));
case PAYMENT_PENDING:
return command_fail(cmd, PAY_INVOICE_REQUEST_INVALID,
"Single-use invoice_request already"
" in progress with %s",
type_to_string(tmpctx, struct sha256,
&payment
->payment_hash));
fmt_sha256(tmpctx,
&payment->payment_hash));
case PAYMENT_FAILED:
break;
}
@ -839,7 +833,7 @@ find_channel_for_htlc_add(struct lightningd *ld,
log_debug(ld->log, "No channel found for selector %s (%s)",
fmt_short_channel_id(tmpctx, *scid_or_alias),
type_to_string(tmpctx, struct amount_msat, amount));
fmt_amount_msat(tmpctx, *amount));
return NULL;
found:
@ -847,9 +841,9 @@ found:
log_debug(
ld->log, "Selected channel %s (%s) for selector %s (%s)",
fmt_short_channel_id(tmpctx, *scid),
type_to_string(tmpctx, struct amount_msat, &channel->our_msat),
fmt_amount_msat(tmpctx, channel->our_msat),
fmt_short_channel_id(tmpctx, *scid_or_alias),
type_to_string(tmpctx, struct amount_msat, amount));
fmt_amount_msat(tmpctx, *amount));
return channel;
}
@ -880,8 +874,7 @@ static struct command_result *check_progress(struct lightningd *ld,
payment = payment_get_details(tmpctx, stmt);
log_debug(ld->log, "Payment: %s %s",
type_to_string(tmpctx, struct amount_msat,
&payment->msatoshi),
fmt_amount_msat(tmpctx, payment->msatoshi),
payment->status == PAYMENT_COMPLETE ? "COMPLETE"
: payment->status == PAYMENT_PENDING ? "PENDING"
: "FAILED");
@ -899,20 +892,18 @@ static struct command_result *check_progress(struct lightningd *ld,
return command_fail(cmd, PAY_RHASH_ALREADY_USED,
"Already succeeded "
"with amount %s (not %s)",
type_to_string(tmpctx,
struct amount_msat,
&payment->msatoshi),
type_to_string(tmpctx,
struct amount_msat, &msat));
fmt_amount_msat(tmpctx,
payment->msatoshi),
fmt_amount_msat(tmpctx,
msat));
}
if (payment->destination && destination
&& !node_id_eq(payment->destination,
destination)) {
return command_fail(cmd, PAY_RHASH_ALREADY_USED,
"Already succeeded to %s",
type_to_string(tmpctx,
struct node_id,
payment->destination));
fmt_node_id(tmpctx,
payment->destination));
}
return sendpay_success(cmd, payment);
@ -944,19 +935,17 @@ static struct command_result *check_progress(struct lightningd *ld,
return command_fail(cmd, PAY_RHASH_ALREADY_USED,
"Already pending "
"with amount %s (not %s)",
type_to_string(tmpctx,
struct amount_msat,
&payment->msatoshi),
type_to_string(tmpctx,
struct amount_msat, &msat));
fmt_amount_msat(tmpctx,
payment->msatoshi),
fmt_amount_msat(tmpctx,
msat));
}
if (payment->destination && destination
&& !node_id_eq(payment->destination,
destination)) {
return command_fail(cmd, PAY_RHASH_ALREADY_USED,
"Already pending to %s",
type_to_string(tmpctx,
struct node_id,
fmt_node_id(tmpctx,
payment->destination));
}
return json_sendpay_in_progress(cmd, payment);
@ -968,12 +957,10 @@ static struct command_result *check_progress(struct lightningd *ld,
tal_free(stmt);
return command_fail(cmd, JSONRPC2_INVALID_PARAMS,
"msatoshi was previously %s, now %s",
type_to_string(tmpctx,
struct amount_msat,
&payment->total_msat),
type_to_string(tmpctx,
struct amount_msat,
&total_msat));
fmt_amount_msat(tmpctx,
payment->total_msat),
fmt_amount_msat(tmpctx,
total_msat));
}
if (!amount_msat_add(&msat_already_pending,
@ -983,12 +970,10 @@ static struct command_result *check_progress(struct lightningd *ld,
return command_fail(cmd, LIGHTNINGD,
"Internal amount overflow!"
" %s + %s",
type_to_string(tmpctx,
struct amount_msat,
&msat_already_pending),
type_to_string(tmpctx,
struct amount_msat,
&payment->msatoshi));
fmt_amount_msat(tmpctx,
msat_already_pending),
fmt_amount_msat(tmpctx,
payment->msatoshi));
}
break;
@ -1009,7 +994,7 @@ static struct command_result *check_progress(struct lightningd *ld,
"groupid=%" PRIu64 ", partid=%" PRIu64
". Either change the partid, or wait for the "
"payment to complete and start a new group.",
type_to_string(tmpctx, struct sha256, rhash), group,
fmt_sha256(tmpctx, rhash), group,
partid);
}
}
@ -1030,10 +1015,9 @@ static struct command_result *check_progress(struct lightningd *ld,
&& amount_msat_greater_eq(msat_already_pending, total_msat)) {
return command_fail(cmd, PAY_IN_PROGRESS,
"Already have %s of %s payments in progress",
type_to_string(tmpctx, struct amount_msat,
&msat_already_pending),
type_to_string(tmpctx, struct amount_msat,
&total_msat));
fmt_amount_msat(tmpctx,
msat_already_pending),
fmt_amount_msat(tmpctx, total_msat));
}
return NULL;
@ -1500,7 +1484,7 @@ static struct command_result *self_payment(struct lightningd *ld,
log_info(ld->log, "Self-resolved invoice '%s' with amount %s",
inv->label->s,
type_to_string(tmpctx, struct amount_msat, &msat));
fmt_amount_msat(tmpctx, msat));
notify_invoice_payment(ld, msat, &inv->r, inv->label, NULL);
/* Now resolve the payment */
@ -1574,10 +1558,8 @@ static struct command_result *json_sendpay(struct command *cmd,
"Do not specify msatoshi (%s) without"
" partid: if you do, it must be exactly"
" the final amount (%s)",
type_to_string(tmpctx, struct amount_msat,
msat),
type_to_string(tmpctx, struct amount_msat,
&final_amount));
fmt_amount_msat(tmpctx, *msat),
fmt_amount_msat(tmpctx, final_amount));
/* For MPP, the total we send must *exactly* equal the amount
* we promise to send (msatoshi). So no single payment can be
@ -1587,12 +1569,8 @@ static struct command_result *json_sendpay(struct command *cmd,
return command_fail(cmd, JSONRPC2_INVALID_PARAMS,
"Final amount %s is greater than"
" %s, despite MPP",
type_to_string(tmpctx,
struct amount_msat,
&final_amount),
type_to_string(tmpctx,
struct amount_msat,
msat));
fmt_amount_msat(tmpctx, final_amount),
fmt_amount_msat(tmpctx, *msat));
}
if (*partid && !payment_secret)
@ -1677,7 +1655,7 @@ static u64 sendpay_index_inc(struct lightningd *ld,
"=partid", tal_fmt(tmpctx, "%"PRIu64, partid),
"=groupid", tal_fmt(tmpctx, "%"PRIu64, groupid),
"payment_hash",
type_to_string(tmpctx, struct sha256, payment_hash),
fmt_sha256(tmpctx, payment_hash),
NULL);
}
@ -1879,7 +1857,7 @@ static struct command_result *json_delpay(struct command *cmd,
stmt = payments_by_hash(cmd->ld->wallet, payment_hash);
if (!stmt)
return command_fail(cmd, PAY_NO_SUCH_PAYMENT, "Unknown payment with payment_hash: %s",
type_to_string(tmpctx, struct sha256, payment_hash));
fmt_sha256(tmpctx, payment_hash));
payments = tal_arr(cmd, const struct wallet_payment *, 0);
for (; stmt; stmt = payments_next(cmd->ld->wallet, stmt)) {
@ -1899,7 +1877,7 @@ static struct command_result *json_delpay(struct command *cmd,
if (tal_count(payments) == 0) {
if (found_status)
return command_fail(cmd, PAY_NO_SUCH_PAYMENT, "Payment with hash %s has %s status but it different from the one provided %s",
type_to_string(tmpctx, struct sha256, payment_hash),
fmt_sha256(tmpctx, payment_hash),
payment_status_to_string(*found_status),
payment_status_to_string(*status));

View file

@ -344,7 +344,7 @@ static enum watch_result closed_inflight_depth_cb(struct lightningd *ld,
channel_fail_permanent(inflight->channel,
REASON_UNKNOWN,
"Inflight tx %s confirmed after mutual close",
type_to_string(tmpctx, struct bitcoin_txid, txid));
fmt_bitcoin_txid(tmpctx, txid));
return DELETE_WATCH;
}
@ -906,7 +906,7 @@ static void json_add_channel(struct lightningd *ld,
node_id_idx(&ld->id, &channel->peer->id));
json_add_string(response, "channel_id",
type_to_string(tmpctx, struct channel_id, &channel->cid));
fmt_channel_id(tmpctx, &channel->cid));
json_add_txid(response, "funding_txid", &channel->funding.txid);
json_add_num(response, "funding_outnum", channel->funding.n);
@ -1022,10 +1022,8 @@ static void json_add_channel(struct lightningd *ld,
channel->our_funds)) {
log_broken(channel->log,
"Overflow subtracing funding %s, our funds %s",
type_to_string(tmpctx, struct amount_sat,
&channel->funding_sats),
type_to_string(tmpctx, struct amount_sat,
&channel->our_funds));
fmt_amount_sat(tmpctx, channel->funding_sats),
fmt_amount_sat(tmpctx, channel->our_funds));
peer_funded_sats = AMOUNT_SAT(0);
}
@ -1037,8 +1035,7 @@ static void json_add_channel(struct lightningd *ld,
log_broken(channel->log,
"Can't convert channel->push %s to sats"
" (lease fees?)",
type_to_string(tmpctx, struct amount_msat,
&channel->push));
fmt_amount_msat(tmpctx, channel->push));
funds = AMOUNT_SAT(0);
}
@ -1093,8 +1090,7 @@ static void json_add_channel(struct lightningd *ld,
if (!amount_sat_to_msat(&funding_msat, channel->funding_sats)) {
log_broken(channel->log,
"Overflow converting funding %s",
type_to_string(tmpctx, struct amount_sat,
&channel->funding_sats));
fmt_amount_sat(tmpctx, channel->funding_sats));
funding_msat = AMOUNT_MSAT(0);
}
json_add_amount_msat(response, "to_us_msat", channel->our_msat);
@ -1235,11 +1231,11 @@ peer_connected_serialize(struct peer_connected_hook_payload *payload,
json_add_string(stream, "direction", payload->incoming ? "in" : "out");
json_add_string(
stream, "addr",
type_to_string(stream, struct wireaddr_internal, &payload->addr));
fmt_wireaddr_internal(stream, &payload->addr));
if (payload->remote_addr)
json_add_string(
stream, "remote_addr",
type_to_string(stream, struct wireaddr, payload->remote_addr));
fmt_wireaddr(stream, payload->remote_addr));
/* Since this is start of hook, peer is always in table! */
json_add_hex_talarr(stream, "features",
peer_by_id(payload->ld, &payload->peer_id)
@ -1536,7 +1532,7 @@ static const struct wireaddr *best_remote_addr(const tal_t *ctx,
daddr.addr = *peer->remote_addr;
daddr.addr.port = ld->config.ip_discovery_port;
log_debug(ld->log, "best_remote_addr: peer %s gave addr %s (%s)",
type_to_string(tmpctx, struct node_id, &peer->id),
fmt_node_id(tmpctx, &peer->id),
fmt_wireaddr(tmpctx, &daddr.addr),
daddr.preferred ? "preferred" : "no chan");
tal_arr_expand(&daddrs, daddr);
@ -1884,7 +1880,7 @@ void peer_spoke(struct lightningd *ld, const u8 *msg)
/* Weird message? Log and reply with error. */
log_peer_unusual(ld->log, &peer->id,
"Unknown channel %s for %s",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
&channel_id),
peer_wire_name(msgtype));
error = towire_errorfmt(tmpctx, &channel_id,
@ -1991,10 +1987,9 @@ void update_channel_from_inflight(struct lightningd *ld,
" an invalid satoshi amount wrapping,"
" channel: %s, initial funds: %s, splice"
" banace change: %s",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
&channel->cid),
type_to_string(tmpctx, struct amount_sat,
&channel->our_funds),
fmt_amount_sat(tmpctx, channel->our_funds),
inflight->funding->splice_amnt);
}
@ -2042,7 +2037,7 @@ static enum watch_result funding_depth_cb(struct lightningd *ld,
channel->depth = depth;
log_debug(channel->log, "Funding tx %s depth %u of %u",
type_to_string(tmpctx, struct bitcoin_txid, txid),
fmt_bitcoin_txid(tmpctx, txid),
depth, channel->minimum_depth);
/* Reorged out? */
@ -2062,7 +2057,7 @@ static enum watch_result funding_depth_cb(struct lightningd *ld,
case CHANNELD_AWAITING_LOCKIN:
/* That's not entirely unexpected in early states */
log_debug(channel->log, "Funding tx %s reorganized out!",
type_to_string(tmpctx, struct bitcoin_txid, txid));
fmt_bitcoin_txid(tmpctx, txid));
channel->scid = tal_free(channel->scid);
return KEEP_WATCHING;
@ -2076,7 +2071,7 @@ static enum watch_result funding_depth_cb(struct lightningd *ld,
str = tal_fmt(tmpctx,
"Funding tx %s reorganized out, but %s...",
type_to_string(tmpctx, struct bitcoin_txid, txid),
fmt_bitcoin_txid(tmpctx, txid),
channel->opener == LOCAL ? "we opened it" : "zeroconf anyway");
/* Log even if not connected! */
@ -2122,7 +2117,7 @@ static enum watch_result funding_depth_cb(struct lightningd *ld,
/* If not awaiting lockin/announce, it doesn't care any more */
log_debug(channel->log,
"Funding tx %s confirmed, but peer in state %s",
type_to_string(tmpctx, struct bitcoin_txid, txid),
fmt_bitcoin_txid(tmpctx, txid),
channel_state_name(channel));
return DELETE_WATCH;
@ -2192,7 +2187,7 @@ void channel_watch_wrong_funding(struct lightningd *ld, struct channel *channel)
void channel_watch_funding(struct lightningd *ld, struct channel *channel)
{
log_debug(channel->log, "Watching for funding txid: %s",
type_to_string(tmpctx, struct bitcoin_txid, &channel->funding.txid));
fmt_bitcoin_txid(tmpctx, &channel->funding.txid));
watch_txid(channel, ld->topology,
&channel->funding.txid, funding_depth_cb, channel);
@ -2223,9 +2218,7 @@ static void json_add_peer(struct lightningd *ld,
if (p->connected == PEER_CONNECTED) {
json_array_start(response, "netaddr");
json_add_string(response, NULL,
type_to_string(tmpctx,
struct wireaddr_internal,
&p->addr));
fmt_wireaddr_internal(tmpctx, &p->addr));
json_array_end(response);
/* If peer reports our IP remote_addr, add that here */
if (p->remote_addr)
@ -3059,7 +3052,7 @@ static void set_channel_config(struct command *cmd, struct channel *channel,
json_object_start(response, NULL);
json_add_node_id(response, "peer_id", &channel->peer->id);
json_add_string(response, "channel_id",
type_to_string(tmpctx, struct channel_id, &channel->cid));
fmt_channel_id(tmpctx, &channel->cid));
if (channel->scid)
json_add_short_channel_id(response, "short_channel_id", channel->scid);

View file

@ -289,8 +289,7 @@ static bool check_fwd_amount(struct htlc_in *hin,
if (!amount_msat_fee(&fee, amt_to_forward,
feerate_base, feerate_ppm)) {
log_broken(hin->key.channel->log, "Fee overflow forwarding %s!",
type_to_string(tmpctx, struct amount_msat,
&amt_to_forward));
fmt_amount_msat(tmpctx, amt_to_forward));
return false;
}
@ -301,9 +300,9 @@ static bool check_fwd_amount(struct htlc_in *hin,
log_debug(hin->key.channel->log, "HTLC %"PRIu64" incorrect amount:"
" %s in, %s out, fee reqd %s",
hin->key.id,
type_to_string(tmpctx, struct amount_msat, &amt_in_htlc),
type_to_string(tmpctx, struct amount_msat, &amt_to_forward),
type_to_string(tmpctx, struct amount_msat, &fee));
fmt_amount_msat(tmpctx, amt_in_htlc),
fmt_amount_msat(tmpctx, amt_to_forward),
fmt_amount_msat(tmpctx, fee));
return false;
}
@ -395,9 +394,8 @@ static void handle_localpay(struct htlc_in *hin,
"HTLC %"PRIu64" final incorrect amount:"
" %s in, %s expected",
hin->key.id,
type_to_string(tmpctx, struct amount_msat, &hin->msat),
type_to_string(tmpctx, struct amount_msat,
&amt_to_forward));
fmt_amount_msat(tmpctx, hin->msat),
fmt_amount_msat(tmpctx, amt_to_forward));
/* BOLT #4:
* 1. type: 19 (`final_incorrect_htlc_amount`)
* 2. data:
@ -892,9 +890,9 @@ htlc_accepted_hook_try_resolve(struct htlc_accepted_hook_payload *request,
request->channel->log,
"Plugin returned a preimage (sha256(%s) = %s) that doesn't "
"match the HTLC hash (%s) it tries to resolve.",
type_to_string(tmpctx, struct preimage, payment_preimage),
type_to_string(tmpctx, struct sha256, &payment_hash),
type_to_string(tmpctx, struct sha256, &hin->payment_hash));
fmt_preimage(tmpctx, payment_preimage),
fmt_sha256(tmpctx, &payment_hash),
fmt_sha256(tmpctx, &hin->payment_hash));
unknown_details = tal_arr(NULL, u8, 0);
towire_u16(&unknown_details, 0x400f);
@ -1217,16 +1215,14 @@ static struct channel_id *calc_forwarding_channel(struct lightningd *ld,
if (p->forward_channel) {
log_debug(hp->channel->log,
"Looking up channel by scid=%s to forward htlc_id=%" PRIu64,
type_to_string(tmpctx, struct short_channel_id,
p->forward_channel),
fmt_short_channel_id(tmpctx, *p->forward_channel),
hp->hin->key.id);
c = any_channel_by_scid(ld, p->forward_channel, false);
if (!c) {
log_unusual(hp->channel->log, "No peer channel with scid=%s",
type_to_string(tmpctx, struct short_channel_id,
p->forward_channel));
fmt_short_channel_id(tmpctx, *p->forward_channel));
return NULL;
}
@ -1243,12 +1239,12 @@ static struct channel_id *calc_forwarding_channel(struct lightningd *ld,
peer = peer_by_id(ld, &id);
log_debug(hp->channel->log, "Looking up peer by node_id=%s",
type_to_string(tmpctx, struct node_id, &id));
fmt_node_id(tmpctx, &id));
if (!peer) {
log_unusual(
hp->channel->log, "No peer with node_id=%s",
type_to_string(tmpctx, struct node_id, &id));
fmt_node_id(tmpctx, &id));
return NULL;
}
c = NULL;
@ -1260,26 +1256,25 @@ static struct channel_id *calc_forwarding_channel(struct lightningd *ld,
return NULL;
log_debug(hp->channel->log,
"Chose channel %s for peer %s",
type_to_string(tmpctx, struct short_channel_id,
channel_scid_or_local_alias(best)),
type_to_string(tmpctx, struct node_id,
&peer->id));
fmt_short_channel_id(tmpctx,
*channel_scid_or_local_alias(best)),
fmt_node_id(tmpctx, &peer->id));
} else if (best != c) {
log_debug(hp->channel->log,
"Chose a better channel than %s: %s",
type_to_string(tmpctx, struct short_channel_id,
p->forward_channel),
type_to_string(tmpctx, struct short_channel_id,
channel_scid_or_local_alias(best)));
fmt_short_channel_id(tmpctx,
*p->forward_channel),
fmt_short_channel_id(tmpctx,
*channel_scid_or_local_alias(best)));
}
log_debug(hp->channel->log,
"Decided to forward htlc_id=%" PRIu64
" over channel with scid=%s with peer %s",
hp->hin->key.id,
type_to_string(tmpctx, struct short_channel_id,
channel_scid_or_local_alias(best)),
type_to_string(tmpctx, struct node_id, &best->peer->id));
fmt_short_channel_id(tmpctx,
*channel_scid_or_local_alias(best)),
fmt_node_id(tmpctx, &best->peer->id));
return tal_dup(hp, struct channel_id, &best->cid);
}
@ -1390,7 +1385,7 @@ static bool peer_accepted_htlc(const tal_t *ctx,
"Rejecting their htlc %"PRIu64
" since onion is unprocessable %s ss=%s",
id, onion_wire_name(*badonion),
type_to_string(tmpctx, struct secret, hin->shared_secret));
fmt_secret(tmpctx, hin->shared_secret));
goto fail;
}
@ -1644,7 +1639,7 @@ static void check_already_failed(const struct channel *channel, struct htlc_out
hout->key.id,
hout->failonion ? tal_hex(tmpctx, hout->failonion->contents) : "(null)",
hout->failmsg ? tal_hex(tmpctx, hout->failmsg) : "(null)",
hout->preimage ? type_to_string(tmpctx, struct preimage, hout->preimage) : "(null)");
hout->preimage ? fmt_preimage(tmpctx, hout->preimage) : "(null)");
if (hout->preimage) {
/* Log on both ours and theirs! */
@ -1819,17 +1814,14 @@ static void remove_htlc_in(struct channel *channel, struct htlc_in *hin)
hin->msat)) {
channel_internal_error(channel,
"Overflow our_msat %s + HTLC %s",
type_to_string(tmpctx,
struct amount_msat,
&channel->our_msat),
type_to_string(tmpctx,
struct amount_msat,
&hin->msat));
fmt_amount_msat(tmpctx,
channel->our_msat),
fmt_amount_msat(tmpctx,
hin->msat));
}
log_debug(channel->log, "Balance %s -> %s",
type_to_string(tmpctx, struct amount_msat, &oldamt),
type_to_string(tmpctx, struct amount_msat,
&channel->our_msat));
fmt_amount_msat(tmpctx, oldamt),
fmt_amount_msat(tmpctx, channel->our_msat));
if (amount_msat_greater(channel->our_msat,
channel->msat_to_us_max))
channel->msat_to_us_max = channel->our_msat;
@ -1872,18 +1864,15 @@ static void remove_htlc_out(struct channel *channel, struct htlc_out *hout)
hout->msat)) {
channel_internal_error(channel,
"Underflow our_msat %s - HTLC %s",
type_to_string(tmpctx,
struct amount_msat,
&channel->our_msat),
type_to_string(tmpctx,
struct amount_msat,
&hout->msat));
fmt_amount_msat(tmpctx,
channel->our_msat),
fmt_amount_msat(tmpctx,
hout->msat));
}
log_debug(channel->log, "Balance %s -> %s",
type_to_string(tmpctx, struct amount_msat, &oldamt),
type_to_string(tmpctx, struct amount_msat,
&channel->our_msat));
fmt_amount_msat(tmpctx, oldamt),
fmt_amount_msat(tmpctx, channel->our_msat));
if (amount_msat_less(channel->our_msat, channel->msat_to_us_min))
channel->msat_to_us_min = channel->our_msat;
@ -1986,7 +1975,7 @@ static bool valid_commitment_tx(struct channel *channel,
if (tx->wtx->num_outputs == 0) {
channel_internal_error(channel,
"channel_got_commitsig: zero output tx! %s",
type_to_string(tmpctx, struct bitcoin_tx, tx));
fmt_bitcoin_tx(tmpctx, tx));
return false;
}
return true;
@ -2145,12 +2134,9 @@ static bool channel_added_their_htlc(struct channel *channel,
channel_internal_error(channel,
"trying to add HTLC amount %s"
" but minimum is %s",
type_to_string(tmpctx,
struct amount_msat,
&added->amount),
type_to_string(tmpctx,
struct amount_msat,
&channel->our_config.htlc_minimum));
fmt_amount_msat(tmpctx, added->amount),
fmt_amount_msat(tmpctx,
channel->our_config.htlc_minimum));
return false;
}
@ -2523,8 +2509,7 @@ void peer_got_revoke(struct channel *channel, const u8 *msg)
channel_fail_permanent(channel,
REASON_PROTOCOL,
"Bad per_commitment_secret %s for %"PRIu64,
type_to_string(msg, struct secret,
&per_commitment_secret),
fmt_secret(msg, &per_commitment_secret),
revokenum);
return;
}
@ -2890,9 +2875,8 @@ static void fixup_hout(struct lightningd *ld, struct htlc_out *hout)
" to %s"
" is missing a resolution: %s.",
hout->key.id, htlc_state_name(hout->hstate),
type_to_string(tmpctx, struct amount_msat, &hout->msat),
type_to_string(tmpctx, struct node_id,
&hout->key.channel->peer->id),
fmt_amount_msat(tmpctx, hout->msat),
fmt_node_id(tmpctx, &hout->key.channel->peer->id),
fix);
}

View file

@ -97,21 +97,16 @@ routehint_candidates(const tal_t *ctx,
candidate.c = any_channel_by_scid(ld, &r->short_channel_id, true);
if (!candidate.c) {
log_debug(ld->log, "%s: channel not found in peer %s",
type_to_string(tmpctx,
struct short_channel_id,
&r->short_channel_id),
type_to_string(tmpctx,
struct node_id,
&r->pubkey));
fmt_short_channel_id(tmpctx, r->short_channel_id),
fmt_node_id(tmpctx, &r->pubkey));
continue;
}
/* Check channel is in CHANNELD_NORMAL or CHANNELD_AWAITING_SPLICE */
if (!channel_state_can_add_htlc(candidate.c->state)) {
log_debug(ld->log, "%s: abnormal channel",
type_to_string(tmpctx,
struct short_channel_id,
&r->short_channel_id));
fmt_short_channel_id(tmpctx,
r->short_channel_id));
continue;
}
@ -157,17 +152,15 @@ routehint_candidates(const tal_t *ctx,
&& (!candidate.c->alias[REMOTE]
|| !scid_in_arr(hints, candidate.c->alias[REMOTE]))) {
log_debug(ld->log, "scid %s not in hints",
type_to_string(tmpctx,
struct short_channel_id,
&r->short_channel_id));
fmt_short_channel_id(tmpctx,
r->short_channel_id));
continue;
}
/* If they give us a hint, we use even if capacity 0 */
} else if (amount_msat_eq(capacity, AMOUNT_MSAT(0))) {
log_debug(ld->log, "%s: deadend",
type_to_string(tmpctx,
struct short_channel_id,
&r->short_channel_id));
fmt_short_channel_id(tmpctx,
r->short_channel_id));
if (!amount_msat_add(deadend_capacity,
*deadend_capacity,
candidate.capacity))
@ -178,9 +171,8 @@ routehint_candidates(const tal_t *ctx,
/* Is it offline? */
if (candidate.c->owner == NULL) {
log_debug(ld->log, "%s: offline",
type_to_string(tmpctx,
struct short_channel_id,
&r->short_channel_id));
fmt_short_channel_id(tmpctx,
r->short_channel_id));
if (!amount_msat_add(offline_capacity,
*offline_capacity,
candidate.capacity))
@ -196,9 +188,8 @@ routehint_candidates(const tal_t *ctx,
if (channel_has(candidate.c, OPT_SCID_ALIAS)) {
if (!candidate.c->alias[REMOTE]) {
log_debug(ld->log, "%s: no remote alias (yet?)",
type_to_string(tmpctx,
struct short_channel_id,
&r->short_channel_id));
fmt_short_channel_id(tmpctx,
r->short_channel_id));
continue;
}
r->short_channel_id = *candidate.c->alias[REMOTE];
@ -218,9 +209,8 @@ routehint_candidates(const tal_t *ctx,
} else {
/* Haven't got remote alias yet? Can't use ut. */
log_debug(ld->log, "%s: no alias",
type_to_string(tmpctx,
struct short_channel_id,
&r->short_channel_id));
fmt_short_channel_id(tmpctx,
r->short_channel_id));
continue;
}
}
@ -228,35 +218,33 @@ routehint_candidates(const tal_t *ctx,
/* OK, finish it and append to one of the arrays. */
if (is_public) {
log_debug(ld->log, "%s: added to public",
type_to_string(tmpctx,
struct short_channel_id,
&r->short_channel_id));
fmt_short_channel_id(tmpctx,
r->short_channel_id));
candidate.r = tal_steal(candidates, r);
tal_arr_expand(&candidates, candidate);
if (!amount_msat_add(avail_capacity,
*avail_capacity,
candidate.capacity)) {
fatal("Overflow summing pub capacities %s + %s",
type_to_string(tmpctx, struct amount_msat,
avail_capacity),
type_to_string(tmpctx, struct amount_msat,
&candidate.capacity));
fmt_amount_msat(tmpctx,
*avail_capacity),
fmt_amount_msat(tmpctx,
candidate.capacity));
}
} else {
log_debug(ld->log, "%s: added to private",
type_to_string(tmpctx,
struct short_channel_id,
&r->short_channel_id));
fmt_short_channel_id(tmpctx,
r->short_channel_id));
candidate.r = tal_steal(privcandidates, r);
tal_arr_expand(&privcandidates, candidate);
if (!amount_msat_add(private_capacity,
*private_capacity,
candidate.capacity)) {
fatal("Overflow summing priv capacities %s + %s",
type_to_string(tmpctx, struct amount_msat,
private_capacity),
type_to_string(tmpctx, struct amount_msat,
&candidate.capacity));
fmt_amount_msat(tmpctx,
*private_capacity),
fmt_amount_msat(tmpctx,
candidate.capacity));
}
}
}

View file

@ -80,6 +80,9 @@ struct feature_set *feature_set_for_feature(const tal_t *ctx UNNEEDED, int featu
bool feature_set_or(struct feature_set *a UNNEEDED,
const struct feature_set *b TAKES UNNEEDED)
{ fprintf(stderr, "feature_set_or called!\n"); abort(); }
/* Generated stub for fmt_node_id */
char *fmt_node_id(const tal_t *ctx UNNEEDED, const struct node_id *id UNNEEDED)
{ fprintf(stderr, "fmt_node_id called!\n"); abort(); }
/* Generated stub for free_htlcs */
void free_htlcs(struct lightningd *ld UNNEEDED, const struct channel *channel UNNEEDED)
{ fprintf(stderr, "free_htlcs called!\n"); abort(); }

View file

@ -257,6 +257,12 @@ struct plugin *find_plugin_for_command(struct lightningd *ld UNNEEDED,
/* Generated stub for fixup_htlcs_out */
void fixup_htlcs_out(struct lightningd *ld UNNEEDED)
{ fprintf(stderr, "fixup_htlcs_out called!\n"); abort(); }
/* Generated stub for fmt_channel_id */
char *fmt_channel_id(const tal_t *ctx UNNEEDED, const struct channel_id *channel_id UNNEEDED)
{ fprintf(stderr, "fmt_channel_id called!\n"); abort(); }
/* Generated stub for fmt_node_id */
char *fmt_node_id(const tal_t *ctx UNNEEDED, const struct node_id *id UNNEEDED)
{ fprintf(stderr, "fmt_node_id called!\n"); abort(); }
/* Generated stub for force_peer_disconnect */
void force_peer_disconnect(struct lightningd *ld UNNEEDED,
const struct peer *peer UNNEEDED,

View file

@ -210,13 +210,13 @@ static bool txw_fire(struct txwatch *txw,
log_debug(txw->topo->log,
"Got first depth change ->%u for %s",
txw->depth,
type_to_string(tmpctx, struct bitcoin_txid, &txw->txid));
fmt_bitcoin_txid(tmpctx, &txw->txid));
} else {
/* zero depth signals a reorganization */
log_debug(txw->topo->log,
"Got depth change %u->%u for %s%s",
txw->depth, depth,
type_to_string(tmpctx, struct bitcoin_txid, &txw->txid),
fmt_bitcoin_txid(tmpctx, &txw->txid),
depth ? "" : " REORG");
}
txw->depth = depth;
@ -255,9 +255,9 @@ void txowatch_fire(const struct txowatch *txow,
bitcoin_txid(tx, &txid);
log_debug(txow->channel->log,
"Got UTXO spend for %s:%u: %s",
type_to_string(tmpctx, struct bitcoin_txid, &txow->out.txid),
fmt_bitcoin_txid(tmpctx, &txow->out.txid),
txow->out.n,
type_to_string(tmpctx, struct bitcoin_txid, &txid));
fmt_bitcoin_txid(tmpctx, &txid));
r = txow->cb(txow->channel, tx, input_num, block);
switch (r) {

View file

@ -505,8 +505,8 @@ static bool set_htlc_timeout_fee(struct bitcoin_tx *tx,
if (!amount_sat_sub(&amount, amount, fee))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Cannot deduct htlc-timeout fee %s from tx %s",
type_to_string(tmpctx, struct amount_sat, &fee),
type_to_string(tmpctx, struct bitcoin_tx, tx));
fmt_amount_sat(tmpctx, fee),
fmt_bitcoin_tx(tmpctx, tx));
set_amount:
bitcoin_tx_output_set_amount(tx, 0, amount);
@ -535,9 +535,7 @@ static struct amount_sat get_htlc_success_fee(struct tracked_output *out)
if (!amount_sat_to_msat(&htlc_amount, out->sat))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Overflow in get_htlc_success_fee %s",
type_to_string(tmpctx,
struct amount_sat,
&out->sat));
fmt_amount_sat(tmpctx, out->sat));
tx = htlc_success_tx(tmpctx, chainparams,
&out->outpoint,
out->wscript,
@ -568,11 +566,10 @@ static struct amount_sat get_htlc_success_fee(struct tracked_output *out)
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"htlc_success_fee can't be found "
"for tx %s (weight %zu, feerate %u-%u), signature %s, wscript %s",
type_to_string(tmpctx, struct bitcoin_tx, tx),
fmt_bitcoin_tx(tmpctx, tx),
weight,
min_possible_feerate, max_possible_feerate,
type_to_string(tmpctx,
struct bitcoin_signature,
fmt_bitcoin_signature(tmpctx,
out->remote_htlc_sig),
tal_hex(tmpctx, out->wscript));
}
@ -611,7 +608,7 @@ new_tracked_output(struct tracked_output ***outs,
struct tracked_output *out = tal(*outs, struct tracked_output);
status_debug("Tracking output %s: %s/%s",
type_to_string(tmpctx, struct bitcoin_outpoint, outpoint),
fmt_bitcoin_outpoint(tmpctx, outpoint),
tx_type_name(tx_type),
output_type_name(output_type));
@ -637,8 +634,7 @@ new_tracked_output(struct tracked_output ***outs,
static void ignore_output(struct tracked_output *out)
{
status_debug("Ignoring output %s: %s/%s",
type_to_string(tmpctx, struct bitcoin_outpoint,
&out->outpoint),
fmt_bitcoin_outpoint(tmpctx, &out->outpoint),
tx_type_name(out->tx_type),
output_type_name(out->output_type));
@ -797,8 +793,7 @@ static bool resolved_by_proposal(struct tracked_output *out,
tx_type_name(out->tx_type),
output_type_name(out->output_type),
tx_type_name(out->proposal->tx_type),
type_to_string(tmpctx, struct bitcoin_txid,
&out->resolved->txid));
fmt_bitcoin_txid(tmpctx, &out->resolved->txid));
out->resolved->depth = 0;
out->resolved->tx_type = out->proposal->tx_type;
@ -819,7 +814,7 @@ static void resolved_by_other(struct tracked_output *out,
tx_type_name(out->tx_type),
output_type_name(out->output_type),
tx_type_name(tx_type),
type_to_string(tmpctx, struct bitcoin_txid, txid));
fmt_bitcoin_txid(tmpctx, txid));
}
static void unknown_spend(struct tracked_output *out,
@ -833,8 +828,7 @@ static void unknown_spend(struct tracked_output *out,
status_broken("Unknown spend of %s/%s by %s",
tx_type_name(out->tx_type),
output_type_name(out->output_type),
type_to_string(tmpctx, struct bitcoin_txid,
&tx_parts->txid));
fmt_bitcoin_txid(tmpctx, &tx_parts->txid));
}
static u64 unmask_commit_number(const struct tx_parts *tx,
@ -949,9 +943,7 @@ static void billboard_update(struct tracked_output **outs)
"%u outputs unresolved: waiting confirmation that we spent %s (%s) using %s",
num_not_irrevocably_resolved(outs),
output_type_name(best->output_type),
type_to_string(tmpctx,
struct bitcoin_outpoint,
&best->outpoint),
fmt_bitcoin_outpoint(tmpctx, &best->outpoint),
tx_type_name(best->proposal->tx_type));
} else {
peer_billboard(false,
@ -959,9 +951,7 @@ static void billboard_update(struct tracked_output **outs)
num_not_irrevocably_resolved(outs),
best->proposal->depth_required - best->depth,
output_type_name(best->output_type),
type_to_string(tmpctx,
struct bitcoin_outpoint,
&best->outpoint),
fmt_bitcoin_outpoint(tmpctx, &best->outpoint),
tx_type_name(best->proposal->tx_type));
}
return;
@ -1060,8 +1050,7 @@ static void handle_htlc_onchain_fulfill(struct tracked_output *out,
&& preimage_item->witness_len == PUBKEY_CMPR_LEN) {
status_unusual("Our cheat attempt failed, they're "
"taking our htlc out (%s)",
type_to_string(tmpctx, struct amount_sat,
&out->sat));
fmt_amount_sat(tmpctx, out->sat));
return;
}
status_failed(STATUS_FAIL_INTERNAL_ERROR,
@ -1079,9 +1068,8 @@ static void handle_htlc_onchain_fulfill(struct tracked_output *out,
"%s/%s spent with bad preimage %s (ripemd not %s)",
tx_type_name(out->tx_type),
output_type_name(out->output_type),
type_to_string(tmpctx, struct preimage, &preimage),
type_to_string(tmpctx, struct ripemd160,
&out->htlc.ripemd));
fmt_preimage(tmpctx, &preimage),
fmt_ripemd160(tmpctx, &out->htlc.ripemd));
/* we stash the payment_hash into the tracking_output so we
* can pass it along, if needbe, to the coin movement tracker */
@ -1091,7 +1079,7 @@ static void handle_htlc_onchain_fulfill(struct tracked_output *out,
status_debug("%s/%s gave us preimage %s",
tx_type_name(out->tx_type),
output_type_name(out->output_type),
type_to_string(tmpctx, struct preimage, &preimage));
fmt_preimage(tmpctx, &preimage));
wire_sync_write(REQ_FD,
take(towire_onchaind_extracted_preimage(NULL,
&preimage)));
@ -1366,7 +1354,7 @@ static void output_spent(struct tracked_output ***outs,
wally_tx_input_get_txid(tx_parts->inputs[input_num], &txid);
/* Not interesting to us, so unwatch the tx and all its outputs */
status_debug("Notified about tx %s output %u spend, but we don't care",
type_to_string(tmpctx, struct bitcoin_txid, &txid),
fmt_bitcoin_txid(tmpctx, &txid),
tx_parts->inputs[input_num]->index);
unwatch_txid(&tx_parts->txid);
@ -1856,8 +1844,7 @@ static size_t resolve_our_htlc_ourcommit(struct tracked_output *out,
if (!amount_sat_to_msat(&htlc_amount, out->sat))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Overflow in our_htlc output %s",
type_to_string(tmpctx, struct amount_sat,
&out->sat));
fmt_amount_sat(tmpctx, out->sat));
assert(tal_count(matches));
@ -1915,11 +1902,10 @@ static size_t resolve_our_htlc_ourcommit(struct tracked_output *out,
"%s%s",
tal_count(matches),
min_possible_feerate, max_possible_feerate,
type_to_string(tmpctx, struct bitcoin_tx, tx),
type_to_string(tmpctx, struct amount_sat,
&out->sat),
type_to_string(tmpctx, struct bitcoin_signature,
out->remote_htlc_sig),
fmt_bitcoin_tx(tmpctx, tx),
fmt_amount_sat(tmpctx, out->sat),
fmt_bitcoin_signature(tmpctx,
out->remote_htlc_sig),
cltvs, wscripts,
option_anchor_outputs
? " option_anchor_outputs" : "",
@ -2234,18 +2220,12 @@ static void handle_our_unilateral(const struct tx_parts *tx,
" self_htlc_key: %s"
" other_htlc_key: %s",
commit_num,
type_to_string(tmpctx, struct pubkey,
&keyset->self_revocation_key),
type_to_string(tmpctx, struct pubkey,
&keyset->self_delayed_payment_key),
type_to_string(tmpctx, struct pubkey,
&keyset->self_payment_key),
type_to_string(tmpctx, struct pubkey,
&keyset->other_payment_key),
type_to_string(tmpctx, struct pubkey,
&keyset->self_htlc_key),
type_to_string(tmpctx, struct pubkey,
&keyset->other_htlc_key));
fmt_pubkey(tmpctx, &keyset->self_revocation_key),
fmt_pubkey(tmpctx, &keyset->self_delayed_payment_key),
fmt_pubkey(tmpctx, &keyset->self_payment_key),
fmt_pubkey(tmpctx, &keyset->other_payment_key),
fmt_pubkey(tmpctx, &keyset->self_htlc_key),
fmt_pubkey(tmpctx, &keyset->other_htlc_key));
local_wscript = to_self_wscript(tmpctx, to_self_delay[LOCAL],
1, keyset);
@ -2672,8 +2652,8 @@ static void handle_their_cheat(const struct tx_parts *tx,
if (!pubkey_from_secret(remote_per_commitment_secret, k))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Failed derive from per_commitment_secret %s",
type_to_string(tmpctx, struct secret,
remote_per_commitment_secret));
fmt_secret(tmpctx,
remote_per_commitment_secret));
status_debug("Deriving keyset %"PRIu64
": per_commit_point=%s"
@ -2684,20 +2664,20 @@ static void handle_their_cheat(const struct tx_parts *tx,
" self_delayed_basepoint=%s"
" other_revocation_basepoint=%s",
commit_num,
type_to_string(tmpctx, struct pubkey,
remote_per_commitment_point),
type_to_string(tmpctx, struct pubkey,
&basepoints[REMOTE].payment),
type_to_string(tmpctx, struct pubkey,
&basepoints[LOCAL].payment),
type_to_string(tmpctx, struct pubkey,
&basepoints[REMOTE].htlc),
type_to_string(tmpctx, struct pubkey,
&basepoints[LOCAL].htlc),
type_to_string(tmpctx, struct pubkey,
&basepoints[REMOTE].delayed_payment),
type_to_string(tmpctx, struct pubkey,
&basepoints[LOCAL].revocation));
fmt_pubkey(tmpctx,
remote_per_commitment_point),
fmt_pubkey(tmpctx,
&basepoints[REMOTE].payment),
fmt_pubkey(tmpctx,
&basepoints[LOCAL].payment),
fmt_pubkey(tmpctx,
&basepoints[REMOTE].htlc),
fmt_pubkey(tmpctx,
&basepoints[LOCAL].htlc),
fmt_pubkey(tmpctx,
&basepoints[REMOTE].delayed_payment),
fmt_pubkey(tmpctx,
&basepoints[LOCAL].revocation));
/* keyset is const, we need a non-const ptr to set it up */
keyset = ks = tal(tx, struct keyset);
@ -2719,18 +2699,18 @@ static void handle_their_cheat(const struct tx_parts *tx,
" other_htlc_key: %s"
" (static_remotekey = %"PRIu64"/%"PRIu64")",
commit_num,
type_to_string(tmpctx, struct pubkey,
&keyset->self_revocation_key),
type_to_string(tmpctx, struct pubkey,
&keyset->self_delayed_payment_key),
type_to_string(tmpctx, struct pubkey,
&keyset->self_payment_key),
type_to_string(tmpctx, struct pubkey,
&keyset->other_payment_key),
type_to_string(tmpctx, struct pubkey,
&keyset->self_htlc_key),
type_to_string(tmpctx, struct pubkey,
&keyset->other_htlc_key),
fmt_pubkey(tmpctx,
&keyset->self_revocation_key),
fmt_pubkey(tmpctx,
&keyset->self_delayed_payment_key),
fmt_pubkey(tmpctx,
&keyset->self_payment_key),
fmt_pubkey(tmpctx,
&keyset->other_payment_key),
fmt_pubkey(tmpctx,
&keyset->self_htlc_key),
fmt_pubkey(tmpctx,
&keyset->other_htlc_key),
static_remotekey_start[LOCAL],
static_remotekey_start[REMOTE]);
@ -3012,20 +2992,20 @@ static void handle_their_unilateral(const struct tx_parts *tx,
" self_delayed_basepoint=%s"
" other_revocation_basepoint=%s",
commit_num,
type_to_string(tmpctx, struct pubkey,
remote_per_commitment_point),
type_to_string(tmpctx, struct pubkey,
&basepoints[REMOTE].payment),
type_to_string(tmpctx, struct pubkey,
&basepoints[LOCAL].payment),
type_to_string(tmpctx, struct pubkey,
&basepoints[REMOTE].htlc),
type_to_string(tmpctx, struct pubkey,
&basepoints[LOCAL].htlc),
type_to_string(tmpctx, struct pubkey,
&basepoints[REMOTE].delayed_payment),
type_to_string(tmpctx, struct pubkey,
&basepoints[LOCAL].revocation));
fmt_pubkey(tmpctx,
remote_per_commitment_point),
fmt_pubkey(tmpctx,
&basepoints[REMOTE].payment),
fmt_pubkey(tmpctx,
&basepoints[LOCAL].payment),
fmt_pubkey(tmpctx,
&basepoints[REMOTE].htlc),
fmt_pubkey(tmpctx,
&basepoints[LOCAL].htlc),
fmt_pubkey(tmpctx,
&basepoints[REMOTE].delayed_payment),
fmt_pubkey(tmpctx,
&basepoints[LOCAL].revocation));
/* keyset is const, we need a non-const ptr to set it up */
keyset = ks = tal(tx, struct keyset);
@ -3046,18 +3026,18 @@ static void handle_their_unilateral(const struct tx_parts *tx,
" self_htlc_key: %s"
" other_htlc_key: %s",
commit_num,
type_to_string(tmpctx, struct pubkey,
&keyset->self_revocation_key),
type_to_string(tmpctx, struct pubkey,
&keyset->self_delayed_payment_key),
type_to_string(tmpctx, struct pubkey,
&keyset->self_payment_key),
type_to_string(tmpctx, struct pubkey,
&keyset->other_payment_key),
type_to_string(tmpctx, struct pubkey,
&keyset->self_htlc_key),
type_to_string(tmpctx, struct pubkey,
&keyset->other_htlc_key));
fmt_pubkey(tmpctx,
&keyset->self_revocation_key),
fmt_pubkey(tmpctx,
&keyset->self_delayed_payment_key),
fmt_pubkey(tmpctx,
&keyset->self_payment_key),
fmt_pubkey(tmpctx,
&keyset->other_payment_key),
fmt_pubkey(tmpctx,
&keyset->self_htlc_key),
fmt_pubkey(tmpctx,
&keyset->other_htlc_key));
/* Calculate all the HTLC scripts so we can match them */
htlc_scripts = derive_htlc_scripts(htlcs_info->htlcs, REMOTE);
@ -3327,8 +3307,8 @@ static void handle_unknown_commitment(const struct tx_parts *tx,
ks))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Deriving keyset for possible_remote_per_commitment_point %s",
type_to_string(tmpctx, struct pubkey,
possible_remote_per_commitment_point));
fmt_pubkey(tmpctx,
possible_remote_per_commitment_point));
local_scripts[0] = scriptpubkey_p2wpkh(tmpctx,
&ks->other_payment_key);
@ -3518,11 +3498,9 @@ int main(int argc, char *argv[])
tal_count(tx->outputs))));
status_debug("Remote per-commit point: %s",
type_to_string(tmpctx, struct pubkey,
&remote_per_commit_point));
fmt_pubkey(tmpctx, &remote_per_commit_point));
status_debug("Old remote per-commit point: %s",
type_to_string(tmpctx, struct pubkey,
&old_remote_per_commit_point));
fmt_pubkey(tmpctx, &old_remote_per_commit_point));
trim_maximum_feerate(funding_sats, tx);

View file

@ -61,8 +61,7 @@ bool check_config_bounds(const tal_t *ctx,
*err_reason = tal_fmt(ctx,
"channel_reserve_satoshis %s"
" too large",
type_to_string(ctx, struct amount_sat,
&remoteconf->channel_reserve));
fmt_amount_sat(ctx, remoteconf->channel_reserve));
return false;
}
@ -77,8 +76,7 @@ bool check_config_bounds(const tal_t *ctx,
&& !amount_sat_add(&reserve, reserve, AMOUNT_SAT(660))) {
*err_reason = tal_fmt(ctx,
"cannot add anchors to reserve %s",
type_to_string(ctx, struct amount_sat,
&reserve));
fmt_amount_sat(ctx, reserve));
return false;
}
@ -86,12 +84,9 @@ bool check_config_bounds(const tal_t *ctx,
if (!amount_sat_sub(&capacity, funding, reserve)) {
*err_reason = tal_fmt(ctx, "channel_reserve_satoshis %s"
" and %s too large for funding %s",
type_to_string(ctx, struct amount_sat,
&remoteconf->channel_reserve),
type_to_string(ctx, struct amount_sat,
&localconf->channel_reserve),
type_to_string(ctx, struct amount_sat,
&funding));
fmt_amount_sat(ctx, remoteconf->channel_reserve),
fmt_amount_sat(ctx, localconf->channel_reserve),
fmt_amount_sat(ctx, funding));
return false;
}
@ -104,14 +99,10 @@ bool check_config_bounds(const tal_t *ctx,
*err_reason = tal_fmt(ctx, "channel_reserve_satoshis %s"
" and %s plus fee %s too large for "
"funding %s",
type_to_string(tmpctx, struct amount_sat,
&remoteconf->channel_reserve),
type_to_string(tmpctx, struct amount_sat,
&localconf->channel_reserve),
type_to_string(tmpctx, struct amount_sat,
&fee),
type_to_string(tmpctx, struct amount_sat,
&funding));
fmt_amount_sat(tmpctx, remoteconf->channel_reserve),
fmt_amount_sat(tmpctx, localconf->channel_reserve),
fmt_amount_sat(tmpctx, fee),
fmt_amount_sat(tmpctx, funding));
return false;
}
@ -127,12 +118,9 @@ bool check_config_bounds(const tal_t *ctx,
*err_reason = tal_fmt(ctx, "htlc_minimum_msat %s"
" too large for funding %s"
" capacity_msat %s",
type_to_string(ctx, struct amount_msat,
&remoteconf->htlc_minimum),
type_to_string(ctx, struct amount_sat,
&funding),
type_to_string(ctx, struct amount_sat,
&capacity));
fmt_amount_msat(ctx, remoteconf->htlc_minimum),
fmt_amount_sat(ctx, funding),
fmt_amount_sat(ctx, capacity));
return false;
}
@ -148,18 +136,12 @@ bool check_config_bounds(const tal_t *ctx,
" reserves %s/%s,"
" max_htlc_value_in_flight_msat is %s,"
" channel capacity is %s, which is below %s",
type_to_string(ctx, struct amount_sat,
&funding),
type_to_string(ctx, struct amount_sat,
&remoteconf->channel_reserve),
type_to_string(ctx, struct amount_sat,
&localconf->channel_reserve),
type_to_string(ctx, struct amount_msat,
&remoteconf->max_htlc_value_in_flight),
type_to_string(ctx, struct amount_sat,
&capacity),
type_to_string(ctx, struct amount_sat,
&min_effective_htlc_capacity_sat));
fmt_amount_sat(ctx, funding),
fmt_amount_sat(ctx, remoteconf->channel_reserve),
fmt_amount_sat(ctx, localconf->channel_reserve),
fmt_amount_msat(ctx, remoteconf->max_htlc_value_in_flight),
fmt_amount_sat(ctx, capacity),
fmt_amount_sat(ctx, min_effective_htlc_capacity_sat));
return false;
}

View file

@ -288,7 +288,7 @@ static u8 *psbt_changeset_get_next(const tal_t *ctx,
asset_amt = wally_psbt_output_get_amount(&out->output);
sats = amount_asset_to_sat(&asset_amt);
const u8 *script = wally_psbt_output_get_script(ctx,
&out->output);
&out->output);
msg = towire_tx_add_output(ctx, cid, serial_id,
@ -370,7 +370,7 @@ static void open_abort(struct state *state,
peer_billboard(true, errmsg);
msg = towire_tx_abort(NULL, &state->channel_id,
(u8 *)tal_dup_arr(tmpctx, char, errmsg,
strlen(errmsg), 0));
strlen(errmsg), 0));
peer_write(state->pps, take(msg));
/* We're now in aborted mode, all
@ -502,17 +502,17 @@ static void handle_peer_shutdown(struct state *state, u8 *msg)
if (tal_count(state->upfront_shutdown_script[REMOTE])
&& !tal_arr_eq(scriptpubkey, state->upfront_shutdown_script[REMOTE]))
open_err_fatal(state,
"scriptpubkey %s is not as agreed upfront (%s)",
tal_hex(state, scriptpubkey),
tal_hex(state,
state->upfront_shutdown_script[REMOTE]));
"scriptpubkey %s is not as agreed upfront (%s)",
tal_hex(state, scriptpubkey),
tal_hex(state,
state->upfront_shutdown_script[REMOTE]));
/* @niftynei points out that negotiated this together, so this
* hack is not required (or safe!). */
if (tlvs->wrong_funding)
open_err_fatal(state,
"wrong_funding shutdown"
" invalid for dual-funding");
"wrong_funding shutdown"
" invalid for dual-funding");
wire_sync_write(REQ_FD,
take(towire_dualopend_got_shutdown(NULL,
@ -559,9 +559,9 @@ static void check_channel_id(struct state *state,
if (!channel_id_eq(id_in, orig_id))
open_err_fatal(state, "channel ids don't match."
" expected %s, got %s",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
orig_id),
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
id_in));
}
@ -583,7 +583,7 @@ static char *validate_inputs(struct state *state,
* or `accept_channel2`:
* - MUST fail the negotiation if:
* - one of the inputs added by the other peer is unconfirmed
*/
*/
u8 *msg;
char *err_reason;
@ -663,7 +663,7 @@ static char *insufficient_err_msg(const tal_t *ctx,
struct wally_psbt *psbt)
{
return tal_fmt(tmpctx, "Insufficiently funded funding tx, %s. %s",
error, type_to_string(tmpctx, struct wally_psbt, psbt));
error, fmt_wally_psbt(tmpctx, psbt));
}
static char *check_balances(const tal_t *ctx,
@ -673,10 +673,10 @@ static char *check_balances(const tal_t *ctx,
u32 feerate_per_kw_funding)
{
struct amount_sat initiator_inputs, initiator_outs,
accepter_inputs, accepter_outs,
tot_input_amt, tot_output_amt,
initiator_fee, accepter_fee,
initiator_diff, accepter_diff;
accepter_inputs, accepter_outs,
tot_input_amt, tot_output_amt,
initiator_fee, accepter_fee,
initiator_diff, accepter_diff;
bool ok;
u32 funding_outnum = psbt->num_outputs;
@ -738,8 +738,8 @@ static char *check_balances(const tal_t *ctx,
tx_state->accepter_funding,
tx_state->opener_funding)) {
return insufficient_err_msg(ctx,
"overflow adding desired funding",
tx_state->psbt);
"overflow adding desired funding",
tx_state->psbt);
}
/* BOLT-f53ca2301232db780843e894f55d95d512f297f9 #2:
@ -754,15 +754,13 @@ static char *check_balances(const tal_t *ctx,
*/
if (!amount_sat_eq(total_funding, output_val))
return insufficient_err_msg(ctx,
tal_fmt(tmpctx, "total desired funding %s != "
"funding output %s",
type_to_string(tmpctx,
struct amount_sat,
&total_funding),
type_to_string(tmpctx,
struct amount_sat,
&output_val)),
tx_state->psbt);
tal_fmt(tmpctx, "total desired funding %s != "
"funding output %s",
fmt_amount_sat(tmpctx,
total_funding),
fmt_amount_sat(tmpctx,
output_val)),
tx_state->psbt);
/* BOLT-f53ca2301232db780843e894f55d95d512f297f9 #2:
*
@ -902,15 +900,12 @@ static char *check_balances(const tal_t *ctx,
tal_fmt(tmpctx, "initiator inputs"
" less than outputs (%s < %s)"
" (lease fee %s)",
type_to_string(tmpctx,
struct amount_sat,
&initiator_inputs),
type_to_string(tmpctx,
struct amount_sat,
&initiator_outs),
type_to_string(tmpctx,
struct amount_sat,
&tx_state->lease_fee)),
fmt_amount_sat(tmpctx,
initiator_inputs),
fmt_amount_sat(tmpctx,
initiator_outs),
fmt_amount_sat(tmpctx,
tx_state->lease_fee)),
tx_state->psbt);
@ -931,15 +926,12 @@ static char *check_balances(const tal_t *ctx,
tal_fmt(tmpctx, "accepter inputs"
" %s less than outputs %s"
" (lease fee %s)",
type_to_string(tmpctx,
struct amount_sat,
&accepter_inputs),
type_to_string(tmpctx,
struct amount_sat,
&accepter_outs),
type_to_string(tmpctx,
struct amount_sat,
&tx_state->lease_fee)),
fmt_amount_sat(tmpctx,
accepter_inputs),
fmt_amount_sat(tmpctx,
accepter_outs),
fmt_amount_sat(tmpctx,
tx_state->lease_fee)),
tx_state->psbt);
}
@ -966,26 +958,22 @@ static char *check_balances(const tal_t *ctx,
return insufficient_err_msg(ctx,
tal_fmt(ctx, "accepter fee not covered"
" (need %s > have %s)",
type_to_string(ctx,
struct amount_sat,
&accepter_fee),
type_to_string(ctx,
struct amount_sat,
&accepter_diff)),
fmt_amount_sat(ctx,
accepter_fee),
fmt_amount_sat(ctx,
accepter_diff)),
tx_state->psbt);
if (!amount_sat_greater_eq(initiator_diff, initiator_fee))
return insufficient_err_msg(ctx,
tal_fmt(ctx, "initiator fee %s"
" (%zux%d) not covered %s",
type_to_string(ctx,
struct amount_sat,
&initiator_fee),
fmt_amount_sat(ctx,
initiator_fee),
initiator_weight,
feerate_per_kw_funding,
type_to_string(ctx,
struct amount_sat,
&initiator_diff)),
fmt_amount_sat(ctx,
initiator_diff)),
tx_state->psbt);
return NULL;
@ -1063,18 +1051,18 @@ static void report_channel_hsmd(const struct state *state,
"to msats");
msg = towire_hsmd_setup_channel(NULL, state->our_role == TX_INITIATOR,
total,
accepter_msats,
&tx_state->funding.txid,
tx_state->funding.n,
tx_state->localconf.to_self_delay,
state->upfront_shutdown_script[LOCAL],
state->local_upfront_shutdown_wallet_index,
&state->their_points,
&state->their_funding_pubkey,
tx_state->remoteconf.to_self_delay,
state->upfront_shutdown_script[REMOTE],
state->channel_type);
total,
accepter_msats,
&tx_state->funding.txid,
tx_state->funding.n,
tx_state->localconf.to_self_delay,
state->upfront_shutdown_script[LOCAL],
state->local_upfront_shutdown_wallet_index,
&state->their_points,
&state->their_funding_pubkey,
tx_state->remoteconf.to_self_delay,
state->upfront_shutdown_script[REMOTE],
state->channel_type);
wire_sync_write(HSM_FD, take(msg));
msg = wire_sync_read(tmpctx, HSM_FD);
if (!fromwire_hsmd_setup_channel_reply(msg))
@ -1126,10 +1114,10 @@ static u8 *msg_for_remote_commit(const tal_t *ctx,
/* You can tell this has been a problem before, since there's a debug
* message here: */
status_debug("signature %s on tx %s using key %s",
type_to_string(tmpctx, struct bitcoin_signature, &local_sig),
type_to_string(tmpctx, struct bitcoin_tx, remote_commit),
type_to_string(tmpctx, struct pubkey,
&state->our_funding_pubkey));
fmt_bitcoin_signature(tmpctx, &local_sig),
fmt_bitcoin_tx(tmpctx, remote_commit),
fmt_pubkey(tmpctx,
&state->our_funding_pubkey));
assert(local_sig.sighash_type == SIGHASH_ALL);
@ -1142,8 +1130,8 @@ static u8 *msg_for_remote_commit(const tal_t *ctx,
tal_free(remote_commit);
return towire_commitment_signed(ctx, &state->channel_id,
&local_sig.s,
NULL, NULL);
&local_sig.s,
NULL, NULL);
}
static enum tx_role their_role(const struct state *state)
@ -1200,13 +1188,13 @@ static char *do_commit_signed_received(const tal_t *ctx,
" commitment. %s", tal_hex(tmpctx, msg));
*local_commit = initial_channel_tx(ctx, &wscript, state->channel,
&state->first_per_commitment_point[LOCAL],
LOCAL, NULL, &error);
&state->first_per_commitment_point[LOCAL],
LOCAL, NULL, &error);
/* This shouldn't happen either, AFAICT. */
if (!*local_commit)
return tal_fmt(ctx, "Could not meet our fees"
" and reserve: %s", error);
" and reserve: %s", error);
validate_initial_commitment_signature(HSM_FD, *local_commit, remote_sig);
@ -1234,24 +1222,20 @@ static char *do_commit_signed_received(const tal_t *ctx,
* twisted by coding in Go, Scala and Rust that they can no
* longer read C code. */
return tal_fmt(ctx,
"Bad signature %s on tx %s using key %s"
" (funding txid %s, psbt %s)",
type_to_string(tmpctx,
struct bitcoin_signature,
remote_sig),
type_to_string(tmpctx,
struct bitcoin_tx,
*local_commit),
type_to_string(tmpctx, struct pubkey,
&state->their_funding_pubkey),
/* This is the first place we'd discover
* the funding tx doesn't match up */
type_to_string(tmpctx,
struct bitcoin_txid,
&tx_state->funding.txid),
type_to_string(tmpctx,
struct wally_psbt,
tx_state->psbt));
"Bad signature %s on tx %s using key %s"
" (funding txid %s, psbt %s)",
fmt_bitcoin_signature(tmpctx,
remote_sig),
fmt_bitcoin_tx(tmpctx,
*local_commit),
fmt_pubkey(tmpctx,
&state->their_funding_pubkey),
/* This is the first place we'd discover
* the funding tx doesn't match up */
fmt_bitcoin_txid(tmpctx,
&tx_state->funding.txid),
fmt_wally_psbt(tmpctx,
tx_state->psbt));
}
tx_state->has_commitments = true;
@ -1274,7 +1258,7 @@ static void handle_commit_signed(struct state *state, const u8 *msg)
&local_commit, &remote_sig);
if (err)
open_err_fatal(state,
"They sent invalid commitment sig: %s", err);
"They sent invalid commitment sig: %s", err);
/* Send the commitment_signed to lightningd; will save to db */
peer_billboard(false, "channel open: commitment received, "
@ -1298,8 +1282,8 @@ static void handle_tx_sigs(struct state *state, const u8 *msg)
struct tlv_txsigs_tlvs *txsig_tlvs = tlv_txsigs_tlvs_new(tmpctx);
if (!fromwire_tx_signatures(tmpctx, msg, &cid, &txid,
cast_const3(
struct witness ***,
&witnesses),
struct witness ***,
&witnesses),
&txsig_tlvs))
open_err_fatal(state, "Bad tx_signatures %s",
tal_hex(msg, msg));
@ -1310,15 +1294,15 @@ static void handle_tx_sigs(struct state *state, const u8 *msg)
state->tx_state->remote_funding_sigs_rcvd = true;
status_info("Got WIRE_TX_SIGNATURES after channel_ready "
"for channel %s, ignoring: %s",
type_to_string(tmpctx, struct channel_id,
&state->channel_id),
tal_hex(tmpctx, msg));
fmt_channel_id(tmpctx,
&state->channel_id),
tal_hex(tmpctx, msg));
} else {
status_broken("Got WIRE_TX_SIGNATURES after channel_ready "
"for channel %s, ignoring: %s",
type_to_string(tmpctx, struct channel_id,
&state->channel_id),
tal_hex(tmpctx, msg));
"for channel %s, ignoring: %s",
fmt_channel_id(tmpctx,
&state->channel_id),
tal_hex(tmpctx, msg));
}
return;
}
@ -1332,8 +1316,7 @@ static void handle_tx_sigs(struct state *state, const u8 *msg)
open_err_warn(state,
"tx_signatures for %s received,"
" open negotiation still in progress.",
type_to_string(tmpctx,
struct bitcoin_txid,
fmt_bitcoin_txid(tmpctx,
&txid));
@ -1341,17 +1324,15 @@ static void handle_tx_sigs(struct state *state, const u8 *msg)
open_err_warn(state,
"tx_signatures for %s received,"
"working on funding_txid %s",
type_to_string(tmpctx,
struct bitcoin_txid,
fmt_bitcoin_txid(tmpctx,
&txid),
type_to_string(tmpctx,
struct bitcoin_txid,
fmt_bitcoin_txid(tmpctx,
&tx_state->funding.txid));
if (!tx_state->has_commitments)
open_err_fatal(state,
"tx_signatures sent before commitment sigs %s",
tal_hex(msg, msg));
"tx_signatures sent before commitment sigs %s",
tal_hex(msg, msg));
/* We put the PSBT + sigs all together */
for (size_t i = 0, j = 0; i < tx_state->psbt->num_inputs; i++) {
@ -1361,8 +1342,7 @@ static void handle_tx_sigs(struct state *state, const u8 *msg)
if (!psbt_get_serial_id(&in->unknowns, &in_serial)) {
status_broken("PSBT input %zu missing serial_id %s",
i, type_to_string(tmpctx,
struct wally_psbt,
i, fmt_wally_psbt(tmpctx,
tx_state->psbt));
return;
}
@ -1400,10 +1380,10 @@ static void handle_send_tx_sigs(struct state *state, const u8 *msg)
"TXID for passed in PSBT does not match"
" funding txid for channel. Expected %s, "
"received %s",
type_to_string(tmpctx, struct bitcoin_txid,
&tx_state->funding.txid),
type_to_string(tmpctx, struct bitcoin_txid,
&txid));
fmt_bitcoin_txid(tmpctx,
&tx_state->funding.txid),
fmt_bitcoin_txid(tmpctx,
&txid));
tal_wally_start();
if (wally_psbt_combine(tx_state->psbt, psbt) != WALLY_OK) {
@ -1411,9 +1391,9 @@ static void handle_send_tx_sigs(struct state *state, const u8 *msg)
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Unable to combine PSBTs. received %s\n"
"local %s",
type_to_string(tmpctx, struct wally_psbt,
fmt_wally_psbt(tmpctx,
psbt),
type_to_string(tmpctx, struct wally_psbt,
fmt_wally_psbt(tmpctx,
tx_state->psbt));
}
tal_wally_end(tx_state->psbt);
@ -1808,8 +1788,7 @@ static bool run_tx_interactive(struct state *state,
if (!is_segwit_output(&tx->wtx->outputs[outpoint.n])) {
open_abort(state,
"Invalid tx sent. Not SegWit %s",
type_to_string(tmpctx,
struct bitcoin_tx,
fmt_bitcoin_tx(tmpctx,
tx));
return false;
}
@ -1827,8 +1806,7 @@ static bool run_tx_interactive(struct state *state,
open_abort(state,
"Unable to add input %s- "
"already present",
type_to_string(tmpctx,
struct bitcoin_outpoint,
fmt_bitcoin_outpoint(tmpctx,
&outpoint));
return false;
}
@ -1845,8 +1823,7 @@ static bool run_tx_interactive(struct state *state,
if (!in) {
open_abort(state,
"Unable to add input %s",
type_to_string(tmpctx,
struct bitcoin_outpoint,
fmt_bitcoin_outpoint(tmpctx,
&outpoint));
return false;
}
@ -1863,7 +1840,7 @@ static bool run_tx_interactive(struct state *state,
/* FIXME: persist asset tags */
asset = amount_sat_to_asset(&amt,
chainparams->fee_asset_tag);
chainparams->fee_asset_tag);
/* FIXME: persist nonces */
psbt_elements_input_set_asset(psbt,
outpoint.n,
@ -2108,8 +2085,8 @@ static void revert_channel_state(struct state *state)
/* We've already checked this */
if (!amount_sat_to_msat(&our_msats,
state->our_role == TX_INITIATOR ?
tx_state->opener_funding :
tx_state->accepter_funding))
tx_state->opener_funding :
tx_state->accepter_funding))
abort();
tal_free(state->channel);
@ -2123,8 +2100,8 @@ static void revert_channel_state(struct state *state)
total,
our_msats,
take(new_fee_states(
NULL, opener,
&state->feerate_per_kw_commitment)),
NULL, opener,
&state->feerate_per_kw_commitment)),
&tx_state->localconf,
&tx_state->remoteconf,
&state->our_points,
@ -2164,18 +2141,18 @@ static u8 *accepter_commits(struct state *state,
scriptpubkey_p2wsh(tmpctx, wscript),
&tx_state->funding.n)) {
*err_reason = tal_fmt(tmpctx, "Expected output %s not"
" found on funding tx %s",
tal_hex(tmpctx,
scriptpubkey_p2wsh(tmpctx, wscript)),
type_to_string(tmpctx, struct wally_psbt,
tx_state->psbt));
" found on funding tx %s",
tal_hex(tmpctx,
scriptpubkey_p2wsh(tmpctx, wscript)),
fmt_wally_psbt(tmpctx,
tx_state->psbt));
return NULL;
}
/* Check tx funds are sane */
*err_reason = check_balances(tmpctx, state, tx_state,
tx_state->psbt,
tx_state->feerate_per_kw_funding);
tx_state->psbt,
tx_state->feerate_per_kw_funding);
if (*err_reason)
return NULL;
@ -2198,8 +2175,8 @@ static u8 *accepter_commits(struct state *state,
total,
our_msats,
take(new_fee_states(
NULL, REMOTE,
&state->feerate_per_kw_commitment)),
NULL, REMOTE,
&state->feerate_per_kw_commitment)),
&tx_state->localconf,
&tx_state->remoteconf,
&state->our_points,
@ -2233,8 +2210,8 @@ static u8 *accepter_commits(struct state *state,
state->upfront_shutdown_script[LOCAL],
state->upfront_shutdown_script[REMOTE],
state->requested_lease ?
*state->requested_lease :
AMOUNT_SAT(0),
*state->requested_lease :
AMOUNT_SAT(0),
tx_state->blockheight,
tx_state->lease_expiry,
tx_state->lease_fee,
@ -2408,9 +2385,9 @@ static void accepter_start(struct state *state, const u8 *oc2_msg)
peer_failed_err(state->pps, &cid,
"open_channel2 channel_id incorrect."
" Expected %s, received %s",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
&state->channel_id),
type_to_string(tmpctx, struct channel_id, &cid));
fmt_channel_id(tmpctx, &cid));
}
/* BOLT #2:
@ -2472,8 +2449,7 @@ static void accepter_start(struct state *state, const u8 *oc2_msg)
*/
if (!bitcoin_blkid_eq(&chain_hash, &chainparams->genesis_blockhash)) {
negotiation_failed(state, "Unknown chain-hash %s",
type_to_string(tmpctx,
struct bitcoin_blkid,
fmt_bitcoin_blkid(tmpctx,
&chain_hash));
return;
}
@ -2491,8 +2467,8 @@ static void accepter_start(struct state *state, const u8 *oc2_msg)
chainparams->max_funding)) {
negotiation_failed(state,
"opener's funding_satoshis %s too large",
type_to_string(tmpctx, struct amount_sat,
&tx_state->opener_funding));
fmt_amount_sat(tmpctx,
tx_state->opener_funding));
return;
}
@ -2543,10 +2519,9 @@ static void accepter_start(struct state *state, const u8 *oc2_msg)
tx_state->psbt->fallback_locktime = tx_state->tx_locktime;
if (!psbt_set_version(tx_state->psbt, 2)) {
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Could not set PSBT version: %s",
type_to_string(tmpctx,
struct wally_psbt,
tx_state->psbt));
"Could not set PSBT version: %s",
fmt_wally_psbt(tmpctx,
tx_state->psbt));
}
}
@ -2598,12 +2573,10 @@ static void accepter_start(struct state *state, const u8 *oc2_msg)
negotiation_failed(state,
"Unable to add accepter's funding"
" and channel lease fee (%s + %s)",
type_to_string(tmpctx,
struct amount_sat,
&tx_state->accepter_funding),
type_to_string(tmpctx,
struct amount_sat,
&tx_state->lease_fee));
fmt_amount_sat(tmpctx,
tx_state->accepter_funding),
fmt_amount_sat(tmpctx,
tx_state->lease_fee));
return;
}
}
@ -2613,10 +2586,10 @@ static void accepter_start(struct state *state, const u8 *oc2_msg)
tx_state->accepter_funding)) {
negotiation_failed(state,
"Amount overflow. Local sats %s. Remote sats %s",
type_to_string(tmpctx, struct amount_sat,
&tx_state->accepter_funding),
type_to_string(tmpctx, struct amount_sat,
&tx_state->opener_funding));
fmt_amount_sat(tmpctx,
tx_state->accepter_funding),
fmt_amount_sat(tmpctx,
tx_state->opener_funding));
return;
}
@ -2632,8 +2605,7 @@ static void accepter_start(struct state *state, const u8 *oc2_msg)
OPT_LARGE_CHANNELS)
&& amount_sat_greater(total, chainparams->max_funding)) {
negotiation_failed(state, "total funding_satoshis %s too large",
type_to_string(tmpctx, struct amount_sat,
&total));
fmt_amount_sat(tmpctx, total));
return;
}
@ -2688,7 +2660,7 @@ static void accepter_start(struct state *state, const u8 *oc2_msg)
* - if the `option_will_fund` tlv was sent in `open_channel2`:
* - if they decide to accept the offer:
* - MUST include a `will_fund` tlv
*/
*/
if (open_tlv->request_funds && tx_state->rates)
accept_tlv_add_offer(a_tlv, tx_state, tx_state->rates,
state->our_funding_pubkey,
@ -2808,8 +2780,7 @@ static u8 *opener_commits(struct state *state,
tal_hex(tmpctx,
scriptpubkey_p2wsh(tmpctx,
wscript)),
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
tx_state->psbt));
return NULL;
}
@ -2820,8 +2791,7 @@ static u8 *opener_commits(struct state *state,
if (error) {
*err_reason = tal_fmt(tmpctx, "Insufficiently funded funding "
"tx, %s. %s", error,
type_to_string(tmpctx,
struct wally_psbt,
fmt_wally_psbt(tmpctx,
tx_state->psbt));
return NULL;
}
@ -2830,8 +2800,7 @@ static u8 *opener_commits(struct state *state,
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Rounding error, can't convert opener_funding %s"
" to msats",
type_to_string(tmpctx, struct amount_sat,
&tx_state->opener_funding));
fmt_amount_sat(tmpctx, tx_state->opener_funding));
return NULL;
}
@ -2839,8 +2808,7 @@ static u8 *opener_commits(struct state *state,
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Overflow error, can't convert accepter_funding %s"
" to msats",
type_to_string(tmpctx, struct amount_sat,
&tx_state->accepter_funding));
fmt_amount_sat(tmpctx, tx_state->accepter_funding));
return NULL;
}
@ -2900,8 +2868,8 @@ static u8 *opener_commits(struct state *state,
state->upfront_shutdown_script[LOCAL],
state->upfront_shutdown_script[REMOTE],
state->requested_lease ?
*state->requested_lease :
AMOUNT_SAT(0),
*state->requested_lease :
AMOUNT_SAT(0),
tx_state->blockheight,
tx_state->lease_expiry,
tx_state->lease_fee,
@ -2996,8 +2964,8 @@ static void opener_start(struct state *state, u8 *msg)
state->channel_type = ctype;
} else {
state->channel_type = default_channel_type(state,
state->our_features,
state->their_features);
state->our_features,
state->their_features);
}
open_tlv->channel_type = state->channel_type->features;
@ -3117,9 +3085,9 @@ static void opener_start(struct state *state, u8 *msg)
peer_failed_err(state->pps, &cid,
"accept_channel2 ids don't match: "
"expected %s, got %s",
type_to_string(msg, struct channel_id,
fmt_channel_id(msg,
&state->channel_id),
type_to_string(msg, struct channel_id, &cid));
fmt_channel_id(msg, &cid));
}
}
@ -3145,8 +3113,8 @@ static void opener_start(struct state *state, u8 *msg)
tx_state->accepter_funding,
state->require_confirmed_inputs[REMOTE],
a_tlv->will_fund
? &a_tlv->will_fund->lease_rates
: NULL);
? &a_tlv->will_fund->lease_rates
: NULL);
wire_sync_write(REQ_FD, take(msg));
@ -3184,12 +3152,10 @@ static void opener_start(struct state *state, u8 *msg)
"We requested %s, which is more"
" than they've offered to provide"
" (%s)",
type_to_string(tmpctx,
struct amount_sat,
state->requested_lease),
type_to_string(tmpctx,
struct amount_sat,
&tx_state->accepter_funding));
fmt_amount_sat(tmpctx,
*state->requested_lease),
fmt_amount_sat(tmpctx,
tx_state->accepter_funding));
return;
}
@ -3261,12 +3227,10 @@ static void opener_start(struct state *state, u8 *msg)
negotiation_failed(state,
"Unable to add accepter's funding"
" and channel lease fee (%s + %s)",
type_to_string(tmpctx,
struct amount_sat,
&tx_state->accepter_funding),
type_to_string(tmpctx,
struct amount_sat,
&tx_state->lease_fee));
fmt_amount_sat(tmpctx,
tx_state->accepter_funding),
fmt_amount_sat(tmpctx,
tx_state->lease_fee));
return;
}
@ -3286,10 +3250,8 @@ static void opener_start(struct state *state, u8 *msg)
tx_state->accepter_funding)) {
negotiation_failed(state, "Amount overflow. Local sats %s. "
"Remote sats %s",
type_to_string(tmpctx, struct amount_sat,
&tx_state->opener_funding),
type_to_string(tmpctx, struct amount_sat,
&tx_state->accepter_funding));
fmt_amount_sat(tmpctx, tx_state->opener_funding),
fmt_amount_sat(tmpctx, tx_state->accepter_funding));
return;
}
@ -3306,8 +3268,7 @@ static void opener_start(struct state *state, u8 *msg)
&& amount_sat_greater(total, chainparams->max_funding)) {
negotiation_failed(state,
"total funding_satoshis %s too large",
type_to_string(tmpctx, struct amount_sat,
&total));
fmt_amount_sat(tmpctx, total));
return;
}
@ -3559,7 +3520,7 @@ static void rbf_local_start(struct state *state, u8 *msg)
init_rbf_tlvs->funding_output_contribution
= tal(init_rbf_tlvs, s64);
*init_rbf_tlvs->funding_output_contribution
= (s64)tx_state->opener_funding.satoshis; /* Raw: wire conversion */
= (s64)tx_state->opener_funding.satoshis; /* Raw: wire conversion */
/* We repeat whatever we used on initial open for requiring confirmed
@ -3599,10 +3560,10 @@ static void rbf_local_start(struct state *state, u8 *msg)
if (!amount_sat_eq(state->tx_state->accepter_funding,
tx_state->accepter_funding))
status_debug("RBF: accepter amt changed %s->%s",
type_to_string(tmpctx, struct amount_sat,
&state->tx_state->accepter_funding),
type_to_string(tmpctx, struct amount_sat,
&tx_state->accepter_funding));
fmt_amount_sat(tmpctx,
state->tx_state->accepter_funding),
fmt_amount_sat(tmpctx,
tx_state->accepter_funding));
} else
tx_state->accepter_funding = state->tx_state->accepter_funding;
@ -3619,10 +3580,8 @@ static void rbf_local_start(struct state *state, u8 *msg)
tx_state->accepter_funding)) {
open_abort(state, "Amount overflow. Local sats %s."
" Remote sats %s",
type_to_string(tmpctx, struct amount_sat,
&tx_state->accepter_funding),
type_to_string(tmpctx, struct amount_sat,
&tx_state->opener_funding));
fmt_amount_sat(tmpctx, tx_state->accepter_funding),
fmt_amount_sat(tmpctx, tx_state->opener_funding));
return;
}
/* Check that total funding doesn't exceed allowed channel capacity */
@ -3637,9 +3596,7 @@ static void rbf_local_start(struct state *state, u8 *msg)
OPT_LARGE_CHANNELS)
&& amount_sat_greater(total, chainparams->max_funding)) {
open_abort(state, "Total funding_satoshis %s too large",
type_to_string(tmpctx,
struct amount_sat,
&total));
fmt_amount_sat(tmpctx, total));
return;
}
@ -3652,12 +3609,10 @@ static void rbf_local_start(struct state *state, u8 *msg)
"We requested %s, which is more"
" than they've offered to provide"
" (%s)",
type_to_string(tmpctx,
struct amount_sat,
state->requested_lease),
type_to_string(tmpctx,
struct amount_sat,
&tx_state->accepter_funding));
fmt_amount_sat(tmpctx,
*state->requested_lease),
fmt_amount_sat(tmpctx,
tx_state->accepter_funding));
return;
}
@ -3687,7 +3642,7 @@ static void rbf_local_start(struct state *state, u8 *msg)
/* Notify lightningd about require_confirmed state */
msg = towire_dualopend_update_require_confirmed(NULL,
state->require_confirmed_inputs[REMOTE]);
state->require_confirmed_inputs[REMOTE]);
wire_sync_write(REQ_FD, take(msg));
/* We merge with RBF's we've initiated now */
@ -3745,10 +3700,10 @@ static void rbf_remote_start(struct state *state, const u8 *rbf_msg)
if (!amount_sat_eq(tx_state->opener_funding,
state->tx_state->opener_funding))
status_debug("RBF: opener amt changed %s->%s",
type_to_string(tmpctx, struct amount_sat,
&state->tx_state->opener_funding),
type_to_string(tmpctx, struct amount_sat,
&tx_state->opener_funding));
fmt_amount_sat(tmpctx,
state->tx_state->opener_funding),
fmt_amount_sat(tmpctx,
tx_state->opener_funding));
} else
/* Otherwise we use the last known funding amount */
tx_state->opener_funding = state->tx_state->opener_funding;
@ -3810,10 +3765,10 @@ static void rbf_remote_start(struct state *state, const u8 *rbf_msg)
tx_state->accepter_funding)) {
open_abort(state,
"Amount overflow. Local sats %s. Remote sats %s",
type_to_string(tmpctx, struct amount_sat,
&tx_state->accepter_funding),
type_to_string(tmpctx, struct amount_sat,
&tx_state->opener_funding));
fmt_amount_sat(tmpctx,
tx_state->accepter_funding),
fmt_amount_sat(tmpctx,
tx_state->opener_funding));
goto free_rbf_ctx;
}
@ -3849,8 +3804,7 @@ static void rbf_remote_start(struct state *state, const u8 *rbf_msg)
OPT_LARGE_CHANNELS)
&& amount_sat_greater(total, chainparams->max_funding)) {
open_abort(state, "Total funding_satoshis %s too large",
type_to_string(tmpctx, struct amount_sat,
&total));
fmt_amount_sat(tmpctx, total));
goto free_rbf_ctx;
}
@ -3858,7 +3812,7 @@ static void rbf_remote_start(struct state *state, const u8 *rbf_msg)
ack_rbf_tlvs->funding_output_contribution
= tal(ack_rbf_tlvs, s64);
*ack_rbf_tlvs->funding_output_contribution
= (s64)tx_state->accepter_funding.satoshis; /* Raw: wire conversion */
= (s64)tx_state->accepter_funding.satoshis; /* Raw: wire conversion */
/* We keep whatever we initially set at open for RBFs */
if (state->require_confirmed_inputs[LOCAL])
@ -3906,7 +3860,7 @@ static void send_channel_ready(struct state *state)
tlvs->short_channel_id = &state->local_alias;
msg = towire_channel_ready(NULL, &state->channel_id,
&next_local_per_commit, tlvs);
&next_local_per_commit, tlvs);
peer_write(state->pps, take(msg));
state->channel_ready[LOCAL] = true;
@ -4129,18 +4083,17 @@ static void do_reconnect_dance(struct state *state)
peer_billboard(true, "Non-matching next_funding on reconnect. Aborting.");
open_abort(state, "Sent next_funding_txid %s doesn't match ours %s",
type_to_string(tmpctx, struct bitcoin_txid,
tlvs->next_funding),
type_to_string(tmpctx, struct bitcoin_txid,
&tx_state->funding.txid));
fmt_bitcoin_txid(tmpctx,
tlvs->next_funding),
fmt_bitcoin_txid(tmpctx,
&tx_state->funding.txid));
return;
}
}
if (state->channel_ready[LOCAL]) {
status_debug("Retransmitting channel_ready for channel %s",
type_to_string(tmpctx,
struct channel_id,
fmt_channel_id(tmpctx,
&state->channel_id));
send_channel_ready(state);
}
@ -4180,7 +4133,7 @@ static u8 *handle_master_in(struct state *state)
handle_failure_fatal(state, msg);
return NULL;
/* Handled inline */
/* Handled inline */
case WIRE_DUALOPEND_INIT:
case WIRE_DUALOPEND_REINIT:
case WIRE_DUALOPEND_COMMIT_SEND_ACK:
@ -4192,7 +4145,7 @@ static u8 *handle_master_in(struct state *state)
case WIRE_DUALOPEND_DEV_MEMLEAK_REPLY:
case WIRE_DUALOPEND_VALIDATE_INPUTS_REPLY:
/* Messages we send */
/* Messages we send */
case WIRE_DUALOPEND_COMMIT_READY:
case WIRE_DUALOPEND_GOT_OFFER:
case WIRE_DUALOPEND_GOT_RBF_OFFER:
@ -4259,7 +4212,7 @@ static u8 *handle_peer_in(struct state *state)
case WIRE_TX_ABORT:
handle_tx_abort(state, msg);
return NULL;
/* Otherwise we fall through */
/* Otherwise we fall through */
case WIRE_INIT:
case WIRE_ERROR:
case WIRE_OPEN_CHANNEL:
@ -4485,14 +4438,14 @@ int main(int argc, char *argv[])
state->our_role = TX_INITIATOR;
ok = amount_msat_to_sat(&state->tx_state->opener_funding, our_msat);
ok &= amount_sat_sub(&state->tx_state->accepter_funding,
total_funding,
state->tx_state->opener_funding);
total_funding,
state->tx_state->opener_funding);
} else {
state->our_role = TX_ACCEPTER;
ok = amount_msat_to_sat(&state->tx_state->accepter_funding, our_msat);
ok &= amount_sat_sub(&state->tx_state->opener_funding,
total_funding,
state->tx_state->accepter_funding);
total_funding,
state->tx_state->accepter_funding);
}
assert(ok);

View file

@ -147,7 +147,7 @@ static void NORETURN negotiation_failed(struct state *state,
static void set_reserve_absolute(struct state * state, const struct amount_sat dust_limit, struct amount_sat reserve_sat)
{
status_debug("Setting their reserve to %s",
type_to_string(tmpctx, struct amount_sat, &reserve_sat));
fmt_amount_sat(tmpctx, reserve_sat));
if (state->allowdustreserve) {
state->localconf.channel_reserve = reserve_sat;
} else {
@ -161,10 +161,8 @@ static void set_reserve_absolute(struct state * state, const struct amount_sat d
if (amount_sat_greater(dust_limit, reserve_sat)) {
status_debug("Their reserve is too small, bumping to "
"dust_limit: %s < %s",
type_to_string(tmpctx, struct amount_sat,
&reserve_sat),
type_to_string(tmpctx, struct amount_sat,
&dust_limit));
fmt_amount_sat(tmpctx, reserve_sat),
fmt_amount_sat(tmpctx, dust_limit));
state->localconf.channel_reserve = dust_limit;
} else {
state->localconf.channel_reserve = reserve_sat;
@ -249,10 +247,8 @@ static bool setup_channel_funder(struct state *state)
chainparams->max_funding)) {
status_failed(STATUS_FAIL_MASTER_IO,
"funding_satoshis must be < %s, not %s",
type_to_string(tmpctx, struct amount_sat,
&chainparams->max_funding),
type_to_string(tmpctx, struct amount_sat,
&state->funding_sats));
fmt_amount_sat(tmpctx, chainparams->max_funding),
fmt_amount_sat(tmpctx, state->funding_sats));
return false;
}
@ -441,12 +437,9 @@ static u8 *funder_channel_start(struct state *state, u8 channel_flags,
status_debug(
"accept_channel: max_htlc_value_in_flight=%s, channel_reserve=%s, "
"htlc_minimum=%s, minimum_depth=%d",
type_to_string(tmpctx, struct amount_msat,
&state->remoteconf.max_htlc_value_in_flight),
type_to_string(tmpctx, struct amount_sat,
&state->remoteconf.channel_reserve),
type_to_string(tmpctx, struct amount_msat,
&state->remoteconf.htlc_minimum),
fmt_amount_msat(tmpctx, state->remoteconf.max_htlc_value_in_flight),
fmt_amount_sat(tmpctx, state->remoteconf.channel_reserve),
fmt_amount_msat(tmpctx, state->remoteconf.htlc_minimum),
their_mindepth);
/* BOLT #2:
@ -499,8 +492,8 @@ static u8 *funder_channel_start(struct state *state, u8 channel_flags,
/* In this case we exit, since we don't know what's going on. */
peer_failed_err(state->pps, &id_in,
"accept_channel ids don't match: sent %s got %s",
type_to_string(msg, struct channel_id, &id_in),
type_to_string(msg, struct channel_id,
fmt_channel_id(msg, &id_in),
fmt_channel_id(msg,
&state->channel_id));
if (!state->allowdustreserve &&
@ -509,10 +502,8 @@ static u8 *funder_channel_start(struct state *state, u8 channel_flags,
negotiation_failed(state,
"dust limit %s"
" would be above our reserve %s",
type_to_string(tmpctx, struct amount_sat,
&state->remoteconf.dust_limit),
type_to_string(tmpctx, struct amount_sat,
&state->localconf.channel_reserve));
fmt_amount_sat(tmpctx, state->remoteconf.dust_limit),
fmt_amount_sat(tmpctx, state->localconf.channel_reserve));
return NULL;
}
@ -550,10 +541,9 @@ static u8 *funder_channel_start(struct state *state, u8 channel_flags,
"Please increase the funding amount or reduce the "
"max_accepted_htlcs to ensure at least one non-dust "
"output.",
type_to_string(tmpctx, struct amount_sat,
&state->funding_sats),
fmt_amount_sat(tmpctx, state->funding_sats),
maxhtlcs,
type_to_string(tmpctx, struct amount_sat, &mindust));
fmt_amount_sat(tmpctx, mindust));
return NULL;
}
@ -741,9 +731,9 @@ static bool funder_finalize_channel_setup(struct state *state,
/* You can tell this has been a problem before, since there's a debug
* message here: */
status_debug("signature %s on tx %s using key %s",
type_to_string(tmpctx, struct bitcoin_signature, sig),
type_to_string(tmpctx, struct bitcoin_tx, *tx),
type_to_string(tmpctx, struct pubkey,
fmt_bitcoin_signature(tmpctx, sig),
fmt_bitcoin_tx(tmpctx, *tx),
fmt_pubkey(tmpctx,
&state->our_funding_pubkey));
/* Now we give our peer the signature for their first commitment
@ -805,9 +795,9 @@ static bool funder_finalize_channel_setup(struct state *state,
if (!channel_id_eq(&id_in, &state->channel_id))
peer_failed_err(state->pps, &id_in,
"funding_signed ids don't match: expected %s got %s",
type_to_string(msg, struct channel_id,
fmt_channel_id(msg,
&state->channel_id),
type_to_string(msg, struct channel_id, &id_in));
fmt_channel_id(msg, &id_in));
/* BOLT #2:
*
@ -831,10 +821,10 @@ static bool funder_finalize_channel_setup(struct state *state,
if (!check_tx_sig(*tx, 0, NULL, wscript, &state->their_funding_pubkey, sig)) {
peer_failed_err(state->pps, &state->channel_id,
"Bad signature %s on tx %s using key %s (channel_type=%s)",
type_to_string(tmpctx, struct bitcoin_signature,
fmt_bitcoin_signature(tmpctx,
sig),
type_to_string(tmpctx, struct bitcoin_tx, *tx),
type_to_string(tmpctx, struct pubkey,
fmt_bitcoin_tx(tmpctx, *tx),
fmt_pubkey(tmpctx,
&state->their_funding_pubkey),
fmt_featurebits(tmpctx,
state->channel->type->features));
@ -867,17 +857,15 @@ static u8 *funder_channel_complete(struct state *state)
/* Update the billboard about what we're doing*/
peer_billboard(false,
"Funding channel con't: continuing with funding_txid %s",
type_to_string(tmpctx, struct bitcoin_txid, &state->funding.txid));
fmt_bitcoin_txid(tmpctx, &state->funding.txid));
/* We recalculate the local_msat from cached values; should
* succeed because we checked it earlier */
if (!amount_sat_sub_msat(&local_msat, state->funding_sats, state->push_msat))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"push_msat %s > funding %s?",
type_to_string(tmpctx, struct amount_msat,
&state->push_msat),
type_to_string(tmpctx, struct amount_sat,
&state->funding_sats));
fmt_amount_msat(tmpctx, state->push_msat),
fmt_amount_sat(tmpctx, state->funding_sats));
if (!funder_finalize_channel_setup(state, local_msat, &sig, &tx,
&pbase))
@ -997,9 +985,7 @@ static u8 *fundee_channel(struct state *state, const u8 *open_channel_msg)
if (!bitcoin_blkid_eq(&chain_hash, &chainparams->genesis_blockhash)) {
negotiation_failed(state,
"Unknown chain-hash %s",
type_to_string(tmpctx,
struct bitcoin_blkid,
&chain_hash));
fmt_bitcoin_blkid(tmpctx, &chain_hash));
return NULL;
}
@ -1015,8 +1001,7 @@ static u8 *fundee_channel(struct state *state, const u8 *open_channel_msg)
&& amount_sat_greater(state->funding_sats, chainparams->max_funding)) {
negotiation_failed(state,
"funding_satoshis %s too large",
type_to_string(tmpctx, struct amount_sat,
&state->funding_sats));
fmt_amount_sat(tmpctx, state->funding_sats));
return NULL;
}
@ -1030,10 +1015,8 @@ static u8 *fundee_channel(struct state *state, const u8 *open_channel_msg)
peer_failed_err(state->pps, &state->channel_id,
"Their push_msat %s"
" would be too large for funding_satoshis %s",
type_to_string(tmpctx, struct amount_msat,
&state->push_msat),
type_to_string(tmpctx, struct amount_sat,
&state->funding_sats));
fmt_amount_msat(tmpctx, state->push_msat),
fmt_amount_sat(tmpctx, state->funding_sats));
return NULL;
}
@ -1077,10 +1060,8 @@ static u8 *fundee_channel(struct state *state, const u8 *open_channel_msg)
negotiation_failed(state,
"Our channel reserve %s"
" would be below their dust %s",
type_to_string(tmpctx, struct amount_sat,
&state->localconf.channel_reserve),
type_to_string(tmpctx, struct amount_sat,
&state->remoteconf.dust_limit));
fmt_amount_sat(tmpctx, state->localconf.channel_reserve),
fmt_amount_sat(tmpctx, state->remoteconf.dust_limit));
return NULL;
}
@ -1216,9 +1197,9 @@ static u8 *fundee_channel(struct state *state, const u8 *open_channel_msg)
if (!channel_id_eq(&id_in, &state->channel_id))
peer_failed_err(state->pps, &id_in,
"funding_created ids don't match: sent %s got %s",
type_to_string(msg, struct channel_id,
fmt_channel_id(msg,
&state->channel_id),
type_to_string(msg, struct channel_id, &id_in));
fmt_channel_id(msg, &id_in));
/* Backwards/cross compat hack */
if (intuit_scid_alias_type(state, channel_flags,
@ -1309,10 +1290,10 @@ static u8 *fundee_channel(struct state *state, const u8 *open_channel_msg)
* longer read C code. */
peer_failed_err(state->pps, &state->channel_id,
"Bad signature %s on tx %s using key %s",
type_to_string(tmpctx, struct bitcoin_signature,
fmt_bitcoin_signature(tmpctx,
&theirsig),
type_to_string(tmpctx, struct bitcoin_tx, local_commit),
type_to_string(tmpctx, struct pubkey,
fmt_bitcoin_tx(tmpctx, local_commit),
fmt_pubkey(tmpctx,
&their_funding_pubkey));
}

View file

@ -749,21 +749,15 @@ static char *msat_net(const tal_t *ctx,
if (!amount_msat_sub(credit_net, credit, debit))
return tal_fmt(ctx, "unexpected fail, can't sub."
" %s - %s",
type_to_string(ctx, struct amount_msat,
&credit),
type_to_string(ctx, struct amount_msat,
&debit));
fmt_amount_msat(ctx, credit),
fmt_amount_msat(ctx, debit));
*debit_net = AMOUNT_MSAT(0);
} else {
if (!amount_msat_sub(debit_net, debit, credit)) {
return tal_fmt(ctx, "unexpected fail, can't sub."
" %s - %s",
type_to_string(ctx,
struct amount_msat,
&debit),
type_to_string(ctx,
struct amount_msat,
&credit));
fmt_amount_msat(ctx, debit),
fmt_amount_msat(ctx, credit));
}
*credit_net = AMOUNT_MSAT(0);
}
@ -1005,8 +999,7 @@ static struct command_result *json_balance_snapshot(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG, "account %s has balance %s",
acct_name,
type_to_string(tmpctx, struct amount_msat,
&snap_balance));
fmt_amount_msat(tmpctx, snap_balance));
/* Find the account balances */
err = account_get_balance(cmd, db, acct_name,
@ -1086,12 +1079,9 @@ static struct command_result *json_balance_snapshot(struct command *cmd,
"Snapshot balance does not equal ondisk"
" reported %s, off by (+%s/-%s) (account %s)"
" Logging journal entry.",
type_to_string(tmpctx, struct amount_msat,
&snap_balance),
type_to_string(tmpctx, struct amount_msat,
&debit_diff),
type_to_string(tmpctx, struct amount_msat,
&credit_diff),
fmt_amount_msat(tmpctx, snap_balance),
fmt_amount_msat(tmpctx, debit_diff),
fmt_amount_msat(tmpctx, credit_diff),
acct_name);
@ -1151,8 +1141,7 @@ static char *fetch_out_desc_invstr(const tal_t *ctx, const char *buf,
desc = tal_strdup(ctx, bolt11->description);
else if (bolt11->description_hash)
desc = tal_fmt(ctx, "%s",
type_to_string(ctx,
struct sha256,
fmt_sha256(ctx,
bolt11->description_hash));
else
desc = NULL;
@ -1732,8 +1721,8 @@ static struct command_result *json_coin_moved(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG, "coin_move %d (%s) %s -%s %s %"PRIu64,
version,
mvt_tag_str(tags[0]),
type_to_string(tmpctx, struct amount_msat, &credit),
type_to_string(tmpctx, struct amount_msat, &debit),
fmt_amount_msat(tmpctx, credit),
fmt_amount_msat(tmpctx, debit),
mvt_type, timestamp);
if (streq(mvt_type, CHAIN_MOVE))

View file

@ -628,14 +628,13 @@ static void koinly_entry(const tal_t *ctx, FILE *csvf, struct income_event *ev)
/* TxHash */
if (ev->txid)
fprintf(csvf, "%s",
type_to_string(ctx, struct bitcoin_txid, ev->txid));
fmt_bitcoin_txid(ctx, ev->txid));
else if (ev->payment_id)
fprintf(csvf, "%s",
type_to_string(ctx, struct sha256, ev->payment_id));
fmt_sha256(ctx, ev->payment_id));
else if (ev->outpoint)
fprintf(csvf, "%s",
type_to_string(ctx, struct bitcoin_outpoint,
ev->outpoint));
fmt_bitcoin_outpoint(ctx, ev->outpoint));
}
static void harmony_header(FILE *csvf)
@ -738,20 +737,19 @@ static void harmony_entry(const tal_t *ctx, FILE *csvf, struct income_event *ev)
* We don't have a standard 'txid' for every event though */
if (ev->txid)
fprintf(csvf, "%s",
type_to_string(ctx, struct bitcoin_txid, ev->txid));
fmt_bitcoin_txid(ctx, ev->txid));
else if (ev->payment_id)
fprintf(csvf, "%s",
type_to_string(ctx, struct sha256, ev->payment_id));
fmt_sha256(ctx, ev->payment_id));
else if (ev->outpoint)
fprintf(csvf, "%s",
type_to_string(ctx, struct bitcoin_outpoint,
ev->outpoint));
fmt_bitcoin_outpoint(ctx, ev->outpoint));
fprintf(csvf, ",");
/* ",Order ID" payment hash, if any */
if (ev->payment_id)
fprintf(csvf, "%s",
type_to_string(ctx, struct sha256, ev->payment_id));
fmt_sha256(ctx, ev->payment_id));
fprintf(csvf, ",");
/* ",Account" */
@ -761,8 +759,7 @@ static void harmony_entry(const tal_t *ctx, FILE *csvf, struct income_event *ev)
/* ",Network ID" outpoint */
if (ev->outpoint)
fprintf(csvf, "%s",
type_to_string(ctx, struct bitcoin_outpoint,
ev->outpoint));
fmt_bitcoin_outpoint(ctx, ev->outpoint));
fprintf(csvf, ",");
/* ",Note" description (may be NULL) */

View file

@ -885,10 +885,8 @@ char *account_get_balance(const tal_t *ctx,
return tal_fmt(ctx,
"%s channel balance is negative? %s - %s",
bal->currency,
type_to_string(ctx, struct amount_msat,
&bal->credit),
type_to_string(ctx, struct amount_msat,
&bal->debit));
fmt_amount_msat(ctx, bal->credit),
fmt_amount_msat(ctx, bal->debit));
}
return NULL;
@ -1806,7 +1804,7 @@ char *maybe_update_onchain_fees(const tal_t *ctx, struct db *db,
events[i]->debit)) {
err = tal_fmt(ctx, "Overflow adding withdrawal debits for"
" txid: %s",
type_to_string(ctx, struct bitcoin_txid,
fmt_bitcoin_txid(ctx,
txid));
goto finished;
}
@ -1815,7 +1813,7 @@ char *maybe_update_onchain_fees(const tal_t *ctx, struct db *db,
events[i]->credit)) {
err = tal_fmt(ctx, "Overflow adding deposit credits for"
" txid: %s",
type_to_string(ctx, struct bitcoin_txid,
fmt_bitcoin_txid(ctx,
txid));
goto finished;
}
@ -1859,9 +1857,9 @@ char *maybe_update_onchain_fees(const tal_t *ctx, struct db *db,
if (!amount_msat_sub(&fees_msat, withdraw_msat, deposit_msat)) {
err = tal_fmt(ctx, "Err subtracting withdraw %s from deposit %s"
" for txid %s",
type_to_string(ctx, struct amount_msat, &withdraw_msat),
type_to_string(ctx, struct amount_msat, &deposit_msat),
type_to_string(ctx, struct bitcoin_txid, txid));
fmt_amount_msat(ctx, withdraw_msat),
fmt_amount_msat(ctx, deposit_msat),
fmt_bitcoin_txid(ctx, txid));
goto finished;
}

View file

@ -44,6 +44,9 @@ bool deprecated_ok_(bool deprecated_apis UNNEEDED,
/* Generated stub for first_fee_state */
enum htlc_state first_fee_state(enum side opener UNNEEDED)
{ fprintf(stderr, "first_fee_state called!\n"); abort(); }
/* Generated stub for fmt_channel_id */
char *fmt_channel_id(const tal_t *ctx UNNEEDED, const struct channel_id *channel_id UNNEEDED)
{ fprintf(stderr, "fmt_channel_id called!\n"); abort(); }
/* Generated stub for fmt_wireaddr_without_port */
char *fmt_wireaddr_without_port(const tal_t *ctx UNNEEDED, const struct wireaddr *a UNNEEDED)
{ fprintf(stderr, "fmt_wireaddr_without_port called!\n"); abort(); }

View file

@ -50,6 +50,9 @@ bool deprecated_ok_(bool deprecated_apis UNNEEDED,
/* Generated stub for first_fee_state */
enum htlc_state first_fee_state(enum side opener UNNEEDED)
{ fprintf(stderr, "first_fee_state called!\n"); abort(); }
/* Generated stub for fmt_channel_id */
char *fmt_channel_id(const tal_t *ctx UNNEEDED, const struct channel_id *channel_id UNNEEDED)
{ fprintf(stderr, "fmt_channel_id called!\n"); abort(); }
/* Generated stub for fmt_wireaddr_without_port */
char *fmt_wireaddr_without_port(const tal_t *ctx UNNEEDED, const struct wireaddr *a UNNEEDED)
{ fprintf(stderr, "fmt_wireaddr_without_port called!\n"); abort(); }

View file

@ -379,9 +379,8 @@ static struct command_result *peer_after_send_scb(struct command *cmd,
cmd,
tal_fmt(cmd,
"chanbackup/peers/%s",
type_to_string(tmpctx,
struct node_id,
nodeid)),
fmt_node_id(tmpctx,
nodeid)),
peer_after_listdatastore,
nodeid);
}
@ -590,7 +589,7 @@ static struct command_result *failed_peer_restore(struct command *cmd,
char *reason)
{
plugin_log(cmd->plugin, LOG_DBG, "PeerStorageFailed!: %s: %s",
type_to_string(tmpctx, struct node_id, node_id),
fmt_node_id(tmpctx, node_id),
reason);
return command_hook_success(cmd);
}
@ -641,9 +640,8 @@ static struct command_result *handle_your_peer_storage(struct command *cmd,
cmd,
tal_fmt(cmd,
"chanbackup/peers/%s",
type_to_string(tmpctx,
struct node_id,
&node_id)),
fmt_node_id(tmpctx,
&node_id)),
payload_deserialise,
"create-or-replace",
datastore_success,

View file

@ -496,8 +496,7 @@ static struct pubkey *path_to_node(const tal_t *ctx,
for (size_t i = 0; i < tal_count(r); i++) {
if (!pubkey_from_node_id(&nodes[i+1], &r[i].node_id)) {
plugin_err(plugin, "Could not convert nodeid %s",
type_to_string(tmpctx, struct node_id,
&r[i].node_id));
fmt_node_id(tmpctx, &r[i].node_id));
}
}
@ -537,8 +536,7 @@ send_modern_message(struct command *cmd,
if (!pubkey_from_privkey(&blinding_iter, &fwd_blinding))
return command_fail(cmd, LIGHTNINGD,
"Could not convert blinding %s to pubkey!",
type_to_string(tmpctx, struct privkey,
&blinding_iter));
fmt_privkey(tmpctx, &blinding_iter));
/* We overallocate: this node (0) doesn't have payload or alias */
payloads = tal_arr(cmd, struct tlv_onionmsg_tlv *, nhops);
@ -766,8 +764,7 @@ connect_direct(struct command *cmd,
"Cannot find route, but"
" fetchplugin-noconnect set:"
" trying direct anyway to %s",
type_to_string(tmpctx, struct pubkey,
dst));
fmt_pubkey(tmpctx, dst));
return cb(cmd, NULL, NULL, sent);
}

View file

@ -81,7 +81,7 @@ unreserve_done(struct command *cmd UNUSED,
{
plugin_log(open->p, LOG_DBG,
"`unreserveinputs` for channel %s completed. %*.s",
type_to_string(tmpctx, struct channel_id, &open->channel_id),
fmt_channel_id(tmpctx, &open->channel_id),
json_tok_full_len(result),
json_tok_full(buf, result));
@ -96,7 +96,7 @@ static void unreserve_psbt(struct pending_open *open)
plugin_log(open->p, LOG_DBG,
"Calling `unreserveinputs` for channel %s",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
&open->channel_id));
req = jsonrpc_request_start(open->p, NULL,
@ -207,7 +207,7 @@ remember_channel_utxos(struct command *cmd,
struct out_req *req;
u8 *utxos_bin;
char *chan_key = tal_fmt(cmd, "funder/%s",
type_to_string(cmd, struct channel_id,
fmt_channel_id(cmd,
&open->channel_id));
req = jsonrpc_request_start(cmd->plugin, cmd,
@ -247,7 +247,7 @@ signpsbt_done(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG,
"`signpsbt` done for channel %s",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
&open->channel_id));
err = json_scan(tmpctx, buf, result,
"{signed_psbt:%}",
@ -299,20 +299,20 @@ json_openchannel2_sign_call(struct command *cmd,
if (!open) {
plugin_log(cmd->plugin, LOG_DBG,
"nothing to sign for channel %s",
type_to_string(tmpctx, struct channel_id, &cid));
fmt_channel_id(tmpctx, &cid));
return command_hook_cont_psbt(cmd, psbt);
}
if (!psbt_has_our_input(psbt)) {
plugin_log(cmd->plugin, LOG_DBG,
"no inputs to sign for channel %s",
type_to_string(tmpctx, struct channel_id, &cid));
fmt_channel_id(tmpctx, &cid));
return command_hook_cont_psbt(cmd, psbt);
}
plugin_log(cmd->plugin, LOG_DBG,
"openchannel_sign PSBT is %s",
type_to_string(tmpctx, struct wally_psbt, psbt));
fmt_wally_psbt(tmpctx, psbt));
req = jsonrpc_request_start(cmd->plugin, cmd,
"signpsbt",
@ -334,7 +334,7 @@ json_openchannel2_sign_call(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG,
"calling `signpsbt` for channel %s for %zu input%s",
type_to_string(tmpctx, struct channel_id,
fmt_channel_id(tmpctx,
&open->channel_id), count,
count == 1 ? "" : "s");
return send_outreq(cmd->plugin, req);
@ -364,7 +364,7 @@ json_openchannel2_changed_call(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG,
"openchannel_changed PSBT is %s",
type_to_string(tmpctx, struct wally_psbt, psbt));
fmt_wally_psbt(tmpctx, psbt));
/* FIXME: do we have any additions or updates to make based
* on their changes? */
@ -467,10 +467,8 @@ psbt_fund_failed(struct command *cmd,
"Unable to secure %s from wallet,"
" continuing channel open to %s"
" without our participation. err %.*s",
type_to_string(tmpctx, struct amount_sat,
&info->our_funding),
type_to_string(tmpctx, struct node_id,
&info->id),
fmt_amount_sat(tmpctx, info->our_funding),
fmt_node_id(tmpctx, &info->id),
json_tok_full_len(error),
json_tok_full(buf, error));
@ -696,8 +694,7 @@ listfunds_success(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG,
"Policy %s returned funding amount of %s. %s",
funder_policy_desc(tmpctx, current_policy),
type_to_string(tmpctx, struct amount_sat,
&info->our_funding),
fmt_amount_sat(tmpctx, info->our_funding),
funding_err ? funding_err : "");
if (amount_sat_zero(info->our_funding))
@ -705,11 +702,9 @@ listfunds_success(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG,
"Funding channel %s with %s (their input %s)",
type_to_string(tmpctx, struct channel_id, &info->cid),
type_to_string(tmpctx, struct amount_sat,
&info->our_funding),
type_to_string(tmpctx, struct amount_sat,
&info->their_funding));
fmt_channel_id(tmpctx, &info->cid),
fmt_amount_sat(tmpctx, info->our_funding),
fmt_amount_sat(tmpctx, info->their_funding));
/* If there's prevouts, we compose a psbt with those first,
* then add more funds for anything missing */
@ -732,8 +727,7 @@ listfunds_success(struct command *cmd,
json_add_bool(req->js, "nonwrapped", true);
}
json_add_string(req->js, "satoshi",
type_to_string(tmpctx, struct amount_sat,
&info->our_funding));
fmt_amount_sat(tmpctx, info->our_funding));
json_add_string(req->js, "feerate",
tal_fmt(tmpctx, "%"PRIu64"%s",
info->funding_feerate_perkw,
@ -762,7 +756,7 @@ listfunds_failed(struct command *cmd,
"Unable to fetch wallet funds info."
" Continuing channel open to %s"
" without our participation. err %.*s",
type_to_string(tmpctx, struct node_id,
fmt_node_id(tmpctx,
&info->id),
json_tok_full_len(error),
json_tok_full(buf, error));
@ -1068,7 +1062,7 @@ json_rbf_channel_call(struct command *cmd,
&datastore_list_fail,
info);
chan_key = tal_fmt(cmd, "funder/%s",
type_to_string(cmd, struct channel_id,
fmt_channel_id(cmd,
&info->cid));
json_add_string(req->js, "key", chan_key);
return send_outreq(cmd->plugin, req);
@ -1093,7 +1087,7 @@ static struct command_result *json_disconnect(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG,
"Cleaning up inflights for peer id %s",
type_to_string(tmpctx, struct node_id, &id));
fmt_node_id(tmpctx, &id));
cleanup_peer_pending_opens(&id);
@ -1117,7 +1111,7 @@ delete_channel_from_datastore(struct command *cmd,
NULL);
json_add_string(req->js, "key",
tal_fmt(cmd, "funder/%s",
type_to_string(cmd, struct channel_id, cid)));
fmt_channel_id(cmd, cid)));
return send_outreq(cmd->plugin, req);
}
@ -1153,7 +1147,7 @@ static struct command_result *json_channel_state_changed(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG,
"Cleaning up datastore for channel_id %s",
type_to_string(tmpctx, struct channel_id, &cid));
fmt_channel_id(tmpctx, &cid));
return delete_channel_from_datastore(cmd, &cid);
}
@ -1179,7 +1173,7 @@ static struct command_result *json_channel_open_failed(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG,
"Cleaning up inflight for channel_id %s",
type_to_string(tmpctx, struct channel_id, &cid));
fmt_channel_id(tmpctx, &cid));
open = find_channel_pending_open(&cid);
if (open)
@ -1460,7 +1454,7 @@ static void tell_lightningd_lease_rates(struct plugin *p,
mval = amount_msat(rates->lease_fee_base_sat * 1000);
json_out_addstr(jout, "lease_fee_base_msat",
type_to_string(tmpctx, struct amount_msat, &mval));
fmt_amount_msat(tmpctx, mval));
json_out_add(jout, "lease_fee_basis", false,
"%d", rates->lease_fee_basis);
@ -1469,7 +1463,7 @@ static void tell_lightningd_lease_rates(struct plugin *p,
mval = amount_msat(rates->channel_fee_max_base_msat);
json_out_addstr(jout, "channel_fee_max_base_msat",
type_to_string(tmpctx, struct amount_msat, &mval));
fmt_amount_msat(tmpctx, mval));
json_out_add(jout, "channel_fee_max_proportional_thousandths", false,
"%d", rates->channel_fee_max_proportional_thousandths);

View file

@ -43,7 +43,7 @@ const char *funder_policy_desc(const tal_t *ctx,
struct amount_sat amt = amount_sat(policy->mod);
return tal_fmt(ctx, "%s (%s)",
funder_opt_name(policy->opt),
type_to_string(ctx, struct amount_sat, &amt));
fmt_amount_sat(ctx, amt));
} else
return tal_fmt(ctx, "%s (%"PRIu64"%%)",
funder_opt_name(policy->opt), policy->mod);
@ -239,10 +239,8 @@ calculate_our_funding(struct funder_policy *policy,
*our_funding = AMOUNT_SAT(0);
return tal_fmt(tmpctx, "No space available in channel."
" channel_max %s, their_funding %s",
type_to_string(tmpctx, struct amount_sat,
&channel_max),
type_to_string(tmpctx, struct amount_sat,
&their_funding));
fmt_amount_sat(tmpctx, channel_max),
fmt_amount_sat(tmpctx, their_funding));
}
/* Figure out actual available funds, given our requested
@ -253,10 +251,8 @@ calculate_our_funding(struct funder_policy *policy,
*our_funding = AMOUNT_SAT(0);
return tal_fmt(tmpctx, "Reserve tank too low."
" available_funds %s, reserve_tank requires %s",
type_to_string(tmpctx, struct amount_sat,
&available_funds),
type_to_string(tmpctx, struct amount_sat,
&policy->reserve_tank));
fmt_amount_sat(tmpctx, available_funds),
fmt_amount_sat(tmpctx, policy->reserve_tank));
}
/* Are they funding enough ? */
@ -265,10 +261,8 @@ calculate_our_funding(struct funder_policy *policy,
return tal_fmt(tmpctx, "Peer's funding too little."
" their_funding %s,"
" min_their_funding requires %s",
type_to_string(tmpctx, struct amount_sat,
&their_funding),
type_to_string(tmpctx, struct amount_sat,
&policy->min_their_funding));
fmt_amount_sat(tmpctx, their_funding),
fmt_amount_sat(tmpctx, policy->min_their_funding));
}
/* Are they funding too much ? */
@ -277,10 +271,8 @@ calculate_our_funding(struct funder_policy *policy,
return tal_fmt(tmpctx, "Peer's funding too much."
" their_funding %s,"
" max_their_funding requires %s",
type_to_string(tmpctx, struct amount_sat,
&their_funding),
type_to_string(tmpctx, struct amount_sat,
&policy->max_their_funding));
fmt_amount_sat(tmpctx, their_funding),
fmt_amount_sat(tmpctx, policy->max_their_funding));
}
/* What's our amount, given our policy */
@ -317,12 +309,10 @@ calculate_our_funding(struct funder_policy *policy,
&& amount_sat_less(*our_funding, requested_lease)) {
return tal_fmt(tmpctx, "New amount (%s) is less than"
" last (%s); peer requested a lease (%s)",
type_to_string(tmpctx, struct amount_sat,
our_funding),
type_to_string(tmpctx, struct amount_sat,
our_last_funding),
type_to_string(tmpctx, struct amount_sat,
&requested_lease));
fmt_amount_sat(tmpctx, *our_funding),
fmt_amount_sat(tmpctx,
*our_last_funding),
fmt_amount_sat(tmpctx, requested_lease));
}
}
@ -333,10 +323,8 @@ calculate_our_funding(struct funder_policy *policy,
return tal_fmt(tmpctx, "Can't meet our min channel requirement."
" our_funding %s,"
" per_channel_min requires %s",
type_to_string(tmpctx, struct amount_sat,
our_funding),
type_to_string(tmpctx, struct amount_sat,
&policy->per_channel_min));
fmt_amount_sat(tmpctx, *our_funding),
fmt_amount_sat(tmpctx, policy->per_channel_min));
}
return NULL;

View file

@ -555,8 +555,8 @@ static struct command_result *htlc_accepted_call(struct command *cmd,
"payment_hash: SHA256(%s)=%s != %s. Ignoring keysend.",
tal_hexstr(tmpctx,
preimage_field->value, preimage_field->length),
type_to_string(tmpctx, struct sha256, &ki->payment_hash),
type_to_string(tmpctx, struct sha256, &payment_hash));
fmt_sha256(tmpctx, &ki->payment_hash),
fmt_sha256(tmpctx, &payment_hash));
tal_free(ki);
return htlc_accepted_continue(cmd, NULL);
}
@ -573,7 +573,7 @@ static struct command_result *htlc_accepted_call(struct command *cmd,
&htlc_accepted_invoice_failed,
ki);
plugin_log(cmd->plugin, LOG_INFORM, "Inserting a new invoice for keysend with payment_hash %s", type_to_string(tmpctx, struct sha256, &payment_hash));
plugin_log(cmd->plugin, LOG_INFORM, "Inserting a new invoice for keysend with payment_hash %s", fmt_sha256(tmpctx, &payment_hash));
json_add_string(req->js, "amount_msat", "any");
json_add_string(req->js, "label", ki->label);
if (desc_field) {

View file

@ -255,10 +255,8 @@ struct payment_tree_result payment_collect_result(struct payment *p)
paymod_err(
p,
"Number overflow summing partial payments: %s + %s",
type_to_string(tmpctx, struct amount_msat,
&res.sent),
type_to_string(tmpctx, struct amount_msat,
&cres.sent));
fmt_amount_msat(tmpctx, res.sent),
fmt_amount_msat(tmpctx, cres.sent));
/* Bubble up the first preimage we see. */
if (res.preimage == NULL && cres.preimage != NULL)
@ -387,13 +385,11 @@ static void channel_hints_update(struct payment *p,
"Updated a channel hint for %s: "
"enabled %s, "
"estimated capacity %s",
type_to_string(tmpctx,
struct short_channel_id_dir,
fmt_short_channel_id_dir(tmpctx,
&hint->scid),
hint->enabled ? "true" : "false",
type_to_string(tmpctx,
struct amount_msat,
&hint->estimated_capacity));
fmt_amount_msat(tmpctx,
hint->estimated_capacity));
return;
}
}
@ -416,10 +412,9 @@ static void channel_hints_update(struct payment *p,
paymod_log(
p, LOG_DBG,
"Added a channel hint for %s: enabled %s, estimated capacity %s",
type_to_string(tmpctx, struct short_channel_id_dir, &newhint.scid),
fmt_short_channel_id_dir(tmpctx, &newhint.scid),
newhint.enabled ? "true" : "false",
type_to_string(tmpctx, struct amount_msat,
&newhint.estimated_capacity));
fmt_amount_msat(tmpctx, newhint.estimated_capacity));
}
static void payment_exclude_most_expensive(struct payment *p)
@ -465,9 +460,8 @@ static struct amount_msat payment_route_fee(struct payment *p)
LOG_BROKEN,
"gossipd returned a route with a negative fee: sending %s "
"to deliver %s",
type_to_string(tmpctx, struct amount_msat,
&p->route[0].amount),
type_to_string(tmpctx, struct amount_msat, &p->our_amount));
fmt_amount_msat(tmpctx, p->route[0].amount),
fmt_amount_msat(tmpctx, p->our_amount));
abort();
}
return fee;
@ -557,17 +551,14 @@ static bool payment_chanhints_apply_route(struct payment *p, bool remove)
"Could not update the channel hint "
"for %s. Could be a concurrent "
"`getroute` call.",
type_to_string(tmpctx,
struct short_channel_id_dir,
&curhint->scid));
fmt_short_channel_id_dir(tmpctx,
&curhint->scid));
paymod_log(
p, LOG_DBG,
"Capacity: estimated_capacity=%s, hop_amount=%s. "
"local=%s%s",
type_to_string(tmpctx, struct amount_msat,
&curhint->estimated_capacity),
type_to_string(tmpctx, struct amount_msat,
&curhop->amount),
fmt_amount_msat(tmpctx, curhint->estimated_capacity),
fmt_amount_msat(tmpctx, curhop->amount),
curhint->local ? "Y" : "N",
curhint->local ?
tal_fmt(tmpctx, " HTLC Budget: htlc_budget=%d",
@ -882,8 +873,7 @@ static struct command_result *payment_getroute(struct payment *p)
put_gossmap(p);
payment_fail(
p, "Unknown destination %s",
type_to_string(tmpctx, struct node_id,
p->getroute->destination));
fmt_node_id(tmpctx, p->getroute->destination));
/* Let payment_finished_ handle this, so we mark it as pending */
return command_still_pending(p->cmd);
@ -927,9 +917,8 @@ static struct command_result *payment_getroute(struct payment *p)
p->route = tal_free(p->route);
payment_fail(
p, "Fee exceeds our fee budget: %s > %s, discarding route",
type_to_string(tmpctx, struct amount_msat, &fee),
type_to_string(tmpctx, struct amount_msat,
&p->constraints.fee_budget));
fmt_amount_msat(tmpctx, fee),
fmt_amount_msat(tmpctx, p->constraints.fee_budget));
return command_still_pending(p->cmd);
}
@ -1161,16 +1150,15 @@ static void report_tampering(struct payment *p,
paymod_log(p, LOG_UNUSUAL,
"Node #%zu (%s) claimed we sent them invalid %s",
report_pos + 1,
type_to_string(tmpctx, struct node_id, id),
fmt_node_id(tmpctx, id),
style);
} else {
paymod_log(p, LOG_UNUSUAL,
"Node #%zu (%s) claimed #%zu (%s) sent them invalid %s",
report_pos + 1,
type_to_string(tmpctx, struct node_id, id),
fmt_node_id(tmpctx, id),
report_pos,
type_to_string(tmpctx, struct node_id,
&p->route[report_pos-1].node_id),
fmt_node_id(tmpctx, &p->route[report_pos-1].node_id),
style);
}
}
@ -1244,7 +1232,7 @@ handle_final_failure(struct command *cmd,
paymod_log(p, LOG_DBG,
"Final node %s reported %04x (%s) on route %s",
type_to_string(tmpctx, struct node_id, final_id),
fmt_node_id(tmpctx, final_id),
failcode, onion_wire_name(failcode),
p->routetxt);
@ -1317,7 +1305,7 @@ handle_final_failure(struct command *cmd,
strange_error:
paymod_log(p, LOG_UNUSUAL,
"Final node %s reported strange error code %04x (%s)",
type_to_string(tmpctx, struct node_id, final_id),
fmt_node_id(tmpctx, final_id),
failcode, describe_failcode(tmpctx, failcode));
error:
@ -1343,10 +1331,9 @@ handle_intermediate_failure(struct command *cmd,
paymod_log(p, LOG_DBG,
"Intermediate node %s reported %04x (%s) at %s on route %s",
type_to_string(tmpctx, struct node_id, errnode),
fmt_node_id(tmpctx, errnode),
failcode, onion_wire_name(failcode),
type_to_string(tmpctx, struct short_channel_id,
&errchan->scid),
fmt_short_channel_id(tmpctx, errchan->scid),
p->routetxt);
/* We use an exhaustive switch statement here so you get a compile
@ -1423,7 +1410,7 @@ handle_intermediate_failure(struct command *cmd,
strange_error:
paymod_log(p, LOG_UNUSUAL,
"Intermediate node %s reported strange error code %04x (%s)",
type_to_string(tmpctx, struct node_id, errnode),
fmt_node_id(tmpctx, errnode),
failcode, describe_failcode(tmpctx, failcode));
error:
@ -1817,8 +1804,7 @@ static void payment_compute_onion_payloads(struct payment *p)
&p->route[i + 1], false,
NULL, NULL);
tal_append_fmt(&routetxt, "%s -> ",
type_to_string(tmpctx, struct short_channel_id,
&p->route[i].scid));
fmt_short_channel_id(tmpctx, p->route[i].scid));
}
/* If we're headed to a blinded path, connect that now. */
@ -1829,8 +1815,8 @@ static void payment_compute_onion_payloads(struct payment *p)
root->blindedfinalamount,
root->blindedfinalcltv);
tal_append_fmt(&routetxt, "%s -> blinded path (%zu hops)",
type_to_string(tmpctx, struct short_channel_id,
&p->route[hopcount-1].scid),
fmt_short_channel_id(tmpctx,
p->route[hopcount-1].scid),
tal_count(root->blindedpath->path));
} else {
/* Final hop */
@ -1840,8 +1826,8 @@ static void payment_compute_onion_payloads(struct payment *p)
root->payment_secret,
root->payment_metadata);
tal_append_fmt(&routetxt, "%s",
type_to_string(tmpctx, struct short_channel_id,
&p->route[hopcount - 1].scid));
fmt_short_channel_id(tmpctx,
p->route[hopcount - 1].scid));
}
paymod_log(p, LOG_DBG,
@ -2400,7 +2386,7 @@ static inline void retry_step_cb(struct retry_mod_data *rd,
p, LOG_INFORM,
"Payment deadline expired, not retrying (partial-)payment "
"%s/%d",
type_to_string(tmpctx, struct sha256, p->payment_hash),
fmt_sha256(tmpctx, p->payment_hash),
p->partid);
root->abort = true;
return payment_continue(p);
@ -2429,9 +2415,9 @@ static inline void retry_step_cb(struct retry_mod_data *rd,
paymod_log(
p, LOG_DBG,
"Retrying %s/%d (%s), new partid %d. %d attempts left\n",
type_to_string(tmpctx, struct sha256, p->payment_hash),
fmt_sha256(tmpctx, p->payment_hash),
p->partid,
type_to_string(tmpctx, struct amount_msat, &p->our_amount),
fmt_amount_msat(tmpctx, p->our_amount),
subpayment->partid,
rdata->retries - 1);
}
@ -2585,14 +2571,14 @@ static struct route_info **filter_routehints(struct gossmap *map,
"Removed routehint %zu because "
"entrypoint %s is unknown. ",
i,
type_to_string(tmpctx, struct node_id,
&hints[i][0].pubkey));
fmt_node_id(tmpctx,
&hints[i][0].pubkey));
plugin_log(p->plugin, LOG_DBG,
"Removed routehint %zu because "
"entrypoint %s is unknown. ",
i,
type_to_string(tmpctx, struct node_id,
&hints[i][0].pubkey));
fmt_node_id(tmpctx,
&hints[i][0].pubkey));
tal_arr_remove(&hints, i);
i--;
continue;
@ -2609,14 +2595,14 @@ static struct route_info **filter_routehints(struct gossmap *map,
"Removed routehint %zu because "
"entrypoint %s is unreachable. ",
i,
type_to_string(tmpctx, struct node_id,
&hints[i][0].pubkey));
fmt_node_id(tmpctx,
&hints[i][0].pubkey));
plugin_log(p->plugin, LOG_DBG,
"Removed routehint %zu because "
"entrypoint %s is unreachable. ",
i,
type_to_string(tmpctx, struct node_id,
&hints[i][0].pubkey));
fmt_node_id(tmpctx,
&hints[i][0].pubkey));
tal_arr_remove(&hints, i);
i--;
}
@ -2810,10 +2796,9 @@ static void routehint_pre_getroute(struct routehints_data *d, struct payment *p)
tal_count(d->current_routehint));
paymod_log(
p, LOG_DBG, "Using routehint %s (%s) cltv_delta=%d",
type_to_string(tmpctx, struct node_id,
&d->current_routehint->pubkey),
type_to_string(tmpctx, struct short_channel_id,
&d->current_routehint->short_channel_id),
fmt_node_id(tmpctx, &d->current_routehint->pubkey),
fmt_short_channel_id(tmpctx,
d->current_routehint->short_channel_id),
d->current_routehint->cltv_expiry_delta);
/* Exclude the entrypoint to the routehint, so we don't end up
@ -2881,7 +2866,7 @@ static void routehint_check_reachable(struct payment *p)
p,
"Destination %s is not reachable directly and "
"all routehints were unusable.",
type_to_string(tmpctx, struct node_id, p->destination));
fmt_node_id(tmpctx, p->destination));
put_gossmap(p);
return;
}
@ -3072,8 +3057,8 @@ static void exemptfee_cb(struct exemptfee_data *d, struct payment *p)
p, LOG_INFORM,
"Payment fee constraint %s is below exemption threshold, "
"allowing a maximum fee of %s",
type_to_string(tmpctx, struct amount_msat, &p->constraints.fee_budget),
type_to_string(tmpctx, struct amount_msat, &d->amount));
fmt_amount_msat(tmpctx, p->constraints.fee_budget),
fmt_amount_msat(tmpctx, d->amount));
p->constraints.fee_budget = d->amount;
p->start_constraints->fee_budget = d->amount;
}
@ -3233,9 +3218,8 @@ static struct command_result *shadow_route_listchannels(struct command *cmd,
p, LOG_DBG,
"Adding shadow_route hop over channel %s: adding %s "
"in fees and %d CLTV delta",
type_to_string(tmpctx, struct short_channel_id,
&best->short_channel_id),
type_to_string(tmpctx, struct amount_msat, &best_fee),
fmt_short_channel_id(tmpctx, best->short_channel_id),
fmt_amount_msat(tmpctx, best_fee),
best->cltv_expiry_delta);
d->destination = best->pubkey;
@ -3259,12 +3243,11 @@ static struct command_result *shadow_route_listchannels(struct command *cmd,
"for shadow route extension. "
"payment fee budget %s, modifier "
"fee budget %s, shadow fee to add %s",
type_to_string(tmpctx, struct amount_msat,
&p->constraints.fee_budget),
type_to_string(tmpctx, struct amount_msat,
&d->constraints.fee_budget),
type_to_string(tmpctx, struct amount_msat,
&best_fee));
fmt_amount_msat(tmpctx,
p->constraints.fee_budget),
fmt_amount_msat(tmpctx,
d->constraints.fee_budget),
fmt_amount_msat(tmpctx, best_fee));
}
next:
@ -3341,8 +3324,7 @@ static void direct_pay_override(struct payment *p) {
paymod_log(p, LOG_DBG,
"Found a direct channel (%s) with sufficient "
"capacity, skipping route computation.",
type_to_string(tmpctx, struct short_channel_id_dir,
&hint->scid));
fmt_short_channel_id_dir(tmpctx, &hint->scid));
payment_set_step(p, PAYMENT_STEP_GOT_ROUTE);
}
@ -3696,11 +3678,9 @@ static void adaptive_splitter_cb(struct adaptive_split_mod_data *d, struct payme
"new partid %"PRIu32" (%s), "
"new partid %"PRIu32" (%s)",
a->partid,
type_to_string(tmpctx, struct amount_msat,
&a->our_amount),
fmt_amount_msat(tmpctx, a->our_amount),
b->partid,
type_to_string(tmpctx, struct amount_msat,
&b->our_amount));
fmt_amount_msat(tmpctx, b->our_amount));
/* Take note that we now have an additional split that
* may end up using an HTLC. */
@ -3709,10 +3689,9 @@ static void adaptive_splitter_cb(struct adaptive_split_mod_data *d, struct payme
paymod_log(p, LOG_INFORM,
"Lower limit of adaptive splitter reached "
"(%s < %s), not splitting further.",
type_to_string(tmpctx, struct amount_msat,
&p->our_amount),
type_to_string(tmpctx, struct amount_msat,
&MPP_ADAPTIVE_LOWER_LIMIT));
fmt_amount_msat(tmpctx, p->our_amount),
fmt_amount_msat(tmpctx,
MPP_ADAPTIVE_LOWER_LIMIT));
}
}
payment_continue(p);
@ -3787,7 +3766,7 @@ payee_incoming_limit_count(struct command *cmd,
why = tal_fmt(tmpctx,
"Destination %s has %zd channels, "
"assuming %d HTLCs per channel",
type_to_string(tmpctx, struct node_id,
fmt_node_id(tmpctx,
p->destination),
num_channels,
ASSUMED_MAX_HTLCS_PER_CHANNEL);

View file

@ -98,8 +98,8 @@ static struct command_result *pay_done(struct command *cmd,
plugin_log(cmd->plugin, LOG_INFORM,
"Payed out %s for invreq %s: %.*s",
type_to_string(tmpctx, struct amount_msat, &msat),
type_to_string(tmpctx, struct sha256, &inv->invreq_id),
fmt_amount_msat(tmpctx, msat),
fmt_sha256(tmpctx, &inv->invreq_id),
json_tok_full_len(result),
json_tok_full(buf, result));
return command_hook_success(cmd);
@ -145,7 +145,7 @@ static struct command_result *listinvreqs_done(struct command *cmd,
/* Since the invreq_id hashes all fields < 160, we know it matches */
if (arr->size == 0)
return fail_inv(cmd, inv, "Unknown invoice_request %s",
type_to_string(tmpctx, struct sha256, &inv->invreq_id));
fmt_sha256(tmpctx, &inv->invreq_id));
activetok = json_get_member(buf, arr + 1, "active");
if (!activetok) {
@ -186,8 +186,8 @@ static struct command_result *listinvreqs_done(struct command *cmd,
amt = amount_msat(*inv->inv->invoice_amount);
plugin_log(cmd->plugin, LOG_INFORM,
"Attempting payment of %s for invoice_request %s",
type_to_string(tmpctx, struct amount_msat, &amt),
type_to_string(tmpctx, struct sha256, &inv->invreq_id));
fmt_amount_msat(tmpctx, amt),
fmt_sha256(tmpctx, &inv->invreq_id));
req = jsonrpc_request_start(cmd->plugin, cmd, "pay",
pay_done, pay_error, inv);

View file

@ -140,8 +140,8 @@ static void json_add_label(struct json_stream *js,
char *label;
label = tal_fmt(tmpctx, "%s-%s-%u",
type_to_string(tmpctx, struct sha256, offer_id),
type_to_string(tmpctx, struct pubkey, payer_key),
fmt_sha256(tmpctx, offer_id),
fmt_pubkey(tmpctx, payer_key),
counter);
json_add_string(js, "label", label);
}
@ -717,8 +717,8 @@ static struct command_result *handle_amount_and_recurrence(struct command *cmd,
if (ir->invreq->offer_amount && ir->invreq->invreq_amount) {
if (amount_msat_less(amount_msat(*ir->invreq->invreq_amount), base_inv_amount)) {
return fail_invreq(cmd, ir, "Amount must be at least %s",
type_to_string(tmpctx, struct amount_msat,
&base_inv_amount));
fmt_amount_msat(tmpctx,
base_inv_amount));
}
/* BOLT-offers #12:
* - MAY fail the request if `invreq_amount`.`msat` greatly exceeds
@ -728,8 +728,8 @@ static struct command_result *handle_amount_and_recurrence(struct command *cmd,
if (amount_msat_greater(amount_msat_div(amount_msat(*ir->invreq->invreq_amount), 5),
base_inv_amount)) {
return fail_invreq(cmd, ir, "Amount vastly exceeds %s",
type_to_string(tmpctx, struct amount_msat,
&base_inv_amount));
fmt_amount_msat(tmpctx,
base_inv_amount));
}
base_inv_amount = amount_msat(*ir->invreq->invreq_amount);
}

View file

@ -339,8 +339,8 @@ static void add_amount_sent(struct plugin *p,
plugin_log(p, LOG_BROKEN,
"Cannot add amount_sent_msat for %s: %s + %s",
invstring,
type_to_string(tmpctx, struct amount_msat, &mpp->amount_sent),
type_to_string(tmpctx, struct amount_msat, &sent));
fmt_amount_msat(tmpctx, mpp->amount_sent),
fmt_amount_msat(tmpctx, sent));
msattok = json_get_member(buf, t, "amount_msat");
@ -366,8 +366,8 @@ static void add_amount_sent(struct plugin *p,
plugin_log(p, LOG_BROKEN,
"Cannot add amount_msat for %s: %s + %s",
invstring,
type_to_string(tmpctx, struct amount_msat, mpp->amount),
type_to_string(tmpctx, struct amount_msat, &sent));
fmt_amount_msat(tmpctx, *mpp->amount),
fmt_amount_msat(tmpctx, sent));
}
static void add_new_entry(struct json_stream *ret,

View file

@ -138,7 +138,8 @@ static void do_check_gossip (struct command *cmd)
json_add_node_id(req->js, "id", &peer_id);
plugin_log(plugin, LOG_DBG, "Connecting to: %s", type_to_string(tmpctx, struct node_id, &peer_id));
plugin_log(plugin, LOG_DBG, "Connecting to: %s",
fmt_node_id(tmpctx, &peer_id));
send_outreq(plugin, req);
}

View file

@ -23,7 +23,7 @@ static char *chan_extra_not_found_error(const tal_t *ctx,
{
return tal_fmt(ctx,
"chan_extra for scid=%s not found in chan_extra_map",
type_to_string(ctx, struct short_channel_id, scid));
fmt_short_channel_id(ctx, *scid));
}
bool chan_extra_is_busy(const struct chan_extra *const ce)
@ -43,12 +43,12 @@ const char *fmt_chan_extra_map(const tal_t *ctx,
ch=chan_extra_map_next(chan_extra_map,&it))
{
const char *scid_str =
type_to_string(this_ctx,struct short_channel_id,&ch->scid);
fmt_short_channel_id(this_ctx, ch->scid);
for(int dir=0;dir<2;++dir)
{
tal_append_fmt(&buff,"%s[%d]:(%s,%s)\n",scid_str,dir,
type_to_string(this_ctx,struct amount_msat,&ch->half[dir].known_min),
type_to_string(this_ctx,struct amount_msat,&ch->half[dir].known_max));
fmt_amount_msat(this_ctx, ch->half[dir].known_min),
fmt_amount_msat(this_ctx, ch->half[dir].known_max));
}
}
tal_free(this_ctx);
@ -517,9 +517,8 @@ static bool chan_extra_adjust_half(const tal_t *ctx, struct chan_extra *ce,
if(fail)
*fail = tal_fmt(
ctx, "cannot substract capacity=%s and known_min=%s",
type_to_string(ctx, struct amount_msat, &ce->capacity),
type_to_string(ctx, struct amount_msat,
&ce->half[!dir].known_min));
fmt_amount_msat(ctx, ce->capacity),
fmt_amount_msat(ctx, ce->half[!dir].known_min));
goto function_fail;
}
if (!amount_msat_sub(&new_known_min, ce->capacity,
@ -527,9 +526,8 @@ static bool chan_extra_adjust_half(const tal_t *ctx, struct chan_extra *ce,
if(fail)
*fail = tal_fmt(
ctx, "cannot substract capacity=%s and known_max=%s",
type_to_string(ctx, struct amount_msat, &ce->capacity),
type_to_string(ctx, struct amount_msat,
&ce->half[!dir].known_max));
fmt_amount_msat(ctx, ce->capacity),
fmt_amount_msat(ctx, ce->half[!dir].known_max));
goto function_fail;
}
@ -555,8 +553,8 @@ static bool chan_extra_can_send_(const tal_t *ctx, struct chan_extra *ce,
ctx,
"can send amount (%s) is larger than the "
"channel's capacity (%s)",
type_to_string(ctx, struct amount_msat, &x),
type_to_string(ctx, struct amount_msat, &ce->capacity));
fmt_amount_msat(ctx, x),
fmt_amount_msat(ctx, ce->capacity));
goto function_fail;
}
@ -636,10 +634,8 @@ bool chan_extra_cannot_send(const tal_t *ctx,
if(fail)
*fail = tal_fmt(
ctx, "htlc_total=%s is less than 0msats in channel %s",
type_to_string(this_ctx, struct amount_msat,
&ce->half[scidd->dir].htlc_total),
type_to_string(this_ctx, struct short_channel_id,
&scidd->scid));
fmt_amount_msat(this_ctx, ce->half[scidd->dir].htlc_total),
fmt_short_channel_id(this_ctx, scidd->scid));
goto function_fail;
}
@ -690,8 +686,8 @@ static bool chan_extra_set_liquidity_(const tal_t *ctx, struct chan_extra *ce,
ctx,
"tried to set liquidity (%s) to a value greater than "
"channel's capacity (%s)",
type_to_string(this_ctx, struct amount_msat, &x),
type_to_string(this_ctx, struct amount_msat, &ce->capacity));
fmt_amount_msat(this_ctx, x),
fmt_amount_msat(this_ctx, ce->capacity));
goto function_fail;
}
@ -775,8 +771,8 @@ bool chan_extra_sent_success(const tal_t *ctx,
ctx,
"sent success (%s) is larger than the "
"channel's capacity (%s)",
type_to_string(this_ctx, struct amount_msat, &x),
type_to_string(this_ctx, struct amount_msat, &ce->capacity));
fmt_amount_msat(this_ctx, x),
fmt_amount_msat(this_ctx, ce->capacity));
goto function_fail;
}
@ -1019,8 +1015,8 @@ static double edge_probability(const tal_t *ctx, struct amount_msat min,
if(fail)
*fail = tal_fmt(ctx,
"in_flight=%s cannot be greater than known_max+1=%s",
type_to_string(this_ctx, struct amount_msat, &in_flight),
type_to_string(this_ctx, struct amount_msat, &B)
fmt_amount_msat(this_ctx, in_flight),
fmt_amount_msat(this_ctx, B)
);
goto function_fail;
}
@ -1036,8 +1032,8 @@ static double edge_probability(const tal_t *ctx, struct amount_msat min,
{
if(fail)
*fail = tal_fmt(ctx,"known_max+1=%s must be greater than known_min=%s",
type_to_string(this_ctx, struct amount_msat, &B),
type_to_string(this_ctx, struct amount_msat, &A));
fmt_amount_msat(this_ctx, B),
fmt_amount_msat(this_ctx, A));
goto function_fail;
}
struct amount_msat numerator; // MAX(0,B-f)
@ -1078,11 +1074,9 @@ bool remove_completed_flow(const tal_t *ctx, const struct gossmap *gossmap,
"could not substract HTLC amounts, "
"total htlc amount = %s, "
"flow->amounts[%zu] = %s.",
type_to_string(this_ctx, struct amount_msat,
&h->htlc_total),
fmt_amount_msat(this_ctx, h->htlc_total),
i,
type_to_string(this_ctx, struct amount_msat,
&flow->amounts[i]));
fmt_amount_msat(this_ctx, flow->amounts[i]));
goto function_fail;
}
if (h->num_htlcs == 0)
@ -1142,8 +1136,7 @@ bool commit_flow(const tal_t *ctx, const struct gossmap *gossmap,
"could not add HTLC amounts, "
"flow->amounts[%zu] = %s.",
i,
type_to_string(this_ctx, struct amount_msat,
&flow->amounts[i]));
fmt_amount_msat(this_ctx, flow->amounts[i]));
goto function_fail;
}
h->num_htlcs++;

View file

@ -386,8 +386,8 @@ const char *try_paying(const tal_t *ctx,
"%s (line %d) could not substract maxspend=%s and amount=%s.",
__PRETTY_FUNCTION__,
__LINE__,
type_to_string(tmpctx, struct amount_msat, &payment->maxspend),
type_to_string(tmpctx, struct amount_msat, &payment->amount));
fmt_amount_msat(tmpctx, payment->maxspend),
fmt_amount_msat(tmpctx, payment->amount));
}
/* Fees spent so far */
@ -397,8 +397,8 @@ const char *try_paying(const tal_t *ctx,
"%s (line %d) could not substract total_sent=%s and total_delivering=%s.",
__PRETTY_FUNCTION__,
__LINE__,
type_to_string(tmpctx, struct amount_msat, &payment->total_sent),
type_to_string(tmpctx, struct amount_msat, &payment->total_delivering));
fmt_amount_msat(tmpctx, payment->total_sent),
fmt_amount_msat(tmpctx, payment->total_delivering));
}
/* Remaining fee budget. */
@ -408,8 +408,8 @@ const char *try_paying(const tal_t *ctx,
"%s (line %d) could not substract feebudget=%s and fees_spent=%s.",
__PRETTY_FUNCTION__,
__LINE__,
type_to_string(tmpctx, struct amount_msat, &feebudget),
type_to_string(tmpctx, struct amount_msat, &fees_spent));
fmt_amount_msat(tmpctx, feebudget),
fmt_amount_msat(tmpctx, fees_spent));
}
/* How much are we still trying to send? */
@ -419,8 +419,8 @@ const char *try_paying(const tal_t *ctx,
"%s (line %d) could not substract amount=%s and total_delivering=%s.",
__PRETTY_FUNCTION__,
__LINE__,
type_to_string(tmpctx, struct amount_msat, &payment->amount),
type_to_string(tmpctx, struct amount_msat, &payment->total_delivering));
fmt_amount_msat(tmpctx, payment->amount),
fmt_amount_msat(tmpctx, payment->total_delivering));
}
// plugin_log(pay_plugin->plugin,LOG_DBG,fmt_chan_extra_map(tmpctx,pay_plugin->chan_extra_map));
@ -739,7 +739,7 @@ payment_listsendpays_previous(
plugin_log(pay_plugin->plugin,LOG_DBG,
"this part is complete then "
"complete_msat = %s",
type_to_string(tmpctx,struct amount_msat,&complete_msat));
fmt_amount_msat(tmpctx, complete_msat));
} else if (streq(status, "pending")) {
/* If we have more than one pending group, something went wrong! */
if (pending_group_id != INVALID_ID
@ -792,7 +792,7 @@ payment_listsendpays_previous(
"delivering = %s, "
"last_partid = %"PRIu64,
pending_group_id,
type_to_string(tmpctx,struct amount_msat,&payment->total_delivering),
fmt_amount_msat(tmpctx, payment->total_delivering),
max_pending_partid);
if(amount_msat_greater_eq(payment->total_delivering,payment->amount))
@ -1234,8 +1234,8 @@ static void handle_sendpay_failure_flow(struct pay_flow *pf,
"Failure to forward amount %s in channel %s, "
"state change %s -> %s",
fmt_amount_msat(tmpctx, pf->amounts[erridx]),
type_to_string(tmpctx, struct short_channel_id_dir,
&pf->path_scidds[erridx]),
fmt_short_channel_id_dir(tmpctx,
&pf->path_scidds[erridx]),
old_state,
fmt_chan_extra_details(tmpctx,
pay_plugin->chan_extra_map,

View file

@ -60,9 +60,9 @@ static void remove_htlc_payflow(
"half total htlc amount = %s, "
"pf->amounts[%lld] = %s.",
__PRETTY_FUNCTION__,
type_to_string(tmpctx, struct amount_msat, &h->htlc_total),
fmt_amount_msat(tmpctx, h->htlc_total),
i,
type_to_string(tmpctx, struct amount_msat, &pf->amounts[i]));
fmt_amount_msat(tmpctx, pf->amounts[i]));
}
if (h->num_htlcs == 0)
{
@ -95,7 +95,7 @@ static void commit_htlc_payflow(
"pf->amounts[%lld] = %s.",
__PRETTY_FUNCTION__,
i,
type_to_string(tmpctx, struct amount_msat, &pf->amounts[i]));
fmt_amount_msat(tmpctx, pf->amounts[i]));
}
h->num_htlcs++;
}
@ -154,9 +154,8 @@ static u32 shadow_one_flow(const struct gossmap *gossmap,
if (!amount_msat_sub(shadow_fee, amount, f->amounts[numpath-1]))
plugin_err(pay_plugin->plugin,
"Failed to calc shadow fee: %s - %s",
type_to_string(tmpctx, struct amount_msat, &amount),
type_to_string(tmpctx, struct amount_msat,
&f->amounts[numpath-1]));
fmt_amount_msat(tmpctx, amount),
fmt_amount_msat(tmpctx, f->amounts[numpath-1]));
return shadow_delay;
}
@ -245,17 +244,14 @@ static u32 *shadow_additions(const tal_t *ctx,
"No shadow fee for flow %zu/%zu:"
" fee would add %s to %s, exceeding budget %s.",
i, tal_count(flows),
type_to_string(tmpctx, struct amount_msat,
&shadow_fee),
type_to_string(tmpctx, struct amount_msat,
&flows[i]->amounts[0]),
type_to_string(tmpctx, struct amount_msat,
&p->maxspend));
fmt_amount_msat(tmpctx, shadow_fee),
fmt_amount_msat(tmpctx,
flows[i]->amounts[0]),
fmt_amount_msat(tmpctx, p->maxspend));
} else {
payment_note(p, LOG_DBG,
"No MPP, so added %s shadow fee",
type_to_string(tmpctx, struct amount_msat,
&shadow_fee));
fmt_amount_msat(tmpctx, shadow_fee));
}
}
@ -279,9 +275,8 @@ static const char *flow_path_annotated(const tal_t *ctx,
char *s = tal_strdup(ctx, "");
for (size_t i = 0; i < tal_count(flow->path_scidds); i++) {
tal_append_fmt(&s, "-%s%s->",
type_to_string(tmpctx,
struct short_channel_id_dir,
&flow->path_scidds[i]),
fmt_short_channel_id_dir(tmpctx,
&flow->path_scidds[i]),
fmt_chan_extra_details(tmpctx,
pay_plugin->chan_extra_map,
&flow->path_scidds[i]));
@ -493,8 +488,7 @@ const char *add_payflows(const tal_t *ctx, struct payment *p,
fail = tal_fmt(
ctx,
"minflow couldn't find a feasible flow for %s, %s",
type_to_string(tmpctx, struct amount_msat,
&amount_to_deliver),
fmt_amount_msat(tmpctx, amount_to_deliver),
errmsg);
goto function_fail;
}
@ -533,7 +527,7 @@ const char *add_payflows(const tal_t *ctx, struct payment *p,
"we have computed a set of %ld flows with "
"probability %.3lf, fees %s and delay %ld",
tal_count(flows), prob,
type_to_string(tmpctx, struct amount_msat, &fee),
fmt_amount_msat(tmpctx, fee),
delay);
if (amount_msat_greater(fee, feebudget)) {
@ -542,9 +536,8 @@ const char *add_payflows(const tal_t *ctx, struct payment *p,
ctx,
"Fee exceeds our fee budget, "
"fee = %s (maxfee = %s)",
type_to_string(tmpctx, struct amount_msat, &fee),
type_to_string(tmpctx, struct amount_msat,
&feebudget));
fmt_amount_msat(tmpctx, fee),
fmt_amount_msat(tmpctx, feebudget));
goto function_fail;
}
if (delay > p->maxdelay) {
@ -635,8 +628,8 @@ const char *flow_path_to_str(const tal_t *ctx, const struct pay_flow *flow)
char *s = tal_strdup(ctx, "");
for (size_t i = 0; i < tal_count(flow->path_scidds); i++) {
tal_append_fmt(&s, "-%s->",
type_to_string(tmpctx, struct short_channel_id,
&flow->path_scidds[i].scid));
fmt_short_channel_id(tmpctx,
flow->path_scidds[i].scid));
}
return s;
}

View file

@ -75,7 +75,7 @@ static inline const char* fmt_payflow_key(
ctx,
"key: groupid=%"PRIu64", partid=%"PRIu64", payment_hash=%s",
k->groupid,k->partid,
type_to_string(ctx,struct sha256,&k->payment_hash));
fmt_sha256(ctx, &k->payment_hash));
return str;
}

View file

@ -96,7 +96,7 @@ void payflow_disable_chan(struct pay_flow *pf,
str = tal_vfmt(tmpctx, fmt, ap);
va_end(ap);
payflow_note(pf, lvl, "disabling %s: %s",
type_to_string(tmpctx, struct short_channel_id, &scid),
fmt_short_channel_id(tmpctx, scid),
str);
tal_arr_expand(&pf->payment->disabled_scids, scid);
}
@ -113,7 +113,7 @@ void payment_disable_chan(struct payment *p,
str = tal_vfmt(tmpctx, fmt, ap);
va_end(ap);
payment_note(p, lvl, "disabling %s: %s",
type_to_string(tmpctx, struct short_channel_id, &scid),
fmt_short_channel_id(tmpctx, scid),
str);
tal_arr_expand(&p->disabled_scids, scid);
}
@ -139,8 +139,8 @@ struct amount_msat payment_fees(const struct payment *p)
if(!amount_msat_sub(&fees,sent,delivered))
plugin_err(pay_plugin->plugin, "Strange, sent amount (%s) is less than delivered (%s), aborting.",
type_to_string(tmpctx,struct amount_msat,&sent),
type_to_string(tmpctx,struct amount_msat,&delivered));
fmt_amount_msat(tmpctx, sent),
fmt_amount_msat(tmpctx, delivered));
return fees;
}
@ -184,8 +184,8 @@ void payment_assert_delivering_incomplete(const struct payment *p)
{
plugin_err(pay_plugin->plugin,
"Strange, delivering (%s) is not smaller than amount (%s)",
type_to_string(tmpctx,struct amount_msat,&p->total_delivering),
type_to_string(tmpctx,struct amount_msat,&p->amount));
fmt_amount_msat(tmpctx, p->total_delivering),
fmt_amount_msat(tmpctx, p->amount));
}
}
void payment_assert_delivering_all(const struct payment *p)
@ -194,8 +194,8 @@ void payment_assert_delivering_all(const struct payment *p)
{
plugin_err(pay_plugin->plugin,
"Strange, delivering (%s) is less than amount (%s)",
type_to_string(tmpctx,struct amount_msat,&p->total_delivering),
type_to_string(tmpctx,struct amount_msat,&p->amount));
fmt_amount_msat(tmpctx, p->total_delivering),
fmt_amount_msat(tmpctx, p->amount));
}
}
@ -297,15 +297,12 @@ void payment_reconsider(struct payment *payment)
i->payment_preimage)) {
plugin_err(pay_plugin->plugin,
"Impossible preimage clash for %s: %s and %s?",
type_to_string(tmpctx,
struct sha256,
&payment->payment_hash),
type_to_string(tmpctx,
struct preimage,
payment->preimage),
type_to_string(tmpctx,
struct preimage,
i->payment_preimage));
fmt_sha256(tmpctx,
&payment->payment_hash),
fmt_preimage(tmpctx,
payment->preimage),
fmt_preimage(tmpctx,
i->payment_preimage));
}
} else {
payment->preimage = tal_dup(payment, struct preimage,
@ -337,13 +334,9 @@ void payment_reconsider(struct payment *payment)
plugin_log(pay_plugin->plugin, LOG_BROKEN,
"Destination %s succeeded payment %s"
" (preimage %s) after previous final failure?",
type_to_string(tmpctx, struct node_id,
&payment->destination),
type_to_string(tmpctx, struct sha256,
&payment->payment_hash),
type_to_string(tmpctx,
struct preimage,
payment->preimage));
fmt_node_id(tmpctx, &payment->destination),
fmt_sha256(tmpctx, &payment->payment_hash),
fmt_preimage(tmpctx, payment->preimage));
break;
}
@ -370,9 +363,9 @@ void payment_reconsider(struct payment *payment)
plugin_log(pay_plugin->plugin, LOG_BROKEN,
"Destination %s failed payment %s with %u/%s"
" after previous success?",
type_to_string(tmpctx, struct node_id,
fmt_node_id(tmpctx,
&payment->destination),
type_to_string(tmpctx, struct sha256,
fmt_sha256(tmpctx,
&payment->payment_hash),
final_error, final_msg);
break;
@ -401,7 +394,7 @@ void payment_reconsider(struct payment *payment)
if (have_state[PAY_FLOW_FAILED_GOSSIP_PENDING]) {
plugin_log(pay_plugin->plugin, LOG_DBG,
"%s waiting on addgossip return",
type_to_string(tmpctx, struct sha256,
fmt_sha256(tmpctx,
&payment->payment_hash));
return;
}

View file

@ -58,7 +58,7 @@ static const char* print_flows(
= gossmap_chan_scid(gossmap,
flows[i]->path[j]);
tal_append_fmt(&buff,"%s%s", j ? "->" : "",
type_to_string(this_ctx, struct short_channel_id, &scid));
fmt_short_channel_id(this_ctx, scid));
}
delivered = flows[i]->amounts[tal_count(flows[i]->amounts)-1];
if (!amount_msat_sub(&fee, flows[i]->amounts[0], delivered))
@ -67,8 +67,8 @@ static const char* print_flows(
}
tal_append_fmt(&buff," prob %.2f, %s delivered with fee %s\n",
flows[i]->success_prob,
type_to_string(this_ctx, struct amount_msat, &delivered),
type_to_string(this_ctx, struct amount_msat, &fee));
fmt_amount_msat(this_ctx, delivered),
fmt_amount_msat(this_ctx, fee));
}
tal_free(this_ctx);

View file

@ -307,15 +307,15 @@ static const char *print_flows(
= gossmap_chan_scid(gossmap,
flows[i]->path[j]);
tal_append_fmt(&buff,"%s%s", j ? "->" : "",
type_to_string(this_ctx, struct short_channel_id, &scid));
fmt_short_channel_id(this_ctx, scid));
}
delivered = flows[i]->amounts[tal_count(flows[i]->amounts)-1];
if (!amount_msat_sub(&fee, flows[i]->amounts[0], delivered))
abort();
tal_append_fmt(&buff," prob %.2f, %s delivered with fee %s\n",
flows[i]->success_prob,
type_to_string(this_ctx, struct amount_msat, &delivered),
type_to_string(this_ctx, struct amount_msat, &fee));
fmt_amount_msat(this_ctx, delivered),
fmt_amount_msat(this_ctx, fee));
}
tal_free(this_ctx);
return buff;

View file

@ -207,8 +207,8 @@ void uncertainty_network_flow_success(
"Success forwarding amount %s in channel %s, "
"state change %s -> %s",
fmt_amount_msat(tmpctx, pf->amounts[i]),
type_to_string(tmpctx, struct short_channel_id_dir,
&pf->path_scidds[i]),
fmt_short_channel_id_dir(tmpctx,
&pf->path_scidds[i]),
old_state,
fmt_chan_extra_details(tmpctx,
pay_plugin->chan_extra_map,
@ -263,8 +263,7 @@ void uncertainty_network_update_from_listpeerchannels(struct payment *p,
tmpctx,
"Failed to update channel from listpeerchannels "
"scid=%s, missing total_msat",
type_to_string(tmpctx, struct short_channel_id,
&scidd->scid));
fmt_short_channel_id(tmpctx, scidd->scid));
goto error;
}
if (!json_to_msat(buf, totaltok, &capacity)) {
@ -272,8 +271,7 @@ void uncertainty_network_update_from_listpeerchannels(struct payment *p,
tmpctx,
"Failed to update channel from listpeerchannels "
"scid=%s, cannot parse total_msat",
type_to_string(tmpctx, struct short_channel_id,
&scidd->scid));
fmt_short_channel_id(tmpctx, scidd->scid));
goto error;
}
@ -312,9 +310,7 @@ void uncertainty_network_relax_fraction(struct chan_extra_map *chan_extra_map,
plugin_err(pay_plugin->plugin,
"chan_extra_relax_fraction failed for "
"channel %s: %s",
type_to_string(tmpctx,
struct short_channel_id,
&ce->scid),
fmt_short_channel_id(tmpctx, ce->scid),
fail);
}
}

View file

@ -585,15 +585,14 @@ after_signpsbt(struct command *cmd,
/* It should be well-formed? */
plugin_err(mfc->cmd->plugin,
"mfc: could not set PSBT version: %s",
type_to_string(tmpctx, struct wally_psbt,
mfc->psbt));
fmt_wally_psbt(tmpctx, mfc->psbt));
}
if (!psbt_finalize(psbt))
plugin_err(mfc->cmd->plugin,
"mfc %"PRIu64": Signed PSBT won't finalize"
"%s", mfc->id,
type_to_string(tmpctx, struct wally_psbt, psbt));
fmt_wally_psbt(tmpctx, psbt));
/* Replace the PSBT. */
@ -860,8 +859,7 @@ perform_funding_tx_finalize(struct multifundchannel_command *mfc)
/* It should be well-formed? */
plugin_err(mfc->cmd->plugin,
"mfc: could not set PSBT version: %s",
type_to_string(tmpctx, struct wally_psbt,
mfc->psbt));
fmt_wally_psbt(tmpctx, mfc->psbt));
}
/* Construct a deck of destinations. */
@ -906,11 +904,8 @@ perform_funding_tx_finalize(struct multifundchannel_command *mfc)
if (v2_dest_count == 0)
dest->outnum = outnum;
tal_append_fmt(&content, "%s: %s",
type_to_string(tmpctx, struct node_id,
&dest->id),
type_to_string(tmpctx,
struct amount_sat,
&dest->amount));
fmt_node_id(tmpctx, &dest->id),
fmt_amount_sat(tmpctx, dest->amount));
}
if (v2_dest_count > 0) {
@ -938,16 +933,14 @@ perform_funding_tx_finalize(struct multifundchannel_command *mfc)
plugin_log(mfc->cmd->plugin, LOG_DBG,
"mfc %"PRIu64": funding tx %s: %s",
mfc->id,
type_to_string(tmpctx, struct bitcoin_txid,
mfc->txid),
fmt_bitcoin_txid(tmpctx, mfc->txid),
content);
if (!psbt_set_version(mfc->psbt, psbt_version)) {
/* It should be well-formed? */
plugin_err(mfc->cmd->plugin,
"mfc: could not set PSBT version: %s",
type_to_string(tmpctx, struct wally_psbt,
mfc->psbt));
fmt_wally_psbt(tmpctx, mfc->psbt));
}
/* Now we can feed the TXID and outnums to the peer. */
@ -1150,7 +1143,7 @@ fundchannel_start_dest(struct multifundchannel_destination *dest)
if (dest->reserve)
json_add_string(
req->js, "reserve",
type_to_string(tmpctx, struct amount_sat, dest->reserve));
fmt_amount_sat(tmpctx, *dest->reserve));
send_outreq(cmd->plugin, req);
}
@ -1164,7 +1157,7 @@ perform_channel_start(struct multifundchannel_command *mfc)
"mfc %"PRIu64": fundchannel_start parallel "
"with PSBT %s",
mfc->id,
type_to_string(tmpctx, struct wally_psbt, mfc->psbt));
fmt_wally_psbt(tmpctx, mfc->psbt));
mfc->pending = tal_count(mfc->destinations);
@ -1396,8 +1389,7 @@ perform_fundpsbt(struct multifundchannel_command *mfc, u32 feerate)
}
}
json_add_string(req->js, "satoshi",
type_to_string(tmpctx, struct amount_sat,
&sum));
fmt_amount_sat(tmpctx, sum));
}
json_add_string(req->js, "feerate", tal_fmt(tmpctx, "%uperkw", feerate));

View file

@ -194,9 +194,8 @@ json_multiwithdraw(struct command *cmd,
return command_fail(cmd, FUND_OUTPUT_IS_DUST,
"Output %s would be "
"dust.",
type_to_string(tmpctx,
struct amount_sat,
&mw->outputs[i].amount));
fmt_amount_sat(tmpctx,
mw->outputs[i].amount));
/* Begin. */
return start_mw(mw);
@ -380,8 +379,7 @@ static struct command_result *start_mw(struct multiwithdraw_command *mw)
FUND_CANNOT_AFFORD,
"Overflow in amount sum.");
json_add_string(req->js, "satoshi",
type_to_string(tmpctx, struct amount_sat,
&sum));
fmt_amount_sat(tmpctx, sum));
}
json_add_string(req->js, "feerate", mw->feerate);
json_add_u64(req->js, "startweight", startweight);
@ -468,9 +466,7 @@ mw_after_fundpsbt(struct command *cmd,
if (amount_sat_less(excess_sat, chainparams->dust_limit))
return mw_fail(mw, FUND_OUTPUT_IS_DUST,
"Output 'all' %s would be dust.",
type_to_string(tmpctx,
struct amount_sat,
&excess_sat));
fmt_amount_sat(tmpctx, excess_sat));
/* Transfer the excess to the 'all' output. */
mw->outputs[all_index].amount = excess_sat;

View file

@ -442,8 +442,8 @@ openchannel_signed_dest(struct multifundchannel_destination *dest)
"mfc %"PRIu64", dest %u: `openchannel_signed` %s "
"psbt %s",
mfc->id, dest->index,
type_to_string(tmpctx, struct channel_id, &dest->channel_id),
type_to_string(tmpctx, struct wally_psbt, dest->psbt));
fmt_channel_id(tmpctx, &dest->channel_id),
fmt_wally_psbt(tmpctx, dest->psbt));
req = jsonrpc_request_start(cmd->plugin,
cmd,
@ -564,7 +564,7 @@ static struct command_result *json_peer_sigs(struct command *cmd,
plugin_log(cmd->plugin, LOG_DBG,
"mfc ??: `openchannel_peer_sigs` no "
"pending dest found for channel_id %s",
type_to_string(tmpctx, struct channel_id, &cid));
fmt_channel_id(tmpctx, &cid));
return notification_handled(cmd);
}
@ -582,9 +582,8 @@ static struct command_result *json_peer_sigs(struct command *cmd,
"mfc %"PRIu64": Unable to combine signed "
"PSBT with roll-up. "
"Signed %s, prev %s", dest->mfc->id,
type_to_string(tmpctx, struct wally_psbt, psbt),
type_to_string(tmpctx, struct wally_psbt,
dest->mfc->psbt));
fmt_wally_psbt(tmpctx, psbt),
fmt_wally_psbt(tmpctx, dest->mfc->psbt));
tal_wally_end(dest->mfc->psbt);
@ -634,8 +633,7 @@ funding_transaction_established(struct multifundchannel_command *mfc)
plugin_log(mfc->cmd->plugin, LOG_DBG,
"mfc %"PRIu64": funding tx %s",
mfc->id,
type_to_string(tmpctx, struct bitcoin_txid,
mfc->txid));
fmt_bitcoin_txid(tmpctx, mfc->txid));
/* If all we've got is v2 destinations, we're just waiting
* for all of our peers to send us their sigs.
@ -795,7 +793,7 @@ openchannel_update_dest(struct multifundchannel_destination *dest)
"with psbt %s",
mfc->id, dest->index,
fmt_node_id(tmpctx, &dest->id),
type_to_string(tmpctx, struct wally_psbt, dest->psbt));
fmt_wally_psbt(tmpctx, dest->psbt));
req = jsonrpc_request_start(cmd->plugin,
cmd,
@ -1022,8 +1020,7 @@ openchannel_init_dest(struct multifundchannel_destination *dest)
"Using openchannel for %s open, "
"ignoring `push_msat` of %s",
fmt_node_id(tmpctx, &dest->id),
type_to_string(tmpctx, struct amount_msat,
&dest->push_msat));
fmt_amount_msat(tmpctx, dest->push_msat));
/* Request some sats from the peer! */
if (!amount_sat_zero(dest->request_amt)) {

View file

@ -849,7 +849,7 @@ static struct command_result *channels_refresh(struct command *cmd,
}
plugin_log(cmd->plugin, LOG_DBG, "Refreshing channel: %s",
type_to_string(tmpctx, struct short_channel_id, &scid));
fmt_short_channel_id(tmpctx, scid));
/* FIXME: sqlite 3.24.0 (2018-06-04) added UPSERT, but
* we don't require it. */
delete_channel_from_db(cmd, scid);
@ -866,7 +866,7 @@ static struct command_result *channels_refresh(struct command *cmd,
break;
}
plugin_log(cmd->plugin, LOG_DBG, "Deleting channel: %s",
type_to_string(tmpctx, struct short_channel_id, &scid));
fmt_short_channel_id(tmpctx, scid));
delete_channel_from_db(cmd, scid);
}
}

View file

@ -523,10 +523,8 @@ int main(int argc, const char *argv[])
if (!amount_sat_eq(cases[i].exp_our_funds, our_funds)) {
fprintf(stderr, "FAIL policy: %s. expected %s, got %s\n",
funder_policy_desc(NULL, &cases[i].policy),
type_to_string(NULL, struct amount_sat,
&cases[i].exp_our_funds),
type_to_string(NULL, struct amount_sat,
&our_funds));
fmt_amount_sat(NULL, cases[i].exp_our_funds),
fmt_amount_sat(NULL, our_funds));
ok = false;
}
if (cases[i].expect_err != (err != NULL)) {

View file

@ -407,8 +407,8 @@ int main(int argc, char *argv[])
AMOUNT_MSAT(1000000 * 1000),
0, 0, 0);
SUPERVERBOSE("Joining %s to %s, fee %u\n",
type_to_string(tmpctx, struct node_id, &ids[i-1]),
type_to_string(tmpctx, struct node_id, &ids[i]),
fmt_node_id(tmpctx, &ids[i-1]),
fmt_node_id(tmpctx, &ids[i]),
0);
if (i <= 2)
@ -420,8 +420,8 @@ int main(int argc, char *argv[])
AMOUNT_MSAT(1000000 * 1000),
1 << i, 0, 0);
SUPERVERBOSE("Joining %s to %s, fee %u\n",
type_to_string(tmpctx, struct node_id, &ids[1]),
type_to_string(tmpctx, struct node_id, &ids[i]),
fmt_node_id(tmpctx, &ids[1]),
fmt_node_id(tmpctx, &ids[i]),
1 << i);
}
@ -431,8 +431,8 @@ int main(int argc, char *argv[])
struct route_hop *r;
const char *errmsg;
SUPERVERBOSE("%s -> %s:\n",
type_to_string(tmpctx, struct node_id, &ids[0]),
type_to_string(tmpctx, struct node_id, &ids[NUM_NODES-1]));
fmt_node_id(tmpctx, &ids[0]),
fmt_node_id(tmpctx, &ids[NUM_NODES-1]));
src = gossmap_find_node(global_gossmap, &ids[0]);
dst = gossmap_find_node(global_gossmap, &ids[NUM_NODES-1]);

Some files were not shown because too many files have changed in this diff Show more