// VulcanizeDB // Copyright © 2020 Vulcanize // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . package rpc import "github.com/ethereum/go-ethereum/rpc" // checkModuleAvailability check that all names given in modules are actually // available API services. func checkModuleAvailability(modules []string, apis []rpc.API) (bad, available []string) { availableSet := make(map[string]struct{}) for _, api := range apis { if _, ok := availableSet[api.Namespace]; !ok { availableSet[api.Namespace] = struct{}{} available = append(available, api.Namespace) } } for _, name := range modules { if _, ok := availableSet[name]; !ok { bad = append(bad, name) } } return bad, available }