github.com/intfoundation/intchain@v0.0.0-20220727031208-4316ad31ca73/core/state/statedb_forbidden.go (about) 1 package state 2 3 // ----- forbidden Set 4 5 // MarkAddressForbidden adds the specified object to the dirty map 6 //func (self *StateDB) MarkAddressForbidden(addr common.Address) { 7 // if _, exist := self.GetForbiddenSet()[addr]; !exist { 8 // self.forbiddenSet[addr] = struct{}{} 9 // self.forbiddenSetDirty = true 10 // } 11 //} 12 // 13 //func (self *StateDB) GetForbiddenSet() ForbiddenSet { 14 // if len(self.forbiddenSet) != 0 { 15 // return self.forbiddenSet 16 // } 17 // // Try to get from Trie 18 // enc, err := self.trie.TryGet(forbiddenSetKey) 19 // if err != nil { 20 // self.setError(err) 21 // return nil 22 // } 23 // var value ForbiddenSet 24 // if len(enc) > 0 { 25 // err := rlp.DecodeBytes(enc, &value) 26 // if err != nil { 27 // self.setError(err) 28 // } 29 // self.forbiddenSet = value 30 // } 31 // return value 32 //} 33 // 34 //func (self *StateDB) commitForbiddenSet() { 35 // data, err := rlp.EncodeToBytes(self.forbiddenSet) 36 // if err != nil { 37 // panic(fmt.Errorf("can't encode forbidden set : %v", err)) 38 // } 39 // self.setError(self.trie.TryUpdate(forbiddenSetKey, data)) 40 //} 41 // 42 //func (self *StateDB) ClearForbiddenSetByAddress(addr common.Address) { 43 // delete(self.forbiddenSet, addr) 44 // self.forbiddenSetDirty = true 45 //} 46 // 47 //// Store the Forbidden Address Set 48 // 49 //var forbiddenSetKey = []byte("ForbiddenSet") 50 // 51 //type ForbiddenSet map[common.Address]struct{} 52 // 53 //func (set ForbiddenSet) EncodeRLP(w io.Writer) error { 54 // var list []common.Address 55 // for addr := range set { 56 // list = append(list, addr) 57 // } 58 // sort.Slice(list, func(i, j int) bool { 59 // return bytes.Compare(list[i].Bytes(), list[j].Bytes()) == 1 60 // }) 61 // return rlp.Encode(w, list) 62 //} 63 // 64 //func (set *ForbiddenSet) DecodeRLP(s *rlp.Stream) error { 65 // var list []common.Address 66 // if err := s.Decode(&list); err != nil { 67 // return err 68 // } 69 // forbiddenSet := make(ForbiddenSet, len(list)) 70 // for _, addr := range list { 71 // forbiddenSet[addr] = struct{}{} 72 // } 73 // *set = forbiddenSet 74 // return nil 75 //}