mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-22 11:41:19 +00:00
36 lines
598 B
Go
36 lines
598 B
Go
package rpc
|
|
|
|
import "encoding/json"
|
|
|
|
type AllowList map[string]struct{}
|
|
|
|
func (a *AllowList) UnmarshalJSON(data []byte) error {
|
|
var keys []string
|
|
err := json.Unmarshal(data, &keys)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
realA := make(map[string]struct{})
|
|
|
|
for _, k := range keys {
|
|
realA[k] = struct{}{}
|
|
}
|
|
|
|
*a = realA
|
|
|
|
return nil
|
|
}
|
|
|
|
// MarshalJSON returns *m as the JSON encoding of
|
|
func (a *AllowList) MarshalJSON() ([]byte, error) {
|
|
var realA map[string]struct{} = *a
|
|
keys := make([]string, len(realA))
|
|
i := 0
|
|
for key := range realA {
|
|
keys[i] = key
|
|
i++
|
|
}
|
|
return json.Marshal(keys)
|
|
}
|