aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaylor Gerring <taylor.gerring@gmail.com>2015-03-20 20:45:07 +0800
committerTaylor Gerring <taylor.gerring@gmail.com>2015-03-20 20:45:07 +0800
commit739c36ad4df63580bef241a4da8d2cc5010eab54 (patch)
tree33e9e772604115a90350146491fe5bda22bea1ab
parent28e5fc83526af17a911eece6befa5fe54578fb55 (diff)
downloaddexon-739c36ad4df63580bef241a4da8d2cc5010eab54.tar.gz
dexon-739c36ad4df63580bef241a4da8d2cc5010eab54.tar.zst
dexon-739c36ad4df63580bef241a4da8d2cc5010eab54.zip
inline GetStorageAt
-rw-r--r--rpc/api.go31
1 files changed, 8 insertions, 23 deletions
diff --git a/rpc/api.go b/rpc/api.go
index 5f29886e0..4758363d1 100644
--- a/rpc/api.go
+++ b/rpc/api.go
@@ -4,7 +4,6 @@ import (
"encoding/json"
"math/big"
"path"
- "strings"
"sync"
"github.com/ethereum/go-ethereum/common"
@@ -43,27 +42,6 @@ func (self *EthereumApi) xeth() *xeth.XEth {
return self.eth
}
-func (p *EthereumApi) GetStorageAt(args *GetStorageAtArgs, reply *interface{}) error {
- if err := args.requirements(); err != nil {
- return err
- }
-
- state := p.xeth().AtStateNum(args.BlockNumber).State().SafeGet(args.Address)
- value := state.StorageString(args.Key)
-
- var hx string
- if strings.Index(args.Key, "0x") == 0 {
- hx = string([]byte(args.Key)[2:])
- } else {
- // Convert the incoming string (which is a bigint) into hex
- i, _ := new(big.Int).SetString(args.Key, 10)
- hx = common.Bytes2Hex(i.Bytes())
- }
- rpclogger.Debugf("GetStateAt(%s, %s)\n", args.Address, hx)
- *reply = map[string]string{args.Key: value.Str()}
- return nil
-}
-
// func (self *EthereumApi) Register(args string, reply *interface{}) error {
// self.regmut.Lock()
// defer self.regmut.Unlock()
@@ -159,7 +137,14 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
if err := json.Unmarshal(req.Params, &args); err != nil {
return err
}
- return p.GetStorageAt(args, reply)
+ if err := args.requirements(); err != nil {
+ return err
+ }
+
+ state := p.xeth().AtStateNum(args.BlockNumber).State().SafeGet(args.Address)
+ value := state.StorageString(args.Key)
+
+ *reply = common.Bytes2Hex(value.Bytes())
case "eth_getTransactionCount":
args := new(GetTxCountArgs)
if err := json.Unmarshal(req.Params, &args); err != nil {