OSDN Git Service

add
authorHAOYUatHZ <haoyu@protonmail.com>
Sun, 9 Jun 2019 00:21:46 +0000 (08:21 +0800)
committerHAOYUatHZ <haoyu@protonmail.com>
Sun, 9 Jun 2019 00:21:46 +0000 (08:21 +0800)
federation/synchron/attach_block_processor.go
federation/synchron/block_processor.go
federation/synchron/detach_block_processor.go

index 5db133b..378209b 100644 (file)
@@ -33,7 +33,11 @@ func (p *attachBlockProcessor) getBlock() interface{} {
        return p.block
 }
 
-func (p *attachBlockProcessor) processWithdrawalToMainchain(txIndex uint64, tx *btmTypes.Tx) error {
+func (p *attachBlockProcessor) processIssuing(db *gorm.DB, txs []*btmTypes.Tx) error {
+       return addIssueAssets(db, txs)
+}
+
+func (p *attachBlockProcessor) processDepositFromMainchain(txIndex uint64, tx *btmTypes.Tx) error {
        blockHash := p.getBlock().(*btmTypes.Block).Hash()
 
        var muxID btmBc.Hash
@@ -52,7 +56,7 @@ func (p *attachBlockProcessor) processWithdrawalToMainchain(txIndex uint64, tx *
 
        ormTx := &orm.CrossTransaction{
                ChainID:        p.chain.ID,
-               Direction:      common.WithdrawalDirection,
+               Direction:      common.DepositDirection,
                BlockHeight:    p.getBlock().(*btmTypes.Block).Height,
                BlockHash:      blockHash.String(),
                TxIndex:        txIndex,
@@ -65,10 +69,16 @@ func (p *attachBlockProcessor) processWithdrawalToMainchain(txIndex uint64, tx *
                return errors.Wrap(err, fmt.Sprintf("create DepositFromMainchain tx %s", tx.ID.String()))
        }
 
+       for i, input := range getCrossChainInputs(ormTx.ID, tx) {
+               if err := p.db.Create(input).Error; err != nil {
+                       return errors.Wrap(err, fmt.Sprintf("create DepositFromMainchain input: txid(%s), pos(%d)", tx.ID.String(), i))
+               }
+       }
+
        return nil
 }
 
-func (p *attachBlockProcessor) processDepositFromMainchain(txIndex uint64, tx *btmTypes.Tx) error {
+func (p *attachBlockProcessor) processWithdrawalToMainchain(txIndex uint64, tx *btmTypes.Tx) error {
        blockHash := p.getBlock().(*btmTypes.Block).Hash()
 
        var muxID btmBc.Hash
@@ -87,7 +97,7 @@ func (p *attachBlockProcessor) processDepositFromMainchain(txIndex uint64, tx *b
 
        ormTx := &orm.CrossTransaction{
                ChainID:        p.chain.ID,
-               Direction:      common.DepositDirection,
+               Direction:      common.WithdrawalDirection,
                BlockHeight:    p.getBlock().(*btmTypes.Block).Height,
                BlockHash:      blockHash.String(),
                TxIndex:        txIndex,
@@ -100,17 +110,15 @@ func (p *attachBlockProcessor) processDepositFromMainchain(txIndex uint64, tx *b
                return errors.Wrap(err, fmt.Sprintf("create DepositFromMainchain tx %s", tx.ID.String()))
        }
 
-       for i, input := range getCrossChainInputs(ormTx.ID, tx) {
-               if err := p.db.Create(input).Error; err != nil {
-                       return errors.Wrap(err, fmt.Sprintf("create DepositFromMainchain input: txid(%s), pos(%d)", tx.ID.String(), i))
-               }
-       }
+       return nil
+}
 
+func (p *attachBlockProcessor) processDepositToSidechain(txIndex uint64, tx *vaporTypes.Tx) error {
        return nil
 }
 
-func (p *attachBlockProcessor) processIssuing(db *gorm.DB, txs []*btmTypes.Tx) error {
-       return addIssueAssets(db, txs)
+func (p *attachBlockProcessor) processWithdrawalFromSidechain(txIndex uint64, tx *vaporTypes.Tx) error {
+       return nil
 }
 
 func (p *attachBlockProcessor) processChainInfo() error {
index 7d0dcf6..2b5f6c5 100644 (file)
@@ -33,6 +33,8 @@ type blockProcessor interface {
        getBlock() interface{}
        processWithdrawalToMainchain(uint64, *btmTypes.Tx) error
        processDepositFromMainchain(uint64, *btmTypes.Tx) error
+       processDepositToSidechain(uint64, *vaporTypes.Tx) error
+       processWithdrawalFromSidechain(uint64, *vaporTypes.Tx) error
        processIssuing(*gorm.DB, []*btmTypes.Tx) error
        processChainInfo() error
        // getCoin() *orm.Coin
@@ -101,10 +103,10 @@ func updateBlock(db *gorm.DB, bp blockProcessor) error {
                block := bp.getBlock().(*vaporTypes.Block)
                for i, tx := range block.Transactions {
                        if isDepositToSidechain(tx) {
-                               // bp.processDepositToSidechain(uint64(i), tx)
+                               bp.processDepositToSidechain(uint64(i), tx)
                        }
                        if isWithdrawalFromSidechain(tx) {
-                               // bp.processWithdrawalFromSidechain(uint64(i), tx)
+                               bp.processWithdrawalFromSidechain(uint64(i), tx)
                        }
                }
        }
index d07fd8e..083798b 100644 (file)
@@ -27,8 +27,8 @@ func (p *detachBlockProcessor) getBlock() interface{} {
        return p.block
 }
 
-func (p *detachBlockProcessor) processWithdrawalToMainchain(txIndex uint64, tx *btmTypes.Tx) error {
-       return p.db.Delete(&orm.CrossTransaction{ChainID: p.chain.ID, TxHash: tx.ID.String()}).Error
+func (p *detachBlockProcessor) processIssuing(db *gorm.DB, txs []*btmTypes.Tx) error {
+       return nil
 }
 
 func (p *detachBlockProcessor) processDepositFromMainchain(txIndex uint64, tx *btmTypes.Tx) error {
@@ -44,7 +44,15 @@ func (p *detachBlockProcessor) processDepositFromMainchain(txIndex uint64, tx *b
        return p.db.Delete(ormTx).Error
 }
 
-func (p *detachBlockProcessor) processIssuing(db *gorm.DB, txs []*btmTypes.Tx) error {
+func (p *detachBlockProcessor) processWithdrawalToMainchain(txIndex uint64, tx *btmTypes.Tx) error {
+       return p.db.Delete(&orm.CrossTransaction{ChainID: p.chain.ID, TxHash: tx.ID.String()}).Error
+}
+
+func (p *detachBlockProcessor) processDepositToSidechain(txIndex uint64, tx *vaporTypes.Tx) error {
+       return nil
+}
+
+func (p *detachBlockProcessor) processWithdrawalFromSidechain(txIndex uint64, tx *vaporTypes.Tx) error {
        return nil
 }
 
@@ -72,5 +80,6 @@ func (p *detachBlockProcessor) processChainInfo() error {
        if db.RowsAffected != 1 {
                return ErrInconsistentDB
        }
+
        return nil
 }