support net endpoints

This commit is contained in:
Ian Norden
2021-04-09 09:51:12 -05:00
parent 4ea61b08ca
commit 86aa1c16e6
8 changed files with 171 additions and 49 deletions
-31
View File
@@ -19,14 +19,12 @@ package serve
import (
"context"
"github.com/ethereum/go-ethereum/p2p"
"github.com/ethereum/go-ethereum/rpc"
log "github.com/sirupsen/logrus"
"github.com/vulcanize/ipld-eth-indexer/pkg/shared"
"github.com/vulcanize/ipld-eth-server/pkg/eth"
v "github.com/vulcanize/ipld-eth-server/version"
)
// APIName is the namespace used for the state diffing service API
@@ -90,32 +88,3 @@ func (api *PublicServerAPI) Stream(ctx context.Context, params eth.SubscriptionS
func (api *PublicServerAPI) Chain() shared.ChainType {
return shared.Ethereum
}
// Struct for holding watcher meta data
type InfoAPI struct{}
// NewInfoAPI creates a new InfoAPI
func NewInfoAPI() *InfoAPI {
return &InfoAPI{}
}
// Modules returns modules supported by this api
func (iapi *InfoAPI) Modules() map[string]string {
return map[string]string{
"vdb": "Stream",
}
}
// NodeInfo gathers and returns a collection of metadata for the watcher
func (iapi *InfoAPI) NodeInfo() *p2p.NodeInfo {
return &p2p.NodeInfo{
// TODO: formalize this
ID: "vulcanizeDB",
Name: "ipld-eth-server",
}
}
// Version returns the version of the watcher
func (iapi *InfoAPI) Version() string {
return v.VersionWithMeta
}
+7 -16
View File
@@ -18,8 +18,11 @@ package serve
import (
"fmt"
"strconv"
"sync"
"github.com/vulcanize/ipld-eth-server/pkg/net"
"github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/common"
@@ -115,7 +118,7 @@ func (sap *Service) Protocols() []p2p.Protocol {
// APIs returns the RPC descriptors the watcher service offers
func (sap *Service) APIs() []rpc.API {
infoAPI := NewInfoAPI()
networkID, _ := strconv.ParseUint(sap.db.Node.NetworkID, 10, 64)
apis := []rpc.API{
{
Namespace: APIName,
@@ -124,21 +127,9 @@ func (sap *Service) APIs() []rpc.API {
Public: true,
},
{
Namespace: "rpc",
Version: APIVersion,
Service: infoAPI,
Public: true,
},
{
Namespace: "net",
Version: APIVersion,
Service: infoAPI,
Public: true,
},
{
Namespace: "admin",
Version: APIVersion,
Service: infoAPI,
Namespace: net.APIName,
Version: net.APIVersion,
Service: net.NewPublicNetAPI(networkID, sap.client),
Public: true,
},
}