forked from cerc-io/plugeth
Resolve storage/storageat
This commit is contained in:
parent
a6599404e4
commit
9f5e9eb38d
10
rpc/api.go
10
rpc/api.go
@ -311,7 +311,7 @@ func (p *EthereumApi) PushTx(args *PushTxArgs, reply *interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *EthereumApi) GetStateAt(args *GetStateArgs, reply *interface{}) error {
|
||||
func (p *EthereumApi) GetStorageAt(args *GetStorageAtArgs, reply *interface{}) error {
|
||||
err := args.requirements()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -333,7 +333,7 @@ func (p *EthereumApi) GetStateAt(args *GetStateArgs, reply *interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *EthereumApi) GetStorageAt(args *GetStorageArgs, reply *interface{}) error {
|
||||
func (p *EthereumApi) GetStorage(args *GetStorageArgs, reply *interface{}) error {
|
||||
err := args.requirements()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -527,14 +527,14 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
|
||||
return p.GetBalanceAt(args, reply)
|
||||
case "eth_getStorage":
|
||||
// TODO handle defaultBlock
|
||||
args, err := req.ToGetStateArgs()
|
||||
args, err := req.ToStorageArgs()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return p.GetStateAt(args, reply)
|
||||
return p.GetStorage(args, reply)
|
||||
case "eth_getStorageAt":
|
||||
// TODO handle defaultBlock
|
||||
args, err := req.ToStorageAtArgs()
|
||||
args, err := req.ToGetStorageAtArgs()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -102,12 +102,12 @@ func (a *GetStorageArgs) requirements() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
type GetStateArgs struct {
|
||||
type GetStorageAtArgs struct {
|
||||
Address string
|
||||
Key string
|
||||
}
|
||||
|
||||
func (obj *GetStateArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
func (obj *GetStorageAtArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
arg0 := ""
|
||||
if err = json.Unmarshal(b, &arg0); err == nil {
|
||||
obj.Address = arg0
|
||||
@ -116,7 +116,7 @@ func (obj *GetStateArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
return errDecodeArgs
|
||||
}
|
||||
|
||||
func (a *GetStateArgs) requirements() error {
|
||||
func (a *GetStorageAtArgs) requirements() error {
|
||||
if a.Address == "" {
|
||||
return NewErrorWithMessage(errArguments, "GetStorageAt requires an 'address' value as argument")
|
||||
}
|
||||
|
@ -120,23 +120,31 @@ func (req *RpcRequest) ToPushTxArgs() (*PushTxArgs, error) {
|
||||
return args, nil
|
||||
}
|
||||
|
||||
func (req *RpcRequest) ToGetStateArgs() (*GetStateArgs, error) {
|
||||
if len(req.Params) < 1 {
|
||||
func (req *RpcRequest) ToGetStorageAtArgs() (*GetStorageAtArgs, error) {
|
||||
if len(req.Params) < 2 {
|
||||
return nil, errArguments
|
||||
}
|
||||
|
||||
args := new(GetStateArgs)
|
||||
// TODO need to pass both arguments
|
||||
r := bytes.NewReader(req.Params[0])
|
||||
err := json.NewDecoder(r).Decode(args)
|
||||
if err != nil {
|
||||
args := new(GetStorageAtArgs)
|
||||
var arg0, arg1 string
|
||||
|
||||
r0 := bytes.NewReader(req.Params[0])
|
||||
if err := json.NewDecoder(r0).Decode(arg0); err != nil {
|
||||
return nil, errDecodeArgs
|
||||
}
|
||||
|
||||
r1 := bytes.NewReader(req.Params[1])
|
||||
if err := json.NewDecoder(r1).Decode(arg1); err != nil {
|
||||
return nil, errDecodeArgs
|
||||
}
|
||||
|
||||
args.Address = arg0
|
||||
args.Key = arg1
|
||||
|
||||
return args, nil
|
||||
}
|
||||
|
||||
func (req *RpcRequest) ToStorageAtArgs() (*GetStorageArgs, error) {
|
||||
func (req *RpcRequest) ToStorageArgs() (*GetStorageArgs, error) {
|
||||
if len(req.Params) < 1 {
|
||||
return nil, errArguments
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user