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 }