@@ -115,21 +115,34 @@ impl<L: Deref> GossipPersister<L> where L::Target: Logger {
115115 }
116116
117117 match & gossip_message {
118- GossipMessage :: ChannelAnnouncement ( announcement) => {
118+ GossipMessage :: ChannelAnnouncement ( announcement, timestamp ) => {
119119 let scid = announcement. contents . short_channel_id as i64 ;
120120
121121 // start with the type prefix, which is already known a priori
122122 let mut announcement_signed = Vec :: new ( ) ;
123123 announcement. write ( & mut announcement_signed) . unwrap ( ) ;
124124
125- tokio:: time:: timeout ( POSTGRES_INSERT_TIMEOUT , client
126- . execute ( "INSERT INTO channel_announcements (\
125+ if let Some ( timestamp) = timestamp {
126+ tokio:: time:: timeout ( POSTGRES_INSERT_TIMEOUT , client
127+ . execute ( "INSERT INTO channel_announcements (\
128+ short_channel_id, \
129+ announcement_signed, \
130+ seen \
131+ ) VALUES ($1, $2, TO_TIMESTAMP($3)) ON CONFLICT (short_channel_id) DO NOTHING", & [
132+ & scid,
133+ & announcement_signed,
134+ & ( * timestamp as f64 )
135+ ] ) ) . await . unwrap ( ) . unwrap ( ) ;
136+ } else {
137+ tokio:: time:: timeout ( POSTGRES_INSERT_TIMEOUT , client
138+ . execute ( "INSERT INTO channel_announcements (\
127139 short_channel_id, \
128140 announcement_signed \
129141 ) VALUES ($1, $2) ON CONFLICT (short_channel_id) DO NOTHING", & [
130- & scid,
131- & announcement_signed
132- ] ) ) . await . unwrap ( ) . unwrap ( ) ;
142+ & scid,
143+ & announcement_signed
144+ ] ) ) . await . unwrap ( ) . unwrap ( ) ;
145+ }
133146 }
134147 GossipMessage :: ChannelUpdate ( update) => {
135148 let scid = update. contents . short_channel_id as i64 ;
0 commit comments