@@ -138,6 +138,8 @@ function splitTokensInEvenly(gainLoss: {
138138
139139const buybackOperators = [
140140 addresses . multisig [ 'multichain-guardian' ] ,
141+ '0xd7b28d06365b85933c64e11e639ea0d3bc0e3bab' , // Legacy OUSD Buyback
142+ '0xfd6c58850cacf9ccf6e8aee479bfb4df14a362d2' , // Legacy OETH Buyback
141143 '0xbb077e716a5f1f1b63ed5244ebff5214e50fec8c' , // Current Operator
142144]
143145
@@ -250,7 +252,7 @@ export const ognBuybacks = defineProcessor({
250252 )
251253 if ( ! transferFrom ) {
252254 // console.log('no transferFrom', log.transactionHash)
253- return
255+ continue
254256 }
255257
256258 const tokenOut = transferFrom . log . address
@@ -262,7 +264,7 @@ export const ognBuybacks = defineProcessor({
262264 const { from, value } = erc20Abi . events . Transfer . decode ( log )
263265 if ( from !== XOGN_ADDRESS ) {
264266 const buyback = new OGNBuyback ( {
265- id : log . id ,
267+ id : ` ${ ctx . chain . id } - ${ log . transactionHash } - ${ tokenOut } ` ,
266268 blockNumber : block . header . height ,
267269 timestamp : new Date ( block . header . timestamp ) ,
268270 operator : transferFrom . data . from . toLowerCase ( ) ,
@@ -277,11 +279,14 @@ export const ognBuybacks = defineProcessor({
277279 ) ,
278280 txHash : log . transactionHash ,
279281 } )
282+ if ( buybacks . find ( ( b ) => b . id === buyback . id ) ) {
283+ throw new Error ( 'duplicate buyback ' + buyback . id )
284+ }
280285 buybacks . push ( buyback )
281286 }
282287 }
283288 }
284289 }
285- await ctx . store . save ( buybacks )
290+ await ctx . store . insert ( buybacks )
286291 } ,
287292} )
0 commit comments