diff options
Diffstat (limited to 'rpc/api/api.go')
-rw-r--r-- | rpc/api/api.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/rpc/api/api.go b/rpc/api/api.go new file mode 100644 index 000000000..e431e5c1e --- /dev/null +++ b/rpc/api/api.go @@ -0,0 +1,48 @@ +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...) +} |