@@ -188,10 +188,18 @@ export class ChainhookPgStore extends BasePgStoreModule {
188
188
network_id : messageData . mock_proposal . peer_info . network_id ,
189
189
index_block_hash : normalizeHexString ( messageData . mock_proposal . peer_info . index_block_hash ) ,
190
190
} ;
191
- await sql `
191
+ const result = await sql `
192
192
INSERT INTO mock_blocks ${ sql ( dbMockBlock ) }
193
+ ON CONFLICT ON CONSTRAINT mock_blocks_idb_unique DO NOTHING
193
194
` ;
194
195
196
+ if ( result . count === 0 ) {
197
+ logger . info (
198
+ `Skipped inserting duplicate mock block height=${ dbMockBlock . stacks_tip_height } , hash=${ dbMockBlock . stacks_tip } `
199
+ ) ;
200
+ return ;
201
+ }
202
+
195
203
for ( const batch of batchIterate ( messageData . mock_signatures , 500 ) ) {
196
204
const sigs = batch . map ( sig => {
197
205
const dbSig : DbMockBlockSignerSignature = {
@@ -235,9 +243,15 @@ export class ChainhookPgStore extends BasePgStoreModule {
235
243
// Metadata fields
236
244
metadata_server_version : messageData . metadata . server_version ,
237
245
} ;
238
- await sql `
246
+ const result = await sql `
239
247
INSERT INTO mock_signatures ${ sql ( dbMockSignature ) }
248
+ ON CONFLICT ON CONSTRAINT mock_signatures_signer_key_idb_unique DO NOTHING
240
249
` ;
250
+ if ( result . count === 0 ) {
251
+ logger . info (
252
+ `Skipped inserting duplicate mock signature height=${ dbMockSignature . stacks_tip_height } , hash=${ dbMockSignature . stacks_tip } , signer=${ dbMockSignature . signer_key } `
253
+ ) ;
254
+ }
241
255
}
242
256
243
257
private async applyMockProposal (
@@ -258,9 +272,15 @@ export class ChainhookPgStore extends BasePgStoreModule {
258
272
network_id : messageData . network_id ,
259
273
index_block_hash : normalizeHexString ( messageData . index_block_hash ) ,
260
274
} ;
261
- await sql `
275
+ const result = await sql `
262
276
INSERT INTO mock_proposals ${ sql ( dbMockProposal ) }
277
+ ON CONFLICT ON CONSTRAINT mock_proposals_idb_unique DO NOTHING
263
278
` ;
279
+ if ( result . count === 0 ) {
280
+ logger . info (
281
+ `Skipped inserting duplicate mock proposal height=${ dbMockProposal . stacks_tip_height } , hash=${ dbMockProposal . stacks_tip } `
282
+ ) ;
283
+ }
264
284
}
265
285
266
286
private async applyBlockProposal (
@@ -332,7 +352,7 @@ export class ChainhookPgStore extends BasePgStoreModule {
332
352
333
353
if ( result . count === 0 ) {
334
354
logger . info (
335
- `Skipped inserting duplicate block response signer_key =${ dbBlockResponse . signer_key } , hash=${ dbBlockResponse . signer_sighash } `
355
+ `Skipped inserting duplicate block response signer =${ dbBlockResponse . signer_key } , hash=${ dbBlockResponse . signer_sighash } `
336
356
) ;
337
357
}
338
358
}
0 commit comments