InvalidateTx invalidates eth transactions based on block number.
(db *gorp.DbMap, blkNumber uint64)
| 189 | |
| 190 | // InvalidateTx invalidates eth transactions based on block number. |
| 191 | func InvalidateTx(db *gorp.DbMap, blkNumber uint64) (err error) { |
| 192 | var records []*TxRecord |
| 193 | defer func() { |
| 194 | for _, r := range records { |
| 195 | _ = AddAuditRecord(db, &AuditRecord{ |
| 196 | Hash: r.Hash, |
| 197 | Op: "chain_reorganize", |
| 198 | Data: blkNumber, |
| 199 | Error: err.Error(), |
| 200 | }) |
| 201 | } |
| 202 | |
| 203 | if len(records) == 0 { |
| 204 | _ = AddAuditRecord(db, &AuditRecord{ |
| 205 | Op: "chain_reorganize", |
| 206 | Data: blkNumber, |
| 207 | Error: err.Error(), |
| 208 | }) |
| 209 | } |
| 210 | }() |
| 211 | var rawTxs []interface{} |
| 212 | rawTxs, err = db.Select(&records, `SELECT * FROM "record" WHERE "is_reverted" = 0 AND "eth_block_number" = ?`, blkNumber) |
| 213 | if err != nil { |
| 214 | return |
| 215 | } |
| 216 | |
| 217 | for _, r := range records { |
| 218 | r.IsReverted = 1 |
| 219 | } |
| 220 | |
| 221 | _, err = db.Update(rawTxs...) |
| 222 | |
| 223 | return |
| 224 | } |
| 225 | |
| 226 | // GetToProcessTx fetches unprocessed transactions begin before confirmed block number. |
| 227 | func GetToProcessTx(db *gorp.DbMap, confirmedBlkNumber uint64) (records []*TxRecord, err error) { |
no test coverage detected