49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package api
 | |
| 
 | |
| import (
 | |
| 	"strings"
 | |
| 
 | |
| 	"github.com/ethereum/go-ethereum/rpc/shared"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	AdminApiName    = "admin"
 | |
| 	EthApiName      = "eth"
 | |
| 	DebugApiName    = "debug"
 | |
| 	MergedApiName   = "merged"
 | |
| 	MinerApiName    = "miner"
 | |
| 	NetApiName      = "net"
 | |
| 	ShhApiName      = "shh"
 | |
| 	TxPoolApiName   = "txpool"
 | |
| 	PersonalApiName = "personal"
 | |
| 	Web3ApiName     = "web3"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	// List with all API's which are offered over the IPC interface by default
 | |
| 	DefaultIpcApis = strings.Join([]string{
 | |
| 		AdminApiName, EthApiName, DebugApiName, MinerApiName, NetApiName,
 | |
| 		ShhApiName, TxPoolApiName, PersonalApiName, Web3ApiName,
 | |
| 	}, ",")
 | |
| )
 | |
| 
 | |
| // Ethereum RPC API interface
 | |
| type EthereumApi interface {
 | |
| 	// API identifier
 | |
| 	Name() string
 | |
| 
 | |
| 	// API version
 | |
| 	ApiVersion() string
 | |
| 
 | |
| 	// Execute the given request and returns the response or an error
 | |
| 	Execute(*shared.Request) (interface{}, error)
 | |
| 
 | |
| 	// List of supported RCP methods this API provides
 | |
| 	Methods() []string
 | |
| }
 | |
| 
 | |
| // Merge multiple API's to a single API instance
 | |
| func Merge(apis ...EthereumApi) EthereumApi {
 | |
| 	return newMergedApi(apis...)
 | |
| }
 |