forked from cerc-io/plugeth
restructured eth rpc API
This commit is contained in:
parent
7e41d7ac51
commit
348f1562e2
@ -32,6 +32,9 @@ 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)
|
||||
|
||||
|
@ -11,6 +11,10 @@ import (
|
||||
"github.com/ethereum/go-ethereum/xeth"
|
||||
)
|
||||
|
||||
const (
|
||||
EthApiVersion = "1.0"
|
||||
)
|
||||
|
||||
// eth api provider
|
||||
// See https://github.com/ethereum/wiki/wiki/JSON-RPC
|
||||
type ethApi struct {
|
||||
@ -97,6 +101,10 @@ func (self *ethApi) Name() string {
|
||||
return EthApiName
|
||||
}
|
||||
|
||||
func (self *ethApi) ApiVersion() string {
|
||||
return EthApiVersion
|
||||
}
|
||||
|
||||
func (self *ethApi) Accounts(req *shared.Request) (interface{}, error) {
|
||||
return self.xeth.Accounts(), nil
|
||||
}
|
||||
|
111
rpc/api/utils.go
111
rpc/api/utils.go
@ -10,6 +10,117 @@ import (
|
||||
"github.com/ethereum/go-ethereum/xeth"
|
||||
)
|
||||
|
||||
var (
|
||||
// Mapping between the different methods each api supports
|
||||
AutoCompletion = map[string][]string{
|
||||
"admin": []string{
|
||||
"addPeer",
|
||||
"peers",
|
||||
"nodeInfo",
|
||||
"exportChain",
|
||||
"importChain",
|
||||
"verbosity",
|
||||
"chainSyncStatus",
|
||||
"setSolc",
|
||||
"datadir",
|
||||
},
|
||||
"debug": []string{
|
||||
"dumpBlock",
|
||||
"getBlockRlp",
|
||||
"printBlock",
|
||||
"processBlock",
|
||||
"seedHash",
|
||||
"setHead",
|
||||
},
|
||||
"eth": []string{
|
||||
"accounts",
|
||||
"blockNumber",
|
||||
"getBalance",
|
||||
"protocolVersion",
|
||||
"coinbase",
|
||||
"mining",
|
||||
"gasPrice",
|
||||
"getStorage",
|
||||
"storageAt",
|
||||
"getStorageAt",
|
||||
"getTransactionCount",
|
||||
"getBlockTransactionCountByHash",
|
||||
"getBlockTransactionCountByNumber",
|
||||
"getUncleCountByBlockHash",
|
||||
"getUncleCountByBlockNumber",
|
||||
"getData",
|
||||
"getCode",
|
||||
"sign",
|
||||
"sendTransaction",
|
||||
"transact",
|
||||
"estimateGas",
|
||||
"call",
|
||||
"flush",
|
||||
"getBlockByHash",
|
||||
"getBlockByNumber",
|
||||
"getTransactionByHash",
|
||||
"getTransactionByBlockHashAndIndex",
|
||||
"getUncleByBlockHashAndIndex",
|
||||
"getUncleByBlockNumberAndIndex",
|
||||
"getCompilers",
|
||||
"compileSolidity",
|
||||
"newFilter",
|
||||
"newBlockFilter",
|
||||
"newPendingTransactionFilter",
|
||||
"uninstallFilter",
|
||||
"getFilterChanges",
|
||||
"getFilterLogs",
|
||||
"getLogs",
|
||||
"hashrate",
|
||||
"getWork",
|
||||
"submitWork",
|
||||
},
|
||||
"miner": []string{
|
||||
"hashrate",
|
||||
"makeDAG",
|
||||
"setExtra",
|
||||
"setGasPrice",
|
||||
"startAutoDAG",
|
||||
"start",
|
||||
"stopAutoDAG",
|
||||
"stop",
|
||||
},
|
||||
"net": []string{
|
||||
"peerCount",
|
||||
"listening",
|
||||
},
|
||||
"personal": []string{
|
||||
"listAccounts",
|
||||
"newAccount",
|
||||
"deleteAccount",
|
||||
"unlockAccount",
|
||||
},
|
||||
"shh": []string{
|
||||
"version",
|
||||
"post",
|
||||
"hasIdentity",
|
||||
"newIdentity",
|
||||
"newFilter",
|
||||
"uninstallFilter",
|
||||
"getFilterChanges",
|
||||
},
|
||||
"txpool": []string{
|
||||
"status",
|
||||
},
|
||||
"web3": []string{
|
||||
"sha3",
|
||||
"version",
|
||||
"fromWei",
|
||||
"toWei",
|
||||
"toHex",
|
||||
"toAscii",
|
||||
"fromAscii",
|
||||
"toBigNumber",
|
||||
"isAddress",
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
// Parse a comma separated API string to individual api's
|
||||
func ParseApiString(apistr string, codec codec.Codec, xeth *xeth.XEth, eth *eth.Ethereum) ([]EthereumApi, error) {
|
||||
if len(strings.TrimSpace(apistr)) == 0 {
|
||||
|
Loading…
Reference in New Issue
Block a user