Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
90ceb521
Commit
90ceb521
authored
Mar 05, 2015
by
Taylor Gerring
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update RPC methods
Re-order to match spec and explicitly list unimplemented methods
parent
15765517
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
115 additions
and
84 deletions
+115
-84
api.go
rpc/api.go
+115
-84
No files found.
rpc/api.go
View file @
90ceb521
...
@@ -344,8 +344,7 @@ func (p *EthereumApi) GetStorageAt(args *GetStorageArgs, reply *interface{}) err
...
@@ -344,8 +344,7 @@ func (p *EthereumApi) GetStorageAt(args *GetStorageArgs, reply *interface{}) err
}
}
func
(
p
*
EthereumApi
)
GetPeerCount
(
reply
*
interface
{})
error
{
func
(
p
*
EthereumApi
)
GetPeerCount
(
reply
*
interface
{})
error
{
c
:=
p
.
xeth
()
.
PeerCount
()
*
reply
=
p
.
xeth
()
.
PeerCount
()
*
reply
=
toHex
(
big
.
NewInt
(
int64
(
c
))
.
Bytes
())
return
nil
return
nil
}
}
...
@@ -370,7 +369,7 @@ func (p *EthereumApi) GetIsMining(reply *interface{}) error {
...
@@ -370,7 +369,7 @@ func (p *EthereumApi) GetIsMining(reply *interface{}) error {
}
}
func
(
p
*
EthereumApi
)
BlockNumber
(
reply
*
interface
{})
error
{
func
(
p
*
EthereumApi
)
BlockNumber
(
reply
*
interface
{})
error
{
*
reply
=
toHex
(
p
.
xeth
()
.
Backend
()
.
ChainManager
()
.
CurrentBlock
()
.
Number
()
.
Bytes
()
)
*
reply
=
p
.
xeth
()
.
Backend
()
.
ChainManager
()
.
CurrentBlock
()
.
Number
(
)
return
nil
return
nil
}
}
...
@@ -497,51 +496,68 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
...
@@ -497,51 +496,68 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
// Spec at https://github.com/ethereum/wiki/wiki/Generic-JSON-RPC
// Spec at https://github.com/ethereum/wiki/wiki/Generic-JSON-RPC
rpclogger
.
DebugDetailf
(
"%T %s"
,
req
.
Params
,
req
.
Params
)
rpclogger
.
DebugDetailf
(
"%T %s"
,
req
.
Params
,
req
.
Params
)
switch
req
.
Method
{
switch
req
.
Method
{
case
"web3_sha3"
:
args
,
err
:=
req
.
ToSha3Args
()
if
err
!=
nil
{
return
err
}
return
p
.
Sha3
(
args
,
reply
)
case
"net_listening"
:
return
p
.
GetIsListening
(
reply
)
case
"net_peerCount"
:
return
p
.
GetPeerCount
(
reply
)
case
"eth_coinbase"
:
case
"eth_coinbase"
:
return
p
.
GetCoinbase
(
reply
)
return
p
.
GetCoinbase
(
reply
)
case
"eth_mining"
:
case
"eth_mining"
:
return
p
.
GetIsMining
(
reply
)
return
p
.
GetIsMining
(
reply
)
case
"eth_number"
:
case
"eth_gasPrice"
:
return
p
.
BlockNumber
(
reply
)
*
reply
=
toHex
(
defaultGasPrice
.
Bytes
())
return
nil
case
"eth_accounts"
:
case
"eth_accounts"
:
return
p
.
Accounts
(
reply
)
return
p
.
Accounts
(
reply
)
case
"eth_countAt"
:
case
"eth_blockNumber"
:
args
,
err
:=
req
.
ToGetTxCountArgs
()
return
p
.
BlockNumber
(
reply
)
if
err
!=
nil
{
case
"eth_getBalance"
:
return
err
// TODO handle defaultBlock
}
return
p
.
GetTxCountAt
(
args
,
reply
)
case
"eth_codeAt"
:
args
,
err
:=
req
.
ToGetCodeAtArgs
()
if
err
!=
nil
{
return
err
}
return
p
.
GetCodeAt
(
args
,
reply
)
case
"eth_balanceAt"
:
args
,
err
:=
req
.
ToGetBalanceArgs
()
args
,
err
:=
req
.
ToGetBalanceArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
GetBalanceAt
(
args
,
reply
)
return
p
.
GetBalanceAt
(
args
,
reply
)
case
"eth_stateAt"
:
case
"eth_getStorage"
:
// TODO handle defaultBlock
args
,
err
:=
req
.
ToGetStateArgs
()
args
,
err
:=
req
.
ToGetStateArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
GetStateAt
(
args
,
reply
)
return
p
.
GetStateAt
(
args
,
reply
)
case
"eth_storageAt"
:
case
"eth_getStorageAt"
:
// TODO handle defaultBlock
args
,
err
:=
req
.
ToStorageAtArgs
()
args
,
err
:=
req
.
ToStorageAtArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
GetStorageAt
(
args
,
reply
)
return
p
.
GetStorageAt
(
args
,
reply
)
case
"eth_blockByNumber"
,
"eth_blockByHash"
:
case
"eth_getTransactionCount"
:
args
,
err
:=
req
.
ToGetBlockArgs
()
// TODO handle defaultBlock
args
,
err
:=
req
.
ToGetTxCountArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
GetBlock
(
args
,
reply
)
return
p
.
GetTxCountAt
(
args
,
reply
)
case
"eth_transact"
:
case
"eth_getBlockTransactionCountByHash"
:
case
"eth_getBlockTransactionCountByNumber"
:
case
"eth_getUncleCountByBlockHash"
:
case
"eth_getUncleCountByBlockNumber"
:
return
errNotImplemented
case
"eth_getData"
:
// TODO handle defaultBlock
args
,
err
:=
req
.
ToGetCodeAtArgs
()
if
err
!=
nil
{
return
err
}
return
p
.
GetCodeAt
(
args
,
reply
)
case
"eth_sendTransaction"
:
args
,
err
:=
req
.
ToNewTxArgs
()
args
,
err
:=
req
.
ToNewTxArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
...
@@ -553,77 +569,91 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
...
@@ -553,77 +569,91 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
return
err
return
err
}
}
return
p
.
Call
(
args
,
reply
)
return
p
.
Call
(
args
,
reply
)
case
"eth_newFilter"
:
case
"eth_flush"
:
args
,
err
:=
req
.
ToFilterArgs
()
return
errNotImplemented
case
"eth_getBlockByNumber"
,
"eth_getBlockByHash"
:
// TODO handle second param for "include transaction objects"
args
,
err
:=
req
.
ToGetBlockArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
NewFilter
(
args
,
reply
)
return
p
.
GetBlock
(
args
,
reply
)
case
"eth_newFilterString"
:
case
"eth_getTransactionByHash"
:
args
,
err
:=
req
.
ToFilterStringArgs
()
case
"eth_getTransactionByBlockHashAndIndex"
:
case
"eth_getTransactionByBlockNumberAndIndex"
:
case
"eth_getUncleByBlockHashAndIndex"
:
case
"eth_getUncleByBlockNumberAndIndex"
:
return
errNotImplemented
case
"eth_getCompilers"
:
return
p
.
GetCompilers
(
reply
)
case
"eth_compileSolidity"
:
case
"eth_compileLLL"
:
return
errNotImplemented
case
"eth_compileSerpent"
:
args
,
err
:=
req
.
ToCompileArgs
()
if
err
!=
nil
{
return
err
}
return
p
.
CompileSerpent
(
args
,
reply
)
case
"eth_newFilter"
:
args
,
err
:=
req
.
ToFilterArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
NewFilterString
(
args
,
reply
)
return
p
.
NewFilter
(
args
,
reply
)
// case "eth_newFilterString":
// args, err := req.ToFilterStringArgs()
// if err != nil {
// return err
// }
// return p.NewFilterString(args, reply)
case
"eth_newBlockFilter"
:
return
errNotImplemented
case
"eth_uninstallFilter"
:
case
"eth_uninstallFilter"
:
args
,
err
:=
req
.
ToUninstallFilterArgs
()
args
,
err
:=
req
.
ToUninstallFilterArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
UninstallFilter
(
args
,
reply
)
return
p
.
UninstallFilter
(
args
,
reply
)
case
"eth_
changed
"
:
case
"eth_
getFilterChanges
"
:
args
,
err
:=
req
.
ToIdArgs
()
args
,
err
:=
req
.
ToIdArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
FilterChanged
(
args
,
reply
)
return
p
.
FilterChanged
(
args
,
reply
)
case
"eth_
f
ilterLogs"
:
case
"eth_
getF
ilterLogs"
:
args
,
err
:=
req
.
ToIdArgs
()
args
,
err
:=
req
.
ToIdArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
Logs
(
args
,
reply
)
return
p
.
Logs
(
args
,
reply
)
case
"eth_
l
ogs"
:
case
"eth_
getL
ogs"
:
args
,
err
:=
req
.
ToFilterArgs
()
args
,
err
:=
req
.
ToFilterArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
AllLogs
(
args
,
reply
)
return
p
.
AllLogs
(
args
,
reply
)
case
"eth_gasPrice"
:
case
"eth_getWork"
:
*
reply
=
toHex
(
defaultGasPrice
.
Bytes
())
case
"eth_submitWork"
:
return
nil
return
errNotImplemented
case
"eth_register"
:
// case "eth_register":
args
,
err
:=
req
.
ToRegisterArgs
()
// args, err := req.ToRegisterArgs()
if
err
!=
nil
{
// if err != nil {
return
err
// return err
}
// }
return
p
.
Register
(
args
,
reply
)
// return p.Register(args, reply)
case
"eth_unregister"
:
// case "eth_unregister":
args
,
err
:=
req
.
ToRegisterArgs
()
// args, err := req.ToRegisterArgs()
if
err
!=
nil
{
// if err != nil {
return
err
// return err
}
// }
return
p
.
Unregister
(
args
,
reply
)
// return p.Unregister(args, reply)
case
"eth_watchTx"
:
// case "eth_watchTx":
args
,
err
:=
req
.
ToWatchTxArgs
()
// args, err := req.ToWatchTxArgs()
if
err
!=
nil
{
// if err != nil {
return
err
// return err
}
// }
return
p
.
WatchTx
(
args
,
reply
)
// return p.WatchTx(args, reply)
case
"eth_compilers"
:
return
p
.
GetCompilers
(
reply
)
case
"eth_serpent"
:
args
,
err
:=
req
.
ToCompileArgs
()
if
err
!=
nil
{
return
err
}
return
p
.
CompileSerpent
(
args
,
reply
)
case
"web3_sha3"
:
args
,
err
:=
req
.
ToSha3Args
()
if
err
!=
nil
{
return
err
}
return
p
.
Sha3
(
args
,
reply
)
case
"db_put"
:
case
"db_put"
:
args
,
err
:=
req
.
ToDbPutArgs
()
args
,
err
:=
req
.
ToDbPutArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -636,36 +666,37 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
...
@@ -636,36 +666,37 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
return
err
return
err
}
}
return
p
.
DbGet
(
args
,
reply
)
return
p
.
DbGet
(
args
,
reply
)
case
"net_listening"
:
case
"shh_post"
:
return
p
.
GetIsListening
(
reply
)
args
,
err
:=
req
.
ToWhisperPostArgs
()
case
"net_peerCount"
:
if
err
!=
nil
{
return
p
.
GetPeerCount
(
reply
)
return
err
}
return
p
.
WhisperPost
(
args
,
reply
)
case
"shh_newIdentity"
:
case
"shh_newIdentity"
:
return
p
.
NewWhisperIdentity
(
reply
)
return
p
.
NewWhisperIdentity
(
reply
)
case
"shh_hasIdentity"
:
args
,
err
:=
req
.
ToWhisperHasIdentityArgs
()
if
err
!=
nil
{
return
err
}
return
p
.
HasWhisperIdentity
(
args
,
reply
)
case
"shh_newGroup"
:
case
"shh_addToGroup"
:
return
errNotImplemented
case
"shh_newFilter"
:
case
"shh_newFilter"
:
args
,
err
:=
req
.
ToWhisperFilterArgs
()
args
,
err
:=
req
.
ToWhisperFilterArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
NewWhisperFilter
(
args
,
reply
)
return
p
.
NewWhisperFilter
(
args
,
reply
)
case
"shh_uninstallFilter"
:
return
errNotImplemented
case
"shh_changed"
:
case
"shh_changed"
:
args
,
err
:=
req
.
ToIdArgs
()
args
,
err
:=
req
.
ToIdArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
p
.
MessagesChanged
(
args
,
reply
)
return
p
.
MessagesChanged
(
args
,
reply
)
case
"shh_post"
:
args
,
err
:=
req
.
ToWhisperPostArgs
()
if
err
!=
nil
{
return
err
}
return
p
.
WhisperPost
(
args
,
reply
)
case
"shh_haveIdentity"
:
args
,
err
:=
req
.
ToWhisperHasIdentityArgs
()
if
err
!=
nil
{
return
err
}
return
p
.
HasWhisperIdentity
(
args
,
reply
)
case
"shh_getMessages"
:
case
"shh_getMessages"
:
args
,
err
:=
req
.
ToIdArgs
()
args
,
err
:=
req
.
ToIdArgs
()
if
err
!=
nil
{
if
err
!=
nil
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment