@@ -128,6 +128,23 @@ static struct invoice_details *wallet_stmt2invoice_details(const tal_t *ctx,
128128 return dtl ;
129129}
130130
131+ /* Update expirations. */
132+ static void update_db_expirations (struct invoices * invoices , u64 now )
133+ {
134+ sqlite3_stmt * stmt ;
135+ stmt = db_prepare (invoices -> db ,
136+ "UPDATE invoices"
137+ " SET state = ?"
138+ " WHERE state = ?"
139+ " AND expiry_time <= ?;" );
140+ sqlite3_bind_int (stmt , 1 , EXPIRED );
141+ sqlite3_bind_int (stmt , 2 , UNPAID );
142+ sqlite3_bind_int64 (stmt , 3 , now );
143+ db_exec_prepared (invoices -> db , stmt );
144+ }
145+
146+ static void install_expiration_timer (struct invoices * invoices );
147+
131148struct invoices * invoices_new (const tal_t * ctx ,
132149 struct db * db ,
133150 struct log * log ,
@@ -144,30 +161,16 @@ struct invoices *invoices_new(const tal_t *ctx,
144161 invs -> expiration_timer = NULL ;
145162 invs -> autoclean_timer = NULL ;
146163
164+ update_db_expirations (invs , time_now ().ts .tv_sec );
165+ install_expiration_timer (invs );
147166 return invs ;
148167}
149168
150- /* Update expirations. */
151- static void update_db_expirations (struct invoices * invoices , u64 now )
152- {
153- sqlite3_stmt * stmt ;
154- stmt = db_prepare (invoices -> db ,
155- "UPDATE invoices"
156- " SET state = ?"
157- " WHERE state = ?"
158- " AND expiry_time <= ?;" );
159- sqlite3_bind_int (stmt , 1 , EXPIRED );
160- sqlite3_bind_int (stmt , 2 , UNPAID );
161- sqlite3_bind_int64 (stmt , 3 , now );
162- db_exec_prepared (invoices -> db , stmt );
163- }
164-
165169struct invoice_id_node {
166170 struct list_node list ;
167171 u64 id ;
168172};
169173
170- static void install_expiration_timer (struct invoices * invoices );
171174static void trigger_expiration (struct invoices * invoices )
172175{
173176 struct list_head idlist ;
@@ -254,17 +257,6 @@ static void install_expiration_timer(struct invoices *invoices)
254257 invoices );
255258}
256259
257- bool invoices_load (struct invoices * invoices )
258- {
259- u64 now = time_now ().ts .tv_sec ;
260-
261- update_db_expirations (invoices , now );
262-
263- install_expiration_timer (invoices );
264-
265- return true;
266- }
267-
268260bool invoices_create (struct invoices * invoices ,
269261 struct invoice * pinvoice ,
270262 u64 * msatoshi TAKES ,
0 commit comments