github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/acm/validator/cache.go (about) 1 package validator 2 3 import ( 4 "math/big" 5 6 "github.com/hyperledger/burrow/crypto" 7 ) 8 9 // Cache is just a Ring with no memory 10 type Cache struct { 11 *Bucket 12 } 13 14 func NewCache(backend Iterable) *Cache { 15 return &Cache{ 16 Bucket: NewBucket(backend), 17 } 18 } 19 20 func (vc *Cache) Reset(backend Iterable) { 21 vc.Bucket = NewBucket(backend) 22 } 23 24 func (vc *Cache) Sync(output Writer) error { 25 err := vc.Delta.IterateValidators(func(id crypto.Addressable, power *big.Int) error { 26 _, err := output.SetPower(id.GetPublicKey(), power) 27 return err 28 }) 29 if err != nil { 30 return err 31 } 32 return nil 33 }