| 1719 | } |
| 1720 | |
| 1721 | void wallet_channel_stats_load(struct wallet *w, |
| 1722 | u64 id, |
| 1723 | struct channel_stats *stats) |
| 1724 | { |
| 1725 | struct db_stmt *stmt; |
| 1726 | int res; |
| 1727 | stmt = db_prepare_v2(w->db, SQL( |
| 1728 | "SELECT" |
| 1729 | " in_payments_offered, in_payments_fulfilled" |
| 1730 | ", in_msatoshi_offered, in_msatoshi_fulfilled" |
| 1731 | ", out_payments_offered, out_payments_fulfilled" |
| 1732 | ", out_msatoshi_offered, out_msatoshi_fulfilled" |
| 1733 | " FROM channels" |
| 1734 | " WHERE id = ?")); |
| 1735 | db_bind_u64(stmt, 0, id); |
| 1736 | db_query_prepared(stmt); |
| 1737 | |
| 1738 | res = db_step(stmt); |
| 1739 | |
| 1740 | /* This must succeed, since we know the channel exists */ |
| 1741 | assert(res); |
| 1742 | |
| 1743 | stats->in_payments_offered |
| 1744 | = db_col_int_or_default(stmt, "in_payments_offered", 0); |
| 1745 | stats->in_payments_fulfilled |
| 1746 | = db_col_int_or_default(stmt, "in_payments_fulfilled", 0); |
| 1747 | db_col_amount_msat_or_default(stmt, "in_msatoshi_offered", |
| 1748 | &stats->in_msatoshi_offered, |
| 1749 | AMOUNT_MSAT(0)); |
| 1750 | db_col_amount_msat_or_default(stmt, "in_msatoshi_fulfilled", |
| 1751 | &stats->in_msatoshi_fulfilled, |
| 1752 | AMOUNT_MSAT(0)); |
| 1753 | stats->out_payments_offered |
| 1754 | = db_col_int_or_default(stmt, "out_payments_offered", 0); |
| 1755 | stats->out_payments_fulfilled |
| 1756 | = db_col_int_or_default(stmt, "out_payments_fulfilled", 0); |
| 1757 | db_col_amount_msat_or_default(stmt, "out_msatoshi_offered", |
| 1758 | &stats->out_msatoshi_offered, |
| 1759 | AMOUNT_MSAT(0)); |
| 1760 | db_col_amount_msat_or_default(stmt, "out_msatoshi_fulfilled", |
| 1761 | &stats->out_msatoshi_fulfilled, |
| 1762 | AMOUNT_MSAT(0)); |
| 1763 | tal_free(stmt); |
| 1764 | } |
| 1765 | |
| 1766 | void wallet_blocks_heights(struct wallet *w, u32 def, u32 *min, u32 *max) |
| 1767 | { |
nothing calls this directly
no test coverage detected