gitlab.com/SiaPrime/SiaPrime@v1.4.1/modules/consensus/fork_helpers_test.go (about)

     1  package consensus
     2  
     3  import bolt "github.com/coreos/bbolt"
     4  
     5  // dbBacktrackToCurrentPath is a convenience function to call
     6  // backtrackToCurrentPath without a bolt.Tx.
     7  func (cs *ConsensusSet) dbBacktrackToCurrentPath(pb *processedBlock) (pbs []*processedBlock) {
     8  	_ = cs.db.Update(func(tx *bolt.Tx) error {
     9  		pbs = backtrackToCurrentPath(tx, pb)
    10  		return nil
    11  	})
    12  	return pbs
    13  }
    14  
    15  // dbRevertToNode is a convenience function to call revertToBlock without a
    16  // bolt.Tx.
    17  func (cs *ConsensusSet) dbRevertToNode(pb *processedBlock) (pbs []*processedBlock) {
    18  	_ = cs.db.Update(func(tx *bolt.Tx) error {
    19  		pbs = cs.revertToBlock(tx, pb)
    20  		return nil
    21  	})
    22  	return pbs
    23  }
    24  
    25  // dbForkBlockchain is a convenience function to call forkBlockchain without a
    26  // bolt.Tx.
    27  func (cs *ConsensusSet) dbForkBlockchain(pb *processedBlock) (revertedBlocks, appliedBlocks []*processedBlock, err error) {
    28  	updateErr := cs.db.Update(func(tx *bolt.Tx) error {
    29  		revertedBlocks, appliedBlocks, err = cs.forkBlockchain(tx, pb)
    30  		return nil
    31  	})
    32  	if updateErr != nil {
    33  		panic(updateErr)
    34  	}
    35  	return revertedBlocks, appliedBlocks, err
    36  }