mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-22 11:41:19 +00:00
5c055b9697
* Add filters functions * Fix: forbid new filters for requests * Merge devel fix
48 lines
952 B
Go
48 lines
952 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)
|
|
}
|
|
|
|
type ForbiddenList map[string]struct{}
|
|
|
|
func newForbiddenList() ForbiddenList {
|
|
return ForbiddenList{
|
|
"eth_newFilter": struct{}{},
|
|
"eth_newPendingTransactionFilter": struct{}{},
|
|
"eth_newBlockFilter": struct{}{},
|
|
"eth_getFilterChanges": struct{}{},
|
|
"eth_uninstallFilter": struct{}{},
|
|
}
|
|
}
|