1package memba_weighted_host23import "strconv"45func (h *Host) badgesConfigJSON() string {6 if h.badgesPolicy == nil {7 return ""8 }9 return `,"badgesPolicy":{"target":` + quoteJSON(BadgesPath) + `,"successor":` + quoteJSON(string(h.badgesPolicy.Successor())) + `,"adminCategory":"critical","unpauseCategory":"financial","emergencyPause":true,"returnStagesOnly":true,"invalidatesOtherProposals":true}`10}11func badgesStateJSON(s BadgesState) string {12 return `{"owner":` + quoteJSON(string(s.Owner)) + `,"pendingOwner":` + quoteJSON(string(s.PendingOwner)) + `,"paused":` + strconv.FormatBool(s.Paused) + `,"adminCount":` + quoteJSON(strconv.Itoa(s.AdminCount)) + `,"ownerAdmin":` + strconv.FormatBool(s.OwnerAdmin) + `,"daoAdmin":` + strconv.FormatBool(s.DAOAdmin) + `,"successorAdmin":` + strconv.FormatBool(s.SuccessorAdmin) + `,"subjectAdmin":` + strconv.FormatBool(s.SubjectAdmin) + `}`13}14func badgesActionJSON(a BadgesAction, s BadgesState) string {15 return `{"type":"badges","target":` + quoteJSON(BadgesPath) + `,"operation":` + quoteJSON(string(a.Kind())) + `,"recipient":` + quoteJSON(string(a.Recipient())) + `,"subject":` + quoteJSON(string(a.Subject())) + `,"before":` + badgesStateJSON(s) + `}`16}17Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.