package common
const (
- CrossTxPendingStatus uint8 = iota
+ CrossTxInitiatedStatus uint8 = iota
+ CrossTxPendingStatus
CrossTxRejectedStatus
CrossTxSubmittedStatus
CrossTxCompletedStatus
DestBlockHash: sql.NullString{Valid: false},
DestTxIndex: sql.NullInt64{Valid: false},
DestTxHash: sql.NullString{Valid: false},
- Status: common.CrossTxPendingStatus,
+ Status: common.CrossTxInitiatedStatus,
}
if err := m.db.Create(ormTx).Error; err != nil {
return errors.Wrap(err, fmt.Sprintf("create mainchain DepositTx %s", tx.ID.String()))
DestBlockHash: sql.NullString{Valid: false},
DestTxIndex: sql.NullInt64{Valid: false},
DestTxHash: sql.NullString{Valid: false},
- Status: common.CrossTxPendingStatus,
+ Status: common.CrossTxInitiatedStatus,
}
if err := s.db.Create(ormTx).Error; err != nil {
return errors.Wrap(err, fmt.Sprintf("create sidechain WithdrawalTx %s", tx.ID.String()))
for ; true; <-ticker.C {
txs := []*orm.CrossTransaction{}
if err := w.db.Preload("Chain").Preload("Reqs").
- // do not use "Where(&orm.CrossTransaction{Status: common.CrossTxPendingStatus})" directly,
+ // do not use "Where(&orm.CrossTransaction{Status: common.CrossTxInitiatedStatus})" directly,
// otherwise the field "status" will be ignored
- Model(&orm.CrossTransaction{}).Where("status = ?", common.CrossTxPendingStatus).
+ Model(&orm.CrossTransaction{}).Where("status = ?", common.CrossTxInitiatedStatus).
Find(&txs).Error; err == gorm.ErrRecordNotFound {
continue
} else if err != nil {
return err
}
}
- return nil
+
+ return w.db.Model(&orm.CrossTransaction{}).
+ Where(&orm.CrossTransaction{ID: ormTx.ID}).
+ UpdateColumn(&orm.CrossTransaction{
+ Status: common.CrossTxPendingStatus,
+ }).Error
}
// TODO: