提交 6b3324c6 编写于 作者: P pangang

fix a bug leading to revert tether address fail

上级 cad99a28
...@@ -351,13 +351,6 @@ func (s *BTCSplitter) SaveBlock(data *BTCBlockData) error { ...@@ -351,13 +351,6 @@ func (s *BTCSplitter) SaveBlock(data *BTCBlockData) error {
return nil return nil
} }
for i := blocks[0].Height; i >= data.Block.Height; i-- { for i := blocks[0].Height; i >= data.Block.Height; i-- {
err = s.RevertBlock(i, tx)
if err != nil {
_ = tx.Rollback()
log.DetailError(err)
stats.Add(MetricDatabaseRollback, 1)
return err
}
if s.cfg.OmniEnable { if s.cfg.OmniEnable {
err = s.RevertTetherAddress(i, tx) err = s.RevertTetherAddress(i, tx)
if err != nil { if err != nil {
...@@ -367,6 +360,13 @@ func (s *BTCSplitter) SaveBlock(data *BTCBlockData) error { ...@@ -367,6 +360,13 @@ func (s *BTCSplitter) SaveBlock(data *BTCBlockData) error {
return err return err
} }
} }
err = s.RevertBlock(i, tx)
if err != nil {
_ = tx.Rollback()
log.DetailError(err)
stats.Add(MetricDatabaseRollback, 1)
return err
}
stats.Add(MetricRevertBlock, 1) stats.Add(MetricRevertBlock, 1)
} }
} }
...@@ -682,6 +682,11 @@ func (s *BTCSplitter) RevertTetherAddress(height int64, tx *service.Transaction) ...@@ -682,6 +682,11 @@ func (s *BTCSplitter) RevertTetherAddress(height int64, tx *service.Transaction)
} }
addressList = append(addressList, addressInfo) addressList = append(addressList, addressInfo)
} }
sql = fmt.Sprintf("DELETE FROM btc_tether_address where address in (SELECT sending_address FROM btc_omni_transaction WHERE block_height=%d UNION SELECT reference_address FROM btc_omni_transaction WHERE block_height=%d)", height, height)
_, err = tx.Exec(sql)
if err != nil {
return err
}
_, err = tx.BatchInsert(addressList) _, err = tx.BatchInsert(addressList)
if err != nil { if err != nil {
return err return err
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册