diff --git a/rpc/api.go b/rpc/api.go index 20299bef1..b554dc16b 100644 --- a/rpc/api.go +++ b/rpc/api.go @@ -146,7 +146,8 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err if err := json.Unmarshal(req.Params, &args); err != nil { return err } - *reply = api.xethAtStateNum(args.BlockNumber).CodeAt(args.Address) + v := api.xethAtStateNum(args.BlockNumber).CodeAtBytes(args.Address) + *reply = newHexData(v) case "eth_sendTransaction", "eth_transact": args := new(NewTxArgs) if err := json.Unmarshal(req.Params, &args); err != nil { diff --git a/xeth/xeth.go b/xeth/xeth.go index 5936c0fb2..1b6b1ccd0 100644 --- a/xeth/xeth.go +++ b/xeth/xeth.go @@ -325,6 +325,10 @@ func (self *XEth) CodeAt(address string) string { return common.ToHex(self.State().SafeGet(address).Code()) } +func (self *XEth) CodeAtBytes(address string) []byte { + return self.State().SafeGet(address).Code() +} + func (self *XEth) IsContract(address string) bool { return len(self.State().SafeGet(address).Code()) > 0 }