diff --git a/rpc/api.go b/rpc/api.go index 660bb3251..80dd27afb 100644 --- a/rpc/api.go +++ b/rpc/api.go @@ -95,10 +95,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err return err } - state := api.xethAtStateNum(args.BlockNumber).State().SafeGet(args.Address) - value := state.StorageString(args.Key) - - *reply = common.ToHex(value.Bytes()) + *reply = api.xethAtStateNum(args.BlockNumber).StorageAt(args.Address, args.Key) case "eth_getTransactionCount": args := new(GetTxCountArgs) if err := json.Unmarshal(req.Params, &args); err != nil { diff --git a/xeth/xeth.go b/xeth/xeth.go index 5936c0fb2..0a813ec99 100644 --- a/xeth/xeth.go +++ b/xeth/xeth.go @@ -308,21 +308,19 @@ func (self *XEth) NumberToHuman(balance string) string { } func (self *XEth) StorageAt(addr, storageAddr string) string { - storage := self.State().SafeGet(addr).StorageString(storageAddr) - - return common.ToHex(storage.Bytes()) + return common.ToHex(self.State().state.GetState(common.HexToAddress(addr), common.HexToHash(storageAddr))) } func (self *XEth) BalanceAt(addr string) string { - return self.State().SafeGet(addr).Balance().String() + return self.State().state.GetBalance(common.HexToAddress(addr)).String() } func (self *XEth) TxCountAt(address string) int { - return int(self.State().SafeGet(address).Nonce()) + return int(self.State().state.GetNonce(common.HexToAddress(address))) } func (self *XEth) CodeAt(address string) string { - return common.ToHex(self.State().SafeGet(address).Code()) + return common.ToHex(self.State().state.GetCode(common.HexToAddress(address))) } func (self *XEth) IsContract(address string) bool {