github.com/kisexp/xdchain@v0.0.0-20211206025815-490d6b732aa7/consensus/istanbul/qbft/engine/apply_extra.go (about) 1 package qbftengine 2 3 import "github.com/kisexp/xdchain/core/types" 4 5 type ApplyQBFTExtra func(*types.QBFTExtra) error 6 7 func Combine(applies ...ApplyQBFTExtra) ApplyQBFTExtra { 8 return func(extra *types.QBFTExtra) error { 9 for _, apply := range applies { 10 err := apply(extra) 11 if err != nil { 12 return err 13 } 14 } 15 return nil 16 } 17 } 18 19 func ApplyHeaderQBFTExtra(header *types.Header, applies ...ApplyQBFTExtra) error { 20 extra, err := getExtra(header) 21 if err != nil { 22 return err 23 } 24 25 err = Combine(applies...)(extra) 26 if err != nil { 27 return err 28 } 29 30 return setExtra(header, extra) 31 }