OSDN Git Service

fix collect
authorHAOYUatHZ <haoyu@protonmail.com>
Wed, 19 Jun 2019 13:31:37 +0000 (21:31 +0800)
committerHAOYUatHZ <haoyu@protonmail.com>
Wed, 19 Jun 2019 13:31:37 +0000 (21:31 +0800)
federation/common/const.go
federation/synchron/mainchain_keeper.go
federation/synchron/sidechain_keeper.go
federation/warder.go

index e843f9e..dac05ac 100644 (file)
@@ -1,7 +1,8 @@
 package common
 
 const (
-       CrossTxPendingStatus uint8 = iota
+       CrossTxInitiatedStatus uint8 = iota
+       CrossTxPendingStatus
        CrossTxRejectedStatus
        CrossTxSubmittedStatus
        CrossTxCompletedStatus
index 836a831..8ecfd5d 100644 (file)
@@ -184,7 +184,7 @@ func (m *mainchainKeeper) processDepositTx(chain *orm.Chain, block *types.Block,
                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()))
index cb91e16..173876f 100644 (file)
@@ -198,7 +198,7 @@ func (s *sidechainKeeper) processWithdrawalTx(chain *orm.Chain, block *types.Blo
                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()))
index 0ace037..8aa5665 100644 (file)
@@ -76,9 +76,9 @@ func (w *warder) Run() {
        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 {
@@ -253,7 +253,12 @@ func (w *warder) initDestTxSigns(destTx interface{}, ormTx *orm.CrossTransaction
                        return err
                }
        }
-       return nil
+
+       return w.db.Model(&orm.CrossTransaction{}).
+               Where(&orm.CrossTransaction{ID: ormTx.ID}).
+               UpdateColumn(&orm.CrossTransaction{
+                       Status: common.CrossTxPendingStatus,
+               }).Error
 }
 
 // TODO: