MCPcopy Create free account
hub / github.com/ElementsProject/lightning / wallet_channel_delete

Function wallet_channel_delete

wallet/wallet.c:3189–3225  ·  view source on GitHub ↗

Completely unused channels get wiped entirely (we've already closed it above) */

Source from the content-addressed store, hash-verified

3187
3188/* Completely unused channels get wiped entirely (we've already closed it above) */
3189void wallet_channel_delete(struct wallet *w, const struct channel *channel)
3190{
3191 struct db_stmt *stmt;
3192
3193 /* Delete channel configuration for both sides */
3194 stmt = db_prepare_v2(w->db, SQL("DELETE FROM channel_configs"
3195 " WHERE id=? OR id=?"));
3196 db_bind_u64(stmt, channel->channel_info.their_config.id);
3197 db_bind_u64(stmt, channel->our_config.id);
3198 db_exec_prepared_v2(stmt);
3199
3200 assert(db_count_changes(stmt) == 2);
3201 tal_free(stmt);
3202
3203 /* Delete shachains */
3204 stmt = db_prepare_v2(w->db, SQL("DELETE FROM shachains "
3205 "WHERE id IN ("
3206 " SELECT shachain_remote_id "
3207 " FROM channels "
3208 " WHERE channels.id=?"
3209 ")"));
3210 db_bind_u64(stmt, channel->dbid);
3211 db_exec_prepared_v2(stmt);
3212
3213 assert(db_count_changes(stmt) == 1);
3214 tal_free(stmt);
3215
3216 stmt = db_prepare_v2(w->db, SQL("DELETE FROM channels"
3217 " WHERE state = ?"
3218 " AND id=?"));
3219 db_bind_u64(stmt, channel_state_in_db(CLOSED));
3220 db_bind_u64(stmt, channel->dbid);
3221 db_exec_prepared_v2(stmt);
3222
3223 assert(db_count_changes(stmt) == 1);
3224 tal_free(stmt);
3225}
3226
3227void wallet_channel_inflight_cleanup_incomplete(struct wallet *w, u64 wallet_id)
3228{

Callers 1

delete_channelFunction · 0.85

Calls 5

db_bind_u64Function · 0.85
db_exec_prepared_v2Function · 0.85
db_count_changesFunction · 0.85
tal_freeFunction · 0.85
channel_state_in_dbFunction · 0.85

Tested by

no test coverage detected