github.com/elastos/Elastos.ELA.SideChain.ETH@v0.2.2/blocksigner/blocksigner.go (about) 1 package blocksigner 2 3 import ( 4 "math/rand" 5 6 "github.com/elastos/Elastos.ELA.SideChain.ESC/common" 7 ) 8 9 const defaultTestSignerNumber = 12 10 11 var ( 12 Signers map[common.Address]struct{} 13 SelfIsProducer bool 14 ) 15 16 func GetBlockSignerMaps(elaHeight uint64) *map[common.Address]struct{} { 17 // TODO get from ELA 18 return &Signers 19 } 20 21 func GetBlockSignersCount() int { 22 // TODO get from ELA 23 return len(Signers) 24 } 25 26 func ValidateSigner(elaHeight uint64, addr common.Address) bool { 27 signers := GetBlockSignerMaps(elaHeight) 28 _, ok := (*signers)[addr] 29 return ok 30 } 31 32 func GenRandSingersFromTest() { 33 Signers = make(map[common.Address]struct{}) 34 for i := 0; i < defaultTestSignerNumber; i++ { 35 addr := common.Address{} 36 rand.Read(addr[:]) 37 Signers[addr] = struct{}{} 38 } 39 }